BUILD 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. # Exceptions. See /LICENSE for license information.
  3. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. load("//bazel/fuzzing:rules.bzl", "cc_fuzz_test")
  5. package(default_visibility = ["//visibility:public"])
  6. cc_library(
  7. name = "parse_node_kind",
  8. srcs = ["parse_node_kind.cpp"],
  9. hdrs = ["parse_node_kind.h"],
  10. textual_hdrs = ["parse_node_kind.def"],
  11. deps = [
  12. "//common:check",
  13. "//common:enum_base",
  14. ],
  15. )
  16. cc_library(
  17. name = "parser_state",
  18. srcs = ["parser_state.cpp"],
  19. hdrs = ["parser_state.h"],
  20. textual_hdrs = ["parser_state.def"],
  21. deps = ["//common:enum_base"],
  22. )
  23. cc_library(
  24. name = "parse_tree",
  25. srcs = [
  26. "parse_tree.cpp",
  27. "parser.cpp",
  28. "parser.h",
  29. ],
  30. hdrs = ["parse_tree.h"],
  31. deps = [
  32. ":parse_node_kind",
  33. ":parser_state",
  34. ":precedence",
  35. "//common:check",
  36. "//common:error",
  37. "//common:ostream",
  38. "//common:vlog",
  39. "//toolchain/diagnostics:diagnostic_emitter",
  40. "//toolchain/lexer:token_kind",
  41. "//toolchain/lexer:tokenized_buffer",
  42. "@llvm-project//llvm:Support",
  43. ],
  44. )
  45. cc_test(
  46. name = "parse_tree_test",
  47. size = "small",
  48. srcs = ["parse_tree_test.cpp"],
  49. deps = [
  50. ":parse_node_kind",
  51. ":parse_tree",
  52. "//common:gtest_main",
  53. "//common:ostream",
  54. "//toolchain/common:yaml_test_helpers",
  55. "//toolchain/diagnostics:diagnostic_emitter",
  56. "//toolchain/diagnostics:mocks",
  57. "//toolchain/lexer:tokenized_buffer",
  58. "@com_google_googletest//:gtest",
  59. "@llvm-project//llvm:Support",
  60. ],
  61. )
  62. cc_fuzz_test(
  63. name = "parse_tree_fuzzer",
  64. size = "small",
  65. srcs = ["parse_tree_fuzzer.cpp"],
  66. corpus = glob(["fuzzer_corpus/*"]),
  67. deps = [
  68. ":parse_tree",
  69. "//common:check",
  70. "//toolchain/diagnostics:diagnostic_emitter",
  71. "//toolchain/diagnostics:null_diagnostics",
  72. "//toolchain/lexer:tokenized_buffer",
  73. "@llvm-project//llvm:Support",
  74. ],
  75. )
  76. cc_library(
  77. name = "parse_tree_node_location_translator",
  78. hdrs = ["parse_tree_node_location_translator.h"],
  79. deps = [":parse_tree"],
  80. )
  81. cc_library(
  82. name = "precedence",
  83. srcs = ["precedence.cpp"],
  84. hdrs = ["precedence.h"],
  85. deps = [
  86. "//common:check",
  87. "//toolchain/lexer:token_kind",
  88. "@llvm-project//llvm:Support",
  89. ],
  90. )
  91. cc_test(
  92. name = "precedence_test",
  93. size = "small",
  94. srcs = ["precedence_test.cpp"],
  95. deps = [
  96. ":precedence",
  97. "//common:gtest_main",
  98. "//toolchain/lexer:token_kind",
  99. "@com_google_googletest//:gtest",
  100. ],
  101. )