@ibyar/expressions 0.8.3 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/api/abstract.d.ts +6 -2
- package/api/abstract.js +15 -8
- package/api/abstract.js.map +1 -1
- package/api/class/class.d.ts +15 -18
- package/api/class/class.js +49 -61
- package/api/class/class.js.map +1 -1
- package/api/class/decorator.d.ts +2 -2
- package/api/class/decorator.js +6 -6
- package/api/class/decorator.js.map +1 -1
- package/api/computing/call.d.ts +2 -2
- package/api/computing/call.js +8 -8
- package/api/computing/call.js.map +1 -1
- package/api/computing/debugger.d.ts +1 -2
- package/api/computing/debugger.js +2 -3
- package/api/computing/debugger.js.map +1 -1
- package/api/computing/new.d.ts +2 -2
- package/api/computing/new.js +7 -7
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.d.ts +2 -2
- package/api/computing/rest.js +6 -6
- package/api/computing/rest.js.map +1 -1
- package/api/computing/return.d.ts +2 -2
- package/api/computing/return.js +6 -6
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.d.ts +2 -2
- package/api/computing/spread.js +6 -6
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.d.ts +4 -4
- package/api/computing/throw.js +18 -18
- package/api/computing/throw.js.map +1 -1
- package/api/computing/yield.d.ts +2 -2
- package/api/computing/yield.js +7 -7
- package/api/computing/yield.js.map +1 -1
- package/api/definition/array.d.ts +3 -3
- package/api/definition/array.js +14 -14
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.d.ts +2 -2
- package/api/definition/bind.js +9 -9
- package/api/definition/bind.js.map +1 -1
- package/api/definition/comment.d.ts +3 -3
- package/api/definition/comment.js +6 -6
- package/api/definition/comment.js.map +1 -1
- package/api/definition/function.d.ts +17 -16
- package/api/definition/function.js +60 -55
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.d.ts +2 -2
- package/api/definition/member.js +13 -9
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.d.ts +4 -4
- package/api/definition/object.js +22 -22
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.d.ts +2 -2
- package/api/definition/statement.js +6 -6
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.d.ts +15 -37
- package/api/definition/values.js +49 -74
- package/api/definition/values.js.map +1 -1
- package/api/expression.d.ts +42 -8
- package/api/expression.js.map +1 -1
- package/api/index.d.ts +1 -0
- package/api/index.js +1 -0
- package/api/index.js.map +1 -1
- package/api/module/common.d.ts +3 -3
- package/api/module/common.js +9 -9
- package/api/module/common.js.map +1 -1
- package/api/module/export.d.ts +5 -5
- package/api/module/export.js +30 -29
- package/api/module/export.js.map +1 -1
- package/api/module/import.d.ts +4 -4
- package/api/module/import.js +24 -23
- package/api/module/import.js.map +1 -1
- package/api/operators/assignment.d.ts +3 -3
- package/api/operators/assignment.js +5 -5
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.d.ts +3 -3
- package/api/operators/await.js +7 -7
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.d.ts +1 -1
- package/api/operators/binary.js +1 -1
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.d.ts +2 -2
- package/api/operators/chaining.js +6 -6
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.d.ts +2 -2
- package/api/operators/comma.js +6 -6
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.d.ts +2 -2
- package/api/operators/grouping.js +6 -6
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.d.ts +1 -1
- package/api/operators/logical.js +1 -1
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.d.ts +3 -3
- package/api/operators/pipeline.js +8 -8
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.d.ts +2 -2
- package/api/operators/ternary.js +8 -8
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/types.d.ts +1 -1
- package/api/operators/unary.d.ts +3 -3
- package/api/operators/unary.js +7 -7
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.d.ts +3 -3
- package/api/operators/update.js +8 -8
- package/api/operators/update.js.map +1 -1
- package/api/program.d.ts +3 -3
- package/api/program.js +7 -7
- package/api/program.js.map +1 -1
- package/api/statement/control/block.d.ts +2 -2
- package/api/statement/control/block.js +6 -6
- package/api/statement/control/block.js.map +1 -1
- package/api/statement/control/empty.d.ts +2 -3
- package/api/statement/control/empty.js +6 -7
- package/api/statement/control/empty.js.map +1 -1
- package/api/statement/control/if.d.ts +2 -2
- package/api/statement/control/if.js +8 -8
- package/api/statement/control/if.js.map +1 -1
- package/api/statement/control/switch.d.ts +4 -6
- package/api/statement/control/switch.js +19 -20
- package/api/statement/control/switch.js.map +1 -1
- package/api/statement/control/terminate.d.ts +4 -4
- package/api/statement/control/terminate.js +11 -15
- package/api/statement/control/terminate.js.map +1 -1
- package/api/statement/control/with.d.ts +21 -0
- package/api/statement/control/with.js +67 -0
- package/api/statement/control/with.js.map +1 -0
- package/api/statement/declarations/declares.d.ts +4 -4
- package/api/statement/declarations/declares.js +14 -14
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.d.ts +7 -7
- package/api/statement/iterations/for.js +35 -35
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.d.ts +3 -3
- package/api/statement/iterations/while.js +14 -14
- package/api/statement/iterations/while.js.map +1 -1
- package/package.json +14 -4
- package/scope/finalizer.d.ts +1 -1
- package/scope/pool.d.ts +1 -1
- package/scope/proxy.d.ts +1 -1
- package/scope/proxy.js +1 -0
- package/scope/proxy.js.map +1 -1
- package/scope/scope.d.ts +2 -2
- package/scope/scope.js +13 -16
- package/scope/scope.js.map +1 -1
- package/scope/stack.js +23 -23
- package/scope/stack.js.map +1 -1
- package/v8/enums.d.ts +4 -2
- package/v8/enums.js.map +1 -1
- package/v8/factory.d.ts +148 -0
- package/v8/factory.js +499 -0
- package/v8/factory.js.map +1 -0
- package/v8/inline.d.ts +49 -49
- package/v8/inline.js +314 -305
- package/v8/inline.js.map +1 -1
- package/v8/node.d.ts +141 -0
- package/v8/node.js +2 -0
- package/v8/node.js.map +1 -0
- package/v8/nodes.d.ts +0 -14
- package/v8/nodes.js +1 -152
- package/v8/nodes.js.map +1 -1
- package/v8/parser.d.ts +21 -18
- package/v8/parser.js +97 -84
- package/v8/parser.js.map +1 -1
- package/v8/stream.d.ts +2 -1
- package/v8/stream.js +221 -311
- package/v8/stream.js.map +1 -1
- package/v8/token.d.ts +3 -1
- package/v8/token.js +7 -5
- package/v8/token.js.map +1 -1
- package/visit/visitor.d.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/expressions/v8/factory.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tAccessorProperty, ClassBody, ClassDeclaration, ClassExpression,\n\tMetaProperty, MethodDefinition, MethodDefinitionKind, PrivateIdentifier,\n\tPropertyDefinition, StaticBlock, Super\n} from '../api/class/class.js';\nimport { Decorator } from '../api/class/decorator.js';\nimport { CallExpression } from '../api/computing/call.js';\nimport { DebuggerStatement } from '../api/computing/debugger.js';\nimport { NewExpression } from '../api/computing/new.js';\nimport { RestElement } from '../api/computing/rest.js';\nimport { ReturnStatement } from '../api/computing/return.js';\nimport { SpreadElement } from '../api/computing/spread.js';\nimport {\n\tCatchClauseNode, ThrowStatement, TryCatchNode\n} from '../api/computing/throw.js';\nimport { YieldExpression } from '../api/computing/yield.js';\nimport { ArrayExpression, ArrayPattern } from '../api/definition/array.js';\nimport { BindExpression } from '../api/definition/bind.js';\nimport {\n\tArrowFunctionExpression, AssignmentPattern, FunctionDeclaration, FunctionExpression\n} from '../api/definition/function.js';\nimport { MemberExpression } from '../api/definition/member.js';\nimport {\n\tObjectExpression, ObjectPattern, Property\n} from '../api/definition/object.js';\nimport { ExpressionStatement } from '../api/definition/statement.js';\nimport {\n\tIdentifier, Literal, TaggedTemplateExpression, TemplateLiteral, ThisExpression\n} from '../api/definition/values.js';\nimport {\n\tDeclarationExpression, ExpressionNode, SourceLocation\n} from '../api/expression.js';\nimport { ImportAttribute } from '../api/module/common.js';\nimport {\n\tExportAllDeclaration, ExportDefaultDeclaration,\n\tExportNamedDeclaration, ExportSpecifier\n} from '../api/module/export.js';\nimport {\n\tImportDeclaration, ImportDefaultSpecifier, ImportExpression,\n\tImportNamespaceSpecifier, ImportSpecifier\n} from '../api/module/import.js';\nimport {\n\tAssignmentExpression, AssignmentOperator\n} from '../api/operators/assignment.js';\nimport { AwaitExpression } from '../api/operators/await.js';\nimport { BinaryExpression, BinaryOperator } from '../api/operators/binary.js';\nimport { ChainExpression } from '../api/operators/chaining.js';\nimport { SequenceExpression } from '../api/operators/comma.js';\nimport { GroupingExpression } from '../api/operators/grouping.js';\nimport { LogicalExpression, LogicalOperator } from '../api/operators/logical.js';\nimport { PipelineExpression } from '../api/operators/pipeline.js';\nimport { ConditionalExpression } from '../api/operators/ternary.js';\nimport { UnaryExpression, UnaryOperator } from '../api/operators/unary.js';\nimport { UpdateExpression, UpdateOperator } from '../api/operators/update.js';\nimport { Program, ProgramSourceType } from '../api/program.js';\nimport { BlockStatement } from '../api/statement/control/block.js';\nimport { EmptyStatement } from '../api/statement/control/empty.js';\nimport { IfStatement } from '../api/statement/control/if.js';\nimport {\n\tDefaultExpression, SwitchCase, SwitchStatement\n} from '../api/statement/control/switch.js';\nimport {\n\tBreakStatement, ContinueStatement, LabeledStatement\n} from '../api/statement/control/terminate.js';\nimport { WithStatement } from '../api/statement/control/with.js';\nimport {\n\tVariableDeclarationNode, VariableDeclarator\n} from '../api/statement/declarations/declares.js';\nimport {\n\tForAwaitOfNode, ForDeclaration, ForInNode, ForNode, ForOfNode\n} from '../api/statement/iterations/for.js';\nimport { DoWhileNode, WhileNode } from '../api/statement/iterations/while.js';\nimport type { NodeFactory, SourcePositionFactory } from './node.js';\n\n\nexport class ExpressionNodeSourcePosition implements SourcePositionFactory {\n\tprivate newLineRegex = new RegExp('\\n', 'g');\n\n\tconstructor(private source: string) { }\n\n\tprivate getLineNumber(index: number, defaultValue: number) {\n\t\treturn this.source.substring(0, index).match(this.newLineRegex)?.length ?? defaultValue;\n\t}\n\n\tprivate getColumnNumber(index: number) {\n\t\tconst end = this.source.lastIndexOf('\\n', index);\n\t\tif (end === -1) {\n\t\t\treturn index;\n\t\t}\n\t\treturn index - end - 1;\n\t}\n\n\tpublic createSourcePosition(range?: [number, number]): SourceLocation | undefined {\n\t\tif (!range || !this.source) {\n\t\t\treturn;\n\t\t}\n\t\tconst startLine = this.getLineNumber(range[0], 1);\n\t\tconst endLine = this.getLineNumber(range[1], startLine);\n\t\tconst startColumn = this.getColumnNumber(range[0]);\n\t\tconst endColumn = this.getColumnNumber(range[1]);\n\t\treturn {\n\t\t\tstart: { line: startLine, column: startColumn },\n\t\t\tend: { line: endLine, column: endColumn },\n\t\t};\n\t}\n\n}\n\nexport class ExpressionNodeFactory implements NodeFactory {\n\n\tconstructor(private rangeFactory?: SourcePositionFactory) { }\n\n\tcreateDebuggerStatement(range?: [number, number]): DebuggerStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new DebuggerStatement(range, loc);\n\t}\n\n\tcreateSuper(range?: [number, number]): Super {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Super(range, loc);\n\t}\n\tcreateThis(range?: [number, number]): ThisExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ThisExpression(range, loc);\n\t}\n\tcreateNull(range?: [number, number]): Literal<null> {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Literal(null, undefined, undefined, undefined, range, loc);\n\t}\n\tcreateTrue(range?: [number, number]): Literal<true> {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Literal(true, undefined, undefined, undefined, range, loc);\n\t}\n\tcreateFalse(range?: [number, number]): Literal<false> {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Literal(false, undefined, undefined, undefined, range, loc);\n\t}\n\tcreateVoidZero(argument: ExpressionNode, range?: [number, number]): UnaryExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new UnaryExpression('void', argument, range, loc);\n\t}\n\tcreateEmptyStatement(range?: [number, number]): EmptyStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new EmptyStatement(range, loc);\n\t}\n\tcreateExpressionStatement(list: ExpressionNode[], range?: [number, number]): ExpressionNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ExpressionStatement(list, range, loc);\n\t}\n\tcreateCatchClause(block: BlockStatement, identifier?: ExpressionNode, range?: [number, number]): CatchClauseNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new CatchClauseNode(block, identifier, range, loc);\n\t}\n\tcreateTryStatement(tryBlock: BlockStatement, catchBlock?: ExpressionNode, finallyBlock?: ExpressionNode, range?: [number, number]): TryCatchNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new TryCatchNode(tryBlock, catchBlock, finallyBlock, range, loc);\n\t}\n\tcreateThrowStatement(exception: ExpressionNode, range?: [number, number]): ThrowStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ThrowStatement(exception, range, loc);\n\t}\n\n\tcreateBlock(statements: ExpressionNode[], range?: [number, number]): BlockStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new BlockStatement(statements, range, loc);\n\t}\n\tcreateIfStatement(condition: ExpressionNode, thenStatement: ExpressionNode, elseStatement?: ExpressionNode, range?: [number, number]): IfStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new IfStatement(condition, thenStatement, elseStatement, range, loc);\n\t}\n\tcreateDoStatement(condition: ExpressionNode, body: ExpressionNode, range?: [number, number] | undefined): DoWhileNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new DoWhileNode(condition, body, range, loc);\n\t}\n\tcreateClassDeclaration(body: ClassBody, decorators: Decorator[], id: Identifier, superClass?: ExpressionNode, range?: [number, number]): ClassDeclaration {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ClassDeclaration(body, decorators, id, superClass, range, loc);\n\t}\n\tcreateFunctionDeclaration(formals: DeclarationExpression[], bodyBlock: BlockStatement, isAsync: boolean, isGenerator: boolean, name: Identifier, range?: [number, number]): FunctionDeclaration {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new FunctionDeclaration(formals, bodyBlock, isAsync, isGenerator, name, range, loc);\n\t}\n\tcreateFunctionExpression(formals: DeclarationExpression[], bodyBlock: BlockStatement, isAsync: boolean, isGenerator: boolean, range?: [number, number]): FunctionExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new FunctionExpression(formals, bodyBlock, isAsync, isGenerator, undefined, range, loc);\n\t}\n\tcreateWhileStatement(condition: ExpressionNode, body: ExpressionNode, range?: [number, number] | undefined): WhileNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new WhileNode(condition, body, range, loc);\n\t}\n\tcreateSwitchStatement(tag: ExpressionNode, cases: SwitchCase[], range?: [number, number] | undefined): SwitchStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new SwitchStatement(tag, cases, range, loc);\n\t}\n\tcreateCaseBlock(test: ExpressionNode, block: BlockStatement, range?: [number, number] | undefined): SwitchCase {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new SwitchCase(test, block, range, loc);\n\t}\n\tcreateDefaultClause(block: BlockStatement, range?: [number, number] | undefined): DefaultExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new DefaultExpression(block, range, loc);\n\t}\n\tcreateWithStatement(object: ExpressionNode, body: ExpressionNode, range?: [number, number]): WithStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new WithStatement(object, body, range, loc);\n\t}\n\tcreateForStatement(body: ExpressionNode, initializer: ExpressionNode, cond: ExpressionNode, next: ExpressionNode, range?: [number, number] | undefined): ForNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ForNode(body, initializer, cond, next, range, loc);\n\t}\n\tcreateForOfStatement(initializer: ForDeclaration, enumerable: ExpressionNode, body: ExpressionNode, range?: [number, number] | undefined): ForOfNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ForOfNode(initializer, enumerable, body, range, loc);\n\t}\n\tcreateForAwaitOfStatement(left: ForDeclaration, right: ExpressionNode, body: ExpressionNode, range?: [number, number] | undefined): ForAwaitOfNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ForAwaitOfNode(left, right, body, range, loc);\n\t}\n\tcreateForInStatement(initializer: ForDeclaration, enumerable: ExpressionNode, body: ExpressionNode, range?: [number, number]): ForInNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ForInNode(initializer, enumerable, body, range, loc);\n\t}\n\tcreateVariableDeclaration(id: DeclarationExpression, init?: ExpressionNode, range?: [number, number]): VariableDeclarator {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new VariableDeclarator(id, init, range, loc);\n\t}\n\tcreateVariableStatement(variables: VariableDeclarator[], kind: 'let' | 'var' | 'const', range?: [number, number]): VariableDeclarationNode {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new VariableDeclarationNode(variables, kind, range, loc);\n\t}\n\tcreateContinueStatement(label?: Identifier, range?: [number, number]): ContinueStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ContinueStatement(label, range, loc);\n\t}\n\tcreateBreakStatement(label?: Identifier, range?: [number, number]): BreakStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new BreakStatement(label, range, loc);\n\t}\n\tcreateReturnStatement(argument?: ExpressionNode, range?: [number, number]): ReturnStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ReturnStatement(argument, range, loc);\n\t}\n\tcreateLabeledStatement(expression: Identifier, result: ExpressionNode, range?: [number, number]): LabeledStatement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new LabeledStatement(expression, result, range, loc);\n\t}\n\tcreateAssignmentPattern(left: DeclarationExpression, right: ExpressionNode, range?: [number, number]): AssignmentPattern {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new AssignmentPattern(left, right, range, loc);\n\t}\n\tcreateSpreadElement(argument: ExpressionNode, range?: [number, number]): SpreadElement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new SpreadElement(argument, range, loc);\n\t}\n\tcreateCommaListExpression(expressions: ExpressionNode[], range?: [number, number] | undefined): SequenceExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new SequenceExpression(expressions, range, loc);\n\t}\n\tcreateTemplateExpression(quasis: string[], expressions: ExpressionNode[], range?: [number, number]): TemplateLiteral {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new TemplateLiteral(quasis, expressions, range, loc);\n\t}\n\tcreateTaggedTemplateExpression(tag: ExpressionNode, quasis: string[], expressions: ExpressionNode[], range?: [number, number]): TaggedTemplateExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new TaggedTemplateExpression(tag, quasis, expressions, range, loc);\n\t}\n\tcreateNewExpression(className: ExpressionNode, parameters?: ExpressionNode[], range?: [number, number]): NewExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new NewExpression(className, parameters, range, loc);\n\t}\n\tcreateObjectBindingPattern(properties: (Property | RestElement)[], range?: [number, number] | undefined): ObjectPattern {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ObjectPattern(properties, range, loc);\n\t}\n\tcreateObjectLiteralExpression(properties: Property[], range?: [number, number]): ObjectExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ObjectExpression(properties, range, loc);\n\t}\n\tcreateArrayBindingPattern(elements: (DeclarationExpression | null)[], range?: [number, number]): ArrayPattern {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ArrayPattern(elements, range, loc);\n\t}\n\tcreateArrayLiteralExpression(elements: (ExpressionNode | SpreadElement | null)[], range?: [number, number]): ArrayExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ArrayExpression(elements, range, loc);\n\t}\n\tcreateAssignment(operator: AssignmentOperator, left: ExpressionNode, right: ExpressionNode, range?: [number, number]): AssignmentExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new AssignmentExpression(operator, left, right, range, loc);\n\t}\n\tcreateRestElement(argument: DeclarationExpression, range?: [number, number]): RestElement {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new RestElement(argument, range, loc);\n\t}\n\tcreateArrowFunction(params: DeclarationExpression[], body: ExpressionNode | ExpressionNode[], expression: boolean, async: boolean, range?: [number, number]): ArrowFunctionExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ArrowFunctionExpression(params, body, expression, async, range, loc);\n\t}\n\tcreatePropertyDeclaration(key: ExpressionNode, value: DeclarationExpression | ExpressionNode, kind: 'init' | 'get' | 'set', method: boolean, shorthand: boolean, computed: boolean, range?: [number, number]): Property {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Property(key, value, kind, method, shorthand, computed, range, loc);\n\t}\n\tcreateIdentifier(name: string, range?: [number, number]): Identifier {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Identifier(name, range, loc);\n\t}\n\tcreatePropertyAssignment(object: ExpressionNode, property: ExpressionNode, computed: boolean, optional?: boolean, range?: [number, number]): MemberExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new MemberExpression(object, property, computed, optional, range, loc);\n\t}\n\tcreatePipelineExpression(left: ExpressionNode, right: ExpressionNode, params?: (ExpressionNode | '?' | '...?')[], range?: [number, number]): PipelineExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new PipelineExpression(left, right, params, range, loc);\n\t}\n\tcreateCallExpression(callee: ExpressionNode, params: ExpressionNode[], optional?: boolean, range?: [number, number]): CallExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new CallExpression(callee, params, optional, range, loc);\n\t}\n\tcreateBindExpression(object: ExpressionNode, property: ExpressionNode, computed: boolean, optional?: boolean, range?: [number, number]): BindExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new BindExpression(object, property, computed, optional, range, loc);\n\t}\n\tcreateChainExpression(expression: ExpressionNode, range?: [number, number]): ChainExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ChainExpression(expression, range, loc);\n\t}\n\tcreateLogicalExpression(operator: LogicalOperator, left: ExpressionNode, right: ExpressionNode, range?: [number, number],): LogicalExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new LogicalExpression(operator, left, right, range, loc);\n\t}\n\tcreateConditionalExpression(test: ExpressionNode, alternate: ExpressionNode, consequent: ExpressionNode, range?: [number, number]): ConditionalExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ConditionalExpression(test, alternate, consequent, range, loc);\n\t}\n\tcreateYieldExpression(delegate: boolean, argument?: ExpressionNode, range?: [number, number]): YieldExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new YieldExpression(delegate, argument, range, loc);\n\t}\n\tcreateMetaProperty(meta: Identifier, property: Identifier, range?: [number, number]): MetaProperty {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new MetaProperty(meta, property, range, loc);\n\t}\n\tcreateProgram(sourceType: ProgramSourceType, body: ExpressionNode[], range?: [number, number]): Program {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new Program(sourceType, body, range, loc);\n\t}\n\tcreateClassExpression(body: ClassBody, decorators: Decorator[], id?: Identifier, superClass?: ExpressionNode, range?: [number, number]): ClassExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ClassExpression(body, decorators, id, superClass, range, loc);\n\t}\n\tcreateClassStaticBlockDeclaration(body: ExpressionNode[], range?: [number, number]): StaticBlock {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new StaticBlock(body, range, loc);\n\t}\n\tcreateMethodSignature(kind: MethodDefinitionKind, key: ExpressionNode | PrivateIdentifier, value: FunctionExpression, decorators: Decorator[], computed: boolean, isStatic: boolean, range?: [number, number]): MethodDefinition {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new MethodDefinition(kind, key, value, decorators, computed, isStatic, range, loc);\n\t}\n\tcreatePropertySignature(key: ExpressionNode | PrivateIdentifier, decorators: Decorator[], computed: boolean, isStatic: boolean, value?: ExpressionNode, range?: [number, number]): PropertyDefinition {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new PropertyDefinition(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tcreateClassBody(body: (MethodDefinition | PropertyDefinition | AccessorProperty | StaticBlock)[], range?: [number, number]): ClassBody {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ClassBody(body, range, loc);\n\t}\n\tcreateNamespaceExportDeclaration(specifiers: ExportSpecifier[], declaration?: DeclarationExpression, source?: Literal<string>, assertions?: ImportAttribute[], range?: [number, number]): ExportNamedDeclaration {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ExportNamedDeclaration(specifiers, declaration, source, assertions, range, loc);\n\t}\n\tcreateExportSpecifier(local: Identifier, exported: Identifier, range?: [number, number]): ExportSpecifier {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ExportSpecifier(local, exported, range, loc);\n\t}\n\tcreateImportSpecifier(local: Identifier, imported: Identifier, range?: [number, number]): ImportSpecifier {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ImportSpecifier(local, imported, range, loc);\n\t}\n\tcreateImportDeclaration(source: Literal<string>, specifiers?: (ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[], assertions?: ImportAttribute[], range?: [number, number]): ImportDeclaration {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ImportDeclaration(source, specifiers, assertions, range, loc);\n\t}\n\tcreateImportNamespaceSpecifier(local: Identifier, range?: [number, number]): ImportNamespaceSpecifier {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ImportNamespaceSpecifier(local, range, loc);\n\t}\n\tcreateImportDefaultSpecifier(local: Identifier, range?: [number, number]): ImportDefaultSpecifier {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ImportDefaultSpecifier(local, range, loc);\n\t}\n\tcreateImportExpression(source: Literal<string>, attributes?: ExpressionNode, range?: [number, number]): ImportExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ImportExpression(source, attributes, range, loc);\n\t}\n\tcreateAssertEntry(key: Identifier | Literal<string>, value: Literal<string>, range?: [number, number]): ImportAttribute {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ImportAttribute(key, value, range, loc);\n\t}\n\tcreateExportDefault(declaration: FunctionDeclaration | ClassDeclaration | ExpressionNode, range?: [number, number],): ExportDefaultDeclaration {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ExportDefaultDeclaration(declaration, range, loc);\n\t}\n\tcreateExportAllDeclaration(source: Literal<string>, exported?: Identifier, assertions?: ImportAttribute[], range?: [number, number]): ExportAllDeclaration {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new ExportAllDeclaration(source, exported, assertions, range, loc);\n\t}\n\tcreateInfixExpression(op: AssignmentOperator | LogicalOperator | BinaryOperator, left: ExpressionNode, right: ExpressionNode, range?: [number, number]): AssignmentExpression | LogicalExpression | BinaryExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\tswitch (op) {\n\t\t\tcase '=':\n\t\t\tcase '+=':\n\t\t\tcase '-=':\n\t\t\tcase '**=':\n\t\t\tcase '/=':\n\t\t\tcase '%=':\n\t\t\tcase '<<=':\n\t\t\tcase '>>=':\n\t\t\tcase '>>>=':\n\t\t\tcase '&=':\n\t\t\tcase '^=':\n\t\t\tcase '|=':\n\t\t\tcase '&&=':\n\t\t\tcase '||=':\n\t\t\tcase '??=':\n\t\t\t\treturn new AssignmentExpression(op, left, right, range, loc);\n\t\t\tcase '&&':\n\t\t\tcase '||':\n\t\t\tcase '??':\n\t\t\t\treturn new LogicalExpression(op, left, right, range, loc);\n\t\t\tcase '**':\n\t\t\tcase '*':\n\t\t\tcase '/':\n\t\t\tcase '%':\n\t\t\tcase '+':\n\t\t\tcase '-':\n\t\t\tcase '<':\n\t\t\tcase '<=':\n\t\t\tcase '>':\n\t\t\tcase '>=':\n\t\t\tcase 'in':\n\t\t\tcase 'instanceof':\n\t\t\tcase '==':\n\t\t\tcase '!=':\n\t\t\tcase '===':\n\t\t\tcase '!==':\n\t\t\tcase '<<':\n\t\t\tcase '>>':\n\t\t\tcase '>>>':\n\t\t\tcase '&':\n\t\t\tcase '^':\n\t\t\tcase '|':\n\t\t\tcase '>?':\n\t\t\tcase '<?':\n\t\t\tcase '<=>':\n\t\t\t\treturn new BinaryExpression(op, left, right, range, loc);\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Not Supported Operator: ${op}`);\n\t\t}\n\t}\n\tcreateUnaryExpression(operator: UpdateOperator | UnaryOperator | 'await', expression: ExpressionNode, range?: [number, number]): UpdateExpression | UnaryExpression | AwaitExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\tswitch (operator) {\n\t\t\tcase '++':\n\t\t\tcase '--':\n\t\t\t\treturn new UpdateExpression(operator, expression, true);\n\t\t\tcase '+':\n\t\t\tcase '-':\n\t\t\tcase '!':\n\t\t\tcase '~':\n\t\t\tcase 'typeof':\n\t\t\tcase 'void':\n\t\t\tcase 'delete':\n\t\t\t\treturn new UnaryExpression(operator, expression);\n\t\t\tcase 'await':\n\t\t\t\treturn new AwaitExpression(expression);\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`${operator} is not prefix operator`);\n\t\t}\n\t}\n\tcreateUpdateExpression(operator: UpdateOperator, argument: ExpressionNode, prefix: boolean, range?: [number, number]): UpdateExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new UpdateExpression(operator, argument, prefix, range, loc);\n\t}\n\tcreateAwaitExpression(argument: ExpressionNode, range?: [number, number]): AwaitExpression {\n\t\tconst loc = this.rangeFactory?.createSourcePosition(range);\n\t\treturn new AwaitExpression(argument, range, loc);\n\t}\n\tisIdentifier(node?: ExpressionNode): node is Identifier {\n\t\treturn node instanceof Identifier || node?.type === 'Identifier';\n\t}\n\tisObjectExpression(node?: ExpressionNode): node is ObjectExpression {\n\t\treturn node instanceof ObjectExpression || node?.type === 'ObjectExpression';\n\t}\n\tisArrayExpression(node?: ExpressionNode): node is ArrayExpression {\n\t\treturn node instanceof ArrayExpression || node?.type === 'ArrayExpression';\n\t}\n\tisObjectPattern(node?: ExpressionNode): node is ObjectPattern {\n\t\treturn node instanceof ObjectPattern || node?.type === 'ObjectPattern';\n\t}\n\tisArrayPattern(node?: ExpressionNode): node is ArrayPattern {\n\t\treturn node instanceof ArrayPattern || node?.type === 'ArrayPattern';\n\t}\n\tisAssignmentPattern(node?: ExpressionNode): node is AssignmentPattern {\n\t\treturn node instanceof AssignmentPattern || node?.type === 'AssignmentPattern';\n\t}\n\tisPattern(node?: ExpressionNode): boolean {\n\t\treturn this.isObjectPattern(node) || this.isArrayPattern(node) || this.isAssignmentPattern(node);\n\t}\n\tcanBePattern(node?: ExpressionNode): node is (ObjectExpression | ArrayExpression) {\n\t\treturn this.isObjectExpression(node) || this.isArrayExpression(node);\n\t}\n\tisProperty(node?: ExpressionNode): node is Property {\n\t\treturn node instanceof Property || node?.type === 'Property';\n\t}\n\tisMemberExpression(node?: ExpressionNode): node is MemberExpression {\n\t\treturn node instanceof MemberExpression || node?.type === 'MemberExpression';\n\t}\n\tisPropertyOrMemberExpression(node?: ExpressionNode): node is (Property | MemberExpression) {\n\t\treturn this.isProperty(node) || this.isMemberExpression(node);\n\t}\n\tisEmptyStatement(node: ExpressionNode): node is EmptyStatement {\n\t\treturn node instanceof EmptyStatement || node?.type === 'EmptyStatement';\n\t}\n\tisSequenceExpression(node: ExpressionNode): node is SequenceExpression {\n\t\treturn node instanceof SequenceExpression || node?.type === 'SequenceExpression';\n\t}\n\tisSuper(node: ExpressionNode): node is Super {\n\t\treturn node instanceof Super || node?.type === 'Super';\n\t}\n\tisAssignmentExpression(node: ExpressionNode): node is AssignmentExpression {\n\t\treturn node instanceof AssignmentExpression || node?.type === 'AssignmentExpression';\n\t}\n\tisGroupingExpression(node: ExpressionNode): node is GroupingExpression {\n\t\treturn node instanceof GroupingExpression || node?.type === 'GroupingExpression';\n\t}\n\tisSpreadElement(node: ExpressionNode): node is SpreadElement {\n\t\treturn node instanceof SpreadElement || node?.type === 'SpreadElement';\n\t}\n\n}\n"]}
|
package/v8/inline.d.ts
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import type { ExpressionNode } from '../api/expression.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { DeclarationExpression, ExpressionNode } from '../api/expression.js';
|
|
2
|
+
import type { NodeFactory } from './node.js';
|
|
3
|
+
import { ClassDeclaration, ClassExpression } from '../api/class/class.js';
|
|
4
|
+
import { FunctionDeclaration, FunctionExpression } from '../api/definition/function.js';
|
|
4
5
|
import { Identifier, TaggedTemplateExpression, TemplateLiteral } from '../api/definition/values.js';
|
|
5
|
-
import { EmptyStatement } from '../api/statement/control/empty.js';
|
|
6
6
|
import { BlockStatement } from '../api/statement/control/block.js';
|
|
7
|
-
import { Param, FunctionExpression, FunctionDeclaration } from '../api/definition/function.js';
|
|
8
|
-
import { NewExpression } from '../api/computing/new.js';
|
|
9
|
-
import { MemberExpression } from '../api/definition/member.js';
|
|
10
|
-
import { ObjectExpression, Property } from '../api/definition/object.js';
|
|
11
|
-
import { ArrayExpression, ArrayPattern } from '../api/definition/array.js';
|
|
12
|
-
import { CallExpression } from '../api/computing/call.js';
|
|
13
7
|
import { VariableDeclarationNode } from '../api/statement/declarations/declares.js';
|
|
14
|
-
import { ForNode, ForOfNode, ForInNode, ForAwaitOfNode } from '../api/statement/iterations/for.js';
|
|
15
|
-
import { ClassDeclaration, ClassExpression } from '../api/class/class.js';
|
|
16
8
|
import { AllowLabelledFunctionStatement, FunctionBodyType, FunctionInfo, FunctionKind, FunctionSyntaxKind, ParseFunctionFlag, ParsingArrowHeadFlag, PropertyKindInfo, VariableDeclarationContext } from './enums.js';
|
|
17
|
-
import {
|
|
9
|
+
import { TokenStream } from './stream.js';
|
|
10
|
+
import { Token, TokenExpression } from './token.js';
|
|
18
11
|
import { LanguageMode } from './language.js';
|
|
19
|
-
export
|
|
12
|
+
export type InlineParserOptions = {
|
|
20
13
|
mode?: LanguageMode;
|
|
21
14
|
acceptIN?: boolean;
|
|
15
|
+
factory?: NodeFactory;
|
|
16
|
+
addLocation?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type Range = [number, number];
|
|
19
|
+
export type RangeOrVoid = Range | undefined;
|
|
20
|
+
export type PositionMark = {
|
|
21
|
+
range?: Range;
|
|
22
22
|
};
|
|
23
23
|
export declare abstract class AbstractParser {
|
|
24
24
|
protected scanner: TokenStream;
|
|
25
|
+
protected factory: NodeFactory;
|
|
25
26
|
protected acceptIN: boolean;
|
|
26
27
|
protected previousAcceptIN: boolean[];
|
|
27
28
|
protected functionKind: FunctionKind;
|
|
28
29
|
protected previousFunctionKind: FunctionKind[];
|
|
29
30
|
get languageMode(): LanguageMode;
|
|
30
31
|
set languageMode(mode: LanguageMode);
|
|
31
|
-
constructor(scanner: TokenStream, acceptIN?: boolean);
|
|
32
|
+
constructor(scanner: TokenStream, factory: NodeFactory, acceptIN?: boolean);
|
|
32
33
|
abstract scan(): ExpressionNode;
|
|
33
34
|
protected position(): number;
|
|
34
35
|
protected setAcceptIN(acceptIN: boolean): void;
|
|
@@ -44,28 +45,28 @@ export declare abstract class AbstractParser {
|
|
|
44
45
|
protected peekAhead(): TokenExpression;
|
|
45
46
|
protected peekAheadPosition(): number;
|
|
46
47
|
protected peekPosition(): number;
|
|
47
|
-
protected
|
|
48
|
+
protected createRange(): undefined;
|
|
49
|
+
protected createRange(start: Required<PositionMark>): Range;
|
|
50
|
+
protected createRange(start?: PositionMark): RangeOrVoid;
|
|
51
|
+
protected createRangeByStart(start: Required<PositionMark>): Range;
|
|
52
|
+
protected createStartPosition(): Range;
|
|
53
|
+
protected updateRangeEnd(range: Range): void;
|
|
54
|
+
protected consume(token: Token): TokenExpression;
|
|
48
55
|
protected check(token: Token): boolean;
|
|
49
56
|
protected checkAndGetValue(token: Token): ExpressionNode | undefined;
|
|
50
57
|
protected checkValue(value: ExpressionNode): boolean;
|
|
51
|
-
protected expect(token: Token):
|
|
58
|
+
protected expect(token: Token): TokenExpression;
|
|
52
59
|
protected expectAndGetValue(token: Token): ExpressionNode;
|
|
53
60
|
protected checkInOrOf(): 'IN' | 'OF' | false;
|
|
54
61
|
protected peekInOrOf(): 'IN' | 'OF' | false;
|
|
55
|
-
protected isArguments(
|
|
56
|
-
protected isEval(
|
|
57
|
-
protected isEvalOrArguments(
|
|
62
|
+
protected isArguments(node: ExpressionNode): boolean;
|
|
63
|
+
protected isEval(node: ExpressionNode): boolean;
|
|
64
|
+
protected isEvalOrArguments(node: ExpressionNode): boolean;
|
|
58
65
|
protected isNextLetKeyword(): boolean;
|
|
59
|
-
protected isIdentifier(expression: ExpressionNode): expression is Identifier;
|
|
60
66
|
protected markParenthesized(expression: ExpressionNode): void;
|
|
61
67
|
protected clearParenthesized(expression: ExpressionNode): void;
|
|
62
68
|
protected isParenthesized(expression: ExpressionNode): boolean;
|
|
63
69
|
protected isAssignableIdentifier(expression: ExpressionNode): boolean;
|
|
64
|
-
protected isPattern(expression: ExpressionNode): expression is (ObjectExpression | ArrayExpression);
|
|
65
|
-
protected isProperty(expression: ExpressionNode): expression is Property | MemberExpression;
|
|
66
|
-
protected isCallNew(expression: ExpressionNode): expression is NewExpression;
|
|
67
|
-
protected isCall(expression: ExpressionNode): expression is CallExpression;
|
|
68
|
-
protected isEmptyStatement(expression: ExpressionNode): expression is EmptyStatement;
|
|
69
70
|
protected isValidReferenceExpression(expression: ExpressionNode): boolean;
|
|
70
71
|
protected expectSemicolon(): void;
|
|
71
72
|
protected peekAnyIdentifier(): boolean;
|
|
@@ -85,8 +86,8 @@ export declare abstract class AbstractParser {
|
|
|
85
86
|
protected reportErrorMessage(message: string): void;
|
|
86
87
|
}
|
|
87
88
|
export declare class JavaScriptInlineParser extends AbstractParser {
|
|
88
|
-
static parse(source: string | TokenExpression[] | TokenStream, { mode, acceptIN }?: InlineParserOptions): ExpressionNode;
|
|
89
|
-
constructor(scanner: TokenStream, acceptIN?: boolean);
|
|
89
|
+
static parse(source: string | TokenExpression[] | TokenStream, { mode, acceptIN, factory, addLocation }?: InlineParserOptions): ExpressionNode;
|
|
90
|
+
constructor(scanner: TokenStream, factory: NodeFactory, acceptIN?: boolean);
|
|
90
91
|
scan(): ExpressionNode;
|
|
91
92
|
/**
|
|
92
93
|
* Statement ::
|
|
@@ -107,7 +108,7 @@ export declare class JavaScriptInlineParser extends AbstractParser {
|
|
|
107
108
|
* DebuggerStatement
|
|
108
109
|
*/
|
|
109
110
|
protected parseStatement(allowFunction?: AllowLabelledFunctionStatement): ExpressionNode;
|
|
110
|
-
protected parseDebuggerStatement(): DebuggerStatement;
|
|
111
|
+
protected parseDebuggerStatement(): import("../index.js").DebuggerStatement;
|
|
111
112
|
protected parseTryStatement(): ExpressionNode;
|
|
112
113
|
protected parseNonRestrictedIdentifier(): Identifier;
|
|
113
114
|
protected parseBlock(): BlockStatement;
|
|
@@ -131,19 +132,19 @@ export declare class JavaScriptInlineParser extends AbstractParser {
|
|
|
131
132
|
*/
|
|
132
133
|
protected parseStatementListItem(): ExpressionNode | undefined;
|
|
133
134
|
protected parseFunctionExpression(): FunctionExpression | FunctionDeclaration;
|
|
134
|
-
protected parseAsyncFunctionDeclaration(names: string[] | undefined, defaultExport: boolean): FunctionDeclaration;
|
|
135
|
+
protected parseAsyncFunctionDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionDeclaration;
|
|
135
136
|
protected parseIfStatement(): ExpressionNode;
|
|
136
137
|
protected parseScopedStatement(): ExpressionNode;
|
|
137
138
|
protected parseDoWhileStatement(): ExpressionNode;
|
|
138
|
-
protected parseWhileStatement():
|
|
139
|
+
protected parseWhileStatement(): import("../index.js").WhileNode;
|
|
139
140
|
protected parseThrowStatement(): ExpressionNode;
|
|
140
141
|
protected parseSwitchStatement(): ExpressionNode;
|
|
141
|
-
protected parseForStatement(): ForNode | ForOfNode | ForInNode;
|
|
142
|
-
protected parseStandardForLoopWithLexicalDeclarations(initializer: VariableDeclarationNode): ForNode;
|
|
143
|
-
protected parseForEachStatementWithDeclarations(initializer: VariableDeclarationNode, forMode: 'IN' | 'OF'): ForOfNode | ForInNode;
|
|
144
|
-
protected parseForEachStatementWithoutDeclarations(initializer: ExpressionNode, forMode: 'IN' | 'OF'): ForOfNode | ForInNode;
|
|
145
|
-
protected parseStandardForLoop(initializer: ExpressionNode): ForNode;
|
|
146
|
-
protected parseForAwaitStatement(): ForAwaitOfNode;
|
|
142
|
+
protected parseForStatement(): import("../api/statement/iterations/for.js").ForNode | import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode;
|
|
143
|
+
protected parseStandardForLoopWithLexicalDeclarations(initializer: VariableDeclarationNode, start: PositionMark): import("../api/statement/iterations/for.js").ForNode;
|
|
144
|
+
protected parseForEachStatementWithDeclarations(initializer: VariableDeclarationNode, forMode: 'IN' | 'OF', start: PositionMark): import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode;
|
|
145
|
+
protected parseForEachStatementWithoutDeclarations(initializer: ExpressionNode, forMode: 'IN' | 'OF', start: PositionMark): import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode;
|
|
146
|
+
protected parseStandardForLoop(initializer: ExpressionNode, start: PositionMark): import("../api/statement/iterations/for.js").ForNode;
|
|
147
|
+
protected parseForAwaitStatement(): import("../api/statement/iterations/for.js").ForAwaitOfNode;
|
|
147
148
|
protected parseVariableDeclarations(varContext: VariableDeclarationContext): VariableDeclarationNode;
|
|
148
149
|
protected parseBindingPattern(isPattern: boolean): ExpressionNode;
|
|
149
150
|
protected parseAndClassifyIdentifier(next: TokenExpression): ExpressionNode;
|
|
@@ -154,36 +155,34 @@ export declare class JavaScriptInlineParser extends AbstractParser {
|
|
|
154
155
|
protected parseExpression(): ExpressionNode;
|
|
155
156
|
protected parseFunctionDeclaration(): FunctionDeclaration;
|
|
156
157
|
protected parseAsyncFunctionLiteral(): FunctionExpression | FunctionDeclaration;
|
|
157
|
-
protected parseHoistableDeclaration(names: string[] | undefined, defaultExport: boolean): FunctionExpression | FunctionDeclaration;
|
|
158
|
-
protected parseHoistableDeclaration01(flag: FunctionKind, names: string[] | undefined, defaultExport: boolean): FunctionExpression | FunctionDeclaration;
|
|
158
|
+
protected parseHoistableDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionExpression | FunctionDeclaration;
|
|
159
|
+
protected parseHoistableDeclaration01(flag: FunctionKind, names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionExpression | FunctionDeclaration;
|
|
159
160
|
protected parseIdentifier(kind?: FunctionKind): Identifier;
|
|
160
161
|
protected getIdentifier(): Identifier;
|
|
161
|
-
protected parseFunctionLiteral(flag: FunctionKind, functionSyntaxKind: FunctionSyntaxKind, name
|
|
162
|
+
protected parseFunctionLiteral(flag: FunctionKind, functionSyntaxKind: FunctionSyntaxKind, name: Identifier | undefined, start: PositionMark): FunctionDeclaration | FunctionExpression;
|
|
162
163
|
protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.BLOCK, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode[];
|
|
163
164
|
protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.EXPRESSION, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode;
|
|
164
165
|
protected parseAndRewriteAsyncGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[];
|
|
165
166
|
protected parseAndRewriteGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[];
|
|
166
167
|
protected parseAsyncFunctionBody(): ExpressionNode[];
|
|
167
168
|
protected parseStatementList(endToken: Token): ExpressionNode[];
|
|
168
|
-
protected parseFormalParameterList(functionInfo: FunctionInfo):
|
|
169
|
-
protected parseFormalParameter(functionInfo: FunctionInfo):
|
|
169
|
+
protected parseFormalParameterList(functionInfo: FunctionInfo): DeclarationExpression[];
|
|
170
|
+
protected parseFormalParameter(functionInfo: FunctionInfo): DeclarationExpression;
|
|
170
171
|
protected parseExpressionCoverGrammar(): ExpressionNode;
|
|
171
172
|
protected parseArrowParametersWithRest(list: ExpressionNode[]): ExpressionNode;
|
|
172
173
|
protected expressionListToExpression(list: ExpressionNode[]): ExpressionNode;
|
|
173
174
|
protected parseMemberExpression(): ExpressionNode;
|
|
174
|
-
protected toParamNode(expression: ExpressionNode): Param;
|
|
175
175
|
protected parsePrimaryExpression(): ExpressionNode;
|
|
176
176
|
protected parseTemplateLiteral(tag?: ExpressionNode): ExpressionNode;
|
|
177
|
-
protected createTemplateLiteralExpressionNode(strings: string[], expressions: ExpressionNode[], tag?: ExpressionNode): TaggedTemplateExpression | TemplateLiteral;
|
|
177
|
+
protected createTemplateLiteralExpressionNode(strings: string[], expressions: ExpressionNode[], tag?: ExpressionNode, range?: RangeOrVoid): TaggedTemplateExpression | TemplateLiteral;
|
|
178
178
|
protected parseMemberWithPresentNewPrefixesExpression(): ExpressionNode;
|
|
179
179
|
protected parseArguments(maybeArrow?: ParsingArrowHeadFlag): ExpressionNode[];
|
|
180
180
|
protected parseAssignmentExpressionCoverGrammar(): ExpressionNode;
|
|
181
181
|
protected parseAssignmentExpression(): ExpressionNode;
|
|
182
182
|
private checkParamType;
|
|
183
|
-
|
|
184
|
-
protected parseArrowFunctionLiteral(parameters: Param[], kind: FunctionKind): ExpressionNode;
|
|
183
|
+
protected parseArrowFunctionLiteral(parameters: DeclarationExpression[], kind: FunctionKind, range: Range): ExpressionNode;
|
|
185
184
|
protected parseRegExpLiteral(): ExpressionNode;
|
|
186
|
-
protected parseArrayLiteral(isPattern: boolean): ArrayExpression | ArrayPattern;
|
|
185
|
+
protected parseArrayLiteral(isPattern: boolean): import("../index.js").ArrayExpression | import("../index.js").ArrayPattern;
|
|
187
186
|
protected parsePossibleDestructuringSubPattern(): ExpressionNode;
|
|
188
187
|
protected parseObjectLiteral(isPattern: boolean): ExpressionNode;
|
|
189
188
|
protected parseObjectPropertyDefinition(isPattern: boolean): ExpressionNode;
|
|
@@ -207,10 +206,11 @@ export declare class JavaScriptInlineParser extends AbstractParser {
|
|
|
207
206
|
protected parseNullishExpression(expression: ExpressionNode): ExpressionNode;
|
|
208
207
|
protected parseConditionalContinuation(expression: ExpressionNode): ExpressionNode;
|
|
209
208
|
protected parseYieldExpression(): ExpressionNode;
|
|
210
|
-
protected parseNewTargetExpression(): ExpressionNode;
|
|
209
|
+
protected parseNewTargetExpression(start?: PositionMark): ExpressionNode;
|
|
211
210
|
protected parseClassExpression(): ClassExpression;
|
|
212
|
-
protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean): ClassDeclaration;
|
|
211
|
+
protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): ClassDeclaration;
|
|
213
212
|
protected parseClassLiteral(name: ExpressionNode | undefined, isStrictReserved: boolean): ExpressionNode;
|
|
214
213
|
protected parseSuperExpression(): ExpressionNode;
|
|
215
214
|
protected parseImportExpressions(): ExpressionNode;
|
|
215
|
+
protected parseWithStatement(): ExpressionNode;
|
|
216
216
|
}
|