diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel index 86e856735..ba31cd46a 100644 --- a/parser/BUILD.bazel +++ b/parser/BUILD.bazel @@ -26,7 +26,7 @@ java_library( java_library( name = "cel_g4_visitors", visibility = ["//visibility:public"], - exports = ["//parser/src/main/java/dev/cel/parser:cel_g4_visitors"], + exports = ["//parser/src/main/java/dev/cel/parser/gen:cel_g4_visitors"], ) java_library( diff --git a/parser/src/main/java/dev/cel/parser/BUILD.bazel b/parser/src/main/java/dev/cel/parser/BUILD.bazel index 3def9c472..f2b65a206 100644 --- a/parser/src/main/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/main/java/dev/cel/parser/BUILD.bazel @@ -44,7 +44,6 @@ java_library( tags = [ ], deps = [ - ":cel_g4_visitors", ":macro", ":operator", ":parser_builder", @@ -54,6 +53,7 @@ java_library( "//common/annotations", "//common/ast", "//common/internal", + "//parser:cel_g4_visitors", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", "@maven//:org_antlr_antlr4_runtime", @@ -103,24 +103,6 @@ java_library( ], ) -antlr4_java_combined( - name = "cel_g4", - src = "CEL.g4", - listener = False, - package = "cel.parser.internal", - visitor = True, -) - -java_library( - name = "cel_g4_visitors", - srcs = [":cel_g4"], - tags = [ - ], - deps = [ - "@maven//:org_antlr_antlr4_runtime", - ], -) - java_library( name = "unparser", srcs = UNPARSER_SOURCES, diff --git a/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel b/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel new file mode 100644 index 000000000..a8cc069b0 --- /dev/null +++ b/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel @@ -0,0 +1,27 @@ +""" +The generated parser is kept seperate from //parser/src/main/java/dev/cel/parser +to avoid a path conflict with parser/src/main/java/dev/cel/parser/CelParser.java +that causes build failures on filesystems with case-insensitive paths (e.g. macOS). +""" +load("//:antlr.bzl", "antlr4_java_combined") + +antlr4_java_combined( + name = "cel_g4", + src = "CEL.g4", + listener = False, + package = "cel.parser.internal", + visitor = True, +) + +java_library( + name = "cel_g4_visitors", + srcs = [":cel_g4"], + tags = [ + ], + deps = [ + "@maven//:org_antlr_antlr4_runtime", + ], + visibility = [ + "//parser:__pkg__", + ] +) diff --git a/parser/src/main/java/dev/cel/parser/CEL.g4 b/parser/src/main/java/dev/cel/parser/gen/CEL.g4 similarity index 100% rename from parser/src/main/java/dev/cel/parser/CEL.g4 rename to parser/src/main/java/dev/cel/parser/gen/CEL.g4