@ibyar/expressions 0.8.6 → 1.1.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.
Files changed (251) hide show
  1. package/README.md +48 -1
  2. package/api/abstract.d.ts +1 -0
  3. package/api/abstract.d.ts.map +1 -0
  4. package/api/abstract.js +12 -0
  5. package/api/abstract.js.map +1 -1
  6. package/api/class/class.d.ts +1 -0
  7. package/api/class/class.d.ts.map +1 -0
  8. package/api/class/class.js +603 -472
  9. package/api/class/class.js.map +1 -1
  10. package/api/class/decorator.d.ts +1 -0
  11. package/api/class/decorator.d.ts.map +1 -0
  12. package/api/class/decorator.js +53 -41
  13. package/api/class/decorator.js.map +1 -1
  14. package/api/computing/call.d.ts +1 -0
  15. package/api/computing/call.d.ts.map +1 -0
  16. package/api/computing/call.js +83 -69
  17. package/api/computing/call.js.map +1 -1
  18. package/api/computing/debugger.d.ts +1 -0
  19. package/api/computing/debugger.d.ts.map +1 -0
  20. package/api/computing/debugger.js +40 -28
  21. package/api/computing/debugger.js.map +1 -1
  22. package/api/computing/new.d.ts +1 -0
  23. package/api/computing/new.d.ts.map +1 -0
  24. package/api/computing/new.js +81 -68
  25. package/api/computing/new.js.map +1 -1
  26. package/api/computing/rest.d.ts +1 -0
  27. package/api/computing/rest.d.ts.map +1 -0
  28. package/api/computing/rest.js +54 -42
  29. package/api/computing/rest.js.map +1 -1
  30. package/api/computing/return.d.ts +1 -0
  31. package/api/computing/return.d.ts.map +1 -0
  32. package/api/computing/return.js +52 -40
  33. package/api/computing/return.js.map +1 -1
  34. package/api/computing/spread.d.ts +1 -0
  35. package/api/computing/spread.d.ts.map +1 -0
  36. package/api/computing/spread.js +70 -58
  37. package/api/computing/spread.js.map +1 -1
  38. package/api/computing/throw.d.ts +1 -0
  39. package/api/computing/throw.d.ts.map +1 -0
  40. package/api/computing/throw.js +216 -175
  41. package/api/computing/throw.js.map +1 -1
  42. package/api/computing/yield.d.ts +1 -0
  43. package/api/computing/yield.d.ts.map +1 -0
  44. package/api/computing/yield.js +60 -47
  45. package/api/computing/yield.js.map +1 -1
  46. package/api/definition/array.d.ts +1 -0
  47. package/api/definition/array.d.ts.map +1 -0
  48. package/api/definition/array.js +147 -122
  49. package/api/definition/array.js.map +1 -1
  50. package/api/definition/bind.d.ts +1 -0
  51. package/api/definition/bind.d.ts.map +1 -0
  52. package/api/definition/bind.js +85 -70
  53. package/api/definition/bind.js.map +1 -1
  54. package/api/definition/comment.d.ts +1 -0
  55. package/api/definition/comment.d.ts.map +1 -0
  56. package/api/definition/comment.js +44 -32
  57. package/api/definition/comment.js.map +1 -1
  58. package/api/definition/function.d.ts +1 -0
  59. package/api/definition/function.d.ts.map +1 -0
  60. package/api/definition/function.js +500 -443
  61. package/api/definition/function.js.map +1 -1
  62. package/api/definition/member.d.ts +1 -0
  63. package/api/definition/member.d.ts.map +1 -0
  64. package/api/definition/member.js +104 -89
  65. package/api/definition/member.js.map +1 -1
  66. package/api/definition/object.d.ts +1 -0
  67. package/api/definition/object.d.ts.map +1 -0
  68. package/api/definition/object.js +243 -200
  69. package/api/definition/object.js.map +1 -1
  70. package/api/definition/statement.d.ts +1 -0
  71. package/api/definition/statement.d.ts.map +1 -0
  72. package/api/definition/statement.js +56 -44
  73. package/api/definition/statement.js.map +1 -1
  74. package/api/definition/values.d.ts +1 -0
  75. package/api/definition/values.d.ts.map +1 -0
  76. package/api/definition/values.js +228 -160
  77. package/api/definition/values.js.map +1 -1
  78. package/api/deserialize/deserialize.d.ts +2 -1
  79. package/api/deserialize/deserialize.d.ts.map +1 -0
  80. package/api/deserialize/deserialize.js +5 -7
  81. package/api/deserialize/deserialize.js.map +1 -1
  82. package/api/deserialize/type-store.d.ts +1 -0
  83. package/api/deserialize/type-store.d.ts.map +1 -0
  84. package/api/expression.d.ts +1 -0
  85. package/api/expression.d.ts.map +1 -0
  86. package/api/index.d.ts +1 -0
  87. package/api/index.d.ts.map +1 -0
  88. package/api/module/common.d.ts +1 -0
  89. package/api/module/common.d.ts.map +1 -0
  90. package/api/module/common.js +63 -50
  91. package/api/module/common.js.map +1 -1
  92. package/api/module/export.d.ts +1 -0
  93. package/api/module/export.d.ts.map +1 -0
  94. package/api/module/export.js +343 -290
  95. package/api/module/export.js.map +1 -1
  96. package/api/module/import.d.ts +1 -0
  97. package/api/module/import.d.ts.map +1 -0
  98. package/api/module/import.js +318 -253
  99. package/api/module/import.js.map +1 -1
  100. package/api/operators/assignment.d.ts +1 -0
  101. package/api/operators/assignment.d.ts.map +1 -0
  102. package/api/operators/assignment.js +88 -75
  103. package/api/operators/assignment.js.map +1 -1
  104. package/api/operators/await.d.ts +1 -0
  105. package/api/operators/await.d.ts.map +1 -0
  106. package/api/operators/await.js +54 -42
  107. package/api/operators/await.js.map +1 -1
  108. package/api/operators/binary.d.ts +1 -0
  109. package/api/operators/binary.d.ts.map +1 -0
  110. package/api/operators/binary.js +78 -64
  111. package/api/operators/binary.js.map +1 -1
  112. package/api/operators/chaining.d.ts +1 -0
  113. package/api/operators/chaining.d.ts.map +1 -0
  114. package/api/operators/chaining.js +56 -44
  115. package/api/operators/chaining.js.map +1 -1
  116. package/api/operators/comma.d.ts +1 -0
  117. package/api/operators/comma.d.ts.map +1 -0
  118. package/api/operators/comma.js +53 -41
  119. package/api/operators/comma.js.map +1 -1
  120. package/api/operators/grouping.d.ts +1 -0
  121. package/api/operators/grouping.d.ts.map +1 -0
  122. package/api/operators/grouping.js +51 -39
  123. package/api/operators/grouping.js.map +1 -1
  124. package/api/operators/logical.d.ts +1 -0
  125. package/api/operators/logical.d.ts.map +1 -0
  126. package/api/operators/logical.js +51 -37
  127. package/api/operators/logical.js.map +1 -1
  128. package/api/operators/pipeline.d.ts +1 -0
  129. package/api/operators/pipeline.d.ts.map +1 -0
  130. package/api/operators/pipeline.js +95 -81
  131. package/api/operators/pipeline.js.map +1 -1
  132. package/api/operators/ternary.d.ts +1 -0
  133. package/api/operators/ternary.d.ts.map +1 -0
  134. package/api/operators/ternary.js +69 -55
  135. package/api/operators/ternary.js.map +1 -1
  136. package/api/operators/types.d.ts +1 -0
  137. package/api/operators/types.d.ts.map +1 -0
  138. package/api/operators/unary.d.ts +1 -0
  139. package/api/operators/unary.d.ts.map +1 -0
  140. package/api/operators/unary.js +97 -82
  141. package/api/operators/unary.js.map +1 -1
  142. package/api/operators/update.d.ts +1 -0
  143. package/api/operators/update.d.ts.map +1 -0
  144. package/api/operators/update.js +78 -62
  145. package/api/operators/update.js.map +1 -1
  146. package/api/program.d.ts +1 -0
  147. package/api/program.d.ts.map +1 -0
  148. package/api/program.js +53 -40
  149. package/api/program.js.map +1 -1
  150. package/api/statement/control/block.d.ts +1 -0
  151. package/api/statement/control/block.d.ts.map +1 -0
  152. package/api/statement/control/block.js +65 -53
  153. package/api/statement/control/block.js.map +1 -1
  154. package/api/statement/control/empty.d.ts +1 -1
  155. package/api/statement/control/empty.d.ts.map +1 -0
  156. package/api/statement/control/empty.js +43 -33
  157. package/api/statement/control/empty.js.map +1 -1
  158. package/api/statement/control/if.d.ts +1 -0
  159. package/api/statement/control/if.d.ts.map +1 -0
  160. package/api/statement/control/if.js +79 -65
  161. package/api/statement/control/if.js.map +1 -1
  162. package/api/statement/control/switch.d.ts +1 -0
  163. package/api/statement/control/switch.d.ts.map +1 -0
  164. package/api/statement/control/switch.js +180 -141
  165. package/api/statement/control/switch.js.map +1 -1
  166. package/api/statement/control/terminate.d.ts +1 -2
  167. package/api/statement/control/terminate.d.ts.map +1 -0
  168. package/api/statement/control/terminate.js +117 -78
  169. package/api/statement/control/terminate.js.map +1 -1
  170. package/api/statement/control/with.d.ts +1 -0
  171. package/api/statement/control/with.d.ts.map +1 -0
  172. package/api/statement/control/with.js +72 -59
  173. package/api/statement/control/with.js.map +1 -1
  174. package/api/statement/declarations/declares.d.ts +1 -0
  175. package/api/statement/declarations/declares.d.ts.map +1 -0
  176. package/api/statement/declarations/declares.js +148 -121
  177. package/api/statement/declarations/declares.js.map +1 -1
  178. package/api/statement/iterations/for.d.ts +1 -0
  179. package/api/statement/iterations/for.d.ts.map +1 -0
  180. package/api/statement/iterations/for.js +337 -277
  181. package/api/statement/iterations/for.js.map +1 -1
  182. package/api/statement/iterations/while.d.ts +1 -0
  183. package/api/statement/iterations/while.d.ts.map +1 -0
  184. package/api/statement/iterations/while.js +152 -125
  185. package/api/statement/iterations/while.js.map +1 -1
  186. package/api/utils.d.ts +1 -0
  187. package/api/utils.d.ts.map +1 -0
  188. package/index.d.ts +1 -0
  189. package/index.d.ts.map +1 -0
  190. package/package.json +5 -5
  191. package/scope/builder.d.ts +27 -0
  192. package/scope/builder.d.ts.map +1 -0
  193. package/scope/builder.js +73 -0
  194. package/scope/builder.js.map +1 -0
  195. package/scope/event.d.ts +1 -0
  196. package/scope/event.d.ts.map +1 -0
  197. package/scope/finalizer.d.ts +1 -0
  198. package/scope/finalizer.d.ts.map +1 -0
  199. package/scope/index.d.ts +1 -0
  200. package/scope/index.d.ts.map +1 -0
  201. package/scope/pool.d.ts +1 -0
  202. package/scope/pool.d.ts.map +1 -0
  203. package/scope/proxy.d.ts +1 -0
  204. package/scope/proxy.d.ts.map +1 -0
  205. package/scope/proxy.js +1 -0
  206. package/scope/proxy.js.map +1 -1
  207. package/scope/scope.d.ts +1 -0
  208. package/scope/scope.d.ts.map +1 -0
  209. package/scope/scope.js +17 -11
  210. package/scope/scope.js.map +1 -1
  211. package/scope/stack.d.ts +1 -0
  212. package/scope/stack.d.ts.map +1 -0
  213. package/scope/stack.js +22 -14
  214. package/scope/stack.js.map +1 -1
  215. package/v8/enums.d.ts +1 -0
  216. package/v8/enums.d.ts.map +1 -0
  217. package/v8/enums.js +11 -11
  218. package/v8/enums.js.map +1 -1
  219. package/v8/factory.d.ts +1 -0
  220. package/v8/factory.d.ts.map +1 -0
  221. package/v8/factory.js +3 -1
  222. package/v8/factory.js.map +1 -1
  223. package/v8/index.d.ts +1 -0
  224. package/v8/index.d.ts.map +1 -0
  225. package/v8/inline.d.ts +1 -0
  226. package/v8/inline.d.ts.map +1 -0
  227. package/v8/inline.js +9 -5
  228. package/v8/inline.js.map +1 -1
  229. package/v8/language.d.ts +1 -0
  230. package/v8/language.d.ts.map +1 -0
  231. package/v8/node.d.ts +1 -0
  232. package/v8/node.d.ts.map +1 -0
  233. package/v8/parser.d.ts +1 -0
  234. package/v8/parser.d.ts.map +1 -0
  235. package/v8/parser.js +5 -5
  236. package/v8/parser.js.map +1 -1
  237. package/v8/stream.d.ts +1 -0
  238. package/v8/stream.d.ts.map +1 -0
  239. package/v8/stream.js +17 -7
  240. package/v8/stream.js.map +1 -1
  241. package/v8/token.d.ts +1 -0
  242. package/v8/token.d.ts.map +1 -0
  243. package/v8/token.js +363 -358
  244. package/v8/token.js.map +1 -1
  245. package/visit/index.d.ts +1 -0
  246. package/visit/index.d.ts.map +1 -0
  247. package/visit/visitor.d.ts +1 -0
  248. package/visit/visitor.d.ts.map +1 -0
  249. package/v8/nodes.d.ts +0 -0
  250. package/v8/nodes.js +0 -2
  251. package/v8/nodes.js.map +0 -1
package/v8/token.js CHANGED
@@ -1,5 +1,365 @@
1
1
  import { isSloppy, } from './language.js';
2
2
  export 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,10 @@ 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);
733
735
  export class TokenExpression {
736
+ token;
737
+ range;
738
+ value;
734
739
  constructor(token, range, value) {
735
740
  this.token = token;
736
741
  this.range = range;