semantics_node_kind.def 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. //
  5. // This is an X-macro header. It does not use `#include` guards, and instead is
  6. // designed to be `#include`ed after the x-macro is defined in order for its
  7. // inclusion to expand to the desired output. Macro definitions are cleaned up
  8. // at the end of this file.
  9. //
  10. // Supported x-macros are:
  11. // - CARBON_SEMANTICS_NODE_KIND(Name)
  12. // Defines a node kind.
  13. #ifndef CARBON_SEMANTICS_NODE_KIND
  14. #error "Must define the x-macro to use this file."
  15. #endif
  16. CARBON_SEMANTICS_NODE_KIND(Invalid)
  17. // A cross-reference between IRs.
  18. CARBON_SEMANTICS_NODE_KIND(CrossReference)
  19. CARBON_SEMANTICS_NODE_KIND(Assign)
  20. CARBON_SEMANTICS_NODE_KIND(BinaryOperatorAdd)
  21. CARBON_SEMANTICS_NODE_KIND(BindName)
  22. CARBON_SEMANTICS_NODE_KIND(Builtin)
  23. CARBON_SEMANTICS_NODE_KIND(Call)
  24. CARBON_SEMANTICS_NODE_KIND(CodeBlock)
  25. CARBON_SEMANTICS_NODE_KIND(FunctionDeclaration)
  26. CARBON_SEMANTICS_NODE_KIND(IntegerLiteral)
  27. CARBON_SEMANTICS_NODE_KIND(RealLiteral)
  28. CARBON_SEMANTICS_NODE_KIND(Return)
  29. CARBON_SEMANTICS_NODE_KIND(ReturnExpression)
  30. CARBON_SEMANTICS_NODE_KIND(StringLiteral)
  31. CARBON_SEMANTICS_NODE_KIND(StructMemberAccess)
  32. CARBON_SEMANTICS_NODE_KIND(StructType)
  33. CARBON_SEMANTICS_NODE_KIND(StructTypeField)
  34. CARBON_SEMANTICS_NODE_KIND(StructValue)
  35. CARBON_SEMANTICS_NODE_KIND(StubReference)
  36. CARBON_SEMANTICS_NODE_KIND(VarStorage)
  37. #undef CARBON_SEMANTICS_NODE_KIND