BUILD 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
  5. load("//bazel/fuzzing:rules.bzl", "cc_fuzz_test")
  6. package(default_visibility = ["//visibility:public"])
  7. cc_library(
  8. name = "parse_node_kind",
  9. srcs = ["parse_node_kind.cpp"],
  10. hdrs = ["parse_node_kind.h"],
  11. textual_hdrs = ["parse_node_kind.def"],
  12. deps = ["@llvm-project//llvm:Support"],
  13. )
  14. cc_test(
  15. name = "parse_node_kind_test",
  16. srcs = ["parse_node_kind_test.cpp"],
  17. deps = [
  18. ":parse_node_kind",
  19. "@llvm-project//llvm:Support",
  20. "@llvm-project//llvm:gtest",
  21. "@llvm-project//llvm:gtest_main",
  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. "//diagnostics:diagnostic_emitter",
  35. "//lexer:token_kind",
  36. "//lexer:tokenized_buffer",
  37. "@llvm-project//llvm:Support",
  38. ],
  39. )
  40. cc_library(
  41. name = "parse_test_helpers",
  42. testonly = 1,
  43. hdrs = ["parse_test_helpers.h"],
  44. deps = [
  45. ":parse_node_kind",
  46. ":parse_tree",
  47. "//lexer:tokenized_buffer",
  48. "@llvm-project//llvm:Support",
  49. "@llvm-project//llvm:gmock",
  50. ],
  51. )
  52. cc_test(
  53. name = "parse_tree_test",
  54. srcs = ["parse_tree_test.cpp"],
  55. deps = [
  56. ":parse_node_kind",
  57. ":parse_test_helpers",
  58. ":parse_tree",
  59. "//diagnostics:diagnostic_emitter",
  60. "//lexer:tokenized_buffer",
  61. "//lexer:tokenized_buffer_test_helpers",
  62. "@llvm-project//llvm:Support",
  63. "@llvm-project//llvm:gmock",
  64. "@llvm-project//llvm:gtest",
  65. "@llvm-project//llvm:gtest_main",
  66. ],
  67. )
  68. cc_fuzz_test(
  69. name = "parse_tree_fuzzer",
  70. srcs = ["parse_tree_fuzzer.cpp"],
  71. corpus = glob(["fuzzer_corpus/*"]),
  72. deps = [
  73. ":parse_tree",
  74. "//diagnostics:diagnostic_emitter",
  75. "//lexer:tokenized_buffer",
  76. "@llvm-project//llvm:Support",
  77. ],
  78. )