@ibyar/expressions 0.5.6 → 0.6.1

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 (97) hide show
  1. package/api/abstract.js +5 -0
  2. package/api/abstract.js.map +1 -1
  3. package/api/class/class.d.ts +28 -13
  4. package/api/class/class.js +46 -41
  5. package/api/class/class.js.map +1 -1
  6. package/api/computing/return.d.ts +4 -0
  7. package/api/computing/return.js +5 -0
  8. package/api/computing/return.js.map +1 -1
  9. package/api/computing/throw.d.ts +4 -0
  10. package/api/computing/throw.js +4 -0
  11. package/api/computing/throw.js.map +1 -1
  12. package/api/definition/bind.d.ts +6 -0
  13. package/api/definition/bind.js +6 -0
  14. package/api/definition/bind.js.map +1 -1
  15. package/api/definition/function.js +6 -5
  16. package/api/definition/function.js.map +1 -1
  17. package/api/definition/member.js.map +1 -1
  18. package/api/definition/object.js +1 -1
  19. package/api/definition/object.js.map +1 -1
  20. package/api/definition/values.d.ts +12 -3
  21. package/api/definition/values.js +25 -4
  22. package/api/definition/values.js.map +1 -1
  23. package/api/deserialize/deserialize.d.ts +5 -0
  24. package/api/deserialize/deserialize.js +5 -0
  25. package/api/deserialize/deserialize.js.map +1 -1
  26. package/api/expression.d.ts +151 -5
  27. package/api/expression.js.map +1 -1
  28. package/api/module/export.d.ts +63 -0
  29. package/api/module/export.js +64 -1
  30. package/api/module/export.js.map +1 -1
  31. package/api/module/import.d.ts +53 -0
  32. package/api/module/import.js +53 -0
  33. package/api/module/import.js.map +1 -1
  34. package/api/operators/grouping.d.ts +7 -0
  35. package/api/operators/grouping.js +7 -0
  36. package/api/operators/grouping.js.map +1 -1
  37. package/api/operators/pipeline.d.ts +12 -0
  38. package/api/operators/pipeline.js +12 -0
  39. package/api/operators/pipeline.js.map +1 -1
  40. package/api/operators/unary.js +3 -0
  41. package/api/operators/unary.js.map +1 -1
  42. package/api/program.d.ts +2 -2
  43. package/api/program.js.map +1 -1
  44. package/api/statement/control/block.d.ts +4 -0
  45. package/api/statement/control/block.js +4 -0
  46. package/api/statement/control/block.js.map +1 -1
  47. package/api/statement/control/empty.d.ts +7 -0
  48. package/api/statement/control/empty.js +7 -0
  49. package/api/statement/control/empty.js.map +1 -1
  50. package/api/statement/control/if.d.ts +5 -0
  51. package/api/statement/control/if.js +5 -0
  52. package/api/statement/control/if.js.map +1 -1
  53. package/api/statement/control/switch.d.ts +6 -0
  54. package/api/statement/control/switch.js +9 -0
  55. package/api/statement/control/switch.js.map +1 -1
  56. package/api/statement/control/terminate.d.ts +8 -0
  57. package/api/statement/control/terminate.js +8 -0
  58. package/api/statement/control/terminate.js.map +1 -1
  59. package/api/statement/iterations/for.d.ts +5 -0
  60. package/api/statement/iterations/for.js +13 -0
  61. package/api/statement/iterations/for.js.map +1 -1
  62. package/api/statement/iterations/while.d.ts +6 -0
  63. package/api/statement/iterations/while.js +10 -0
  64. package/api/statement/iterations/while.js.map +1 -1
  65. package/package.json +5 -3
  66. package/scope/event.d.ts +3 -3
  67. package/scope/event.js +2 -2
  68. package/scope/event.js.map +1 -1
  69. package/scope/pool.d.ts +7 -0
  70. package/scope/pool.js +29 -0
  71. package/scope/pool.js.map +1 -0
  72. package/scope/proxy.d.ts +6 -9
  73. package/scope/proxy.js +22 -31
  74. package/scope/proxy.js.map +1 -1
  75. package/scope/scope.d.ts +161 -38
  76. package/scope/scope.js +260 -106
  77. package/scope/scope.js.map +1 -1
  78. package/scope/stack.d.ts +95 -19
  79. package/scope/stack.js +13 -0
  80. package/scope/stack.js.map +1 -1
  81. package/v8/enums.js +31 -0
  82. package/v8/enums.js.map +1 -1
  83. package/v8/inline.d.ts +36 -0
  84. package/v8/inline.js +407 -5
  85. package/v8/inline.js.map +1 -1
  86. package/v8/nodes.js +2 -1
  87. package/v8/nodes.js.map +1 -1
  88. package/v8/parser.d.ts +8 -0
  89. package/v8/parser.js +304 -1
  90. package/v8/parser.js.map +1 -1
  91. package/v8/stream.d.ts +4 -0
  92. package/v8/stream.js +79 -17
  93. package/v8/stream.js.map +1 -1
  94. package/v8/token.d.ts +229 -0
  95. package/v8/token.js +236 -1
  96. package/v8/token.js.map +1 -1
  97. package/visit/visitor.d.ts +3 -0
