diff --git a/packages/cxx-frontend/src/AST.ts b/packages/cxx-frontend/src/AST.ts index c44b33d1..c900aa25 100644 --- a/packages/cxx-frontend/src/AST.ts +++ b/packages/cxx-frontend/src/AST.ts @@ -3490,27 +3490,41 @@ export class GotoStatementAST extends StatementAST { return Token.from(cxx.getASTSlot(this.getHandle(), 0), this.parser); } + /** + * Returns the location of the star token in this node + */ + getStarToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 1), this.parser); + } + /** * Returns the location of the identifier token in this node */ getIdentifierToken(): Token | undefined { - return Token.from(cxx.getASTSlot(this.getHandle(), 1), this.parser); + return Token.from(cxx.getASTSlot(this.getHandle(), 2), this.parser); } /** * Returns the location of the semicolon token in this node */ getSemicolonToken(): Token | undefined { - return Token.from(cxx.getASTSlot(this.getHandle(), 2), this.parser); + return Token.from(cxx.getASTSlot(this.getHandle(), 3), this.parser); } /** * Returns the identifier attribute of this node */ getIdentifier(): string | undefined { - const slot = cxx.getASTSlot(this.getHandle(), 3); + const slot = cxx.getASTSlot(this.getHandle(), 4); return cxx.getIdentifierValue(slot); } + + /** + * Returns the isIndirect attribute of this node + */ + getIsIndirect(): boolean { + return cxx.getASTSlot(this.getHandle(), 5) !== 0; + } } /** @@ -5666,6 +5680,46 @@ export class ReflectExpressionAST extends ExpressionAST { } } +/** + * LabelAddressExpressionAST node. + */ +export class LabelAddressExpressionAST extends ExpressionAST { + /** + * Traverse this node using the given visitor. + * @param visitor the visitor. + * @param context the context. + * @returns the result of the visit. + */ + accept( + visitor: ASTVisitor, + context: Context, + ): Result { + return visitor.visitLabelAddressExpression(this, context); + } + + /** + * Returns the location of the ampAmp token in this node + */ + getAmpAmpToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 0), this.parser); + } + + /** + * Returns the location of the identifier token in this node + */ + getIdentifierToken(): Token | undefined { + return Token.from(cxx.getASTSlot(this.getHandle(), 1), this.parser); + } + + /** + * Returns the identifier attribute of this node + */ + getIdentifier(): string | undefined { + const slot = cxx.getASTSlot(this.getHandle(), 2); + return cxx.getIdentifierValue(slot); + } +} + /** * UnaryExpressionAST node. */ @@ -13279,6 +13333,7 @@ const AST_CONSTRUCTORS: Array< NamespaceReflectExpressionAST, TypeIdReflectExpressionAST, ReflectExpressionAST, + LabelAddressExpressionAST, UnaryExpressionAST, AwaitExpressionAST, SizeofExpressionAST, diff --git a/packages/cxx-frontend/src/ASTKind.ts b/packages/cxx-frontend/src/ASTKind.ts index 8dabf8b0..92acb127 100644 --- a/packages/cxx-frontend/src/ASTKind.ts +++ b/packages/cxx-frontend/src/ASTKind.ts @@ -114,6 +114,7 @@ export enum ASTKind { NamespaceReflectExpression, TypeIdReflectExpression, ReflectExpression, + LabelAddressExpression, UnaryExpression, AwaitExpression, SizeofExpression, diff --git a/packages/cxx-frontend/src/ASTSlot.ts b/packages/cxx-frontend/src/ASTSlot.ts index d50ea9c6..f78b2c09 100644 --- a/packages/cxx-frontend/src/ASTSlot.ts +++ b/packages/cxx-frontend/src/ASTSlot.ts @@ -25,234 +25,236 @@ export enum ASTSlot { accessSpecifier = 2, alignasLoc = 3, alignofLoc = 4, - ampLoc = 5, - arrowLoc = 6, - asmLoc = 7, - asmQualifierList = 8, - atomicLoc = 9, - attributeArgumentClause = 10, - attributeList = 11, - attributeLoc = 12, - attributeNamespace = 13, - attributeNamespaceLoc = 14, - attributeToken = 15, - attributeUsingPrefix = 16, - autoLoc = 17, - awaitLoc = 18, - baseExpression = 19, - baseSpecifierList = 20, - bindingList = 21, - bracedInitList = 22, - breakLoc = 23, - captureDefault = 24, - captureDefaultLoc = 25, - captureList = 26, - caretLoc = 27, - caseLoc = 28, - castLoc = 29, - catchLoc = 30, - classKey = 31, - classKeyLoc = 32, - classLoc = 33, - clobberList = 34, - closeLoc = 35, - colonLoc = 36, - commaLoc = 37, - complexLoc = 38, - conceptLoc = 39, - condition = 40, - constLoc = 41, - constevalLoc = 42, - constexprLoc = 43, - constinitLoc = 44, - constraintLiteral = 45, - constraintLiteralLoc = 46, - constvalLoc = 47, - continueLoc = 48, - coreDeclarator = 49, - coreturnLoc = 50, - cvQualifierList = 51, - declSpecifierList = 52, - declaration = 53, - declarationList = 54, - declarator = 55, - declaratorChunkList = 56, - decltypeLoc = 57, - decltypeSpecifier = 58, - defaultLoc = 59, - deleteLoc = 60, - designatorList = 61, - doLoc = 62, - dotLoc = 63, - ellipsisLoc = 64, - elseLoc = 65, - elseStatement = 66, - emicolonLoc = 67, - enumLoc = 68, - enumTypeSpecifier = 69, - enumeratorList = 70, - equalLoc = 71, - exceptionDeclaration = 72, - exceptionSpecifier = 73, - exclaimLoc = 74, - explicitLoc = 75, - explicitSpecifier = 76, - exportLoc = 77, - expression = 78, - expressionList = 79, - externLoc = 80, - extraAttributeList = 81, - finalLoc = 82, - foldOp = 83, - foldOpLoc = 84, - forLoc = 85, - friendLoc = 86, - functionBody = 87, - genericAssociationList = 88, - genericLoc = 89, - globalModuleFragment = 90, - gnuAtributeList = 91, - gnuAttributeList = 92, - gotoLabelList = 93, - gotoLoc = 94, - greaterLoc = 95, - handlerList = 96, - headerLoc = 97, - id = 98, - idExpression = 99, - identifier = 100, - identifierLoc = 101, - ifLoc = 102, - iffalseExpression = 103, - iftrueExpression = 104, - importLoc = 105, - importName = 106, - indexExpression = 107, - initDeclaratorList = 108, - initializer = 109, - inlineLoc = 110, - inputOperandList = 111, - isFinal = 112, - isInline = 113, - isNot = 114, - isOverride = 115, - isPack = 116, - isPure = 117, - isTemplateIntroduced = 118, - isThisIntroduced = 119, - isTrue = 120, - isVariadic = 121, - isVirtual = 122, - lambdaSpecifierList = 123, - lbraceLoc = 124, - lbracket2Loc = 125, - lbracketLoc = 126, - leftExpression = 127, - lessLoc = 128, - literal = 129, - literalLoc = 130, - literalOperatorId = 131, - lparen2Loc = 132, - lparenLoc = 133, - memInitializerList = 134, - minusGreaterLoc = 135, - moduleDeclaration = 136, - moduleLoc = 137, - moduleName = 138, - modulePartition = 139, - moduleQualifier = 140, - mutableLoc = 141, - namespaceLoc = 142, - nestedNameSpecifier = 143, - nestedNamespaceSpecifierList = 144, - newInitalizer = 145, - newLoc = 146, - newPlacement = 147, - noexceptLoc = 148, - noreturnLoc = 149, - offsetofLoc = 150, - op = 151, - opLoc = 152, - openLoc = 153, - operatorFunctionId = 154, - operatorLoc = 155, - otherVirtualOrAccessLoc = 156, - outputOperandList = 157, - parameterDeclarationClause = 158, - parameterDeclarationList = 159, - privateLoc = 160, - privateModuleFragment = 161, - ptrOpList = 162, - qualifier = 163, - qualifierLoc = 164, - questionLoc = 165, - rangeDeclaration = 166, - rangeInitializer = 167, - rbraceLoc = 168, - rbracket2Loc = 169, - rbracketLoc = 170, - refLoc = 171, - refOp = 172, - refQualifierLoc = 173, - registerLoc = 174, - requirementList = 175, - requiresClause = 176, - requiresLoc = 177, - restrictLoc = 178, - returnLoc = 179, - rightExpression = 180, - rparen2Loc = 181, - rparenLoc = 182, - scopeLoc = 183, - secondColonLoc = 184, - semicolonLoc = 185, - sizeExpression = 186, - sizeofLoc = 187, - specifier = 188, - specifierLoc = 189, - splicer = 190, - starLoc = 191, - statement = 192, - statementList = 193, - staticAssertLoc = 194, - staticLoc = 195, - stringLiteral = 196, - stringliteralLoc = 197, - switchLoc = 198, - symbolicName = 199, - symbolicNameLoc = 200, - templateArgumentList = 201, - templateId = 202, - templateLoc = 203, - templateParameterList = 204, - templateRequiresClause = 205, - thisLoc = 206, - threadLoc = 207, - threadLocalLoc = 208, - throwLoc = 209, - tildeLoc = 210, - trailingReturnType = 211, - tryLoc = 212, - typeConstraint = 213, - typeId = 214, - typeIdList = 215, - typeLoc = 216, - typeQualifierList = 217, - typeSpecifier = 218, - typeSpecifierList = 219, - typeTraitLoc = 220, - typedefLoc = 221, - typeidLoc = 222, - typenameLoc = 223, - underlyingTypeLoc = 224, - unqualifiedId = 225, - usingDeclaratorList = 226, - usingLoc = 227, - vaArgLoc = 228, - virtualLoc = 229, - virtualOrAccessLoc = 230, - voidLoc = 231, - volatileLoc = 232, - whileLoc = 233, - yieldLoc = 234, + ampAmpLoc = 5, + ampLoc = 6, + arrowLoc = 7, + asmLoc = 8, + asmQualifierList = 9, + atomicLoc = 10, + attributeArgumentClause = 11, + attributeList = 12, + attributeLoc = 13, + attributeNamespace = 14, + attributeNamespaceLoc = 15, + attributeToken = 16, + attributeUsingPrefix = 17, + autoLoc = 18, + awaitLoc = 19, + baseExpression = 20, + baseSpecifierList = 21, + bindingList = 22, + bracedInitList = 23, + breakLoc = 24, + captureDefault = 25, + captureDefaultLoc = 26, + captureList = 27, + caretLoc = 28, + caseLoc = 29, + castLoc = 30, + catchLoc = 31, + classKey = 32, + classKeyLoc = 33, + classLoc = 34, + clobberList = 35, + closeLoc = 36, + colonLoc = 37, + commaLoc = 38, + complexLoc = 39, + conceptLoc = 40, + condition = 41, + constLoc = 42, + constevalLoc = 43, + constexprLoc = 44, + constinitLoc = 45, + constraintLiteral = 46, + constraintLiteralLoc = 47, + constvalLoc = 48, + continueLoc = 49, + coreDeclarator = 50, + coreturnLoc = 51, + cvQualifierList = 52, + declSpecifierList = 53, + declaration = 54, + declarationList = 55, + declarator = 56, + declaratorChunkList = 57, + decltypeLoc = 58, + decltypeSpecifier = 59, + defaultLoc = 60, + deleteLoc = 61, + designatorList = 62, + doLoc = 63, + dotLoc = 64, + ellipsisLoc = 65, + elseLoc = 66, + elseStatement = 67, + emicolonLoc = 68, + enumLoc = 69, + enumTypeSpecifier = 70, + enumeratorList = 71, + equalLoc = 72, + exceptionDeclaration = 73, + exceptionSpecifier = 74, + exclaimLoc = 75, + explicitLoc = 76, + explicitSpecifier = 77, + exportLoc = 78, + expression = 79, + expressionList = 80, + externLoc = 81, + extraAttributeList = 82, + finalLoc = 83, + foldOp = 84, + foldOpLoc = 85, + forLoc = 86, + friendLoc = 87, + functionBody = 88, + genericAssociationList = 89, + genericLoc = 90, + globalModuleFragment = 91, + gnuAtributeList = 92, + gnuAttributeList = 93, + gotoLabelList = 94, + gotoLoc = 95, + greaterLoc = 96, + handlerList = 97, + headerLoc = 98, + id = 99, + idExpression = 100, + identifier = 101, + identifierLoc = 102, + ifLoc = 103, + iffalseExpression = 104, + iftrueExpression = 105, + importLoc = 106, + importName = 107, + indexExpression = 108, + initDeclaratorList = 109, + initializer = 110, + inlineLoc = 111, + inputOperandList = 112, + isFinal = 113, + isIndirect = 114, + isInline = 115, + isNot = 116, + isOverride = 117, + isPack = 118, + isPure = 119, + isTemplateIntroduced = 120, + isThisIntroduced = 121, + isTrue = 122, + isVariadic = 123, + isVirtual = 124, + lambdaSpecifierList = 125, + lbraceLoc = 126, + lbracket2Loc = 127, + lbracketLoc = 128, + leftExpression = 129, + lessLoc = 130, + literal = 131, + literalLoc = 132, + literalOperatorId = 133, + lparen2Loc = 134, + lparenLoc = 135, + memInitializerList = 136, + minusGreaterLoc = 137, + moduleDeclaration = 138, + moduleLoc = 139, + moduleName = 140, + modulePartition = 141, + moduleQualifier = 142, + mutableLoc = 143, + namespaceLoc = 144, + nestedNameSpecifier = 145, + nestedNamespaceSpecifierList = 146, + newInitalizer = 147, + newLoc = 148, + newPlacement = 149, + noexceptLoc = 150, + noreturnLoc = 151, + offsetofLoc = 152, + op = 153, + opLoc = 154, + openLoc = 155, + operatorFunctionId = 156, + operatorLoc = 157, + otherVirtualOrAccessLoc = 158, + outputOperandList = 159, + parameterDeclarationClause = 160, + parameterDeclarationList = 161, + privateLoc = 162, + privateModuleFragment = 163, + ptrOpList = 164, + qualifier = 165, + qualifierLoc = 166, + questionLoc = 167, + rangeDeclaration = 168, + rangeInitializer = 169, + rbraceLoc = 170, + rbracket2Loc = 171, + rbracketLoc = 172, + refLoc = 173, + refOp = 174, + refQualifierLoc = 175, + registerLoc = 176, + requirementList = 177, + requiresClause = 178, + requiresLoc = 179, + restrictLoc = 180, + returnLoc = 181, + rightExpression = 182, + rparen2Loc = 183, + rparenLoc = 184, + scopeLoc = 185, + secondColonLoc = 186, + semicolonLoc = 187, + sizeExpression = 188, + sizeofLoc = 189, + specifier = 190, + specifierLoc = 191, + splicer = 192, + starLoc = 193, + statement = 194, + statementList = 195, + staticAssertLoc = 196, + staticLoc = 197, + stringLiteral = 198, + stringliteralLoc = 199, + switchLoc = 200, + symbolicName = 201, + symbolicNameLoc = 202, + templateArgumentList = 203, + templateId = 204, + templateLoc = 205, + templateParameterList = 206, + templateRequiresClause = 207, + thisLoc = 208, + threadLoc = 209, + threadLocalLoc = 210, + throwLoc = 211, + tildeLoc = 212, + trailingReturnType = 213, + tryLoc = 214, + typeConstraint = 215, + typeId = 216, + typeIdList = 217, + typeLoc = 218, + typeQualifierList = 219, + typeSpecifier = 220, + typeSpecifierList = 221, + typeTraitLoc = 222, + typedefLoc = 223, + typeidLoc = 224, + typenameLoc = 225, + underlyingTypeLoc = 226, + unqualifiedId = 227, + usingDeclaratorList = 228, + usingLoc = 229, + vaArgLoc = 230, + virtualLoc = 231, + virtualOrAccessLoc = 232, + voidLoc = 233, + volatileLoc = 234, + whileLoc = 235, + yieldLoc = 236, } diff --git a/packages/cxx-frontend/src/ASTVisitor.ts b/packages/cxx-frontend/src/ASTVisitor.ts index 59413575..e18094fd 100644 --- a/packages/cxx-frontend/src/ASTVisitor.ts +++ b/packages/cxx-frontend/src/ASTVisitor.ts @@ -1058,6 +1058,18 @@ export abstract class ASTVisitor { context: Context, ): Result; + /** + * Visit LabelAddressExpression node. + * + * @param node The node to visit. + * @param context The context. + * @returns The result of the visit. + */ + abstract visitLabelAddressExpression( + node: ast.LabelAddressExpressionAST, + context: Context, + ): Result; + /** * Visit UnaryExpression node. * diff --git a/packages/cxx-frontend/src/RecursiveASTVisitor.ts b/packages/cxx-frontend/src/RecursiveASTVisitor.ts index dc70a78f..2e4521e9 100644 --- a/packages/cxx-frontend/src/RecursiveASTVisitor.ts +++ b/packages/cxx-frontend/src/RecursiveASTVisitor.ts @@ -1205,6 +1205,17 @@ export class RecursiveASTVisitor extends ASTVisitor { this.accept(node.getExpression(), context); } + /** + * Visit a LabelAddressExpression node. + * + * @param node The node to visit. + * @param context The context. + */ + visitLabelAddressExpression( + node: ast.LabelAddressExpressionAST, + context: Context, + ): void {} + /** * Visit a UnaryExpression node. * diff --git a/src/mlir/cxx/mlir/codegen.cc b/src/mlir/cxx/mlir/codegen.cc index 3464c615..5bc85e64 100644 --- a/src/mlir/cxx/mlir/codegen.cc +++ b/src/mlir/cxx/mlir/codegen.cc @@ -245,6 +245,9 @@ struct Codegen::ExpressionVisitor { [[nodiscard]] auto operator()(ReflectExpressionAST* ast) -> ExpressionResult; + [[nodiscard]] auto operator()(LabelAddressExpressionAST* ast) + -> ExpressionResult; + [[nodiscard]] auto operator()(UnaryExpressionAST* ast) -> ExpressionResult; [[nodiscard]] auto operator()(AwaitExpressionAST* ast) -> ExpressionResult; @@ -1944,6 +1947,14 @@ auto Codegen::ExpressionVisitor::operator()(ReflectExpressionAST* ast) return {op}; } +auto Codegen::ExpressionVisitor::operator()(LabelAddressExpressionAST* ast) + -> ExpressionResult { + auto op = + gen.emitTodoExpr(ast->firstSourceLocation(), "LabelAddressExpressionAST"); + + return {op}; +} + auto Codegen::ExpressionVisitor::operator()(UnaryExpressionAST* ast) -> ExpressionResult { auto op = gen.emitTodoExpr(ast->firstSourceLocation(), "UnaryExpressionAST"); diff --git a/src/parser/cxx/ast.cc b/src/parser/cxx/ast.cc index d0bdf021..86adb24e 100644 --- a/src/parser/cxx/ast.cc +++ b/src/parser/cxx/ast.cc @@ -831,6 +831,7 @@ auto CoroutineReturnStatementAST::lastSourceLocation() -> SourceLocation { auto GotoStatementAST::firstSourceLocation() -> SourceLocation { if (auto loc = cxx::firstSourceLocation(gotoLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(starLoc)) return loc; if (auto loc = cxx::firstSourceLocation(identifierLoc)) return loc; if (auto loc = cxx::firstSourceLocation(semicolonLoc)) return loc; return {}; @@ -839,6 +840,7 @@ auto GotoStatementAST::firstSourceLocation() -> SourceLocation { auto GotoStatementAST::lastSourceLocation() -> SourceLocation { if (auto loc = cxx::lastSourceLocation(semicolonLoc)) return loc; if (auto loc = cxx::lastSourceLocation(identifierLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(starLoc)) return loc; if (auto loc = cxx::lastSourceLocation(gotoLoc)) return loc; return {}; } @@ -1443,6 +1445,18 @@ auto ReflectExpressionAST::lastSourceLocation() -> SourceLocation { return {}; } +auto LabelAddressExpressionAST::firstSourceLocation() -> SourceLocation { + if (auto loc = cxx::firstSourceLocation(ampAmpLoc)) return loc; + if (auto loc = cxx::firstSourceLocation(identifierLoc)) return loc; + return {}; +} + +auto LabelAddressExpressionAST::lastSourceLocation() -> SourceLocation { + if (auto loc = cxx::lastSourceLocation(identifierLoc)) return loc; + if (auto loc = cxx::lastSourceLocation(ampAmpLoc)) return loc; + return {}; +} + auto UnaryExpressionAST::firstSourceLocation() -> SourceLocation { if (auto loc = cxx::firstSourceLocation(opLoc)) return loc; if (auto loc = cxx::firstSourceLocation(expression)) return loc; @@ -3636,6 +3650,7 @@ std::string_view kASTKindNames[] = { "namespace-reflect-expression", "type-id-reflect-expression", "reflect-expression", + "label-address-expression", "unary-expression", "await-expression", "sizeof-expression", diff --git a/src/parser/cxx/ast.fbs b/src/parser/cxx/ast.fbs index c94b3b61..81e599e0 100644 --- a/src/parser/cxx/ast.fbs +++ b/src/parser/cxx/ast.fbs @@ -164,6 +164,7 @@ union Expression { NamespaceReflectExpression, TypeIdReflectExpression, ReflectExpression, + LabelAddressExpression, UnaryExpression, AwaitExpression, SizeofExpression, @@ -1130,6 +1131,12 @@ table ReflectExpression /* ExpressionAST */ { caret_loc: uint32; } +table LabelAddressExpression /* ExpressionAST */ { + identifier: string; + amp_amp_loc: uint32; + identifier_loc: uint32; +} + table UnaryExpression /* ExpressionAST */ { expression: Expression; op: uint32; @@ -1788,6 +1795,7 @@ table CoroutineReturnStatement /* StatementAST */ { table GotoStatement /* StatementAST */ { identifier: string; goto_loc: uint32; + star_loc: uint32; identifier_loc: uint32; semicolon_loc: uint32; } diff --git a/src/parser/cxx/ast.h b/src/parser/cxx/ast.h index 9ae171ff..36cdff79 100644 --- a/src/parser/cxx/ast.h +++ b/src/parser/cxx/ast.h @@ -1139,9 +1139,11 @@ class GotoStatementAST final : public StatementAST { GotoStatementAST() : StatementAST(Kind) {} SourceLocation gotoLoc; + SourceLocation starLoc; SourceLocation identifierLoc; SourceLocation semicolonLoc; const Identifier* identifier = nullptr; + bool isIndirect = false; void accept(ASTVisitor* visitor) override { visitor->visit(this); } @@ -1823,6 +1825,22 @@ class ReflectExpressionAST final : public ExpressionAST { auto lastSourceLocation() -> SourceLocation override; }; +class LabelAddressExpressionAST final : public ExpressionAST { + public: + static constexpr ASTKind Kind = ASTKind::LabelAddressExpression; + + LabelAddressExpressionAST() : ExpressionAST(Kind) {} + + SourceLocation ampAmpLoc; + SourceLocation identifierLoc; + const Identifier* identifier = nullptr; + + void accept(ASTVisitor* visitor) override { visitor->visit(this); } + + auto firstSourceLocation() -> SourceLocation override; + auto lastSourceLocation() -> SourceLocation override; +}; + class UnaryExpressionAST final : public ExpressionAST { public: static constexpr ASTKind Kind = ASTKind::UnaryExpression; @@ -4660,6 +4678,9 @@ auto visit(Visitor&& visitor, ExpressionAST* ast) { case ReflectExpressionAST::Kind: return std::invoke(std::forward(visitor), static_cast(ast)); + case LabelAddressExpressionAST::Kind: + return std::invoke(std::forward(visitor), + static_cast(ast)); case UnaryExpressionAST::Kind: return std::invoke(std::forward(visitor), static_cast(ast)); @@ -4778,6 +4799,7 @@ template <> case NamespaceReflectExpressionAST::Kind: case TypeIdReflectExpressionAST::Kind: case ReflectExpressionAST::Kind: + case LabelAddressExpressionAST::Kind: case UnaryExpressionAST::Kind: case AwaitExpressionAST::Kind: case SizeofExpressionAST::Kind: diff --git a/src/parser/cxx/ast_fwd.h b/src/parser/cxx/ast_fwd.h index 97e52000..e0859e40 100644 --- a/src/parser/cxx/ast_fwd.h +++ b/src/parser/cxx/ast_fwd.h @@ -174,6 +174,7 @@ class GlobalScopeReflectExpressionAST; class NamespaceReflectExpressionAST; class TypeIdReflectExpressionAST; class ReflectExpressionAST; +class LabelAddressExpressionAST; class UnaryExpressionAST; class AwaitExpressionAST; class SizeofExpressionAST; diff --git a/src/parser/cxx/ast_interpreter.cc b/src/parser/cxx/ast_interpreter.cc index 3096b0f4..95b1edf8 100644 --- a/src/parser/cxx/ast_interpreter.cc +++ b/src/parser/cxx/ast_interpreter.cc @@ -370,6 +370,9 @@ struct ASTInterpreter::ExpressionVisitor { [[nodiscard]] auto operator()(ReflectExpressionAST* ast) -> ExpressionResult; + [[nodiscard]] auto operator()(LabelAddressExpressionAST* ast) + -> ExpressionResult; + [[nodiscard]] auto operator()(UnaryExpressionAST* ast) -> ExpressionResult; [[nodiscard]] auto operator()(AwaitExpressionAST* ast) -> ExpressionResult; @@ -1885,6 +1888,11 @@ auto ASTInterpreter::ExpressionVisitor::operator()(ReflectExpressionAST* ast) return ExpressionResult{std::nullopt}; } +auto ASTInterpreter::ExpressionVisitor::operator()( + LabelAddressExpressionAST* ast) -> ExpressionResult { + return ExpressionResult{std::nullopt}; +} + auto ASTInterpreter::ExpressionVisitor::operator()(UnaryExpressionAST* ast) -> ExpressionResult { auto expressionResult = accept(ast->expression); diff --git a/src/parser/cxx/ast_kind.h b/src/parser/cxx/ast_kind.h index 4ebbc587..34d69e3c 100644 --- a/src/parser/cxx/ast_kind.h +++ b/src/parser/cxx/ast_kind.h @@ -119,6 +119,7 @@ enum class ASTKind { NamespaceReflectExpression, TypeIdReflectExpression, ReflectExpression, + LabelAddressExpression, UnaryExpression, AwaitExpression, SizeofExpression, diff --git a/src/parser/cxx/ast_pretty_printer.cc b/src/parser/cxx/ast_pretty_printer.cc index 3f425998..4f0da283 100644 --- a/src/parser/cxx/ast_pretty_printer.cc +++ b/src/parser/cxx/ast_pretty_printer.cc @@ -257,6 +257,8 @@ struct ASTPrettyPrinter::ExpressionVisitor { void operator()(ReflectExpressionAST* ast); + void operator()(LabelAddressExpressionAST* ast); + void operator()(UnaryExpressionAST* ast); void operator()(AwaitExpressionAST* ast); @@ -2210,6 +2212,9 @@ void ASTPrettyPrinter::StatementVisitor::operator()(GotoStatementAST* ast) { if (ast->gotoLoc) { accept.writeToken(ast->gotoLoc); } + if (ast->starLoc) { + accept.writeToken(ast->starLoc); + } if (ast->identifierLoc) { accept.writeToken(ast->identifierLoc); } @@ -2826,6 +2831,16 @@ void ASTPrettyPrinter::ExpressionVisitor::operator()( accept(ast->expression); } +void ASTPrettyPrinter::ExpressionVisitor::operator()( + LabelAddressExpressionAST* ast) { + if (ast->ampAmpLoc) { + accept.writeToken(ast->ampAmpLoc); + } + if (ast->identifierLoc) { + accept.writeToken(ast->identifierLoc); + } +} + void ASTPrettyPrinter::ExpressionVisitor::operator()(UnaryExpressionAST* ast) { if (ast->opLoc) { space(); diff --git a/src/parser/cxx/ast_printer.cc b/src/parser/cxx/ast_printer.cc index fdb6946b..3c17ade6 100644 --- a/src/parser/cxx/ast_printer.cc +++ b/src/parser/cxx/ast_printer.cc @@ -686,6 +686,12 @@ void ASTPrinter::visit(CoroutineReturnStatementAST* ast) { void ASTPrinter::visit(GotoStatementAST* ast) { out_ << std::format("{}\n", "goto-statement"); accept(ast->identifier, "identifier"); + if (ast->isIndirect) { + ++indent_; + out_ << std::format("{:{}}", "", indent_ * 2); + out_ << std::format("is-indirect: {}\n", ast->isIndirect); + --indent_; + } } void ASTPrinter::visit(DeclarationStatementAST* ast) { @@ -1277,6 +1283,16 @@ void ASTPrinter::visit(ReflectExpressionAST* ast) { accept(ast->expression, "expression"); } +void ASTPrinter::visit(LabelAddressExpressionAST* ast) { + out_ << "label-address-expression"; + if (ast->type) { + out_ << std::format(" [{} {}]", to_string(ast->valueCategory), + to_string(ast->type)); + } + out_ << "\n"; + accept(ast->identifier, "identifier"); +} + void ASTPrinter::visit(UnaryExpressionAST* ast) { out_ << "unary-expression"; if (ast->type) { diff --git a/src/parser/cxx/ast_printer.h b/src/parser/cxx/ast_printer.h index c4f09603..ea9b4c84 100644 --- a/src/parser/cxx/ast_printer.h +++ b/src/parser/cxx/ast_printer.h @@ -133,6 +133,7 @@ class ASTPrinter : ASTVisitor { void visit(NamespaceReflectExpressionAST* ast) override; void visit(TypeIdReflectExpressionAST* ast) override; void visit(ReflectExpressionAST* ast) override; + void visit(LabelAddressExpressionAST* ast) override; void visit(UnaryExpressionAST* ast) override; void visit(AwaitExpressionAST* ast) override; void visit(SizeofExpressionAST* ast) override; diff --git a/src/parser/cxx/ast_rewriter.cc b/src/parser/cxx/ast_rewriter.cc index d8b130a9..2a630ba3 100644 --- a/src/parser/cxx/ast_rewriter.cc +++ b/src/parser/cxx/ast_rewriter.cc @@ -332,6 +332,9 @@ struct ASTRewriter::ExpressionVisitor { [[nodiscard]] auto operator()(ReflectExpressionAST* ast) -> ExpressionAST*; + [[nodiscard]] auto operator()(LabelAddressExpressionAST* ast) + -> ExpressionAST*; + [[nodiscard]] auto operator()(UnaryExpressionAST* ast) -> ExpressionAST*; [[nodiscard]] auto operator()(AwaitExpressionAST* ast) -> ExpressionAST*; @@ -2310,9 +2313,11 @@ auto ASTRewriter::StatementVisitor::operator()(GotoStatementAST* ast) auto copy = make_node(arena()); copy->gotoLoc = ast->gotoLoc; + copy->starLoc = ast->starLoc; copy->identifierLoc = ast->identifierLoc; copy->semicolonLoc = ast->semicolonLoc; copy->identifier = ast->identifier; + copy->isIndirect = ast->isIndirect; return copy; } @@ -3021,6 +3026,19 @@ auto ASTRewriter::ExpressionVisitor::operator()(ReflectExpressionAST* ast) return copy; } +auto ASTRewriter::ExpressionVisitor::operator()(LabelAddressExpressionAST* ast) + -> ExpressionAST* { + auto copy = make_node(arena()); + + copy->valueCategory = ast->valueCategory; + copy->type = ast->type; + copy->ampAmpLoc = ast->ampAmpLoc; + copy->identifierLoc = ast->identifierLoc; + copy->identifier = ast->identifier; + + return copy; +} + auto ASTRewriter::ExpressionVisitor::operator()(UnaryExpressionAST* ast) -> ExpressionAST* { auto copy = make_node(arena()); diff --git a/src/parser/cxx/ast_slot.cc b/src/parser/cxx/ast_slot.cc index d2b77e40..b4df2fae 100644 --- a/src/parser/cxx/ast_slot.cc +++ b/src/parser/cxx/ast_slot.cc @@ -55,6 +55,7 @@ std::string_view kMemberSlotNames[] = { "accessSpecifier", "alignasLoc", "alignofLoc", + "ampAmpLoc", "ampLoc", "arrowLoc", "asmLoc", @@ -163,6 +164,7 @@ std::string_view kMemberSlotNames[] = { "inlineLoc", "inputOperandList", "isFinal", + "isIndirect", "isInline", "isNot", "isOverride", @@ -296,7 +298,7 @@ void ASTSlot::visit(TranslationUnitAST* ast) { case 0: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -308,22 +310,22 @@ void ASTSlot::visit(ModuleUnitAST* ast) { case 0: // globalModuleFragment value_ = reinterpret_cast(ast->globalModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{90}; + slotNameIndex_ = SlotNameIndex{91}; break; case 1: // moduleDeclaration value_ = reinterpret_cast(ast->moduleDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{136}; + slotNameIndex_ = SlotNameIndex{138}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; case 3: // privateModuleFragment value_ = reinterpret_cast(ast->privateModuleFragment); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{161}; + slotNameIndex_ = SlotNameIndex{163}; break; } // switch @@ -335,27 +337,27 @@ void ASTSlot::visit(SimpleDeclarationAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; case 2: // initDeclaratorList value_ = reinterpret_cast(ast->initDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{108}; + slotNameIndex_ = SlotNameIndex{109}; break; case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -367,62 +369,62 @@ void ASTSlot::visit(AsmDeclarationAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // asmQualifierList value_ = reinterpret_cast(ast->asmQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{8}; + slotNameIndex_ = SlotNameIndex{9}; break; case 2: // asmLoc value_ = ast->asmLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{7}; + slotNameIndex_ = SlotNameIndex{8}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 4: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 5: // outputOperandList value_ = reinterpret_cast(ast->outputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{157}; + slotNameIndex_ = SlotNameIndex{159}; break; case 6: // inputOperandList value_ = reinterpret_cast(ast->inputOperandList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{111}; + slotNameIndex_ = SlotNameIndex{112}; break; case 7: // clobberList value_ = reinterpret_cast(ast->clobberList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{34}; + slotNameIndex_ = SlotNameIndex{35}; break; case 8: // gotoLabelList value_ = reinterpret_cast(ast->gotoLabelList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{93}; + slotNameIndex_ = SlotNameIndex{94}; break; case 9: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 10: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 11: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -434,37 +436,37 @@ void ASTSlot::visit(NamespaceAliasDefinitionAST* ast) { case 0: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{144}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -476,17 +478,17 @@ void ASTSlot::visit(UsingDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // usingDeclaratorList value_ = reinterpret_cast(ast->usingDeclaratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{226}; + slotNameIndex_ = SlotNameIndex{228}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -498,17 +500,17 @@ void ASTSlot::visit(UsingEnumDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // enumTypeSpecifier value_ = reinterpret_cast(ast->enumTypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{69}; + slotNameIndex_ = SlotNameIndex{70}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -520,32 +522,32 @@ void ASTSlot::visit(UsingDirectiveAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{229}; break; case 2: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{144}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -557,42 +559,42 @@ void ASTSlot::visit(StaticAssertDeclarationAST* ast) { case 0: // staticAssertLoc value_ = ast->staticAssertLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{194}; + slotNameIndex_ = SlotNameIndex{196}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 4: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 5: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -604,42 +606,42 @@ void ASTSlot::visit(AliasDeclarationAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 4: // gnuAttributeList value_ = reinterpret_cast(ast->gnuAttributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{92}; + slotNameIndex_ = SlotNameIndex{93}; break; case 5: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 7: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -651,42 +653,42 @@ void ASTSlot::visit(OpaqueEnumDeclarationAST* ast) { case 0: // enumLoc value_ = ast->enumLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{68}; + slotNameIndex_ = SlotNameIndex{69}; break; case 1: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{33}; + slotNameIndex_ = SlotNameIndex{34}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{221}; break; case 7: // emicolonLoc value_ = ast->emicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{67}; + slotNameIndex_ = SlotNameIndex{68}; break; } // switch @@ -698,27 +700,27 @@ void ASTSlot::visit(FunctionDefinitionAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 3: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; case 4: // functionBody value_ = reinterpret_cast(ast->functionBody); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{87}; + slotNameIndex_ = SlotNameIndex{88}; break; } // switch @@ -730,32 +732,32 @@ void ASTSlot::visit(TemplateDeclarationAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{206}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; case 5: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; } // switch @@ -767,32 +769,32 @@ void ASTSlot::visit(ConceptDefinitionAST* ast) { case 0: // conceptLoc value_ = ast->conceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{39}; + slotNameIndex_ = SlotNameIndex{40}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -804,47 +806,47 @@ void ASTSlot::visit(DeductionGuideAST* ast) { case 0: // explicitSpecifier value_ = reinterpret_cast(ast->explicitSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{76}; + slotNameIndex_ = SlotNameIndex{77}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 3: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{160}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // arrowLoc value_ = ast->arrowLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{6}; + slotNameIndex_ = SlotNameIndex{7}; break; case 6: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{202}; + slotNameIndex_ = SlotNameIndex{204}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 8: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -856,17 +858,17 @@ void ASTSlot::visit(ExplicitInstantiationAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 2: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; } // switch @@ -878,12 +880,12 @@ void ASTSlot::visit(ExportDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{77}; + slotNameIndex_ = SlotNameIndex{78}; break; case 1: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; } // switch @@ -895,22 +897,22 @@ void ASTSlot::visit(ExportCompoundDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{77}; + slotNameIndex_ = SlotNameIndex{78}; break; case 1: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; } // switch @@ -922,32 +924,32 @@ void ASTSlot::visit(LinkageSpecificationAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; case 1: // stringliteralLoc value_ = ast->stringliteralLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{197}; + slotNameIndex_ = SlotNameIndex{199}; break; case 2: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 3: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; case 4: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; case 5: // stringLiteral value_ = reinterpret_cast(ast->stringLiteral); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{196}; + slotNameIndex_ = SlotNameIndex{198}; break; } // switch @@ -959,58 +961,58 @@ void ASTSlot::visit(NamespaceDefinitionAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 1: // namespaceLoc value_ = ast->namespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{142}; + slotNameIndex_ = SlotNameIndex{144}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 3: // nestedNamespaceSpecifierList value_ = reinterpret_cast(ast->nestedNamespaceSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{144}; + slotNameIndex_ = SlotNameIndex{146}; break; case 4: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 5: // extraAttributeList value_ = reinterpret_cast(ast->extraAttributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{81}; + slotNameIndex_ = SlotNameIndex{82}; break; case 6: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 7: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; case 8: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; case 9: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 10: // isInline value_ = std::intptr_t(ast->isInline != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{113}; + slotNameIndex_ = SlotNameIndex{115}; break; } // switch @@ -1022,7 +1024,7 @@ void ASTSlot::visit(EmptyDeclarationAST* ast) { case 0: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1034,12 +1036,12 @@ void ASTSlot::visit(AttributeDeclarationAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1051,22 +1053,22 @@ void ASTSlot::visit(ModuleImportDeclarationAST* ast) { case 0: // importLoc value_ = ast->importLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{105}; + slotNameIndex_ = SlotNameIndex{106}; break; case 1: // importName value_ = reinterpret_cast(ast->importName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{106}; + slotNameIndex_ = SlotNameIndex{107}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1078,47 +1080,47 @@ void ASTSlot::visit(ParameterDeclarationAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{208}; break; case 2: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{221}; break; case 3: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 4: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 6: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 7: // isThisIntroduced value_ = std::intptr_t(ast->isThisIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{119}; + slotNameIndex_ = SlotNameIndex{121}; break; case 8: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -1135,7 +1137,7 @@ void ASTSlot::visit(AccessDeclarationAST* ast) { case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // accessSpecifier value_ = std::intptr_t(ast->accessSpecifier); @@ -1154,42 +1156,42 @@ void ASTSlot::visit(StructuredBindingDeclarationAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; case 2: // refQualifierLoc value_ = ast->refQualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{173}; + slotNameIndex_ = SlotNameIndex{175}; break; case 3: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 4: // bindingList value_ = reinterpret_cast(ast->bindingList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{21}; + slotNameIndex_ = SlotNameIndex{22}; break; case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 6: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 7: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1201,47 +1203,47 @@ void ASTSlot::visit(AsmOperandAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // symbolicNameLoc value_ = ast->symbolicNameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{200}; + slotNameIndex_ = SlotNameIndex{202}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 3: // constraintLiteralLoc value_ = ast->constraintLiteralLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{46}; + slotNameIndex_ = SlotNameIndex{47}; break; case 4: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 7: // symbolicName value_ = reinterpret_cast(ast->symbolicName); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{199}; + slotNameIndex_ = SlotNameIndex{201}; break; case 8: // constraintLiteral value_ = reinterpret_cast(ast->constraintLiteral); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{45}; + slotNameIndex_ = SlotNameIndex{46}; break; } // switch @@ -1253,12 +1255,12 @@ void ASTSlot::visit(AsmQualifierAST* ast) { case 0: // qualifierLoc value_ = ast->qualifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{164}; + slotNameIndex_ = SlotNameIndex{166}; break; case 1: // qualifier value_ = std::intptr_t(ast->qualifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{163}; + slotNameIndex_ = SlotNameIndex{165}; break; } // switch @@ -1270,12 +1272,12 @@ void ASTSlot::visit(AsmClobberAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1287,12 +1289,12 @@ void ASTSlot::visit(AsmGotoLabelAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -1304,17 +1306,17 @@ void ASTSlot::visit(LabeledStatementAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -1326,17 +1328,17 @@ void ASTSlot::visit(CaseStatementAST* ast) { case 0: // caseLoc value_ = ast->caseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{28}; + slotNameIndex_ = SlotNameIndex{29}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; } // switch @@ -1348,12 +1350,12 @@ void ASTSlot::visit(DefaultStatementAST* ast) { case 0: // defaultLoc value_ = ast->defaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{59}; + slotNameIndex_ = SlotNameIndex{60}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; } // switch @@ -1365,12 +1367,12 @@ void ASTSlot::visit(ExpressionStatementAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1382,17 +1384,17 @@ void ASTSlot::visit(CompoundStatementAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 1: // statementList value_ = reinterpret_cast(ast->statementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{193}; + slotNameIndex_ = SlotNameIndex{195}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; } // switch @@ -1404,47 +1406,47 @@ void ASTSlot::visit(IfStatementAST* ast) { case 0: // ifLoc value_ = ast->ifLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // constexprLoc value_ = ast->constexprLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{43}; + slotNameIndex_ = SlotNameIndex{44}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 4: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{40}; + slotNameIndex_ = SlotNameIndex{41}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 6: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 7: // elseLoc value_ = ast->elseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 8: // elseStatement value_ = reinterpret_cast(ast->elseStatement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; } // switch @@ -1456,37 +1458,37 @@ void ASTSlot::visit(ConstevalIfStatementAST* ast) { case 0: // ifLoc value_ = ast->ifLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{102}; + slotNameIndex_ = SlotNameIndex{103}; break; case 1: // exclaimLoc value_ = ast->exclaimLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{74}; + slotNameIndex_ = SlotNameIndex{75}; break; case 2: // constvalLoc value_ = ast->constvalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{47}; + slotNameIndex_ = SlotNameIndex{48}; break; case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 4: // elseLoc value_ = ast->elseLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{65}; + slotNameIndex_ = SlotNameIndex{66}; break; case 5: // elseStatement value_ = reinterpret_cast(ast->elseStatement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{66}; + slotNameIndex_ = SlotNameIndex{67}; break; case 6: // isNot value_ = std::intptr_t(ast->isNot != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{114}; + slotNameIndex_ = SlotNameIndex{116}; break; } // switch @@ -1498,32 +1500,32 @@ void ASTSlot::visit(SwitchStatementAST* ast) { case 0: // switchLoc value_ = ast->switchLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{198}; + slotNameIndex_ = SlotNameIndex{200}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 3: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{40}; + slotNameIndex_ = SlotNameIndex{41}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -1535,27 +1537,27 @@ void ASTSlot::visit(WhileStatementAST* ast) { case 0: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{233}; + slotNameIndex_ = SlotNameIndex{235}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{40}; + slotNameIndex_ = SlotNameIndex{41}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -1567,37 +1569,37 @@ void ASTSlot::visit(DoStatementAST* ast) { case 0: // doLoc value_ = ast->doLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{62}; + slotNameIndex_ = SlotNameIndex{63}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 2: // whileLoc value_ = ast->whileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{233}; + slotNameIndex_ = SlotNameIndex{235}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1609,42 +1611,42 @@ void ASTSlot::visit(ForRangeStatementAST* ast) { case 0: // forLoc value_ = ast->forLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{85}; + slotNameIndex_ = SlotNameIndex{86}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 3: // rangeDeclaration value_ = reinterpret_cast(ast->rangeDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{166}; + slotNameIndex_ = SlotNameIndex{168}; break; case 4: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 5: // rangeInitializer value_ = reinterpret_cast(ast->rangeInitializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{167}; + slotNameIndex_ = SlotNameIndex{169}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -1656,42 +1658,42 @@ void ASTSlot::visit(ForStatementAST* ast) { case 0: // forLoc value_ = ast->forLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{85}; + slotNameIndex_ = SlotNameIndex{86}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 3: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{40}; + slotNameIndex_ = SlotNameIndex{41}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 7: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -1703,12 +1705,12 @@ void ASTSlot::visit(BreakStatementAST* ast) { case 0: // breakLoc value_ = ast->breakLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{23}; + slotNameIndex_ = SlotNameIndex{24}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1720,12 +1722,12 @@ void ASTSlot::visit(ContinueStatementAST* ast) { case 0: // continueLoc value_ = ast->continueLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{48}; + slotNameIndex_ = SlotNameIndex{49}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1737,17 +1739,17 @@ void ASTSlot::visit(ReturnStatementAST* ast) { case 0: // returnLoc value_ = ast->returnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{179}; + slotNameIndex_ = SlotNameIndex{181}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1759,17 +1761,17 @@ void ASTSlot::visit(CoroutineReturnStatementAST* ast) { case 0: // coreturnLoc value_ = ast->coreturnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{50}; + slotNameIndex_ = SlotNameIndex{51}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -1781,26 +1783,36 @@ void ASTSlot::visit(GotoStatementAST* ast) { case 0: // gotoLoc value_ = ast->gotoLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{94}; + slotNameIndex_ = SlotNameIndex{95}; break; - case 1: // identifierLoc + case 1: // starLoc + value_ = ast->starLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{193}; + break; + case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; - case 2: // semicolonLoc + case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; - case 3: // identifier + case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; + break; + case 5: // isIndirect + value_ = std::intptr_t(ast->isIndirect != 0); + slotKind_ = ASTSlotKind::kBoolAttribute; + slotNameIndex_ = SlotNameIndex{114}; break; } // switch - slotCount_ = 4; + slotCount_ = 6; } void ASTSlot::visit(DeclarationStatementAST* ast) { @@ -1808,7 +1820,7 @@ void ASTSlot::visit(DeclarationStatementAST* ast) { case 0: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; } // switch @@ -1820,17 +1832,17 @@ void ASTSlot::visit(TryBlockStatementAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{212}; + slotNameIndex_ = SlotNameIndex{214}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 2: // handlerList value_ = reinterpret_cast(ast->handlerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; } // switch @@ -1842,7 +1854,7 @@ void ASTSlot::visit(GeneratedLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; } // switch @@ -1854,12 +1866,12 @@ void ASTSlot::visit(CharLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1871,12 +1883,12 @@ void ASTSlot::visit(BoolLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // isTrue value_ = std::intptr_t(ast->isTrue != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{120}; + slotNameIndex_ = SlotNameIndex{122}; break; } // switch @@ -1888,12 +1900,12 @@ void ASTSlot::visit(IntLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1905,12 +1917,12 @@ void ASTSlot::visit(FloatLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1922,12 +1934,12 @@ void ASTSlot::visit(NullptrLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = std::intptr_t(ast->literal); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1939,12 +1951,12 @@ void ASTSlot::visit(StringLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1956,12 +1968,12 @@ void ASTSlot::visit(UserDefinedStringLiteralExpressionAST* ast) { case 0: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 1: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -1973,22 +1985,22 @@ void ASTSlot::visit(ObjectLiteralExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 3: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{22}; + slotNameIndex_ = SlotNameIndex{23}; break; } // switch @@ -2000,7 +2012,7 @@ void ASTSlot::visit(ThisExpressionAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{208}; break; } // switch @@ -2012,32 +2024,32 @@ void ASTSlot::visit(GenericSelectionExpressionAST* ast) { case 0: // genericLoc value_ = ast->genericLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{89}; + slotNameIndex_ = SlotNameIndex{90}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 4: // genericAssociationList value_ = reinterpret_cast(ast->genericAssociationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{88}; + slotNameIndex_ = SlotNameIndex{89}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2049,17 +2061,17 @@ void ASTSlot::visit(NestedStatementExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2071,17 +2083,17 @@ void ASTSlot::visit(NestedExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2093,22 +2105,22 @@ void ASTSlot::visit(IdExpressionAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -2120,97 +2132,97 @@ void ASTSlot::visit(LambdaExpressionAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // captureDefaultLoc value_ = ast->captureDefaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{25}; + slotNameIndex_ = SlotNameIndex{26}; break; case 2: // captureList value_ = reinterpret_cast(ast->captureList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{26}; + slotNameIndex_ = SlotNameIndex{27}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 4: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 5: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{206}; break; case 6: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 7: // templateRequiresClause value_ = reinterpret_cast(ast->templateRequiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{205}; + slotNameIndex_ = SlotNameIndex{207}; break; case 8: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 9: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{160}; break; case 10: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 11: // gnuAtributeList value_ = reinterpret_cast(ast->gnuAtributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{91}; + slotNameIndex_ = SlotNameIndex{92}; break; case 12: // lambdaSpecifierList value_ = reinterpret_cast(ast->lambdaSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{123}; + slotNameIndex_ = SlotNameIndex{125}; break; case 13: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 14: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 15: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{211}; + slotNameIndex_ = SlotNameIndex{213}; break; case 16: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; case 17: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 18: // captureDefault value_ = std::intptr_t(ast->captureDefault); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{24}; + slotNameIndex_ = SlotNameIndex{25}; break; } // switch @@ -2222,47 +2234,47 @@ void ASTSlot::visit(FoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{129}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 4: // foldOpLoc value_ = ast->foldOpLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{84}; + slotNameIndex_ = SlotNameIndex{85}; break; case 5: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 7: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; case 8: // foldOp value_ = std::intptr_t(ast->foldOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{83}; + slotNameIndex_ = SlotNameIndex{84}; break; } // switch @@ -2274,32 +2286,32 @@ void ASTSlot::visit(RightFoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -2311,32 +2323,32 @@ void ASTSlot::visit(LeftFoldExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 2: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -2348,37 +2360,37 @@ void ASTSlot::visit(RequiresExpressionAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{177}; + slotNameIndex_ = SlotNameIndex{179}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{160}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 4: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 5: // requirementList value_ = reinterpret_cast(ast->requirementList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{175}; + slotNameIndex_ = SlotNameIndex{177}; break; case 6: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; } // switch @@ -2390,32 +2402,32 @@ void ASTSlot::visit(VaArgExpressionAST* ast) { case 0: // vaArgLoc value_ = ast->vaArgLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{228}; + slotNameIndex_ = SlotNameIndex{230}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2427,22 +2439,22 @@ void ASTSlot::visit(SubscriptExpressionAST* ast) { case 0: // baseExpression value_ = reinterpret_cast(ast->baseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{19}; + slotNameIndex_ = SlotNameIndex{20}; break; case 1: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 2: // indexExpression value_ = reinterpret_cast(ast->indexExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{107}; + slotNameIndex_ = SlotNameIndex{108}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -2454,22 +2466,22 @@ void ASTSlot::visit(CallExpressionAST* ast) { case 0: // baseExpression value_ = reinterpret_cast(ast->baseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{19}; + slotNameIndex_ = SlotNameIndex{20}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2481,22 +2493,22 @@ void ASTSlot::visit(TypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{220}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2508,12 +2520,12 @@ void ASTSlot::visit(BracedTypeConstructionAST* ast) { case 0: // typeSpecifier value_ = reinterpret_cast(ast->typeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{218}; + slotNameIndex_ = SlotNameIndex{220}; break; case 1: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{22}; + slotNameIndex_ = SlotNameIndex{23}; break; } // switch @@ -2525,7 +2537,7 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 0: // baseExpression value_ = reinterpret_cast(ast->baseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{19}; + slotNameIndex_ = SlotNameIndex{20}; break; case 1: // accessLoc value_ = ast->accessLoc.index(); @@ -2535,12 +2547,12 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{192}; break; case 4: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -2550,7 +2562,7 @@ void ASTSlot::visit(SpliceMemberExpressionAST* ast) { case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -2562,7 +2574,7 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 0: // baseExpression value_ = reinterpret_cast(ast->baseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{19}; + slotNameIndex_ = SlotNameIndex{20}; break; case 1: // accessLoc value_ = ast->accessLoc.index(); @@ -2572,17 +2584,17 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 5: // accessOp value_ = std::intptr_t(ast->accessOp); @@ -2592,7 +2604,7 @@ void ASTSlot::visit(MemberExpressionAST* ast) { case 6: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -2604,17 +2616,17 @@ void ASTSlot::visit(PostIncrExpressionAST* ast) { case 0: // baseExpression value_ = reinterpret_cast(ast->baseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{19}; + slotNameIndex_ = SlotNameIndex{20}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -2626,37 +2638,37 @@ void ASTSlot::visit(CppCastExpressionAST* ast) { case 0: // castLoc value_ = ast->castLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{29}; + slotNameIndex_ = SlotNameIndex{30}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 4: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 5: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2668,32 +2680,32 @@ void ASTSlot::visit(BuiltinBitCastExpressionAST* ast) { case 0: // castLoc value_ = ast->castLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{29}; + slotNameIndex_ = SlotNameIndex{30}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2705,32 +2717,32 @@ void ASTSlot::visit(BuiltinOffsetofExpressionAST* ast) { case 0: // offsetofLoc value_ = ast->offsetofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{150}; + slotNameIndex_ = SlotNameIndex{152}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 5: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2742,22 +2754,22 @@ void ASTSlot::visit(TypeidExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{224}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2769,22 +2781,22 @@ void ASTSlot::visit(TypeidOfTypeExpressionAST* ast) { case 0: // typeidLoc value_ = ast->typeidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{222}; + slotNameIndex_ = SlotNameIndex{224}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2796,7 +2808,7 @@ void ASTSlot::visit(SpliceExpressionAST* ast) { case 0: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -2808,12 +2820,12 @@ void ASTSlot::visit(GlobalScopeReflectExpressionAST* ast) { case 0: // caretLoc value_ = ast->caretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{27}; + slotNameIndex_ = SlotNameIndex{28}; break; case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -2825,17 +2837,17 @@ void ASTSlot::visit(NamespaceReflectExpressionAST* ast) { case 0: // caretLoc value_ = ast->caretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{27}; + slotNameIndex_ = SlotNameIndex{28}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -2847,12 +2859,12 @@ void ASTSlot::visit(TypeIdReflectExpressionAST* ast) { case 0: // caretLoc value_ = ast->caretLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{27}; + slotNameIndex_ = SlotNameIndex{28}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; } // switch @@ -2861,19 +2873,41 @@ void ASTSlot::visit(TypeIdReflectExpressionAST* ast) { void ASTSlot::visit(ReflectExpressionAST* ast) { switch (slot_) { - case 0: // caretLoc - value_ = ast->caretLoc.index(); + case 0: // caretLoc + value_ = ast->caretLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{28}; + break; + case 1: // expression + value_ = reinterpret_cast(ast->expression); + slotKind_ = ASTSlotKind::kNode; + slotNameIndex_ = SlotNameIndex{79}; + break; + } // switch + + slotCount_ = 2; +} + +void ASTSlot::visit(LabelAddressExpressionAST* ast) { + switch (slot_) { + case 0: // ampAmpLoc + value_ = ast->ampAmpLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{27}; + slotNameIndex_ = SlotNameIndex{5}; break; - case 1: // expression - value_ = reinterpret_cast(ast->expression); - slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + case 1: // identifierLoc + value_ = ast->identifierLoc.index(); + slotKind_ = ASTSlotKind::kToken; + slotNameIndex_ = SlotNameIndex{102}; + break; + case 2: // identifier + value_ = reinterpret_cast(ast->identifier); + slotKind_ = ASTSlotKind::kIdentifierAttribute; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch - slotCount_ = 2; + slotCount_ = 3; } void ASTSlot::visit(UnaryExpressionAST* ast) { @@ -2881,17 +2915,17 @@ void ASTSlot::visit(UnaryExpressionAST* ast) { case 0: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -2903,12 +2937,12 @@ void ASTSlot::visit(AwaitExpressionAST* ast) { case 0: // awaitLoc value_ = ast->awaitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{18}; + slotNameIndex_ = SlotNameIndex{19}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -2920,12 +2954,12 @@ void ASTSlot::visit(SizeofExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{189}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -2937,22 +2971,22 @@ void ASTSlot::visit(SizeofTypeExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{189}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -2964,32 +2998,32 @@ void ASTSlot::visit(SizeofPackExpressionAST* ast) { case 0: // sizeofLoc value_ = ast->sizeofLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{187}; + slotNameIndex_ = SlotNameIndex{189}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 3: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -3006,17 +3040,17 @@ void ASTSlot::visit(AlignofTypeExpressionAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -3033,7 +3067,7 @@ void ASTSlot::visit(AlignofExpressionAST* ast) { case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3045,22 +3079,22 @@ void ASTSlot::visit(NoexceptExpressionAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{148}; + slotNameIndex_ = SlotNameIndex{150}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -3072,42 +3106,42 @@ void ASTSlot::visit(NewExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; case 1: // newLoc value_ = ast->newLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{146}; + slotNameIndex_ = SlotNameIndex{148}; break; case 2: // newPlacement value_ = reinterpret_cast(ast->newPlacement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{147}; + slotNameIndex_ = SlotNameIndex{149}; break; case 3: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 4: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{221}; break; case 5: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 6: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 7: // newInitalizer value_ = reinterpret_cast(ast->newInitalizer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{145}; + slotNameIndex_ = SlotNameIndex{147}; break; } // switch @@ -3119,27 +3153,27 @@ void ASTSlot::visit(DeleteExpressionAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{60}; + slotNameIndex_ = SlotNameIndex{61}; break; case 2: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 4: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3151,22 +3185,22 @@ void ASTSlot::visit(CastExpressionAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3178,7 +3212,7 @@ void ASTSlot::visit(ImplicitCastExpressionAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3190,22 +3224,22 @@ void ASTSlot::visit(BinaryExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -3217,27 +3251,27 @@ void ASTSlot::visit(ConditionalExpressionAST* ast) { case 0: // condition value_ = reinterpret_cast(ast->condition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{40}; + slotNameIndex_ = SlotNameIndex{41}; break; case 1: // questionLoc value_ = ast->questionLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{165}; + slotNameIndex_ = SlotNameIndex{167}; break; case 2: // iftrueExpression value_ = reinterpret_cast(ast->iftrueExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{104}; + slotNameIndex_ = SlotNameIndex{105}; break; case 3: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 4: // iffalseExpression value_ = reinterpret_cast(ast->iffalseExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{103}; + slotNameIndex_ = SlotNameIndex{104}; break; } // switch @@ -3249,12 +3283,12 @@ void ASTSlot::visit(YieldExpressionAST* ast) { case 0: // yieldLoc value_ = ast->yieldLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{234}; + slotNameIndex_ = SlotNameIndex{236}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3266,12 +3300,12 @@ void ASTSlot::visit(ThrowExpressionAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{211}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3283,22 +3317,22 @@ void ASTSlot::visit(AssignmentExpressionAST* ast) { case 0: // leftExpression value_ = reinterpret_cast(ast->leftExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{127}; + slotNameIndex_ = SlotNameIndex{129}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 2: // rightExpression value_ = reinterpret_cast(ast->rightExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{180}; + slotNameIndex_ = SlotNameIndex{182}; break; case 3: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -3310,12 +3344,12 @@ void ASTSlot::visit(PackExpansionExpressionAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; } // switch @@ -3327,12 +3361,12 @@ void ASTSlot::visit(DesignatedInitializerClauseAST* ast) { case 0: // designatorList value_ = reinterpret_cast(ast->designatorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{61}; + slotNameIndex_ = SlotNameIndex{62}; break; case 1: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; } // switch @@ -3344,22 +3378,22 @@ void ASTSlot::visit(TypeTraitExpressionAST* ast) { case 0: // typeTraitLoc value_ = ast->typeTraitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{220}; + slotNameIndex_ = SlotNameIndex{222}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeIdList value_ = reinterpret_cast(ast->typeIdList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{215}; + slotNameIndex_ = SlotNameIndex{217}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -3371,22 +3405,22 @@ void ASTSlot::visit(ConditionExpressionAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // declSpecifierList value_ = reinterpret_cast(ast->declSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{52}; + slotNameIndex_ = SlotNameIndex{53}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; } // switch @@ -3398,12 +3432,12 @@ void ASTSlot::visit(EqualInitializerAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3415,22 +3449,22 @@ void ASTSlot::visit(BracedInitListAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 3: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; } // switch @@ -3442,17 +3476,17 @@ void ASTSlot::visit(ParenInitializerAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -3464,17 +3498,17 @@ void ASTSlot::visit(DefaultGenericAssociationAST* ast) { case 0: // defaultLoc value_ = ast->defaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{59}; + slotNameIndex_ = SlotNameIndex{60}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3486,17 +3520,17 @@ void ASTSlot::visit(TypeGenericAssociationAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -3508,17 +3542,17 @@ void ASTSlot::visit(DotDesignatorAST* ast) { case 0: // dotLoc value_ = ast->dotLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{63}; + slotNameIndex_ = SlotNameIndex{64}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -3530,17 +3564,17 @@ void ASTSlot::visit(SubscriptDesignatorAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -3552,32 +3586,32 @@ void ASTSlot::visit(SplicerAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 4: // secondColonLoc value_ = ast->secondColonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{184}; + slotNameIndex_ = SlotNameIndex{186}; break; case 5: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; } // switch @@ -3589,17 +3623,17 @@ void ASTSlot::visit(GlobalModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{139}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 2: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -3611,27 +3645,27 @@ void ASTSlot::visit(PrivateModuleFragmentAST* ast) { case 0: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{139}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // privateLoc value_ = ast->privateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{160}; + slotNameIndex_ = SlotNameIndex{162}; break; case 3: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 4: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; } // switch @@ -3643,32 +3677,32 @@ void ASTSlot::visit(ModuleDeclarationAST* ast) { case 0: // exportLoc value_ = ast->exportLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{77}; + slotNameIndex_ = SlotNameIndex{78}; break; case 1: // moduleLoc value_ = ast->moduleLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{137}; + slotNameIndex_ = SlotNameIndex{139}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{140}; break; case 3: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{141}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 5: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -3680,17 +3714,17 @@ void ASTSlot::visit(ModuleNameAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{142}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -3702,22 +3736,22 @@ void ASTSlot::visit(ModuleQualifierAST* ast) { case 0: // moduleQualifier value_ = reinterpret_cast(ast->moduleQualifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{140}; + slotNameIndex_ = SlotNameIndex{142}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // dotLoc value_ = ast->dotLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{63}; + slotNameIndex_ = SlotNameIndex{64}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -3729,12 +3763,12 @@ void ASTSlot::visit(ModulePartitionAST* ast) { case 0: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 1: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{140}; break; } // switch @@ -3746,17 +3780,17 @@ void ASTSlot::visit(ImportNameAST* ast) { case 0: // headerLoc value_ = ast->headerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{97}; + slotNameIndex_ = SlotNameIndex{98}; break; case 1: // modulePartition value_ = reinterpret_cast(ast->modulePartition); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{139}; + slotNameIndex_ = SlotNameIndex{141}; break; case 2: // moduleName value_ = reinterpret_cast(ast->moduleName); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{138}; + slotNameIndex_ = SlotNameIndex{140}; break; } // switch @@ -3768,17 +3802,17 @@ void ASTSlot::visit(InitDeclaratorAST* ast) { case 0: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 1: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; } // switch @@ -3790,17 +3824,17 @@ void ASTSlot::visit(DeclaratorAST* ast) { case 0: // ptrOpList value_ = reinterpret_cast(ast->ptrOpList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{162}; + slotNameIndex_ = SlotNameIndex{164}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{49}; + slotNameIndex_ = SlotNameIndex{50}; break; case 2: // declaratorChunkList value_ = reinterpret_cast(ast->declaratorChunkList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{56}; + slotNameIndex_ = SlotNameIndex{57}; break; } // switch @@ -3812,27 +3846,27 @@ void ASTSlot::visit(UsingDeclaratorAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 4: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -3844,27 +3878,27 @@ void ASTSlot::visit(EnumeratorAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 2: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 3: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -3876,12 +3910,12 @@ void ASTSlot::visit(TypeIdAST* ast) { case 0: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{221}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; } // switch @@ -3893,27 +3927,27 @@ void ASTSlot::visit(HandlerAST* ast) { case 0: // catchLoc value_ = ast->catchLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{30}; + slotNameIndex_ = SlotNameIndex{31}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // exceptionDeclaration value_ = reinterpret_cast(ast->exceptionDeclaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{72}; + slotNameIndex_ = SlotNameIndex{73}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 4: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -3925,52 +3959,52 @@ void ASTSlot::visit(BaseSpecifierAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // virtualOrAccessLoc value_ = ast->virtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{230}; + slotNameIndex_ = SlotNameIndex{232}; break; case 2: // otherVirtualOrAccessLoc value_ = ast->otherVirtualOrAccessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{156}; + slotNameIndex_ = SlotNameIndex{158}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 4: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 5: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 7: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; case 8: // isVirtual value_ = std::intptr_t(ast->isVirtual != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{122}; + slotNameIndex_ = SlotNameIndex{124}; break; case 9: // isVariadic value_ = std::intptr_t(ast->isVariadic != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{123}; break; case 10: // accessSpecifier value_ = std::intptr_t(ast->accessSpecifier); @@ -3987,12 +4021,12 @@ void ASTSlot::visit(RequiresClauseAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{177}; + slotNameIndex_ = SlotNameIndex{179}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -4004,22 +4038,22 @@ void ASTSlot::visit(ParameterDeclarationClauseAST* ast) { case 0: // parameterDeclarationList value_ = reinterpret_cast(ast->parameterDeclarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{159}; + slotNameIndex_ = SlotNameIndex{161}; break; case 1: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 3: // isVariadic value_ = std::intptr_t(ast->isVariadic != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{121}; + slotNameIndex_ = SlotNameIndex{123}; break; } // switch @@ -4031,12 +4065,12 @@ void ASTSlot::visit(TrailingReturnTypeAST* ast) { case 0: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{137}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; } // switch @@ -4048,12 +4082,12 @@ void ASTSlot::visit(LambdaSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4065,32 +4099,32 @@ void ASTSlot::visit(TypeConstraintAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 3: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{203}; break; case 4: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -4102,12 +4136,12 @@ void ASTSlot::visit(AttributeArgumentClauseAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4119,17 +4153,17 @@ void ASTSlot::visit(AttributeAST* ast) { case 0: // attributeToken value_ = reinterpret_cast(ast->attributeToken); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{15}; + slotNameIndex_ = SlotNameIndex{16}; break; case 1: // attributeArgumentClause value_ = reinterpret_cast(ast->attributeArgumentClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{10}; + slotNameIndex_ = SlotNameIndex{11}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; } // switch @@ -4141,17 +4175,17 @@ void ASTSlot::visit(AttributeUsingPrefixAST* ast) { case 0: // usingLoc value_ = ast->usingLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{227}; + slotNameIndex_ = SlotNameIndex{229}; break; case 1: // attributeNamespaceLoc value_ = ast->attributeNamespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{14}; + slotNameIndex_ = SlotNameIndex{15}; break; case 2: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; } // switch @@ -4163,17 +4197,17 @@ void ASTSlot::visit(NewPlacementAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4185,27 +4219,27 @@ void ASTSlot::visit(NestedNamespaceSpecifierAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 4: // isInline value_ = std::intptr_t(ast->isInline != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{113}; + slotNameIndex_ = SlotNameIndex{115}; break; } // switch @@ -4217,62 +4251,62 @@ void ASTSlot::visit(TemplateTypeParameterAST* ast) { case 0: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // templateParameterList value_ = reinterpret_cast(ast->templateParameterList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{204}; + slotNameIndex_ = SlotNameIndex{206}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 4: // requiresClause value_ = reinterpret_cast(ast->requiresClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{176}; + slotNameIndex_ = SlotNameIndex{178}; break; case 5: // classKeyLoc value_ = ast->classKeyLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{32}; + slotNameIndex_ = SlotNameIndex{33}; break; case 6: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 7: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 8: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 9: // idExpression value_ = reinterpret_cast(ast->idExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{99}; + slotNameIndex_ = SlotNameIndex{100}; break; case 10: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 11: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -4284,7 +4318,7 @@ void ASTSlot::visit(NonTypeTemplateParameterAST* ast) { case 0: // declaration value_ = reinterpret_cast(ast->declaration); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{53}; + slotNameIndex_ = SlotNameIndex{54}; break; } // switch @@ -4296,37 +4330,37 @@ void ASTSlot::visit(TypenameTypeParameterAST* ast) { case 0: // classKeyLoc value_ = ast->classKeyLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{32}; + slotNameIndex_ = SlotNameIndex{33}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 6: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -4338,32 +4372,32 @@ void ASTSlot::visit(ConstraintTypeParameterAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{215}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 3: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 4: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 5: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -4375,7 +4409,7 @@ void ASTSlot::visit(GeneratedTypeSpecifierAST* ast) { case 0: // typeLoc value_ = ast->typeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{216}; + slotNameIndex_ = SlotNameIndex{218}; break; } // switch @@ -4387,7 +4421,7 @@ void ASTSlot::visit(TypedefSpecifierAST* ast) { case 0: // typedefLoc value_ = ast->typedefLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{221}; + slotNameIndex_ = SlotNameIndex{223}; break; } // switch @@ -4399,7 +4433,7 @@ void ASTSlot::visit(FriendSpecifierAST* ast) { case 0: // friendLoc value_ = ast->friendLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{86}; + slotNameIndex_ = SlotNameIndex{87}; break; } // switch @@ -4411,7 +4445,7 @@ void ASTSlot::visit(ConstevalSpecifierAST* ast) { case 0: // constevalLoc value_ = ast->constevalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{42}; + slotNameIndex_ = SlotNameIndex{43}; break; } // switch @@ -4423,7 +4457,7 @@ void ASTSlot::visit(ConstinitSpecifierAST* ast) { case 0: // constinitLoc value_ = ast->constinitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{44}; + slotNameIndex_ = SlotNameIndex{45}; break; } // switch @@ -4435,7 +4469,7 @@ void ASTSlot::visit(ConstexprSpecifierAST* ast) { case 0: // constexprLoc value_ = ast->constexprLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{43}; + slotNameIndex_ = SlotNameIndex{44}; break; } // switch @@ -4447,7 +4481,7 @@ void ASTSlot::visit(InlineSpecifierAST* ast) { case 0: // inlineLoc value_ = ast->inlineLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{110}; + slotNameIndex_ = SlotNameIndex{111}; break; } // switch @@ -4459,7 +4493,7 @@ void ASTSlot::visit(NoreturnSpecifierAST* ast) { case 0: // noreturnLoc value_ = ast->noreturnLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{149}; + slotNameIndex_ = SlotNameIndex{151}; break; } // switch @@ -4471,7 +4505,7 @@ void ASTSlot::visit(StaticSpecifierAST* ast) { case 0: // staticLoc value_ = ast->staticLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{195}; + slotNameIndex_ = SlotNameIndex{197}; break; } // switch @@ -4483,7 +4517,7 @@ void ASTSlot::visit(ExternSpecifierAST* ast) { case 0: // externLoc value_ = ast->externLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{80}; + slotNameIndex_ = SlotNameIndex{81}; break; } // switch @@ -4495,7 +4529,7 @@ void ASTSlot::visit(RegisterSpecifierAST* ast) { case 0: // registerLoc value_ = ast->registerLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{174}; + slotNameIndex_ = SlotNameIndex{176}; break; } // switch @@ -4507,7 +4541,7 @@ void ASTSlot::visit(ThreadLocalSpecifierAST* ast) { case 0: // threadLocalLoc value_ = ast->threadLocalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{208}; + slotNameIndex_ = SlotNameIndex{210}; break; } // switch @@ -4519,7 +4553,7 @@ void ASTSlot::visit(ThreadSpecifierAST* ast) { case 0: // threadLoc value_ = ast->threadLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{207}; + slotNameIndex_ = SlotNameIndex{209}; break; } // switch @@ -4531,7 +4565,7 @@ void ASTSlot::visit(MutableSpecifierAST* ast) { case 0: // mutableLoc value_ = ast->mutableLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{141}; + slotNameIndex_ = SlotNameIndex{143}; break; } // switch @@ -4543,7 +4577,7 @@ void ASTSlot::visit(VirtualSpecifierAST* ast) { case 0: // virtualLoc value_ = ast->virtualLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{229}; + slotNameIndex_ = SlotNameIndex{231}; break; } // switch @@ -4555,22 +4589,22 @@ void ASTSlot::visit(ExplicitSpecifierAST* ast) { case 0: // explicitLoc value_ = ast->explicitLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{75}; + slotNameIndex_ = SlotNameIndex{76}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4582,7 +4616,7 @@ void ASTSlot::visit(AutoTypeSpecifierAST* ast) { case 0: // autoLoc value_ = ast->autoLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{17}; + slotNameIndex_ = SlotNameIndex{18}; break; } // switch @@ -4594,7 +4628,7 @@ void ASTSlot::visit(VoidTypeSpecifierAST* ast) { case 0: // voidLoc value_ = ast->voidLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{231}; + slotNameIndex_ = SlotNameIndex{233}; break; } // switch @@ -4606,12 +4640,12 @@ void ASTSlot::visit(SizeTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4623,12 +4657,12 @@ void ASTSlot::visit(SignTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4640,12 +4674,12 @@ void ASTSlot::visit(VaListTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4657,12 +4691,12 @@ void ASTSlot::visit(IntegralTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4674,12 +4708,12 @@ void ASTSlot::visit(FloatingPointTypeSpecifierAST* ast) { case 0: // specifierLoc value_ = ast->specifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{189}; + slotNameIndex_ = SlotNameIndex{191}; break; case 1: // specifier value_ = std::intptr_t(ast->specifier); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4691,7 +4725,7 @@ void ASTSlot::visit(ComplexTypeSpecifierAST* ast) { case 0: // complexLoc value_ = ast->complexLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{38}; + slotNameIndex_ = SlotNameIndex{39}; break; } // switch @@ -4703,22 +4737,22 @@ void ASTSlot::visit(NamedTypeSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 3: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -4730,22 +4764,22 @@ void ASTSlot::visit(AtomicTypeSpecifierAST* ast) { case 0: // atomicLoc value_ = ast->atomicLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{9}; + slotNameIndex_ = SlotNameIndex{10}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4757,22 +4791,22 @@ void ASTSlot::visit(UnderlyingTypeSpecifierAST* ast) { case 0: // underlyingTypeLoc value_ = ast->underlyingTypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{224}; + slotNameIndex_ = SlotNameIndex{226}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4784,37 +4818,37 @@ void ASTSlot::visit(ElaboratedTypeSpecifierAST* ast) { case 0: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{33}; + slotNameIndex_ = SlotNameIndex{34}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 3: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 5: // classKey value_ = std::intptr_t(ast->classKey); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{31}; + slotNameIndex_ = SlotNameIndex{32}; break; case 6: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -4826,22 +4860,22 @@ void ASTSlot::visit(DecltypeAutoSpecifierAST* ast) { case 0: // decltypeLoc value_ = ast->decltypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{57}; + slotNameIndex_ = SlotNameIndex{58}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // autoLoc value_ = ast->autoLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{17}; + slotNameIndex_ = SlotNameIndex{18}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4853,22 +4887,22 @@ void ASTSlot::visit(DecltypeSpecifierAST* ast) { case 0: // decltypeLoc value_ = ast->decltypeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{57}; + slotNameIndex_ = SlotNameIndex{58}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -4880,12 +4914,12 @@ void ASTSlot::visit(PlaceholderTypeSpecifierAST* ast) { case 0: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{215}; break; case 1: // specifier value_ = reinterpret_cast(ast->specifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{188}; + slotNameIndex_ = SlotNameIndex{190}; break; } // switch @@ -4897,7 +4931,7 @@ void ASTSlot::visit(ConstQualifierAST* ast) { case 0: // constLoc value_ = ast->constLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{41}; + slotNameIndex_ = SlotNameIndex{42}; break; } // switch @@ -4909,7 +4943,7 @@ void ASTSlot::visit(VolatileQualifierAST* ast) { case 0: // volatileLoc value_ = ast->volatileLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{232}; + slotNameIndex_ = SlotNameIndex{234}; break; } // switch @@ -4921,7 +4955,7 @@ void ASTSlot::visit(AtomicQualifierAST* ast) { case 0: // atomicLoc value_ = ast->atomicLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{9}; + slotNameIndex_ = SlotNameIndex{10}; break; } // switch @@ -4933,7 +4967,7 @@ void ASTSlot::visit(RestrictQualifierAST* ast) { case 0: // restrictLoc value_ = ast->restrictLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{178}; + slotNameIndex_ = SlotNameIndex{180}; break; } // switch @@ -4945,57 +4979,57 @@ void ASTSlot::visit(EnumSpecifierAST* ast) { case 0: // enumLoc value_ = ast->enumLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{68}; + slotNameIndex_ = SlotNameIndex{69}; break; case 1: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{33}; + slotNameIndex_ = SlotNameIndex{34}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 3: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 4: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 6: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{221}; break; case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 8: // enumeratorList value_ = reinterpret_cast(ast->enumeratorList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{70}; + slotNameIndex_ = SlotNameIndex{71}; break; case 9: // commaLoc value_ = ast->commaLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{37}; + slotNameIndex_ = SlotNameIndex{38}; break; case 10: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; } // switch @@ -5007,62 +5041,62 @@ void ASTSlot::visit(ClassSpecifierAST* ast) { case 0: // classLoc value_ = ast->classLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{33}; + slotNameIndex_ = SlotNameIndex{34}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 2: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 4: // finalLoc value_ = ast->finalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{82}; + slotNameIndex_ = SlotNameIndex{83}; break; case 5: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 6: // baseSpecifierList value_ = reinterpret_cast(ast->baseSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{20}; + slotNameIndex_ = SlotNameIndex{21}; break; case 7: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 8: // declarationList value_ = reinterpret_cast(ast->declarationList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{54}; + slotNameIndex_ = SlotNameIndex{55}; break; case 9: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; case 10: // classKey value_ = std::intptr_t(ast->classKey); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{31}; + slotNameIndex_ = SlotNameIndex{32}; break; case 11: // isFinal value_ = std::intptr_t(ast->isFinal != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{112}; + slotNameIndex_ = SlotNameIndex{113}; break; } // switch @@ -5074,27 +5108,27 @@ void ASTSlot::visit(TypenameSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -5106,12 +5140,12 @@ void ASTSlot::visit(SplicerTypeSpecifierAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // splicer value_ = reinterpret_cast(ast->splicer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{190}; + slotNameIndex_ = SlotNameIndex{192}; break; } // switch @@ -5123,17 +5157,17 @@ void ASTSlot::visit(PointerOperatorAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 2: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{51}; + slotNameIndex_ = SlotNameIndex{52}; break; } // switch @@ -5145,17 +5179,17 @@ void ASTSlot::visit(ReferenceOperatorAST* ast) { case 0: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{173}; break; case 1: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 2: // refOp value_ = std::intptr_t(ast->refOp); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{172}; + slotNameIndex_ = SlotNameIndex{174}; break; } // switch @@ -5167,22 +5201,22 @@ void ASTSlot::visit(PtrToMemberOperatorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{193}; break; case 2: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 3: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{51}; + slotNameIndex_ = SlotNameIndex{52}; break; } // switch @@ -5194,17 +5228,17 @@ void ASTSlot::visit(BitfieldDeclaratorAST* ast) { case 0: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // sizeExpression value_ = reinterpret_cast(ast->sizeExpression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{186}; + slotNameIndex_ = SlotNameIndex{188}; break; } // switch @@ -5216,12 +5250,12 @@ void ASTSlot::visit(ParameterPackAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 1: // coreDeclarator value_ = reinterpret_cast(ast->coreDeclarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{49}; + slotNameIndex_ = SlotNameIndex{50}; break; } // switch @@ -5233,27 +5267,27 @@ void ASTSlot::visit(IdDeclaratorAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 2: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 3: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -5265,17 +5299,17 @@ void ASTSlot::visit(NestedDeclaratorAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -5287,57 +5321,57 @@ void ASTSlot::visit(FunctionDeclaratorChunkAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // parameterDeclarationClause value_ = reinterpret_cast(ast->parameterDeclarationClause); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{158}; + slotNameIndex_ = SlotNameIndex{160}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 3: // cvQualifierList value_ = reinterpret_cast(ast->cvQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{51}; + slotNameIndex_ = SlotNameIndex{52}; break; case 4: // refLoc value_ = ast->refLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{171}; + slotNameIndex_ = SlotNameIndex{173}; break; case 5: // exceptionSpecifier value_ = reinterpret_cast(ast->exceptionSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{73}; + slotNameIndex_ = SlotNameIndex{74}; break; case 6: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 7: // trailingReturnType value_ = reinterpret_cast(ast->trailingReturnType); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{211}; + slotNameIndex_ = SlotNameIndex{213}; break; case 8: // isFinal value_ = std::intptr_t(ast->isFinal != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{112}; + slotNameIndex_ = SlotNameIndex{113}; break; case 9: // isOverride value_ = std::intptr_t(ast->isOverride != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{115}; + slotNameIndex_ = SlotNameIndex{117}; break; case 10: // isPure value_ = std::intptr_t(ast->isPure != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{117}; + slotNameIndex_ = SlotNameIndex{119}; break; } // switch @@ -5349,27 +5383,27 @@ void ASTSlot::visit(ArrayDeclaratorChunkAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // typeQualifierList value_ = reinterpret_cast(ast->typeQualifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{217}; + slotNameIndex_ = SlotNameIndex{219}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 4: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; } // switch @@ -5381,12 +5415,12 @@ void ASTSlot::visit(NameIdAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -5398,12 +5432,12 @@ void ASTSlot::visit(DestructorIdAST* ast) { case 0: // tildeLoc value_ = ast->tildeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{210}; + slotNameIndex_ = SlotNameIndex{212}; break; case 1: // id value_ = reinterpret_cast(ast->id); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{98}; + slotNameIndex_ = SlotNameIndex{99}; break; } // switch @@ -5415,7 +5449,7 @@ void ASTSlot::visit(DecltypeIdAST* ast) { case 0: // decltypeSpecifier value_ = reinterpret_cast(ast->decltypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{58}; + slotNameIndex_ = SlotNameIndex{59}; break; } // switch @@ -5427,27 +5461,27 @@ void ASTSlot::visit(OperatorFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; case 1: // opLoc value_ = ast->opLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{152}; + slotNameIndex_ = SlotNameIndex{154}; break; case 2: // openLoc value_ = ast->openLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{153}; + slotNameIndex_ = SlotNameIndex{155}; break; case 3: // closeLoc value_ = ast->closeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{35}; + slotNameIndex_ = SlotNameIndex{36}; break; case 4: // op value_ = std::intptr_t(ast->op); slotKind_ = ASTSlotKind::kIntAttribute; - slotNameIndex_ = SlotNameIndex{151}; + slotNameIndex_ = SlotNameIndex{153}; break; } // switch @@ -5459,27 +5493,27 @@ void ASTSlot::visit(LiteralOperatorIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; case 1: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 3: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -5491,12 +5525,12 @@ void ASTSlot::visit(ConversionFunctionIdAST* ast) { case 0: // operatorLoc value_ = ast->operatorLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{155}; + slotNameIndex_ = SlotNameIndex{157}; break; case 1: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; } // switch @@ -5508,27 +5542,27 @@ void ASTSlot::visit(SimpleTemplateIdAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{203}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -5540,22 +5574,22 @@ void ASTSlot::visit(LiteralOperatorTemplateIdAST* ast) { case 0: // literalOperatorId value_ = reinterpret_cast(ast->literalOperatorId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{131}; + slotNameIndex_ = SlotNameIndex{133}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{203}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; } // switch @@ -5567,22 +5601,22 @@ void ASTSlot::visit(OperatorFunctionTemplateIdAST* ast) { case 0: // operatorFunctionId value_ = reinterpret_cast(ast->operatorFunctionId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{154}; + slotNameIndex_ = SlotNameIndex{156}; break; case 1: // lessLoc value_ = ast->lessLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{128}; + slotNameIndex_ = SlotNameIndex{130}; break; case 2: // templateArgumentList value_ = reinterpret_cast(ast->templateArgumentList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{201}; + slotNameIndex_ = SlotNameIndex{203}; break; case 3: // greaterLoc value_ = ast->greaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{95}; + slotNameIndex_ = SlotNameIndex{96}; break; } // switch @@ -5594,7 +5628,7 @@ void ASTSlot::visit(GlobalNestedNameSpecifierAST* ast) { case 0: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -5606,22 +5640,22 @@ void ASTSlot::visit(SimpleNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -5633,12 +5667,12 @@ void ASTSlot::visit(DecltypeNestedNameSpecifierAST* ast) { case 0: // decltypeSpecifier value_ = reinterpret_cast(ast->decltypeSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{58}; + slotNameIndex_ = SlotNameIndex{59}; break; case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; } // switch @@ -5650,27 +5684,27 @@ void ASTSlot::visit(TemplateNestedNameSpecifierAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 2: // templateId value_ = reinterpret_cast(ast->templateId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{202}; + slotNameIndex_ = SlotNameIndex{204}; break; case 3: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; case 4: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -5682,17 +5716,17 @@ void ASTSlot::visit(DefaultFunctionBodyAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 1: // defaultLoc value_ = ast->defaultLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{59}; + slotNameIndex_ = SlotNameIndex{60}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5704,17 +5738,17 @@ void ASTSlot::visit(CompoundStatementFunctionBodyAST* ast) { case 0: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 1: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{134}; + slotNameIndex_ = SlotNameIndex{136}; break; case 2: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; } // switch @@ -5726,27 +5760,27 @@ void ASTSlot::visit(TryStatementFunctionBodyAST* ast) { case 0: // tryLoc value_ = ast->tryLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{212}; + slotNameIndex_ = SlotNameIndex{214}; break; case 1: // colonLoc value_ = ast->colonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{36}; + slotNameIndex_ = SlotNameIndex{37}; break; case 2: // memInitializerList value_ = reinterpret_cast(ast->memInitializerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{134}; + slotNameIndex_ = SlotNameIndex{136}; break; case 3: // statement value_ = reinterpret_cast(ast->statement); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{192}; + slotNameIndex_ = SlotNameIndex{194}; break; case 4: // handlerList value_ = reinterpret_cast(ast->handlerList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{96}; + slotNameIndex_ = SlotNameIndex{97}; break; } // switch @@ -5758,17 +5792,17 @@ void ASTSlot::visit(DeleteFunctionBodyAST* ast) { case 0: // equalLoc value_ = ast->equalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{71}; + slotNameIndex_ = SlotNameIndex{72}; break; case 1: // deleteLoc value_ = ast->deleteLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{60}; + slotNameIndex_ = SlotNameIndex{61}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5780,7 +5814,7 @@ void ASTSlot::visit(TypeTemplateArgumentAST* ast) { case 0: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; } // switch @@ -5792,7 +5826,7 @@ void ASTSlot::visit(ExpressionTemplateArgumentAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; } // switch @@ -5804,17 +5838,17 @@ void ASTSlot::visit(ThrowExceptionSpecifierAST* ast) { case 0: // throwLoc value_ = ast->throwLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{209}; + slotNameIndex_ = SlotNameIndex{211}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -5826,22 +5860,22 @@ void ASTSlot::visit(NoexceptSpecifierAST* ast) { case 0: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{148}; + slotNameIndex_ = SlotNameIndex{150}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -5853,12 +5887,12 @@ void ASTSlot::visit(SimpleRequirementAST* ast) { case 0: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 1: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5870,37 +5904,37 @@ void ASTSlot::visit(CompoundRequirementAST* ast) { case 0: // lbraceLoc value_ = ast->lbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{124}; + slotNameIndex_ = SlotNameIndex{126}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // rbraceLoc value_ = ast->rbraceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{168}; + slotNameIndex_ = SlotNameIndex{170}; break; case 3: // noexceptLoc value_ = ast->noexceptLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{148}; + slotNameIndex_ = SlotNameIndex{150}; break; case 4: // minusGreaterLoc value_ = ast->minusGreaterLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{135}; + slotNameIndex_ = SlotNameIndex{137}; break; case 5: // typeConstraint value_ = reinterpret_cast(ast->typeConstraint); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{213}; + slotNameIndex_ = SlotNameIndex{215}; break; case 6: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5912,32 +5946,32 @@ void ASTSlot::visit(TypeRequirementAST* ast) { case 0: // typenameLoc value_ = ast->typenameLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{223}; + slotNameIndex_ = SlotNameIndex{225}; break; case 1: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 2: // templateLoc value_ = ast->templateLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{203}; + slotNameIndex_ = SlotNameIndex{205}; break; case 3: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 4: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; case 5: // isTemplateIntroduced value_ = std::intptr_t(ast->isTemplateIntroduced != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{118}; + slotNameIndex_ = SlotNameIndex{120}; break; } // switch @@ -5949,17 +5983,17 @@ void ASTSlot::visit(NestedRequirementAST* ast) { case 0: // requiresLoc value_ = ast->requiresLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{177}; + slotNameIndex_ = SlotNameIndex{179}; break; case 1: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 2: // semicolonLoc value_ = ast->semicolonLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{185}; + slotNameIndex_ = SlotNameIndex{187}; break; } // switch @@ -5971,17 +6005,17 @@ void ASTSlot::visit(NewParenInitializerAST* ast) { case 0: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 1: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 2: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; } // switch @@ -5993,7 +6027,7 @@ void ASTSlot::visit(NewBracedInitializerAST* ast) { case 0: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{22}; + slotNameIndex_ = SlotNameIndex{23}; break; } // switch @@ -6005,32 +6039,32 @@ void ASTSlot::visit(ParenMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 2: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 3: // expressionList value_ = reinterpret_cast(ast->expressionList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{79}; + slotNameIndex_ = SlotNameIndex{80}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; } // switch @@ -6042,22 +6076,22 @@ void ASTSlot::visit(BracedMemInitializerAST* ast) { case 0: // nestedNameSpecifier value_ = reinterpret_cast(ast->nestedNameSpecifier); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{143}; + slotNameIndex_ = SlotNameIndex{145}; break; case 1: // unqualifiedId value_ = reinterpret_cast(ast->unqualifiedId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{225}; + slotNameIndex_ = SlotNameIndex{227}; break; case 2: // bracedInitList value_ = reinterpret_cast(ast->bracedInitList); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{22}; + slotNameIndex_ = SlotNameIndex{23}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; } // switch @@ -6069,7 +6103,7 @@ void ASTSlot::visit(ThisLambdaCaptureAST* ast) { case 0: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{208}; break; } // switch @@ -6081,12 +6115,12 @@ void ASTSlot::visit(DerefThisLambdaCaptureAST* ast) { case 0: // starLoc value_ = ast->starLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{191}; + slotNameIndex_ = SlotNameIndex{193}; break; case 1: // thisLoc value_ = ast->thisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{206}; + slotNameIndex_ = SlotNameIndex{208}; break; } // switch @@ -6098,17 +6132,17 @@ void ASTSlot::visit(SimpleLambdaCaptureAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 2: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -6120,22 +6154,22 @@ void ASTSlot::visit(RefLambdaCaptureAST* ast) { case 0: // ampLoc value_ = ast->ampLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{5}; + slotNameIndex_ = SlotNameIndex{6}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -6147,27 +6181,27 @@ void ASTSlot::visit(RefInitLambdaCaptureAST* ast) { case 0: // ampLoc value_ = ast->ampLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{5}; + slotNameIndex_ = SlotNameIndex{6}; break; case 1: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 3: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -6179,22 +6213,22 @@ void ASTSlot::visit(InitLambdaCaptureAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 1: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 2: // initializer value_ = reinterpret_cast(ast->initializer); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{109}; + slotNameIndex_ = SlotNameIndex{110}; break; case 3: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -6206,7 +6240,7 @@ void ASTSlot::visit(EllipsisExceptionDeclarationAST* ast) { case 0: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; } // switch @@ -6218,17 +6252,17 @@ void ASTSlot::visit(TypeExceptionDeclarationAST* ast) { case 0: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 1: // typeSpecifierList value_ = reinterpret_cast(ast->typeSpecifierList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{219}; + slotNameIndex_ = SlotNameIndex{221}; break; case 2: // declarator value_ = reinterpret_cast(ast->declarator); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{55}; + slotNameIndex_ = SlotNameIndex{56}; break; } // switch @@ -6240,32 +6274,32 @@ void ASTSlot::visit(CxxAttributeAST* ast) { case 0: // lbracketLoc value_ = ast->lbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{126}; + slotNameIndex_ = SlotNameIndex{128}; break; case 1: // lbracket2Loc value_ = ast->lbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{125}; + slotNameIndex_ = SlotNameIndex{127}; break; case 2: // attributeUsingPrefix value_ = reinterpret_cast(ast->attributeUsingPrefix); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{16}; + slotNameIndex_ = SlotNameIndex{17}; break; case 3: // attributeList value_ = reinterpret_cast(ast->attributeList); slotKind_ = ASTSlotKind::kNodeList; - slotNameIndex_ = SlotNameIndex{11}; + slotNameIndex_ = SlotNameIndex{12}; break; case 4: // rbracketLoc value_ = ast->rbracketLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{170}; + slotNameIndex_ = SlotNameIndex{172}; break; case 5: // rbracket2Loc value_ = ast->rbracket2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{169}; + slotNameIndex_ = SlotNameIndex{171}; break; } // switch @@ -6277,27 +6311,27 @@ void ASTSlot::visit(GccAttributeAST* ast) { case 0: // attributeLoc value_ = ast->attributeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{12}; + slotNameIndex_ = SlotNameIndex{13}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // lparen2Loc value_ = ast->lparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{132}; + slotNameIndex_ = SlotNameIndex{134}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 4: // rparen2Loc value_ = ast->rparen2Loc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{181}; + slotNameIndex_ = SlotNameIndex{183}; break; } // switch @@ -6314,27 +6348,27 @@ void ASTSlot::visit(AlignasAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // expression value_ = reinterpret_cast(ast->expression); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{78}; + slotNameIndex_ = SlotNameIndex{79}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -6351,27 +6385,27 @@ void ASTSlot::visit(AlignasTypeAttributeAST* ast) { case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // typeId value_ = reinterpret_cast(ast->typeId); slotKind_ = ASTSlotKind::kNode; - slotNameIndex_ = SlotNameIndex{214}; + slotNameIndex_ = SlotNameIndex{216}; break; case 3: // ellipsisLoc value_ = ast->ellipsisLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{64}; + slotNameIndex_ = SlotNameIndex{65}; break; case 4: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 5: // isPack value_ = std::intptr_t(ast->isPack != 0); slotKind_ = ASTSlotKind::kBoolAttribute; - slotNameIndex_ = SlotNameIndex{116}; + slotNameIndex_ = SlotNameIndex{118}; break; } // switch @@ -6383,27 +6417,27 @@ void ASTSlot::visit(AsmAttributeAST* ast) { case 0: // asmLoc value_ = ast->asmLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{7}; + slotNameIndex_ = SlotNameIndex{8}; break; case 1: // lparenLoc value_ = ast->lparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{133}; + slotNameIndex_ = SlotNameIndex{135}; break; case 2: // literalLoc value_ = ast->literalLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{130}; + slotNameIndex_ = SlotNameIndex{132}; break; case 3: // rparenLoc value_ = ast->rparenLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{182}; + slotNameIndex_ = SlotNameIndex{184}; break; case 4: // literal value_ = reinterpret_cast(ast->literal); slotKind_ = ASTSlotKind::kLiteralAttribute; - slotNameIndex_ = SlotNameIndex{129}; + slotNameIndex_ = SlotNameIndex{131}; break; } // switch @@ -6415,27 +6449,27 @@ void ASTSlot::visit(ScopedAttributeTokenAST* ast) { case 0: // attributeNamespaceLoc value_ = ast->attributeNamespaceLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{14}; + slotNameIndex_ = SlotNameIndex{15}; break; case 1: // scopeLoc value_ = ast->scopeLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{183}; + slotNameIndex_ = SlotNameIndex{185}; break; case 2: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 3: // attributeNamespace value_ = reinterpret_cast(ast->attributeNamespace); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{13}; + slotNameIndex_ = SlotNameIndex{14}; break; case 4: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch @@ -6447,12 +6481,12 @@ void ASTSlot::visit(SimpleAttributeTokenAST* ast) { case 0: // identifierLoc value_ = ast->identifierLoc.index(); slotKind_ = ASTSlotKind::kToken; - slotNameIndex_ = SlotNameIndex{101}; + slotNameIndex_ = SlotNameIndex{102}; break; case 1: // identifier value_ = reinterpret_cast(ast->identifier); slotKind_ = ASTSlotKind::kIdentifierAttribute; - slotNameIndex_ = SlotNameIndex{100}; + slotNameIndex_ = SlotNameIndex{101}; break; } // switch diff --git a/src/parser/cxx/ast_slot.h b/src/parser/cxx/ast_slot.h index 42f48d55..f3162ab6 100644 --- a/src/parser/cxx/ast_slot.h +++ b/src/parser/cxx/ast_slot.h @@ -144,6 +144,7 @@ class ASTSlot final : ASTVisitor { void visit(NamespaceReflectExpressionAST* ast) override; void visit(TypeIdReflectExpressionAST* ast) override; void visit(ReflectExpressionAST* ast) override; + void visit(LabelAddressExpressionAST* ast) override; void visit(UnaryExpressionAST* ast) override; void visit(AwaitExpressionAST* ast) override; void visit(SizeofExpressionAST* ast) override; diff --git a/src/parser/cxx/ast_visitor.cc b/src/parser/cxx/ast_visitor.cc index c055061f..cdc81466 100644 --- a/src/parser/cxx/ast_visitor.cc +++ b/src/parser/cxx/ast_visitor.cc @@ -478,6 +478,8 @@ void ASTVisitor::visit(TypeIdReflectExpressionAST* ast) { accept(ast->typeId); } void ASTVisitor::visit(ReflectExpressionAST* ast) { accept(ast->expression); } +void ASTVisitor::visit(LabelAddressExpressionAST* ast) {} + void ASTVisitor::visit(UnaryExpressionAST* ast) { accept(ast->expression); } void ASTVisitor::visit(AwaitExpressionAST* ast) { accept(ast->expression); } diff --git a/src/parser/cxx/ast_visitor.h b/src/parser/cxx/ast_visitor.h index 065f51f2..91f95731 100644 --- a/src/parser/cxx/ast_visitor.h +++ b/src/parser/cxx/ast_visitor.h @@ -128,6 +128,7 @@ class ASTVisitor { virtual void visit(NamespaceReflectExpressionAST* ast); virtual void visit(TypeIdReflectExpressionAST* ast); virtual void visit(ReflectExpressionAST* ast); + virtual void visit(LabelAddressExpressionAST* ast); virtual void visit(UnaryExpressionAST* ast); virtual void visit(AwaitExpressionAST* ast); virtual void visit(SizeofExpressionAST* ast); diff --git a/src/parser/cxx/flatbuffers/ast_decoder.cc b/src/parser/cxx/flatbuffers/ast_decoder.cc index d446cbd8..27a03dc9 100644 --- a/src/parser/cxx/flatbuffers/ast_decoder.cc +++ b/src/parser/cxx/flatbuffers/ast_decoder.cc @@ -326,6 +326,9 @@ auto ASTDecoder::decodeExpression(const void* ptr, io::Expression type) case io::Expression_ReflectExpression: return decodeReflectExpression( reinterpret_cast(ptr)); + case io::Expression_LabelAddressExpression: + return decodeLabelAddressExpression( + reinterpret_cast(ptr)); case io::Expression_UnaryExpression: return decodeUnaryExpression( reinterpret_cast(ptr)); @@ -1792,6 +1795,7 @@ auto ASTDecoder::decodeGotoStatement(const io::GotoStatement* node) auto ast = new (pool_) GotoStatementAST(); ast->gotoLoc = SourceLocation(node->goto_loc()); + ast->starLoc = SourceLocation(node->star_loc()); ast->identifierLoc = SourceLocation(node->identifier_loc()); ast->semicolonLoc = SourceLocation(node->semicolon_loc()); if (node->identifier()) { @@ -2399,6 +2403,20 @@ auto ASTDecoder::decodeReflectExpression(const io::ReflectExpression* node) return ast; } +auto ASTDecoder::decodeLabelAddressExpression( + const io::LabelAddressExpression* node) -> LabelAddressExpressionAST* { + if (!node) return nullptr; + + auto ast = new (pool_) LabelAddressExpressionAST(); + ast->ampAmpLoc = SourceLocation(node->amp_amp_loc()); + ast->identifierLoc = SourceLocation(node->identifier_loc()); + if (node->identifier()) { + ast->identifier = + unit_->control()->getIdentifier(node->identifier()->str()); + } + return ast; +} + auto ASTDecoder::decodeUnaryExpression(const io::UnaryExpression* node) -> UnaryExpressionAST* { if (!node) return nullptr; diff --git a/src/parser/cxx/flatbuffers/ast_encoder.cc b/src/parser/cxx/flatbuffers/ast_encoder.cc index 2ffa05a5..2b22d0d5 100644 --- a/src/parser/cxx/flatbuffers/ast_encoder.cc +++ b/src/parser/cxx/flatbuffers/ast_encoder.cc @@ -1724,6 +1724,7 @@ void ASTEncoder::visit(GotoStatementAST* ast) { io::GotoStatement::Builder builder{fbb_}; builder.add_goto_loc(ast->gotoLoc.index()); + builder.add_star_loc(ast->starLoc.index()); builder.add_identifier_loc(ast->identifierLoc.index()); builder.add_semicolon_loc(ast->semicolonLoc.index()); if (ast->identifier) { @@ -2522,6 +2523,28 @@ void ASTEncoder::visit(ReflectExpressionAST* ast) { type_ = io::Expression_ReflectExpression; } +void ASTEncoder::visit(LabelAddressExpressionAST* ast) { + flatbuffers::Offset identifier; + if (ast->identifier) { + if (identifiers_.contains(ast->identifier)) { + identifier = identifiers_.at(ast->identifier); + } else { + identifier = fbb_.CreateString(ast->identifier->value()); + identifiers_.emplace(ast->identifier, identifier); + } + } + + io::LabelAddressExpression::Builder builder{fbb_}; + builder.add_amp_amp_loc(ast->ampAmpLoc.index()); + builder.add_identifier_loc(ast->identifierLoc.index()); + if (ast->identifier) { + builder.add_identifier(identifier); + } + + offset_ = builder.Finish().Union(); + type_ = io::Expression_LabelAddressExpression; +} + void ASTEncoder::visit(UnaryExpressionAST* ast) { const auto [expression, expressionType] = acceptExpression(ast->expression); diff --git a/src/parser/cxx/parser.cc b/src/parser/cxx/parser.cc index 3ac09605..5de5bcc8 100644 --- a/src/parser/cxx/parser.cc +++ b/src/parser/cxx/parser.cc @@ -2375,9 +2375,47 @@ auto Parser::parse_unary_expression(ExpressionAST*& yyast, if (parse_new_expression(yyast, ctx)) return true; if (parse_delete_expression(yyast, ctx)) return true; if (parse_reflect_expression(yyast, ctx)) return true; + if (parse_label_address(yyast, ctx)) return true; return parse_postfix_expression(yyast, ctx); } +auto Parser::parse_label_address(ExpressionAST*& yyast, const ExprContext& ctx) + -> bool { + if (!is_parsing_c()) { + // enable only in C mode for now, until we devise a better strategy + // to disambiguate conflicts with unresolved C++ code. + return false; + } + + LookaheadParser lookahead{this}; + + SourceLocation ampAmpLoc; + if (!match(TokenKind::T_AMP_AMP, ampAmpLoc)) return false; + + SourceLocation identifierLoc; + if (!match(TokenKind::T_IDENTIFIER, identifierLoc)) return false; + + auto identifier = unit->identifier(identifierLoc); + + auto symbol = Lookup{scope()}.lookup(nullptr, identifier); + if (symbol) { + // did resolve to a symbol, so this is not a label address + return false; + } + + lookahead.commit(); + + auto ast = make_node(pool_); + yyast = ast; + ast->ampAmpLoc = ampAmpLoc; + ast->identifierLoc = identifierLoc; + ast->identifier = identifier; + + check(ast); + + return true; +} + auto Parser::parse_unop_expression(ExpressionAST*& yyast, const ExprContext& ctx) -> bool { LookaheadParser lookahead{this}; @@ -3759,6 +3797,8 @@ auto Parser::parse_goto_statement(StatementAST*& yyast) -> bool { ast->gotoLoc = gotoLoc; + ast->isIndirect = match(TokenKind::T_STAR, ast->starLoc); + expect(TokenKind::T_IDENTIFIER, ast->identifierLoc); expect(TokenKind::T_SEMICOLON, ast->semicolonLoc); diff --git a/src/parser/cxx/parser.h b/src/parser/cxx/parser.h index 8c64b6d7..a7b10a7b 100644 --- a/src/parser/cxx/parser.h +++ b/src/parser/cxx/parser.h @@ -282,6 +282,8 @@ class Parser final { const ExprContext& ctx) -> bool; [[nodiscard]] auto parse_unop_expression(ExpressionAST*& yyast, const ExprContext& ctx) -> bool; + [[nodiscard]] auto parse_label_address(ExpressionAST*& yyast, + const ExprContext& ctx) -> bool; [[nodiscard]] auto parse_complex_expression(ExpressionAST*& yyast, const ExprContext& ctx) -> bool; [[nodiscard]] auto parse_sizeof_expression(ExpressionAST*& yyast, diff --git a/src/parser/cxx/private/ast_decoder.h b/src/parser/cxx/private/ast_decoder.h index f1d68bab..20b7a5a1 100644 --- a/src/parser/cxx/private/ast_decoder.h +++ b/src/parser/cxx/private/ast_decoder.h @@ -257,6 +257,8 @@ class ASTDecoder { -> TypeIdReflectExpressionAST*; auto decodeReflectExpression(const io::ReflectExpression* node) -> ReflectExpressionAST*; + auto decodeLabelAddressExpression(const io::LabelAddressExpression* node) + -> LabelAddressExpressionAST*; auto decodeUnaryExpression(const io::UnaryExpression* node) -> UnaryExpressionAST*; auto decodeAwaitExpression(const io::AwaitExpression* node) diff --git a/src/parser/cxx/private/ast_encoder.h b/src/parser/cxx/private/ast_encoder.h index b2935577..0f95c6cf 100644 --- a/src/parser/cxx/private/ast_encoder.h +++ b/src/parser/cxx/private/ast_encoder.h @@ -218,6 +218,7 @@ class ASTEncoder : ASTVisitor { void visit(NamespaceReflectExpressionAST* ast) override; void visit(TypeIdReflectExpressionAST* ast) override; void visit(ReflectExpressionAST* ast) override; + void visit(LabelAddressExpressionAST* ast) override; void visit(UnaryExpressionAST* ast) override; void visit(AwaitExpressionAST* ast) override; void visit(SizeofExpressionAST* ast) override; diff --git a/src/parser/cxx/symbol_printer.cc b/src/parser/cxx/symbol_printer.cc index ae438057..74991986 100644 --- a/src/parser/cxx/symbol_printer.cc +++ b/src/parser/cxx/symbol_printer.cc @@ -71,8 +71,7 @@ struct DumpSymbols { void operator()(NamespaceSymbol* symbol) { indent(); out << "namespace"; - if (symbol->name()) - out << std::format(" {}", to_string(symbol->name())); + if (symbol->name()) out << std::format(" {}", to_string(symbol->name())); out << "\n"; dumpScope(symbol->scope()); } diff --git a/src/parser/cxx/type_checker.cc b/src/parser/cxx/type_checker.cc index 9b43065b..22a03c74 100644 --- a/src/parser/cxx/type_checker.cc +++ b/src/parser/cxx/type_checker.cc @@ -176,6 +176,7 @@ struct TypeChecker::Visitor { void operator()(NamespaceReflectExpressionAST* ast); void operator()(TypeIdReflectExpressionAST* ast); void operator()(ReflectExpressionAST* ast); + void operator()(LabelAddressExpressionAST* ast); void operator()(UnaryExpressionAST* ast); void operator()(AwaitExpressionAST* ast); void operator()(SizeofExpressionAST* ast); @@ -589,6 +590,10 @@ void TypeChecker::Visitor::operator()(TypeIdReflectExpressionAST* ast) {} void TypeChecker::Visitor::operator()(ReflectExpressionAST* ast) {} +void TypeChecker::Visitor::operator()(LabelAddressExpressionAST* ast) { + ast->type = control()->getPointerType(control()->getVoidType()); +} + void TypeChecker::Visitor::operator()(UnaryExpressionAST* ast) { switch (ast->op) { case TokenKind::T_STAR: { @@ -602,6 +607,13 @@ void TypeChecker::Visitor::operator()(UnaryExpressionAST* ast) { break; } + case TokenKind::T_AMP_AMP: { + cxx_runtime_error("address of label"); + ast->type = control()->getPointerType(control()->getVoidType()); + ast->valueCategory = ValueCategory::kPrValue; + break; + } + case TokenKind::T_AMP: { if (!ast->expression->type) { break; diff --git a/tests/unit_tests/sema/indirect_goto_c_01.c b/tests/unit_tests/sema/indirect_goto_c_01.c new file mode 100644 index 00000000..ee23b87a --- /dev/null +++ b/tests/unit_tests/sema/indirect_goto_c_01.c @@ -0,0 +1,11 @@ +// RUN: %cxx -verify -fcheck %s + +int main() { + void* target = 0; + + target = &&L; + goto* target; + +L: + return 0; +} \ No newline at end of file