BUILD 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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/sh_run:rules.bzl", "glob_sh_run")
  5. load("//testing/file_test:rules.bzl", "file_test")
  6. package(default_visibility = ["//visibility:public"])
  7. cc_library(
  8. name = "semantics_builtin_kind",
  9. srcs = ["semantics_builtin_kind.cpp"],
  10. hdrs = ["semantics_builtin_kind.h"],
  11. textual_hdrs = ["semantics_builtin_kind.def"],
  12. deps = ["//common:enum_base"],
  13. )
  14. cc_library(
  15. name = "semantics_node_kind",
  16. srcs = ["semantics_node_kind.cpp"],
  17. hdrs = ["semantics_node_kind.h"],
  18. textual_hdrs = ["semantics_node_kind.def"],
  19. deps = ["//common:enum_base"],
  20. )
  21. cc_library(
  22. name = "semantics_node",
  23. srcs = ["semantics_node.cpp"],
  24. hdrs = ["semantics_node.h"],
  25. deps = [
  26. ":semantics_builtin_kind",
  27. ":semantics_node_kind",
  28. "//common:check",
  29. "//common:ostream",
  30. "//toolchain/parser:parse_tree",
  31. "@llvm-project//llvm:Support",
  32. ],
  33. )
  34. cc_library(
  35. name = "semantics_node_block_stack",
  36. srcs = ["semantics_node_block_stack.cpp"],
  37. hdrs = ["semantics_node_block_stack.h"],
  38. deps = [
  39. ":semantics_node",
  40. "//common:check",
  41. "//common:ostream",
  42. "//common:vlog",
  43. "@llvm-project//llvm:Support",
  44. ],
  45. )
  46. cc_library(
  47. name = "semantics_node_stack",
  48. srcs = ["semantics_node_stack.cpp"],
  49. hdrs = ["semantics_node_stack.h"],
  50. deps = [
  51. ":semantics_node",
  52. "//common:check",
  53. "//common:ostream",
  54. "//common:vlog",
  55. "//toolchain/parser:parse_node_kind",
  56. "//toolchain/parser:parse_tree",
  57. "@llvm-project//llvm:Support",
  58. ],
  59. )
  60. cc_library(
  61. name = "semantics_ir",
  62. srcs = [
  63. "semantics_ir.cpp",
  64. "semantics_context.cpp",
  65. ] +
  66. # Glob handler files to avoid missing anyway.
  67. glob([
  68. "semantics_handle*.cpp",
  69. ]),
  70. hdrs = [
  71. "semantics_context.h",
  72. "semantics_ir.h",
  73. ],
  74. deps = [
  75. ":semantics_builtin_kind",
  76. ":semantics_node",
  77. ":semantics_node_block_stack",
  78. ":semantics_node_stack",
  79. "//common:check",
  80. "//common:ostream",
  81. "//common:vlog",
  82. "//toolchain/common:pretty_stack_trace_function",
  83. "//toolchain/diagnostics:diagnostic_kind",
  84. "//toolchain/lexer:numeric_literal",
  85. "//toolchain/lexer:token_kind",
  86. "//toolchain/lexer:tokenized_buffer",
  87. "//toolchain/parser:parse_node_kind",
  88. "//toolchain/parser:parse_tree",
  89. "//toolchain/parser:parse_tree_node_location_translator",
  90. "@llvm-project//llvm:Support",
  91. ],
  92. )
  93. cc_test(
  94. name = "semantics_ir_test",
  95. size = "small",
  96. srcs = ["semantics_ir_test.cpp"],
  97. deps = [
  98. ":semantics_ir",
  99. "//common:gtest_main",
  100. "//toolchain/common:yaml_test_helpers",
  101. "//toolchain/diagnostics:diagnostic_emitter",
  102. "//toolchain/lexer:tokenized_buffer",
  103. "@com_google_googletest//:gtest",
  104. "@llvm-project//llvm:Support",
  105. ],
  106. )
  107. file_test(
  108. name = "semantics_file_test",
  109. srcs = ["semantics_file_test.cpp"],
  110. tests = glob(["testdata/**/*.carbon"]),
  111. deps = [
  112. "//testing/file_test:file_test_base",
  113. "//toolchain/driver",
  114. "@com_google_googletest//:gtest",
  115. "@llvm-project//llvm:Support",
  116. ],
  117. )
  118. glob_sh_run(
  119. args = [
  120. "$(location //toolchain/driver:carbon)",
  121. "dump",
  122. "semantics-ir",
  123. ],
  124. data = ["//toolchain/driver:carbon"],
  125. file_exts = ["carbon"],
  126. )
  127. glob_sh_run(
  128. args = [
  129. "$(location //toolchain/driver:carbon)",
  130. "-v",
  131. "dump",
  132. "semantics-ir",
  133. ],
  134. data = ["//toolchain/driver:carbon"],
  135. file_exts = ["carbon"],
  136. run_ext = "verbose",
  137. )