node_kind.def 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  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_PARSE_NODE_KIND(Name)
  12. // Used as a fallback if other macros are missing. Also, used directly
  13. // when none of the below category-oriented macros apply.
  14. // - CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Name)
  15. // Defines a parse node for a prefix operator, with the Name as token.
  16. // - CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Name)
  17. // Defines a parse node for an infix operator, with the Name as token.
  18. // - CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Name)
  19. // Defines a parse node for a postfix operator, with the Name as token.
  20. // - CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKind)
  21. // Defines a parse node that corresponds to a token that is a single-token
  22. // literal.
  23. // - CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Name)
  24. // A token-based modifier. The Name is the TokenKind, and will be appended
  25. // with "Modifier" for the parse kind.
  26. //
  27. // LexTokenKind indicates the token kind required on a valid node.
  28. //
  29. // Parse nodes are clustered based on language feature. See typed_nodes.h for
  30. // the expected tree structure under each node kind.
  31. #if !defined(CARBON_PARSE_NODE_KIND)
  32. #error "Must define CARBON_PARSE_NODE_KIND family x-macros to use this file."
  33. #define CARBON_PARSE_NODE_KIND(Name)
  34. #endif
  35. // This is expected to be used with something like:
  36. //
  37. // // Use x-macros to handle modifier cases.
  38. // #define CARBON_PARSE_NODE_KIND(Name)
  39. // #define CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Name) <code>
  40. #ifndef CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR
  41. #define CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Name) \
  42. CARBON_PARSE_NODE_KIND(PrefixOperator##Name)
  43. #endif
  44. // This is expected to be used with something like:
  45. //
  46. // // Use x-macros to handle modifier cases.
  47. // #define CARBON_PARSE_NODE_KIND(Name)
  48. // #define CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Name) <code>
  49. #ifndef CARBON_PARSE_NODE_KIND_INFIX_OPERATOR
  50. #define CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Name) \
  51. CARBON_PARSE_NODE_KIND(InfixOperator##Name)
  52. #endif
  53. // This is expected to be used with something like:
  54. //
  55. // // Use x-macros to handle modifier cases.
  56. // #define CARBON_PARSE_NODE_KIND(Name)
  57. // #define CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Name) <code>
  58. #ifndef CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR
  59. #define CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Name) \
  60. CARBON_PARSE_NODE_KIND(PostfixOperator##Name)
  61. #endif
  62. // This is expected to be used with something like:
  63. //
  64. // // Use x-macros to handle literal cases.
  65. // #define CARBON_PARSE_NODE_KIND(Name)
  66. // #define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKind) <code>
  67. #ifndef CARBON_PARSE_NODE_KIND_TOKEN_LITERAL
  68. #define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKind) \
  69. CARBON_PARSE_NODE_KIND(Name)
  70. #endif
  71. // This is expected to be used with something like:
  72. //
  73. // // Use x-macros to handle modifier cases.
  74. // #define CARBON_PARSE_NODE_KIND(Name)
  75. // #define CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Name) <code>
  76. #ifndef CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER
  77. #define CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Name) \
  78. CARBON_PARSE_NODE_KIND(Name##Modifier)
  79. #endif
  80. CARBON_PARSE_NODE_KIND(FileStart)
  81. CARBON_PARSE_NODE_KIND(FileEnd)
  82. CARBON_PARSE_NODE_KIND(InvalidParse)
  83. CARBON_PARSE_NODE_KIND(InvalidParseStart)
  84. CARBON_PARSE_NODE_KIND(InvalidParseSubtree)
  85. CARBON_PARSE_NODE_KIND(Placeholder)
  86. CARBON_PARSE_NODE_KIND(EmptyDecl)
  87. CARBON_PARSE_NODE_KIND(IdentifierNameNotBeforeSignature)
  88. CARBON_PARSE_NODE_KIND(IdentifierNameMaybeBeforeSignature)
  89. CARBON_PARSE_NODE_KIND(IdentifierNameExpr)
  90. CARBON_PARSE_NODE_KIND(SelfValueName)
  91. CARBON_PARSE_NODE_KIND(SelfValueNameExpr)
  92. CARBON_PARSE_NODE_KIND(SelfTypeNameExpr)
  93. CARBON_PARSE_NODE_KIND(UnderscoreName)
  94. CARBON_PARSE_NODE_KIND(BaseName)
  95. CARBON_PARSE_NODE_KIND(PackageExpr)
  96. CARBON_PARSE_NODE_KIND(CoreNameExpr)
  97. CARBON_PARSE_NODE_KIND(CppNameExpr)
  98. CARBON_PARSE_NODE_KIND(IdentifierPackageName)
  99. CARBON_PARSE_NODE_KIND(CorePackageName)
  100. CARBON_PARSE_NODE_KIND(CppPackageName)
  101. CARBON_PARSE_NODE_KIND(LibraryName)
  102. CARBON_PARSE_NODE_KIND(PackageIntroducer)
  103. CARBON_PARSE_NODE_KIND(PackageDecl)
  104. CARBON_PARSE_NODE_KIND(ImportIntroducer)
  105. CARBON_PARSE_NODE_KIND(ImportDecl)
  106. CARBON_PARSE_NODE_KIND(DefaultLibrary)
  107. CARBON_PARSE_NODE_KIND(LibraryIntroducer)
  108. CARBON_PARSE_NODE_KIND(LibraryDecl)
  109. CARBON_PARSE_NODE_KIND(LibrarySpecifier)
  110. CARBON_PARSE_NODE_KIND(InlineImportSpecifier)
  111. CARBON_PARSE_NODE_KIND(InlineImportBody)
  112. CARBON_PARSE_NODE_KIND(IdentifierNameQualifierWithParams)
  113. CARBON_PARSE_NODE_KIND(IdentifierNameQualifierWithoutParams)
  114. CARBON_PARSE_NODE_KIND(ExportIntroducer)
  115. CARBON_PARSE_NODE_KIND(ExportDecl)
  116. CARBON_PARSE_NODE_KIND(NamespaceStart)
  117. CARBON_PARSE_NODE_KIND(Namespace)
  118. CARBON_PARSE_NODE_KIND(CodeBlockStart)
  119. CARBON_PARSE_NODE_KIND(CodeBlock)
  120. CARBON_PARSE_NODE_KIND(FunctionIntroducer)
  121. CARBON_PARSE_NODE_KIND(LambdaIntroducer)
  122. CARBON_PARSE_NODE_KIND(ReturnType)
  123. CARBON_PARSE_NODE_KIND(ReturnForm)
  124. CARBON_PARSE_NODE_KIND(FunctionDefinitionStart)
  125. CARBON_PARSE_NODE_KIND(FunctionDefinition)
  126. CARBON_PARSE_NODE_KIND(FunctionTerseDefinition)
  127. CARBON_PARSE_NODE_KIND(FunctionDecl)
  128. CARBON_PARSE_NODE_KIND(Lambda)
  129. CARBON_PARSE_NODE_KIND(TerseBodyArrow)
  130. CARBON_PARSE_NODE_KIND(BuiltinFunctionDefinitionStart)
  131. CARBON_PARSE_NODE_KIND(BuiltinName)
  132. CARBON_PARSE_NODE_KIND(BuiltinFunctionDefinition)
  133. CARBON_PARSE_NODE_KIND(AliasIntroducer)
  134. CARBON_PARSE_NODE_KIND(AliasInitializer)
  135. CARBON_PARSE_NODE_KIND(Alias)
  136. CARBON_PARSE_NODE_KIND(TuplePatternStart)
  137. CARBON_PARSE_NODE_KIND(PatternListComma)
  138. CARBON_PARSE_NODE_KIND(TuplePattern)
  139. CARBON_PARSE_NODE_KIND(ExplicitParamListStart)
  140. CARBON_PARSE_NODE_KIND(ExplicitParamList)
  141. CARBON_PARSE_NODE_KIND(ImplicitParamListStart)
  142. CARBON_PARSE_NODE_KIND(ImplicitParamList)
  143. CARBON_PARSE_NODE_KIND(ArrayExprOpenParen)
  144. CARBON_PARSE_NODE_KIND(ArrayExprKeyword)
  145. CARBON_PARSE_NODE_KIND(ArrayExprComma)
  146. CARBON_PARSE_NODE_KIND(ArrayExpr)
  147. CARBON_PARSE_NODE_KIND(RefBindingName)
  148. CARBON_PARSE_NODE_KIND(UnusedPattern)
  149. CARBON_PARSE_NODE_KIND(LetBindingPattern)
  150. CARBON_PARSE_NODE_KIND(AssociatedConstantNameAndType)
  151. CARBON_PARSE_NODE_KIND(VarBindingPattern)
  152. CARBON_PARSE_NODE_KIND(FormBindingPattern)
  153. CARBON_PARSE_NODE_KIND(TemplateBindingName)
  154. CARBON_PARSE_NODE_KIND(CompileTimeBindingPatternStart)
  155. CARBON_PARSE_NODE_KIND(CompileTimeBindingPattern)
  156. CARBON_PARSE_NODE_KIND(LetIntroducer)
  157. CARBON_PARSE_NODE_KIND(LetInitializer)
  158. CARBON_PARSE_NODE_KIND(LetDecl)
  159. CARBON_PARSE_NODE_KIND(AssociatedConstantIntroducer)
  160. CARBON_PARSE_NODE_KIND(AssociatedConstantInitializer)
  161. CARBON_PARSE_NODE_KIND(AssociatedConstantDecl)
  162. CARBON_PARSE_NODE_KIND(VariableIntroducer)
  163. CARBON_PARSE_NODE_KIND(ReturnedModifier)
  164. CARBON_PARSE_NODE_KIND(VariableInitializer)
  165. CARBON_PARSE_NODE_KIND(VariableDecl)
  166. CARBON_PARSE_NODE_KIND(VariablePattern)
  167. CARBON_PARSE_NODE_KIND(FieldIntroducer)
  168. CARBON_PARSE_NODE_KIND(FieldInitializer)
  169. CARBON_PARSE_NODE_KIND(FieldDecl)
  170. CARBON_PARSE_NODE_KIND(FieldNameAndType)
  171. CARBON_PARSE_NODE_KIND(ExprStatement)
  172. CARBON_PARSE_NODE_KIND(BreakStatementStart)
  173. CARBON_PARSE_NODE_KIND(BreakStatement)
  174. CARBON_PARSE_NODE_KIND(ContinueStatementStart)
  175. CARBON_PARSE_NODE_KIND(ContinueStatement)
  176. CARBON_PARSE_NODE_KIND(ReturnStatementStart)
  177. CARBON_PARSE_NODE_KIND(ReturnVarModifier)
  178. CARBON_PARSE_NODE_KIND(ReturnStatement)
  179. CARBON_PARSE_NODE_KIND(ForHeaderStart)
  180. CARBON_PARSE_NODE_KIND(ForIn)
  181. CARBON_PARSE_NODE_KIND(ForHeader)
  182. CARBON_PARSE_NODE_KIND(ForStatement)
  183. CARBON_PARSE_NODE_KIND(IfConditionStart)
  184. CARBON_PARSE_NODE_KIND(IfCondition)
  185. CARBON_PARSE_NODE_KIND(IfStatementElse)
  186. CARBON_PARSE_NODE_KIND(IfStatement)
  187. CARBON_PARSE_NODE_KIND(WhileConditionStart)
  188. CARBON_PARSE_NODE_KIND(WhileCondition)
  189. CARBON_PARSE_NODE_KIND(WhileStatement)
  190. CARBON_PARSE_NODE_KIND(IndexExprStart)
  191. CARBON_PARSE_NODE_KIND(IndexExpr)
  192. CARBON_PARSE_NODE_KIND(RefPrimitiveForm)
  193. CARBON_PARSE_NODE_KIND(VarPrimitiveForm)
  194. CARBON_PARSE_NODE_KIND(ValPrimitiveForm)
  195. CARBON_PARSE_NODE_KIND(FormLiteralKeyword)
  196. CARBON_PARSE_NODE_KIND(FormLiteralOpenParen)
  197. CARBON_PARSE_NODE_KIND(FormLiteral)
  198. CARBON_PARSE_NODE_KIND(ParenExprStart)
  199. CARBON_PARSE_NODE_KIND(ParenExpr)
  200. CARBON_PARSE_NODE_KIND(TupleLiteralStart)
  201. CARBON_PARSE_NODE_KIND(TupleLiteralComma)
  202. CARBON_PARSE_NODE_KIND(TupleLiteral)
  203. CARBON_PARSE_NODE_KIND(CallExprStart)
  204. CARBON_PARSE_NODE_KIND(CallExpr)
  205. CARBON_PARSE_NODE_KIND(MemberAccessExpr)
  206. CARBON_PARSE_NODE_KIND(PointerMemberAccessExpr)
  207. CARBON_PARSE_NODE_KIND(IntLiteral)
  208. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolLiteralFalse, False)
  209. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolLiteralTrue, True)
  210. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(CharLiteral, CharLiteral)
  211. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(RealLiteral, RealLiteral)
  212. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(StringLiteral, StringLiteral)
  213. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(AutoTypeLiteral, Auto)
  214. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolTypeLiteral, Bool)
  215. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(CharTypeLiteral, Char)
  216. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(FloatTypeLiteral, FloatTypeLiteral)
  217. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(IntTypeLiteral, IntTypeLiteral)
  218. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(StringTypeLiteral, Str)
  219. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(TypeTypeLiteral, Type)
  220. CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(UnsignedIntTypeLiteral,
  221. UnsignedIntTypeLiteral)
  222. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Amp)
  223. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Caret)
  224. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Const)
  225. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Not)
  226. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Minus)
  227. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(MinusMinus)
  228. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Partial)
  229. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(PlusPlus)
  230. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Ref)
  231. CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Star)
  232. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Amp)
  233. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(AmpEqual)
  234. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(As)
  235. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Caret)
  236. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(CaretEqual)
  237. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Equal)
  238. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(EqualEqual)
  239. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(ExclaimEqual)
  240. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Greater)
  241. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(GreaterEqual)
  242. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(GreaterGreater)
  243. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(GreaterGreaterEqual)
  244. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Less)
  245. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessEqual)
  246. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessEqualGreater)
  247. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessLess)
  248. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessLessEqual)
  249. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Minus)
  250. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(MinusEqual)
  251. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Percent)
  252. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(PercentEqual)
  253. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Pipe)
  254. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(PipeEqual)
  255. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Plus)
  256. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(PlusEqual)
  257. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Slash)
  258. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(SlashEqual)
  259. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Star)
  260. CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(StarEqual)
  261. CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Star)
  262. CARBON_PARSE_NODE_KIND(ShortCircuitOperandAnd)
  263. CARBON_PARSE_NODE_KIND(ShortCircuitOperandOr)
  264. CARBON_PARSE_NODE_KIND(ShortCircuitOperatorAnd)
  265. CARBON_PARSE_NODE_KIND(ShortCircuitOperatorOr)
  266. CARBON_PARSE_NODE_KIND(UnsafeModifier)
  267. CARBON_PARSE_NODE_KIND(DesignatorExpr)
  268. CARBON_PARSE_NODE_KIND(SelfTypeName)
  269. CARBON_PARSE_NODE_KIND(RequirementAnd)
  270. CARBON_PARSE_NODE_KIND(RequirementEqual)
  271. CARBON_PARSE_NODE_KIND(RequirementEqualEqual)
  272. CARBON_PARSE_NODE_KIND(RequirementImpls)
  273. CARBON_PARSE_NODE_KIND(WhereExpr)
  274. CARBON_PARSE_NODE_KIND(WhereOperand)
  275. CARBON_PARSE_NODE_KIND(IfExprIf)
  276. CARBON_PARSE_NODE_KIND(IfExprThen)
  277. CARBON_PARSE_NODE_KIND(IfExprElse)
  278. CARBON_PARSE_NODE_KIND(StructFieldDesignator)
  279. CARBON_PARSE_NODE_KIND(StructLiteralStart)
  280. CARBON_PARSE_NODE_KIND(StructLiteralField)
  281. CARBON_PARSE_NODE_KIND(StructLiteralComma)
  282. CARBON_PARSE_NODE_KIND(StructLiteral)
  283. CARBON_PARSE_NODE_KIND(StructTypeLiteralStart)
  284. CARBON_PARSE_NODE_KIND(StructTypeLiteralField)
  285. CARBON_PARSE_NODE_KIND(StructTypeLiteralComma)
  286. CARBON_PARSE_NODE_KIND(StructTypeLiteral)
  287. CARBON_PARSE_NODE_KIND(ExternModifierWithLibrary)
  288. CARBON_PARSE_NODE_KIND(ExternModifier)
  289. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Abstract)
  290. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Base)
  291. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Default)
  292. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Eval)
  293. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Export)
  294. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Extend)
  295. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Final)
  296. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Impl)
  297. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(MustEval)
  298. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Override)
  299. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Private)
  300. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Protected)
  301. CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Virtual)
  302. CARBON_PARSE_NODE_KIND(ClassIntroducer)
  303. CARBON_PARSE_NODE_KIND(ClassDefinitionStart)
  304. CARBON_PARSE_NODE_KIND(ClassDefinition)
  305. CARBON_PARSE_NODE_KIND(ClassDecl)
  306. CARBON_PARSE_NODE_KIND(AdaptIntroducer)
  307. CARBON_PARSE_NODE_KIND(AdaptDecl)
  308. CARBON_PARSE_NODE_KIND(BaseIntroducer)
  309. CARBON_PARSE_NODE_KIND(BaseColon)
  310. CARBON_PARSE_NODE_KIND(BaseDecl)
  311. CARBON_PARSE_NODE_KIND(InterfaceIntroducer)
  312. CARBON_PARSE_NODE_KIND(InterfaceDefinitionStart)
  313. CARBON_PARSE_NODE_KIND(InterfaceDefinition)
  314. CARBON_PARSE_NODE_KIND(InterfaceDecl)
  315. CARBON_PARSE_NODE_KIND(ImplIntroducer)
  316. CARBON_PARSE_NODE_KIND(ImplDefinitionStart)
  317. CARBON_PARSE_NODE_KIND(ImplDefinition)
  318. CARBON_PARSE_NODE_KIND(ImplDecl)
  319. CARBON_PARSE_NODE_KIND(Forall)
  320. CARBON_PARSE_NODE_KIND(ImplTypeAs)
  321. CARBON_PARSE_NODE_KIND(ImplDefaultSelfAs)
  322. CARBON_PARSE_NODE_KIND(RequireIntroducer)
  323. CARBON_PARSE_NODE_KIND(RequireTypeImpls)
  324. CARBON_PARSE_NODE_KIND(RequireDefaultSelfImpls)
  325. CARBON_PARSE_NODE_KIND(RequireDecl)
  326. CARBON_PARSE_NODE_KIND(ObserveIntroducer)
  327. CARBON_PARSE_NODE_KIND(ObserveEqualEqual)
  328. CARBON_PARSE_NODE_KIND(ObserveImpls)
  329. CARBON_PARSE_NODE_KIND(ObserveDecl)
  330. CARBON_PARSE_NODE_KIND(NamedConstraintIntroducer)
  331. CARBON_PARSE_NODE_KIND(NamedConstraintDefinitionStart)
  332. CARBON_PARSE_NODE_KIND(NamedConstraintDefinition)
  333. CARBON_PARSE_NODE_KIND(NamedConstraintDecl)
  334. CARBON_PARSE_NODE_KIND(ChoiceIntroducer)
  335. CARBON_PARSE_NODE_KIND(ChoiceDefinitionStart)
  336. CARBON_PARSE_NODE_KIND(ChoiceDefinition)
  337. CARBON_PARSE_NODE_KIND(ChoiceAlternativeListComma)
  338. CARBON_PARSE_NODE_KIND(MatchIntroducer)
  339. CARBON_PARSE_NODE_KIND(MatchConditionStart)
  340. CARBON_PARSE_NODE_KIND(MatchCondition)
  341. CARBON_PARSE_NODE_KIND(MatchStatementStart)
  342. CARBON_PARSE_NODE_KIND(MatchStatement)
  343. CARBON_PARSE_NODE_KIND(MatchCaseIntroducer)
  344. CARBON_PARSE_NODE_KIND(MatchCaseGuardIntroducer)
  345. CARBON_PARSE_NODE_KIND(MatchCaseGuardStart)
  346. CARBON_PARSE_NODE_KIND(MatchCaseGuard)
  347. CARBON_PARSE_NODE_KIND(MatchCase)
  348. CARBON_PARSE_NODE_KIND(MatchDefaultIntroducer)
  349. CARBON_PARSE_NODE_KIND(MatchDefault)
  350. CARBON_PARSE_NODE_KIND(MatchHandlerStart)
  351. CARBON_PARSE_NODE_KIND(MatchHandler)
  352. #undef CARBON_PARSE_NODE_KIND
  353. #undef CARBON_PARSE_NODE_KIND_INFIX_OPERATOR
  354. #undef CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR
  355. #undef CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR
  356. #undef CARBON_PARSE_NODE_KIND_TOKEN_LITERAL
  357. #undef CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER