@ibyar/expressions 0.5.4 → 0.5.6

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.
Files changed (99) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -0
  3. package/api/abstract.d.ts +3 -3
  4. package/api/abstract.js +2 -2
  5. package/api/abstract.js.map +1 -1
  6. package/api/class/class.d.ts +18 -12
  7. package/api/class/class.js +122 -81
  8. package/api/class/class.js.map +1 -1
  9. package/api/computing/debugger.d.ts +15 -0
  10. package/api/computing/debugger.js +35 -0
  11. package/api/computing/debugger.js.map +1 -0
  12. package/api/computing/rest.d.ts +4 -4
  13. package/api/computing/rest.js.map +1 -1
  14. package/api/definition/array.d.ts +7 -6
  15. package/api/definition/array.js +20 -14
  16. package/api/definition/array.js.map +1 -1
  17. package/api/definition/function.d.ts +35 -46
  18. package/api/definition/function.js +281 -299
  19. package/api/definition/function.js.map +1 -1
  20. package/api/definition/object.d.ts +9 -6
  21. package/api/definition/object.js +34 -4
  22. package/api/definition/object.js.map +1 -1
  23. package/api/definition/statement.js +5 -1
  24. package/api/definition/statement.js.map +1 -1
  25. package/api/definition/values.d.ts +31 -47
  26. package/api/definition/values.js +59 -145
  27. package/api/definition/values.js.map +1 -1
  28. package/api/deserialize/deserialize.d.ts +2 -1
  29. package/api/deserialize/deserialize.js +4 -1
  30. package/api/deserialize/deserialize.js.map +1 -1
  31. package/api/deserialize/type-store.d.ts +2 -2
  32. package/api/deserialize/type-store.js.map +1 -1
  33. package/api/expression.d.ts +5 -7
  34. package/api/expression.js.map +1 -1
  35. package/api/index.d.ts +2 -0
  36. package/api/index.js +2 -0
  37. package/api/index.js.map +1 -1
  38. package/api/module/common.d.ts +29 -0
  39. package/api/module/common.js +71 -0
  40. package/api/module/common.js.map +1 -0
  41. package/api/module/export.d.ts +15 -9
  42. package/api/module/export.js +57 -15
  43. package/api/module/export.js.map +1 -1
  44. package/api/module/import.d.ts +3 -8
  45. package/api/module/import.js +9 -19
  46. package/api/module/import.js.map +1 -1
  47. package/api/{module/app/program.d.ts → program.d.ts} +4 -4
  48. package/api/{module/app/program.js → program.js} +3 -3
  49. package/api/program.js.map +1 -0
  50. package/api/statement/control/block.d.ts +1 -2
  51. package/api/statement/control/block.js +20 -21
  52. package/api/statement/control/block.js.map +1 -1
  53. package/api/statement/control/switch.js +8 -3
  54. package/api/statement/control/switch.js.map +1 -1
  55. package/api/statement/control/terminate.d.ts +36 -11
  56. package/api/statement/control/terminate.js +79 -18
  57. package/api/statement/control/terminate.js.map +1 -1
  58. package/api/statement/declarations/declares.d.ts +7 -7
  59. package/api/statement/declarations/declares.js +1 -1
  60. package/api/statement/declarations/declares.js.map +1 -1
  61. package/api/statement/iterations/for.js +22 -16
  62. package/api/statement/iterations/for.js.map +1 -1
  63. package/api/statement/iterations/while.js +15 -11
  64. package/api/statement/iterations/while.js.map +1 -1
  65. package/api/utils.d.ts +2 -0
  66. package/api/utils.js +3 -1
  67. package/api/utils.js.map +1 -1
  68. package/package.json +4 -4
  69. package/scope/proxy.d.ts +0 -2
  70. package/scope/proxy.js +4 -24
  71. package/scope/proxy.js.map +1 -1
  72. package/scope/stack.d.ts +2 -2
  73. package/scope/stack.js.map +1 -1
  74. package/v8/enums.d.ts +204 -0
  75. package/v8/enums.js +375 -0
  76. package/v8/enums.js.map +1 -0
  77. package/v8/index.d.ts +2 -1
  78. package/v8/index.js +2 -1
  79. package/v8/index.js.map +1 -1
  80. package/v8/inline.d.ts +177 -0
  81. package/v8/inline.js +1973 -0
  82. package/v8/inline.js.map +1 -0
  83. package/v8/nodes.d.ts +8 -7
  84. package/v8/nodes.js +37 -63
  85. package/v8/nodes.js.map +1 -1
  86. package/v8/parser.d.ts +41 -151
  87. package/v8/parser.js +507 -1579
  88. package/v8/parser.js.map +1 -1
  89. package/v8/stream.d.ts +35 -3
  90. package/v8/stream.js +616 -164
  91. package/v8/stream.js.map +1 -1
  92. package/v8/token.d.ts +15 -9
  93. package/v8/token.js +79 -46
  94. package/v8/token.js.map +1 -1
  95. package/visit/visitor.js.map +1 -1
  96. package/api/module/app/program.js.map +0 -1
  97. package/v8/app.d.ts +0 -0
  98. package/v8/app.js +0 -2
  99. package/v8/app.js.map +0 -1
