BUILD 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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")
  5. package(default_visibility = ["//executable_semantics:__subpackages__"])
  6. cc_library(
  7. name = "declaration",
  8. srcs = ["declaration.cpp"],
  9. hdrs = [
  10. "abstract_syntax_tree.h",
  11. "declaration.h",
  12. ],
  13. deps = [
  14. ":function_definition",
  15. ":member",
  16. ":pattern",
  17. ":struct_definition",
  18. "//common:ostream",
  19. "//executable_semantics/interpreter:address",
  20. "//executable_semantics/interpreter:containers",
  21. "@llvm-project//llvm:Support",
  22. ],
  23. )
  24. cc_library(
  25. name = "expression",
  26. srcs = ["expression.cpp"],
  27. hdrs = ["expression.h"],
  28. deps = [
  29. "//common:indirect_value",
  30. "//common:ostream",
  31. "//executable_semantics/common:arena",
  32. "//executable_semantics/common:error",
  33. "//executable_semantics/syntax:paren_contents",
  34. "@llvm-project//llvm:Support",
  35. ],
  36. )
  37. cc_test(
  38. name = "expression_test",
  39. srcs = ["expression_test.cpp"],
  40. env = {
  41. # TODO(#580): Remove this when leaks are fixed.
  42. "ASAN_OPTIONS": "detect_leaks=0",
  43. },
  44. deps = [
  45. ":expression",
  46. "//executable_semantics/syntax:paren_contents",
  47. "@llvm-project//llvm:gtest",
  48. "@llvm-project//llvm:gtest_main",
  49. ],
  50. )
  51. cc_library(
  52. name = "function_definition",
  53. srcs = ["function_definition.cpp"],
  54. hdrs = ["function_definition.h"],
  55. deps = [
  56. ":expression",
  57. ":statement",
  58. "@llvm-project//llvm:Support",
  59. ],
  60. )
  61. cc_library(
  62. name = "member",
  63. srcs = ["member.cpp"],
  64. hdrs = ["member.h"],
  65. deps = [
  66. ":pattern",
  67. "//common:ostream",
  68. ],
  69. )
  70. cc_library(
  71. name = "pattern",
  72. srcs = ["pattern.cpp"],
  73. hdrs = ["pattern.h"],
  74. deps = [
  75. ":expression",
  76. "//common:ostream",
  77. "//executable_semantics/common:error",
  78. "@llvm-project//llvm:Support",
  79. ],
  80. )
  81. cc_test(
  82. name = "pattern_test",
  83. srcs = ["pattern_test.cpp"],
  84. env = {
  85. # TODO(#580): Remove this when leaks are fixed.
  86. "ASAN_OPTIONS": "detect_leaks=0",
  87. },
  88. deps = [
  89. ":pattern",
  90. "//executable_semantics/syntax:paren_contents",
  91. "@llvm-project//llvm:Support",
  92. "@llvm-project//llvm:gtest",
  93. "@llvm-project//llvm:gtest_main",
  94. ],
  95. )
  96. cc_library(
  97. name = "statement",
  98. srcs = ["statement.cpp"],
  99. hdrs = ["statement.h"],
  100. deps = [
  101. ":expression",
  102. ":pattern",
  103. "//common:check",
  104. "//common:ostream",
  105. "@llvm-project//llvm:Support",
  106. ],
  107. )
  108. cc_library(
  109. name = "struct_definition",
  110. hdrs = ["struct_definition.h"],
  111. deps = [
  112. ":member",
  113. "//common:ostream",
  114. "@llvm-project//llvm:Support",
  115. ],
  116. )