Reorganize the source tree.
Primarily, this moves front_end/ and back_end/ into compiler/, and
breaks up public/.
Top level directories are now:
compiler/ -- All compiler source code
runtime/ -- Runtime libraries
doc/ -- Documentation
testdata/ -- Test .embs and related files
integration/ -- Support for using Emboss with other tools
Additionally, there are:
embossc -- Standalone driver for the compiler
build_defs.bzl -- Bazel emboss_cc_library macro
README.md -- 1-pager that shows inline on github.com/google/emboss/
... plus some miscellaneous files that are required to be at the
repository root.
diff --git a/examples/span_se_log_file_status.emb b/BUILD
similarity index 74%
rename from examples/span_se_log_file_status.emb
rename to BUILD
index b0c1088..826db68 100644
--- a/examples/span_se_log_file_status.emb
+++ b/BUILD
@@ -1,21 +1,13 @@
# Copyright 2019 Google LLC
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# https://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
-[$default byte_order: "LittleEndian"]
-
-struct LogFileStatus:
- 0:4 UInt file_state
- 4:16 UInt:8[12] file_name
- 16:20 UInt file_size_kb
- 20:24 UInt media
diff --git a/public/build_defs.bzl b/build_defs.bzl
similarity index 72%
rename from public/build_defs.bzl
rename to build_defs.bzl
index caac8a7..cf03336 100644
--- a/public/build_defs.bzl
+++ b/build_defs.bzl
@@ -44,16 +44,16 @@
name = name + "_header",
tools = [
# TODO(bolms): Make "emboss" driver program.
- "//front_end:emboss_front_end",
- "//back_end/cpp:emboss_codegen_cpp",
+ "//compiler/front_end:emboss_front_end",
+ "//compiler/back_end/cpp:emboss_codegen_cpp",
],
srcs = srcs + [dep + "__emb" for dep in deps],
- cmd = ("$(location //front_end:emboss_front_end) " +
+ cmd = ("$(location //compiler/front_end:emboss_front_end) " +
"--output-ir-to-stdout " +
"--import-dir=. " +
"--import-dir='$(GENDIR)' " +
"$(location {}) > $(@D)/$$(basename $(OUTS) .h).ir; " +
- "$(location //back_end/cpp:emboss_codegen_cpp) " +
+ "$(location //compiler/back_end/cpp:emboss_codegen_cpp) " +
"< $(@D)/$$(basename $(OUTS) .h).ir > " +
"$(OUTS); " +
"rm $(@D)/$$(basename $(OUTS) .h).ir").format(") $location( ".join(srcs)),
@@ -68,26 +68,7 @@
":" + name + "_header",
],
deps = deps + [
- "//public:cpp_utils",
+ "//runtime/cpp:cpp_utils",
],
visibility = visibility,
)
-
-# TODO(bolms): Maybe move this to a non-public build_defs?
-def emboss_cc_util_test(name, copts = [], **kwargs):
- """Constructs two cc_test targets, with and without optimizations."""
- native.cc_test(
- name = name,
- copts = copts + ["-Wsign-compare"],
- **kwargs
- )
- native.cc_test(
- name = name + "_no_opts",
- copts = copts + [
- # This is generally a dangerous flag for an individual target, but
- # these tests do not depend on any other .cc files that might
- # #include any Emboss headers.
- "-DEMBOSS_NO_OPTIMIZATIONS",
- ],
- **kwargs
- )
diff --git a/back_end/__init__.py b/compiler/back_end/__init__.py
similarity index 100%
rename from back_end/__init__.py
rename to compiler/back_end/__init__.py
diff --git a/back_end/cpp/BUILD b/compiler/back_end/cpp/BUILD
similarity index 95%
rename from back_end/cpp/BUILD
rename to compiler/back_end/cpp/BUILD
index 7a6f72e..b54d3ab 100644
--- a/back_end/cpp/BUILD
+++ b/compiler/back_end/cpp/BUILD
@@ -30,7 +30,7 @@
visibility = ["//visibility:public"],
deps = [
":header_generator",
- "//public:ir_pb2",
+ "//compiler/util:ir_pb2",
],
)
@@ -41,10 +41,10 @@
"generated_code_templates",
],
deps = [
- "//back_end/util:code_template",
- "//public:ir_pb2",
- "//util:ir_util",
- "//util:name_conversion",
+ "//compiler/back_end/util:code_template",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:ir_util",
+ "//compiler/util:name_conversion",
],
)
@@ -254,7 +254,7 @@
"testcode/bits_test.cc",
],
deps = [
- "//public:cpp_utils",
+ "//runtime/cpp:cpp_utils",
"//testdata:bits_emboss",
"@com_google_googletest//:gtest_main",
],
@@ -266,7 +266,7 @@
"testcode/anonymous_bits_test.cc",
],
deps = [
- "//public:cpp_utils",
+ "//runtime/cpp:cpp_utils",
"//testdata:anonymous_bits_emboss",
"@com_google_googletest//:gtest_main",
],
diff --git a/back_end/cpp/__init__.py b/compiler/back_end/cpp/__init__.py
similarity index 100%
rename from back_end/cpp/__init__.py
rename to compiler/back_end/cpp/__init__.py
diff --git a/back_end/cpp/build_defs.bzl b/compiler/back_end/cpp/build_defs.bzl
similarity index 100%
rename from back_end/cpp/build_defs.bzl
rename to compiler/back_end/cpp/build_defs.bzl
diff --git a/back_end/cpp/emboss_codegen_cpp.py b/compiler/back_end/cpp/emboss_codegen_cpp.py
similarity index 91%
rename from back_end/cpp/emboss_codegen_cpp.py
rename to compiler/back_end/cpp/emboss_codegen_cpp.py
index 1dbe5ad..b1d0f72 100644
--- a/back_end/cpp/emboss_codegen_cpp.py
+++ b/compiler/back_end/cpp/emboss_codegen_cpp.py
@@ -22,8 +22,8 @@
import sys
-from back_end.cpp import header_generator
-from public import ir_pb2
+from compiler.back_end.cpp import header_generator
+from compiler.util import ir_pb2
def main(argv):
diff --git a/back_end/cpp/generated_code_templates b/compiler/back_end/cpp/generated_code_templates
similarity index 99%
rename from back_end/cpp/generated_code_templates
rename to compiler/back_end/cpp/generated_code_templates
index dcecdd2..57c2b9c 100644
--- a/back_end/cpp/generated_code_templates
+++ b/compiler/back_end/cpp/generated_code_templates
@@ -33,7 +33,7 @@
#include <type_traits>
#include <utility>
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
$_includes_$
diff --git a/back_end/cpp/header_generator.py b/compiler/back_end/cpp/header_generator.py
similarity index 99%
rename from back_end/cpp/header_generator.py
rename to compiler/back_end/cpp/header_generator.py
index d8a8804..9a4072d 100644
--- a/back_end/cpp/header_generator.py
+++ b/compiler/back_end/cpp/header_generator.py
@@ -22,13 +22,13 @@
import pkgutil
import re
-from back_end.util import code_template
-from public import ir_pb2
-from util import ir_util
-from util import name_conversion
+from compiler.back_end.util import code_template
+from compiler.util import ir_pb2
+from compiler.util import ir_util
+from compiler.util import name_conversion
_TEMPLATES = code_template.parse_templates(pkgutil.get_data(
- "back_end.cpp",
+ "compiler.back_end.cpp",
"generated_code_templates").decode(encoding="UTF-8"))
_CPP_RESERVED_WORDS = set((
@@ -63,7 +63,7 @@
_SUPPORT_NAMESPACE = "::emboss::support"
# TODO(bolms): This should be a command-line flag.
-_PRELUDE_INCLUDE_FILE = "public/emboss_prelude.h"
+_PRELUDE_INCLUDE_FILE = "runtime/cpp/emboss_prelude.h"
def _get_module_namespace(module):
diff --git a/back_end/cpp/testcode/alignments_test.cc b/compiler/back_end/cpp/testcode/alignments_test.cc
similarity index 99%
rename from back_end/cpp/testcode/alignments_test.cc
rename to compiler/back_end/cpp/testcode/alignments_test.cc
index 0c5eef2..da54413 100644
--- a/back_end/cpp/testcode/alignments_test.cc
+++ b/compiler/back_end/cpp/testcode/alignments_test.cc
@@ -19,7 +19,7 @@
#include <vector>
#include "gtest/gtest.h"
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
#include "testdata/alignments.emb.h"
namespace emboss {
diff --git a/back_end/cpp/testcode/anonymous_bits_test.cc b/compiler/back_end/cpp/testcode/anonymous_bits_test.cc
similarity index 98%
rename from back_end/cpp/testcode/anonymous_bits_test.cc
rename to compiler/back_end/cpp/testcode/anonymous_bits_test.cc
index 8890a0c..15d8e1d 100644
--- a/back_end/cpp/testcode/anonymous_bits_test.cc
+++ b/compiler/back_end/cpp/testcode/anonymous_bits_test.cc
@@ -19,7 +19,7 @@
#include <vector>
#include "gtest/gtest.h"
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
#include "testdata/anonymous_bits.emb.h"
namespace emboss {
diff --git a/back_end/cpp/testcode/auto_array_size_test.cc b/compiler/back_end/cpp/testcode/auto_array_size_test.cc
similarity index 99%
rename from back_end/cpp/testcode/auto_array_size_test.cc
rename to compiler/back_end/cpp/testcode/auto_array_size_test.cc
index 56c9610..b220649 100644
--- a/back_end/cpp/testcode/auto_array_size_test.cc
+++ b/compiler/back_end/cpp/testcode/auto_array_size_test.cc
@@ -22,7 +22,7 @@
#include "gmock/gmock.h"
#include "gtest/gtest.h"
-#include "public/emboss_text_util.h"
+#include "runtime/cpp/emboss_text_util.h"
#include "testdata/auto_array_size.emb.h"
namespace emboss {
diff --git a/back_end/cpp/testcode/bcd_test.cc b/compiler/back_end/cpp/testcode/bcd_test.cc
similarity index 100%
rename from back_end/cpp/testcode/bcd_test.cc
rename to compiler/back_end/cpp/testcode/bcd_test.cc
diff --git a/back_end/cpp/testcode/bits_test.cc b/compiler/back_end/cpp/testcode/bits_test.cc
similarity index 99%
rename from back_end/cpp/testcode/bits_test.cc
rename to compiler/back_end/cpp/testcode/bits_test.cc
index 8d2b102..28e6397 100644
--- a/back_end/cpp/testcode/bits_test.cc
+++ b/compiler/back_end/cpp/testcode/bits_test.cc
@@ -18,7 +18,7 @@
#include <vector>
#include "gtest/gtest.h"
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
#include "testdata/bits.emb.h"
namespace emboss {
diff --git a/back_end/cpp/testcode/complex_structure_test.cc b/compiler/back_end/cpp/testcode/complex_structure_test.cc
similarity index 100%
rename from back_end/cpp/testcode/complex_structure_test.cc
rename to compiler/back_end/cpp/testcode/complex_structure_test.cc
diff --git a/back_end/cpp/testcode/condition_test.cc b/compiler/back_end/cpp/testcode/condition_test.cc
similarity index 100%
rename from back_end/cpp/testcode/condition_test.cc
rename to compiler/back_end/cpp/testcode/condition_test.cc
diff --git a/back_end/cpp/testcode/dynamic_size_test.cc b/compiler/back_end/cpp/testcode/dynamic_size_test.cc
similarity index 100%
rename from back_end/cpp/testcode/dynamic_size_test.cc
rename to compiler/back_end/cpp/testcode/dynamic_size_test.cc
diff --git a/back_end/cpp/testcode/enum_test.cc b/compiler/back_end/cpp/testcode/enum_test.cc
similarity index 100%
rename from back_end/cpp/testcode/enum_test.cc
rename to compiler/back_end/cpp/testcode/enum_test.cc
diff --git a/back_end/cpp/testcode/explicit_sizes_test.cc b/compiler/back_end/cpp/testcode/explicit_sizes_test.cc
similarity index 100%
rename from back_end/cpp/testcode/explicit_sizes_test.cc
rename to compiler/back_end/cpp/testcode/explicit_sizes_test.cc
diff --git a/back_end/cpp/testcode/float_test.cc b/compiler/back_end/cpp/testcode/float_test.cc
similarity index 100%
rename from back_end/cpp/testcode/float_test.cc
rename to compiler/back_end/cpp/testcode/float_test.cc
diff --git a/back_end/cpp/testcode/importer_test.cc b/compiler/back_end/cpp/testcode/importer_test.cc
similarity index 100%
rename from back_end/cpp/testcode/importer_test.cc
rename to compiler/back_end/cpp/testcode/importer_test.cc
diff --git a/back_end/cpp/testcode/inline_type_test.cc b/compiler/back_end/cpp/testcode/inline_type_test.cc
similarity index 100%
rename from back_end/cpp/testcode/inline_type_test.cc
rename to compiler/back_end/cpp/testcode/inline_type_test.cc
diff --git a/back_end/cpp/testcode/int_sizes_test.cc b/compiler/back_end/cpp/testcode/int_sizes_test.cc
similarity index 100%
rename from back_end/cpp/testcode/int_sizes_test.cc
rename to compiler/back_end/cpp/testcode/int_sizes_test.cc
diff --git a/back_end/cpp/testcode/namespace_test.cc b/compiler/back_end/cpp/testcode/namespace_test.cc
similarity index 100%
rename from back_end/cpp/testcode/namespace_test.cc
rename to compiler/back_end/cpp/testcode/namespace_test.cc
diff --git a/back_end/cpp/testcode/nested_structure_test.cc b/compiler/back_end/cpp/testcode/nested_structure_test.cc
similarity index 100%
rename from back_end/cpp/testcode/nested_structure_test.cc
rename to compiler/back_end/cpp/testcode/nested_structure_test.cc
diff --git a/back_end/cpp/testcode/parameters_test.cc b/compiler/back_end/cpp/testcode/parameters_test.cc
similarity index 100%
rename from back_end/cpp/testcode/parameters_test.cc
rename to compiler/back_end/cpp/testcode/parameters_test.cc
diff --git a/back_end/cpp/testcode/read_log_file_status_test.cc b/compiler/back_end/cpp/testcode/read_log_file_status_test.cc
similarity index 100%
rename from back_end/cpp/testcode/read_log_file_status_test.cc
rename to compiler/back_end/cpp/testcode/read_log_file_status_test.cc
diff --git a/back_end/cpp/testcode/requires_test.cc b/compiler/back_end/cpp/testcode/requires_test.cc
similarity index 100%
rename from back_end/cpp/testcode/requires_test.cc
rename to compiler/back_end/cpp/testcode/requires_test.cc
diff --git a/back_end/cpp/testcode/start_size_range_test.cc b/compiler/back_end/cpp/testcode/start_size_range_test.cc
similarity index 100%
rename from back_end/cpp/testcode/start_size_range_test.cc
rename to compiler/back_end/cpp/testcode/start_size_range_test.cc
diff --git a/back_end/cpp/testcode/subtypes_test.cc b/compiler/back_end/cpp/testcode/subtypes_test.cc
similarity index 100%
rename from back_end/cpp/testcode/subtypes_test.cc
rename to compiler/back_end/cpp/testcode/subtypes_test.cc
diff --git a/back_end/cpp/testcode/text_format_test.cc b/compiler/back_end/cpp/testcode/text_format_test.cc
similarity index 100%
rename from back_end/cpp/testcode/text_format_test.cc
rename to compiler/back_end/cpp/testcode/text_format_test.cc
diff --git a/back_end/cpp/testcode/uint_sizes_test.cc b/compiler/back_end/cpp/testcode/uint_sizes_test.cc
similarity index 100%
rename from back_end/cpp/testcode/uint_sizes_test.cc
rename to compiler/back_end/cpp/testcode/uint_sizes_test.cc
diff --git a/back_end/cpp/testcode/virtual_field_test.cc b/compiler/back_end/cpp/testcode/virtual_field_test.cc
similarity index 100%
rename from back_end/cpp/testcode/virtual_field_test.cc
rename to compiler/back_end/cpp/testcode/virtual_field_test.cc
diff --git a/back_end/util/BUILD b/compiler/back_end/util/BUILD
similarity index 93%
rename from back_end/util/BUILD
rename to compiler/back_end/util/BUILD
index c00631f..4598d2f 100644
--- a/back_end/util/BUILD
+++ b/compiler/back_end/util/BUILD
@@ -15,7 +15,7 @@
# Shared utilities for Emboss back ends.
package(
- default_visibility = ["//back_end:__subpackages__"],
+ default_visibility = ["//compiler:__subpackages__"],
)
py_library(
diff --git a/back_end/util/__init__.py b/compiler/back_end/util/__init__.py
similarity index 100%
rename from back_end/util/__init__.py
rename to compiler/back_end/util/__init__.py
diff --git a/back_end/util/code_template.py b/compiler/back_end/util/code_template.py
similarity index 100%
rename from back_end/util/code_template.py
rename to compiler/back_end/util/code_template.py
diff --git a/back_end/util/code_template_test.py b/compiler/back_end/util/code_template_test.py
similarity index 98%
rename from back_end/util/code_template_test.py
rename to compiler/back_end/util/code_template_test.py
index 97322a2..31e1400 100644
--- a/back_end/util/code_template_test.py
+++ b/compiler/back_end/util/code_template_test.py
@@ -15,7 +15,7 @@
"""Tests for code_template."""
import unittest
-from back_end.util import code_template
+from compiler.back_end.util import code_template
class FormatTest(unittest.TestCase):
diff --git a/front_end/BUILD b/compiler/front_end/BUILD
similarity index 76%
rename from front_end/BUILD
rename to compiler/front_end/BUILD
index 07b96a2..14a4696 100644
--- a/front_end/BUILD
+++ b/compiler/front_end/BUILD
@@ -28,8 +28,8 @@
name = "tokenizer",
srcs = ["tokenizer.py"],
deps = [
- "//util:error",
- "//util:parser_types",
+ "//compiler/util:error",
+ "//compiler/util:parser_types",
],
)
@@ -39,8 +39,8 @@
python_version = "PY3",
deps = [
":tokenizer",
- "//util:error",
- "//util:parser_types",
+ "//compiler/util:error",
+ "//compiler/util:parser_types",
],
)
@@ -48,7 +48,7 @@
name = "lr1",
srcs = ["lr1.py"],
deps = [
- "//util:parser_types",
+ "//compiler/util:parser_types",
],
)
@@ -58,7 +58,7 @@
python_version = "PY3",
deps = [
":lr1",
- "//util:parser_types",
+ "//compiler/util:parser_types",
],
)
@@ -66,9 +66,9 @@
name = "module_ir",
srcs = ["module_ir.py"],
deps = [
- "//public:ir_pb2",
- "//util:name_conversion",
- "//util:parser_types",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:name_conversion",
+ "//compiler/util:parser_types",
],
)
@@ -84,7 +84,7 @@
":parser",
":test_util",
":tokenizer",
- "//public:ir_pb2",
+ "//compiler/util:ir_pb2",
],
)
@@ -98,7 +98,7 @@
":lr1",
":module_ir",
":tokenizer",
- "//util:simple_memoizer",
+ "//compiler/util:simple_memoizer",
],
)
@@ -110,7 +110,7 @@
":lr1",
":parser",
":tokenizer",
- "//util:parser_types",
+ "//compiler/util:parser_types",
],
)
@@ -128,8 +128,8 @@
python_version = "PY3",
deps = [
":test_util",
- "//public:ir_pb2",
- "//util:parser_types",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:parser_types",
],
)
@@ -153,9 +153,9 @@
":tokenizer",
":type_check",
":write_inference",
- "//public:ir_pb2",
- "//util:error",
- "//util:parser_types",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:parser_types",
],
)
@@ -169,9 +169,9 @@
deps = [
":glue",
":test_util",
- "//public:ir_pb2",
- "//util:error",
- "//util:parser_types",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:parser_types",
],
)
@@ -180,9 +180,9 @@
srcs = ["synthetics.py"],
visibility = ["//visibility:private"],
deps = [
- "//public:ir_pb2",
- "//util:expression_parser",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:expression_parser",
+ "//compiler/util:traverse_ir",
],
)
@@ -202,10 +202,10 @@
srcs = ["symbol_resolver.py"],
visibility = ["//visibility:private"],
deps = [
- "//public:ir_pb2",
- "//util:error",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -218,7 +218,7 @@
":glue",
":symbol_resolver",
":test_util",
- "//util:error",
+ "//compiler/util:error",
],
)
@@ -229,9 +229,9 @@
deps = [
":attributes",
":expression_bounds",
- "//public:ir_pb2",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -244,7 +244,7 @@
":glue",
":test_util",
":write_inference",
- "//public:ir_pb2",
+ "//compiler/util:ir_pb2",
],
)
@@ -254,10 +254,10 @@
deps = [
":attributes",
":type_check",
- "//public:ir_pb2",
- "//util:error",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -277,9 +277,9 @@
":attribute_checker",
":glue",
":test_util",
- "//public:ir_pb2",
- "//util:error",
- "//util:ir_util",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:ir_util",
],
)
@@ -288,10 +288,10 @@
srcs = ["type_check.py"],
deps = [
":attributes",
- "//public:ir_pb2",
- "//util:error",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -304,7 +304,7 @@
":glue",
":test_util",
":type_check",
- "//util:error",
+ "//compiler/util:error",
],
)
@@ -316,9 +316,9 @@
],
deps = [
":attributes",
- "//public:ir_pb2",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -342,10 +342,10 @@
],
deps = [
":attributes",
- "//public:ir_pb2",
- "//util:error",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -358,7 +358,7 @@
":constraints",
":glue",
":test_util",
- "//util:error",
+ "//compiler/util:error",
],
)
@@ -366,10 +366,10 @@
name = "dependency_checker",
srcs = ["dependency_checker.py"],
deps = [
- "//public:ir_pb2",
- "//util:error",
- "//util:ir_util",
- "//util:traverse_ir",
+ "//compiler/util:ir_pb2",
+ "//compiler/util:error",
+ "//compiler/util:ir_util",
+ "//compiler/util:traverse_ir",
],
)
@@ -382,7 +382,7 @@
":dependency_checker",
":glue",
":test_util",
- "//util:error",
+ "//compiler/util:error",
],
)
@@ -394,7 +394,7 @@
deps = [
":glue",
":module_ir",
- "//util:error",
+ "//compiler/util:error",
],
)
@@ -408,7 +408,7 @@
":format_emb",
":parser",
":tokenizer",
- "//util:error",
+ "//compiler/util:error",
],
)
@@ -418,7 +418,7 @@
deps = [
":module_ir",
":tokenizer",
- "//util:parser_types",
+ "//compiler/util:parser_types",
],
)
@@ -452,7 +452,7 @@
name = "docs_are_up_to_date_test",
srcs = ["docs_are_up_to_date_test.py"],
data = [
- "//g3doc:grammar_md",
+ "//doc:grammar_md",
],
python_version = "PY3",
deps = [
diff --git a/front_end/__init__.py b/compiler/front_end/__init__.py
similarity index 100%
rename from front_end/__init__.py
rename to compiler/front_end/__init__.py
diff --git a/front_end/attribute_checker.py b/compiler/front_end/attribute_checker.py
similarity index 98%
rename from front_end/attribute_checker.py
rename to compiler/front_end/attribute_checker.py
index b1e4072..faba299 100644
--- a/front_end/attribute_checker.py
+++ b/compiler/front_end/attribute_checker.py
@@ -18,12 +18,12 @@
verifies attributes which may have been manually entered.
"""
-from front_end import attributes
-from front_end import type_check
-from public import ir_pb2
-from util import error
-from util import ir_util
-from util import traverse_ir
+from compiler.front_end import attributes
+from compiler.front_end import type_check
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import ir_util
+from compiler.util import traverse_ir
# The "namespace" attribute is C++-back-end specific, and so should not be used
# by the front end.
diff --git a/front_end/attribute_checker_test.py b/compiler/front_end/attribute_checker_test.py
similarity index 98%
rename from front_end/attribute_checker_test.py
rename to compiler/front_end/attribute_checker_test.py
index f9a6cfc..225a85e 100644
--- a/front_end/attribute_checker_test.py
+++ b/compiler/front_end/attribute_checker_test.py
@@ -15,12 +15,12 @@
"""Tests for attribute_checker.py."""
import unittest
-from front_end import attribute_checker
-from front_end import glue
-from front_end import test_util
-from public import ir_pb2
-from util import error
-from util import ir_util
+from compiler.front_end import attribute_checker
+from compiler.front_end import glue
+from compiler.front_end import test_util
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import ir_util
# These are not shared with attribute_checker.py because their values are part
# of the contract with back ends.
diff --git a/front_end/attributes.py b/compiler/front_end/attributes.py
similarity index 100%
rename from front_end/attributes.py
rename to compiler/front_end/attributes.py
diff --git a/front_end/constraints.py b/compiler/front_end/constraints.py
similarity index 98%
rename from front_end/constraints.py
rename to compiler/front_end/constraints.py
index a8628a1..8494757 100644
--- a/front_end/constraints.py
+++ b/compiler/front_end/constraints.py
@@ -16,11 +16,11 @@
import pkgutil
-from front_end import attributes
-from public import ir_pb2
-from util import error
-from util import ir_util
-from util import traverse_ir
+from compiler.front_end import attributes
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import ir_util
+from compiler.util import traverse_ir
def _render_type(type_ir, ir):
@@ -396,7 +396,7 @@
_RESERVED_WORDS = {}
language = None
for line in pkgutil.get_data(
- "front_end",
+ "compiler.front_end",
"reserved_words").decode(encoding="UTF-8").splitlines():
stripped_line = line.partition("#")[0].strip()
if not stripped_line:
diff --git a/front_end/constraints_test.py b/compiler/front_end/constraints_test.py
similarity index 98%
rename from front_end/constraints_test.py
rename to compiler/front_end/constraints_test.py
index 1f12dc8..ff33586 100644
--- a/front_end/constraints_test.py
+++ b/compiler/front_end/constraints_test.py
@@ -15,12 +15,12 @@
"""Tests for constraints.py."""
import unittest
-from front_end import attributes
-from front_end import constraints
-from front_end import glue
-from front_end import test_util
-from util import error
-from util import ir_util
+from compiler.front_end import attributes
+from compiler.front_end import constraints
+from compiler.front_end import glue
+from compiler.front_end import test_util
+from compiler.util import error
+from compiler.util import ir_util
def _make_ir_from_emb(emb_text, name="m.emb"):
diff --git a/front_end/dependency_checker.py b/compiler/front_end/dependency_checker.py
similarity index 98%
rename from front_end/dependency_checker.py
rename to compiler/front_end/dependency_checker.py
index 7a1fa7d..b37dff2 100644
--- a/front_end/dependency_checker.py
+++ b/compiler/front_end/dependency_checker.py
@@ -14,10 +14,10 @@
"""Checks for dependency cycles in Emboss IR."""
-from public import ir_pb2
-from util import error
-from util import ir_util
-from util import traverse_ir
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import ir_util
+from compiler.util import traverse_ir
def _add_reference_to_dependencies(reference, dependencies, name):
diff --git a/front_end/dependency_checker_test.py b/compiler/front_end/dependency_checker_test.py
similarity index 98%
rename from front_end/dependency_checker_test.py
rename to compiler/front_end/dependency_checker_test.py
index 2639db7..ba7ceb7 100644
--- a/front_end/dependency_checker_test.py
+++ b/compiler/front_end/dependency_checker_test.py
@@ -15,10 +15,10 @@
"""Tests for dependency_checker.py."""
import unittest
-from front_end import dependency_checker
-from front_end import glue
-from front_end import test_util
-from util import error
+from compiler.front_end import dependency_checker
+from compiler.front_end import glue
+from compiler.front_end import test_util
+from compiler.util import error
def _parse_snippet(emb_file):
diff --git a/front_end/docs_are_up_to_date_test.py b/compiler/front_end/docs_are_up_to_date_test.py
similarity index 90%
rename from front_end/docs_are_up_to_date_test.py
rename to compiler/front_end/docs_are_up_to_date_test.py
index ded2b55..d103d17 100644
--- a/front_end/docs_are_up_to_date_test.py
+++ b/compiler/front_end/docs_are_up_to_date_test.py
@@ -17,14 +17,14 @@
import pkgutil
import unittest
-from front_end import generate_grammar_md
+from compiler.front_end import generate_grammar_md
class DocsAreUpToDateTest(unittest.TestCase):
"""Tests that auto-generated, checked-in documentation is up to date."""
def test_grammar_md(self):
- doc_md = pkgutil.get_data("g3doc", "grammar.md").decode(encoding="UTF-8")
+ doc_md = pkgutil.get_data("doc", "grammar.md").decode(encoding="UTF-8")
correct_md = generate_grammar_md.generate_grammar_md()
# If this fails, run:
#
diff --git a/front_end/emboss_front_end.py b/compiler/front_end/emboss_front_end.py
similarity index 98%
rename from front_end/emboss_front_end.py
rename to compiler/front_end/emboss_front_end.py
index 1002d3e..aa74eb7 100644
--- a/front_end/emboss_front_end.py
+++ b/compiler/front_end/emboss_front_end.py
@@ -27,9 +27,9 @@
from os import path
import sys
-from front_end import glue
-from front_end import module_ir
-from util import error
+from compiler.front_end import glue
+from compiler.front_end import module_ir
+from compiler.util import error
def _parse_command_line(argv):
diff --git a/front_end/error_examples b/compiler/front_end/error_examples
similarity index 100%
rename from front_end/error_examples
rename to compiler/front_end/error_examples
diff --git a/front_end/expression_bounds.py b/compiler/front_end/expression_bounds.py
similarity index 99%
rename from front_end/expression_bounds.py
rename to compiler/front_end/expression_bounds.py
index 8ea53f3..7191ada 100644
--- a/front_end/expression_bounds.py
+++ b/compiler/front_end/expression_bounds.py
@@ -17,9 +17,9 @@
import fractions
import operator
-from public import ir_pb2
-from util import ir_util
-from util import traverse_ir
+from compiler.util import ir_pb2
+from compiler.util import ir_util
+from compiler.util import traverse_ir
def compute_constraints_of_expression(expression, ir):
diff --git a/front_end/expression_bounds_test.py b/compiler/front_end/expression_bounds_test.py
similarity index 99%
rename from front_end/expression_bounds_test.py
rename to compiler/front_end/expression_bounds_test.py
index 64f1530..15870b4 100644
--- a/front_end/expression_bounds_test.py
+++ b/compiler/front_end/expression_bounds_test.py
@@ -15,9 +15,9 @@
"""Tests for expression_bounds."""
import unittest
-from front_end import expression_bounds
-from front_end import glue
-from front_end import test_util
+from compiler.front_end import expression_bounds
+from compiler.front_end import glue
+from compiler.front_end import test_util
class ComputeConstantsTest(unittest.TestCase):
diff --git a/front_end/format.py b/compiler/front_end/format.py
similarity index 96%
rename from front_end/format.py
rename to compiler/front_end/format.py
index 862177c..1e2389b 100644
--- a/front_end/format.py
+++ b/compiler/front_end/format.py
@@ -24,10 +24,10 @@
import os
import sys
-from front_end import format_emb
-from front_end import parser
-from front_end import tokenizer
-from util import error
+from compiler.front_end import format_emb
+from compiler.front_end import parser
+from compiler.front_end import tokenizer
+from compiler.util import error
def _parse_command_line(argv):
diff --git a/front_end/format_emb.py b/compiler/front_end/format_emb.py
similarity index 99%
rename from front_end/format_emb.py
rename to compiler/front_end/format_emb.py
index 1824c85..3ddd20e 100644
--- a/front_end/format_emb.py
+++ b/compiler/front_end/format_emb.py
@@ -23,9 +23,9 @@
import collections
import itertools
-from front_end import module_ir
-from front_end import tokenizer
-from util import parser_types
+from compiler.front_end import module_ir
+from compiler.front_end import tokenizer
+from compiler.util import parser_types
class Config(collections.namedtuple('Config',
diff --git a/front_end/format_emb_test.py b/compiler/front_end/format_emb_test.py
similarity index 97%
rename from front_end/format_emb_test.py
rename to compiler/front_end/format_emb_test.py
index 75ce19d..a114315 100644
--- a/front_end/format_emb_test.py
+++ b/compiler/front_end/format_emb_test.py
@@ -23,10 +23,10 @@
import sys
import unittest
-from front_end import format_emb
-from front_end import module_ir
-from front_end import parser
-from front_end import tokenizer
+from compiler.front_end import format_emb
+from compiler.front_end import module_ir
+from compiler.front_end import parser
+from compiler.front_end import tokenizer
class SanityCheckerTest(unittest.TestCase):
diff --git a/front_end/generate_grammar_md.py b/compiler/front_end/generate_grammar_md.py
similarity index 98%
rename from front_end/generate_grammar_md.py
rename to compiler/front_end/generate_grammar_md.py
index 62a9475..6cb2c58 100644
--- a/front_end/generate_grammar_md.py
+++ b/compiler/front_end/generate_grammar_md.py
@@ -19,9 +19,9 @@
import re
import sys
-from front_end import constraints
-from front_end import module_ir
-from front_end import tokenizer
+from compiler.front_end import constraints
+from compiler.front_end import module_ir
+from compiler.front_end import tokenizer
# Keep the output to less than 80 columns, so that the preformatted sections are
# not cut off.
diff --git a/front_end/glue.py b/compiler/front_end/glue.py
similarity index 94%
rename from front_end/glue.py
rename to compiler/front_end/glue.py
index 691b126..10c4365 100644
--- a/front_end/glue.py
+++ b/compiler/front_end/glue.py
@@ -21,21 +21,21 @@
import collections
import pkgutil
-from front_end import attribute_checker
-from front_end import constraints
-from front_end import dependency_checker
-from front_end import expression_bounds
-from front_end import lr1
-from front_end import module_ir
-from front_end import parser
-from front_end import symbol_resolver
-from front_end import synthetics
-from front_end import tokenizer
-from front_end import type_check
-from front_end import write_inference
-from public import ir_pb2
-from util import error
-from util import parser_types
+from compiler.front_end import attribute_checker
+from compiler.front_end import constraints
+from compiler.front_end import dependency_checker
+from compiler.front_end import expression_bounds
+from compiler.front_end import lr1
+from compiler.front_end import module_ir
+from compiler.front_end import parser
+from compiler.front_end import symbol_resolver
+from compiler.front_end import synthetics
+from compiler.front_end import tokenizer
+from compiler.front_end import type_check
+from compiler.front_end import write_inference
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import parser_types
_IrDebugInfo = collections.namedtuple("IrDebugInfo", ["ir", "debug_info",
"errors"])
@@ -201,7 +201,7 @@
def get_prelude():
"""Returns the module IR and debug info of the Emboss Prelude."""
return parse_module_text(
- pkgutil.get_data("front_end",
+ pkgutil.get_data("compiler.front_end",
"prelude.emb").decode(encoding="UTF-8"),
"")
diff --git a/front_end/glue_test.py b/compiler/front_end/glue_test.py
similarity index 98%
rename from front_end/glue_test.py
rename to compiler/front_end/glue_test.py
index 7bc03f5..41c4864 100644
--- a/front_end/glue_test.py
+++ b/compiler/front_end/glue_test.py
@@ -17,11 +17,11 @@
import pkgutil
import unittest
-from front_end import glue
-from front_end import test_util
-from public import ir_pb2
-from util import error
-from util import parser_types
+from compiler.front_end import glue
+from compiler.front_end import test_util
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import parser_types
_location = parser_types.make_location
diff --git a/front_end/lr1.py b/compiler/front_end/lr1.py
similarity index 99%
rename from front_end/lr1.py
rename to compiler/front_end/lr1.py
index 112bf12..41111d1 100644
--- a/front_end/lr1.py
+++ b/compiler/front_end/lr1.py
@@ -28,7 +28,7 @@
import collections
-from util import parser_types
+from compiler.util import parser_types
class Item(collections.namedtuple("Item", ["production", "dot", "terminal",
diff --git a/front_end/lr1_test.py b/compiler/front_end/lr1_test.py
similarity index 99%
rename from front_end/lr1_test.py
rename to compiler/front_end/lr1_test.py
index 7573856..44ffa75 100644
--- a/front_end/lr1_test.py
+++ b/compiler/front_end/lr1_test.py
@@ -17,8 +17,8 @@
import collections
import unittest
-from front_end import lr1
-from util import parser_types
+from compiler.front_end import lr1
+from compiler.util import parser_types
def _make_items(text):
diff --git a/front_end/module_ir.py b/compiler/front_end/module_ir.py
similarity index 99%
rename from front_end/module_ir.py
rename to compiler/front_end/module_ir.py
index 0be34be..aea005c 100644
--- a/front_end/module_ir.py
+++ b/compiler/front_end/module_ir.py
@@ -25,9 +25,9 @@
import re
import sys
-from public import ir_pb2
-from util import name_conversion
-from util import parser_types
+from compiler.util import ir_pb2
+from compiler.util import name_conversion
+from compiler.util import parser_types
# Intermediate types; should not be found in the final IR.
diff --git a/front_end/module_ir_test.py b/compiler/front_end/module_ir_test.py
similarity index 99%
rename from front_end/module_ir_test.py
rename to compiler/front_end/module_ir_test.py
index e19ed79..c9249b4 100644
--- a/front_end/module_ir_test.py
+++ b/compiler/front_end/module_ir_test.py
@@ -20,11 +20,11 @@
import pkgutil
import unittest
-from front_end import module_ir
-from front_end import parser
-from front_end import test_util
-from front_end import tokenizer
-from public import ir_pb2
+from compiler.front_end import module_ir
+from compiler.front_end import parser
+from compiler.front_end import test_util
+from compiler.front_end import tokenizer
+from compiler.util import ir_pb2
_TESTDATA_PATH = "testdata.golden"
_MINIMAL_SAMPLE = parser.parse_module(
diff --git a/front_end/parser.py b/compiler/front_end/parser.py
similarity index 95%
rename from front_end/parser.py
rename to compiler/front_end/parser.py
index 9ef5eb1..600b644 100644
--- a/front_end/parser.py
+++ b/compiler/front_end/parser.py
@@ -16,10 +16,10 @@
import pkgutil
-from front_end import lr1
-from front_end import module_ir
-from front_end import tokenizer
-from util import simple_memoizer
+from compiler.front_end import lr1
+from compiler.front_end import module_ir
+from compiler.front_end import tokenizer
+from compiler.util import simple_memoizer
class ParserGenerationError(Exception):
@@ -104,7 +104,7 @@
@simple_memoizer.memoize
def _load_module_parser():
- path = "front_end"
+ path = "compiler.front_end"
error_examples = parse_error_examples(
pkgutil.get_data(path, "error_examples").decode("utf-8"))
return generate_parser(module_ir.START_SYMBOL, module_ir.PRODUCTIONS,
diff --git a/front_end/parser_test.py b/compiler/front_end/parser_test.py
similarity index 97%
rename from front_end/parser_test.py
rename to compiler/front_end/parser_test.py
index e3f6579..06cfd03 100644
--- a/front_end/parser_test.py
+++ b/compiler/front_end/parser_test.py
@@ -15,10 +15,10 @@
"""Tests for parser."""
import unittest
-from front_end import lr1
-from front_end import parser
-from front_end import tokenizer
-from util import parser_types
+from compiler.front_end import lr1
+from compiler.front_end import parser
+from compiler.front_end import tokenizer
+from compiler.util import parser_types
# TODO(bolms): This is repeated in lr1_test.py; separate into test utils?
diff --git a/front_end/prelude.emb b/compiler/front_end/prelude.emb
similarity index 100%
rename from front_end/prelude.emb
rename to compiler/front_end/prelude.emb
diff --git a/front_end/reserved_words b/compiler/front_end/reserved_words
similarity index 100%
rename from front_end/reserved_words
rename to compiler/front_end/reserved_words
diff --git a/front_end/symbol_resolver.py b/compiler/front_end/symbol_resolver.py
similarity index 99%
rename from front_end/symbol_resolver.py
rename to compiler/front_end/symbol_resolver.py
index e059275..987b869 100644
--- a/front_end/symbol_resolver.py
+++ b/compiler/front_end/symbol_resolver.py
@@ -20,10 +20,10 @@
import collections
-from public import ir_pb2
-from util import error
-from util import ir_util
-from util import traverse_ir
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import ir_util
+from compiler.util import traverse_ir
# TODO(bolms): Symbol resolution raises an exception at the first error, but
# this is one place where it can make sense to report multiple errors.
diff --git a/front_end/symbol_resolver_test.py b/compiler/front_end/symbol_resolver_test.py
similarity index 99%
rename from front_end/symbol_resolver_test.py
rename to compiler/front_end/symbol_resolver_test.py
index a2f7f4e..4428f26 100644
--- a/front_end/symbol_resolver_test.py
+++ b/compiler/front_end/symbol_resolver_test.py
@@ -15,10 +15,10 @@
"""Tests for emboss.front_end.symbol_resolver."""
import unittest
-from front_end import glue
-from front_end import symbol_resolver
-from front_end import test_util
-from util import error
+from compiler.front_end import glue
+from compiler.front_end import symbol_resolver
+from compiler.front_end import test_util
+from compiler.util import error
_HAPPY_EMB = """
struct Foo:
diff --git a/front_end/synthetics.py b/compiler/front_end/synthetics.py
similarity index 97%
rename from front_end/synthetics.py
rename to compiler/front_end/synthetics.py
index 04e535f..c0dbcab 100644
--- a/front_end/synthetics.py
+++ b/compiler/front_end/synthetics.py
@@ -14,11 +14,11 @@
"""Adds auto-generated virtual fields to the IR."""
-from front_end import attributes
-from public import ir_pb2
-from util import expression_parser
-from util import ir_util
-from util import traverse_ir
+from compiler.front_end import attributes
+from compiler.util import ir_pb2
+from compiler.util import expression_parser
+from compiler.util import ir_util
+from compiler.util import traverse_ir
def _mark_as_synthetic(proto):
diff --git a/front_end/synthetics_test.py b/compiler/front_end/synthetics_test.py
similarity index 98%
rename from front_end/synthetics_test.py
rename to compiler/front_end/synthetics_test.py
index 10a23d3..3d3f9a5 100644
--- a/front_end/synthetics_test.py
+++ b/compiler/front_end/synthetics_test.py
@@ -15,10 +15,10 @@
"""Tests for front_end.synthetics."""
import unittest
-from front_end import glue
-from front_end import synthetics
-from front_end import test_util
-from public import ir_pb2
+from compiler.front_end import glue
+from compiler.front_end import synthetics
+from compiler.front_end import test_util
+from compiler.util import ir_pb2
class SyntheticsTest(unittest.TestCase):
diff --git a/front_end/test_util.py b/compiler/front_end/test_util.py
similarity index 98%
rename from front_end/test_util.py
rename to compiler/front_end/test_util.py
index 1bbdd35..dd80343 100644
--- a/front_end/test_util.py
+++ b/compiler/front_end/test_util.py
@@ -14,7 +14,7 @@
"""Utilities for test code."""
-from public import ir_pb2
+from compiler.util import ir_pb2
def proto_is_superset(proto, expected_values, path=""):
diff --git a/front_end/test_util_test.py b/compiler/front_end/test_util_test.py
similarity index 97%
rename from front_end/test_util_test.py
rename to compiler/front_end/test_util_test.py
index 89c7c9f..c5ba61b 100644
--- a/front_end/test_util_test.py
+++ b/compiler/front_end/test_util_test.py
@@ -16,9 +16,9 @@
import unittest
-from front_end import test_util
-from public import ir_pb2
-from util import parser_types
+from compiler.front_end import test_util
+from compiler.util import ir_pb2
+from compiler.util import parser_types
class ProtoIsSupersetTest(unittest.TestCase):
diff --git a/front_end/tokenizer.py b/compiler/front_end/tokenizer.py
similarity index 98%
rename from front_end/tokenizer.py
rename to compiler/front_end/tokenizer.py
index a9d005a..4262371 100644
--- a/front_end/tokenizer.py
+++ b/compiler/front_end/tokenizer.py
@@ -31,8 +31,8 @@
import collections
import re
-from util import error
-from util import parser_types
+from compiler.util import error
+from compiler.util import parser_types
def tokenize(text, file_name):
diff --git a/front_end/tokenizer_test.py b/compiler/front_end/tokenizer_test.py
similarity index 98%
rename from front_end/tokenizer_test.py
rename to compiler/front_end/tokenizer_test.py
index 97b1494..91e1b3b 100644
--- a/front_end/tokenizer_test.py
+++ b/compiler/front_end/tokenizer_test.py
@@ -15,9 +15,9 @@
"""Tests for tokenizer."""
import unittest
-from front_end import tokenizer
-from util import error
-from util import parser_types
+from compiler.front_end import tokenizer
+from compiler.util import error
+from compiler.util import parser_types
def _token_symbols(token_list):
diff --git a/front_end/type_check.py b/compiler/front_end/type_check.py
similarity index 98%
rename from front_end/type_check.py
rename to compiler/front_end/type_check.py
index 141880f..69e0716 100644
--- a/front_end/type_check.py
+++ b/compiler/front_end/type_check.py
@@ -14,11 +14,11 @@
"""Functions for checking expression types."""
-from front_end import attributes
-from public import ir_pb2
-from util import error
-from util import ir_util
-from util import traverse_ir
+from compiler.front_end import attributes
+from compiler.util import ir_pb2
+from compiler.util import error
+from compiler.util import ir_util
+from compiler.util import traverse_ir
def _type_check_expression(expression, source_file_name, ir, errors):
diff --git a/front_end/type_check_test.py b/compiler/front_end/type_check_test.py
similarity index 99%
rename from front_end/type_check_test.py
rename to compiler/front_end/type_check_test.py
index 16defc9..6faaa25 100644
--- a/front_end/type_check_test.py
+++ b/compiler/front_end/type_check_test.py
@@ -15,10 +15,10 @@
"""Tests for front_end.type_check."""
import unittest
-from front_end import glue
-from front_end import test_util
-from front_end import type_check
-from util import error
+from compiler.front_end import glue
+from compiler.front_end import test_util
+from compiler.front_end import type_check
+from compiler.util import error
class TypeAnnotationTest(unittest.TestCase):
diff --git a/front_end/write_inference.py b/compiler/front_end/write_inference.py
similarity index 97%
rename from front_end/write_inference.py
rename to compiler/front_end/write_inference.py
index bef4ac6..09501f0 100644
--- a/front_end/write_inference.py
+++ b/compiler/front_end/write_inference.py
@@ -14,11 +14,11 @@
"""Adds auto-generated virtual fields to the IR."""
-from front_end import attributes
-from front_end import expression_bounds
-from public import ir_pb2
-from util import ir_util
-from util import traverse_ir
+from compiler.front_end import attributes
+from compiler.front_end import expression_bounds
+from compiler.util import ir_pb2
+from compiler.util import ir_util
+from compiler.util import traverse_ir
def _find_field_reference_path(expression):
diff --git a/front_end/write_inference_test.py b/compiler/front_end/write_inference_test.py
similarity index 97%
rename from front_end/write_inference_test.py
rename to compiler/front_end/write_inference_test.py
index 71cfc53..0928d94 100644
--- a/front_end/write_inference_test.py
+++ b/compiler/front_end/write_inference_test.py
@@ -15,10 +15,10 @@
"""Tests for ...emboss.front_end.write_inference."""
import unittest
-from front_end import glue
-from front_end import test_util
-from front_end import write_inference
-from public import ir_pb2
+from compiler.front_end import glue
+from compiler.front_end import test_util
+from compiler.front_end import write_inference
+from compiler.util import ir_pb2
class WriteInferenceTest(unittest.TestCase):
diff --git a/util/BUILD b/compiler/util/BUILD
similarity index 85%
rename from util/BUILD
rename to compiler/util/BUILD
index eec0cd4..92f4cde 100644
--- a/util/BUILD
+++ b/compiler/util/BUILD
@@ -15,23 +15,30 @@
# Shared utilities for Emboss back ends.
package(
- default_visibility = ["//:__subpackages__"],
+ default_visibility = ["//compiler:__subpackages__"],
+)
+
+py_library(
+ name = "ir_pb2",
+ srcs = [
+ "ir_pb2.py",
+ ],
)
py_library(
name = "expression_parser",
srcs = ["expression_parser.py"],
deps = [
- "//front_end:module_ir",
- "//front_end:parser",
- "//front_end:tokenizer",
+ "//compiler/front_end:module_ir",
+ "//compiler/front_end:parser",
+ "//compiler/front_end:tokenizer",
],
)
py_library(
name = "ir_util",
srcs = ["ir_util.py"],
- deps = ["//public:ir_pb2"],
+ deps = [":ir_pb2"],
)
py_test(
@@ -41,7 +48,7 @@
deps = [
":expression_parser",
":ir_util",
- "//public:ir_pb2",
+ ":ir_pb2",
],
)
@@ -65,7 +72,7 @@
srcs = ["traverse_ir.py"],
deps = [
":simple_memoizer",
- "//public:ir_pb2",
+ ":ir_pb2",
],
)
@@ -75,7 +82,7 @@
python_version = "PY3",
deps = [
":traverse_ir",
- "//public:ir_pb2",
+ ":ir_pb2",
],
)
@@ -83,7 +90,7 @@
name = "parser_types",
srcs = ["parser_types.py"],
deps = [
- "//public:ir_pb2",
+ ":ir_pb2",
],
)
@@ -93,7 +100,7 @@
python_version = "PY3",
deps = [
":parser_types",
- "//public:ir_pb2",
+ ":ir_pb2",
],
)
diff --git a/util/error.py b/compiler/util/error.py
similarity index 99%
rename from util/error.py
rename to compiler/util/error.py
index 5a49e70..c85d8fc 100644
--- a/util/error.py
+++ b/compiler/util/error.py
@@ -36,7 +36,7 @@
]
"""
-from util import parser_types
+from compiler.util import parser_types
# Error levels; represented by the strings that will be included in messages.
ERROR = "error"
diff --git a/util/error_test.py b/compiler/util/error_test.py
similarity index 99%
rename from util/error_test.py
rename to compiler/util/error_test.py
index ee36419..7d2577f 100644
--- a/util/error_test.py
+++ b/compiler/util/error_test.py
@@ -16,8 +16,8 @@
import unittest
-from util import error
-from util import parser_types
+from compiler.util import error
+from compiler.util import parser_types
class MessageTest(unittest.TestCase):
diff --git a/util/expression_parser.py b/compiler/util/expression_parser.py
similarity index 93%
rename from util/expression_parser.py
rename to compiler/util/expression_parser.py
index 6b7cc0e..41dd488 100644
--- a/util/expression_parser.py
+++ b/compiler/util/expression_parser.py
@@ -14,9 +14,9 @@
"""Utility function to parse text into an ir_pb2.Expression."""
-from front_end import module_ir
-from front_end import parser
-from front_end import tokenizer
+from compiler.front_end import module_ir
+from compiler.front_end import parser
+from compiler.front_end import tokenizer
def parse(text):
diff --git a/public/ir_pb2.py b/compiler/util/ir_pb2.py
similarity index 100%
rename from public/ir_pb2.py
rename to compiler/util/ir_pb2.py
diff --git a/util/ir_util.py b/compiler/util/ir_util.py
similarity index 99%
rename from util/ir_util.py
rename to compiler/util/ir_util.py
index aa06229..4000e70 100644
--- a/util/ir_util.py
+++ b/compiler/util/ir_util.py
@@ -16,7 +16,7 @@
import operator
-from public import ir_pb2
+from compiler.util import ir_pb2
_FIXED_SIZE_ATTRIBUTE = "fixed_size_in_bits"
diff --git a/util/ir_util_test.py b/compiler/util/ir_util_test.py
similarity index 99%
rename from util/ir_util_test.py
rename to compiler/util/ir_util_test.py
index 81719af..b9d8d84 100644
--- a/util/ir_util_test.py
+++ b/compiler/util/ir_util_test.py
@@ -15,9 +15,9 @@
"""Tests for util.ir_util."""
import unittest
-from public import ir_pb2
-from util import expression_parser
-from util import ir_util
+from compiler.util import ir_pb2
+from compiler.util import expression_parser
+from compiler.util import ir_util
def _parse_expression(text):
diff --git a/util/name_conversion.py b/compiler/util/name_conversion.py
similarity index 100%
rename from util/name_conversion.py
rename to compiler/util/name_conversion.py
diff --git a/util/name_conversion_test.py b/compiler/util/name_conversion_test.py
similarity index 96%
rename from util/name_conversion_test.py
rename to compiler/util/name_conversion_test.py
index 5a423e3..a980a1d 100644
--- a/util/name_conversion_test.py
+++ b/compiler/util/name_conversion_test.py
@@ -15,7 +15,7 @@
"""Tests for util.name_conversion."""
import unittest
-from util import name_conversion
+from compiler.util import name_conversion
class NameConversionTest(unittest.TestCase):
diff --git a/util/parser_types.py b/compiler/util/parser_types.py
similarity index 98%
rename from util/parser_types.py
rename to compiler/util/parser_types.py
index b934eb9..98c8ee2 100644
--- a/util/parser_types.py
+++ b/compiler/util/parser_types.py
@@ -21,7 +21,7 @@
"""
import collections
-from public import ir_pb2
+from compiler.util import ir_pb2
def _make_position(line, column):
diff --git a/util/parser_types_test.py b/compiler/util/parser_types_test.py
similarity index 98%
rename from util/parser_types_test.py
rename to compiler/util/parser_types_test.py
index 03109d5..6dbfffb 100644
--- a/util/parser_types_test.py
+++ b/compiler/util/parser_types_test.py
@@ -15,8 +15,8 @@
"""Tests for parser_types."""
import unittest
-from public import ir_pb2
-from util import parser_types
+from compiler.util import ir_pb2
+from compiler.util import parser_types
class PositionTest(unittest.TestCase):
diff --git a/util/simple_memoizer.py b/compiler/util/simple_memoizer.py
similarity index 100%
rename from util/simple_memoizer.py
rename to compiler/util/simple_memoizer.py
diff --git a/util/simple_memoizer_test.py b/compiler/util/simple_memoizer_test.py
similarity index 97%
rename from util/simple_memoizer_test.py
rename to compiler/util/simple_memoizer_test.py
index 50e3113..cfc35c7 100644
--- a/util/simple_memoizer_test.py
+++ b/compiler/util/simple_memoizer_test.py
@@ -15,7 +15,7 @@
"""Tests for simple_memoizer."""
import unittest
-from util import simple_memoizer
+from compiler.util import simple_memoizer
class SimpleMemoizerTest(unittest.TestCase):
diff --git a/util/traverse_ir.py b/compiler/util/traverse_ir.py
similarity index 99%
rename from util/traverse_ir.py
rename to compiler/util/traverse_ir.py
index 6e5b8a9..f0c10d0 100644
--- a/util/traverse_ir.py
+++ b/compiler/util/traverse_ir.py
@@ -16,7 +16,7 @@
import inspect
-from public import ir_pb2
+from compiler.util import ir_pb2
def _call_with_optional_args(function, positional_arg, keyword_args):
diff --git a/util/traverse_ir_test.py b/compiler/util/traverse_ir_test.py
similarity index 98%
rename from util/traverse_ir_test.py
rename to compiler/util/traverse_ir_test.py
index deb6dac..2e35a31 100644
--- a/util/traverse_ir_test.py
+++ b/compiler/util/traverse_ir_test.py
@@ -18,8 +18,8 @@
import unittest
-from public import ir_pb2
-from util import traverse_ir
+from compiler.util import ir_pb2
+from compiler.util import traverse_ir
_EXAMPLE_IR = ir_pb2.EmbossIr.from_json("""{
"module": [
diff --git a/g3doc/BUILD b/doc/BUILD
similarity index 82%
rename from g3doc/BUILD
rename to doc/BUILD
index 3ee8e01..cf661bc 100644
--- a/g3doc/BUILD
+++ b/doc/BUILD
@@ -23,7 +23,6 @@
"grammar.md",
"__init__.py",
],
- # This should only be needed by docs_are_up_to_date_test, but there is no
- # way to specify a narrower visibility.
- visibility = ["//front_end:__pkg__"],
+ # This should only be needed by docs_are_up_to_date_test.
+ visibility = ["//:__subpackages__"],
)
diff --git a/g3doc/BogoNEL_BN-P-6000404_User_Guide.pdf b/doc/BogoNEL_BN-P-6000404_User_Guide.pdf
similarity index 100%
rename from g3doc/BogoNEL_BN-P-6000404_User_Guide.pdf
rename to doc/BogoNEL_BN-P-6000404_User_Guide.pdf
Binary files differ
diff --git a/g3doc/__init__.py b/doc/__init__.py
similarity index 100%
rename from g3doc/__init__.py
rename to doc/__init__.py
diff --git a/g3doc/cpp-guide.md b/doc/cpp-guide.md
similarity index 100%
rename from g3doc/cpp-guide.md
rename to doc/cpp-guide.md
diff --git a/g3doc/cpp-reference.md b/doc/cpp-reference.md
similarity index 100%
rename from g3doc/cpp-reference.md
rename to doc/cpp-reference.md
diff --git a/g3doc/design.md b/doc/design.md
similarity index 100%
rename from g3doc/design.md
rename to doc/design.md
diff --git a/g3doc/grammar.md b/doc/grammar.md
similarity index 100%
rename from g3doc/grammar.md
rename to doc/grammar.md
diff --git a/g3doc/guide.md b/doc/guide.md
similarity index 100%
rename from g3doc/guide.md
rename to doc/guide.md
diff --git a/g3doc/index.md b/doc/index.md
similarity index 100%
rename from g3doc/index.md
rename to doc/index.md
diff --git a/g3doc/language-reference.md b/doc/language-reference.md
similarity index 100%
rename from g3doc/language-reference.md
rename to doc/language-reference.md
diff --git a/g3doc/modular_congruence_multiplication_proof.md b/doc/modular_congruence_multiplication_proof.md
similarity index 100%
rename from g3doc/modular_congruence_multiplication_proof.md
rename to doc/modular_congruence_multiplication_proof.md
diff --git a/g3doc/roadmap.md b/doc/roadmap.md
similarity index 100%
rename from g3doc/roadmap.md
rename to doc/roadmap.md
diff --git a/g3doc/sitemap.md b/doc/sitemap.md
similarity index 100%
rename from g3doc/sitemap.md
rename to doc/sitemap.md
diff --git a/g3doc/text-format.md b/doc/text-format.md
similarity index 100%
rename from g3doc/text-format.md
rename to doc/text-format.md
diff --git a/g3doc/todo.md b/doc/todo.md
similarity index 100%
rename from g3doc/todo.md
rename to doc/todo.md
diff --git a/embossc b/embossc
index 9b1a69d..c32cd58 100755
--- a/embossc
+++ b/embossc
@@ -64,7 +64,7 @@
subprocess_environment["PYTHONPATH"] = base_path
front_end_args = [
sys.executable,
- path.join(base_path, "front_end", "emboss_front_end.py"),
+ path.join(base_path, "compiler", "front_end", "emboss_front_end.py"),
"--output-ir-to-stdout",
"--color-output", flags.color_output,
]
@@ -82,7 +82,8 @@
back_end_status = subprocess.run(
[
sys.executable,
- path.join(base_path, "back_end", "cpp", "emboss_codegen_cpp.py"),
+ path.join(base_path, "compiler", "back_end", "cpp",
+ "emboss_codegen_cpp.py"),
],
input=front_end_status.stdout,
stdout=subprocess.PIPE,
diff --git a/integration/googletest/BUILD b/integration/googletest/BUILD
new file mode 100644
index 0000000..b52b103
--- /dev/null
+++ b/integration/googletest/BUILD
@@ -0,0 +1,38 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cc_library(
+ name = "emboss_test_util",
+ testonly = 1,
+ hdrs = ["emboss_test_util.h"],
+ visibility = ["//visibility:public"],
+ deps = [
+ "//runtime/cpp:cpp_utils",
+ "@com_google_googletest//:gtest",
+ "@com_google_absl//absl/memory",
+ ],
+)
+
+cc_test(
+ name = "emboss_test_util_test",
+ srcs = [
+ "emboss_test_util_test.cc",
+ ],
+ copts = ["-Wsign-compare"],
+ deps = [
+ ":emboss_test_util",
+ "@com_google_googletest//:gtest_main",
+ "//testdata:complex_structure_emboss",
+ ],
+)
diff --git a/public/emboss_test_util.h b/integration/googletest/emboss_test_util.h
similarity index 98%
rename from public/emboss_test_util.h
rename to integration/googletest/emboss_test_util.h
index 1919249..07cd2bb 100644
--- a/public/emboss_test_util.h
+++ b/integration/googletest/emboss_test_util.h
@@ -23,7 +23,7 @@
#include "absl/memory/memory.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
-#include "public/emboss_text_util.h"
+#include "runtime/cpp/emboss_text_util.h"
namespace emboss {
diff --git a/public/emboss_test_util_test.cc b/integration/googletest/emboss_test_util_test.cc
similarity index 98%
rename from public/emboss_test_util_test.cc
rename to integration/googletest/emboss_test_util_test.cc
index 4e886a6..bd39c3f 100644
--- a/public/emboss_test_util_test.cc
+++ b/integration/googletest/emboss_test_util_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_test_util.h"
+#include "integration/googletest/emboss_test_util.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
diff --git a/vim/ft-emboss/ftdetect/emboss.vim b/integration/vim/ft-emboss/ftdetect/emboss.vim
similarity index 100%
rename from vim/ft-emboss/ftdetect/emboss.vim
rename to integration/vim/ft-emboss/ftdetect/emboss.vim
diff --git a/vim/ft-emboss/ftplugin/emboss.vim b/integration/vim/ft-emboss/ftplugin/emboss.vim
similarity index 100%
rename from vim/ft-emboss/ftplugin/emboss.vim
rename to integration/vim/ft-emboss/ftplugin/emboss.vim
diff --git a/vim/ft-emboss/syntax/emboss.vim b/integration/vim/ft-emboss/syntax/emboss.vim
similarity index 100%
rename from vim/ft-emboss/syntax/emboss.vim
rename to integration/vim/ft-emboss/syntax/emboss.vim
diff --git a/runtime/cpp/BUILD b/runtime/cpp/BUILD
new file mode 100644
index 0000000..c547c88
--- /dev/null
+++ b/runtime/cpp/BUILD
@@ -0,0 +1,48 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Emboss C++ Runtime.
+
+filegroup(
+ name = "raw_headers",
+ srcs = [
+ "emboss_arithmetic.h",
+ "emboss_array_view.h",
+ "emboss_bit_util.h",
+ "emboss_constant_view.h",
+ "emboss_cpp_types.h",
+ "emboss_cpp_util.h",
+ "emboss_defines.h",
+ "emboss_enum_view.h",
+ "emboss_maybe.h",
+ "emboss_memory_util.h",
+ "emboss_prelude.h",
+ "emboss_text_util.h",
+ "emboss_view_parameters.h",
+ ],
+ visibility = ["//:__subpackages__"],
+)
+
+cc_library(
+ name = "cpp_utils",
+ hdrs = [
+ ":raw_headers",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [
+ # BEGIN INSERT_MY_SITE_DEFINES_TARGET_HERE
+ # "//MY_SITE_DEFINES:TARGET",
+ # END INSERT_MY_SITE_DEFINES_TARGET_HERE
+ ],
+)
diff --git a/public/emboss_arithmetic.h b/runtime/cpp/emboss_arithmetic.h
similarity index 98%
rename from public/emboss_arithmetic.h
rename to runtime/cpp/emboss_arithmetic.h
index bb73b7f..c84df17 100644
--- a/public/emboss_arithmetic.h
+++ b/runtime/cpp/emboss_arithmetic.h
@@ -20,8 +20,8 @@
#include <cstdint>
#include <type_traits>
-#include "public/emboss_bit_util.h"
-#include "public/emboss_maybe.h"
+#include "runtime/cpp/emboss_bit_util.h"
+#include "runtime/cpp/emboss_maybe.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_array_view.h b/runtime/cpp/emboss_array_view.h
similarity index 98%
rename from public/emboss_array_view.h
rename to runtime/cpp/emboss_array_view.h
index 1f888a7..7cb19f9 100644
--- a/public/emboss_array_view.h
+++ b/runtime/cpp/emboss_array_view.h
@@ -21,9 +21,9 @@
#include <tuple>
#include <type_traits>
-#include "public/emboss_arithmetic.h"
-#include "public/emboss_array_view.h"
-#include "public/emboss_text_util.h"
+#include "runtime/cpp/emboss_arithmetic.h"
+#include "runtime/cpp/emboss_array_view.h"
+#include "runtime/cpp/emboss_text_util.h"
namespace emboss {
diff --git a/public/emboss_bit_util.h b/runtime/cpp/emboss_bit_util.h
similarity index 98%
rename from public/emboss_bit_util.h
rename to runtime/cpp/emboss_bit_util.h
index 24ac132..db11c84 100644
--- a/public/emboss_bit_util.h
+++ b/runtime/cpp/emboss_bit_util.h
@@ -20,7 +20,7 @@
#include <cstdint>
#include <type_traits>
-#include "public/emboss_defines.h"
+#include "runtime/cpp/emboss_defines.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_constant_view.h b/runtime/cpp/emboss_constant_view.h
similarity index 97%
rename from public/emboss_constant_view.h
rename to runtime/cpp/emboss_constant_view.h
index 41785e5..b867422 100644
--- a/public/emboss_constant_view.h
+++ b/runtime/cpp/emboss_constant_view.h
@@ -15,7 +15,7 @@
#ifndef EMBOSS_PUBLIC_EMBOSS_CONSTANT_VIEW_H_
#define EMBOSS_PUBLIC_EMBOSS_CONSTANT_VIEW_H_
-#include "public/emboss_maybe.h"
+#include "runtime/cpp/emboss_maybe.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_cpp_types.h b/runtime/cpp/emboss_cpp_types.h
similarity index 100%
rename from public/emboss_cpp_types.h
rename to runtime/cpp/emboss_cpp_types.h
diff --git a/public/emboss_cpp_util.h b/runtime/cpp/emboss_cpp_util.h
similarity index 64%
rename from public/emboss_cpp_util.h
rename to runtime/cpp/emboss_cpp_util.h
index 624f931..e9fc5b8 100644
--- a/public/emboss_cpp_util.h
+++ b/runtime/cpp/emboss_cpp_util.h
@@ -17,15 +17,15 @@
#ifndef EMBOSS_PUBLIC_EMBOSS_CPP_UTIL_H_
#define EMBOSS_PUBLIC_EMBOSS_CPP_UTIL_H_
-#include "public/emboss_arithmetic.h"
-#include "public/emboss_array_view.h"
-#include "public/emboss_bit_util.h"
-#include "public/emboss_constant_view.h"
-#include "public/emboss_cpp_types.h"
-#include "public/emboss_defines.h"
-#include "public/emboss_enum_view.h"
-#include "public/emboss_memory_util.h"
-#include "public/emboss_text_util.h"
-#include "public/emboss_view_parameters.h"
+#include "runtime/cpp/emboss_arithmetic.h"
+#include "runtime/cpp/emboss_array_view.h"
+#include "runtime/cpp/emboss_bit_util.h"
+#include "runtime/cpp/emboss_constant_view.h"
+#include "runtime/cpp/emboss_cpp_types.h"
+#include "runtime/cpp/emboss_defines.h"
+#include "runtime/cpp/emboss_enum_view.h"
+#include "runtime/cpp/emboss_memory_util.h"
+#include "runtime/cpp/emboss_text_util.h"
+#include "runtime/cpp/emboss_view_parameters.h"
#endif // EMBOSS_PUBLIC_EMBOSS_CPP_UTIL_H_
diff --git a/public/emboss_defines.h b/runtime/cpp/emboss_defines.h
similarity index 100%
rename from public/emboss_defines.h
rename to runtime/cpp/emboss_defines.h
diff --git a/public/emboss_enum_view.h b/runtime/cpp/emboss_enum_view.h
similarity index 97%
rename from public/emboss_enum_view.h
rename to runtime/cpp/emboss_enum_view.h
index 6ed9453..8f739ce 100644
--- a/public/emboss_enum_view.h
+++ b/runtime/cpp/emboss_enum_view.h
@@ -21,8 +21,8 @@
#include <string>
#include <utility>
-#include "public/emboss_text_util.h"
-#include "public/emboss_view_parameters.h"
+#include "runtime/cpp/emboss_text_util.h"
+#include "runtime/cpp/emboss_view_parameters.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_maybe.h b/runtime/cpp/emboss_maybe.h
similarity index 97%
rename from public/emboss_maybe.h
rename to runtime/cpp/emboss_maybe.h
index a11ba39..679b9ab 100644
--- a/public/emboss_maybe.h
+++ b/runtime/cpp/emboss_maybe.h
@@ -18,7 +18,7 @@
#include <utility>
-#include "public/emboss_defines.h"
+#include "runtime/cpp/emboss_defines.h"
namespace emboss {
// TODO(bolms): Should Maybe be a public type (i.e., live in ::emboss)?
diff --git a/public/emboss_memory_util.h b/runtime/cpp/emboss_memory_util.h
similarity index 99%
rename from public/emboss_memory_util.h
rename to runtime/cpp/emboss_memory_util.h
index 00d6772..4d36140 100644
--- a/public/emboss_memory_util.h
+++ b/runtime/cpp/emboss_memory_util.h
@@ -20,9 +20,9 @@
#include <cstddef>
#include <cstring>
-#include "public/emboss_bit_util.h"
-#include "public/emboss_cpp_types.h"
-#include "public/emboss_defines.h"
+#include "runtime/cpp/emboss_bit_util.h"
+#include "runtime/cpp/emboss_cpp_types.h"
+#include "runtime/cpp/emboss_defines.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_prelude.h b/runtime/cpp/emboss_prelude.h
similarity index 99%
rename from public/emboss_prelude.h
rename to runtime/cpp/emboss_prelude.h
index 85eeba8..04708a7 100644
--- a/public/emboss_prelude.h
+++ b/runtime/cpp/emboss_prelude.h
@@ -26,7 +26,7 @@
#include <type_traits>
#include <utility>
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
// This namespace must match the [(cpp) namespace] in the Emboss prelude.
namespace emboss {
diff --git a/public/emboss_text_util.h b/runtime/cpp/emboss_text_util.h
similarity index 99%
rename from public/emboss_text_util.h
rename to runtime/cpp/emboss_text_util.h
index 906f8c0..a4ab150 100644
--- a/public/emboss_text_util.h
+++ b/runtime/cpp/emboss_text_util.h
@@ -26,7 +26,7 @@
#include <string>
#include <vector>
-#include "public/emboss_defines.h"
+#include "runtime/cpp/emboss_defines.h"
namespace emboss {
diff --git a/public/emboss_view_parameters.h b/runtime/cpp/emboss_view_parameters.h
similarity index 100%
rename from public/emboss_view_parameters.h
rename to runtime/cpp/emboss_view_parameters.h
diff --git a/public/BUILD b/runtime/cpp/test/BUILD
similarity index 67%
rename from public/BUILD
rename to runtime/cpp/test/BUILD
index dc08030..49928ea 100644
--- a/public/BUILD
+++ b/runtime/cpp/test/BUILD
@@ -19,45 +19,6 @@
"emboss_cc_util_test",
)
-py_library(
- name = "ir_pb2",
- srcs = ["ir_pb2.py"],
- visibility = ["//:__subpackages__"],
-)
-
-filegroup(
- name = "raw_headers",
- srcs = [
- "emboss_arithmetic.h",
- "emboss_array_view.h",
- "emboss_bit_util.h",
- "emboss_constant_view.h",
- "emboss_cpp_types.h",
- "emboss_cpp_util.h",
- "emboss_defines.h",
- "emboss_enum_view.h",
- "emboss_maybe.h",
- "emboss_memory_util.h",
- "emboss_prelude.h",
- "emboss_text_util.h",
- "emboss_view_parameters.h",
- ],
- visibility = ["//:__subpackages__"],
-)
-
-cc_library(
- name = "cpp_utils",
- hdrs = [
- ":raw_headers",
- ],
- visibility = ["//visibility:public"],
- deps = [
- # BEGIN INSERT_MY_SITE_DEFINES_TARGET_HERE
- # "//MY_SITE_DEFINES:TARGET",
- # END INSERT_MY_SITE_DEFINES_TARGET_HERE
- ],
-)
-
emboss_cc_util_test(
name = "emboss_prelude_test",
srcs = [
@@ -65,7 +26,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -77,7 +38,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -89,7 +50,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
"@com_google_absl//absl/strings:str_format",
],
@@ -102,7 +63,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -114,7 +75,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -126,7 +87,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -138,7 +99,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -150,7 +111,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -162,7 +123,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -174,7 +135,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -186,7 +147,7 @@
],
copts = ["-DEMBOSS_FORCE_ALL_CHECKS"],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_googletest//:gtest_main",
],
)
@@ -201,33 +162,8 @@
"-Wsign-compare",
],
deps = [
- ":cpp_utils",
+ "//runtime/cpp:cpp_utils",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
-
-cc_library(
- name = "emboss_test_util",
- testonly = 1,
- hdrs = ["emboss_test_util.h"],
- visibility = ["//visibility:public"],
- deps = [
- ":cpp_utils",
- "@com_google_googletest//:gtest",
- "@com_google_absl//absl/memory",
- ],
-)
-
-cc_test(
- name = "emboss_test_util_test",
- srcs = [
- "emboss_test_util_test.cc",
- ],
- copts = ["-Wsign-compare"],
- deps = [
- ":emboss_test_util",
- "@com_google_googletest//:gtest_main",
- "//testdata:complex_structure_emboss",
- ],
-)
diff --git a/runtime/cpp/test/build_defs.bzl b/runtime/cpp/test/build_defs.bzl
new file mode 100644
index 0000000..c32759d
--- /dev/null
+++ b/runtime/cpp/test/build_defs.bzl
@@ -0,0 +1,34 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# -*- mode: python; -*-
+# vim:set ft=blazebuild:
+
+def emboss_cc_util_test(name, copts = [], **kwargs):
+ """Constructs two cc_test targets, with and without optimizations."""
+ native.cc_test(
+ name = name,
+ copts = copts + ["-Wsign-compare"],
+ **kwargs
+ )
+ native.cc_test(
+ name = name + "_no_opts",
+ copts = copts + [
+ # This is generally a dangerous flag for an individual target, but
+ # these tests do not depend on any other .cc files that might
+ # #include any Emboss headers.
+ "-DEMBOSS_NO_OPTIMIZATIONS",
+ ],
+ **kwargs
+ )
diff --git a/public/emboss_arithmetic_test.cc b/runtime/cpp/test/emboss_arithmetic_test.cc
similarity index 99%
rename from public/emboss_arithmetic_test.cc
rename to runtime/cpp/test/emboss_arithmetic_test.cc
index 42ccd6d..62c8f3b 100644
--- a/public/emboss_arithmetic_test.cc
+++ b/runtime/cpp/test/emboss_arithmetic_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_arithmetic.h"
+#include "runtime/cpp/emboss_arithmetic.h"
#include "gtest/gtest.h"
diff --git a/public/emboss_array_view_test.cc b/runtime/cpp/test/emboss_array_view_test.cc
similarity index 98%
rename from public/emboss_array_view_test.cc
rename to runtime/cpp/test/emboss_array_view_test.cc
index aa9fde2..bec26bc 100644
--- a/public/emboss_array_view_test.cc
+++ b/runtime/cpp/test/emboss_array_view_test.cc
@@ -12,14 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_array_view.h"
+#include "runtime/cpp/emboss_array_view.h"
#include <string>
#include <type_traits>
#include "absl/strings/str_format.h"
#include "gtest/gtest.h"
-#include "public/emboss_prelude.h"
+#include "runtime/cpp/emboss_prelude.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_bit_util_test.cc b/runtime/cpp/test/emboss_bit_util_test.cc
similarity index 98%
rename from public/emboss_bit_util_test.cc
rename to runtime/cpp/test/emboss_bit_util_test.cc
index 28fa1c8..52bff49 100644
--- a/public/emboss_bit_util_test.cc
+++ b/runtime/cpp/test/emboss_bit_util_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_bit_util.h"
+#include "runtime/cpp/emboss_bit_util.h"
#include "gtest/gtest.h"
diff --git a/public/emboss_constant_view_test.cc b/runtime/cpp/test/emboss_constant_view_test.cc
similarity index 97%
rename from public/emboss_constant_view_test.cc
rename to runtime/cpp/test/emboss_constant_view_test.cc
index 1f49466..e5484b9 100644
--- a/public/emboss_constant_view_test.cc
+++ b/runtime/cpp/test/emboss_constant_view_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_constant_view.h"
+#include "runtime/cpp/emboss_constant_view.h"
#include "gtest/gtest.h"
diff --git a/public/emboss_cpp_types_test.cc b/runtime/cpp/test/emboss_cpp_types_test.cc
similarity index 98%
rename from public/emboss_cpp_types_test.cc
rename to runtime/cpp/test/emboss_cpp_types_test.cc
index d71a2df..6a71d73 100644
--- a/public/emboss_cpp_types_test.cc
+++ b/runtime/cpp/test/emboss_cpp_types_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_cpp_types.h"
+#include "runtime/cpp/emboss_cpp_types.h"
#include "gtest/gtest.h"
diff --git a/public/emboss_cpp_util_google_integration_test.cc b/runtime/cpp/test/emboss_cpp_util_google_integration_test.cc
similarity index 95%
rename from public/emboss_cpp_util_google_integration_test.cc
rename to runtime/cpp/test/emboss_cpp_util_google_integration_test.cc
index 7592a1a..55a1daf 100644
--- a/public/emboss_cpp_util_google_integration_test.cc
+++ b/runtime/cpp/test/emboss_cpp_util_google_integration_test.cc
@@ -14,7 +14,7 @@
#include "absl/strings/string_view.h"
#include "gtest/gtest.h"
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_defines_test.cc b/runtime/cpp/test/emboss_defines_test.cc
similarity index 97%
rename from public/emboss_defines_test.cc
rename to runtime/cpp/test/emboss_defines_test.cc
index 1cf0779..9efc2da 100644
--- a/public/emboss_defines_test.cc
+++ b/runtime/cpp/test/emboss_defines_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_defines.h"
+#include "runtime/cpp/emboss_defines.h"
#include <cstdint>
diff --git a/public/emboss_enum_view_test.cc b/runtime/cpp/test/emboss_enum_view_test.cc
similarity index 98%
rename from public/emboss_enum_view_test.cc
rename to runtime/cpp/test/emboss_enum_view_test.cc
index 6723e07..9fde28f 100644
--- a/public/emboss_enum_view_test.cc
+++ b/runtime/cpp/test/emboss_enum_view_test.cc
@@ -12,10 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_enum_view.h"
+#include "runtime/cpp/emboss_enum_view.h"
#include "gtest/gtest.h"
-#include "public/emboss_prelude.h"
+#include "runtime/cpp/emboss_prelude.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_maybe_test.cc b/runtime/cpp/test/emboss_maybe_test.cc
similarity index 97%
rename from public/emboss_maybe_test.cc
rename to runtime/cpp/test/emboss_maybe_test.cc
index 1373617..2c8a691 100644
--- a/public/emboss_maybe_test.cc
+++ b/runtime/cpp/test/emboss_maybe_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_maybe.h"
+#include "runtime/cpp/emboss_maybe.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
diff --git a/public/emboss_memory_util_test.cc b/runtime/cpp/test/emboss_memory_util_test.cc
similarity index 99%
rename from public/emboss_memory_util_test.cc
rename to runtime/cpp/test/emboss_memory_util_test.cc
index 074e0e1..5460347 100644
--- a/public/emboss_memory_util_test.cc
+++ b/runtime/cpp/test/emboss_memory_util_test.cc
@@ -12,10 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_memory_util.h"
+#include "runtime/cpp/emboss_memory_util.h"
#include "gtest/gtest.h"
-#include "public/emboss_prelude.h"
+#include "runtime/cpp/emboss_prelude.h"
namespace emboss {
namespace support {
diff --git a/public/emboss_prelude_test.cc b/runtime/cpp/test/emboss_prelude_test.cc
similarity index 99%
rename from public/emboss_prelude_test.cc
rename to runtime/cpp/test/emboss_prelude_test.cc
index 599519a..ed8d516 100644
--- a/public/emboss_prelude_test.cc
+++ b/runtime/cpp/test/emboss_prelude_test.cc
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_prelude.h"
+#include "runtime/cpp/emboss_prelude.h"
#include <type_traits>
#include "gtest/gtest.h"
-#include "public/emboss_cpp_util.h"
+#include "runtime/cpp/emboss_cpp_util.h"
namespace emboss {
namespace prelude {
diff --git a/public/emboss_text_util_test.cc b/runtime/cpp/test/emboss_text_util_test.cc
similarity index 99%
rename from public/emboss_text_util_test.cc
rename to runtime/cpp/test/emboss_text_util_test.cc
index 742bcae..b7af4b8 100644
--- a/public/emboss_text_util_test.cc
+++ b/runtime/cpp/test/emboss_text_util_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "public/emboss_text_util.h"
+#include "runtime/cpp/emboss_text_util.h"
#include <cmath>
#include <limits>
diff --git a/testdata/BUILD b/testdata/BUILD
index 5df3b38..d757da7 100644
--- a/testdata/BUILD
+++ b/testdata/BUILD
@@ -14,7 +14,7 @@
# Shared test data for Emboss.
-load("//public:build_defs.bzl", "emboss_cc_library")
+load("//:build_defs.bzl", "emboss_cc_library")
package(
default_visibility = ["//:__subpackages__"],