xref: /aosp_15_r20/external/antlr/tool/src/BUILD.bazel (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1"""BUILD.bazel file for ANTLR 3."""
2
3load("@rules_java//java:defs.bzl", "java_binary", "java_library", "java_test")
4
5package(default_visibility = ["//visibility:private"])
6
7java_binary(
8    name = "tool",
9    main_class = "org.antlr.Tool",
10    visibility = ["//:__pkg__"],
11    runtime_deps = [":tool_lib"],
12)
13
14java_library(
15    name = "tool_lib",
16    srcs = glob(["main/java/**/*.java"]) + [
17        "main/java/org/antlr/grammar/v3/ANTLRLexer.java",
18        "main/java/org/antlr/grammar/v3/ANTLRParser.java",
19        "main/java/org/antlr/grammar/v3/ANTLRTreePrinter.java",
20        "main/java/org/antlr/grammar/v3/ANTLRv3Lexer.java",
21        "main/java/org/antlr/grammar/v3/ANTLRv3Parser.java",
22        "main/java/org/antlr/grammar/v3/ANTLRv3Tree.java",
23        "main/java/org/antlr/grammar/v3/ActionAnalysis.java",
24        "main/java/org/antlr/grammar/v3/ActionTranslator.java",
25        "main/java/org/antlr/grammar/v3/AssignTokenTypesWalker.java",
26        "main/java/org/antlr/grammar/v3/CodeGenTreeWalker.java",
27        "main/java/org/antlr/grammar/v3/DefineGrammarItemsWalker.java",
28        "main/java/org/antlr/grammar/v3/LeftRecursiveRuleWalker.java",
29        "main/java/org/antlr/grammar/v3/TreeToNFAConverter.java",
30    ],
31    javacopts = [
32        "-Xep:EqualsHashCode:OFF",
33    ],
34    resource_strip_prefix = "tool/src/main/resources",
35    resources = glob(["main/resources/**/*.stg"]),
36    visibility = ["//visibility:public"],
37    deps = [
38        ":tool_bootstrap",
39        "//:java_runtime",
40        "@stringtemplate4",
41    ],
42)
43
44genrule(
45    name = "tool_bootstrap",
46    srcs = [
47        "main/antlr3/org/antlr/grammar/v3/ANTLR.g",
48        "main/antlr3/org/antlr/grammar/v3/ANTLRTreePrinter.g",
49        "main/antlr3/org/antlr/grammar/v3/ANTLRv3.g",
50        "main/antlr3/org/antlr/grammar/v3/ANTLRv3Tree.g",
51        "main/antlr3/org/antlr/grammar/v3/ActionAnalysis.g",
52        "main/antlr3/org/antlr/grammar/v3/ActionTranslator.g",
53        "main/antlr3/org/antlr/grammar/v3/AssignTokenTypesWalker.g",
54        "main/antlr3/org/antlr/grammar/v3/CodeGenTreeWalker.g",
55        "main/antlr3/org/antlr/grammar/v3/DefineGrammarItemsWalker.g",
56        "main/antlr3/org/antlr/grammar/v3/LeftRecursiveRuleWalker.g",
57        "main/antlr3/org/antlr/grammar/v3/TreeToNFAConverter.g",
58    ],
59    outs = [
60        "main/java/org/antlr/grammar/v3/ANTLRLexer.java",
61        "main/java/org/antlr/grammar/v3/ANTLRParser.java",
62        "main/java/org/antlr/grammar/v3/ANTLRTreePrinter.java",
63        "main/java/org/antlr/grammar/v3/ANTLRv3Lexer.java",
64        "main/java/org/antlr/grammar/v3/ANTLRv3Parser.java",
65        "main/java/org/antlr/grammar/v3/ANTLRv3Tree.java",
66        "main/java/org/antlr/grammar/v3/ActionAnalysis.java",
67        "main/java/org/antlr/grammar/v3/ActionTranslator.java",
68        "main/java/org/antlr/grammar/v3/AssignTokenTypesWalker.java",
69        "main/java/org/antlr/grammar/v3/CodeGenTreeWalker.java",
70        "main/java/org/antlr/grammar/v3/DefineGrammarItemsWalker.java",
71        "main/java/org/antlr/grammar/v3/LeftRecursiveRuleWalker.java",
72        "main/java/org/antlr/grammar/v3/TreeToNFAConverter.java",
73    ],
74    cmd = """
75      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/ANTLR.g)
76      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/ANTLRTreePrinter.g)
77      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/ANTLRv3.g)
78      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/ANTLRv3Tree.g)
79      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/ActionAnalysis.g)
80      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/ActionTranslator.g)
81      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/AssignTokenTypesWalker.g)
82      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/CodeGenTreeWalker.g)
83      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/DefineGrammarItemsWalker.g)
84      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/LeftRecursiveRuleWalker.g)
85      $(JAVA) -cp $(location @antlr3_bootstrap//jar) org.antlr.Tool -fo $(RULEDIR)/main/java/org/antlr/grammar/v3 $(location :main/antlr3/org/antlr/grammar/v3/TreeToNFAConverter.g)
86    """,
87    toolchains = ["@bazel_tools//tools/jdk:current_host_java_runtime"],
88    tools = ["@antlr3_bootstrap//jar"],
89)
90
91java_test(
92    name = "tests",
93    srcs = glob(["test/java/**/*.java"]),
94    args = [
95        "org.antlr.test.TestASTConstruction",
96        "org.antlr.test.TestAttributes",
97        "org.antlr.test.TestAutoAST",
98        "org.antlr.test.TestBufferedTreeNodeStream",
99        "org.antlr.test.TestCharDFAConversion",
100        "org.antlr.test.TestCommonTokenStream",
101        "org.antlr.test.TestCompositeGrammars",
102        "org.antlr.test.TestDFAConversion",
103        "org.antlr.test.TestDFAMatching",
104        "org.antlr.test.TestFastQueue",
105        "org.antlr.test.TestHeteroAST",
106        "org.antlr.test.TestInterpretedLexing",
107        "org.antlr.test.TestInterpretedParsing",
108        "org.antlr.test.TestIntervalSet",
109        "org.antlr.test.TestJavaCodeGeneration",
110        "org.antlr.test.TestLeftRecursion",
111        "org.antlr.test.TestLexer",
112        "org.antlr.test.TestMessages",
113        "org.antlr.test.TestNFAConstruction",
114        "org.antlr.test.TestRewriteAST",
115        "org.antlr.test.TestRewriteTemplates",
116        "org.antlr.test.TestSemanticPredicateEvaluation",
117        "org.antlr.test.TestSemanticPredicates",
118        "org.antlr.test.TestSets",
119        "org.antlr.test.TestSymbolDefinitions",
120        "org.antlr.test.TestSyntacticPredicateEvaluation",
121        "org.antlr.test.TestSyntaxErrors",
122        "org.antlr.test.TestTemplates",
123        "org.antlr.test.TestTokenRewriteStream",
124        "org.antlr.test.TestTopologicalSort",
125        "org.antlr.test.TestTreeGrammarRewriteAST",
126        "org.antlr.test.TestTreeIterator",
127        "org.antlr.test.TestTreeNodeStream",
128        "org.antlr.test.TestTreeParsing",
129        "org.antlr.test.TestTrees",
130        "org.antlr.test.TestTreeWizard",
131    ],
132    javacopts = [
133        "-Xep:JUnit4RunWithMissing:OFF",
134    ],
135    main_class = "org.junit.runner.JUnitCore",
136    use_testrunner = False,
137    visibility = ["//:__pkg__"],
138    deps = [
139        ":tool_lib",
140        "//:java_runtime",
141        "@hamcrest_core//jar",
142        "@junit//jar",
143        "@stringtemplate4",
144    ],
145)
146