@ibyar/expressions 0.8.6 → 1.0.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/api/abstract.d.ts +1 -0
- package/api/abstract.d.ts.map +1 -0
- package/api/abstract.js +12 -0
- package/api/abstract.js.map +1 -1
- package/api/class/class.d.ts +1 -0
- package/api/class/class.d.ts.map +1 -0
- package/api/class/class.js +563 -482
- package/api/class/class.js.map +1 -1
- package/api/class/decorator.d.ts +1 -0
- package/api/class/decorator.d.ts.map +1 -0
- package/api/class/decorator.js +49 -42
- package/api/class/decorator.js.map +1 -1
- package/api/computing/call.d.ts +1 -0
- package/api/computing/call.d.ts.map +1 -0
- package/api/computing/call.js +79 -70
- package/api/computing/call.js.map +1 -1
- package/api/computing/debugger.d.ts +1 -0
- package/api/computing/debugger.d.ts.map +1 -0
- package/api/computing/debugger.js +36 -29
- package/api/computing/debugger.js.map +1 -1
- package/api/computing/new.d.ts +1 -0
- package/api/computing/new.d.ts.map +1 -0
- package/api/computing/new.js +77 -69
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.d.ts +1 -0
- package/api/computing/rest.d.ts.map +1 -0
- package/api/computing/rest.js +50 -43
- package/api/computing/rest.js.map +1 -1
- package/api/computing/return.d.ts +1 -0
- package/api/computing/return.d.ts.map +1 -0
- package/api/computing/return.js +48 -41
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.d.ts +1 -0
- package/api/computing/spread.d.ts.map +1 -0
- package/api/computing/spread.js +66 -59
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.d.ts +1 -0
- package/api/computing/throw.d.ts.map +1 -0
- package/api/computing/throw.js +204 -178
- package/api/computing/throw.js.map +1 -1
- package/api/computing/yield.d.ts +1 -0
- package/api/computing/yield.d.ts.map +1 -0
- package/api/computing/yield.js +56 -48
- package/api/computing/yield.js.map +1 -1
- package/api/definition/array.d.ts +1 -0
- package/api/definition/array.d.ts.map +1 -0
- package/api/definition/array.js +139 -124
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.d.ts +1 -0
- package/api/definition/bind.d.ts.map +1 -0
- package/api/definition/bind.js +81 -71
- package/api/definition/bind.js.map +1 -1
- package/api/definition/comment.d.ts +1 -0
- package/api/definition/comment.d.ts.map +1 -0
- package/api/definition/comment.js +40 -33
- package/api/definition/comment.js.map +1 -1
- package/api/definition/function.d.ts +1 -0
- package/api/definition/function.d.ts.map +1 -0
- package/api/definition/function.js +484 -447
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.d.ts +1 -0
- package/api/definition/member.d.ts.map +1 -0
- package/api/definition/member.js +100 -90
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.d.ts +1 -0
- package/api/definition/object.d.ts.map +1 -0
- package/api/definition/object.js +230 -202
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.d.ts +1 -0
- package/api/definition/statement.d.ts.map +1 -0
- package/api/definition/statement.js +52 -45
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.d.ts +1 -0
- package/api/definition/values.d.ts.map +1 -0
- package/api/definition/values.js +210 -167
- package/api/definition/values.js.map +1 -1
- package/api/deserialize/deserialize.d.ts +2 -1
- package/api/deserialize/deserialize.d.ts.map +1 -0
- package/api/deserialize/deserialize.js +5 -7
- package/api/deserialize/deserialize.js.map +1 -1
- package/api/deserialize/type-store.d.ts +1 -0
- package/api/deserialize/type-store.d.ts.map +1 -0
- package/api/expression.d.ts +1 -0
- package/api/expression.d.ts.map +1 -0
- package/api/index.d.ts +1 -0
- package/api/index.d.ts.map +1 -0
- package/api/module/common.d.ts +1 -0
- package/api/module/common.d.ts.map +1 -0
- package/api/module/common.js +59 -51
- package/api/module/common.js.map +1 -1
- package/api/module/export.d.ts +1 -0
- package/api/module/export.d.ts.map +1 -0
- package/api/module/export.js +327 -294
- package/api/module/export.js.map +1 -1
- package/api/module/import.d.ts +1 -0
- package/api/module/import.d.ts.map +1 -0
- package/api/module/import.js +298 -258
- package/api/module/import.js.map +1 -1
- package/api/operators/assignment.d.ts +1 -0
- package/api/operators/assignment.d.ts.map +1 -0
- package/api/operators/assignment.js +84 -75
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.d.ts +1 -0
- package/api/operators/await.d.ts.map +1 -0
- package/api/operators/await.js +50 -43
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.d.ts +1 -0
- package/api/operators/binary.d.ts.map +1 -0
- package/api/operators/binary.js +74 -64
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.d.ts +1 -0
- package/api/operators/chaining.d.ts.map +1 -0
- package/api/operators/chaining.js +52 -45
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.d.ts +1 -0
- package/api/operators/comma.d.ts.map +1 -0
- package/api/operators/comma.js +49 -42
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.d.ts +1 -0
- package/api/operators/grouping.d.ts.map +1 -0
- package/api/operators/grouping.js +47 -40
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.d.ts +1 -0
- package/api/operators/logical.d.ts.map +1 -0
- package/api/operators/logical.js +47 -37
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.d.ts +1 -0
- package/api/operators/pipeline.d.ts.map +1 -0
- package/api/operators/pipeline.js +91 -82
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.d.ts +1 -0
- package/api/operators/ternary.d.ts.map +1 -0
- package/api/operators/ternary.js +65 -56
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/types.d.ts +1 -0
- package/api/operators/types.d.ts.map +1 -0
- package/api/operators/unary.d.ts +1 -0
- package/api/operators/unary.d.ts.map +1 -0
- package/api/operators/unary.js +93 -82
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.d.ts +1 -0
- package/api/operators/update.d.ts.map +1 -0
- package/api/operators/update.js +74 -62
- package/api/operators/update.js.map +1 -1
- package/api/program.d.ts +1 -0
- package/api/program.d.ts.map +1 -0
- package/api/program.js +49 -41
- package/api/program.js.map +1 -1
- package/api/statement/control/block.d.ts +1 -0
- package/api/statement/control/block.d.ts.map +1 -0
- package/api/statement/control/block.js +61 -54
- package/api/statement/control/block.js.map +1 -1
- package/api/statement/control/empty.d.ts +1 -1
- package/api/statement/control/empty.d.ts.map +1 -0
- package/api/statement/control/empty.js +39 -34
- package/api/statement/control/empty.js.map +1 -1
- package/api/statement/control/if.d.ts +1 -0
- package/api/statement/control/if.d.ts.map +1 -0
- package/api/statement/control/if.js +75 -66
- package/api/statement/control/if.js.map +1 -1
- package/api/statement/control/switch.d.ts +1 -0
- package/api/statement/control/switch.d.ts.map +1 -0
- package/api/statement/control/switch.js +168 -144
- package/api/statement/control/switch.js.map +1 -1
- package/api/statement/control/terminate.d.ts +1 -2
- package/api/statement/control/terminate.d.ts.map +1 -0
- package/api/statement/control/terminate.js +105 -81
- package/api/statement/control/terminate.js.map +1 -1
- package/api/statement/control/with.d.ts +1 -0
- package/api/statement/control/with.d.ts.map +1 -0
- package/api/statement/control/with.js +68 -60
- package/api/statement/control/with.js.map +1 -1
- package/api/statement/declarations/declares.d.ts +1 -0
- package/api/statement/declarations/declares.d.ts.map +1 -0
- package/api/statement/declarations/declares.js +140 -123
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.d.ts +1 -0
- package/api/statement/iterations/for.d.ts.map +1 -0
- package/api/statement/iterations/for.js +320 -280
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.d.ts +1 -0
- package/api/statement/iterations/while.d.ts.map +1 -0
- package/api/statement/iterations/while.js +144 -127
- package/api/statement/iterations/while.js.map +1 -1
- package/api/utils.d.ts +1 -0
- package/api/utils.d.ts.map +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -0
- package/package.json +4 -4
- package/scope/event.d.ts +1 -0
- package/scope/event.d.ts.map +1 -0
- package/scope/finalizer.d.ts +1 -0
- package/scope/finalizer.d.ts.map +1 -0
- package/scope/index.d.ts +1 -0
- package/scope/index.d.ts.map +1 -0
- package/scope/pool.d.ts +1 -0
- package/scope/pool.d.ts.map +1 -0
- package/scope/proxy.d.ts +1 -0
- package/scope/proxy.d.ts.map +1 -0
- package/scope/proxy.js +1 -0
- package/scope/proxy.js.map +1 -1
- package/scope/scope.d.ts +1 -0
- package/scope/scope.d.ts.map +1 -0
- package/scope/scope.js +17 -11
- package/scope/scope.js.map +1 -1
- package/scope/stack.d.ts +1 -0
- package/scope/stack.d.ts.map +1 -0
- package/scope/stack.js +21 -13
- package/scope/stack.js.map +1 -1
- package/v8/enums.d.ts +1 -0
- package/v8/enums.d.ts.map +1 -0
- package/v8/enums.js +15 -13
- package/v8/enums.js.map +1 -1
- package/v8/factory.d.ts +1 -0
- package/v8/factory.d.ts.map +1 -0
- package/v8/factory.js +3 -1
- package/v8/factory.js.map +1 -1
- package/v8/index.d.ts +1 -0
- package/v8/index.d.ts.map +1 -0
- package/v8/inline.d.ts +1 -0
- package/v8/inline.d.ts.map +1 -0
- package/v8/inline.js +9 -5
- package/v8/inline.js.map +1 -1
- package/v8/language.d.ts +1 -0
- package/v8/language.d.ts.map +1 -0
- package/v8/node.d.ts +1 -0
- package/v8/node.d.ts.map +1 -0
- package/v8/parser.d.ts +1 -0
- package/v8/parser.d.ts.map +1 -0
- package/v8/parser.js +5 -5
- package/v8/parser.js.map +1 -1
- package/v8/stream.d.ts +1 -0
- package/v8/stream.d.ts.map +1 -0
- package/v8/stream.js +19 -8
- package/v8/stream.js.map +1 -1
- package/v8/token.d.ts +1 -0
- package/v8/token.d.ts.map +1 -0
- package/v8/token.js +365 -359
- package/v8/token.js.map +1 -1
- package/visit/index.d.ts +1 -0
- package/visit/index.d.ts.map +1 -0
- package/visit/visitor.d.ts +1 -0
- package/visit/visitor.d.ts.map +1 -0
package/v8/token.js
CHANGED
|
@@ -1,5 +1,365 @@
|
|
|
1
1
|
import { isSloppy, } from './language.js';
|
|
2
|
-
|
|
2
|
+
class Token {
|
|
3
|
+
name;
|
|
4
|
+
precedence;
|
|
5
|
+
/**
|
|
6
|
+
* ___ ? ___ : ___
|
|
7
|
+
*/
|
|
8
|
+
static CONDITIONAL = new Token('?', 3);
|
|
9
|
+
/**
|
|
10
|
+
* ___ ?? ___
|
|
11
|
+
*/
|
|
12
|
+
static NULLISH = new Token('??', 3);
|
|
13
|
+
/**
|
|
14
|
+
* ___ |> ___ : ___ : ?
|
|
15
|
+
* ___ |> ___ ( ___, ___ , ?)
|
|
16
|
+
*/
|
|
17
|
+
static PIPELINE = new Token('|>', 3);
|
|
18
|
+
/**
|
|
19
|
+
* ___ || ___
|
|
20
|
+
*/
|
|
21
|
+
static OR = new Token('||', 4);
|
|
22
|
+
/**
|
|
23
|
+
* ___ && ___
|
|
24
|
+
*/
|
|
25
|
+
static AND = new Token('&&', 5);
|
|
26
|
+
/**
|
|
27
|
+
* ___ | ___
|
|
28
|
+
*/
|
|
29
|
+
static BIT_OR = new Token('|', 6);
|
|
30
|
+
/**
|
|
31
|
+
* ___ ^ ___
|
|
32
|
+
*/
|
|
33
|
+
static BIT_XOR = new Token('^', 7);
|
|
34
|
+
/**
|
|
35
|
+
* ___ | ___
|
|
36
|
+
*/
|
|
37
|
+
static BIT_AND = new Token('&', 8);
|
|
38
|
+
/**
|
|
39
|
+
* ___ << ___
|
|
40
|
+
*/
|
|
41
|
+
static SHL = new Token('<<', 11);
|
|
42
|
+
/**
|
|
43
|
+
* ___ >> ___
|
|
44
|
+
*/
|
|
45
|
+
static SAR = new Token('>>', 11);
|
|
46
|
+
/**
|
|
47
|
+
* ___ >>> ___
|
|
48
|
+
*/
|
|
49
|
+
static SHR = new Token('>>>', 11);
|
|
50
|
+
/**
|
|
51
|
+
* ___ * ___
|
|
52
|
+
*/
|
|
53
|
+
static MUL = new Token('*', 13);
|
|
54
|
+
/**
|
|
55
|
+
* ___ / ___
|
|
56
|
+
*/
|
|
57
|
+
static DIV = new Token('/', 13);
|
|
58
|
+
/**
|
|
59
|
+
* ___ % ___
|
|
60
|
+
*/
|
|
61
|
+
static MOD = new Token('%', 13);
|
|
62
|
+
/**
|
|
63
|
+
* ___ %% ___
|
|
64
|
+
*/
|
|
65
|
+
static MODULO = new Token('%%', 13);
|
|
66
|
+
/**
|
|
67
|
+
* ___ > ___
|
|
68
|
+
*/
|
|
69
|
+
static LARGER = new Token('>?', 13);
|
|
70
|
+
/**
|
|
71
|
+
* ___ > ___
|
|
72
|
+
*/
|
|
73
|
+
static SMALLER = new Token('<?', 13);
|
|
74
|
+
/**
|
|
75
|
+
* ___ ** ___
|
|
76
|
+
*/
|
|
77
|
+
static EXP = new Token('**', 14);
|
|
78
|
+
/**
|
|
79
|
+
* ___ + ___
|
|
80
|
+
*/
|
|
81
|
+
static ADD = new Token('+', 12);
|
|
82
|
+
/**
|
|
83
|
+
* ___ - ___
|
|
84
|
+
*/
|
|
85
|
+
static SUB = new Token('-', 12);
|
|
86
|
+
/**
|
|
87
|
+
* ! ___
|
|
88
|
+
*/
|
|
89
|
+
static NOT = new Token('!', 0);
|
|
90
|
+
/**
|
|
91
|
+
* ~ ___
|
|
92
|
+
*/
|
|
93
|
+
static BIT_NOT = new Token('~', 0);
|
|
94
|
+
/**
|
|
95
|
+
* ___ < ___
|
|
96
|
+
*/
|
|
97
|
+
static LT = new Token('<', 10);
|
|
98
|
+
/**
|
|
99
|
+
* ___ > ___
|
|
100
|
+
*/
|
|
101
|
+
static GT = new Token('>', 10);
|
|
102
|
+
/**
|
|
103
|
+
* ___++
|
|
104
|
+
*
|
|
105
|
+
* ++___
|
|
106
|
+
*/
|
|
107
|
+
static INC = new Token('++', 0);
|
|
108
|
+
/**
|
|
109
|
+
* ___--
|
|
110
|
+
*
|
|
111
|
+
* --___
|
|
112
|
+
*/
|
|
113
|
+
static DEC = new Token('--', 0);
|
|
114
|
+
/**
|
|
115
|
+
* ___ == ___
|
|
116
|
+
*/
|
|
117
|
+
static EQ = new Token('==', 9);
|
|
118
|
+
/**
|
|
119
|
+
* ___ === ___
|
|
120
|
+
*/
|
|
121
|
+
static EQ_STRICT = new Token('===', 9);
|
|
122
|
+
/**
|
|
123
|
+
* ___ != ___
|
|
124
|
+
*/
|
|
125
|
+
static NE = new Token('!=', 9);
|
|
126
|
+
/**
|
|
127
|
+
* ___ !== ___
|
|
128
|
+
*/
|
|
129
|
+
static NE_STRICT = new Token('!==', 9);
|
|
130
|
+
/**
|
|
131
|
+
* ___ <= ___
|
|
132
|
+
*/
|
|
133
|
+
static LTE = new Token('<=', 10);
|
|
134
|
+
/**
|
|
135
|
+
* ___ >= ___
|
|
136
|
+
*/
|
|
137
|
+
static GTE = new Token('>=', 10);
|
|
138
|
+
/**
|
|
139
|
+
* ___ <=> ___
|
|
140
|
+
*/
|
|
141
|
+
static SPACESHIP = new Token('<=>', 10);
|
|
142
|
+
/**
|
|
143
|
+
* ___ = ___
|
|
144
|
+
*/
|
|
145
|
+
static ASSIGN = new Token('=', 2);
|
|
146
|
+
/**
|
|
147
|
+
* ___ += ___
|
|
148
|
+
*/
|
|
149
|
+
static ADD_ASSIGN = new Token('+=', 2);
|
|
150
|
+
/**
|
|
151
|
+
* ___ -= ___
|
|
152
|
+
*/
|
|
153
|
+
static SUB_ASSIGN = new Token('-=', 2);
|
|
154
|
+
/**
|
|
155
|
+
* ___ *= ___
|
|
156
|
+
*/
|
|
157
|
+
static MUL_ASSIGN = new Token('*=', 2);
|
|
158
|
+
/**
|
|
159
|
+
* ___ /= ___
|
|
160
|
+
*/
|
|
161
|
+
static DIV_ASSIGN = new Token('/=', 2);
|
|
162
|
+
/**
|
|
163
|
+
* ___ %= ___
|
|
164
|
+
*/
|
|
165
|
+
static MOD_ASSIGN = new Token('%=', 2);
|
|
166
|
+
/**
|
|
167
|
+
* ___ %% ___
|
|
168
|
+
*/
|
|
169
|
+
static MODULO_ASSIGN = new Token('%%=', 2);
|
|
170
|
+
/**
|
|
171
|
+
* ___ > ___
|
|
172
|
+
*/
|
|
173
|
+
static LARGER_ASSIGN = new Token('>?=', 2);
|
|
174
|
+
/**
|
|
175
|
+
* ___ > ___
|
|
176
|
+
*/
|
|
177
|
+
static SMALLER_ASSIGN = new Token('<?=', 2);
|
|
178
|
+
/**
|
|
179
|
+
* ___ **= ___
|
|
180
|
+
*/
|
|
181
|
+
static EXP_ASSIGN = new Token('**=', 2);
|
|
182
|
+
/**
|
|
183
|
+
* ___ ^= ___
|
|
184
|
+
*/
|
|
185
|
+
static BIT_XOR_ASSIGN = new Token('^=', 2);
|
|
186
|
+
/**
|
|
187
|
+
* ___ &= ___
|
|
188
|
+
*/
|
|
189
|
+
static BIT_AND_ASSIGN = new Token('&=', 2);
|
|
190
|
+
/**
|
|
191
|
+
* ___ |= ___
|
|
192
|
+
*/
|
|
193
|
+
static BIT_OR_ASSIGN = new Token('|=', 2);
|
|
194
|
+
/**
|
|
195
|
+
* ___ &&= ___
|
|
196
|
+
*/
|
|
197
|
+
static AND_ASSIGN = new Token('&&=', 2);
|
|
198
|
+
/**
|
|
199
|
+
* ___ ||= ___
|
|
200
|
+
*/
|
|
201
|
+
static OR_ASSIGN = new Token('||=', 2);
|
|
202
|
+
/**
|
|
203
|
+
* ___ ??= ___
|
|
204
|
+
*/
|
|
205
|
+
static NULLISH_ASSIGN = new Token('??=', 2);
|
|
206
|
+
/**
|
|
207
|
+
* ___ <<= ___
|
|
208
|
+
*/
|
|
209
|
+
static SHL_ASSIGN = new Token('<<=', 2);
|
|
210
|
+
/**
|
|
211
|
+
* ___ >>= ___
|
|
212
|
+
*/
|
|
213
|
+
static SAR_ASSIGN = new Token('>>=', 2);
|
|
214
|
+
/**
|
|
215
|
+
* ___ >>>= ___
|
|
216
|
+
*/
|
|
217
|
+
static SHR_ASSIGN = new Token('>>>=', 2);
|
|
218
|
+
/**
|
|
219
|
+
* ___ . ___
|
|
220
|
+
*/
|
|
221
|
+
static PERIOD = new Token('.', 0);
|
|
222
|
+
/**
|
|
223
|
+
* ___ ?. ___
|
|
224
|
+
*
|
|
225
|
+
* ___?.[___]
|
|
226
|
+
*
|
|
227
|
+
* ___?.()
|
|
228
|
+
*/
|
|
229
|
+
static QUESTION_PERIOD = new Token('?.', 0);
|
|
230
|
+
/**
|
|
231
|
+
* ___ :: ___
|
|
232
|
+
*/
|
|
233
|
+
static BIND = new Token('::', 0);
|
|
234
|
+
/**
|
|
235
|
+
* ___ ?:: ___
|
|
236
|
+
*
|
|
237
|
+
* ___?::[___]
|
|
238
|
+
*
|
|
239
|
+
* ___?::()
|
|
240
|
+
*/
|
|
241
|
+
static QUESTION_BIND = new Token('?::', 0);
|
|
242
|
+
/**
|
|
243
|
+
* (
|
|
244
|
+
*/
|
|
245
|
+
static LPAREN = new Token('(', 0);
|
|
246
|
+
/**
|
|
247
|
+
* )
|
|
248
|
+
*/
|
|
249
|
+
static RPAREN = new Token(')', 0);
|
|
250
|
+
/**
|
|
251
|
+
* [
|
|
252
|
+
*/
|
|
253
|
+
static LBRACK = new Token('[', 0);
|
|
254
|
+
/**
|
|
255
|
+
* ]
|
|
256
|
+
*/
|
|
257
|
+
static RBRACK = new Token(']', 0);
|
|
258
|
+
/**
|
|
259
|
+
* {
|
|
260
|
+
*/
|
|
261
|
+
static LBRACE = new Token('{', 0);
|
|
262
|
+
/**
|
|
263
|
+
* }
|
|
264
|
+
*/
|
|
265
|
+
static RBRACE = new Token('}', 0);
|
|
266
|
+
/**
|
|
267
|
+
* :
|
|
268
|
+
*/
|
|
269
|
+
static COLON = new Token(':', 0);
|
|
270
|
+
/**
|
|
271
|
+
* ...
|
|
272
|
+
*/
|
|
273
|
+
static ELLIPSIS = new Token('...', 0);
|
|
274
|
+
/**
|
|
275
|
+
* ;
|
|
276
|
+
*/
|
|
277
|
+
static SEMICOLON = new Token(';', 0);
|
|
278
|
+
/**
|
|
279
|
+
* end of source
|
|
280
|
+
*/
|
|
281
|
+
static EOS = new Token('EOS', 0);
|
|
282
|
+
/**
|
|
283
|
+
* =>
|
|
284
|
+
*/
|
|
285
|
+
static ARROW = new Token('=>', 0);
|
|
286
|
+
/**
|
|
287
|
+
* ___, ___, ___
|
|
288
|
+
*/
|
|
289
|
+
static COMMA = new Token(',', 1);
|
|
290
|
+
static ASYNC = new Token('async', 0);
|
|
291
|
+
static AWAIT = new Token('await', 0);
|
|
292
|
+
static BREAK = new Token('break', 0);
|
|
293
|
+
static CASE = new Token('case', 0);
|
|
294
|
+
static CATCH = new Token('catch', 0);
|
|
295
|
+
static CLASS = new Token('class', 0);
|
|
296
|
+
static CONST = new Token('const', 0);
|
|
297
|
+
static CONTINUE = new Token('continue', 0);
|
|
298
|
+
static DEBUGGER = new Token('debugger', 0);
|
|
299
|
+
static DEFAULT = new Token('default', 0);
|
|
300
|
+
static DELETE = new Token('delete', 0);
|
|
301
|
+
static DO = new Token('do', 0);
|
|
302
|
+
static ELSE = new Token('else', 0);
|
|
303
|
+
static ENUM = new Token('enum', 0);
|
|
304
|
+
static EXPORT = new Token('export', 0);
|
|
305
|
+
static EXTENDS = new Token('extends', 0);
|
|
306
|
+
static FALSE_LITERAL = new Token('false', 0);
|
|
307
|
+
static FINALLY = new Token('finally', 0);
|
|
308
|
+
static FOR = new Token('for', 0);
|
|
309
|
+
static FUNCTION = new Token('function', 0);
|
|
310
|
+
static GET = new Token('get', 0);
|
|
311
|
+
static IF = new Token('if', 0);
|
|
312
|
+
static IMPLEMENTS = new Token('implements', 0);
|
|
313
|
+
static IMPORT = new Token('import', 0);
|
|
314
|
+
static PRIVATE_NAME = new Token('PRIVATE_NAME', 0);
|
|
315
|
+
static IN = new Token('in', 10);
|
|
316
|
+
static INSTANCEOF = new Token('instanceof', 10);
|
|
317
|
+
static LET = new Token('let', 0);
|
|
318
|
+
static NEW = new Token('new', 0);
|
|
319
|
+
static NULL_LITERAL = new Token('null', 0);
|
|
320
|
+
static UNDEFINED_LITERAL = new Token('undefined', 0);
|
|
321
|
+
static PACKAGE = new Token('package', 0);
|
|
322
|
+
static INTERFACE = new Token('interface', 0);
|
|
323
|
+
static PRIVATE = new Token('private', 0);
|
|
324
|
+
static PROTECTED = new Token('protected', 0);
|
|
325
|
+
static PUBLIC = new Token('public', 0);
|
|
326
|
+
static RETURN = new Token('return', 0);
|
|
327
|
+
static SET = new Token('set', 0);
|
|
328
|
+
static STATIC = new Token('static', 0);
|
|
329
|
+
static SUPER = new Token('super', 0);
|
|
330
|
+
static SWITCH = new Token('switch', 0);
|
|
331
|
+
static THIS = new Token('this', 0);
|
|
332
|
+
static THROW = new Token('throw', 0);
|
|
333
|
+
static TRUE_LITERAL = new Token('true', 0);
|
|
334
|
+
static TRY = new Token('try', 0);
|
|
335
|
+
static TYPEOF = new Token('typeof', 0);
|
|
336
|
+
static VAR = new Token('var', 0);
|
|
337
|
+
static VOID = new Token('void', 0);
|
|
338
|
+
static WHILE = new Token('while', 0);
|
|
339
|
+
static WITH = new Token('with', 0);
|
|
340
|
+
static YIELD = new Token('yield', 0);
|
|
341
|
+
static NUMBER = new Token('NUMBER', 0);
|
|
342
|
+
static BIGINT = new Token('BIGINT', 0);
|
|
343
|
+
static STRING = new Token('STRING', 0);
|
|
344
|
+
static IDENTIFIER = new Token('IDENTIFIER', 0);
|
|
345
|
+
/**
|
|
346
|
+
* TEMPLATE_SPAN ::
|
|
347
|
+
*
|
|
348
|
+
* ` LiteralChars* ${
|
|
349
|
+
* | } LiteralChars* ${
|
|
350
|
+
*/
|
|
351
|
+
static TEMPLATE_SPAN = new Token('TEMPLATE_SPAN', 0);
|
|
352
|
+
/**
|
|
353
|
+
* TEMPLATE_TAIL ::
|
|
354
|
+
*
|
|
355
|
+
* ` LiteralChars* `
|
|
356
|
+
* | } LiteralChar* `
|
|
357
|
+
*/
|
|
358
|
+
static TEMPLATE_TAIL = new Token('TEMPLATE_TAIL', 0);
|
|
359
|
+
static ILLEGAL = new Token('ILLEGAL', 0);
|
|
360
|
+
static ESCAPED_KEYWORD = new Token('ESCAPED_KEYWORD', 0);
|
|
361
|
+
static WHITESPACE = new Token('WHITESPACE', 0);
|
|
362
|
+
static REGEXP_LITERAL = new Token('REGEXP_LITERAL', 0);
|
|
3
363
|
static isPair(token) {
|
|
4
364
|
switch (token) {
|
|
5
365
|
case Token.LPAREN:
|
|
@@ -372,365 +732,11 @@ export class Token {
|
|
|
372
732
|
return this === token || this.name === token.name;
|
|
373
733
|
}
|
|
374
734
|
}
|
|
375
|
-
|
|
376
|
-
* ___ ? ___ : ___
|
|
377
|
-
*/
|
|
378
|
-
Token.CONDITIONAL = new Token('?', 3);
|
|
379
|
-
/**
|
|
380
|
-
* ___ ?? ___
|
|
381
|
-
*/
|
|
382
|
-
Token.NULLISH = new Token('??', 3);
|
|
383
|
-
/**
|
|
384
|
-
* ___ |> ___ : ___ : ?
|
|
385
|
-
* ___ |> ___ ( ___, ___ , ?)
|
|
386
|
-
*/
|
|
387
|
-
Token.PIPELINE = new Token('|>', 3);
|
|
388
|
-
/**
|
|
389
|
-
* ___ || ___
|
|
390
|
-
*/
|
|
391
|
-
Token.OR = new Token('||', 4);
|
|
392
|
-
/**
|
|
393
|
-
* ___ && ___
|
|
394
|
-
*/
|
|
395
|
-
Token.AND = new Token('&&', 5);
|
|
396
|
-
/**
|
|
397
|
-
* ___ | ___
|
|
398
|
-
*/
|
|
399
|
-
Token.BIT_OR = new Token('|', 6);
|
|
400
|
-
/**
|
|
401
|
-
* ___ ^ ___
|
|
402
|
-
*/
|
|
403
|
-
Token.BIT_XOR = new Token('^', 7);
|
|
404
|
-
/**
|
|
405
|
-
* ___ | ___
|
|
406
|
-
*/
|
|
407
|
-
Token.BIT_AND = new Token('&', 8);
|
|
408
|
-
/**
|
|
409
|
-
* ___ << ___
|
|
410
|
-
*/
|
|
411
|
-
Token.SHL = new Token('<<', 11);
|
|
412
|
-
/**
|
|
413
|
-
* ___ >> ___
|
|
414
|
-
*/
|
|
415
|
-
Token.SAR = new Token('>>', 11);
|
|
416
|
-
/**
|
|
417
|
-
* ___ >>> ___
|
|
418
|
-
*/
|
|
419
|
-
Token.SHR = new Token('>>>', 11);
|
|
420
|
-
/**
|
|
421
|
-
* ___ * ___
|
|
422
|
-
*/
|
|
423
|
-
Token.MUL = new Token('*', 13);
|
|
424
|
-
/**
|
|
425
|
-
* ___ / ___
|
|
426
|
-
*/
|
|
427
|
-
Token.DIV = new Token('/', 13);
|
|
428
|
-
/**
|
|
429
|
-
* ___ % ___
|
|
430
|
-
*/
|
|
431
|
-
Token.MOD = new Token('%', 13);
|
|
432
|
-
/**
|
|
433
|
-
* ___ %% ___
|
|
434
|
-
*/
|
|
435
|
-
Token.MODULO = new Token('%%', 13);
|
|
436
|
-
/**
|
|
437
|
-
* ___ > ___
|
|
438
|
-
*/
|
|
439
|
-
Token.LARGER = new Token('>?', 13);
|
|
440
|
-
/**
|
|
441
|
-
* ___ > ___
|
|
442
|
-
*/
|
|
443
|
-
Token.SMALLER = new Token('<?', 13);
|
|
444
|
-
/**
|
|
445
|
-
* ___ ** ___
|
|
446
|
-
*/
|
|
447
|
-
Token.EXP = new Token('**', 14);
|
|
448
|
-
/**
|
|
449
|
-
* ___ + ___
|
|
450
|
-
*/
|
|
451
|
-
Token.ADD = new Token('+', 12);
|
|
452
|
-
/**
|
|
453
|
-
* ___ - ___
|
|
454
|
-
*/
|
|
455
|
-
Token.SUB = new Token('-', 12);
|
|
456
|
-
/**
|
|
457
|
-
* ! ___
|
|
458
|
-
*/
|
|
459
|
-
Token.NOT = new Token('!', 0);
|
|
460
|
-
/**
|
|
461
|
-
* ~ ___
|
|
462
|
-
*/
|
|
463
|
-
Token.BIT_NOT = new Token('~', 0);
|
|
464
|
-
/**
|
|
465
|
-
* ___ < ___
|
|
466
|
-
*/
|
|
467
|
-
Token.LT = new Token('<', 10);
|
|
468
|
-
/**
|
|
469
|
-
* ___ > ___
|
|
470
|
-
*/
|
|
471
|
-
Token.GT = new Token('>', 10);
|
|
472
|
-
/**
|
|
473
|
-
* ___++
|
|
474
|
-
*
|
|
475
|
-
* ++___
|
|
476
|
-
*/
|
|
477
|
-
Token.INC = new Token('++', 0);
|
|
478
|
-
/**
|
|
479
|
-
* ___--
|
|
480
|
-
*
|
|
481
|
-
* --___
|
|
482
|
-
*/
|
|
483
|
-
Token.DEC = new Token('--', 0);
|
|
484
|
-
/**
|
|
485
|
-
* ___ == ___
|
|
486
|
-
*/
|
|
487
|
-
Token.EQ = new Token('==', 9);
|
|
488
|
-
/**
|
|
489
|
-
* ___ === ___
|
|
490
|
-
*/
|
|
491
|
-
Token.EQ_STRICT = new Token('===', 9);
|
|
492
|
-
/**
|
|
493
|
-
* ___ != ___
|
|
494
|
-
*/
|
|
495
|
-
Token.NE = new Token('!=', 9);
|
|
496
|
-
/**
|
|
497
|
-
* ___ !== ___
|
|
498
|
-
*/
|
|
499
|
-
Token.NE_STRICT = new Token('!==', 9);
|
|
500
|
-
/**
|
|
501
|
-
* ___ <= ___
|
|
502
|
-
*/
|
|
503
|
-
Token.LTE = new Token('<=', 10);
|
|
504
|
-
/**
|
|
505
|
-
* ___ >= ___
|
|
506
|
-
*/
|
|
507
|
-
Token.GTE = new Token('>=', 10);
|
|
508
|
-
/**
|
|
509
|
-
* ___ <=> ___
|
|
510
|
-
*/
|
|
511
|
-
Token.SPACESHIP = new Token('<=>', 10);
|
|
512
|
-
/**
|
|
513
|
-
* ___ = ___
|
|
514
|
-
*/
|
|
515
|
-
Token.ASSIGN = new Token('=', 2);
|
|
516
|
-
/**
|
|
517
|
-
* ___ += ___
|
|
518
|
-
*/
|
|
519
|
-
Token.ADD_ASSIGN = new Token('+=', 2);
|
|
520
|
-
/**
|
|
521
|
-
* ___ -= ___
|
|
522
|
-
*/
|
|
523
|
-
Token.SUB_ASSIGN = new Token('-=', 2);
|
|
524
|
-
/**
|
|
525
|
-
* ___ *= ___
|
|
526
|
-
*/
|
|
527
|
-
Token.MUL_ASSIGN = new Token('*=', 2);
|
|
528
|
-
/**
|
|
529
|
-
* ___ /= ___
|
|
530
|
-
*/
|
|
531
|
-
Token.DIV_ASSIGN = new Token('/=', 2);
|
|
532
|
-
/**
|
|
533
|
-
* ___ %= ___
|
|
534
|
-
*/
|
|
535
|
-
Token.MOD_ASSIGN = new Token('%=', 2);
|
|
536
|
-
/**
|
|
537
|
-
* ___ %% ___
|
|
538
|
-
*/
|
|
539
|
-
Token.MODULO_ASSIGN = new Token('%%=', 2);
|
|
540
|
-
/**
|
|
541
|
-
* ___ > ___
|
|
542
|
-
*/
|
|
543
|
-
Token.LARGER_ASSIGN = new Token('>?=', 2);
|
|
544
|
-
/**
|
|
545
|
-
* ___ > ___
|
|
546
|
-
*/
|
|
547
|
-
Token.SMALLER_ASSIGN = new Token('<?=', 2);
|
|
548
|
-
/**
|
|
549
|
-
* ___ **= ___
|
|
550
|
-
*/
|
|
551
|
-
Token.EXP_ASSIGN = new Token('**=', 2);
|
|
552
|
-
/**
|
|
553
|
-
* ___ ^= ___
|
|
554
|
-
*/
|
|
555
|
-
Token.BIT_XOR_ASSIGN = new Token('^=', 2);
|
|
556
|
-
/**
|
|
557
|
-
* ___ &= ___
|
|
558
|
-
*/
|
|
559
|
-
Token.BIT_AND_ASSIGN = new Token('&=', 2);
|
|
560
|
-
/**
|
|
561
|
-
* ___ |= ___
|
|
562
|
-
*/
|
|
563
|
-
Token.BIT_OR_ASSIGN = new Token('|=', 2);
|
|
564
|
-
/**
|
|
565
|
-
* ___ &&= ___
|
|
566
|
-
*/
|
|
567
|
-
Token.AND_ASSIGN = new Token('&&=', 2);
|
|
568
|
-
/**
|
|
569
|
-
* ___ ||= ___
|
|
570
|
-
*/
|
|
571
|
-
Token.OR_ASSIGN = new Token('||=', 2);
|
|
572
|
-
/**
|
|
573
|
-
* ___ ??= ___
|
|
574
|
-
*/
|
|
575
|
-
Token.NULLISH_ASSIGN = new Token('??=', 2);
|
|
576
|
-
/**
|
|
577
|
-
* ___ <<= ___
|
|
578
|
-
*/
|
|
579
|
-
Token.SHL_ASSIGN = new Token('<<=', 2);
|
|
580
|
-
/**
|
|
581
|
-
* ___ >>= ___
|
|
582
|
-
*/
|
|
583
|
-
Token.SAR_ASSIGN = new Token('>>=', 2);
|
|
584
|
-
/**
|
|
585
|
-
* ___ >>>= ___
|
|
586
|
-
*/
|
|
587
|
-
Token.SHR_ASSIGN = new Token('>>>=', 2);
|
|
588
|
-
/**
|
|
589
|
-
* ___ . ___
|
|
590
|
-
*/
|
|
591
|
-
Token.PERIOD = new Token('.', 0);
|
|
592
|
-
/**
|
|
593
|
-
* ___ ?. ___
|
|
594
|
-
*
|
|
595
|
-
* ___?.[___]
|
|
596
|
-
*
|
|
597
|
-
* ___?.()
|
|
598
|
-
*/
|
|
599
|
-
Token.QUESTION_PERIOD = new Token('?.', 0);
|
|
600
|
-
/**
|
|
601
|
-
* ___ :: ___
|
|
602
|
-
*/
|
|
603
|
-
Token.BIND = new Token('::', 0);
|
|
604
|
-
/**
|
|
605
|
-
* ___ ?:: ___
|
|
606
|
-
*
|
|
607
|
-
* ___?::[___]
|
|
608
|
-
*
|
|
609
|
-
* ___?::()
|
|
610
|
-
*/
|
|
611
|
-
Token.QUESTION_BIND = new Token('?::', 0);
|
|
612
|
-
/**
|
|
613
|
-
* (
|
|
614
|
-
*/
|
|
615
|
-
Token.LPAREN = new Token('(', 0);
|
|
616
|
-
/**
|
|
617
|
-
* )
|
|
618
|
-
*/
|
|
619
|
-
Token.RPAREN = new Token(')', 0);
|
|
620
|
-
/**
|
|
621
|
-
* [
|
|
622
|
-
*/
|
|
623
|
-
Token.LBRACK = new Token('[', 0);
|
|
624
|
-
/**
|
|
625
|
-
* ]
|
|
626
|
-
*/
|
|
627
|
-
Token.RBRACK = new Token(']', 0);
|
|
628
|
-
/**
|
|
629
|
-
* {
|
|
630
|
-
*/
|
|
631
|
-
Token.LBRACE = new Token('{', 0);
|
|
632
|
-
/**
|
|
633
|
-
* }
|
|
634
|
-
*/
|
|
635
|
-
Token.RBRACE = new Token('}', 0);
|
|
636
|
-
/**
|
|
637
|
-
* :
|
|
638
|
-
*/
|
|
639
|
-
Token.COLON = new Token(':', 0);
|
|
640
|
-
/**
|
|
641
|
-
* ...
|
|
642
|
-
*/
|
|
643
|
-
Token.ELLIPSIS = new Token('...', 0);
|
|
644
|
-
/**
|
|
645
|
-
* ;
|
|
646
|
-
*/
|
|
647
|
-
Token.SEMICOLON = new Token(';', 0);
|
|
648
|
-
/**
|
|
649
|
-
* end of source
|
|
650
|
-
*/
|
|
651
|
-
Token.EOS = new Token('EOS', 0);
|
|
652
|
-
/**
|
|
653
|
-
* =>
|
|
654
|
-
*/
|
|
655
|
-
Token.ARROW = new Token('=>', 0);
|
|
656
|
-
/**
|
|
657
|
-
* ___, ___, ___
|
|
658
|
-
*/
|
|
659
|
-
Token.COMMA = new Token(',', 1);
|
|
660
|
-
Token.ASYNC = new Token('async', 0);
|
|
661
|
-
Token.AWAIT = new Token('await', 0);
|
|
662
|
-
Token.BREAK = new Token('break', 0);
|
|
663
|
-
Token.CASE = new Token('case', 0);
|
|
664
|
-
Token.CATCH = new Token('catch', 0);
|
|
665
|
-
Token.CLASS = new Token('class', 0);
|
|
666
|
-
Token.CONST = new Token('const', 0);
|
|
667
|
-
Token.CONTINUE = new Token('continue', 0);
|
|
668
|
-
Token.DEBUGGER = new Token('debugger', 0);
|
|
669
|
-
Token.DEFAULT = new Token('default', 0);
|
|
670
|
-
Token.DELETE = new Token('delete', 0);
|
|
671
|
-
Token.DO = new Token('do', 0);
|
|
672
|
-
Token.ELSE = new Token('else', 0);
|
|
673
|
-
Token.ENUM = new Token('enum', 0);
|
|
674
|
-
Token.EXPORT = new Token('export', 0);
|
|
675
|
-
Token.EXTENDS = new Token('extends', 0);
|
|
676
|
-
Token.FALSE_LITERAL = new Token('false', 0);
|
|
677
|
-
Token.FINALLY = new Token('finally', 0);
|
|
678
|
-
Token.FOR = new Token('for', 0);
|
|
679
|
-
Token.FUNCTION = new Token('function', 0);
|
|
680
|
-
Token.GET = new Token('get', 0);
|
|
681
|
-
Token.IF = new Token('if', 0);
|
|
682
|
-
Token.IMPLEMENTS = new Token('implements', 0);
|
|
683
|
-
Token.IMPORT = new Token('import', 0);
|
|
684
|
-
Token.PRIVATE_NAME = new Token('PRIVATE_NAME', 0);
|
|
685
|
-
Token.IN = new Token('in', 10);
|
|
686
|
-
Token.INSTANCEOF = new Token('instanceof', 10);
|
|
687
|
-
Token.LET = new Token('let', 0);
|
|
688
|
-
Token.NEW = new Token('new', 0);
|
|
689
|
-
Token.NULL_LITERAL = new Token('null', 0);
|
|
690
|
-
Token.UNDEFINED_LITERAL = new Token('undefined', 0);
|
|
691
|
-
Token.PACKAGE = new Token('package', 0);
|
|
692
|
-
Token.INTERFACE = new Token('interface', 0);
|
|
693
|
-
Token.PRIVATE = new Token('private', 0);
|
|
694
|
-
Token.PROTECTED = new Token('protected', 0);
|
|
695
|
-
Token.PUBLIC = new Token('public', 0);
|
|
696
|
-
Token.RETURN = new Token('return', 0);
|
|
697
|
-
Token.SET = new Token('set', 0);
|
|
698
|
-
Token.STATIC = new Token('static', 0);
|
|
699
|
-
Token.SUPER = new Token('super', 0);
|
|
700
|
-
Token.SWITCH = new Token('switch', 0);
|
|
701
|
-
Token.THIS = new Token('this', 0);
|
|
702
|
-
Token.THROW = new Token('throw', 0);
|
|
703
|
-
Token.TRUE_LITERAL = new Token('true', 0);
|
|
704
|
-
Token.TRY = new Token('try', 0);
|
|
705
|
-
Token.TYPEOF = new Token('typeof', 0);
|
|
706
|
-
Token.VAR = new Token('var', 0);
|
|
707
|
-
Token.VOID = new Token('void', 0);
|
|
708
|
-
Token.WHILE = new Token('while', 0);
|
|
709
|
-
Token.WITH = new Token('with', 0);
|
|
710
|
-
Token.YIELD = new Token('yield', 0);
|
|
711
|
-
Token.NUMBER = new Token('NUMBER', 0);
|
|
712
|
-
Token.BIGINT = new Token('BIGINT', 0);
|
|
713
|
-
Token.STRING = new Token('STRING', 0);
|
|
714
|
-
Token.IDENTIFIER = new Token('IDENTIFIER', 0);
|
|
715
|
-
/**
|
|
716
|
-
* TEMPLATE_SPAN ::
|
|
717
|
-
*
|
|
718
|
-
* ` LiteralChars* ${
|
|
719
|
-
* | } LiteralChars* ${
|
|
720
|
-
*/
|
|
721
|
-
Token.TEMPLATE_SPAN = new Token('TEMPLATE_SPAN', 0);
|
|
722
|
-
/**
|
|
723
|
-
* TEMPLATE_TAIL ::
|
|
724
|
-
*
|
|
725
|
-
* ` LiteralChars* `
|
|
726
|
-
* | } LiteralChar* `
|
|
727
|
-
*/
|
|
728
|
-
Token.TEMPLATE_TAIL = new Token('TEMPLATE_TAIL', 0);
|
|
729
|
-
Token.ILLEGAL = new Token('ILLEGAL', 0);
|
|
730
|
-
Token.ESCAPED_KEYWORD = new Token('ESCAPED_KEYWORD', 0);
|
|
731
|
-
Token.WHITESPACE = new Token('WHITESPACE', 0);
|
|
732
|
-
Token.REGEXP_LITERAL = new Token('REGEXP_LITERAL', 0);
|
|
735
|
+
export { Token };
|
|
733
736
|
export class TokenExpression {
|
|
737
|
+
token;
|
|
738
|
+
range;
|
|
739
|
+
value;
|
|
734
740
|
constructor(token, range, value) {
|
|
735
741
|
this.token = token;
|
|
736
742
|
this.range = range;
|