BUILD 3.0 KB

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