# 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 front end
#
# The code in this directory translates an Emboss definition file (.emb) to an
# intermediate representation (IR).  The IR is passed to back end code
# generators to generate code in various languages.

load("@rules_python//python:py_binary.bzl", "py_binary")
load("@rules_python//python:py_library.bzl", "py_library")
load("@rules_python//python:py_test.bzl", "py_test")

package(
    default_visibility = [
        "//:__subpackages__",
    ],
)

py_library(
    name = "tokenizer",
    srcs = ["tokenizer.py"],
    deps = [
        "//compiler/util:error",
        "//compiler/util:parser_types",
    ],
)

py_test(
    name = "tokenizer_test",
    srcs = ["tokenizer_test.py"],
    python_version = "PY3",
    deps = [
        ":tokenizer",
        "//compiler/util:error",
        "//compiler/util:parser_types",
    ],
)

py_library(
    name = "lr1",
    srcs = ["lr1.py"],
    deps = [
        "//compiler/util:parser_types",
    ],
)

py_test(
    name = "lr1_test",
    srcs = ["lr1_test.py"],
    python_version = "PY3",
    deps = [
        ":lr1",
        "//compiler/util:parser_types",
    ],
)

py_library(
    name = "module_ir",
    srcs = ["module_ir.py"],
    deps = [
        "//compiler/util:ir_data",
        "//compiler/util:name_conversion",
        "//compiler/util:parser_types",
    ],
)

py_test(
    name = "module_ir_test",
    srcs = ["module_ir_test.py"],
    data = [
        "//testdata:golden_files",
    ],
    python_version = "PY3",
    deps = [
        ":module_ir",
        ":parser",
        ":tokenizer",
        "//compiler/util:ir_data",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "parser",
    srcs = ["parser.py"],
    data = [
        "error_examples",
    ],
    deps = [
        ":lr1",
        ":module_ir",
        ":tokenizer",
        "//compiler/util:resources",
        "//compiler/util:simple_memoizer",
    ],
)

py_test(
    name = "parser_test",
    srcs = ["parser_test.py"],
    python_version = "PY3",
    deps = [
        ":lr1",
        ":parser",
        ":tokenizer",
        "//compiler/util:parser_types",
    ],
)

py_library(
    name = "glue",
    srcs = ["glue.py"],
    data = [
        "prelude.emb",
    ],
    visibility = ["//:__subpackages__"],
    deps = [
        ":attribute_checker",
        ":constraints",
        ":dependency_checker",
        ":expression_bounds",
        ":lr1",
        ":module_ir",
        ":parser",
        ":symbol_resolver",
        ":synthetics",
        ":tokenizer",
        ":type_check",
        ":write_inference",
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:parser_types",
        "//compiler/util:resources",
    ],
)

py_test(
    name = "glue_test",
    srcs = ["glue_test.py"],
    data = [
        "//testdata:golden_files",
    ],
    python_version = "PY3",
    deps = [
        ":glue",
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:parser_types",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "synthetics",
    srcs = ["synthetics.py"],
    visibility = ["//visibility:private"],
    deps = [
        "//compiler/util:expression_parser",
        "//compiler/util:ir_data",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "synthetics_test",
    srcs = ["synthetics_test.py"],
    python_version = "PY3",
    deps = [
        ":glue",
        ":synthetics",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "symbol_resolver",
    srcs = ["symbol_resolver.py"],
    visibility = ["//visibility:private"],
    deps = [
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "symbol_resolver_test",
    srcs = ["symbol_resolver_test.py"],
    python_version = "PY3",
    deps = [
        ":glue",
        ":symbol_resolver",
        "//compiler/util:error",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "write_inference",
    srcs = ["write_inference.py"],
    visibility = ["//visibility:private"],
    deps = [
        ":attributes",
        ":expression_bounds",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "write_inference_test",
    srcs = ["write_inference_test.py"],
    python_version = "PY3",
    deps = [
        ":glue",
        ":write_inference",
        "//compiler/util:ir_data",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "attribute_checker",
    srcs = ["attribute_checker.py"],
    deps = [
        ":attributes",
        ":type_check",
        "//compiler/util:attribute_util",
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:traverse_ir",
    ],
)

py_library(
    name = "attributes",
    srcs = ["attributes.py"],
    deps = [],
)

py_test(
    name = "attribute_checker_test",
    timeout = "long",
    srcs = ["attribute_checker_test.py"],
    python_version = "PY3",
    deps = [
        ":attribute_checker",
        ":glue",
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "type_check",
    srcs = ["type_check.py"],
    deps = [
        ":attributes",
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "type_check_test",
    srcs = ["type_check_test.py"],
    python_version = "PY3",
    deps = [
        ":glue",
        ":type_check",
        "//compiler/util:error",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "expression_bounds",
    srcs = ["expression_bounds.py"],
    data = [
        "reserved_words",
    ],
    deps = [
        ":attributes",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "expression_bounds_test",
    srcs = ["expression_bounds_test.py"],
    python_version = "PY3",
    deps = [
        ":expression_bounds",
        ":glue",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "constraints",
    srcs = ["constraints.py"],
    data = [
        "reserved_words",
    ],
    deps = [
        ":attributes",
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:resources",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "constraints_test",
    srcs = ["constraints_test.py"],
    python_version = "PY3",
    deps = [
        ":constraints",
        ":glue",
        "//compiler/util:error",
        "//compiler/util:test_util",
    ],
)

py_library(
    name = "dependency_checker",
    srcs = ["dependency_checker.py"],
    deps = [
        "//compiler/util:error",
        "//compiler/util:ir_data",
        "//compiler/util:ir_util",
        "//compiler/util:traverse_ir",
    ],
)

py_test(
    name = "dependency_checker_test",
    srcs = ["dependency_checker_test.py"],
    python_version = "PY3",
    deps = [
        ":dependency_checker",
        ":glue",
        "//compiler/util:error",
        "//compiler/util:test_util",
    ],
)

py_binary(
    name = "emboss_front_end",
    srcs = ["emboss_front_end.py"],
    python_version = "PY3",
    visibility = ["//visibility:public"],
    deps = [
        ":glue",
        ":module_ir",
        "//compiler/util:error",
    ],
)

py_binary(
    name = "format",
    srcs = ["format.py"],
    main = "format.py",
    python_version = "PY3",
    visibility = ["//visibility:public"],
    deps = [
        ":format_emb",
        ":parser",
        ":tokenizer",
        "//compiler/util:error",
    ],
)

py_library(
    name = "format_emb",
    srcs = ["format_emb.py"],
    deps = [
        ":module_ir",
        ":tokenizer",
        "//compiler/util:parser_types",
    ],
)

py_test(
    name = "format_emb_test",
    srcs = ["format_emb_test.py"],
    data = [
        "//testdata:format_embs",
    ],
    python_version = "PY3",
    deps = [
        ":format_emb",
        ":module_ir",
        ":parser",
        ":tokenizer",
    ],
)

py_binary(
    name = "generate_grammar_md",
    srcs = ["generate_grammar_md.py"],
    python_version = "PY3",
    deps = [
        ":constraints",
        ":module_ir",
        ":tokenizer",
    ],
)

py_test(
    name = "docs_are_up_to_date_test",
    srcs = ["docs_are_up_to_date_test.py"],
    data = [
        "//doc:grammar_md",
    ],
    python_version = "PY3",
    deps = [
        ":generate_grammar_md",
    ],
)
