| # This package contains functions and classes related to analysis of | |
| # structural representations of Verilog/SystemVerilog source code. | |
| licenses(["notice"]) | |
| default_visibility = [ | |
| "//verilog:__subpackages__", | |
| ] | |
| package( | |
| default_visibility = default_visibility, | |
| ) | |
| cc_library( | |
| name = "default_rules", | |
| hdrs = ["default_rules.h"], | |
| deps = [ | |
| "//verilog/analysis/checkers:verilog_lint_rules", | |
| ], | |
| ) | |
| cc_test( | |
| name = "default_rules_test", | |
| srcs = ["default_rules_test.cc"], | |
| deps = [ | |
| ":default_rules", | |
| ":lint_rule_registry", | |
| "//verilog/analysis/checkers:verilog_lint_rules", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "descriptions", | |
| hdrs = ["descriptions.h"], | |
| deps = ["@com_google_absl//absl/strings"], | |
| alwayslink = 1, | |
| ) | |
| cc_library( | |
| name = "extractors", | |
| srcs = ["extractors.cc"], | |
| hdrs = ["extractors.h"], | |
| deps = [ | |
| ":verilog_analyzer", | |
| "//verilog/CST:identifier", | |
| "//verilog/CST:module", | |
| "//verilog/preprocessor:verilog_preprocess", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "extractors_test", | |
| srcs = ["extractors_test.cc"], | |
| deps = [ | |
| ":extractors", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "json_diagnostics", | |
| srcs = ["json_diagnostics.cc"], | |
| hdrs = ["json_diagnostics.h"], | |
| deps = [ | |
| ":verilog_analyzer", | |
| "//common/analysis:file_analyzer", | |
| "//common/strings:line_column_map", | |
| "@com_google_absl//absl/strings", | |
| "@jsonhpp", | |
| ], | |
| ) | |
| cc_library( | |
| name = "flow_tree", | |
| srcs = ["flow_tree.cc"], | |
| hdrs = ["flow_tree.h"], | |
| deps = [ | |
| "//common/text:token_stream_view", | |
| "//verilog/parser:verilog_token_enum", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "flow_tree_test", | |
| srcs = ["flow_tree_test.cc"], | |
| deps = [ | |
| ":flow_tree", | |
| "//verilog/parser:verilog_lexer", | |
| "//verilog/parser:verilog_token_enum", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "lint_rule_registry", | |
| srcs = ["lint_rule_registry.cc"], | |
| hdrs = ["lint_rule_registry.h"], | |
| deps = [ | |
| ":descriptions", | |
| "//common/analysis:line_lint_rule", | |
| "//common/analysis:syntax_tree_lint_rule", | |
| "//common/analysis:text_structure_lint_rule", | |
| "//common/analysis:token_stream_lint_rule", | |
| "//common/strings:compare", | |
| "//common/util:container_util", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/container:node_hash_map", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "json_diagnostics_test", | |
| srcs = ["json_diagnostics_test.cc"], | |
| deps = [ | |
| ":json_diagnostics", | |
| ":verilog_analyzer", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| "@jsonhpp", | |
| ], | |
| ) | |
| cc_test( | |
| name = "lint_rule_registry_test", | |
| srcs = ["lint_rule_registry_test.cc"], | |
| deps = [ | |
| ":descriptions", | |
| ":lint_rule_registry", | |
| "//common/analysis:line_lint_rule", | |
| "//common/analysis:lint_rule_status", | |
| "//common/analysis:syntax_tree_lint_rule", | |
| "//common/analysis:text_structure_lint_rule", | |
| "//common/analysis:token_stream_lint_rule", | |
| "//common/text:concrete_syntax_leaf", | |
| "//common/text:concrete_syntax_tree", | |
| "//common/text:syntax_tree_context", | |
| "//common/text:text_structure", | |
| "//common/text:token_info", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "verilog_analyzer", | |
| srcs = [ | |
| "verilog_analyzer.cc", | |
| "verilog_excerpt_parse.cc", | |
| # paired together because of mutual recursion | |
| ], | |
| hdrs = [ | |
| "verilog_analyzer.h", | |
| "verilog_excerpt_parse.h", | |
| ], | |
| deps = [ | |
| "//common/analysis:file_analyzer", | |
| "//common/lexer:token_stream_adapter", | |
| "//common/strings:comment_utils", | |
| "//common/strings:mem_block", | |
| "//common/text:concrete_syntax_leaf", | |
| "//common/text:concrete_syntax_tree", | |
| "//common/text:symbol", | |
| "//common/text:text_structure", | |
| "//common/text:token_info", | |
| "//common/text:token_stream_view", | |
| "//common/text:visitors", | |
| "//common/util:container_util", | |
| "//common/util:logging", | |
| "//common/util:status_macros", | |
| "//verilog/parser:verilog_lexer", | |
| "//verilog/parser:verilog_lexical_context", | |
| "//verilog/parser:verilog_parser", | |
| "//verilog/parser:verilog_token_classifications", | |
| "//verilog/parser:verilog_token_enum", | |
| "//verilog/preprocessor:verilog_preprocess", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "verilog_equivalence", | |
| srcs = ["verilog_equivalence.cc"], | |
| hdrs = ["verilog_equivalence.h"], | |
| deps = [ | |
| "//common/lexer:token_stream_adapter", | |
| "//common/text:token_info", | |
| "//common/text:token_stream_view", | |
| "//common/util:enum_flags", | |
| "//common/util:logging", | |
| "//verilog/parser:verilog_lexer", | |
| "//verilog/parser:verilog_parser", | |
| "//verilog/parser:verilog_token_classifications", | |
| "//verilog/parser:verilog_token_enum", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "verilog_linter_configuration", | |
| srcs = ["verilog_linter_configuration.cc"], | |
| hdrs = ["verilog_linter_configuration.h"], | |
| deps = [ | |
| ":default_rules", | |
| ":lint_rule_registry", | |
| "//common/analysis:line_lint_rule", | |
| "//common/analysis:syntax_tree_lint_rule", | |
| "//common/analysis:text_structure_lint_rule", | |
| "//common/analysis:token_stream_lint_rule", | |
| "//common/util:container_util", | |
| "//common/util:enum_flags", | |
| "//common/util:file_util", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/status:statusor", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "verilog_linter_constants", | |
| hdrs = ["verilog_linter_constants.h"], | |
| ) | |
| cc_library( | |
| name = "verilog_linter", | |
| srcs = ["verilog_linter.cc"], | |
| hdrs = ["verilog_linter.h"], | |
| deps = [ | |
| ":default_rules", | |
| ":lint_rule_registry", | |
| ":verilog_analyzer", | |
| ":verilog_linter_configuration", | |
| ":verilog_linter_constants", | |
| "//common/analysis:line_lint_rule", | |
| "//common/analysis:line_linter", | |
| "//common/analysis:lint_rule_status", | |
| "//common/analysis:lint_waiver", | |
| "//common/analysis:syntax_tree_lint_rule", | |
| "//common/analysis:syntax_tree_linter", | |
| "//common/analysis:text_structure_lint_rule", | |
| "//common/analysis:text_structure_linter", | |
| "//common/analysis:token_stream_lint_rule", | |
| "//common/analysis:token_stream_linter", | |
| "//common/analysis:violation_handler", | |
| "//common/strings:line_column_map", | |
| "//common/text:concrete_syntax_tree", | |
| "//common/text:text_structure", | |
| "//common/text:token_info", | |
| "//common/util:file_util", | |
| "//common/util:logging", | |
| "//verilog/parser:verilog_token_classifications", | |
| "//verilog/parser:verilog_token_enum", | |
| "@com_google_absl//absl/flags:flag", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/status:statusor", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_analyzer_test", | |
| srcs = ["verilog_analyzer_test.cc"], | |
| deps = [ | |
| ":verilog_analyzer", | |
| "//common/analysis:file_analyzer", | |
| "//common/strings:display_utils", | |
| "//common/text:concrete_syntax_leaf", | |
| "//common/text:concrete_syntax_tree", | |
| "//common/text:constants", | |
| "//common/text:symbol", | |
| "//common/text:text_structure", | |
| "//common/text:token_info", | |
| "//common/text:token_info_test_util", | |
| "//common/text:token_stream_view", | |
| "//common/text:tree_utils", | |
| "//common/util:casts", | |
| "//common/util:logging", | |
| "//verilog/parser:verilog_parser", | |
| "//verilog/parser:verilog_token_enum", | |
| "@com_google_absl//absl/base", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_absl//absl/types:span", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_linter_configuration_test", | |
| srcs = ["verilog_linter_configuration_test.cc"], | |
| deps = [ | |
| ":default_rules", | |
| ":descriptions", | |
| ":lint_rule_registry", | |
| ":verilog_linter", | |
| ":verilog_linter_configuration", | |
| "//common/analysis:line_lint_rule", | |
| "//common/analysis:lint_rule_status", | |
| "//common/analysis:syntax_tree_lint_rule", | |
| "//common/analysis:text_structure_lint_rule", | |
| "//common/analysis:token_stream_lint_rule", | |
| "//common/strings:line_column_map", | |
| "//common/text:concrete_syntax_leaf", | |
| "//common/text:concrete_syntax_tree", | |
| "//common/text:syntax_tree_context", | |
| "//common/text:text_structure", | |
| "//common/text:token_info", | |
| "//common/text:tree_builder_test_util", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_linter_test", | |
| srcs = ["verilog_linter_test.cc"], | |
| deps = [ | |
| ":default_rules", | |
| ":verilog_analyzer", | |
| ":verilog_linter", | |
| ":verilog_linter_configuration", | |
| "//common/analysis:violation_handler", | |
| "//common/util:file_util", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/status:statusor", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_equivalence_test", | |
| srcs = ["verilog_equivalence_test.cc"], | |
| deps = [ | |
| ":verilog_equivalence", | |
| "//common/text:token_info", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_absl//absl/types:span", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "verilog_filelist", | |
| srcs = ["verilog_filelist.cc"], | |
| hdrs = ["verilog_filelist.h"], | |
| deps = [ | |
| "//common/util:file_util", | |
| "//common/util:iterator_range", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/status:statusor", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_filelist_test", | |
| srcs = ["verilog_filelist_test.cc"], | |
| deps = [ | |
| ":verilog_filelist", | |
| "//common/util:file_util", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "verilog_project", | |
| srcs = ["verilog_project.cc"], | |
| hdrs = ["verilog_project.h"], | |
| deps = [ | |
| ":verilog_analyzer", | |
| ":verilog_filelist", | |
| "//common/strings:mem_block", | |
| "//common/strings:string_memory_map", | |
| "//common/text:text_structure", | |
| "//common/util:file_util", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/status:statusor", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_absl//absl/time", | |
| "@com_google_absl//absl/types:optional", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_project_test", | |
| srcs = ["verilog_project_test.cc"], | |
| deps = [ | |
| ":verilog_project", | |
| "//common/text:text_structure", | |
| "//common/util:file_util", | |
| "//common/util:logging", | |
| "//common/util:range", | |
| "//verilog/CST:module", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "symbol_table", | |
| srcs = ["symbol_table.cc"], | |
| hdrs = ["symbol_table.h"], | |
| deps = [ | |
| ":verilog_project", | |
| "//common/strings:compare", | |
| "//common/strings:display_utils", | |
| "//common/text:concrete_syntax_leaf", | |
| "//common/text:concrete_syntax_tree", | |
| "//common/text:symbol", | |
| "//common/text:token_info", | |
| "//common/text:tree_context_visitor", | |
| "//common/text:tree_utils", | |
| "//common/text:visitors", | |
| "//common/util:enum_flags", | |
| "//common/util:logging", | |
| "//common/util:map_tree", | |
| "//common/util:spacer", | |
| "//common/util:tree_operations", | |
| "//common/util:value_saver", | |
| "//common/util:vector_tree", | |
| "//verilog/CST:class", | |
| "//verilog/CST:declaration", | |
| "//verilog/CST:functions", | |
| "//verilog/CST:macro", | |
| "//verilog/CST:module", | |
| "//verilog/CST:net", | |
| "//verilog/CST:package", | |
| "//verilog/CST:parameters", | |
| "//verilog/CST:port", | |
| "//verilog/CST:seq_block", | |
| "//verilog/CST:statement", | |
| "//verilog/CST:tasks", | |
| "//verilog/CST:type", | |
| "//verilog/CST:verilog_nonterminals", | |
| "//verilog/parser:verilog_parser", | |
| "//verilog/parser:verilog_token_enum", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_absl//absl/strings:str_format", | |
| ], | |
| ) | |
| cc_test( | |
| name = "symbol_table_test", | |
| srcs = ["symbol_table_test.cc"], | |
| deps = [ | |
| ":symbol_table", | |
| ":verilog_project", | |
| "//common/text:symbol", | |
| "//common/text:tree_utils", | |
| "//common/util:file_util", | |
| "//common/util:logging", | |
| "//common/util:range", | |
| "//common/util:tree_operations", | |
| "@com_google_absl//absl/base:core_headers", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "dependencies", | |
| srcs = ["dependencies.cc"], | |
| hdrs = ["dependencies.h"], | |
| deps = [ | |
| ":symbol_table", | |
| ":verilog_project", | |
| "//common/strings:compare", | |
| "//common/strings:display_utils", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "dependencies_test", | |
| srcs = ["dependencies_test.cc"], | |
| deps = [ | |
| ":dependencies", | |
| "//common/util:file_util", | |
| "@com_google_absl//absl/status", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) |