BUILD 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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. package(default_visibility = ["//executable_semantics:__pkg__"])
  5. # These currently have to be a single build rule because of a dependency cycle
  6. # in printing.
  7. cc_library(
  8. name = "action_and_value",
  9. srcs = [
  10. "action.cpp",
  11. "value.cpp",
  12. ],
  13. hdrs = [
  14. "action.h",
  15. "value.h",
  16. ],
  17. deps = [
  18. ":address",
  19. ":dictionary",
  20. ":field_path",
  21. ":heap_allocation_interface",
  22. ":stack",
  23. "//common:ostream",
  24. "//executable_semantics/ast:declaration",
  25. "//executable_semantics/ast:expression",
  26. "//executable_semantics/ast:statement",
  27. "//executable_semantics/common:arena",
  28. "//executable_semantics/common:error",
  29. "@llvm-project//llvm:Support",
  30. ],
  31. )
  32. cc_library(
  33. name = "action_stack",
  34. srcs = ["action_stack.cpp"],
  35. hdrs = ["action_stack.h"],
  36. deps = [
  37. ":action_and_value",
  38. ":stack",
  39. "//common:ostream",
  40. "//executable_semantics/ast:statement",
  41. "@llvm-project//llvm:Support",
  42. ],
  43. )
  44. cc_library(
  45. name = "address",
  46. hdrs = ["address.h"],
  47. deps = [
  48. ":field_path",
  49. "//common:ostream",
  50. "@llvm-project//llvm:Support",
  51. ],
  52. )
  53. cc_library(
  54. name = "dictionary",
  55. hdrs = ["dictionary.h"],
  56. deps = ["//executable_semantics/common:arena"],
  57. )
  58. cc_library(
  59. name = "exec_program",
  60. srcs = ["exec_program.cpp"],
  61. hdrs = ["exec_program.h"],
  62. deps = [
  63. ":interpreter",
  64. ":resolve_control_flow",
  65. ":resolve_names",
  66. ":type_checker",
  67. "//executable_semantics/ast",
  68. ],
  69. )
  70. cc_library(
  71. name = "field_path",
  72. hdrs = ["field_path.h"],
  73. deps = [
  74. "//common:ostream",
  75. "@llvm-project//llvm:Support",
  76. ],
  77. )
  78. cc_library(
  79. name = "heap",
  80. srcs = ["heap.cpp"],
  81. hdrs = ["heap.h"],
  82. deps = [
  83. ":action_and_value",
  84. ":address",
  85. ":heap_allocation_interface",
  86. "//common:ostream",
  87. "//executable_semantics/ast:source_location",
  88. "//executable_semantics/common:nonnull",
  89. "@llvm-project//llvm:Support",
  90. ],
  91. )
  92. cc_library(
  93. name = "heap_allocation_interface",
  94. hdrs = ["heap_allocation_interface.h"],
  95. deps = [
  96. ":address",
  97. "//executable_semantics/common:nonnull",
  98. ],
  99. )
  100. cc_library(
  101. name = "interpreter",
  102. srcs = [
  103. "interpreter.cpp",
  104. ],
  105. hdrs = [
  106. "interpreter.h",
  107. ],
  108. deps = [
  109. ":action_and_value",
  110. ":action_stack",
  111. ":address",
  112. ":heap",
  113. "//common:check",
  114. "//common:ostream",
  115. "//executable_semantics/ast:declaration",
  116. "//executable_semantics/ast:expression",
  117. "//executable_semantics/common:arena",
  118. "@llvm-project//llvm:Support",
  119. ],
  120. )
  121. cc_library(
  122. name = "resolve_control_flow",
  123. srcs = ["resolve_control_flow.cpp"],
  124. hdrs = ["resolve_control_flow.h"],
  125. deps = [
  126. "//common:check",
  127. "//executable_semantics/ast",
  128. "//executable_semantics/ast:declaration",
  129. "//executable_semantics/ast:statement",
  130. "@llvm-project//llvm:Support",
  131. ],
  132. )
  133. cc_library(
  134. name = "resolve_names",
  135. srcs = ["resolve_names.cpp"],
  136. hdrs = ["resolve_names.h"],
  137. deps = [
  138. "//common:check",
  139. "//executable_semantics/ast",
  140. "//executable_semantics/ast:declaration",
  141. "//executable_semantics/ast:expression",
  142. "//executable_semantics/ast:member",
  143. "//executable_semantics/ast:pattern",
  144. "//executable_semantics/ast:statement",
  145. "//executable_semantics/ast:static_scope",
  146. "@llvm-project//llvm:Support",
  147. ],
  148. )
  149. cc_library(
  150. name = "stack",
  151. hdrs = ["stack.h"],
  152. deps = ["//common:check"],
  153. )
  154. cc_library(
  155. name = "type_checker",
  156. srcs = ["type_checker.cpp"],
  157. hdrs = ["type_checker.h"],
  158. deps = [
  159. ":dictionary",
  160. ":interpreter",
  161. "//common:ostream",
  162. "//executable_semantics/ast",
  163. "//executable_semantics/ast:declaration",
  164. "//executable_semantics/ast:expression",
  165. "//executable_semantics/ast:statement",
  166. "//executable_semantics/common:arena",
  167. "@llvm-project//llvm:Support",
  168. ],
  169. )