BUILD 2.9 KB

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