package/v8/inline.d.ts ADDED
@@ -0,0 +1,177 @@
1
+ import type { ExpressionNode } from '../api/expression.js';
2
+ import { Token, TokenExpression } from './token.js';
3
+ import { TokenStream } from './stream.js';
4
+ import { Identifier, TaggedTemplateExpression, TemplateLiteral } from '../api/definition/values.js';
5
+ import { EmptyStatement } from '../api/statement/control/empty.js';
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
+ 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
+ import { AllowLabelledFunctionStatement, FunctionBodyType, FunctionInfo, FunctionKind, FunctionSyntaxKind, LanguageMode, ParseFunctionFlag, ParsingArrowHeadFlag, PropertyKindInfo, VariableDeclarationContext } from './enums.js';
17
+ import { DebuggerStatement } from '../api/computing/debugger.js';
18
+ export declare type InlineParserOptions = {
19
+ mode?: LanguageMode;
20
+ acceptIN?: boolean;
21
+ };
22
+ export declare abstract class AbstractParser {
23
+ protected scanner: TokenStream;
24
+ protected acceptIN: boolean;
25
+ protected previousAcceptIN: boolean[];
26
+ protected functionKind: FunctionKind;
27
+ protected previousFunctionKind: FunctionKind[];
28
+ get languageMode(): LanguageMode;
29
+ set languageMode(mode: LanguageMode);
30
+ constructor(scanner: TokenStream, acceptIN?: boolean);
31
+ abstract scan(): ExpressionNode;
32
+ protected position(): number;
33
+ protected setAcceptIN(acceptIN: boolean): void;
34
+ protected restoreAcceptIN(): void;
35
+ protected getLastFunctionKind(): FunctionKind;
36
+ protected setFunctionKind(functionKind: FunctionKind): void;
37
+ protected restoreFunctionKind(): void;
38
+ protected setStatue(acceptIN: boolean, functionKind: FunctionKind): void;
39
+ protected restoreStatue(): void;
40
+ protected current(): TokenExpression;
41
+ protected next(): TokenExpression;
42
+ protected peek(): TokenExpression;
43
+ protected peekAhead(): TokenExpression;
44
+ protected peekAheadPosition(): number;
45
+ protected peekPosition(): number;
46
+ protected consume(token: Token): void;
47
+ protected check(token: Token): boolean;
48
+ protected checkAndGetValue(token: Token): ExpressionNode | undefined;
49
+ protected checkValue(value: ExpressionNode): boolean;
50
+ protected expect(token: Token): void;
51
+ protected expectAndGetValue(token: Token): ExpressionNode;
52
+ protected checkInOrOf(): 'IN' | 'OF' | false;
53
+ protected peekInOrOf(): 'IN' | 'OF' | false;
54
+ protected isArguments(name: ExpressionNode): boolean;
55
+ protected isEval(name: ExpressionNode): boolean;
56
+ protected isEvalOrArguments(name: ExpressionNode): boolean;
57
+ protected isNextLetKeyword(): boolean;
58
+ protected isIdentifier(expression: ExpressionNode): expression is Identifier;
59
+ protected markParenthesized(expression: ExpressionNode): void;
60
+ protected clearParenthesized(expression: ExpressionNode): void;
61
+ protected isParenthesized(expression: ExpressionNode): boolean;
62
+ protected isAssignableIdentifier(expression: ExpressionNode): boolean;
63
+ protected isPattern(expression: ExpressionNode): expression is (ObjectExpression | ArrayExpression);
64
+ protected isProperty(expression: ExpressionNode): expression is Property | MemberExpression;
65
+ protected isCallNew(expression: ExpressionNode): expression is NewExpression;
66
+ protected isCall(expression: ExpressionNode): expression is CallExpression;
67
+ protected isEmptyStatement(expression: ExpressionNode): expression is EmptyStatement;
68
+ protected isValidReferenceExpression(expression: ExpressionNode): boolean;
69
+ protected expectSemicolon(): void;
70
+ protected peekAnyIdentifier(): boolean;
71
+ protected expectContextualKeyword(keyword: string): boolean;
72
+ protected checkContextualKeyword(keyword: string): boolean;
73
+ protected peekContextualKeyword(keyword: string): boolean;
74
+ protected methodKindFor(isStatic: boolean, flag: ParseFunctionFlag): FunctionKind;
75
+ protected isGenerator(): boolean;
76
+ protected isAsyncFunction(): boolean;
77
+ protected is_async_function(): boolean;
78
+ protected is_async_generator(): boolean;
79
+ protected is_resumable(): boolean;
80
+ protected isAwaitAllowed(): boolean;
81
+ protected isAwaitAsIdentifierDisallowed(): boolean;
82
+ protected shouldBanArguments(): boolean;
83
+ protected errorMessage(message: string): string;
84
+ protected reportErrorMessage(message: string): void;
85
+ }
86
+ export declare class JavaScriptInlineParser extends AbstractParser {
87
+ static parse(source: string | TokenExpression[] | TokenStream, { mode, acceptIN }?: InlineParserOptions): ExpressionNode;
88
+ constructor(scanner: TokenStream, acceptIN?: boolean);
89
+ scan(): ExpressionNode;
90
+ protected parseStatement(allowFunction?: AllowLabelledFunctionStatement): ExpressionNode;
91
+ protected parseDebuggerStatement(): DebuggerStatement;
92
+ protected parseTryStatement(): ExpressionNode;
93
+ protected parseNonRestrictedIdentifier(): Identifier;
94
+ protected parseBlock(): BlockStatement;
95
+ protected parseStatementListItem(): ExpressionNode | undefined;
96
+ protected parseFunctionExpression(): FunctionExpression | FunctionDeclaration;
97
+ protected parseAsyncFunctionDeclaration(names: string[] | undefined, defaultExport: boolean): FunctionDeclaration;
98
+ protected parseIfStatement(): ExpressionNode;
99
+ protected parseScopedStatement(): ExpressionNode;
100
+ protected parseDoWhileStatement(): ExpressionNode;
101
+ protected parseWhileStatement(): ExpressionNode;
102
+ protected parseThrowStatement(): ExpressionNode;
103
+ protected parseSwitchStatement(): ExpressionNode;
104
+ protected parseForStatement(): ForNode | ForOfNode | ForInNode;
105
+ protected parseStandardForLoopWithLexicalDeclarations(initializer: VariableDeclarationNode): ForNode;
106
+ protected parseForEachStatementWithDeclarations(initializer: VariableDeclarationNode, forMode: 'IN' | 'OF'): ForOfNode | ForInNode;
107
+ protected parseForEachStatementWithoutDeclarations(initializer: ExpressionNode, forMode: 'IN' | 'OF'): ForOfNode | ForInNode;
108
+ protected parseStandardForLoop(initializer: ExpressionNode): ForNode;
109
+ protected parseForAwaitStatement(): ForAwaitOfNode;
110
+ protected parseVariableDeclarations(varContext: VariableDeclarationContext): VariableDeclarationNode;
111
+ protected parseBindingPattern(isPattern: boolean): ExpressionNode;
112
+ protected parseAndClassifyIdentifier(next: TokenExpression): ExpressionNode;
113
+ protected parseContinueStatement(): ExpressionNode;
114
+ protected parseBreakStatement(): ExpressionNode;
115
+ protected parseReturnStatement(): ExpressionNode;
116
+ protected parseExpressionOrLabelledStatement(allowFunction: AllowLabelledFunctionStatement): ExpressionNode;
117
+ protected parseExpression(): ExpressionNode;
118
+ protected parseFunctionDeclaration(): FunctionDeclaration;
119
+ protected parseAsyncFunctionLiteral(): FunctionExpression | FunctionDeclaration;
120
+ protected parseHoistableDeclaration(names: string[] | undefined, defaultExport: boolean): FunctionExpression | FunctionDeclaration;
121
+ protected parseHoistableDeclaration01(flag: FunctionKind, names: string[] | undefined, defaultExport: boolean): FunctionExpression | FunctionDeclaration;
122
+ protected parseIdentifier(kind?: FunctionKind): Identifier;
123
+ protected getIdentifier(): Identifier;
124
+ protected parseFunctionLiteral(flag: FunctionKind, functionSyntaxKind: FunctionSyntaxKind, name?: Identifier): FunctionDeclaration | FunctionExpression;
125
+ protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.BLOCK, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode[];
126
+ protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.EXPRESSION, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode;
127
+ protected parseAndRewriteAsyncGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[];
128
+ protected parseAndRewriteGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[];
129
+ protected parseAsyncFunctionBody(): ExpressionNode[];
130
+ protected parseStatementList(endToken: Token): ExpressionNode[];
131
+ protected parseFormalParameterList(functionInfo: FunctionInfo): ExpressionNode[];
132
+ protected parseFormalParameter(functionInfo: FunctionInfo): ExpressionNode;
133
+ protected parseExpressionCoverGrammar(): ExpressionNode;
134
+ protected parseArrowParametersWithRest(list: ExpressionNode[]): ExpressionNode;
135
+ protected expressionListToExpression(list: ExpressionNode[]): ExpressionNode;
136
+ protected parseMemberExpression(): ExpressionNode;
137
+ protected toParamNode(expression: ExpressionNode): Param;
138
+ protected parsePrimaryExpression(): ExpressionNode;
139
+ protected parseTemplateLiteral(tag?: ExpressionNode): ExpressionNode;
140
+ protected createTemplateLiteralExpressionNode(strings: string[], expressions: ExpressionNode[], tag?: ExpressionNode): TaggedTemplateExpression | TemplateLiteral;
141
+ protected parseMemberWithPresentNewPrefixesExpression(): ExpressionNode;
142
+ protected parseArguments(maybeArrow?: ParsingArrowHeadFlag): ExpressionNode[];
143
+ protected parseAssignmentExpressionCoverGrammar(): ExpressionNode;
144
+ protected parseAssignmentExpression(): ExpressionNode;
145
+ protected parseArrowFunctionLiteral(parameters: ExpressionNode[], kind: FunctionKind): ExpressionNode;
146
+ protected parseRegExpLiteral(): ExpressionNode;
147
+ protected parseArrayLiteral(isPattern: boolean): ArrayExpression | ArrayPattern;
148
+ protected parsePossibleDestructuringSubPattern(): ExpressionNode;
149
+ protected parseObjectLiteral(isPattern: boolean): ExpressionNode;
150
+ protected parseObjectPropertyDefinition(isPattern: boolean): ExpressionNode;
151
+ protected parseProperty(propInfo: PropertyKindInfo): ExpressionNode;
152
+ protected parseMemberExpressionContinuation(expression: ExpressionNode): ExpressionNode;
153
+ protected doParseMemberExpressionContinuation(expression: ExpressionNode): ExpressionNode;
154
+ protected parsePropertyOrPrivatePropertyName(): ExpressionNode;
155
+ protected parsePipelineExpression(expression: ExpressionNode): ExpressionNode;
156
+ protected parsePipelineBody(lhs: ExpressionNode): ExpressionNode;
157
+ protected parseConditionalExpression(): ExpressionNode;
158
+ protected parseLogicalExpression(): ExpressionNode;
159
+ protected parseBinaryContinuation(x: ExpressionNode, prec: number, prec1: number): ExpressionNode;
160
+ protected parseBinaryExpression(precedence: number): ExpressionNode;
161
+ protected parseUnaryExpression(): ExpressionNode;
162
+ protected parseUnaryOrPrefixExpression(): ExpressionNode;
163
+ protected parsePostfixExpression(): ExpressionNode;
164
+ protected parsePostfixContinuation(expression: ExpressionNode): ExpressionNode;
165
+ protected parseLeftHandSideExpression(): ExpressionNode;
166
+ protected parseLeftHandSideContinuation(result: ExpressionNode): ExpressionNode;
167
+ protected parseAwaitExpression(): ExpressionNode;
168
+ protected parseNullishExpression(expression: ExpressionNode): ExpressionNode;
169
+ protected parseConditionalContinuation(expression: ExpressionNode): ExpressionNode;
170
+ protected parseYieldExpression(): ExpressionNode;
171
+ protected parseNewTargetExpression(): ExpressionNode;
172
+ protected parseClassExpression(): ClassExpression;
173
+ protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean): ClassDeclaration;
174
+ protected parseClassLiteral(name: ExpressionNode | undefined, isStrictReserved: boolean): ExpressionNode;
175
+ protected parseSuperExpression(): ExpressionNode;
176
+ protected parseImportExpressions(): ExpressionNode;
177
+ }