UNPKG

oxc-parser

Version:
1,957 lines (1,809 loc) 154 kB
// Auto-generated code, DO NOT EDIT DIRECTLY! // To edit this generated file you have to edit `tasks/ast_tools/src/generators/raw_transfer_lazy.rs`. import { Program, IdentifierName, IdentifierReference, BindingIdentifier, LabelIdentifier, ThisExpression, ArrayExpression, Elision, ObjectExpression, ObjectProperty, TemplateLiteral, TaggedTemplateExpression, TemplateElement, ComputedMemberExpression, StaticMemberExpression, PrivateFieldExpression, CallExpression, NewExpression, MetaProperty, SpreadElement, UpdateExpression, UnaryExpression, BinaryExpression, PrivateInExpression, LogicalExpression, ConditionalExpression, AssignmentExpression, ArrayAssignmentTarget, ObjectAssignmentTarget, AssignmentTargetWithDefault, AssignmentTargetPropertyIdentifier, AssignmentTargetPropertyProperty, SequenceExpression, Super, AwaitExpression, ChainExpression, ParenthesizedExpression, Hashbang, BlockStatement, VariableDeclaration, VariableDeclarator, EmptyStatement, ExpressionStatement, IfStatement, DoWhileStatement, WhileStatement, ForStatement, ForInStatement, ForOfStatement, ContinueStatement, BreakStatement, ReturnStatement, WithStatement, SwitchStatement, SwitchCase, LabeledStatement, ThrowStatement, TryStatement, CatchClause, DebuggerStatement, AssignmentPattern, ObjectPattern, BindingProperty, ArrayPattern, Function, FormalParameters, FunctionBody, ArrowFunctionExpression, YieldExpression, Class, ClassBody, MethodDefinition, PropertyDefinition, PrivateIdentifier, StaticBlock, AccessorProperty, ImportExpression, ImportDeclaration, ImportSpecifier, ImportDefaultSpecifier, ImportNamespaceSpecifier, ImportAttribute, ExportNamedDeclaration, ExportDefaultDeclaration, ExportAllDeclaration, ExportSpecifier, V8IntrinsicExpression, BooleanLiteral, NullLiteral, NumericLiteral, StringLiteral, BigIntLiteral, RegExpLiteral, JSXElement, JSXOpeningElement, JSXClosingElement, JSXFragment, JSXOpeningFragment, JSXClosingFragment, JSXNamespacedName, JSXMemberExpression, JSXExpressionContainer, JSXEmptyExpression, JSXAttribute, JSXSpreadAttribute, JSXIdentifier, JSXSpreadChild, JSXText, TSEnumDeclaration, TSEnumBody, TSEnumMember, TSTypeAnnotation, TSLiteralType, TSConditionalType, TSUnionType, TSIntersectionType, TSParenthesizedType, TSTypeOperator, TSArrayType, TSIndexedAccessType, TSTupleType, TSNamedTupleMember, TSOptionalType, TSRestType, TSAnyKeyword, TSStringKeyword, TSBooleanKeyword, TSNumberKeyword, TSNeverKeyword, TSIntrinsicKeyword, TSUnknownKeyword, TSNullKeyword, TSUndefinedKeyword, TSVoidKeyword, TSSymbolKeyword, TSThisType, TSObjectKeyword, TSBigIntKeyword, TSTypeReference, TSQualifiedName, TSTypeParameterInstantiation, TSTypeParameter, TSTypeParameterDeclaration, TSTypeAliasDeclaration, TSClassImplements, TSInterfaceDeclaration, TSInterfaceBody, TSPropertySignature, TSIndexSignature, TSCallSignatureDeclaration, TSMethodSignature, TSConstructSignatureDeclaration, TSIndexSignatureName, TSInterfaceHeritage, TSTypePredicate, TSModuleDeclaration, TSGlobalDeclaration, TSModuleBlock, TSTypeLiteral, TSInferType, TSTypeQuery, TSImportType, TSImportTypeQualifiedName, TSFunctionType, TSConstructorType, TSMappedType, TSTemplateLiteralType, TSAsExpression, TSSatisfiesExpression, TSTypeAssertion, TSImportEqualsDeclaration, TSExternalModuleReference, TSNonNullExpression, Decorator, TSExportAssignment, TSNamespaceExportDeclaration, TSInstantiationExpression, JSDocNullableType, JSDocNonNullableType, JSDocUnknownType, } from "./constructors.js"; export { walkProgram }; function walkProgram(pos, ast, visitors) { const enterExit = visitors[38]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new Program(pos, ast); if (enter !== null) enter(node); } walkOptionHashbang(pos + 56, ast, visitors); walkVecStatement(pos + 112, ast, visitors); if (exit !== null) exit(node); } function walkExpression(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxBooleanLiteral(pos + 8, ast, visitors); return; case 1: walkBoxNullLiteral(pos + 8, ast, visitors); return; case 2: walkBoxNumericLiteral(pos + 8, ast, visitors); return; case 3: walkBoxBigIntLiteral(pos + 8, ast, visitors); return; case 4: walkBoxRegExpLiteral(pos + 8, ast, visitors); return; case 5: walkBoxStringLiteral(pos + 8, ast, visitors); return; case 6: walkBoxTemplateLiteral(pos + 8, ast, visitors); return; case 7: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 8: walkBoxMetaProperty(pos + 8, ast, visitors); return; case 9: walkBoxSuper(pos + 8, ast, visitors); return; case 10: walkBoxArrayExpression(pos + 8, ast, visitors); return; case 11: walkBoxArrowFunctionExpression(pos + 8, ast, visitors); return; case 12: walkBoxAssignmentExpression(pos + 8, ast, visitors); return; case 13: walkBoxAwaitExpression(pos + 8, ast, visitors); return; case 14: walkBoxBinaryExpression(pos + 8, ast, visitors); return; case 15: walkBoxCallExpression(pos + 8, ast, visitors); return; case 16: walkBoxChainExpression(pos + 8, ast, visitors); return; case 17: walkBoxClass(pos + 8, ast, visitors); return; case 18: walkBoxConditionalExpression(pos + 8, ast, visitors); return; case 19: walkBoxFunction(pos + 8, ast, visitors); return; case 20: walkBoxImportExpression(pos + 8, ast, visitors); return; case 21: walkBoxLogicalExpression(pos + 8, ast, visitors); return; case 22: walkBoxNewExpression(pos + 8, ast, visitors); return; case 23: walkBoxObjectExpression(pos + 8, ast, visitors); return; case 24: walkBoxParenthesizedExpression(pos + 8, ast, visitors); return; case 25: walkBoxSequenceExpression(pos + 8, ast, visitors); return; case 26: walkBoxTaggedTemplateExpression(pos + 8, ast, visitors); return; case 27: walkBoxThisExpression(pos + 8, ast, visitors); return; case 28: walkBoxUnaryExpression(pos + 8, ast, visitors); return; case 29: walkBoxUpdateExpression(pos + 8, ast, visitors); return; case 30: walkBoxYieldExpression(pos + 8, ast, visitors); return; case 31: walkBoxPrivateInExpression(pos + 8, ast, visitors); return; case 32: walkBoxJSXElement(pos + 8, ast, visitors); return; case 33: walkBoxJSXFragment(pos + 8, ast, visitors); return; case 34: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 35: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 36: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 37: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 38: walkBoxTSInstantiationExpression(pos + 8, ast, visitors); return; case 39: walkBoxV8IntrinsicExpression(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Expression`); } } function walkIdentifierName(pos, ast, visitors) { const visit = visitors[0]; if (visit !== null) visit(new IdentifierName(pos, ast)); } function walkIdentifierReference(pos, ast, visitors) { const visit = visitors[1]; if (visit !== null) visit(new IdentifierReference(pos, ast)); } function walkBindingIdentifier(pos, ast, visitors) { const visit = visitors[2]; if (visit !== null) visit(new BindingIdentifier(pos, ast)); } function walkLabelIdentifier(pos, ast, visitors) { const visit = visitors[3]; if (visit !== null) visit(new LabelIdentifier(pos, ast)); } function walkThisExpression(pos, ast, visitors) { const visit = visitors[4]; if (visit !== null) visit(new ThisExpression(pos, ast)); } function walkArrayExpression(pos, ast, visitors) { const enterExit = visitors[39]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ArrayExpression(pos, ast); if (enter !== null) enter(node); } walkVecArrayExpressionElement(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkArrayExpressionElement(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxBooleanLiteral(pos + 8, ast, visitors); return; case 1: walkBoxNullLiteral(pos + 8, ast, visitors); return; case 2: walkBoxNumericLiteral(pos + 8, ast, visitors); return; case 3: walkBoxBigIntLiteral(pos + 8, ast, visitors); return; case 4: walkBoxRegExpLiteral(pos + 8, ast, visitors); return; case 5: walkBoxStringLiteral(pos + 8, ast, visitors); return; case 6: walkBoxTemplateLiteral(pos + 8, ast, visitors); return; case 7: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 8: walkBoxMetaProperty(pos + 8, ast, visitors); return; case 9: walkBoxSuper(pos + 8, ast, visitors); return; case 10: walkBoxArrayExpression(pos + 8, ast, visitors); return; case 11: walkBoxArrowFunctionExpression(pos + 8, ast, visitors); return; case 12: walkBoxAssignmentExpression(pos + 8, ast, visitors); return; case 13: walkBoxAwaitExpression(pos + 8, ast, visitors); return; case 14: walkBoxBinaryExpression(pos + 8, ast, visitors); return; case 15: walkBoxCallExpression(pos + 8, ast, visitors); return; case 16: walkBoxChainExpression(pos + 8, ast, visitors); return; case 17: walkBoxClass(pos + 8, ast, visitors); return; case 18: walkBoxConditionalExpression(pos + 8, ast, visitors); return; case 19: walkBoxFunction(pos + 8, ast, visitors); return; case 20: walkBoxImportExpression(pos + 8, ast, visitors); return; case 21: walkBoxLogicalExpression(pos + 8, ast, visitors); return; case 22: walkBoxNewExpression(pos + 8, ast, visitors); return; case 23: walkBoxObjectExpression(pos + 8, ast, visitors); return; case 24: walkBoxParenthesizedExpression(pos + 8, ast, visitors); return; case 25: walkBoxSequenceExpression(pos + 8, ast, visitors); return; case 26: walkBoxTaggedTemplateExpression(pos + 8, ast, visitors); return; case 27: walkBoxThisExpression(pos + 8, ast, visitors); return; case 28: walkBoxUnaryExpression(pos + 8, ast, visitors); return; case 29: walkBoxUpdateExpression(pos + 8, ast, visitors); return; case 30: walkBoxYieldExpression(pos + 8, ast, visitors); return; case 31: walkBoxPrivateInExpression(pos + 8, ast, visitors); return; case 32: walkBoxJSXElement(pos + 8, ast, visitors); return; case 33: walkBoxJSXFragment(pos + 8, ast, visitors); return; case 34: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 35: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 36: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 37: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 38: walkBoxTSInstantiationExpression(pos + 8, ast, visitors); return; case 39: walkBoxV8IntrinsicExpression(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; case 64: walkBoxSpreadElement(pos + 8, ast, visitors); return; case 65: walkBoxElision(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ArrayExpressionElement`); } } function walkElision(pos, ast, visitors) { const visit = visitors[5]; if (visit !== null) visit(new Elision(pos, ast)); } function walkObjectExpression(pos, ast, visitors) { const enterExit = visitors[40]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ObjectExpression(pos, ast); if (enter !== null) enter(node); } walkVecObjectPropertyKind(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkObjectPropertyKind(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxObjectProperty(pos + 8, ast, visitors); return; case 1: walkBoxSpreadElement(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ObjectPropertyKind`); } } function walkObjectProperty(pos, ast, visitors) { const enterExit = visitors[41]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ObjectProperty(pos, ast); if (enter !== null) enter(node); } walkPropertyKey(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkPropertyKey(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxBooleanLiteral(pos + 8, ast, visitors); return; case 1: walkBoxNullLiteral(pos + 8, ast, visitors); return; case 2: walkBoxNumericLiteral(pos + 8, ast, visitors); return; case 3: walkBoxBigIntLiteral(pos + 8, ast, visitors); return; case 4: walkBoxRegExpLiteral(pos + 8, ast, visitors); return; case 5: walkBoxStringLiteral(pos + 8, ast, visitors); return; case 6: walkBoxTemplateLiteral(pos + 8, ast, visitors); return; case 7: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 8: walkBoxMetaProperty(pos + 8, ast, visitors); return; case 9: walkBoxSuper(pos + 8, ast, visitors); return; case 10: walkBoxArrayExpression(pos + 8, ast, visitors); return; case 11: walkBoxArrowFunctionExpression(pos + 8, ast, visitors); return; case 12: walkBoxAssignmentExpression(pos + 8, ast, visitors); return; case 13: walkBoxAwaitExpression(pos + 8, ast, visitors); return; case 14: walkBoxBinaryExpression(pos + 8, ast, visitors); return; case 15: walkBoxCallExpression(pos + 8, ast, visitors); return; case 16: walkBoxChainExpression(pos + 8, ast, visitors); return; case 17: walkBoxClass(pos + 8, ast, visitors); return; case 18: walkBoxConditionalExpression(pos + 8, ast, visitors); return; case 19: walkBoxFunction(pos + 8, ast, visitors); return; case 20: walkBoxImportExpression(pos + 8, ast, visitors); return; case 21: walkBoxLogicalExpression(pos + 8, ast, visitors); return; case 22: walkBoxNewExpression(pos + 8, ast, visitors); return; case 23: walkBoxObjectExpression(pos + 8, ast, visitors); return; case 24: walkBoxParenthesizedExpression(pos + 8, ast, visitors); return; case 25: walkBoxSequenceExpression(pos + 8, ast, visitors); return; case 26: walkBoxTaggedTemplateExpression(pos + 8, ast, visitors); return; case 27: walkBoxThisExpression(pos + 8, ast, visitors); return; case 28: walkBoxUnaryExpression(pos + 8, ast, visitors); return; case 29: walkBoxUpdateExpression(pos + 8, ast, visitors); return; case 30: walkBoxYieldExpression(pos + 8, ast, visitors); return; case 31: walkBoxPrivateInExpression(pos + 8, ast, visitors); return; case 32: walkBoxJSXElement(pos + 8, ast, visitors); return; case 33: walkBoxJSXFragment(pos + 8, ast, visitors); return; case 34: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 35: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 36: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 37: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 38: walkBoxTSInstantiationExpression(pos + 8, ast, visitors); return; case 39: walkBoxV8IntrinsicExpression(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; case 64: walkBoxIdentifierName(pos + 8, ast, visitors); return; case 65: walkBoxPrivateIdentifier(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for PropertyKey`); } } function walkTemplateLiteral(pos, ast, visitors) { const enterExit = visitors[42]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new TemplateLiteral(pos, ast); if (enter !== null) enter(node); } walkVecTemplateElement(pos + 16, ast, visitors); walkVecExpression(pos + 40, ast, visitors); if (exit !== null) exit(node); } function walkTaggedTemplateExpression(pos, ast, visitors) { const enterExit = visitors[43]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new TaggedTemplateExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkOptionBoxTSTypeParameterInstantiation(pos + 32, ast, visitors); walkTemplateLiteral(pos + 40, ast, visitors); if (exit !== null) exit(node); } function walkTemplateElement(pos, ast, visitors) { const visit = visitors[6]; if (visit !== null) visit(new TemplateElement(pos, ast)); } function walkComputedMemberExpression(pos, ast, visitors) { const enterExit = visitors[44]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ComputedMemberExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkStaticMemberExpression(pos, ast, visitors) { const enterExit = visitors[45]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new StaticMemberExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkIdentifierName(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkPrivateFieldExpression(pos, ast, visitors) { const enterExit = visitors[46]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new PrivateFieldExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkPrivateIdentifier(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkCallExpression(pos, ast, visitors) { const enterExit = visitors[47]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new CallExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkOptionBoxTSTypeParameterInstantiation(pos + 32, ast, visitors); walkVecArgument(pos + 40, ast, visitors); if (exit !== null) exit(node); } function walkNewExpression(pos, ast, visitors) { const enterExit = visitors[48]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new NewExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkOptionBoxTSTypeParameterInstantiation(pos + 32, ast, visitors); walkVecArgument(pos + 40, ast, visitors); if (exit !== null) exit(node); } function walkMetaProperty(pos, ast, visitors) { const enterExit = visitors[49]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new MetaProperty(pos, ast); if (enter !== null) enter(node); } walkIdentifierName(pos + 16, ast, visitors); walkIdentifierName(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkSpreadElement(pos, ast, visitors) { const enterExit = visitors[50]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new SpreadElement(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkArgument(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxBooleanLiteral(pos + 8, ast, visitors); return; case 1: walkBoxNullLiteral(pos + 8, ast, visitors); return; case 2: walkBoxNumericLiteral(pos + 8, ast, visitors); return; case 3: walkBoxBigIntLiteral(pos + 8, ast, visitors); return; case 4: walkBoxRegExpLiteral(pos + 8, ast, visitors); return; case 5: walkBoxStringLiteral(pos + 8, ast, visitors); return; case 6: walkBoxTemplateLiteral(pos + 8, ast, visitors); return; case 7: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 8: walkBoxMetaProperty(pos + 8, ast, visitors); return; case 9: walkBoxSuper(pos + 8, ast, visitors); return; case 10: walkBoxArrayExpression(pos + 8, ast, visitors); return; case 11: walkBoxArrowFunctionExpression(pos + 8, ast, visitors); return; case 12: walkBoxAssignmentExpression(pos + 8, ast, visitors); return; case 13: walkBoxAwaitExpression(pos + 8, ast, visitors); return; case 14: walkBoxBinaryExpression(pos + 8, ast, visitors); return; case 15: walkBoxCallExpression(pos + 8, ast, visitors); return; case 16: walkBoxChainExpression(pos + 8, ast, visitors); return; case 17: walkBoxClass(pos + 8, ast, visitors); return; case 18: walkBoxConditionalExpression(pos + 8, ast, visitors); return; case 19: walkBoxFunction(pos + 8, ast, visitors); return; case 20: walkBoxImportExpression(pos + 8, ast, visitors); return; case 21: walkBoxLogicalExpression(pos + 8, ast, visitors); return; case 22: walkBoxNewExpression(pos + 8, ast, visitors); return; case 23: walkBoxObjectExpression(pos + 8, ast, visitors); return; case 24: walkBoxParenthesizedExpression(pos + 8, ast, visitors); return; case 25: walkBoxSequenceExpression(pos + 8, ast, visitors); return; case 26: walkBoxTaggedTemplateExpression(pos + 8, ast, visitors); return; case 27: walkBoxThisExpression(pos + 8, ast, visitors); return; case 28: walkBoxUnaryExpression(pos + 8, ast, visitors); return; case 29: walkBoxUpdateExpression(pos + 8, ast, visitors); return; case 30: walkBoxYieldExpression(pos + 8, ast, visitors); return; case 31: walkBoxPrivateInExpression(pos + 8, ast, visitors); return; case 32: walkBoxJSXElement(pos + 8, ast, visitors); return; case 33: walkBoxJSXFragment(pos + 8, ast, visitors); return; case 34: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 35: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 36: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 37: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 38: walkBoxTSInstantiationExpression(pos + 8, ast, visitors); return; case 39: walkBoxV8IntrinsicExpression(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; case 64: walkBoxSpreadElement(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Argument`); } } function walkUpdateExpression(pos, ast, visitors) { const enterExit = visitors[51]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new UpdateExpression(pos, ast); if (enter !== null) enter(node); } walkSimpleAssignmentTarget(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkUnaryExpression(pos, ast, visitors) { const enterExit = visitors[52]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new UnaryExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkBinaryExpression(pos, ast, visitors) { const enterExit = visitors[53]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new BinaryExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkPrivateInExpression(pos, ast, visitors) { const enterExit = visitors[54]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new PrivateInExpression(pos, ast); if (enter !== null) enter(node); } walkPrivateIdentifier(pos + 16, ast, visitors); walkExpression(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkLogicalExpression(pos, ast, visitors) { const enterExit = visitors[55]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new LogicalExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkConditionalExpression(pos, ast, visitors) { const enterExit = visitors[56]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ConditionalExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); walkExpression(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkAssignmentExpression(pos, ast, visitors) { const enterExit = visitors[57]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new AssignmentExpression(pos, ast); if (enter !== null) enter(node); } walkAssignmentTarget(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkAssignmentTarget(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 1: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 2: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 3: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 4: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 8: walkBoxArrayAssignmentTarget(pos + 8, ast, visitors); return; case 9: walkBoxObjectAssignmentTarget(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for AssignmentTarget`); } } function walkSimpleAssignmentTarget(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 1: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 2: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 3: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 4: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for SimpleAssignmentTarget`); } } function walkArrayAssignmentTarget(pos, ast, visitors) { const enterExit = visitors[58]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ArrayAssignmentTarget(pos, ast); if (enter !== null) enter(node); } walkVecOptionAssignmentTargetMaybeDefault(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkObjectAssignmentTarget(pos, ast, visitors) { const enterExit = visitors[59]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ObjectAssignmentTarget(pos, ast); if (enter !== null) enter(node); } walkVecAssignmentTargetProperty(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkAssignmentTargetMaybeDefault(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 1: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 2: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 3: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 4: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 8: walkBoxArrayAssignmentTarget(pos + 8, ast, visitors); return; case 9: walkBoxObjectAssignmentTarget(pos + 8, ast, visitors); return; case 16: walkBoxAssignmentTargetWithDefault(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; default: throw new Error( `Unexpected discriminant ${ast.buffer[pos]} for AssignmentTargetMaybeDefault`, ); } } function walkAssignmentTargetWithDefault(pos, ast, visitors) { const enterExit = visitors[60]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new AssignmentTargetWithDefault(pos, ast); if (enter !== null) enter(node); } walkAssignmentTarget(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkAssignmentTargetProperty(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxAssignmentTargetPropertyIdentifier(pos + 8, ast, visitors); return; case 1: walkBoxAssignmentTargetPropertyProperty(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for AssignmentTargetProperty`); } } function walkAssignmentTargetPropertyIdentifier(pos, ast, visitors) { const enterExit = visitors[61]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new AssignmentTargetPropertyIdentifier(pos, ast); if (enter !== null) enter(node); } walkIdentifierReference(pos + 16, ast, visitors); walkOptionExpression(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkAssignmentTargetPropertyProperty(pos, ast, visitors) { const enterExit = visitors[62]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new AssignmentTargetPropertyProperty(pos, ast); if (enter !== null) enter(node); } walkPropertyKey(pos + 16, ast, visitors); walkAssignmentTargetMaybeDefault(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkSequenceExpression(pos, ast, visitors) { const enterExit = visitors[63]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new SequenceExpression(pos, ast); if (enter !== null) enter(node); } walkVecExpression(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkSuper(pos, ast, visitors) { const visit = visitors[7]; if (visit !== null) visit(new Super(pos, ast)); } function walkAwaitExpression(pos, ast, visitors) { const enterExit = visitors[64]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new AwaitExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkChainExpression(pos, ast, visitors) { const enterExit = visitors[65]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ChainExpression(pos, ast); if (enter !== null) enter(node); } walkChainElement(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkChainElement(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxCallExpression(pos + 8, ast, visitors); return; case 1: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ChainElement`); } } function walkParenthesizedExpression(pos, ast, visitors) { const enterExit = visitors[66]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ParenthesizedExpression(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkStatement(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxBlockStatement(pos + 8, ast, visitors); return; case 1: walkBoxBreakStatement(pos + 8, ast, visitors); return; case 2: walkBoxContinueStatement(pos + 8, ast, visitors); return; case 3: walkBoxDebuggerStatement(pos + 8, ast, visitors); return; case 4: walkBoxDoWhileStatement(pos + 8, ast, visitors); return; case 5: walkBoxEmptyStatement(pos + 8, ast, visitors); return; case 6: walkBoxExpressionStatement(pos + 8, ast, visitors); return; case 7: walkBoxForInStatement(pos + 8, ast, visitors); return; case 8: walkBoxForOfStatement(pos + 8, ast, visitors); return; case 9: walkBoxForStatement(pos + 8, ast, visitors); return; case 10: walkBoxIfStatement(pos + 8, ast, visitors); return; case 11: walkBoxLabeledStatement(pos + 8, ast, visitors); return; case 12: walkBoxReturnStatement(pos + 8, ast, visitors); return; case 13: walkBoxSwitchStatement(pos + 8, ast, visitors); return; case 14: walkBoxThrowStatement(pos + 8, ast, visitors); return; case 15: walkBoxTryStatement(pos + 8, ast, visitors); return; case 16: walkBoxWhileStatement(pos + 8, ast, visitors); return; case 17: walkBoxWithStatement(pos + 8, ast, visitors); return; case 32: walkBoxVariableDeclaration(pos + 8, ast, visitors); return; case 33: walkBoxFunction(pos + 8, ast, visitors); return; case 34: walkBoxClass(pos + 8, ast, visitors); return; case 35: walkBoxTSTypeAliasDeclaration(pos + 8, ast, visitors); return; case 36: walkBoxTSInterfaceDeclaration(pos + 8, ast, visitors); return; case 37: walkBoxTSEnumDeclaration(pos + 8, ast, visitors); return; case 38: walkBoxTSModuleDeclaration(pos + 8, ast, visitors); return; case 39: walkBoxTSGlobalDeclaration(pos + 8, ast, visitors); return; case 40: walkBoxTSImportEqualsDeclaration(pos + 8, ast, visitors); return; case 64: walkBoxImportDeclaration(pos + 8, ast, visitors); return; case 65: walkBoxExportAllDeclaration(pos + 8, ast, visitors); return; case 66: walkBoxExportDefaultDeclaration(pos + 8, ast, visitors); return; case 67: walkBoxExportNamedDeclaration(pos + 8, ast, visitors); return; case 68: walkBoxTSExportAssignment(pos + 8, ast, visitors); return; case 69: walkBoxTSNamespaceExportDeclaration(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Statement`); } } function walkHashbang(pos, ast, visitors) { const visit = visitors[8]; if (visit !== null) visit(new Hashbang(pos, ast)); } function walkBlockStatement(pos, ast, visitors) { const enterExit = visitors[67]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new BlockStatement(pos, ast); if (enter !== null) enter(node); } walkVecStatement(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkDeclaration(pos, ast, visitors) { switch (ast.buffer[pos]) { case 32: walkBoxVariableDeclaration(pos + 8, ast, visitors); return; case 33: walkBoxFunction(pos + 8, ast, visitors); return; case 34: walkBoxClass(pos + 8, ast, visitors); return; case 35: walkBoxTSTypeAliasDeclaration(pos + 8, ast, visitors); return; case 36: walkBoxTSInterfaceDeclaration(pos + 8, ast, visitors); return; case 37: walkBoxTSEnumDeclaration(pos + 8, ast, visitors); return; case 38: walkBoxTSModuleDeclaration(pos + 8, ast, visitors); return; case 39: walkBoxTSGlobalDeclaration(pos + 8, ast, visitors); return; case 40: walkBoxTSImportEqualsDeclaration(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Declaration`); } } function walkVariableDeclaration(pos, ast, visitors) { const enterExit = visitors[68]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new VariableDeclaration(pos, ast); if (enter !== null) enter(node); } walkVecVariableDeclarator(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkVariableDeclarator(pos, ast, visitors) { const enterExit = visitors[69]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new VariableDeclarator(pos, ast); if (enter !== null) enter(node); } walkBindingPattern(pos + 16, ast, visitors); walkOptionExpression(pos + 40, ast, visitors); if (exit !== null) exit(node); } function walkEmptyStatement(pos, ast, visitors) { const visit = visitors[9]; if (visit !== null) visit(new EmptyStatement(pos, ast)); } function walkExpressionStatement(pos, ast, visitors) { const enterExit = visitors[70]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ExpressionStatement(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkIfStatement(pos, ast, visitors) { const enterExit = visitors[71]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new IfStatement(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkStatement(pos + 32, ast, visitors); walkOptionStatement(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkDoWhileStatement(pos, ast, visitors) { const enterExit = visitors[72]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new DoWhileStatement(pos, ast); if (enter !== null) enter(node); } walkStatement(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkWhileStatement(pos, ast, visitors) { const enterExit = visitors[73]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new WhileStatement(pos, ast); if (enter !== null) enter(node); } walkExpression(pos + 16, ast, visitors); walkStatement(pos + 32, ast, visitors); if (exit !== null) exit(node); } function walkForStatement(pos, ast, visitors) { const enterExit = visitors[74]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ForStatement(pos, ast); if (enter !== null) enter(node); } walkOptionForStatementInit(pos + 16, ast, visitors); walkOptionExpression(pos + 32, ast, visitors); walkOptionExpression(pos + 48, ast, visitors); walkStatement(pos + 64, ast, visitors); if (exit !== null) exit(node); } function walkForStatementInit(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxBooleanLiteral(pos + 8, ast, visitors); return; case 1: walkBoxNullLiteral(pos + 8, ast, visitors); return; case 2: walkBoxNumericLiteral(pos + 8, ast, visitors); return; case 3: walkBoxBigIntLiteral(pos + 8, ast, visitors); return; case 4: walkBoxRegExpLiteral(pos + 8, ast, visitors); return; case 5: walkBoxStringLiteral(pos + 8, ast, visitors); return; case 6: walkBoxTemplateLiteral(pos + 8, ast, visitors); return; case 7: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 8: walkBoxMetaProperty(pos + 8, ast, visitors); return; case 9: walkBoxSuper(pos + 8, ast, visitors); return; case 10: walkBoxArrayExpression(pos + 8, ast, visitors); return; case 11: walkBoxArrowFunctionExpression(pos + 8, ast, visitors); return; case 12: walkBoxAssignmentExpression(pos + 8, ast, visitors); return; case 13: walkBoxAwaitExpression(pos + 8, ast, visitors); return; case 14: walkBoxBinaryExpression(pos + 8, ast, visitors); return; case 15: walkBoxCallExpression(pos + 8, ast, visitors); return; case 16: walkBoxChainExpression(pos + 8, ast, visitors); return; case 17: walkBoxClass(pos + 8, ast, visitors); return; case 18: walkBoxConditionalExpression(pos + 8, ast, visitors); return; case 19: walkBoxFunction(pos + 8, ast, visitors); return; case 20: walkBoxImportExpression(pos + 8, ast, visitors); return; case 21: walkBoxLogicalExpression(pos + 8, ast, visitors); return; case 22: walkBoxNewExpression(pos + 8, ast, visitors); return; case 23: walkBoxObjectExpression(pos + 8, ast, visitors); return; case 24: walkBoxParenthesizedExpression(pos + 8, ast, visitors); return; case 25: walkBoxSequenceExpression(pos + 8, ast, visitors); return; case 26: walkBoxTaggedTemplateExpression(pos + 8, ast, visitors); return; case 27: walkBoxThisExpression(pos + 8, ast, visitors); return; case 28: walkBoxUnaryExpression(pos + 8, ast, visitors); return; case 29: walkBoxUpdateExpression(pos + 8, ast, visitors); return; case 30: walkBoxYieldExpression(pos + 8, ast, visitors); return; case 31: walkBoxPrivateInExpression(pos + 8, ast, visitors); return; case 32: walkBoxJSXElement(pos + 8, ast, visitors); return; case 33: walkBoxJSXFragment(pos + 8, ast, visitors); return; case 34: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 35: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 36: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 37: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 38: walkBoxTSInstantiationExpression(pos + 8, ast, visitors); return; case 39: walkBoxV8IntrinsicExpression(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; case 64: walkBoxVariableDeclaration(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ForStatementInit`); } } function walkForInStatement(pos, ast, visitors) { const enterExit = visitors[75]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ForInStatement(pos, ast); if (enter !== null) enter(node); } walkForStatementLeft(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); walkStatement(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkForStatementLeft(pos, ast, visitors) { switch (ast.buffer[pos]) { case 0: walkBoxIdentifierReference(pos + 8, ast, visitors); return; case 1: walkBoxTSAsExpression(pos + 8, ast, visitors); return; case 2: walkBoxTSSatisfiesExpression(pos + 8, ast, visitors); return; case 3: walkBoxTSNonNullExpression(pos + 8, ast, visitors); return; case 4: walkBoxTSTypeAssertion(pos + 8, ast, visitors); return; case 8: walkBoxArrayAssignmentTarget(pos + 8, ast, visitors); return; case 9: walkBoxObjectAssignmentTarget(pos + 8, ast, visitors); return; case 16: walkBoxVariableDeclaration(pos + 8, ast, visitors); return; case 48: walkBoxComputedMemberExpression(pos + 8, ast, visitors); return; case 49: walkBoxStaticMemberExpression(pos + 8, ast, visitors); return; case 50: walkBoxPrivateFieldExpression(pos + 8, ast, visitors); return; default: throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ForStatementLeft`); } } function walkForOfStatement(pos, ast, visitors) { const enterExit = visitors[76]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ForOfStatement(pos, ast); if (enter !== null) enter(node); } walkForStatementLeft(pos + 16, ast, visitors); walkExpression(pos + 32, ast, visitors); walkStatement(pos + 48, ast, visitors); if (exit !== null) exit(node); } function walkContinueStatement(pos, ast, visitors) { const enterExit = visitors[77]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new ContinueStatement(pos, ast); if (enter !== null) enter(node); } walkOptionLabelIdentifier(pos + 16, ast, visitors); if (exit !== null) exit(node); } function walkBreakStatement(pos, ast, visitors) { const enterExit = visitors[78]; let node, enter, exit = null; if (enterExit !== null) { ({ enter, exit } = enterExit); node = new BreakStatement(pos, ast);