# Copyright 2023 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.

# Description:
#   The decoder generator tool for MPACT-Sim. This consists of two rules for
#   to generate C++ code from the antlr4 grammar InstructionSet.g4
#   (antlr4_cc_parser, antlr4_cc_lexer), a cc_library for processing the
#   input file, and a cc_main for the top level executable.

load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("//mpact/sim/decoder:antlr_cc.bzl", "antlr4_cc_lexer", "antlr4_cc_parser")
load("//mpact/sim/decoder:mpact_sim_isa.bzl", "mpact_cc_binary", "mpact_cc_library")

package(
    default_applicable_licenses = ["//:license"],
    default_visibility = ["//visibility:public"],
)

antlr4_cc_parser(
    name = "antlr_isa_parser",
    src = "InstructionSet.g4",
    namespaces = [
        "sim",
        "machine_description",
        "instruction_set",
        "generated",
    ],
)

antlr4_cc_lexer(
    name = "antlr_isa_lexer",
    src = "InstructionSet.g4",
    namespaces = [
        "sim",
        "machine_description",
        "instruction_set",
        "generated",
    ],
    deps = [
    ],
)

mpact_cc_library(
    name = "decoder_error_listener",
    srcs = [
        "decoder_error_listener.cc",
    ],
    hdrs = [
        "decoder_error_listener.h",
    ],
    visibility = [":__subpackages__"],
    deps = [
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/strings",
    ],
)

mpact_cc_library(
    name = "antlr_parser_wrapper",
    hdrs = ["antlr_parser_wrapper.h"],
)

mpact_cc_library(
    name = "format_name",
    srcs = ["format_name.cc"],
    hdrs = ["format_name.h"],
    deps = [
        "@com_google_absl//absl/strings",
    ],
)

mpact_cc_library(
    name = "isa_parser",
    srcs = [
        "bundle.cc",
        "instruction.cc",
        "instruction_set.cc",
        "instruction_set_visitor.cc",
        "opcode.cc",
        "resource.cc",
        "slot.cc",
        "template_expression.cc",
    ],
    hdrs = [
        "base_class.h",
        "bundle.h",
        "instruction.h",
        "instruction_set.h",
        "instruction_set_contexts.h",
        "instruction_set_visitor.h",
        "opcode.h",
        "resource.h",
        "slot.h",
        "template_expression.h",
    ],
    copts = [
        "-fexceptions",
    ],
    features = [
        "-use_header_modules",
    ],
    visibility = [":__subpackages__"],
    deps = [
        ":antlr_isa_lexer",
        ":antlr_isa_parser",
        ":antlr_parser_wrapper",
        ":decoder_error_listener",
        ":format_name",
        "@com_google_absl//absl/base:no_destructor",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/numeric:bits",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
        "@com_googlesource_code_re2//:re2",
    ],
)

mpact_cc_binary(
    name = "decoder_gen",
    srcs = [
        "decoder_gen_main.cc",
    ],
    copts = [
        "-fexceptions",
    ],
    features = [
        "-use_header_modules",
    ],
    visibility = ["//visibility:public"],
    deps = [
        ":isa_parser",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/flags:parse",
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/strings",
    ],
)

antlr4_cc_parser(
    name = "bin_format_parser",
    src = "BinFormat.g4",
    #listener = True,
    namespaces = [
        "mpact",
        "sim",
        "decoder",
        "bin_format",
        "generated",
    ],
    #visitor = True,
)

antlr4_cc_lexer(
    name = "bin_format_lexer",
    src = "BinFormat.g4",
    namespaces = [
        "mpact",
        "sim",
        "decoder",
        "bin_format",
        "generated",
    ],
    deps = [
    ],
)

mpact_cc_library(
    name = "bin_format_visitor",
    srcs = [
        "bin_decoder.cc",
        "bin_encoding_info.cc",
        "bin_format_visitor.cc",
        "encoding_group.cc",
        "extract.cc",
        "format.cc",
        "format_name.cc",
        "instruction_encoding.cc",
        "instruction_group.cc",
        "overlay.cc",
    ],
    hdrs = [
        "bin_decoder.h",
        "bin_encoding_info.h",
        "bin_format_contexts.h",
        "bin_format_visitor.h",
        "encoding_group.h",
        "extract.h",
        "format.h",
        "format_name.h",
        "instruction_encoding.h",
        "instruction_group.h",
        "overlay.h",
    ],
    copts = [
        "-fexceptions",
    ],
    features = [
        "-use_header_modules",
    ],
    visibility = [":__subpackages__"],
    deps = [
        ":antlr_parser_wrapper",
        ":bin_format_lexer",
        ":bin_format_parser",
        ":decoder_error_listener",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/functional:bind_front",
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/numeric:bits",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
        "@com_googlesource_code_re2//:re2",
    ],
)

mpact_cc_binary(
    name = "bin_format_gen",
    srcs = [
        "bin_format_gen_main.cc",
    ],
    copts = [
        "-fexceptions",
    ],
    features = [
        "-use_header_modules",
    ],
    visibility = ["//visibility:public"],
    deps = [
        ":bin_format_visitor",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/flags:parse",
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/strings",
    ],
)

antlr4_cc_parser(
    name = "proto_format_parser",
    src = "ProtoFormat.g4",
    namespaces = [
        "mpact",
        "sim",
        "decoder",
        "proto_fmt",
        "generated",
    ],
)

antlr4_cc_lexer(
    name = "proto_format_lexer",
    src = "ProtoFormat.g4",
    namespaces = [
        "mpact",
        "sim",
        "decoder",
        "proto_fmt",
        "generated",
    ],
    deps = [
    ],
)

mpact_cc_library(
    name = "proto_format_visitor",
    srcs = [
        "proto_constraint_expression.cc",
        "proto_constraint_value_set.cc",
        "proto_encoding_group.cc",
        "proto_encoding_info.cc",
        "proto_format_visitor.cc",
        "proto_instruction_decoder.cc",
        "proto_instruction_encoding.cc",
        "proto_instruction_group.cc",
    ],
    hdrs = [
        "proto_constraint_expression.h",
        "proto_constraint_value_set.h",
        "proto_encoding_group.h",
        "proto_encoding_info.h",
        "proto_format_contexts.h",
        "proto_format_visitor.h",
        "proto_instruction_decoder.h",
        "proto_instruction_encoding.h",
        "proto_instruction_group.h",
    ],
    copts = [
        "-fexceptions",
    ],
    features = [
        "-use_header_modules",
    ],
    visibility = [":__subpackages__"],
    deps = [
        ":antlr_parser_wrapper",
        ":decoder_error_listener",
        ":format_name",
        ":proto_format_lexer",
        ":proto_format_parser",
        "//mpact/sim/generic:type_helpers",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/functional:bind_front",
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/numeric:bits",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
        "@com_google_protobuf//:protobuf",
        "@com_googlesource_code_re2//:re2",
    ],
)

mpact_cc_binary(
    name = "proto_format_gen",
    srcs = [
        "proto_format_gen_main.cc",
    ],
    copts = [
        "-fexceptions",
    ],
    features = [
        "-use_header_modules",
    ],
    visibility = ["//visibility:public"],
    deps = [
        ":proto_format_visitor",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/flags:parse",
        "@com_google_absl//absl/log",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/strings",
    ],
)

bzl_library(
    name = "mpact_sim_isa_bzl",
    srcs = ["mpact_sim_isa.bzl"],
    visibility = ["//visibility:private"],
    deps = ["@rules_cc//cc:core_rules"],
)
