| # 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", | |
| srcs = ["descriptions.cc"], | |
| hdrs = ["descriptions.h"], | |
| deps = ["@com_google_absl//absl/strings"], | |
| alwayslink = 1, | |
| ) | |
| 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 = "descriptions_test", | |
| srcs = ["descriptions_test.cc"], | |
| deps = [ | |
| ":descriptions", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| 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/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/memory", | |
| "@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/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/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/strings", | |
| ], | |
| ) | |
| cc_test( | |
| name = "verilog_analyzer_test", | |
| srcs = ["verilog_analyzer_test.cc"], | |
| deps = [ | |
| ":verilog_analyzer", | |
| "//common/analysis:file_analyzer", | |
| "//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/memory", | |
| "@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/util:file_util", | |
| "//common/util:logging", | |
| "@com_google_absl//absl/memory", | |
| "@com_google_absl//absl/status", | |
| "@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", | |
| ], | |
| ) |