diff --git a/executable_semantics/BUILD b/executable_semantics/BUILD index b8e48a0a7135..a5f4ff86d565 100644 --- a/executable_semantics/BUILD +++ b/executable_semantics/BUILD @@ -12,7 +12,7 @@ cc_binary( name = "executable_semantics", srcs = ["main.cpp"], deps = [ - ":syntax", + "//executable_semantics/syntax", "@llvm-project//llvm:Support", ], ) @@ -21,61 +21,7 @@ cc_library( name = "tracing_flag", srcs = ["tracing_flag.cpp"], hdrs = ["tracing_flag.h"], - visibility = ["//visibility:public"], -) - -cc_library( - name = "syntax", - srcs = [ - "syntax.tab.cpp", - "syntax.yy.cpp", - "syntax_helpers.cpp", - "syntax_helpers.h", - ], - hdrs = ["syntax.tab.h"], - # Disable warnings for generated code. - copts = [ - "-Wno-unneeded-internal-declaration", - "-Wno-unused-function", - "-Wno-writable-strings", - ], - deps = [ - ":tracing_flag", - "//executable_semantics/ast:declaration", - "//executable_semantics/ast:expression", - "//executable_semantics/ast:field_list", - "//executable_semantics/interpreter", - ], -) - -genrule( - name = "syntax_bison_srcs", - srcs = ["syntax.ypp"], - outs = [ - "syntax.tab.cpp", - "syntax.tab.h", - ], - cmd = "M4=$(M4) $(BISON) " + - "--output=$(location syntax.tab.cpp) " + - "--defines=$(location syntax.tab.h) " + - "$(location syntax.ypp)", - toolchains = [ - "@rules_bison//bison:current_bison_toolchain", - "@rules_m4//m4:current_m4_toolchain", - ], -) - -genrule( - name = "syntax_flex_srcs", - srcs = ["syntax.lpp"], - outs = ["syntax.yy.cpp"], - cmd = "M4=$(M4) $(FLEX) " + - "--outfile=$(location syntax.yy.cpp) " + - "$(location syntax.lpp)", - toolchains = [ - "@rules_flex//flex:current_flex_toolchain", - "@rules_m4//m4:current_m4_toolchain", - ], + visibility = ["//executable_semantics:__subpackages__"], ) EXAMPLES = [ diff --git a/executable_semantics/main.cpp b/executable_semantics/main.cpp index fe2d099f03c6..84ad6a9c40bd 100644 --- a/executable_semantics/main.cpp +++ b/executable_semantics/main.cpp @@ -6,7 +6,7 @@ #include #include -#include "executable_semantics/syntax_helpers.h" +#include "executable_semantics/syntax/syntax_helpers.h" #include "executable_semantics/tracing_flag.h" #include "llvm/Support/CommandLine.h" diff --git a/executable_semantics/syntax/BUILD b/executable_semantics/syntax/BUILD new file mode 100644 index 000000000000..0d13a31ee9bb --- /dev/null +++ b/executable_semantics/syntax/BUILD @@ -0,0 +1,64 @@ +# Part of the Carbon Language project, under the Apache License v2.0 with LLVM +# Exceptions. See /LICENSE for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# TODO(https://github.com/carbon-language/carbon-lang/issues/266): +# Migrate bison/flex usage to a more hermetic bazel build. + +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +package(default_visibility = ["//executable_semantics:__subpackages__"]) + +cc_library( + name = "syntax", + srcs = [ + "syntax.tab.cpp", + "syntax.yy.cpp", + "syntax_helpers.cpp", + "syntax_helpers.h", + ], + hdrs = ["syntax.tab.h"], + # Disable warnings for generated code. + copts = [ + "-Wno-unneeded-internal-declaration", + "-Wno-unused-function", + "-Wno-writable-strings", + ], + deps = [ + "//executable_semantics:tracing_flag", + "//executable_semantics/ast:declaration", + "//executable_semantics/ast:expression", + "//executable_semantics/ast:field_list", + "//executable_semantics/interpreter", + ], +) + +genrule( + name = "syntax_bison_srcs", + srcs = ["syntax.ypp"], + outs = [ + "syntax.tab.cpp", + "syntax.tab.h", + ], + cmd = "M4=$(M4) $(BISON) " + + "--output=$(location syntax.tab.cpp) " + + "--defines=$(location syntax.tab.h) " + + "$(location syntax.ypp)", + toolchains = [ + "@rules_bison//bison:current_bison_toolchain", + "@rules_m4//m4:current_m4_toolchain", + ], +) + +genrule( + name = "syntax_flex_srcs", + srcs = ["syntax.lpp"], + outs = ["syntax.yy.cpp"], + cmd = "M4=$(M4) $(FLEX) " + + "--outfile=$(location syntax.yy.cpp) " + + "$(location syntax.lpp)", + toolchains = [ + "@rules_flex//flex:current_flex_toolchain", + "@rules_m4//m4:current_m4_toolchain", + ], +) diff --git a/executable_semantics/syntax.lpp b/executable_semantics/syntax/syntax.lpp similarity index 97% rename from executable_semantics/syntax.lpp rename to executable_semantics/syntax/syntax.lpp index 3807195c78e9..e1a934da97cb 100644 --- a/executable_semantics/syntax.lpp +++ b/executable_semantics/syntax/syntax.lpp @@ -6,7 +6,7 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception %{ #include -#include "executable_semantics/syntax.tab.h" +#include "executable_semantics/syntax/syntax.tab.h" %} /* Turn off legacy bits we don't need */ diff --git a/executable_semantics/syntax.ypp b/executable_semantics/syntax/syntax.ypp similarity index 99% rename from executable_semantics/syntax.ypp rename to executable_semantics/syntax/syntax.ypp index 4bb95de2969b..5f8a0105e86c 100644 --- a/executable_semantics/syntax.ypp +++ b/executable_semantics/syntax/syntax.ypp @@ -10,7 +10,7 @@ #include #include -#include "executable_semantics/syntax_helpers.h" +#include "executable_semantics/syntax/syntax_helpers.h" } %code requires { diff --git a/executable_semantics/syntax_helpers.cpp b/executable_semantics/syntax/syntax_helpers.cpp similarity index 96% rename from executable_semantics/syntax_helpers.cpp rename to executable_semantics/syntax/syntax_helpers.cpp index 06ff0cb543f0..fc8a9c129e0b 100644 --- a/executable_semantics/syntax_helpers.cpp +++ b/executable_semantics/syntax/syntax_helpers.cpp @@ -2,7 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -#include "executable_semantics/syntax_helpers.h" +#include "executable_semantics/syntax/syntax_helpers.h" #include diff --git a/executable_semantics/syntax_helpers.h b/executable_semantics/syntax/syntax_helpers.h similarity index 100% rename from executable_semantics/syntax_helpers.h rename to executable_semantics/syntax/syntax_helpers.h