@ibyar/expressions 0.5.4 → 0.6.0
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/LICENSE +1 -1
- package/README.md +1 -0
- package/api/abstract.d.ts +3 -3
- package/api/abstract.js +7 -2
- package/api/abstract.js.map +1 -1
- package/api/class/class.d.ts +45 -24
- package/api/class/class.js +158 -112
- package/api/class/class.js.map +1 -1
- package/api/computing/debugger.d.ts +15 -0
- package/api/computing/debugger.js +35 -0
- package/api/computing/debugger.js.map +1 -0
- package/api/computing/rest.d.ts +4 -4
- package/api/computing/rest.js.map +1 -1
- package/api/computing/return.d.ts +4 -0
- package/api/computing/return.js +5 -0
- package/api/computing/return.js.map +1 -1
- package/api/computing/throw.d.ts +4 -0
- package/api/computing/throw.js +4 -0
- package/api/computing/throw.js.map +1 -1
- package/api/definition/array.d.ts +7 -6
- package/api/definition/array.js +20 -14
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.d.ts +6 -0
- package/api/definition/bind.js +6 -0
- package/api/definition/bind.js.map +1 -1
- package/api/definition/function.d.ts +35 -46
- package/api/definition/function.js +282 -299
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.d.ts +9 -6
- package/api/definition/object.js +35 -5
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.js +5 -1
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.d.ts +43 -50
- package/api/definition/values.js +84 -149
- package/api/definition/values.js.map +1 -1
- package/api/deserialize/deserialize.d.ts +7 -1
- package/api/deserialize/deserialize.js +9 -1
- package/api/deserialize/deserialize.js.map +1 -1
- package/api/deserialize/type-store.d.ts +2 -2
- package/api/deserialize/type-store.js.map +1 -1
- package/api/expression.d.ts +156 -12
- package/api/expression.js.map +1 -1
- package/api/index.d.ts +2 -0
- package/api/index.js +2 -0
- package/api/index.js.map +1 -1
- package/api/module/common.d.ts +29 -0
- package/api/module/common.js +71 -0
- package/api/module/common.js.map +1 -0
- package/api/module/export.d.ts +78 -9
- package/api/module/export.js +120 -15
- package/api/module/export.js.map +1 -1
- package/api/module/import.d.ts +56 -8
- package/api/module/import.js +62 -19
- package/api/module/import.js.map +1 -1
- package/api/operators/grouping.d.ts +7 -0
- package/api/operators/grouping.js +7 -0
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/pipeline.d.ts +12 -0
- package/api/operators/pipeline.js +12 -0
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/unary.js +3 -0
- package/api/operators/unary.js.map +1 -1
- package/api/{module/app/program.d.ts → program.d.ts} +5 -5
- package/api/{module/app/program.js → program.js} +3 -3
- package/api/program.js.map +1 -0
- package/api/statement/control/block.d.ts +5 -2
- package/api/statement/control/block.js +24 -21
- package/api/statement/control/block.js.map +1 -1
- package/api/statement/control/empty.d.ts +7 -0
- package/api/statement/control/empty.js +7 -0
- package/api/statement/control/empty.js.map +1 -1
- package/api/statement/control/if.d.ts +5 -0
- package/api/statement/control/if.js +5 -0
- package/api/statement/control/if.js.map +1 -1
- package/api/statement/control/switch.d.ts +6 -0
- package/api/statement/control/switch.js +17 -3
- package/api/statement/control/switch.js.map +1 -1
- package/api/statement/control/terminate.d.ts +44 -11
- package/api/statement/control/terminate.js +87 -18
- package/api/statement/control/terminate.js.map +1 -1
- package/api/statement/declarations/declares.d.ts +7 -7
- package/api/statement/declarations/declares.js +1 -1
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.d.ts +5 -0
- package/api/statement/iterations/for.js +35 -16
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.d.ts +6 -0
- package/api/statement/iterations/while.js +25 -11
- package/api/statement/iterations/while.js.map +1 -1
- package/api/utils.d.ts +2 -0
- package/api/utils.js +3 -1
- package/api/utils.js.map +1 -1
- package/package.json +7 -5
- package/scope/event.d.ts +3 -3
- package/scope/event.js +2 -2
- package/scope/event.js.map +1 -1
- package/scope/pool.d.ts +7 -0
- package/scope/pool.js +29 -0
- package/scope/pool.js.map +1 -0
- package/scope/proxy.d.ts +6 -11
- package/scope/proxy.js +23 -52
- package/scope/proxy.js.map +1 -1
- package/scope/scope.d.ts +161 -38
- package/scope/scope.js +260 -106
- package/scope/scope.js.map +1 -1
- package/scope/stack.d.ts +97 -21
- package/scope/stack.js +13 -0
- package/scope/stack.js.map +1 -1
- package/v8/enums.d.ts +204 -0
- package/v8/enums.js +406 -0
- package/v8/enums.js.map +1 -0
- package/v8/index.d.ts +2 -1
- package/v8/index.js +2 -1
- package/v8/index.js.map +1 -1
- package/v8/inline.d.ts +213 -0
- package/v8/inline.js +2375 -0
- package/v8/inline.js.map +1 -0
- package/v8/nodes.d.ts +8 -7
- package/v8/nodes.js +39 -64
- package/v8/nodes.js.map +1 -1
- package/v8/parser.d.ts +49 -151
- package/v8/parser.js +839 -1608
- package/v8/parser.js.map +1 -1
- package/v8/stream.d.ts +39 -3
- package/v8/stream.js +685 -171
- package/v8/stream.js.map +1 -1
- package/v8/token.d.ts +244 -9
- package/v8/token.js +315 -47
- package/v8/token.js.map +1 -1
- package/visit/visitor.d.ts +3 -0
- package/visit/visitor.js.map +1 -1
- package/api/module/app/program.js.map +0 -1
- package/v8/app.d.ts +0 -0
- package/v8/app.js +0 -2
- package/v8/app.js.map +0 -1
package/v8/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/expressions/v8/nodes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExpressionNode } from '../api/expression.js';\nimport type { Stack } from '../scope/stack.js';\nimport { Token, TokenExpression } from './token.js';\nimport { AssignmentExpression } from '../api/operators/assignment.js';\nimport { LogicalExpression } from '../api/operators/logical.js';\nimport { UnaryExpression } from '../api/operators/unary.js';\nimport { ConditionalExpression } from '../api/operators/ternary.js';\nimport { SequenceExpression } from '../api/operators/comma.js';\nimport {\n\tLiteral, BigIntLiteral, NumberLiteral,\n\tBooleanLiteral, TrueNode, FalseNode,\n\tNullNode, StringLiteral, UndefinedNode\n} from '../api/definition/values.js';\nimport { AwaitExpression } from '../api/operators/await.js';\nimport { UpdateExpression } from '../api/operators/update.js';\nimport { BinaryExpression } from '../api/operators/binary.js';\n\nexport function creteInfixExpression(op: string, left: ExpressionNode, right: ExpressionNode): ExpressionNode {\n\tswitch (op) {\n\t\tcase '=':\n\t\tcase '+=':\n\t\tcase '-=':\n\t\tcase '**=':\n\t\tcase '/=':\n\t\tcase '%=':\n\t\tcase '<<=':\n\t\tcase '>>=':\n\t\tcase '>>>=':\n\t\tcase '&=':\n\t\tcase '^=':\n\t\tcase '|=':\n\t\tcase '&&=':\n\t\tcase '||=':\n\t\tcase '??=':\n\t\t\treturn new AssignmentExpression(op, left, right);\n\t\tcase '&&':\n\t\tcase '||':\n\t\tcase '??':\n\t\t\treturn new LogicalExpression(op, left, right);\n\t\tcase '**':\n\t\tcase '*':\n\t\tcase '/':\n\t\tcase '%':\n\t\tcase '+':\n\t\tcase '-':\n\t\tcase '<':\n\t\tcase '<=':\n\t\tcase '>':\n\t\tcase '>=':\n\t\tcase 'in':\n\t\tcase 'instanceof':\n\t\tcase '==':\n\t\tcase '!=':\n\t\tcase '===':\n\t\tcase '!==':\n\t\tcase '<<':\n\t\tcase '>>':\n\t\tcase '>>>':\n\t\tcase '&':\n\t\tcase '^':\n\t\tcase '|':\n\t\tcase '>?':\n\t\tcase '<?':\n\t\tcase '<=>':\n\t\t\treturn new BinaryExpression(op, left, right);\n\t\tdefault:\n\t\t\tthrow new Error(`Not Supported Operator: ${op}`);\n\t}\n}\n\nexport function createTernaryExpression(op: string, logical: ExpressionNode, ifTrue: ExpressionNode, ifFalse: ExpressionNode): ExpressionNode {\n\tswitch (op) {\n\t\tcase '?':\n\t\t\treturn new ConditionalExpression(logical, ifTrue, ifFalse);\n\t\tdefault:\n\t\t\tthrow new Error(`${op} is not ternary operator`);\n\n\t}\n}\n\nexport function cretePrefixExpression(op: string, node: ExpressionNode): ExpressionNode {\n\tswitch (op) {\n\t\tcase '++':\n\t\tcase '--':\n\t\t\treturn new UpdateExpression(op, node, true);\n\t\tcase '+':\n\t\tcase '-':\n\t\tcase '!':\n\t\tcase '~':\n\t\tcase 'typeof':\n\t\tcase 'void':\n\t\tcase 'delete':\n\t\t\treturn new UnaryExpression(op, node);\n\t\tcase 'await':\n\t\t\treturn new AwaitExpression(node);\n\t\tdefault:\n\t\t\tthrow new Error(`${op} is not prefix operator`);\n\t}\n}\n\nexport function cretePostfixExpression(op: string, node: ExpressionNode): ExpressionNode {\n\tswitch (op) {\n\t\tcase '++':\n\t\tcase '--':\n\t\t\treturn new UpdateExpression(op, node, false);\n\t\tdefault:\n\t\t\tthrow new Error(`${op} is not postfix operator`);\n\t}\n}\n\nexport function creteCommaExpression(nodes: ExpressionNode[]): ExpressionNode {\n\treturn new SequenceExpression(nodes);\n}\n\nconst USELESS_STACK: Stack = null as unknown as Stack;//Object.create(null);\n\nexport function shortcutNumericLiteralBinaryExpression(x: ExpressionNode, y: ExpressionNode, op: Token): ExpressionNode {\n\tconst expression = creteInfixExpression(op.getName(), x, y);\n\tif (expression\n\t\t&& (\n\t\t\t(x instanceof NumberLiteral && y instanceof NumberLiteral)\n\t\t\t|| (x instanceof StringLiteral && y instanceof StringLiteral)\n\t\t\t|| (x instanceof BigIntLiteral && y instanceof BigIntLiteral)\n\t\t\t|| (x instanceof BooleanLiteral && y instanceof BooleanLiteral)\n\t\t)) {\n\t\tconst result = expression.get(USELESS_STACK);\n\t\tif (result !== false) {\n\t\t\tswitch (true) {\n\t\t\t\tcase typeof result === 'number': return new NumberLiteral(result);\n\t\t\t\tcase typeof result === 'string': return new StringLiteral(result);\n\t\t\t\tcase typeof result === 'bigint': return new BigIntLiteral(result);\n\t\t\t\tcase typeof result === 'boolean': return result ? TrueNode : FalseNode;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn expression!;\n}\nexport function coverValue(value: any) {\n\tswitch (typeof value) {\n\t\tcase 'undefined': return UndefinedNode;\n\t\tcase 'boolean': return value ? TrueNode : FalseNode;\n\t\tcase 'number': return new NumberLiteral(value);\n\t\tcase 'bigint': return new BigIntLiteral(value);\n\t\tcase 'string': return new StringLiteral(value);\n\t\tcase 'object':\n\t\t\tif (value === null) {\n\t\t\t\treturn NullNode;\n\t\t\t}\n\t\t// never reach\n\t\tcase 'function':\n\t\tcase 'symbol':\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nexport function buildUnaryExpression(expression: ExpressionNode, op: Token) {\n\tlet result = cretePrefixExpression(op.getName(), expression);\n\tif (expression instanceof Literal) {\n\t\tconst value = result.get(USELESS_STACK);\n\t\tconst temp = coverValue(value);\n\t\tif (temp !== false) {\n\t\t\tresult = temp;\n\t\t}\n\t}\n\treturn result;\n}\n\nexport function buildPostfixExpression(expression: ExpressionNode, op: Token) {\n\tlet result = cretePostfixExpression(op.getName(), expression);\n\tif (expression instanceof Literal) {\n\t\tconst value = result.get(USELESS_STACK);\n\t\tconst temp = coverValue(value);\n\t\tif (temp !== false) {\n\t\t\tresult = temp;\n\t\t}\n\t}\n\treturn result;\n}\n\nexport function expressionFromLiteral(te: TokenExpression) {\n\tswitch (te.token) {\n\t\tcase Token.NUMBER:\n\t\tcase Token.BIGINT:\n\t\tcase Token.STRING:\n\t\tcase Token.REGEXP_LITERAL:\n\t\tcase Token.IDENTIFIER:\n\t\t\treturn te.getValue();\n\n\t\tcase Token.NULL_LITERAL: return NullNode;\n\t\tcase Token.TRUE_LITERAL: return TrueNode;\n\t\tcase Token.FALSE_LITERAL: return FalseNode;\n\t\tdefault:\n\t\tcase Token.UNDEFINED_LITERAL: return UndefinedNode;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/expressions/v8/nodes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExpressionNode } from '../api/expression.js';\nimport type { Stack } from '../scope/stack.js';\nimport { Token, TokenExpression } from './token.js';\nimport { AssignmentExpression } from '../api/operators/assignment.js';\nimport { LogicalExpression } from '../api/operators/logical.js';\nimport { UnaryExpression } from '../api/operators/unary.js';\nimport { ConditionalExpression } from '../api/operators/ternary.js';\nimport { SequenceExpression } from '../api/operators/comma.js';\nimport { Literal, TrueNode, FalseNode, NullNode, UndefinedNode } from '../api/definition/values.js';\nimport { AwaitExpression } from '../api/operators/await.js';\nimport { UpdateExpression } from '../api/operators/update.js';\nimport { BinaryExpression } from '../api/operators/binary.js';\n\nexport function creteInfixExpression(op: string, left: ExpressionNode, right: ExpressionNode): ExpressionNode {\n\tswitch (op) {\n\t\tcase '=':\n\t\tcase '+=':\n\t\tcase '-=':\n\t\tcase '**=':\n\t\tcase '/=':\n\t\tcase '%=':\n\t\tcase '<<=':\n\t\tcase '>>=':\n\t\tcase '>>>=':\n\t\tcase '&=':\n\t\tcase '^=':\n\t\tcase '|=':\n\t\tcase '&&=':\n\t\tcase '||=':\n\t\tcase '??=':\n\t\t\treturn new AssignmentExpression(op, left, right);\n\t\tcase '&&':\n\t\tcase '||':\n\t\tcase '??':\n\t\t\treturn new LogicalExpression(op, left, right);\n\t\tcase '**':\n\t\tcase '*':\n\t\tcase '/':\n\t\tcase '%':\n\t\tcase '+':\n\t\tcase '-':\n\t\tcase '<':\n\t\tcase '<=':\n\t\tcase '>':\n\t\tcase '>=':\n\t\tcase 'in':\n\t\tcase 'instanceof':\n\t\tcase '==':\n\t\tcase '!=':\n\t\tcase '===':\n\t\tcase '!==':\n\t\tcase '<<':\n\t\tcase '>>':\n\t\tcase '>>>':\n\t\tcase '&':\n\t\tcase '^':\n\t\tcase '|':\n\t\tcase '>?':\n\t\tcase '<?':\n\t\tcase '<=>':\n\t\t\treturn new BinaryExpression(op, left, right);\n\t\tdefault:\n\t\t\tthrow new Error(`Not Supported Operator: ${op}`);\n\t}\n}\n\nexport function createTernaryExpression(op: string, logical: ExpressionNode, ifTrue: ExpressionNode, ifFalse: ExpressionNode): ExpressionNode {\n\tswitch (op) {\n\t\tcase '?':\n\t\t\treturn new ConditionalExpression(logical, ifTrue, ifFalse);\n\t\tdefault:\n\t\t\tthrow new Error(`${op} is not ternary operator`);\n\n\t}\n}\n\nexport function creteCommaExpression(nodes: ExpressionNode[]): ExpressionNode {\n\treturn new SequenceExpression(nodes);\n}\n\nconst USELESS_STACK: Stack = null as unknown as Stack;//Object.create(null);\nconst ALLOWED_TYPES = ['string', 'number', 'bigint', 'boolean'];\n\nexport function shortcutNumericLiteralBinaryExpression(x: ExpressionNode, y: ExpressionNode, op: Token): ExpressionNode {\n\tconst expression = creteInfixExpression(op.getName(), x, y);\n\n\tif (x instanceof Literal && y instanceof Literal) {\n\t\tconst typeX = typeof x.getValue();\n\t\tconst typeY = typeof y.getValue();\n\t\tif (x === y && ALLOWED_TYPES.indexOf(typeX) > -1) {\n\t\t\tconst result = expression.get(USELESS_STACK);\n\t\t\tconst rawString = `${x.toString()} ${op.getName()} ${x.toString()}`;\n\t\t\treturn new Literal<any>(result, rawString);\n\t\t}\n\t}\n\treturn expression!;\n}\nexport function coverValue(value: any) {\n\tswitch (typeof value) {\n\t\tcase 'undefined': return UndefinedNode;\n\t\tcase 'boolean': return value ? TrueNode : FalseNode;\n\t\tcase 'number':\n\t\tcase 'bigint':\n\t\tcase 'string':\n\t\t\treturn new Literal<number | string | bigint>(value);\n\t\tcase 'object':\n\t\t\tif (value === null) {\n\t\t\t\treturn NullNode;\n\t\t\t}\n\t\t// never reach\n\t\tcase 'function':\n\t\tcase 'symbol':\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nexport function buildUnaryExpression(expression: ExpressionNode, op: Token) {\n\tconst name = op.getName();\n\tswitch (name) {\n\t\tcase '++':\n\t\tcase '--':\n\t\t\treturn new UpdateExpression(name, expression, true);\n\t\tcase '+':\n\t\tcase '-':\n\t\tcase '!':\n\t\tcase '~':\n\t\tcase 'typeof':\n\t\tcase 'void':\n\t\tcase 'delete':\n\t\t\treturn new UnaryExpression(name, expression);\n\t\tcase 'await':\n\t\t\treturn new AwaitExpression(expression);\n\t\tdefault:\n\t\t\tthrow new Error(`${op} is not prefix operator`);\n\t}\n}\n\nexport function buildPostfixExpression(expression: ExpressionNode, op: Token) {\n\tconst name = op.getName();\n\tswitch (name) {\n\t\tcase '++':\n\t\tcase '--':\n\t\t\treturn new UpdateExpression(name, expression, false);\n\t\tdefault:\n\t\t\tthrow new Error(`${op} is not postfix operator`);\n\t}\n}\n\nexport function expressionFromLiteral(te: TokenExpression) {\n\tswitch (te.token) {\n\t\tcase Token.NUMBER:\n\t\tcase Token.BIGINT:\n\t\tcase Token.STRING:\n\t\tcase Token.REGEXP_LITERAL:\n\t\tcase Token.IDENTIFIER:\n\t\t\treturn te.getValue();\n\n\t\tcase Token.NULL_LITERAL: return NullNode;\n\t\tcase Token.TRUE_LITERAL: return TrueNode;\n\t\tcase Token.FALSE_LITERAL: return FalseNode;\n\t\tdefault:\n\t\tcase Token.UNDEFINED_LITERAL: return UndefinedNode;\n\t}\n}\n"]}
|
package/v8/parser.d.ts
CHANGED
|
@@ -1,159 +1,57 @@
|
|
|
1
1
|
import type { ExpressionNode } from '../api/expression.js';
|
|
2
|
-
import {
|
|
2
|
+
import { InlineParserOptions, JavaScriptInlineParser } from './inline.js';
|
|
3
|
+
import { TokenExpression } from './token.js';
|
|
4
|
+
import { Class, ClassBody, ClassDeclaration, ClassExpression, MethodDefinition, PropertyDefinition, StaticBlock } from '../api/class/class.js';
|
|
5
|
+
import { Identifier, Literal } from '../api/definition/values.js';
|
|
6
|
+
import { VariableDeclarationNode } from '../api/statement/declarations/declares.js';
|
|
3
7
|
import { TokenStream } from './stream.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import { ObjectPattern } from '../api/definition/object.js';
|
|
11
|
-
import { ArrayPattern } from '../api/definition/array.js';
|
|
12
|
-
import { CallExpression } from '../api/computing/call.js';
|
|
13
|
-
import { SequenceExpression } from '../api/operators/comma.js';
|
|
14
|
-
export declare enum ParsingArrowHeadFlag {
|
|
15
|
-
CertainlyNotArrowHead = 0,
|
|
16
|
-
MaybeArrowHead = 1,
|
|
17
|
-
AsyncArrowFunction = 2
|
|
18
|
-
}
|
|
19
|
-
export declare enum PropertyKind {
|
|
20
|
-
Value = 0,
|
|
21
|
-
Shorthand = 1,
|
|
22
|
-
ShorthandOrClassField = 2,
|
|
23
|
-
Assign = 3,
|
|
24
|
-
Method = 4,
|
|
25
|
-
ClassField = 5,
|
|
26
|
-
AccessorGetter = 6,
|
|
27
|
-
AccessorSetter = 7,
|
|
28
|
-
Spread = 8,
|
|
29
|
-
NotSet = 9
|
|
30
|
-
}
|
|
31
|
-
export declare type PropertyKindInfo = {
|
|
32
|
-
kind?: PropertyKind;
|
|
33
|
-
funcFlag?: FunctionKind;
|
|
34
|
-
name: string;
|
|
35
|
-
};
|
|
36
|
-
export declare type FunctionInfo = {
|
|
37
|
-
rest?: boolean;
|
|
8
|
+
import { ExportDefaultDeclaration, ExportSpecifier } from '../api/module/export.js';
|
|
9
|
+
import { ImportSpecifier } from '../api/module/import.js';
|
|
10
|
+
import { ImportAttribute } from '../api/module/common.js';
|
|
11
|
+
import { ClassInfo, ClassLiteralPropertyKind, LanguageMode, PropertyKindInfo, VariableDeclarationContext } from './enums.js';
|
|
12
|
+
export declare type ParserOptions = {
|
|
13
|
+
mode?: LanguageMode;
|
|
38
14
|
};
|
|
39
|
-
export declare
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
export declare abstract class AbstractParser {
|
|
52
|
-
protected scanner: TokenStream;
|
|
53
|
-
constructor(scanner: TokenStream);
|
|
54
|
-
abstract scan(): ExpressionNode;
|
|
55
|
-
protected position(): number;
|
|
56
|
-
protected current(): TokenExpression;
|
|
57
|
-
protected next(): TokenExpression;
|
|
58
|
-
protected peek(): TokenExpression;
|
|
59
|
-
protected peekAhead(): TokenExpression;
|
|
60
|
-
protected peekAheadPosition(): number;
|
|
61
|
-
protected peekPosition(): number;
|
|
62
|
-
protected consume(token: Token): void;
|
|
63
|
-
protected check(token: Token): boolean;
|
|
64
|
-
protected checkValue(value: ExpressionNode): boolean;
|
|
65
|
-
protected expect(token: Token): void;
|
|
66
|
-
protected checkInOrOf(): 'IN' | 'OF' | false;
|
|
67
|
-
protected peekInOrOf(): 'IN' | 'OF' | false;
|
|
68
|
-
protected isEvalOrArguments(name: ExpressionNode): boolean;
|
|
69
|
-
protected isNextLetKeyword(): boolean;
|
|
70
|
-
protected isIdentifier(expression: ExpressionNode): expression is Identifier;
|
|
71
|
-
protected isParenthesized(expression: ExpressionNode): expression is (GroupingExpression | SequenceExpression);
|
|
72
|
-
protected isAssignableIdentifier(expression: ExpressionNode): boolean;
|
|
73
|
-
protected isPattern(expression: ExpressionNode): expression is (ObjectPattern | ArrayPattern);
|
|
74
|
-
protected isProperty(expression: ExpressionNode): expression is MemberExpression;
|
|
75
|
-
protected isCallNew(expression: ExpressionNode): expression is NewExpression;
|
|
76
|
-
protected isCall(expression: ExpressionNode): expression is CallExpression;
|
|
77
|
-
protected isEmptyStatement(expression: ExpressionNode): expression is EmptyStatement;
|
|
78
|
-
protected isThisProperty(expression: ExpressionNode): boolean;
|
|
79
|
-
protected isValidReferenceExpression(expression: ExpressionNode): boolean;
|
|
80
|
-
protected expectSemicolon(): void;
|
|
81
|
-
protected peekAnyIdentifier(): boolean;
|
|
82
|
-
protected errorMessage(message: string): string;
|
|
83
|
-
}
|
|
84
|
-
export declare class JavaScriptParser extends AbstractParser {
|
|
85
|
-
static parse(source: string | TokenExpression[] | TokenStream): ExpressionNode;
|
|
15
|
+
export declare class JavaScriptParser extends JavaScriptInlineParser {
|
|
16
|
+
/**
|
|
17
|
+
* parser js with
|
|
18
|
+
* @param source
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
static parse(source: string | TokenExpression[] | TokenStream, { mode }?: ParserOptions): ExpressionNode;
|
|
22
|
+
/**
|
|
23
|
+
* parse inline code like that used in html 2 or 1 way binding
|
|
24
|
+
*/
|
|
25
|
+
static parseScript(source: string | TokenExpression[] | TokenStream, options?: InlineParserOptions): ExpressionNode;
|
|
86
26
|
scan(): ExpressionNode;
|
|
87
|
-
protected parseStatement(): ExpressionNode;
|
|
88
|
-
protected parseTryStatement(): ExpressionNode;
|
|
89
|
-
protected parseBlock(): ExpressionNode;
|
|
90
|
-
protected parseStatementListItem(): ExpressionNode | undefined;
|
|
91
|
-
protected parseFunctionExpression(type: FunctionKind): ExpressionNode;
|
|
92
|
-
protected parseIfStatement(): ExpressionNode;
|
|
93
|
-
protected parseDoWhileStatement(): ExpressionNode;
|
|
94
|
-
protected parseWhileStatement(): ExpressionNode;
|
|
95
|
-
protected parseThrowStatement(): ExpressionNode;
|
|
96
|
-
protected parseSwitchStatement(): ExpressionNode;
|
|
97
|
-
protected parseForStatement(): ExpressionNode;
|
|
98
|
-
protected parseVariableDeclarations(): ExpressionNode;
|
|
99
|
-
protected parseBindingPattern(isPattern: boolean): ExpressionNode;
|
|
100
|
-
protected parseAndClassifyIdentifier(next: TokenExpression): ExpressionNode;
|
|
101
|
-
protected parseContinueStatement(): ExpressionNode;
|
|
102
|
-
protected parseBreakStatement(): ExpressionNode;
|
|
103
|
-
protected parseReturnStatement(): ExpressionNode;
|
|
104
|
-
protected parseExpressionOrLabelledStatement(): ExpressionNode;
|
|
105
|
-
protected parseExpression(): ExpressionNode;
|
|
106
|
-
protected parseFunctionDeclaration(): ExpressionNode;
|
|
107
|
-
protected parseFunctionDeclarationAndGenerator(): ExpressionNode;
|
|
108
|
-
protected parseHoistableDeclaration(flag: FunctionKind): ExpressionNode;
|
|
109
|
-
protected parseIdentifier(): ExpressionNode;
|
|
110
|
-
protected getIdentifier(): ExpressionNode;
|
|
111
|
-
protected parseFunctionLiteral(flag: FunctionKind, name?: ExpressionNode): ExpressionNode;
|
|
112
|
-
protected parseArrowFunctionBody(): ExpressionNode | ExpressionNode[];
|
|
113
|
-
protected parseFunctionBody(): ExpressionNode[];
|
|
114
|
-
protected parseStatementList(endToken: Token): ExpressionNode[];
|
|
115
|
-
protected parseFormalParameterList(functionInfo: FunctionInfo): ExpressionNode[];
|
|
116
|
-
protected parseFormalParameter(functionInfo: FunctionInfo): ExpressionNode;
|
|
117
|
-
protected parseExpressionCoverGrammar(info?: FunctionInfo): ExpressionNode;
|
|
118
|
-
protected parseArrowParametersWithRest(list: ExpressionNode[], variableIndex: number): ExpressionNode;
|
|
119
|
-
protected expressionListToExpression(list: ExpressionNode[]): ExpressionNode;
|
|
120
|
-
protected parseMemberExpression(): ExpressionNode;
|
|
121
|
-
protected toParamNode(expression: ExpressionNode): Param;
|
|
122
|
-
protected parsePrimaryExpression(): ExpressionNode;
|
|
123
|
-
protected parseTemplateLiteral(tag?: ExpressionNode): ExpressionNode;
|
|
124
|
-
protected parseMemberWithPresentNewPrefixesExpression(): ExpressionNode;
|
|
125
|
-
protected parseArguments(maybeArrow?: ParsingArrowHeadFlag): ExpressionNode[];
|
|
126
|
-
protected parseAssignmentExpressionCoverGrammar(): ExpressionNode;
|
|
127
|
-
protected parseAssignmentExpression(): ExpressionNode;
|
|
128
|
-
protected parseArrowFunctionLiteral(parameters: ExpressionNode[], flag: ArrowFunctionType, rest?: boolean): ExpressionNode;
|
|
129
|
-
protected parseRegExpLiteral(): ExpressionNode;
|
|
130
|
-
protected parseArrayLiteral(isPattern: boolean): ExpressionNode;
|
|
131
|
-
protected parsePossibleDestructuringSubPattern(): ExpressionNode;
|
|
132
|
-
protected parseObjectLiteral(isPattern: boolean): ExpressionNode;
|
|
133
|
-
protected parseObjectPropertyDefinition(isPattern: boolean): ExpressionNode;
|
|
134
|
-
protected parseProperty(propInfo: PropertyKindInfo): ExpressionNode;
|
|
135
|
-
protected parseMemberExpressionContinuation(expression: ExpressionNode): ExpressionNode;
|
|
136
|
-
protected doParseMemberExpressionContinuation(expression: ExpressionNode): ExpressionNode;
|
|
137
|
-
protected parsePropertyName(): ExpressionNode;
|
|
138
|
-
protected parsePipelineExpression(expression: ExpressionNode): ExpressionNode;
|
|
139
|
-
protected parsePipelineBody(lhs: ExpressionNode): ExpressionNode;
|
|
140
|
-
protected parseConditionalExpression(): ExpressionNode;
|
|
141
|
-
protected parseLogicalExpression(): ExpressionNode;
|
|
142
|
-
protected parseBinaryContinuation(x: ExpressionNode, prec: number, prec1: number): ExpressionNode;
|
|
143
|
-
protected parseBinaryExpression(precedence: number): ExpressionNode;
|
|
144
|
-
protected parseUnaryExpression(): ExpressionNode;
|
|
145
|
-
protected parseUnaryOrPrefixExpression(): ExpressionNode;
|
|
146
|
-
protected parsePostfixExpression(): ExpressionNode;
|
|
147
|
-
protected parsePostfixContinuation(expression: ExpressionNode): ExpressionNode;
|
|
148
|
-
protected parseLeftHandSideExpression(): ExpressionNode;
|
|
149
|
-
protected parseLeftHandSideContinuation(result: ExpressionNode): ExpressionNode;
|
|
150
|
-
protected parseAwaitExpression(): ExpressionNode;
|
|
151
|
-
protected parseNullishExpression(expression: ExpressionNode): ExpressionNode;
|
|
152
|
-
protected parseConditionalContinuation(expression: ExpressionNode): ExpressionNode;
|
|
153
|
-
protected parseYieldExpression(): ExpressionNode;
|
|
154
27
|
protected parseNewTargetExpression(): ExpressionNode;
|
|
155
|
-
protected
|
|
156
|
-
protected
|
|
28
|
+
protected parseClassExpression(): ClassExpression;
|
|
29
|
+
protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean): ClassDeclaration;
|
|
30
|
+
protected parseClassLiteral(name: ExpressionNode | undefined, nameIsStrictReserved: boolean): Class;
|
|
31
|
+
protected declarePublicClassMethod(name: ExpressionNode | undefined, property: MethodDefinition, isConstructor: boolean, classInfo: ClassInfo): void;
|
|
32
|
+
protected declarePublicClassField(property: PropertyDefinition, isStatic: boolean, isComputedName: boolean, classInfo: ClassInfo): void;
|
|
33
|
+
protected declarePrivateClassMember(propertyName: string, property: MethodDefinition | PropertyDefinition, kind: ClassLiteralPropertyKind, isStatic: boolean, classInfo: ClassInfo): void;
|
|
34
|
+
protected parseClassPropertyDefinition(classInfo: ClassInfo, propInfo: PropertyKindInfo, hasExtends: boolean): ExpressionNode | Literal<null> | MethodDefinition | PropertyDefinition;
|
|
35
|
+
protected checkClassMethodName(propInfo: PropertyKindInfo, classInfo: ClassInfo): void;
|
|
36
|
+
protected parseClassStaticBlock(classInfo: ClassInfo): StaticBlock;
|
|
37
|
+
protected declareClass(variableName: string, value: ExpressionNode, names: string[] | undefined): ExpressionNode;
|
|
38
|
+
protected declareVariable(name: string, mode: 'let' | 'const' | 'var'): VariableDeclarationNode;
|
|
39
|
+
protected newClassLiteralProperty(nameExpression: ExpressionNode, initializer: ExpressionNode | undefined, kind: ClassLiteralPropertyKind, isStatic: boolean, isComputedName: boolean, isPrivate: boolean): MethodDefinition | PropertyDefinition;
|
|
40
|
+
protected parseMemberInitializer(classInfo: ClassInfo, isStatic: boolean): ExpressionNode | undefined;
|
|
41
|
+
protected setFunctionNameFromPropertyName(property: ExpressionNode, name: string, prefix?: string): void;
|
|
157
42
|
protected parseSuperExpression(): ExpressionNode;
|
|
43
|
+
protected rewriteClassLiteral(classInfo: ClassInfo, name?: ExpressionNode): ClassBody;
|
|
44
|
+
protected parseModuleItemList(): ExpressionNode[];
|
|
45
|
+
protected parseModuleItem(): ExpressionNode | undefined;
|
|
46
|
+
protected parseExportDeclaration(): ExpressionNode | undefined;
|
|
47
|
+
protected parseImportDeclaration(): ExpressionNode | undefined;
|
|
158
48
|
protected parseImportExpressions(): ExpressionNode;
|
|
49
|
+
protected parseVariableStatement(varContext: VariableDeclarationContext, names: string[]): VariableDeclarationNode;
|
|
50
|
+
protected parseImportAssertClause(): ImportAttribute[] | undefined;
|
|
51
|
+
protected parseModuleSpecifier(): Literal<string>;
|
|
52
|
+
protected parseExportClause(): ExportSpecifier[];
|
|
53
|
+
protected parseExportSpecifierName(): Identifier | Literal<string>;
|
|
54
|
+
protected parseNamedImports(): ImportSpecifier[];
|
|
55
|
+
protected parseExportDefault(): ExportDefaultDeclaration;
|
|
56
|
+
protected parseExportStar(): ExpressionNode | undefined;
|
|
159
57
|
}
|