mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 22:02:23 +01:00
- Enhance toolchain/parse/node_kind.def with category x-macros (CARBON_PARSE_NODE_KIND_DECLARATION, CARBON_PARSE_NODE_KIND_EXPRESSION, CARBON_PARSE_NODE_KIND_PATTERN, CARBON_PARSE_NODE_KIND_STATEMENT) that default to CARBON_PARSE_NODE_KIND, keeping node_kind.def as the single source of truth without manual expansion divergence. - Decompose the monolithic toolchain/parse/extract.cpp translation unit into separate compilation units for declarations, expressions, patterns, and statements by expanding respective category x-macros. - Forward-declare Tree and TokenizedBuffer in parse and lex dump headers to reduce header inclusion depth. Assisted-by: Antigravity with Gemini
491 lines
20 KiB
C++
491 lines
20 KiB
C++
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
// This is an X-macro header. It does not use guards, and instead is
|
|
// designed to be ed after the x-macro is defined in order for its
|
|
// inclusion to expand to the desired output. Macro definitions are cleaned up
|
|
// at the end of this file.
|
|
//
|
|
// Supported x-macros are:
|
|
// - CARBON_PARSE_NODE_KIND(Name)
|
|
// Used as a fallback if other macros are missing. Also, used directly
|
|
// when none of the below category-oriented macros apply.
|
|
// - CARBON_PARSE_NODE_KIND_DECLARATION(Name)
|
|
// Defines a parse node for a declaration or namespace structure.
|
|
// - CARBON_PARSE_NODE_KIND_EXPRESSION(Name)
|
|
// Defines a parse node for an expression, literal, or operator.
|
|
// - CARBON_PARSE_NODE_KIND_PATTERN(Name)
|
|
// Defines a parse node for a pattern, parameter list, binding, or modifier.
|
|
// - CARBON_PARSE_NODE_KIND_STATEMENT(Name)
|
|
// Defines a parse node for a statement or control-flow construct.
|
|
// - CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Name)
|
|
// Defines a parse node for a prefix operator, with the Name as token.
|
|
// - CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Name)
|
|
// Defines a parse node for an infix operator, with the Name as token.
|
|
// - CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Name)
|
|
// Defines a parse node for a postfix operator, with the Name as token.
|
|
// - CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKind)
|
|
// Defines a parse node that corresponds to a token that is a single-token
|
|
// literal.
|
|
// - CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Name)
|
|
// A token-based modifier. The Name is the TokenKind, and will be appended
|
|
// with "Modifier" for the parse kind.
|
|
//
|
|
// LexTokenKind indicates the token kind required on a valid node.
|
|
//
|
|
// Parse nodes are clustered based on language feature. See typed_nodes.h for
|
|
// the expected tree structure under each node kind.
|
|
|
|
#if !defined(CARBON_PARSE_NODE_KIND)
|
|
#error "Must define CARBON_PARSE_NODE_KIND family x-macros to use this file."
|
|
#define CARBON_PARSE_NODE_KIND(Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle declaration cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_DECLARATION(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_DECLARATION
|
|
#define CARBON_PARSE_NODE_KIND_DECLARATION(Name) CARBON_PARSE_NODE_KIND(Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle expression cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_EXPRESSION(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_EXPRESSION
|
|
#define CARBON_PARSE_NODE_KIND_EXPRESSION(Name) CARBON_PARSE_NODE_KIND(Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle pattern cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_PATTERN(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_PATTERN
|
|
#define CARBON_PARSE_NODE_KIND_PATTERN(Name) CARBON_PARSE_NODE_KIND(Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle statement cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_STATEMENT(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_STATEMENT
|
|
#define CARBON_PARSE_NODE_KIND_STATEMENT(Name) CARBON_PARSE_NODE_KIND(Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle prefix operator cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR
|
|
#define CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Name) \
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(PrefixOperator##Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle infix operator cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_INFIX_OPERATOR
|
|
#define CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Name) \
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(InfixOperator##Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle postfix operator cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR
|
|
#define CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Name) \
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(PostfixOperator##Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle literal cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKind) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_TOKEN_LITERAL
|
|
#define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKind) \
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(Name)
|
|
#endif
|
|
|
|
// This is expected to be used with something like:
|
|
//
|
|
// // Use x-macros to handle modifier cases.
|
|
// #define CARBON_PARSE_NODE_KIND(Name)
|
|
// #define CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Name) <code>
|
|
#ifndef CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER
|
|
#define CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Name) \
|
|
CARBON_PARSE_NODE_KIND_PATTERN(Name##Modifier)
|
|
#endif
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FileStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FileEnd)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InvalidParse)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InvalidParseStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InvalidParseSubtree)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(Placeholder)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(EmptyDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(IdentifierNameNotBeforeSignature)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(IdentifierNameMaybeBeforeSignature)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(IdentifierNameExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(SelfValueName)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(SelfValueNameExpr)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(SelfTypeNameExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(UnderscoreName)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BaseName)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(PackageExpr)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(CoreNameExpr)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(CppNameExpr)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(IdentifierPackageName)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(CorePackageName)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(CppPackageName)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LibraryName)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(PackageIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(PackageDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImportIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImportDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(DefaultLibrary)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LibraryIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LibraryDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LibrarySpecifier)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InlineImportSpecifier)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InlineImportBody)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InlineIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InlineCppDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(IdentifierNameQualifierWithParams)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(IdentifierNameQualifierWithoutParams)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ExportIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ExportDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(NamespaceStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(Namespace)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchFirstIntroducer)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchFirstDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchFirst)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(CodeBlockStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(CodeBlock)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FunctionIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LambdaIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ReturnType)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ReturnForm)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FunctionDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FunctionDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FunctionTerseDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(FunctionDecl)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(Lambda)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(TerseBodyArrow)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BuiltinFunctionDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BuiltinName)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BuiltinFunctionDefinition)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AliasIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AliasInitializer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(Alias)
|
|
|
|
CARBON_PARSE_NODE_KIND_PATTERN(TuplePatternStart)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(PatternListComma)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ParenPattern)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(TuplePattern)
|
|
|
|
CARBON_PARSE_NODE_KIND_PATTERN(StructPatternStart)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(StructPatternDesignatedField)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(StructPattern)
|
|
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ExplicitParamListStart)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ExplicitParamList)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ImplicitParamListStart)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ImplicitParamList)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ArrayExprOpenParen)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ArrayExprKeyword)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ArrayExprComma)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ArrayExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_PATTERN(RefBindingName)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(RuntimeBindingName)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(UnusedPattern)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(BindingPatternTypeStart)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(LetBindingPattern)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(SelfBindingPattern)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(AssociatedConstantNameAndType)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(VarBindingPattern)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(FormBindingPattern)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(TemplateBindingName)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(CompileTimeBindingPatternTypeStart)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(CompileTimeBindingPattern)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LetIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LetInitializer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(LetDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AssociatedConstantIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AssociatedConstantInitializer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AssociatedConstantDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(VariableIntroducer)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ReturnedModifier)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(VariableInitializer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(VariableDecl)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(VariablePattern)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ExprStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(BreakStatementStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(BreakStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ContinueStatementStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ContinueStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ReturnStatementStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ReturnVarModifier)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ReturnStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ForHeaderStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ForIn)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ForHeader)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(ForStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(IfConditionStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(IfCondition)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(IfStatementElse)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(IfStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(WhileConditionStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(WhileCondition)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(WhileStatement)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(IndexExprStart)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(IndexExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(RefPrimitiveForm)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(VarPrimitiveForm)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ValPrimitiveForm)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(FormLiteralKeyword)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(FormLiteralOpenParen)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(FormLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ParenExprStart)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ParenExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(TupleLiteralStart)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(TupleLiteralComma)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(TupleLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(CallExprStart)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(CallExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(MemberAccessExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(PointerMemberAccessExpr)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(IntLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolLiteralFalse, False)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolLiteralTrue, True)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(CharLiteral, CharLiteral)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(RealLiteral, RealLiteral)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(StringLiteral, StringLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(AutoTypeLiteral, Auto)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolTypeLiteral, Bool)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(CharTypeLiteral, Char)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(FloatTypeLiteral, FloatTypeLiteral)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(IntTypeLiteral, IntTypeLiteral)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(StringTypeLiteral, Str)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(TypeTypeLiteral, Type)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(UnsignedIntTypeLiteral,
|
|
UnsignedIntTypeLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Amp)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Caret)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Const)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Not)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Minus)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(MinusMinus)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Partial)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(PlusPlus)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Ref)
|
|
CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR(Star)
|
|
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Amp)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(AmpEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(As)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Caret)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(CaretEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Equal)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(EqualEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(ExclaimEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Greater)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(GreaterEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(GreaterGreater)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(GreaterGreaterEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Less)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessEqualGreater)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessLess)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(LessLessEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Minus)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(MinusEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Percent)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(PercentEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Pipe)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(PipeEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Plus)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(PlusEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Slash)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(SlashEqual)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(Star)
|
|
CARBON_PARSE_NODE_KIND_INFIX_OPERATOR(StarEqual)
|
|
|
|
CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR(Star)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ShortCircuitOperandAnd)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ShortCircuitOperandOr)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ShortCircuitOperatorAnd)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(ShortCircuitOperatorOr)
|
|
|
|
CARBON_PARSE_NODE_KIND_PATTERN(UnsafeModifier)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(DesignatorExpr)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(SelfTypeName)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(RequirementAnd)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(RequirementEqual)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(RequirementEqualEqual)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(RequirementImpls)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(WhereExpr)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(WhereOperand)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(IfExprIf)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(IfExprThen)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(IfExprElse)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructFieldDesignator)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructLiteralStart)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructLiteralField)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructLiteralComma)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructTypeLiteralStart)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructTypeLiteralField)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructTypeLiteralComma)
|
|
CARBON_PARSE_NODE_KIND_EXPRESSION(StructTypeLiteral)
|
|
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ExternModifierWithLibrary)
|
|
CARBON_PARSE_NODE_KIND_PATTERN(ExternModifier)
|
|
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Abstract)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Base)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Default)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Eval)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Export)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Extend)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Final)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Impl)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(MustEval)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Override)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Private)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Protected)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Static)
|
|
CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER(Virtual)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ClassIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ClassDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ClassDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ClassDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AdaptIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(AdaptDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BaseIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BaseColon)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(BaseDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InterfaceIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InterfaceDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InterfaceDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(InterfaceDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImplIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImplDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImplDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImplDecl)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(Forall)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImplTypeAs)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ImplDefaultSelfAs)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(RequireIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(RequireTypeImpls)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(RequireDefaultSelfImpls)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(RequireDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ObserveIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ObserveEqualEqual)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ObserveImpls)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ObserveDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(NamedConstraintIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(NamedConstraintDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(NamedConstraintDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(NamedConstraintDecl)
|
|
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ChoiceIntroducer)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ChoiceDefinitionStart)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ChoiceDefinition)
|
|
CARBON_PARSE_NODE_KIND_DECLARATION(ChoiceAlternativeListComma)
|
|
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchIntroducer)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchConditionStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchCondition)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchStatementStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchStatement)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchCaseIntroducer)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchCaseGuardIntroducer)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchCaseGuardStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchCaseGuard)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchCase)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchDefaultIntroducer)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchDefault)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchHandlerStart)
|
|
CARBON_PARSE_NODE_KIND_STATEMENT(MatchHandler)
|
|
|
|
#undef CARBON_PARSE_NODE_KIND
|
|
#undef CARBON_PARSE_NODE_KIND_DECLARATION
|
|
#undef CARBON_PARSE_NODE_KIND_EXPRESSION
|
|
#undef CARBON_PARSE_NODE_KIND_PATTERN
|
|
#undef CARBON_PARSE_NODE_KIND_STATEMENT
|
|
#undef CARBON_PARSE_NODE_KIND_INFIX_OPERATOR
|
|
#undef CARBON_PARSE_NODE_KIND_POSTFIX_OPERATOR
|
|
#undef CARBON_PARSE_NODE_KIND_PREFIX_OPERATOR
|
|
#undef CARBON_PARSE_NODE_KIND_TOKEN_LITERAL
|
|
#undef CARBON_PARSE_NODE_KIND_TOKEN_MODIFIER
|