BUILD 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 = ["@llvm-project//llvm:Support"],
  12. )
  13. cc_test(
  14. name = "parse_node_kind_test",
  15. srcs = ["parse_node_kind_test.cpp"],
  16. deps = [
  17. ":parse_node_kind",
  18. "@com_google_googletest//:gtest_main",
  19. "@llvm-project//llvm:Support",
  20. ],
  21. )
  22. cc_library(
  23. name = "parse_tree",
  24. srcs = [
  25. "parse_tree.cpp",
  26. "parser_impl.cpp",
  27. "parser_impl.h",
  28. ],
  29. hdrs = ["parse_tree.h"],
  30. deps = [
  31. ":parse_node_kind",
  32. ":precedence",
  33. "//toolchain/diagnostics:diagnostic_emitter",
  34. "//toolchain/lexer:token_kind",
  35. "//toolchain/lexer:tokenized_buffer",
  36. "@llvm-project//llvm:Support",
  37. ],
  38. )
  39. cc_library(
  40. name = "parse_test_helpers",
  41. testonly = 1,
  42. hdrs = ["parse_test_helpers.h"],
  43. deps = [
  44. ":parse_node_kind",
  45. ":parse_tree",
  46. "//toolchain/lexer:tokenized_buffer",
  47. "@com_google_googletest//:gtest",
  48. "@llvm-project//llvm:Support",
  49. ],
  50. )
  51. cc_test(
  52. name = "parse_tree_test",
  53. srcs = ["parse_tree_test.cpp"],
  54. deps = [
  55. ":parse_node_kind",
  56. ":parse_test_helpers",
  57. ":parse_tree",
  58. "//common:ostream",
  59. "//toolchain/common:yaml_test_helpers",
  60. "//toolchain/diagnostics:diagnostic_emitter",
  61. "//toolchain/diagnostics:mocks",
  62. "//toolchain/lexer:tokenized_buffer",
  63. "@com_google_googletest//:gtest_main",
  64. "@llvm-project//llvm:Support",
  65. ],
  66. )
  67. cc_fuzz_test(
  68. name = "parse_tree_fuzzer",
  69. srcs = ["parse_tree_fuzzer.cpp"],
  70. corpus = glob(["fuzzer_corpus/*"]),
  71. deps = [
  72. ":parse_tree",
  73. "//toolchain/diagnostics:diagnostic_emitter",
  74. "//toolchain/diagnostics:null_diagnostics",
  75. "//toolchain/lexer:tokenized_buffer",
  76. "@llvm-project//llvm:Support",
  77. ],
  78. )
  79. cc_library(
  80. name = "precedence",
  81. srcs = ["precedence.cpp"],
  82. hdrs = ["precedence.h"],
  83. deps = [
  84. "//toolchain/lexer:token_kind",
  85. "@llvm-project//llvm:Support",
  86. ],
  87. )
  88. cc_test(
  89. name = "precedence_test",
  90. srcs = ["precedence_test.cpp"],
  91. deps = [
  92. ":precedence",
  93. "//toolchain/lexer:token_kind",
  94. "@com_google_googletest//:gtest_main",
  95. ],
  96. )