package/v8/token.d.ts CHANGED
@@ -3,73 +3,290 @@ import { LanguageMode } from './enums.js';
3
3
  export declare class Token {
4
4
  private name;
5
5
  private precedence;
6
+ /**
7
+ * ___ ? ___ : ___
8
+ */
6
9
  static readonly CONDITIONAL: Token;
10
+ /**
11
+ * ___ ?? ___
12
+ */
7
13
  static readonly NULLISH: Token;
14
+ /**
15
+ * ___ |> ___ : ___ : ?
16
+ * ___ |> ___ ( ___, ___ , ?)
17
+ */
8
18
  static readonly PIPELINE: Token;
19
+ /**
20
+ * ___ || ___
21
+ */
9
22
  static readonly OR: Token;
23
+ /**
24
+ * ___ && ___
25
+ */
10
26
  static readonly AND: Token;
27
+ /**
28
+ * ___ | ___
29
+ */
11
30
  static readonly BIT_OR: Token;
31
+ /**
32
+ * ___ ^ ___
33
+ */
12
34
  static readonly BIT_XOR: Token;
35
+ /**
36
+ * ___ | ___
37
+ */
13
38
  static readonly BIT_AND: Token;
39
+ /**
40
+ * ___ << ___
41
+ */
14
42
  static readonly SHL: Token;
43
+ /**
44
+ * ___ >> ___
45
+ */
15
46
  static readonly SAR: Token;
47
+ /**
48
+ * ___ >>> ___
49
+ */
16
50
  static readonly SHR: Token;
51
+ /**
52
+ * ___ * ___
53
+ */
17
54
  static readonly MUL: Token;
55
+ /**
56
+ * ___ / ___
57
+ */
18
58
  static readonly DIV: Token;
59
+ /**
60
+ * ___ % ___
61
+ */
19
62
  static readonly MOD: Token;
63
+ /**
64
+ * ___ %% ___
65
+ */
20
66
  static readonly MODULO: Token;
67
+ /**
68
+ * ___ > ___
69
+ */
21
70
  static readonly LARGER: Token;
71
+ /**
72
+ * ___ > ___
73
+ */
22
74
  static readonly SMALLER: Token;
75
+ /**
76
+ * ___ ** ___
77
+ */
23
78
  static readonly EXP: Token;
79
+ /**
80
+ * ___ + ___
81
+ */
24
82
  static readonly ADD: Token;
83
+ /**
84
+ * ___ - ___
85
+ */
25
86
  static readonly SUB: Token;
87
+ /**
88
+ * ! ___
89
+ */
26
90
  static readonly NOT: Token;
91
+ /**
92
+ * ~ ___
93
+ */
27
94
  static readonly BIT_NOT: Token;
95
+ /**
96
+ * ___ < ___
97
+ */
28
98
  static readonly LT: Token;
99
+ /**
100
+ * ___ > ___
101
+ */
29
102
  static readonly GT: Token;
103
+ /**
104
+ * ___++
105
+ *
106
+ * ++___
107
+ */
30
108
  static readonly INC: Token;
109
+ /**
110
+ * ___--
111
+ *
112
+ * --___
113
+ */
31
114
  static readonly DEC: Token;
115
+ /**
116
+ * ___ == ___
117
+ */
32
118
  static readonly EQ: Token;
119
+ /**
120
+ * ___ === ___
121
+ */
33
122
  static readonly EQ_STRICT: Token;
123
+ /**
124
+ * ___ != ___
125
+ */
34
126
  static readonly NE: Token;
127
+ /**
128
+ * ___ !== ___
129
+ */
35
130
  static readonly NE_STRICT: Token;
131
+ /**
132
+ * ___ <= ___
133
+ */
36
134
  static readonly LTE: Token;
135
+ /**
136
+ * ___ >= ___
137
+ */
37
138
  static readonly GTE: Token;
139
+ /**
140
+ * ___ <=> ___
141
+ */
38
142
  static readonly SPACESHIP: Token;
143
+ /**
144
+ * ___ = ___
145
+ */
39
146
  static readonly ASSIGN: Token;
147
+ /**
148
+ * ___ += ___
149
+ */
40
150
  static readonly ADD_ASSIGN: Token;
151
+ /**
152
+ * ___ -= ___
153
+ */
41
154
  static readonly SUB_ASSIGN: Token;
155
+ /**
156
+ * ___ *= ___
157
+ */
42
158
  static readonly MUL_ASSIGN: Token;
159
+ /**
160
+ * ___ /= ___
161
+ */
43
162
  static readonly DIV_ASSIGN: Token;
163
+ /**
164
+ * ___ %= ___
165
+ */
44
166
  static readonly MOD_ASSIGN: Token;
167
+ /**
168
+ * ___ %% ___
169
+ */
45
170
  static readonly MODULO_ASSIGN: Token;
171
+ /**
172
+ * ___ > ___
173
+ */
46
174
  static readonly LARGER_ASSIGN: Token;
175
+ /**
176
+ * ___ > ___
177
+ */
47
178
  static readonly SMALLER_ASSIGN: Token;
179
+ /**
180
+ * ___ **= ___
181
+ */
48
182
  static readonly EXP_ASSIGN: Token;
183
+ /**
184
+ * ___ ^= ___
185
+ */
49
186
  static readonly BIT_XOR_ASSIGN: Token;
187
+ /**
188
+ * ___ &= ___
189
+ */
50
190
  static readonly BIT_AND_ASSIGN: Token;
191
+ /**
192
+ * ___ |= ___
193
+ */
51
194
  static readonly BIT_OR_ASSIGN: Token;
195
+ /**
196
+ * ___ &&= ___
197
+ */
52
198
  static readonly AND_ASSIGN: Token;
199
+ /**
200
+ * ___ ||= ___
201
+ */
53
202
  static readonly OR_ASSIGN: Token;
203
+ /**
204
+ * ___ ??= ___
205
+ */
54
206
  static readonly NULLISH_ASSIGN: Token;
207
+ /**
208
+ * ___ <<= ___
209
+ */
55
210
  static readonly SHL_ASSIGN: Token;
211
+ /**
212
+ * ___ >>= ___
213
+ */
56
214
  static readonly SAR_ASSIGN: Token;
215
+ /**
216
+ * ___ >>>= ___
217
+ */
57
218
  static readonly SHR_ASSIGN: Token;
219
+ /**
220
+ * ___ . ___
221
+ */
58
222
  static readonly PERIOD: Token;
223
+ /**
224
+ * ___ ?. ___
225
+ *
226
+ * ___?.[___]
227
+ *
228
+ * ___?.()
229
+ */
59
230
  static readonly QUESTION_PERIOD: Token;
231
+ /**
232
+ * ___ :: ___
233
+ */
60
234
  static readonly BIND: Token;
235
+ /**
236
+ * ___ ?:: ___
237
+ *
238
+ * ___?::[___]
239
+ *
240
+ * ___?::()
241
+ */
61
242
  static readonly QUESTION_BIND: Token;
243
+ /**
244
+ * (
245
+ */
62
246
  static readonly LPAREN: Token;
247
+ /**
248
+ * )
249
+ */
63
250
  static readonly RPAREN: Token;
251
+ /**
252
+ * [
253
+ */
64
254
  static readonly LBRACK: Token;
255
+ /**
256
+ * ]
257
+ */
65
258
  static readonly RBRACK: Token;
259
+ /**
260
+ * {
261
+ */
66
262
  static readonly LBRACE: Token;
263
+ /**
264
+ * }
265
+ */
67
266
  static readonly RBRACE: Token;
267
+ /**
268
+ * :
269
+ */
68
270
  static readonly COLON: Token;
271
+ /**
272
+ * ...
273
+ */
69
274
  static readonly ELLIPSIS: Token;
275
+ /**
276
+ * ;
277
+ */
70
278
  static readonly SEMICOLON: Token;
279
+ /**
280
+ * end of source
281
+ */
71
282
  static readonly EOS: Token;
283
+ /**
284
+ * =>
285
+ */
72
286
  static readonly ARROW: Token;
287
+ /**
288
+ * ___, ___, ___
289
+ */
73
290
  static readonly COMMA: Token;
74
291
  static readonly ASYNC: Token;
75
292
  static readonly AWAIT: Token;
@@ -125,7 +342,19 @@ export declare class Token {
125
342
  static readonly BIGINT: Token;
126
343
  static readonly STRING: Token;
127
344
  static readonly IDENTIFIER: Token;
345
+ /**
346
+ * TEMPLATE_SPAN ::
347
+ *
348
+ * ` LiteralChars* ${
349
+ * | } LiteralChars* ${
350
+ */
128
351
  static readonly TEMPLATE_SPAN: Token;
352
+ /**
353
+ * TEMPLATE_TAIL ::
354
+ *
355
+ * ` LiteralChars* `
356
+ * | } LiteralChar* `
357
+ */
129
358
  static readonly TEMPLATE_TAIL: Token;
130
359
  static readonly ILLEGAL: Token;
131
360
  static readonly ESCAPED_KEYWORD: Token;
package/v8/token.js CHANGED
@@ -93,6 +93,7 @@ export class Token {
93
93
  case Token.BIGINT:
94
94
  case Token.STRING:
95
95
  case Token.REGEXP_LITERAL:
96
+ // case Token.SMI:
96
97
  return true;
97
98
  }
98
99
  return false;
@@ -165,13 +166,18 @@ export class Token {
165
166
  case Token.LBRACK:
166
167
  case Token.IDENTIFIER:
167
168
  case Token.STATIC:
168
- case Token.LET:
169
+ case Token.LET: // `let let;` is disallowed by static semantics, but the
170
+ // token must be first interpreted as a keyword in order
171
+ // for those semantics to apply. This ensures that ASI is
172
+ // not honored when a LineTerminator separates the tokens.
169
173
  case Token.YIELD:
170
174
  case Token.AWAIT:
171
175
  case Token.GET:
172
176
  case Token.SET:
173
177
  case Token.ASYNC:
174
178
  return true;
179
+ // case Token.FUTURE_STRICT_RESERVED_WORD:
180
+ // return is_sloppy(language_mode());
175
181
  default:
176
182
  return false;
177
183
  }
@@ -366,73 +372,290 @@ export class Token {
366
372
  return this === token || this.name === token.name;
367
373
  }
368
374
  }
375
+ /**
376
+ * ___ ? ___ : ___
377
+ */
369
378
  Token.CONDITIONAL = new Token('?', 3);
379
+ /**
380
+ * ___ ?? ___
381
+ */
370
382
  Token.NULLISH = new Token('??', 3);
383
+ /**
384
+ * ___ |> ___ : ___ : ?
385
+ * ___ |> ___ ( ___, ___ , ?)
386
+ */
371
387
  Token.PIPELINE = new Token('|>', 3);
388
+ /**
389
+ * ___ || ___
390
+ */
372
391
  Token.OR = new Token('||', 4);
392
+ /**
393
+ * ___ && ___
394
+ */
373
395
  Token.AND = new Token('&&', 5);
396
+ /**
397
+ * ___ | ___
398
+ */
374
399
  Token.BIT_OR = new Token('|', 6);
400
+ /**
401
+ * ___ ^ ___
402
+ */
375
403
  Token.BIT_XOR = new Token('^', 7);
404
+ /**
405
+ * ___ | ___
406
+ */
376
407
  Token.BIT_AND = new Token('&', 8);
408
+ /**
409
+ * ___ << ___
410
+ */
377
411
  Token.SHL = new Token('<<', 11);
412
+ /**
413
+ * ___ >> ___
414
+ */
378
415
  Token.SAR = new Token('>>', 11);
416
+ /**
417
+ * ___ >>> ___
418
+ */
379
419
  Token.SHR = new Token('>>>', 11);
420
+ /**
421
+ * ___ * ___
422
+ */
380
423
  Token.MUL = new Token('*', 13);
424
+ /**
425
+ * ___ / ___
426
+ */
381
427
  Token.DIV = new Token('/', 13);
428
+ /**
429
+ * ___ % ___
430
+ */
382
431
  Token.MOD = new Token('%', 13);
432
+ /**
433
+ * ___ %% ___
434
+ */
383
435
  Token.MODULO = new Token('%%', 13);
436
+ /**
437
+ * ___ > ___
438
+ */
384
439
  Token.LARGER = new Token('>?', 13);
440
+ /**
441
+ * ___ > ___
442
+ */
385
443
  Token.SMALLER = new Token('<?', 13);
444
+ /**
445
+ * ___ ** ___
446
+ */
386
447
  Token.EXP = new Token('**', 14);
448
+ /**
449
+ * ___ + ___
450
+ */
387
451
  Token.ADD = new Token('+', 12);
452
+ /**
453
+ * ___ - ___
454
+ */
388
455
  Token.SUB = new Token('-', 12);
456
+ /**
457
+ * ! ___
458
+ */
389
459
  Token.NOT = new Token('!', 0);
460
+ /**
461
+ * ~ ___
462
+ */
390
463
  Token.BIT_NOT = new Token('~', 0);
464
+ /**
465
+ * ___ < ___
466
+ */
391
467
  Token.LT = new Token('<', 10);
468
+ /**
469
+ * ___ > ___
470
+ */
392
471
  Token.GT = new Token('>', 10);
472
+ /**
473
+ * ___++
474
+ *
475
+ * ++___
476
+ */
393
477
  Token.INC = new Token('++', 0);
478
+ /**
479
+ * ___--
480
+ *
481
+ * --___
482
+ */
394
483
  Token.DEC = new Token('--', 0);
484
+ /**
485
+ * ___ == ___
486
+ */
395
487
  Token.EQ = new Token('==', 9);
488
+ /**
489
+ * ___ === ___
490
+ */
396
491
  Token.EQ_STRICT = new Token('===', 9);
492
+ /**
493
+ * ___ != ___
494
+ */
397
495
  Token.NE = new Token('!=', 9);
496
+ /**
497
+ * ___ !== ___
498
+ */
398
499
  Token.NE_STRICT = new Token('!==', 9);
500
+ /**
501
+ * ___ <= ___
502
+ */
399
503
  Token.LTE = new Token('<=', 10);
504
+ /**
505
+ * ___ >= ___
506
+ */
400
507
  Token.GTE = new Token('>=', 10);
508
+ /**
509
+ * ___ <=> ___
510
+ */
401
511
  Token.SPACESHIP = new Token('<=>', 10);
512
+ /**
513
+ * ___ = ___
514
+ */
402
515
  Token.ASSIGN = new Token('=', 2);
516
+ /**
517
+ * ___ += ___
518
+ */
403
519
  Token.ADD_ASSIGN = new Token('+=', 2);
520
+ /**
521
+ * ___ -= ___
522
+ */
404
523
  Token.SUB_ASSIGN = new Token('-=', 2);
524
+ /**
525
+ * ___ *= ___
526
+ */
405
527
  Token.MUL_ASSIGN = new Token('*=', 2);
528
+ /**
529
+ * ___ /= ___
530
+ */
406
531
  Token.DIV_ASSIGN = new Token('/=', 2);
532
+ /**
533
+ * ___ %= ___
534
+ */
407
535
  Token.MOD_ASSIGN = new Token('%=', 2);
536
+ /**
537
+ * ___ %% ___
538
+ */
408
539
  Token.MODULO_ASSIGN = new Token('%%=', 2);
540
+ /**
541
+ * ___ > ___
542
+ */
409
543
  Token.LARGER_ASSIGN = new Token('>?=', 2);
544
+ /**
545
+ * ___ > ___
546
+ */
410
547
  Token.SMALLER_ASSIGN = new Token('<?=', 2);
548
+ /**
549
+ * ___ **= ___
550
+ */
411
551
  Token.EXP_ASSIGN = new Token('**=', 2);
552
+ /**
553
+ * ___ ^= ___
554
+ */
412
555
  Token.BIT_XOR_ASSIGN = new Token('^=', 2);
556
+ /**
557
+ * ___ &= ___
558
+ */
413
559
  Token.BIT_AND_ASSIGN = new Token('&=', 2);
560
+ /**
561
+ * ___ |= ___
562
+ */
414
563
  Token.BIT_OR_ASSIGN = new Token('|=', 2);
564
+ /**
565
+ * ___ &&= ___
566
+ */
415
567
  Token.AND_ASSIGN = new Token('&&=', 2);
568
+ /**
569
+ * ___ ||= ___
570
+ */
416
571
  Token.OR_ASSIGN = new Token('||=', 2);
572
+ /**
573
+ * ___ ??= ___
574
+ */
417
575
  Token.NULLISH_ASSIGN = new Token('??=', 2);
576
+ /**
577
+ * ___ <<= ___
578
+ */
418
579
  Token.SHL_ASSIGN = new Token('<<=', 2);
580
+ /**
581
+ * ___ >>= ___
582
+ */
419
583
  Token.SAR_ASSIGN = new Token('>>=', 2);
584
+ /**
585
+ * ___ >>>= ___
586
+ */
420
587
  Token.SHR_ASSIGN = new Token('>>>=', 2);
588
+ /**
589
+ * ___ . ___
590
+ */
421
591
  Token.PERIOD = new Token('.', 0);
592
+ /**
593
+ * ___ ?. ___
594
+ *
595
+ * ___?.[___]
596
+ *
597
+ * ___?.()
598
+ */
422
599
  Token.QUESTION_PERIOD = new Token('?.', 0);
600
+ /**
601
+ * ___ :: ___
602
+ */
423
603
  Token.BIND = new Token('::', 0);
604
+ /**
605
+ * ___ ?:: ___
606
+ *
607
+ * ___?::[___]
608
+ *
609
+ * ___?::()
610
+ */
424
611
  Token.QUESTION_BIND = new Token('?::', 0);
612
+ /**
613
+ * (
614
+ */
425
615
  Token.LPAREN = new Token('(', 0);
616
+ /**
617
+ * )
618
+ */
426
619
  Token.RPAREN = new Token(')', 0);
620
+ /**
621
+ * [
622
+ */
427
623
  Token.LBRACK = new Token('[', 0);
624
+ /**
625
+ * ]
626
+ */
428
627
  Token.RBRACK = new Token(']', 0);
628
+ /**
629
+ * {
630
+ */
429
631
  Token.LBRACE = new Token('{', 0);
632
+ /**
633
+ * }
634
+ */
430
635
  Token.RBRACE = new Token('}', 0);
636
+ /**
637
+ * :
638
+ */
431
639
  Token.COLON = new Token(':', 0);
640
+ /**
641
+ * ...
642
+ */
432
643
  Token.ELLIPSIS = new Token('...', 0);
644
+ /**
645
+ * ;
646
+ */
433
647
  Token.SEMICOLON = new Token(';', 0);
648
+ /**
649
+ * end of source
650
+ */
434
651
  Token.EOS = new Token('EOS', 0);
652
+ /**
653
+ * =>
654
+ */
435
655
  Token.ARROW = new Token('=>', 0);
656
+ /**
657
+ * ___, ___, ___
658
+ */
436
659
  Token.COMMA = new Token(',', 1);
437
660
  Token.ASYNC = new Token('async', 0);
438
661
  Token.AWAIT = new Token('await', 0);
@@ -488,7 +711,19 @@ Token.NUMBER = new Token('NUMBER', 0);
488
711
  Token.BIGINT = new Token('BIGINT', 0);
489
712
  Token.STRING = new Token('STRING', 0);
490
713
  Token.IDENTIFIER = new Token('IDENTIFIER', 0);
714
+ /**
715
+ * TEMPLATE_SPAN ::
716
+ *
717
+ * ` LiteralChars* ${
718
+ * | } LiteralChars* ${
719
+ */
491
720
  Token.TEMPLATE_SPAN = new Token('TEMPLATE_SPAN', 0);
721
+ /**
722
+ * TEMPLATE_TAIL ::
723
+ *
724
+ * ` LiteralChars* `
725
+ * | } LiteralChar* `
726
+ */
492
727
  Token.TEMPLATE_TAIL = new Token('TEMPLATE_TAIL', 0);
493
728
  Token.ILLEGAL = new Token('ILLEGAL', 0);
494
729
  Token.ESCAPED_KEYWORD = new Token('ESCAPED_KEYWORD', 0);