BUILD 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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 = "action",
  8. srcs = ["action.cpp"],
  9. hdrs = ["action.h"],
  10. deps = [
  11. ":containers",
  12. ":value",
  13. "//common:ostream",
  14. "//executable_semantics/ast:expression",
  15. "//executable_semantics/ast:function_definition",
  16. "//executable_semantics/ast:statement",
  17. "//executable_semantics/common:arena",
  18. "@llvm-project//llvm:Support",
  19. ],
  20. )
  21. cc_library(
  22. name = "address",
  23. hdrs = ["address.h"],
  24. deps = [
  25. ":field_path",
  26. "//common:ostream",
  27. "@llvm-project//llvm:Support",
  28. ],
  29. )
  30. cc_library(
  31. name = "containers",
  32. srcs = [
  33. "list_node.h",
  34. ],
  35. hdrs = [
  36. "dictionary.h",
  37. "stack.h",
  38. ],
  39. deps = ["//common:check"],
  40. )
  41. cc_library(
  42. name = "field_path",
  43. hdrs = ["field_path.h"],
  44. deps = [
  45. "//common:ostream",
  46. "@llvm-project//llvm:Support",
  47. ],
  48. )
  49. cc_library(
  50. name = "frame",
  51. srcs = ["frame.cpp"],
  52. hdrs = ["frame.h"],
  53. deps = [
  54. ":action",
  55. ":address",
  56. ":containers",
  57. "//common:ostream",
  58. "@llvm-project//llvm:Support",
  59. ],
  60. )
  61. cc_library(
  62. name = "heap",
  63. srcs = ["heap.cpp"],
  64. hdrs = ["heap.h"],
  65. deps = [
  66. ":address",
  67. ":value",
  68. "//common:ostream",
  69. "@llvm-project//llvm:Support",
  70. ],
  71. )
  72. cc_library(
  73. name = "interpreter",
  74. srcs = [
  75. "interpreter.cpp",
  76. ],
  77. hdrs = [
  78. "interpreter.h",
  79. ],
  80. deps = [
  81. ":action",
  82. ":address",
  83. ":containers",
  84. ":frame",
  85. ":heap",
  86. ":value",
  87. "//common:check",
  88. "//common:ostream",
  89. "//executable_semantics/ast:declaration",
  90. "//executable_semantics/ast:expression",
  91. "//executable_semantics/ast:function_definition",
  92. "//executable_semantics/common:arena",
  93. "//executable_semantics/common:tracing_flag",
  94. "@llvm-project//llvm:Support",
  95. ],
  96. )
  97. cc_library(
  98. name = "typecheck",
  99. srcs = ["typecheck.cpp"],
  100. hdrs = ["typecheck.h"],
  101. deps = [
  102. ":containers",
  103. ":interpreter",
  104. "//common:ostream",
  105. "//executable_semantics/ast:expression",
  106. "//executable_semantics/ast:function_definition",
  107. "//executable_semantics/ast:statement",
  108. "//executable_semantics/common:arena",
  109. "//executable_semantics/common:tracing_flag",
  110. "@llvm-project//llvm:Support",
  111. ],
  112. )
  113. cc_library(
  114. name = "value",
  115. srcs = ["value.cpp"],
  116. hdrs = ["value.h"],
  117. deps = [
  118. ":address",
  119. ":containers",
  120. ":field_path",
  121. "//common:ostream",
  122. "//executable_semantics/ast:function_definition",
  123. "//executable_semantics/ast:statement",
  124. "//executable_semantics/common:arena",
  125. "//executable_semantics/common:error",
  126. "@llvm-project//llvm:Support",
  127. ],
  128. )