BUILD 2.9 KB

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