mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:20:10 +01:00
This is in anticipation of making the integer value store be customized heavily. I'd like to extract it from the common code when doing that, so first disentangling them here without any intended change in functionality or behavior to enable that. I've tried to update `#include`s to be as minimal as I can and added a few missing includes spotted in the process. I've split the test for value store to include what was easy focused on just the value store templates rather than the unified shared value stores. This might surface some opportunities for adding more tests, but for this PR, just doing the minimal restructuring.
226 lines
5.3 KiB
Python
226 lines
5.3 KiB
Python
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
|
|
load("//bazel/manifest:defs.bzl", "manifest")
|
|
load("//testing/fuzzing:rules.bzl", "cc_fuzz_test")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
filegroup(
|
|
name = "testdata",
|
|
data = glob(["testdata/**/*.carbon"]),
|
|
)
|
|
|
|
manifest(
|
|
name = "testdata.txt",
|
|
srcs = [":testdata"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "node_kind",
|
|
srcs = ["node_kind.cpp"],
|
|
hdrs = [
|
|
"node_ids.h",
|
|
"node_kind.h",
|
|
"typed_nodes.h",
|
|
],
|
|
textual_hdrs = ["node_kind.def"],
|
|
deps = [
|
|
"//common:check",
|
|
"//common:enum_base",
|
|
"//common:ostream",
|
|
"//toolchain/base:index_base",
|
|
"//toolchain/lex:token_index",
|
|
"//toolchain/lex:token_kind",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "typed_nodes_test",
|
|
size = "small",
|
|
srcs = ["typed_nodes_test.cpp"],
|
|
deps = [
|
|
":node_kind",
|
|
":parse",
|
|
":tree",
|
|
"//testing/base:gtest_main",
|
|
"//toolchain/diagnostics:diagnostic_emitter",
|
|
"//toolchain/diagnostics:mocks",
|
|
"//toolchain/lex",
|
|
"//toolchain/lex:tokenized_buffer",
|
|
"//toolchain/testing:compile_helper",
|
|
"@googletest//:gtest",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "context",
|
|
srcs = ["context.cpp"],
|
|
hdrs = ["context.h"],
|
|
deps = [
|
|
":node_kind",
|
|
":precedence",
|
|
":state",
|
|
":tree",
|
|
"//common:check",
|
|
"//common:ostream",
|
|
"//common:vlog",
|
|
"//toolchain/diagnostics:format_providers",
|
|
"//toolchain/lex:token_kind",
|
|
"//toolchain/lex:tokenized_buffer",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "parse",
|
|
srcs = ["parse.cpp"] +
|
|
# Glob handler files to avoid missing any.
|
|
glob([
|
|
"handle_*.cpp",
|
|
]),
|
|
hdrs = [
|
|
"handle.h",
|
|
"parse.h",
|
|
],
|
|
deps = [
|
|
":context",
|
|
":node_kind",
|
|
":state",
|
|
":tree",
|
|
"//common:check",
|
|
"//common:ostream",
|
|
"//toolchain/base:pretty_stack_trace_function",
|
|
"//toolchain/base:shared_value_stores",
|
|
"//toolchain/diagnostics:diagnostic_emitter",
|
|
"//toolchain/diagnostics:format_providers",
|
|
"//toolchain/lex:token_kind",
|
|
"//toolchain/lex:tokenized_buffer",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "state",
|
|
srcs = ["state.cpp"],
|
|
hdrs = ["state.h"],
|
|
textual_hdrs = ["state.def"],
|
|
deps = ["//common:enum_base"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tree",
|
|
srcs = [
|
|
"extract.cpp",
|
|
"tree.cpp",
|
|
"tree_and_subtrees.cpp",
|
|
],
|
|
hdrs = [
|
|
"tree.h",
|
|
"tree_and_subtrees.h",
|
|
],
|
|
deps = [
|
|
":node_kind",
|
|
"//common:check",
|
|
"//common:error",
|
|
"//common:ostream",
|
|
"//common:struct_reflection",
|
|
"//toolchain/base:value_store",
|
|
"//toolchain/lex:tokenized_buffer",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "tree_test",
|
|
size = "small",
|
|
srcs = ["tree_test.cpp"],
|
|
deps = [
|
|
":node_kind",
|
|
":parse",
|
|
":tree",
|
|
"//common:ostream",
|
|
"//testing/base:gtest_main",
|
|
"//testing/base:test_raw_ostream",
|
|
"//toolchain/base:shared_value_stores",
|
|
"//toolchain/diagnostics:diagnostic_emitter",
|
|
"//toolchain/diagnostics:mocks",
|
|
"//toolchain/lex",
|
|
"//toolchain/lex:tokenized_buffer",
|
|
"//toolchain/testing:compile_helper",
|
|
"//toolchain/testing:yaml_test_helpers",
|
|
"@googletest//:gtest",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_fuzz_test(
|
|
name = "parse_fuzzer",
|
|
size = "small",
|
|
srcs = ["parse_fuzzer.cpp"],
|
|
corpus = glob(["fuzzer_corpus/*"]),
|
|
deps = [
|
|
":parse",
|
|
"//common:check",
|
|
"//testing/fuzzing:libfuzzer_header",
|
|
"//toolchain/base:shared_value_stores",
|
|
"//toolchain/diagnostics:diagnostic_emitter",
|
|
"//toolchain/diagnostics:null_diagnostics",
|
|
"//toolchain/lex",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tree_node_diagnostic_converter",
|
|
hdrs = ["tree_node_diagnostic_converter.h"],
|
|
deps = [
|
|
":tree",
|
|
"//toolchain/diagnostics:diagnostic_emitter",
|
|
"//toolchain/lex:tokenized_buffer",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "precedence",
|
|
srcs = ["precedence.cpp"],
|
|
hdrs = ["precedence.h"],
|
|
deps = [
|
|
"//common:check",
|
|
"//toolchain/lex:token_kind",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "precedence_test",
|
|
size = "small",
|
|
srcs = ["precedence_test.cpp"],
|
|
deps = [
|
|
":precedence",
|
|
"//testing/base:gtest_main",
|
|
"//toolchain/lex:token_kind",
|
|
"@googletest//:gtest",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "coverage_test",
|
|
size = "small",
|
|
srcs = ["coverage_test.cpp"],
|
|
args = ["--testdata_manifest=$(location :testdata.txt)"],
|
|
data = [
|
|
":testdata",
|
|
":testdata.txt",
|
|
],
|
|
deps = [
|
|
":node_kind",
|
|
"//testing/base:gtest_main",
|
|
"//toolchain/testing:coverage_helper",
|
|
"@abseil-cpp//absl/flags:flag",
|
|
"@googletest//:gtest",
|
|
],
|
|
)
|