@danielx/civet 0.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.
package/dist/main.js ADDED
@@ -0,0 +1,3066 @@
1
+ "use strict";
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __commonJS = (cb, mod) => function __require() {
4
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
5
+ };
6
+
7
+ // source/parser.hera
8
+ var require_parser = __commonJS({
9
+ "source/parser.hera"(exports2, module2) {
10
+ "use strict";
11
+ var __spreadArray = exports2 && exports2.__spreadArray || function(to, from, pack) {
12
+ if (pack || arguments.length === 2)
13
+ for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar)
16
+ ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ exports2.__esModule = true;
23
+ exports2.parserState = exports2.$R$0 = exports2.$TV = exports2.$TS = exports2.$TR = exports2.$T = exports2.$Y = exports2.$N = exports2.$TOKEN = exports2.$TEXT = exports2.$P = exports2.$Q = exports2.$E = exports2.$S = exports2.$C = exports2.$R = exports2.$L = exports2.$EXPECT = void 0;
24
+ function $EXPECT(parser, fail2, expectation) {
25
+ return function(state) {
26
+ var result = parser(state);
27
+ if (result)
28
+ return result;
29
+ var pos = state.pos;
30
+ fail2(pos, expectation);
31
+ return;
32
+ };
33
+ }
34
+ exports2.$EXPECT = $EXPECT;
35
+ function $L(str) {
36
+ return function(state) {
37
+ var input = state.input, pos = state.pos;
38
+ var length = str.length;
39
+ if (input.substr(pos, length) === str) {
40
+ return {
41
+ loc: {
42
+ pos,
43
+ length
44
+ },
45
+ pos: pos + length,
46
+ value: str
47
+ };
48
+ }
49
+ return;
50
+ };
51
+ }
52
+ exports2.$L = $L;
53
+ function $R(regExp) {
54
+ return function(state) {
55
+ var input = state.input, pos = state.pos;
56
+ regExp.lastIndex = state.pos;
57
+ var l, m, v;
58
+ if (m = input.match(regExp)) {
59
+ v = m[0];
60
+ l = v.length;
61
+ return {
62
+ loc: {
63
+ pos,
64
+ length: l
65
+ },
66
+ pos: pos + l,
67
+ value: m
68
+ };
69
+ }
70
+ return;
71
+ };
72
+ }
73
+ exports2.$R = $R;
74
+ function $C() {
75
+ var terms = [];
76
+ for (var _i = 0; _i < arguments.length; _i++) {
77
+ terms[_i] = arguments[_i];
78
+ }
79
+ return function(state) {
80
+ var i = 0;
81
+ var l = terms.length;
82
+ while (i < l) {
83
+ var r = terms[i++](state);
84
+ if (r)
85
+ return r;
86
+ }
87
+ return;
88
+ };
89
+ }
90
+ exports2.$C = $C;
91
+ function $S() {
92
+ var terms = [];
93
+ for (var _i = 0; _i < arguments.length; _i++) {
94
+ terms[_i] = arguments[_i];
95
+ }
96
+ return function(state) {
97
+ var input = state.input, pos = state.pos, tokenize = state.tokenize, verbose = state.verbose, i = 0, value;
98
+ var results = [], s = pos, l = terms.length;
99
+ while (i < l) {
100
+ var r = terms[i++]({ input, pos, tokenize, verbose });
101
+ if (r) {
102
+ pos = r.pos, value = r.value;
103
+ results.push(value);
104
+ } else
105
+ return;
106
+ }
107
+ return {
108
+ loc: {
109
+ pos: s,
110
+ length: pos - s
111
+ },
112
+ pos,
113
+ value: results
114
+ };
115
+ };
116
+ }
117
+ exports2.$S = $S;
118
+ function $E(fn) {
119
+ return function(state) {
120
+ var r = fn(state);
121
+ if (r)
122
+ return r;
123
+ var pos = state.pos;
124
+ return {
125
+ loc: {
126
+ pos,
127
+ length: 0
128
+ },
129
+ pos,
130
+ value: void 0
131
+ };
132
+ };
133
+ }
134
+ exports2.$E = $E;
135
+ function $Q(fn) {
136
+ return function(state) {
137
+ var input = state.input, pos = state.pos, tokenize = state.tokenize, verbose = state.verbose;
138
+ var value;
139
+ var s = pos;
140
+ var results = [];
141
+ while (true) {
142
+ var prevPos = pos;
143
+ var r = fn({ input, pos, tokenize, verbose });
144
+ if (r == void 0)
145
+ break;
146
+ pos = r.pos, value = r.value;
147
+ if (pos === prevPos)
148
+ break;
149
+ else
150
+ results.push(value);
151
+ }
152
+ return {
153
+ loc: {
154
+ pos: s,
155
+ length: pos - s
156
+ },
157
+ pos,
158
+ value: results
159
+ };
160
+ };
161
+ }
162
+ exports2.$Q = $Q;
163
+ function $P(fn) {
164
+ return function(state) {
165
+ var input = state.input, s = state.pos, tokenize = state.tokenize, verbose = state.verbose;
166
+ var value;
167
+ var first = fn(state);
168
+ if (!first)
169
+ return;
170
+ var pos = first.pos;
171
+ var results = [first.value];
172
+ while (true) {
173
+ var prevPos = pos;
174
+ var r = fn({ input, pos, tokenize, verbose });
175
+ if (!r)
176
+ break;
177
+ pos = r.pos, value = r.value;
178
+ if (pos === prevPos)
179
+ break;
180
+ results.push(value);
181
+ }
182
+ return {
183
+ loc: {
184
+ pos: s,
185
+ length: pos - s
186
+ },
187
+ value: results,
188
+ pos
189
+ };
190
+ };
191
+ }
192
+ exports2.$P = $P;
193
+ function $TEXT(fn) {
194
+ return function(state) {
195
+ var newState = fn(state);
196
+ if (!newState)
197
+ return;
198
+ newState.value = state.input.substring(state.pos, newState.pos);
199
+ return newState;
200
+ };
201
+ }
202
+ exports2.$TEXT = $TEXT;
203
+ function $TOKEN(name, state, newState) {
204
+ if (!newState)
205
+ return;
206
+ newState.value = {
207
+ type: name,
208
+ children: [].concat(newState.value),
209
+ token: state.input.substring(state.pos, newState.pos),
210
+ loc: newState.loc
211
+ };
212
+ return newState;
213
+ }
214
+ exports2.$TOKEN = $TOKEN;
215
+ function $N(fn) {
216
+ return function(state) {
217
+ var newState = fn(state);
218
+ if (newState)
219
+ return;
220
+ return {
221
+ loc: {
222
+ pos: state.pos,
223
+ length: 0
224
+ },
225
+ value: void 0,
226
+ pos: state.pos
227
+ };
228
+ };
229
+ }
230
+ exports2.$N = $N;
231
+ function $Y(fn) {
232
+ return function(state) {
233
+ var newState = fn(state);
234
+ if (!newState)
235
+ return;
236
+ return {
237
+ loc: {
238
+ pos: state.pos,
239
+ length: 0
240
+ },
241
+ value: void 0,
242
+ pos: state.pos
243
+ };
244
+ };
245
+ }
246
+ exports2.$Y = $Y;
247
+ function $T(parser, fn) {
248
+ return function(state) {
249
+ var result = parser(state);
250
+ if (!result)
251
+ return;
252
+ if (state.tokenize)
253
+ return result;
254
+ var value = result.value;
255
+ var mappedValue = fn(value);
256
+ result.value = mappedValue;
257
+ return result;
258
+ };
259
+ }
260
+ exports2.$T = $T;
261
+ function $TR(parser, fn) {
262
+ return function(state) {
263
+ var result = parser(state);
264
+ if (!result)
265
+ return;
266
+ if (state.tokenize)
267
+ return result;
268
+ var loc = result.loc, value = result.value;
269
+ var mappedValue = fn.apply(void 0, __spreadArray([SKIP, loc], value, false));
270
+ if (mappedValue === SKIP) {
271
+ return;
272
+ }
273
+ result.value = mappedValue;
274
+ return result;
275
+ };
276
+ }
277
+ exports2.$TR = $TR;
278
+ function $TS(parser, fn) {
279
+ return function(state) {
280
+ var result = parser(state);
281
+ if (!result)
282
+ return;
283
+ if (state.tokenize)
284
+ return result;
285
+ var loc = result.loc, value = result.value;
286
+ var mappedValue = fn.apply(void 0, __spreadArray([SKIP, loc, value], value, false));
287
+ if (mappedValue === SKIP) {
288
+ return;
289
+ }
290
+ result.value = mappedValue;
291
+ return result;
292
+ };
293
+ }
294
+ exports2.$TS = $TS;
295
+ function $TV(parser, fn) {
296
+ return function(state) {
297
+ var result = parser(state);
298
+ if (!result)
299
+ return;
300
+ if (state.tokenize)
301
+ return result;
302
+ var loc = result.loc, value = result.value;
303
+ var mappedValue = fn(SKIP, loc, value, value);
304
+ if (mappedValue === SKIP) {
305
+ return;
306
+ }
307
+ result.value = mappedValue;
308
+ return result;
309
+ };
310
+ }
311
+ exports2.$TV = $TV;
312
+ function $R$0(parser) {
313
+ return function(state) {
314
+ var result = parser(state);
315
+ if (!result)
316
+ return;
317
+ var value = result.value[0];
318
+ result.value = value;
319
+ return result;
320
+ };
321
+ }
322
+ exports2.$R$0 = $R$0;
323
+ var SKIP = {};
324
+ var failHintRegex = /\S+|\s+|$/y;
325
+ var failExpected = Array(16);
326
+ var failIndex = 0;
327
+ var maxFailPos = 0;
328
+ function fail(pos, expected) {
329
+ if (pos < maxFailPos)
330
+ return;
331
+ if (pos > maxFailPos) {
332
+ maxFailPos = pos;
333
+ failExpected.length = failIndex = 0;
334
+ }
335
+ failExpected[failIndex++] = expected;
336
+ return;
337
+ }
338
+ function parserState(grammar) {
339
+ function location(input, pos) {
340
+ var _a = input.split(/\n|\r\n|\r/).reduce(function(_a2, line2) {
341
+ var row = _a2[0], col = _a2[1];
342
+ var l = line2.length + 1;
343
+ if (pos > l) {
344
+ pos -= l;
345
+ return [row + 1, 1];
346
+ } else if (pos >= 0) {
347
+ col += pos;
348
+ pos = -1;
349
+ return [row, col];
350
+ } else {
351
+ return [row, col];
352
+ }
353
+ }, [1, 1]), line = _a[0], column = _a[1];
354
+ return "".concat(line, ":").concat(column);
355
+ }
356
+ function validate(input, result, _a) {
357
+ var filename = _a.filename;
358
+ if (result && result.pos === input.length)
359
+ return result.value;
360
+ var expectations = Array.from(new Set(failExpected.slice(0, failIndex)));
361
+ var l = location(input, maxFailPos);
362
+ if (result && result.pos > maxFailPos) {
363
+ l = location(input, result.pos);
364
+ throw new Error("\n".concat(filename, ":").concat(l, " Unconsumed input at #{l}\n\n").concat(input.slice(result.pos), "\n "));
365
+ }
366
+ if (expectations.length) {
367
+ failHintRegex.lastIndex = maxFailPos;
368
+ var hint = input.match(failHintRegex)[0];
369
+ if (hint.length)
370
+ hint = JSON.stringify(hint);
371
+ else
372
+ hint = "EOF";
373
+ throw new Error("\n".concat(filename, ":").concat(l, " Failed to parse\nExpected:\n ").concat(expectations.join("\n "), "\nFound: ").concat(hint, "\n"));
374
+ }
375
+ if (result) {
376
+ throw new Error("\nUnconsumed input at ".concat(l, "\n\n").concat(input.slice(result.pos), "\n"));
377
+ }
378
+ throw new Error("No result");
379
+ }
380
+ return {
381
+ parse: function(input, options) {
382
+ if (options === void 0) {
383
+ options = {};
384
+ }
385
+ if (typeof input !== "string")
386
+ throw new Error("Input must be a string");
387
+ var parser = options.startRule != null ? grammar[options.startRule] : Object.values(grammar)[0];
388
+ if (!parser)
389
+ throw new Error("Could not find rule with name '#{opts.startRule}'");
390
+ var filename = options.filename || "<anonymous>";
391
+ failIndex = 0;
392
+ maxFailPos = 0;
393
+ failExpected.length = 0;
394
+ return validate(input, parser({
395
+ input,
396
+ pos: 0,
397
+ tokenize: options.tokenize || false,
398
+ verbose: options.verbose || false
399
+ }), {
400
+ filename
401
+ });
402
+ }
403
+ };
404
+ }
405
+ exports2.parserState = parserState;
406
+ var { parse: parse2 } = parserState({
407
+ Program,
408
+ TopLevelStatement,
409
+ Expression,
410
+ Arguments,
411
+ ArgumentList,
412
+ CommaExpression,
413
+ BinaryOpExpression,
414
+ UnaryExpression,
415
+ UnaryPostfix,
416
+ UpdateExpression,
417
+ AssignmentExpression,
418
+ AssignmentExpressionRest,
419
+ YieldExpression,
420
+ ArrowFunction,
421
+ ConciseBody,
422
+ ConditionalExpression,
423
+ ShortCircuitExpression,
424
+ PrimaryExpression,
425
+ ClassDeclaration,
426
+ ClassExpression,
427
+ ClassHeritage,
428
+ ExtendsToken,
429
+ ClassBody,
430
+ NestedClassElements,
431
+ NestedClassElement,
432
+ ClassElement,
433
+ FieldDefinition,
434
+ This,
435
+ LeftHandSideExpression,
436
+ NewExpression,
437
+ CallExpression,
438
+ CallExpressionRest,
439
+ OptionalShorthand,
440
+ SpacedApplication,
441
+ ApplicationStart,
442
+ AdditionalReservedWords,
443
+ MemberExpression,
444
+ SuperProperty,
445
+ MetaProperty,
446
+ Parameters,
447
+ ParameterElement,
448
+ ParameterElementDelimiter,
449
+ BindingIdentifier,
450
+ BindingPattern,
451
+ ObjectBindingPattern,
452
+ ArrayBindingPattern,
453
+ BindingProperty,
454
+ BindingRestProperty,
455
+ BindingElement,
456
+ BindingRestElement,
457
+ FunctionDeclaration,
458
+ FunctionExpression,
459
+ ThinArrowFunction,
460
+ Block,
461
+ BracedBlock,
462
+ SingleNestedBlockExpression,
463
+ NestedBlockExpressions,
464
+ BlockExpression,
465
+ Literal,
466
+ Comma,
467
+ Identifier,
468
+ IdentifierName,
469
+ IdentifierReference,
470
+ ArrayLiteral,
471
+ NestedElementList,
472
+ NestedElement,
473
+ ArrayElementDelimiter,
474
+ ElementList,
475
+ ArrayElementExpression,
476
+ Elision,
477
+ ObjectLiteral,
478
+ NestedPropertyDefinitions,
479
+ NestedPropertyDefinition,
480
+ ObjectPropertyDelimiter,
481
+ PropertyDefinitionList,
482
+ PropertyDefinition,
483
+ PropertyName,
484
+ MethodDefinition,
485
+ ClassElementName,
486
+ PrivateIdentifier,
487
+ GeneratorDeclaration,
488
+ GeneratorExpression,
489
+ GeneratorMethod,
490
+ GeneratorBody,
491
+ AsyncFunctionDeclaration,
492
+ AsyncFunctionExpression,
493
+ AsyncMethod,
494
+ AsyncFunctionBody,
495
+ AsyncGeneratorDeclaration,
496
+ AsyncGeneratorExpression,
497
+ AsyncGeneratorMethod,
498
+ AsyncGeneratorBody,
499
+ AssignmentOp,
500
+ BinaryOp,
501
+ UnaryOp,
502
+ ModuleItem,
503
+ Statement,
504
+ EmptyStatement,
505
+ BlockStatement,
506
+ IfStatement,
507
+ IterationStatement,
508
+ LoopStatement,
509
+ DoWhileStatement,
510
+ WhileStatement,
511
+ ForStatement,
512
+ ForInOfStatement,
513
+ ForDeclaration,
514
+ ForBinding,
515
+ SwitchStatement,
516
+ CaseBlock,
517
+ NestedCaseClauses,
518
+ NestedCaseClause,
519
+ CaseClause,
520
+ When,
521
+ ImpliedColon,
522
+ TryStatement,
523
+ Catch,
524
+ CatchBind,
525
+ Finally,
526
+ CatchParameter,
527
+ Condition,
528
+ ExpressionStatement,
529
+ KeywordStatement,
530
+ ImportDeclaration,
531
+ ImportClause,
532
+ NameSpaceImport,
533
+ NamedImports,
534
+ FromClause,
535
+ ImportSpecifier,
536
+ ModuleExportName,
537
+ ModuleSpecifier,
538
+ ImportedBinding,
539
+ ExportDeclaration,
540
+ ExportFromClause,
541
+ NamedExports,
542
+ ExportSpecifier,
543
+ Declaration,
544
+ HoistableDeclaration,
545
+ LexicalDeclaration,
546
+ LexicalBinding,
547
+ Initializer,
548
+ VariableStatement,
549
+ VariableDeclarationList,
550
+ VariableDeclaration,
551
+ NumericLiteral,
552
+ DecimalBigIntegerLiteral,
553
+ DecimalLiteral,
554
+ BinaryIntegerLiteral,
555
+ OctalIntegerLiteral,
556
+ HexLiteral,
557
+ StringLiteral,
558
+ DoubleStringCharacter,
559
+ SingleStringCharacter,
560
+ TripleDoubleStringCharacter,
561
+ EscapeSequence,
562
+ RegularExpressionLiteral,
563
+ RegularExpressionBody,
564
+ RegExpCharacter,
565
+ RegularExpressionFlags,
566
+ TemplateLiteral,
567
+ TemplateSubstitution,
568
+ TemplateCharacters,
569
+ ReservedWord,
570
+ Comment,
571
+ SingleLineComment,
572
+ MultiLineComment,
573
+ JSMultiLineComment,
574
+ CoffeeSingleLineComment,
575
+ CoffeeMultiLineComment,
576
+ InlineComment,
577
+ RestOfLine,
578
+ TrailingComment,
579
+ _,
580
+ __,
581
+ StatementDelimiter,
582
+ TypeDeclaration,
583
+ InterfaceBlock,
584
+ NestedInterfaceProperties,
585
+ NestedInterfaceProperty,
586
+ TypeSuffix,
587
+ Type,
588
+ FunctionType,
589
+ TypeArguments,
590
+ Shebang,
591
+ DirectivePrologue,
592
+ EOS,
593
+ EOL,
594
+ EOF,
595
+ InsertOpenParen,
596
+ InsertCloseParen,
597
+ InsertOpenBrace,
598
+ InsertCloseBrace,
599
+ InsertNewline,
600
+ InsertIndent,
601
+ InsertSpace,
602
+ InsertDot,
603
+ InsertBreak,
604
+ Init,
605
+ Indent,
606
+ PushIndent,
607
+ PopIndent,
608
+ Nested
609
+ });
610
+ var $L0 = $L(",");
611
+ var $L1 = $L("(");
612
+ var $L2 = $L(")");
613
+ var $L3 = $L("?");
614
+ var $L4 = $L("++");
615
+ var $L5 = $L("--");
616
+ var $L6 = $L("async");
617
+ var $L7 = $L("yield");
618
+ var $L8 = $L("*");
619
+ var $L9 = $L("=>");
620
+ var $L10 = $L("{");
621
+ var $L11 = $L(":");
622
+ var $L12 = $L("class");
623
+ var $L13 = $L("<");
624
+ var $L14 = $L("extends");
625
+ var $L15 = $L("}");
626
+ var $L16 = $L("static");
627
+ var $L17 = $L("this");
628
+ var $L18 = $L("@");
629
+ var $L19 = $L("#");
630
+ var $L20 = $L("new");
631
+ var $L21 = $L("super");
632
+ var $L22 = $L("import");
633
+ var $L23 = $L("[");
634
+ var $L24 = $L("]");
635
+ var $L25 = $L(".");
636
+ var $L26 = $L("super[");
637
+ var $L27 = $L("new.target");
638
+ var $L28 = $L("import.meta");
639
+ var $L29 = $L("");
640
+ var $L30 = $L("...");
641
+ var $L31 = $L("function");
642
+ var $L32 = $L("->");
643
+ var $L33 = $L("true");
644
+ var $L34 = $L("false");
645
+ var $L35 = $L("null");
646
+ var $L36 = $L("undefined");
647
+ var $L37 = $L("get");
648
+ var $L38 = $L("set");
649
+ var $L39 = $L("**=");
650
+ var $L40 = $L("*=");
651
+ var $L41 = $L("/=");
652
+ var $L42 = $L("%=");
653
+ var $L43 = $L("+=");
654
+ var $L44 = $L("-=");
655
+ var $L45 = $L("<<=");
656
+ var $L46 = $L(">>>=");
657
+ var $L47 = $L(">>=");
658
+ var $L48 = $L("&&=");
659
+ var $L49 = $L("&=");
660
+ var $L50 = $L("^=");
661
+ var $L51 = $L("||=");
662
+ var $L52 = $L("|=");
663
+ var $L53 = $L("??=");
664
+ var $L54 = $L("=");
665
+ var $L55 = $L("**");
666
+ var $L56 = $L("/");
667
+ var $L57 = $L("%");
668
+ var $L58 = $L("+");
669
+ var $L59 = $L("-");
670
+ var $L60 = $L("<=");
671
+ var $L61 = $L(">=");
672
+ var $L62 = $L("<<");
673
+ var $L63 = $L(">>>");
674
+ var $L64 = $L(">>");
675
+ var $L65 = $L(">");
676
+ var $L66 = $L("!==");
677
+ var $L67 = $L("!=");
678
+ var $L68 = $L("is");
679
+ var $L69 = $L("===");
680
+ var $L70 = $L("==");
681
+ var $L71 = $L("and");
682
+ var $L72 = $L("&&");
683
+ var $L73 = $L("or");
684
+ var $L74 = $L("||");
685
+ var $L75 = $L("??");
686
+ var $L76 = $L("instanceof");
687
+ var $L77 = $L("in");
688
+ var $L78 = $L("&");
689
+ var $L79 = $L("^");
690
+ var $L80 = $L("|");
691
+ var $L81 = $L("delete");
692
+ var $L82 = $L("void");
693
+ var $L83 = $L("typeof");
694
+ var $L84 = $L(";");
695
+ var $L85 = $L("if");
696
+ var $L86 = $L("else");
697
+ var $L87 = $L("unless");
698
+ var $L88 = $L("loop");
699
+ var $L89 = $L("do");
700
+ var $L90 = $L("while");
701
+ var $L91 = $L("for");
702
+ var $L92 = $L("var");
703
+ var $L93 = $L("await");
704
+ var $L94 = $L("of");
705
+ var $L95 = $L("let");
706
+ var $L96 = $L("const");
707
+ var $L97 = $L("switch");
708
+ var $L98 = $L("case");
709
+ var $L99 = $L("default");
710
+ var $L100 = $L("when");
711
+ var $L101 = $L("try");
712
+ var $L102 = $L("catch");
713
+ var $L103 = $L("finally");
714
+ var $L104 = $L("break");
715
+ var $L105 = $L("continue");
716
+ var $L106 = $L("debugger");
717
+ var $L107 = $L("return");
718
+ var $L108 = $L("throw");
719
+ var $L109 = $L("import type");
720
+ var $L110 = $L("as");
721
+ var $L111 = $L("from");
722
+ var $L112 = $L("export");
723
+ var $L113 = $L('"""');
724
+ var $L114 = $L('"');
725
+ var $L115 = $L("'");
726
+ var $L116 = $L("\\");
727
+ var $L117 = $L("`");
728
+ var $L118 = $L("${");
729
+ var $L119 = $L("/*");
730
+ var $L120 = $L("*/");
731
+ var $L121 = $L("###");
732
+ var $L122 = $L("interface");
733
+ var $L123 = $L("[]");
734
+ var $L124 = $L(" ");
735
+ var $L125 = $L(" ");
736
+ var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue})", "suy"));
737
+ var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
738
+ var $R2 = $R(new RegExp("\\p{ID_Continue}", "suy"));
739
+ var $R3 = $R(new RegExp("[!~+-]", "suy"));
740
+ var $R4 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
741
+ var $R5 = $R(new RegExp("\\d+(?:\\.\\d*)?", "suy"));
742
+ var $R6 = $R(new RegExp("0[bB][01](?:[01]|_[01])*", "suy"));
743
+ var $R7 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*", "suy"));
744
+ var $R8 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*", "suy"));
745
+ var $R9 = $R(new RegExp('[^"\\\\]+', "suy"));
746
+ var $R10 = $R(new RegExp("[^'\\\\]+", "suy"));
747
+ var $R11 = $R(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy"));
748
+ var $R12 = $R(new RegExp(".", "suy"));
749
+ var $R13 = $R(new RegExp("[^*\\/\\r\\n]", "suy"));
750
+ var $R14 = $R(new RegExp("[^\\/\\r\\n]+", "suy"));
751
+ var $R15 = $R(new RegExp("(:?\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
752
+ var $R16 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
753
+ var $R17 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|new|null|or|return|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
754
+ var $R18 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
755
+ var $R19 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
756
+ var $R20 = $R(new RegExp("[^\\r\\n]", "suy"));
757
+ var $R21 = $R(new RegExp("[\\t ]+", "suy"));
758
+ var $R22 = $R(new RegExp("[\\s]+", "suy"));
759
+ var $R23 = $R(new RegExp("#![^\\r\\n]*", "suy"));
760
+ var $R24 = $R(new RegExp("[\\t ]*", "suy"));
761
+ var $R25 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
762
+ var $R26 = $R(new RegExp("$", "suy"));
763
+ var Program$0 = $S(Init, __, $Q(TopLevelStatement), __);
764
+ function Program(state) {
765
+ if (state.verbose)
766
+ console.log("ENTER:", "Program");
767
+ if (state.tokenize) {
768
+ return $TOKEN("Program", state, Program$0(state));
769
+ } else {
770
+ return Program$0(state);
771
+ }
772
+ }
773
+ var TopLevelStatement$0 = $S($E(EOS), $E(_), ModuleItem, StatementDelimiter);
774
+ function TopLevelStatement(state) {
775
+ if (state.verbose)
776
+ console.log("ENTER:", "TopLevelStatement");
777
+ if (state.tokenize) {
778
+ return $TOKEN("TopLevelStatement", state, TopLevelStatement$0(state));
779
+ } else {
780
+ return TopLevelStatement$0(state);
781
+ }
782
+ }
783
+ var Expression$0 = $S(AssignmentExpression, $Q($S(__, $EXPECT($L0, fail, 'Expression ","'), AssignmentExpression)));
784
+ function Expression(state) {
785
+ if (state.verbose)
786
+ console.log("ENTER:", "Expression");
787
+ if (state.tokenize) {
788
+ return $TOKEN("Expression", state, Expression$0(state));
789
+ } else {
790
+ return Expression$0(state);
791
+ }
792
+ }
793
+ var Arguments$0 = $S($EXPECT($L1, fail, 'Arguments "("'), $C(ArgumentList, __), $E($S($EXPECT($L0, fail, 'Arguments ","'), __)), $EXPECT($L2, fail, 'Arguments ")"'));
794
+ function Arguments(state) {
795
+ if (state.verbose)
796
+ console.log("ENTER:", "Arguments");
797
+ if (state.tokenize) {
798
+ return $TOKEN("Arguments", state, Arguments$0(state));
799
+ } else {
800
+ return Arguments$0(state);
801
+ }
802
+ }
803
+ var ArgumentList$0 = $S(Expression, $Q(CommaExpression));
804
+ function ArgumentList(state) {
805
+ if (state.verbose)
806
+ console.log("ENTER:", "ArgumentList");
807
+ if (state.tokenize) {
808
+ return $TOKEN("ArgumentList", state, ArgumentList$0(state));
809
+ } else {
810
+ return ArgumentList$0(state);
811
+ }
812
+ }
813
+ var CommaExpression$0 = $S(__, $EXPECT($L0, fail, 'CommaExpression ","'), __, Expression);
814
+ function CommaExpression(state) {
815
+ if (state.verbose)
816
+ console.log("ENTER:", "CommaExpression");
817
+ if (state.tokenize) {
818
+ return $TOKEN("CommaExpression", state, CommaExpression$0(state));
819
+ } else {
820
+ return CommaExpression$0(state);
821
+ }
822
+ }
823
+ var BinaryOpExpression$0 = $S(UnaryExpression, $Q($S(__, BinaryOp, __, UnaryExpression)));
824
+ function BinaryOpExpression(state) {
825
+ if (state.verbose)
826
+ console.log("ENTER:", "BinaryOpExpression");
827
+ if (state.tokenize) {
828
+ return $TOKEN("BinaryOpExpression", state, BinaryOpExpression$0(state));
829
+ } else {
830
+ return BinaryOpExpression$0(state);
831
+ }
832
+ }
833
+ var UnaryExpression$0 = $TS($S($Q(UnaryOp), UpdateExpression, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
834
+ var pre = $1;
835
+ var exp = $2;
836
+ var post = $3;
837
+ if (post) {
838
+ return ["(", pre, , "(", exp, ") != null)"];
839
+ }
840
+ return [pre, exp];
841
+ });
842
+ function UnaryExpression(state) {
843
+ if (state.verbose)
844
+ console.log("ENTER:", "UnaryExpression");
845
+ if (state.tokenize) {
846
+ return $TOKEN("UnaryExpression", state, UnaryExpression$0(state));
847
+ } else {
848
+ return UnaryExpression$0(state);
849
+ }
850
+ }
851
+ var UnaryPostfix$0 = $EXPECT($L3, fail, 'UnaryPostfix "?"');
852
+ function UnaryPostfix(state) {
853
+ if (state.verbose)
854
+ console.log("ENTER:", "UnaryPostfix");
855
+ if (state.tokenize) {
856
+ return $TOKEN("UnaryPostfix", state, UnaryPostfix$0(state));
857
+ } else {
858
+ return UnaryPostfix$0(state);
859
+ }
860
+ }
861
+ var UpdateExpression$0 = $S($C($EXPECT($L4, fail, 'UpdateExpression "++"'), $EXPECT($L5, fail, 'UpdateExpression "--"')), UnaryExpression);
862
+ var UpdateExpression$1 = $S(LeftHandSideExpression, $E($C($EXPECT($L4, fail, 'UpdateExpression "++"'), $EXPECT($L5, fail, 'UpdateExpression "--"'))));
863
+ function UpdateExpression(state) {
864
+ if (state.tokenize) {
865
+ return $TOKEN("UpdateExpression", state, UpdateExpression$0(state) || UpdateExpression$1(state));
866
+ } else {
867
+ return UpdateExpression$0(state) || UpdateExpression$1(state);
868
+ }
869
+ }
870
+ var AssignmentExpression$0 = $S($Q(TrailingComment), AssignmentExpressionRest);
871
+ var AssignmentExpression$1 = $S(__, AssignmentExpressionRest);
872
+ function AssignmentExpression(state) {
873
+ if (state.tokenize) {
874
+ return $TOKEN("AssignmentExpression", state, AssignmentExpression$0(state) || AssignmentExpression$1(state));
875
+ } else {
876
+ return AssignmentExpression$0(state) || AssignmentExpression$1(state);
877
+ }
878
+ }
879
+ var AssignmentExpressionRest$0 = YieldExpression;
880
+ var AssignmentExpressionRest$1 = $S($E($S($EXPECT($L6, fail, 'AssignmentExpressionRest "async"'), __)), ArrowFunction);
881
+ var AssignmentExpressionRest$2 = $S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), $C($S($Q(_), Expression), $S(__, Expression)));
882
+ var AssignmentExpressionRest$3 = ConditionalExpression;
883
+ function AssignmentExpressionRest(state) {
884
+ if (state.tokenize) {
885
+ return $TOKEN("AssignmentExpressionRest", state, AssignmentExpressionRest$0(state) || AssignmentExpressionRest$1(state) || AssignmentExpressionRest$2(state) || AssignmentExpressionRest$3(state));
886
+ } else {
887
+ return AssignmentExpressionRest$0(state) || AssignmentExpressionRest$1(state) || AssignmentExpressionRest$2(state) || AssignmentExpressionRest$3(state);
888
+ }
889
+ }
890
+ var YieldExpression$0 = $S($EXPECT($L7, fail, 'YieldExpression "yield"'), $E($S($Q(TrailingComment), $EXPECT($L8, fail, 'YieldExpression "*"'))), AssignmentExpression);
891
+ function YieldExpression(state) {
892
+ if (state.verbose)
893
+ console.log("ENTER:", "YieldExpression");
894
+ if (state.tokenize) {
895
+ return $TOKEN("YieldExpression", state, YieldExpression$0(state));
896
+ } else {
897
+ return YieldExpression$0(state);
898
+ }
899
+ }
900
+ var ArrowFunction$0 = ThinArrowFunction;
901
+ var ArrowFunction$1 = $S($C(BindingIdentifier, Parameters), __, $EXPECT($L9, fail, 'ArrowFunction "=>"'), ConciseBody);
902
+ function ArrowFunction(state) {
903
+ if (state.tokenize) {
904
+ return $TOKEN("ArrowFunction", state, ArrowFunction$0(state) || ArrowFunction$1(state));
905
+ } else {
906
+ return ArrowFunction$0(state) || ArrowFunction$1(state);
907
+ }
908
+ }
909
+ var ConciseBody$0 = $S($N($S($Q(_), $EXPECT($L10, fail, 'ConciseBody "{"'))), AssignmentExpression);
910
+ var ConciseBody$1 = $S(EOS, SingleNestedBlockExpression);
911
+ var ConciseBody$2 = BracedBlock;
912
+ function ConciseBody(state) {
913
+ if (state.tokenize) {
914
+ return $TOKEN("ConciseBody", state, ConciseBody$0(state) || ConciseBody$1(state) || ConciseBody$2(state));
915
+ } else {
916
+ return ConciseBody$0(state) || ConciseBody$1(state) || ConciseBody$2(state);
917
+ }
918
+ }
919
+ var ConditionalExpression$0 = $S(ShortCircuitExpression, $E($S(__, $EXPECT($L3, fail, 'ConditionalExpression "?"'), AssignmentExpression, __, $EXPECT($L11, fail, 'ConditionalExpression ":"'), AssignmentExpression)));
920
+ function ConditionalExpression(state) {
921
+ if (state.verbose)
922
+ console.log("ENTER:", "ConditionalExpression");
923
+ if (state.tokenize) {
924
+ return $TOKEN("ConditionalExpression", state, ConditionalExpression$0(state));
925
+ } else {
926
+ return ConditionalExpression$0(state);
927
+ }
928
+ }
929
+ var ShortCircuitExpression$0 = BinaryOpExpression;
930
+ function ShortCircuitExpression(state) {
931
+ if (state.verbose)
932
+ console.log("ENTER:", "ShortCircuitExpression");
933
+ if (state.tokenize) {
934
+ return $TOKEN("ShortCircuitExpression", state, ShortCircuitExpression$0(state));
935
+ } else {
936
+ return ShortCircuitExpression$0(state);
937
+ }
938
+ }
939
+ var PrimaryExpression$0 = This;
940
+ var PrimaryExpression$1 = IdentifierReference;
941
+ var PrimaryExpression$2 = Literal;
942
+ var PrimaryExpression$3 = ArrayLiteral;
943
+ var PrimaryExpression$4 = ObjectLiteral;
944
+ var PrimaryExpression$5 = FunctionExpression;
945
+ var PrimaryExpression$6 = ClassExpression;
946
+ var PrimaryExpression$7 = RegularExpressionLiteral;
947
+ var PrimaryExpression$8 = TemplateLiteral;
948
+ var PrimaryExpression$9 = $S($EXPECT($L1, fail, 'PrimaryExpression "("'), __, Expression, __, $EXPECT($L2, fail, 'PrimaryExpression ")"'));
949
+ function PrimaryExpression(state) {
950
+ if (state.tokenize) {
951
+ return $TOKEN("PrimaryExpression", state, PrimaryExpression$0(state) || PrimaryExpression$1(state) || PrimaryExpression$2(state) || PrimaryExpression$3(state) || PrimaryExpression$4(state) || PrimaryExpression$5(state) || PrimaryExpression$6(state) || PrimaryExpression$7(state) || PrimaryExpression$8(state) || PrimaryExpression$9(state));
952
+ } else {
953
+ return PrimaryExpression$0(state) || PrimaryExpression$1(state) || PrimaryExpression$2(state) || PrimaryExpression$3(state) || PrimaryExpression$4(state) || PrimaryExpression$5(state) || PrimaryExpression$6(state) || PrimaryExpression$7(state) || PrimaryExpression$8(state) || PrimaryExpression$9(state);
954
+ }
955
+ }
956
+ var ClassDeclaration$0 = ClassExpression;
957
+ function ClassDeclaration(state) {
958
+ if (state.verbose)
959
+ console.log("ENTER:", "ClassDeclaration");
960
+ if (state.tokenize) {
961
+ return $TOKEN("ClassDeclaration", state, ClassDeclaration$0(state));
962
+ } else {
963
+ return ClassDeclaration$0(state);
964
+ }
965
+ }
966
+ var ClassExpression$0 = $S($EXPECT($L12, fail, 'ClassExpression "class"'), $E($S(__, BindingIdentifier)), $E($S(__, ClassHeritage)), ClassBody);
967
+ function ClassExpression(state) {
968
+ if (state.verbose)
969
+ console.log("ENTER:", "ClassExpression");
970
+ if (state.tokenize) {
971
+ return $TOKEN("ClassExpression", state, ClassExpression$0(state));
972
+ } else {
973
+ return ClassExpression$0(state);
974
+ }
975
+ }
976
+ var ClassHeritage$0 = $S(ExtendsToken, __, $S(MemberExpression, $Q(CallExpressionRest)));
977
+ function ClassHeritage(state) {
978
+ if (state.verbose)
979
+ console.log("ENTER:", "ClassHeritage");
980
+ if (state.tokenize) {
981
+ return $TOKEN("ClassHeritage", state, ClassHeritage$0(state));
982
+ } else {
983
+ return ClassHeritage$0(state);
984
+ }
985
+ }
986
+ var ExtendsToken$0 = $T($EXPECT($L13, fail, 'ExtendsToken "<"'), function(value) {
987
+ return "extends";
988
+ });
989
+ var ExtendsToken$1 = $EXPECT($L14, fail, 'ExtendsToken "extends"');
990
+ function ExtendsToken(state) {
991
+ if (state.tokenize) {
992
+ return $TOKEN("ExtendsToken", state, ExtendsToken$0(state) || ExtendsToken$1(state));
993
+ } else {
994
+ return ExtendsToken$0(state) || ExtendsToken$1(state);
995
+ }
996
+ }
997
+ var ClassBody$0 = $S(__, $EXPECT($L10, fail, 'ClassBody "{"'), $E($S(EOS, NestedClassElements)), __, $EXPECT($L15, fail, 'ClassBody "}"'));
998
+ var ClassBody$1 = $S(InsertOpenBrace, EOS, NestedClassElements, InsertNewline, InsertIndent, InsertCloseBrace);
999
+ function ClassBody(state) {
1000
+ if (state.tokenize) {
1001
+ return $TOKEN("ClassBody", state, ClassBody$0(state) || ClassBody$1(state));
1002
+ } else {
1003
+ return ClassBody$0(state) || ClassBody$1(state);
1004
+ }
1005
+ }
1006
+ var NestedClassElements$0 = $TS($S(PushIndent, $Q(NestedClassElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1007
+ var elements = $2;
1008
+ if (!elements.length)
1009
+ return $skip;
1010
+ return elements;
1011
+ });
1012
+ function NestedClassElements(state) {
1013
+ if (state.verbose)
1014
+ console.log("ENTER:", "NestedClassElements");
1015
+ if (state.tokenize) {
1016
+ return $TOKEN("NestedClassElements", state, NestedClassElements$0(state));
1017
+ } else {
1018
+ return NestedClassElements$0(state);
1019
+ }
1020
+ }
1021
+ var NestedClassElement$0 = $S(Nested, ClassElement, StatementDelimiter);
1022
+ function NestedClassElement(state) {
1023
+ if (state.verbose)
1024
+ console.log("ENTER:", "NestedClassElement");
1025
+ if (state.tokenize) {
1026
+ return $TOKEN("NestedClassElement", state, NestedClassElement$0(state));
1027
+ } else {
1028
+ return NestedClassElement$0(state);
1029
+ }
1030
+ }
1031
+ var ClassElement$0 = $S($EXPECT($L16, fail, 'ClassElement "static"'), BracedBlock);
1032
+ var ClassElement$1 = $S($E($S($EXPECT($L16, fail, 'ClassElement "static"'), __)), $C(MethodDefinition, FieldDefinition));
1033
+ function ClassElement(state) {
1034
+ if (state.tokenize) {
1035
+ return $TOKEN("ClassElement", state, ClassElement$0(state) || ClassElement$1(state));
1036
+ } else {
1037
+ return ClassElement$0(state) || ClassElement$1(state);
1038
+ }
1039
+ }
1040
+ var FieldDefinition$0 = $S(ClassElementName, $E(TypeSuffix), $E(Initializer));
1041
+ function FieldDefinition(state) {
1042
+ if (state.verbose)
1043
+ console.log("ENTER:", "FieldDefinition");
1044
+ if (state.tokenize) {
1045
+ return $TOKEN("FieldDefinition", state, FieldDefinition$0(state));
1046
+ } else {
1047
+ return FieldDefinition$0(state);
1048
+ }
1049
+ }
1050
+ var This$0 = $EXPECT($L17, fail, 'This "this"');
1051
+ var This$1 = $T($S($EXPECT($L18, fail, 'This "@"'), $S($E($EXPECT($L19, fail, 'This "#"')), IdentifierName)), function(value) {
1052
+ var ref = value[1];
1053
+ return ["this.", ref];
1054
+ });
1055
+ var This$2 = $T($EXPECT($L18, fail, 'This "@"'), function(value) {
1056
+ return "this";
1057
+ });
1058
+ function This(state) {
1059
+ if (state.tokenize) {
1060
+ return $TOKEN("This", state, This$0(state) || This$1(state) || This$2(state));
1061
+ } else {
1062
+ return This$0(state) || This$1(state) || This$2(state);
1063
+ }
1064
+ }
1065
+ var LeftHandSideExpression$0 = NewExpression;
1066
+ var LeftHandSideExpression$1 = CallExpression;
1067
+ function LeftHandSideExpression(state) {
1068
+ if (state.tokenize) {
1069
+ return $TOKEN("LeftHandSideExpression", state, LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state));
1070
+ } else {
1071
+ return LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state);
1072
+ }
1073
+ }
1074
+ var NewExpression$0 = $S($P($S($EXPECT($L20, fail, 'NewExpression "new"'), __)), MemberExpression);
1075
+ function NewExpression(state) {
1076
+ if (state.verbose)
1077
+ console.log("ENTER:", "NewExpression");
1078
+ if (state.tokenize) {
1079
+ return $TOKEN("NewExpression", state, NewExpression$0(state));
1080
+ } else {
1081
+ return NewExpression$0(state);
1082
+ }
1083
+ }
1084
+ var CallExpression$0 = $S($EXPECT($L21, fail, 'CallExpression "super"'), __, Arguments);
1085
+ var CallExpression$1 = $S($EXPECT($L22, fail, 'CallExpression "import"'), __, $EXPECT($L1, fail, 'CallExpression "("'), AssignmentExpression, __, $EXPECT($L2, fail, 'CallExpression ")"'));
1086
+ var CallExpression$2 = $S(MemberExpression, $Q(CallExpressionRest), $E(SpacedApplication));
1087
+ function CallExpression(state) {
1088
+ if (state.tokenize) {
1089
+ return $TOKEN("CallExpression", state, CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state));
1090
+ } else {
1091
+ return CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state);
1092
+ }
1093
+ }
1094
+ var CallExpressionRest$0 = $S($E(OptionalShorthand), Arguments);
1095
+ var CallExpressionRest$1 = $S($E(OptionalShorthand), $EXPECT($L23, fail, 'CallExpressionRest "["'), __, Expression, __, $EXPECT($L24, fail, 'CallExpressionRest "]"'));
1096
+ var CallExpressionRest$2 = $S($E($EXPECT($L3, fail, 'CallExpressionRest "?"')), $EXPECT($L25, fail, 'CallExpressionRest "."'), $C(IdentifierName, PrivateIdentifier));
1097
+ var CallExpressionRest$3 = TemplateLiteral;
1098
+ function CallExpressionRest(state) {
1099
+ if (state.tokenize) {
1100
+ return $TOKEN("CallExpressionRest", state, CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state));
1101
+ } else {
1102
+ return CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state);
1103
+ }
1104
+ }
1105
+ var OptionalShorthand$0 = $S($EXPECT($L3, fail, 'OptionalShorthand "?"'), $C($EXPECT($L25, fail, 'OptionalShorthand "."'), InsertDot));
1106
+ function OptionalShorthand(state) {
1107
+ if (state.verbose)
1108
+ console.log("ENTER:", "OptionalShorthand");
1109
+ if (state.tokenize) {
1110
+ return $TOKEN("OptionalShorthand", state, OptionalShorthand$0(state));
1111
+ } else {
1112
+ return OptionalShorthand$0(state);
1113
+ }
1114
+ }
1115
+ var SpacedApplication$0 = $S(ApplicationStart, ArgumentList, InsertCloseParen);
1116
+ function SpacedApplication(state) {
1117
+ if (state.verbose)
1118
+ console.log("ENTER:", "SpacedApplication");
1119
+ if (state.tokenize) {
1120
+ return $TOKEN("SpacedApplication", state, SpacedApplication$0(state));
1121
+ } else {
1122
+ return SpacedApplication$0(state);
1123
+ }
1124
+ }
1125
+ var ApplicationStart$0 = $TS($S($E(OptionalShorthand), $TEXT($P(_)), $N(AdditionalReservedWords)), function($skip, $loc, $0, $1, $2, $3) {
1126
+ var opt = $1;
1127
+ var spacing = $2;
1128
+ return [opt, "(", spacing.replace(/^ /, "")];
1129
+ });
1130
+ function ApplicationStart(state) {
1131
+ if (state.verbose)
1132
+ console.log("ENTER:", "ApplicationStart");
1133
+ if (state.tokenize) {
1134
+ return $TOKEN("ApplicationStart", state, ApplicationStart$0(state));
1135
+ } else {
1136
+ return ApplicationStart$0(state);
1137
+ }
1138
+ }
1139
+ var AdditionalReservedWords$0 = $R$0($EXPECT($R0, fail, "AdditionalReservedWords /(of)(?!\\p{ID_Continue})/"));
1140
+ function AdditionalReservedWords(state) {
1141
+ if (state.verbose)
1142
+ console.log("ENTER:", "AdditionalReservedWords");
1143
+ if (state.tokenize) {
1144
+ return $TOKEN("AdditionalReservedWords", state, AdditionalReservedWords$0(state));
1145
+ } else {
1146
+ return AdditionalReservedWords$0(state);
1147
+ }
1148
+ }
1149
+ var MemberExpression$0 = $S(PrimaryExpression, $Q(CallExpressionRest));
1150
+ var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
1151
+ var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
1152
+ function MemberExpression(state) {
1153
+ if (state.tokenize) {
1154
+ return $TOKEN("MemberExpression", state, MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state));
1155
+ } else {
1156
+ return MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state);
1157
+ }
1158
+ }
1159
+ var SuperProperty$0 = $S($EXPECT($L26, fail, 'SuperProperty "super["'), __, Expression, __, $EXPECT($L24, fail, 'SuperProperty "]"'));
1160
+ function SuperProperty(state) {
1161
+ if (state.verbose)
1162
+ console.log("ENTER:", "SuperProperty");
1163
+ if (state.tokenize) {
1164
+ return $TOKEN("SuperProperty", state, SuperProperty$0(state));
1165
+ } else {
1166
+ return SuperProperty$0(state);
1167
+ }
1168
+ }
1169
+ var MetaProperty$0 = $EXPECT($L27, fail, 'MetaProperty "new.target"');
1170
+ var MetaProperty$1 = $EXPECT($L28, fail, 'MetaProperty "import.meta"');
1171
+ function MetaProperty(state) {
1172
+ if (state.tokenize) {
1173
+ return $TOKEN("MetaProperty", state, MetaProperty$0(state) || MetaProperty$1(state));
1174
+ } else {
1175
+ return MetaProperty$0(state) || MetaProperty$1(state);
1176
+ }
1177
+ }
1178
+ var Parameters$0 = $S($EXPECT($L1, fail, 'Parameters "("'), $Q(ParameterElement), __, $EXPECT($L2, fail, 'Parameters ")"'));
1179
+ var Parameters$1 = $T($EXPECT($L29, fail, 'Parameters ""'), function(value) {
1180
+ return "()";
1181
+ });
1182
+ function Parameters(state) {
1183
+ if (state.tokenize) {
1184
+ return $TOKEN("Parameters", state, Parameters$0(state) || Parameters$1(state));
1185
+ } else {
1186
+ return Parameters$0(state) || Parameters$1(state);
1187
+ }
1188
+ }
1189
+ var ParameterElement$0 = $S(__, $C(BindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter);
1190
+ function ParameterElement(state) {
1191
+ if (state.verbose)
1192
+ console.log("ENTER:", "ParameterElement");
1193
+ if (state.tokenize) {
1194
+ return $TOKEN("ParameterElement", state, ParameterElement$0(state));
1195
+ } else {
1196
+ return ParameterElement$0(state);
1197
+ }
1198
+ }
1199
+ var ParameterElementDelimiter$0 = $S($Q(_), $EXPECT($L0, fail, 'ParameterElementDelimiter ","'));
1200
+ var ParameterElementDelimiter$1 = $Y($S($Q(_), $EXPECT($L2, fail, 'ParameterElementDelimiter ")"')));
1201
+ var ParameterElementDelimiter$2 = $T($Y($S(__, $EXPECT($L2, fail, 'ParameterElementDelimiter ")"'))), function(value) {
1202
+ return ",";
1203
+ });
1204
+ var ParameterElementDelimiter$3 = $T($Y(EOS), function(value) {
1205
+ return ",";
1206
+ });
1207
+ function ParameterElementDelimiter(state) {
1208
+ if (state.tokenize) {
1209
+ return $TOKEN("ParameterElementDelimiter", state, ParameterElementDelimiter$0(state) || ParameterElementDelimiter$1(state) || ParameterElementDelimiter$2(state) || ParameterElementDelimiter$3(state));
1210
+ } else {
1211
+ return ParameterElementDelimiter$0(state) || ParameterElementDelimiter$1(state) || ParameterElementDelimiter$2(state) || ParameterElementDelimiter$3(state);
1212
+ }
1213
+ }
1214
+ var BindingIdentifier$0 = Identifier;
1215
+ function BindingIdentifier(state) {
1216
+ if (state.verbose)
1217
+ console.log("ENTER:", "BindingIdentifier");
1218
+ if (state.tokenize) {
1219
+ return $TOKEN("BindingIdentifier", state, BindingIdentifier$0(state));
1220
+ } else {
1221
+ return BindingIdentifier$0(state);
1222
+ }
1223
+ }
1224
+ var BindingPattern$0 = ObjectBindingPattern;
1225
+ var BindingPattern$1 = ArrayBindingPattern;
1226
+ function BindingPattern(state) {
1227
+ if (state.tokenize) {
1228
+ return $TOKEN("BindingPattern", state, BindingPattern$0(state) || BindingPattern$1(state));
1229
+ } else {
1230
+ return BindingPattern$0(state) || BindingPattern$1(state);
1231
+ }
1232
+ }
1233
+ var ObjectBindingPattern$0 = $S($EXPECT($L10, fail, 'ObjectBindingPattern "{"'), $Q(BindingProperty), $E($S(__, BindingRestProperty)), __, $EXPECT($L15, fail, 'ObjectBindingPattern "}"'));
1234
+ function ObjectBindingPattern(state) {
1235
+ if (state.verbose)
1236
+ console.log("ENTER:", "ObjectBindingPattern");
1237
+ if (state.tokenize) {
1238
+ return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state));
1239
+ } else {
1240
+ return ObjectBindingPattern$0(state);
1241
+ }
1242
+ }
1243
+ var ArrayBindingPattern$0 = $S($EXPECT($L23, fail, 'ArrayBindingPattern "["'), $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, $EXPECT($L24, fail, 'ArrayBindingPattern "]"'));
1244
+ function ArrayBindingPattern(state) {
1245
+ if (state.verbose)
1246
+ console.log("ENTER:", "ArrayBindingPattern");
1247
+ if (state.tokenize) {
1248
+ return $TOKEN("ArrayBindingPattern", state, ArrayBindingPattern$0(state));
1249
+ } else {
1250
+ return ArrayBindingPattern$0(state);
1251
+ }
1252
+ }
1253
+ var BindingProperty$0 = $S(__, PropertyName, __, $EXPECT($L11, fail, 'BindingProperty ":"'), __, $C(BindingIdentifier, BindingPattern), $E(Initializer), ObjectPropertyDelimiter);
1254
+ var BindingProperty$1 = $S(__, BindingIdentifier, $E(Initializer), ObjectPropertyDelimiter);
1255
+ function BindingProperty(state) {
1256
+ if (state.tokenize) {
1257
+ return $TOKEN("BindingProperty", state, BindingProperty$0(state) || BindingProperty$1(state));
1258
+ } else {
1259
+ return BindingProperty$0(state) || BindingProperty$1(state);
1260
+ }
1261
+ }
1262
+ var BindingRestProperty$0 = $S($EXPECT($L30, fail, 'BindingRestProperty "..."'), __, BindingIdentifier);
1263
+ function BindingRestProperty(state) {
1264
+ if (state.verbose)
1265
+ console.log("ENTER:", "BindingRestProperty");
1266
+ if (state.tokenize) {
1267
+ return $TOKEN("BindingRestProperty", state, BindingRestProperty$0(state));
1268
+ } else {
1269
+ return BindingRestProperty$0(state);
1270
+ }
1271
+ }
1272
+ var BindingElement$0 = $S(__, $C(BindingIdentifier, BindingPattern), $E(Initializer), ArrayElementDelimiter);
1273
+ function BindingElement(state) {
1274
+ if (state.verbose)
1275
+ console.log("ENTER:", "BindingElement");
1276
+ if (state.tokenize) {
1277
+ return $TOKEN("BindingElement", state, BindingElement$0(state));
1278
+ } else {
1279
+ return BindingElement$0(state);
1280
+ }
1281
+ }
1282
+ var BindingRestElement$0 = $S($EXPECT($L30, fail, 'BindingRestElement "..."'), __, $C(BindingIdentifier, BindingPattern));
1283
+ function BindingRestElement(state) {
1284
+ if (state.verbose)
1285
+ console.log("ENTER:", "BindingRestElement");
1286
+ if (state.tokenize) {
1287
+ return $TOKEN("BindingRestElement", state, BindingRestElement$0(state));
1288
+ } else {
1289
+ return BindingRestElement$0(state);
1290
+ }
1291
+ }
1292
+ var FunctionDeclaration$0 = FunctionExpression;
1293
+ function FunctionDeclaration(state) {
1294
+ if (state.verbose)
1295
+ console.log("ENTER:", "FunctionDeclaration");
1296
+ if (state.tokenize) {
1297
+ return $TOKEN("FunctionDeclaration", state, FunctionDeclaration$0(state));
1298
+ } else {
1299
+ return FunctionDeclaration$0(state);
1300
+ }
1301
+ }
1302
+ var FunctionExpression$0 = ThinArrowFunction;
1303
+ var FunctionExpression$1 = $S($EXPECT($L31, fail, 'FunctionExpression "function"'), __, Parameters, BracedBlock);
1304
+ function FunctionExpression(state) {
1305
+ if (state.tokenize) {
1306
+ return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
1307
+ } else {
1308
+ return FunctionExpression$0(state) || FunctionExpression$1(state);
1309
+ }
1310
+ }
1311
+ var ThinArrowFunction$0 = $T($S(Parameters, $E(TypeSuffix), __, $EXPECT($L32, fail, 'ThinArrowFunction "->"'), BracedBlock), function(value) {
1312
+ var params = value[0];
1313
+ var suffix = value[1];
1314
+ var block = value[4];
1315
+ return ["function", params, suffix, block];
1316
+ });
1317
+ function ThinArrowFunction(state) {
1318
+ if (state.verbose)
1319
+ console.log("ENTER:", "ThinArrowFunction");
1320
+ if (state.tokenize) {
1321
+ return $TOKEN("ThinArrowFunction", state, ThinArrowFunction$0(state));
1322
+ } else {
1323
+ return ThinArrowFunction$0(state);
1324
+ }
1325
+ }
1326
+ var Block$0 = $S(__, $EXPECT($L10, fail, 'Block "{"'), EOS, NestedBlockExpressions, __, $EXPECT($L15, fail, 'Block "}"'));
1327
+ var Block$1 = $S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace);
1328
+ var Block$2 = Statement;
1329
+ var Block$3 = $S(__, Statement);
1330
+ function Block(state) {
1331
+ if (state.tokenize) {
1332
+ return $TOKEN("Block", state, Block$0(state) || Block$1(state) || Block$2(state) || Block$3(state));
1333
+ } else {
1334
+ return Block$0(state) || Block$1(state) || Block$2(state) || Block$3(state);
1335
+ }
1336
+ }
1337
+ var BracedBlock$0 = $S(__, $EXPECT($L10, fail, 'BracedBlock "{"'), EOS, NestedBlockExpressions, __, $EXPECT($L15, fail, 'BracedBlock "}"'));
1338
+ var BracedBlock$1 = $S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace);
1339
+ var BracedBlock$2 = $S(InsertOpenBrace, $N(EOS), __, Statement, InsertSpace, InsertCloseBrace);
1340
+ function BracedBlock(state) {
1341
+ if (state.tokenize) {
1342
+ return $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state));
1343
+ } else {
1344
+ return BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state);
1345
+ }
1346
+ }
1347
+ var SingleNestedBlockExpression$0 = $TS($S(PushIndent, $E($S(Nested, $C(Declaration, Statement))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1348
+ var exp = $2;
1349
+ if (exp)
1350
+ return exp;
1351
+ return $skip;
1352
+ });
1353
+ function SingleNestedBlockExpression(state) {
1354
+ if (state.verbose)
1355
+ console.log("ENTER:", "SingleNestedBlockExpression");
1356
+ if (state.tokenize) {
1357
+ return $TOKEN("SingleNestedBlockExpression", state, SingleNestedBlockExpression$0(state));
1358
+ } else {
1359
+ return SingleNestedBlockExpression$0(state);
1360
+ }
1361
+ }
1362
+ var NestedBlockExpressions$0 = $TS($S(PushIndent, $Q(BlockExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1363
+ var exps = $2;
1364
+ if (!exps.length)
1365
+ return $skip;
1366
+ return exps;
1367
+ });
1368
+ function NestedBlockExpressions(state) {
1369
+ if (state.verbose)
1370
+ console.log("ENTER:", "NestedBlockExpressions");
1371
+ if (state.tokenize) {
1372
+ return $TOKEN("NestedBlockExpressions", state, NestedBlockExpressions$0(state));
1373
+ } else {
1374
+ return NestedBlockExpressions$0(state);
1375
+ }
1376
+ }
1377
+ var BlockExpression$0 = $S(Nested, $C(Declaration, Statement), StatementDelimiter);
1378
+ function BlockExpression(state) {
1379
+ if (state.verbose)
1380
+ console.log("ENTER:", "BlockExpression");
1381
+ if (state.tokenize) {
1382
+ return $TOKEN("BlockExpression", state, BlockExpression$0(state));
1383
+ } else {
1384
+ return BlockExpression$0(state);
1385
+ }
1386
+ }
1387
+ var Literal$0 = StringLiteral;
1388
+ var Literal$1 = NumericLiteral;
1389
+ var Literal$2 = $EXPECT($L33, fail, 'Literal "true"');
1390
+ var Literal$3 = $EXPECT($L34, fail, 'Literal "false"');
1391
+ var Literal$4 = $EXPECT($L35, fail, 'Literal "null"');
1392
+ var Literal$5 = $EXPECT($L36, fail, 'Literal "undefined"');
1393
+ function Literal(state) {
1394
+ if (state.tokenize) {
1395
+ return $TOKEN("Literal", state, Literal$0(state) || Literal$1(state) || Literal$2(state) || Literal$3(state) || Literal$4(state) || Literal$5(state));
1396
+ } else {
1397
+ return Literal$0(state) || Literal$1(state) || Literal$2(state) || Literal$3(state) || Literal$4(state) || Literal$5(state);
1398
+ }
1399
+ }
1400
+ var Comma$0 = $S($Q(_), $EXPECT($L0, fail, 'Comma ","'), $Q(_));
1401
+ function Comma(state) {
1402
+ if (state.verbose)
1403
+ console.log("ENTER:", "Comma");
1404
+ if (state.tokenize) {
1405
+ return $TOKEN("Comma", state, Comma$0(state));
1406
+ } else {
1407
+ return Comma$0(state);
1408
+ }
1409
+ }
1410
+ var Identifier$0 = $S($N(ReservedWord), IdentifierName);
1411
+ function Identifier(state) {
1412
+ if (state.verbose)
1413
+ console.log("ENTER:", "Identifier");
1414
+ if (state.tokenize) {
1415
+ return $TOKEN("Identifier", state, Identifier$0(state));
1416
+ } else {
1417
+ return Identifier$0(state);
1418
+ }
1419
+ }
1420
+ var IdentifierName$0 = $R$0($EXPECT($R1, fail, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
1421
+ function IdentifierName(state) {
1422
+ if (state.verbose)
1423
+ console.log("ENTER:", "IdentifierName");
1424
+ if (state.tokenize) {
1425
+ return $TOKEN("IdentifierName", state, IdentifierName$0(state));
1426
+ } else {
1427
+ return IdentifierName$0(state);
1428
+ }
1429
+ }
1430
+ var IdentifierReference$0 = Identifier;
1431
+ function IdentifierReference(state) {
1432
+ if (state.verbose)
1433
+ console.log("ENTER:", "IdentifierReference");
1434
+ if (state.tokenize) {
1435
+ return $TOKEN("IdentifierReference", state, IdentifierReference$0(state));
1436
+ } else {
1437
+ return IdentifierReference$0(state);
1438
+ }
1439
+ }
1440
+ var ArrayLiteral$0 = $S($EXPECT($L23, fail, 'ArrayLiteral "["'), NestedElementList, __, $EXPECT($L24, fail, 'ArrayLiteral "]"'));
1441
+ var ArrayLiteral$1 = $S($EXPECT($L23, fail, 'ArrayLiteral "["'), ElementList, __, $EXPECT($L24, fail, 'ArrayLiteral "]"'));
1442
+ function ArrayLiteral(state) {
1443
+ if (state.tokenize) {
1444
+ return $TOKEN("ArrayLiteral", state, ArrayLiteral$0(state) || ArrayLiteral$1(state));
1445
+ } else {
1446
+ return ArrayLiteral$0(state) || ArrayLiteral$1(state);
1447
+ }
1448
+ }
1449
+ var NestedElementList$0 = $TS($S(PushIndent, $Q(NestedElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1450
+ var elements = $2;
1451
+ if (elements.length)
1452
+ return elements;
1453
+ return $skip;
1454
+ });
1455
+ function NestedElementList(state) {
1456
+ if (state.verbose)
1457
+ console.log("ENTER:", "NestedElementList");
1458
+ if (state.tokenize) {
1459
+ return $TOKEN("NestedElementList", state, NestedElementList$0(state));
1460
+ } else {
1461
+ return NestedElementList$0(state);
1462
+ }
1463
+ }
1464
+ var NestedElement$0 = $S(Nested, ArrayElementExpression, ArrayElementDelimiter);
1465
+ function NestedElement(state) {
1466
+ if (state.verbose)
1467
+ console.log("ENTER:", "NestedElement");
1468
+ if (state.tokenize) {
1469
+ return $TOKEN("NestedElement", state, NestedElement$0(state));
1470
+ } else {
1471
+ return NestedElement$0(state);
1472
+ }
1473
+ }
1474
+ var ArrayElementDelimiter$0 = $S($Q(_), $EXPECT($L0, fail, 'ArrayElementDelimiter ","'));
1475
+ var ArrayElementDelimiter$1 = $Y($S($Q(_), $EXPECT($L24, fail, 'ArrayElementDelimiter "]"')));
1476
+ var ArrayElementDelimiter$2 = $T($Y($S(__, $EXPECT($L24, fail, 'ArrayElementDelimiter "]"'))), function(value) {
1477
+ return ",";
1478
+ });
1479
+ var ArrayElementDelimiter$3 = $T($Y(EOS), function(value) {
1480
+ return ",";
1481
+ });
1482
+ function ArrayElementDelimiter(state) {
1483
+ if (state.tokenize) {
1484
+ return $TOKEN("ArrayElementDelimiter", state, ArrayElementDelimiter$0(state) || ArrayElementDelimiter$1(state) || ArrayElementDelimiter$2(state) || ArrayElementDelimiter$3(state));
1485
+ } else {
1486
+ return ArrayElementDelimiter$0(state) || ArrayElementDelimiter$1(state) || ArrayElementDelimiter$2(state) || ArrayElementDelimiter$3(state);
1487
+ }
1488
+ }
1489
+ var ElementList$0 = $S(ArrayElementExpression, $Q($S(__, $EXPECT($L0, fail, 'ElementList ","'), __, ArrayElementExpression)));
1490
+ function ElementList(state) {
1491
+ if (state.verbose)
1492
+ console.log("ENTER:", "ElementList");
1493
+ if (state.tokenize) {
1494
+ return $TOKEN("ElementList", state, ElementList$0(state));
1495
+ } else {
1496
+ return ElementList$0(state);
1497
+ }
1498
+ }
1499
+ var ArrayElementExpression$0 = $E($S($E($S($EXPECT($L30, fail, 'ArrayElementExpression "..."'), __)), AssignmentExpression));
1500
+ function ArrayElementExpression(state) {
1501
+ if (state.verbose)
1502
+ console.log("ENTER:", "ArrayElementExpression");
1503
+ if (state.tokenize) {
1504
+ return $TOKEN("ArrayElementExpression", state, ArrayElementExpression$0(state));
1505
+ } else {
1506
+ return ArrayElementExpression$0(state);
1507
+ }
1508
+ }
1509
+ var Elision$0 = $S(__, $EXPECT($L0, fail, 'Elision ","'));
1510
+ function Elision(state) {
1511
+ if (state.verbose)
1512
+ console.log("ENTER:", "Elision");
1513
+ if (state.tokenize) {
1514
+ return $TOKEN("Elision", state, Elision$0(state));
1515
+ } else {
1516
+ return Elision$0(state);
1517
+ }
1518
+ }
1519
+ var ObjectLiteral$0 = $S($EXPECT($L10, fail, 'ObjectLiteral "{"'), $Y(EOS), NestedPropertyDefinitions, __, $EXPECT($L15, fail, 'ObjectLiteral "}"'));
1520
+ var ObjectLiteral$1 = $S($EXPECT($L10, fail, 'ObjectLiteral "{"'), __, PropertyDefinitionList, __, $E($S($EXPECT($L0, fail, 'ObjectLiteral ","'), __)), $EXPECT($L15, fail, 'ObjectLiteral "}"'));
1521
+ var ObjectLiteral$2 = $S($EXPECT($L10, fail, 'ObjectLiteral "{"'), __, $EXPECT($L15, fail, 'ObjectLiteral "}"'));
1522
+ var ObjectLiteral$3 = $S(InsertOpenBrace, $Y(EOS), NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace);
1523
+ function ObjectLiteral(state) {
1524
+ if (state.tokenize) {
1525
+ return $TOKEN("ObjectLiteral", state, ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state));
1526
+ } else {
1527
+ return ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state);
1528
+ }
1529
+ }
1530
+ var NestedPropertyDefinitions$0 = $TS($S(PushIndent, $Q(NestedPropertyDefinition), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1531
+ var defs = $2;
1532
+ if (!defs.length)
1533
+ return $skip;
1534
+ return defs;
1535
+ });
1536
+ function NestedPropertyDefinitions(state) {
1537
+ if (state.verbose)
1538
+ console.log("ENTER:", "NestedPropertyDefinitions");
1539
+ if (state.tokenize) {
1540
+ return $TOKEN("NestedPropertyDefinitions", state, NestedPropertyDefinitions$0(state));
1541
+ } else {
1542
+ return NestedPropertyDefinitions$0(state);
1543
+ }
1544
+ }
1545
+ var NestedPropertyDefinition$0 = $S(Nested, PropertyDefinition, ObjectPropertyDelimiter);
1546
+ function NestedPropertyDefinition(state) {
1547
+ if (state.verbose)
1548
+ console.log("ENTER:", "NestedPropertyDefinition");
1549
+ if (state.tokenize) {
1550
+ return $TOKEN("NestedPropertyDefinition", state, NestedPropertyDefinition$0(state));
1551
+ } else {
1552
+ return NestedPropertyDefinition$0(state);
1553
+ }
1554
+ }
1555
+ var ObjectPropertyDelimiter$0 = $S($Q(_), $EXPECT($L0, fail, 'ObjectPropertyDelimiter ","'));
1556
+ var ObjectPropertyDelimiter$1 = $Y($S($Q(_), $EXPECT($L15, fail, 'ObjectPropertyDelimiter "}"')));
1557
+ var ObjectPropertyDelimiter$2 = $T($Y($S(__, $EXPECT($L15, fail, 'ObjectPropertyDelimiter "}"'))), function(value) {
1558
+ return ",";
1559
+ });
1560
+ var ObjectPropertyDelimiter$3 = $T($Y(EOS), function(value) {
1561
+ return ",";
1562
+ });
1563
+ function ObjectPropertyDelimiter(state) {
1564
+ if (state.tokenize) {
1565
+ return $TOKEN("ObjectPropertyDelimiter", state, ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state) || ObjectPropertyDelimiter$3(state));
1566
+ } else {
1567
+ return ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state) || ObjectPropertyDelimiter$3(state);
1568
+ }
1569
+ }
1570
+ var PropertyDefinitionList$0 = $S(PropertyDefinition, $Q($S(__, $EXPECT($L0, fail, 'PropertyDefinitionList ","'), __, PropertyDefinition)));
1571
+ function PropertyDefinitionList(state) {
1572
+ if (state.verbose)
1573
+ console.log("ENTER:", "PropertyDefinitionList");
1574
+ if (state.tokenize) {
1575
+ return $TOKEN("PropertyDefinitionList", state, PropertyDefinitionList$0(state));
1576
+ } else {
1577
+ return PropertyDefinitionList$0(state);
1578
+ }
1579
+ }
1580
+ var PropertyDefinition$0 = $S(PropertyName, __, $EXPECT($L11, fail, 'PropertyDefinition ":"'), AssignmentExpression);
1581
+ var PropertyDefinition$1 = MethodDefinition;
1582
+ var PropertyDefinition$2 = $S($EXPECT($L30, fail, 'PropertyDefinition "..."'), AssignmentExpression);
1583
+ var PropertyDefinition$3 = IdentifierReference;
1584
+ function PropertyDefinition(state) {
1585
+ if (state.tokenize) {
1586
+ return $TOKEN("PropertyDefinition", state, PropertyDefinition$0(state) || PropertyDefinition$1(state) || PropertyDefinition$2(state) || PropertyDefinition$3(state));
1587
+ } else {
1588
+ return PropertyDefinition$0(state) || PropertyDefinition$1(state) || PropertyDefinition$2(state) || PropertyDefinition$3(state);
1589
+ }
1590
+ }
1591
+ var PropertyName$0 = NumericLiteral;
1592
+ var PropertyName$1 = StringLiteral;
1593
+ var PropertyName$2 = IdentifierName;
1594
+ var PropertyName$3 = $S($EXPECT($L23, fail, 'PropertyName "["'), AssignmentExpression, __, $EXPECT($L24, fail, 'PropertyName "]"'));
1595
+ function PropertyName(state) {
1596
+ if (state.tokenize) {
1597
+ return $TOKEN("PropertyName", state, PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state));
1598
+ } else {
1599
+ return PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state);
1600
+ }
1601
+ }
1602
+ var MethodDefinition$0 = $S($EXPECT($L37, fail, 'MethodDefinition "get"'), $N($R$0($EXPECT($R2, fail, "MethodDefinition /\\p{ID_Continue}/"))), $Q(TrailingComment), ClassElementName, __, Parameters, BracedBlock);
1603
+ var MethodDefinition$1 = $S($EXPECT($L38, fail, 'MethodDefinition "set"'), $N($R$0($EXPECT($R2, fail, "MethodDefinition /\\p{ID_Continue}/"))), $Q(TrailingComment), ClassElementName, __, Parameters, BracedBlock);
1604
+ var MethodDefinition$2 = AsyncGeneratorMethod;
1605
+ var MethodDefinition$3 = AsyncMethod;
1606
+ var MethodDefinition$4 = GeneratorMethod;
1607
+ var MethodDefinition$5 = $S(ClassElementName, $Q(_), Parameters, BracedBlock);
1608
+ function MethodDefinition(state) {
1609
+ if (state.tokenize) {
1610
+ return $TOKEN("MethodDefinition", state, MethodDefinition$0(state) || MethodDefinition$1(state) || MethodDefinition$2(state) || MethodDefinition$3(state) || MethodDefinition$4(state) || MethodDefinition$5(state));
1611
+ } else {
1612
+ return MethodDefinition$0(state) || MethodDefinition$1(state) || MethodDefinition$2(state) || MethodDefinition$3(state) || MethodDefinition$4(state) || MethodDefinition$5(state);
1613
+ }
1614
+ }
1615
+ var ClassElementName$0 = PropertyName;
1616
+ var ClassElementName$1 = PrivateIdentifier;
1617
+ function ClassElementName(state) {
1618
+ if (state.tokenize) {
1619
+ return $TOKEN("ClassElementName", state, ClassElementName$0(state) || ClassElementName$1(state));
1620
+ } else {
1621
+ return ClassElementName$0(state) || ClassElementName$1(state);
1622
+ }
1623
+ }
1624
+ var PrivateIdentifier$0 = $S($EXPECT($L19, fail, 'PrivateIdentifier "#"'), IdentifierName);
1625
+ function PrivateIdentifier(state) {
1626
+ if (state.verbose)
1627
+ console.log("ENTER:", "PrivateIdentifier");
1628
+ if (state.tokenize) {
1629
+ return $TOKEN("PrivateIdentifier", state, PrivateIdentifier$0(state));
1630
+ } else {
1631
+ return PrivateIdentifier$0(state);
1632
+ }
1633
+ }
1634
+ var GeneratorDeclaration$0 = GeneratorExpression;
1635
+ function GeneratorDeclaration(state) {
1636
+ if (state.verbose)
1637
+ console.log("ENTER:", "GeneratorDeclaration");
1638
+ if (state.tokenize) {
1639
+ return $TOKEN("GeneratorDeclaration", state, GeneratorDeclaration$0(state));
1640
+ } else {
1641
+ return GeneratorDeclaration$0(state);
1642
+ }
1643
+ }
1644
+ var GeneratorExpression$0 = $S($EXPECT($L31, fail, 'GeneratorExpression "function"'), __, $EXPECT($L8, fail, 'GeneratorExpression "*"'), $E($S(__, BindingIdentifier)), Parameters, GeneratorBody);
1645
+ function GeneratorExpression(state) {
1646
+ if (state.verbose)
1647
+ console.log("ENTER:", "GeneratorExpression");
1648
+ if (state.tokenize) {
1649
+ return $TOKEN("GeneratorExpression", state, GeneratorExpression$0(state));
1650
+ } else {
1651
+ return GeneratorExpression$0(state);
1652
+ }
1653
+ }
1654
+ var GeneratorMethod$0 = $S($EXPECT($L8, fail, 'GeneratorMethod "*"'), __, ClassElementName, __, Parameters, GeneratorBody);
1655
+ function GeneratorMethod(state) {
1656
+ if (state.verbose)
1657
+ console.log("ENTER:", "GeneratorMethod");
1658
+ if (state.tokenize) {
1659
+ return $TOKEN("GeneratorMethod", state, GeneratorMethod$0(state));
1660
+ } else {
1661
+ return GeneratorMethod$0(state);
1662
+ }
1663
+ }
1664
+ var GeneratorBody$0 = BracedBlock;
1665
+ function GeneratorBody(state) {
1666
+ if (state.verbose)
1667
+ console.log("ENTER:", "GeneratorBody");
1668
+ if (state.tokenize) {
1669
+ return $TOKEN("GeneratorBody", state, GeneratorBody$0(state));
1670
+ } else {
1671
+ return GeneratorBody$0(state);
1672
+ }
1673
+ }
1674
+ var AsyncFunctionDeclaration$0 = AsyncFunctionExpression;
1675
+ function AsyncFunctionDeclaration(state) {
1676
+ if (state.verbose)
1677
+ console.log("ENTER:", "AsyncFunctionDeclaration");
1678
+ if (state.tokenize) {
1679
+ return $TOKEN("AsyncFunctionDeclaration", state, AsyncFunctionDeclaration$0(state));
1680
+ } else {
1681
+ return AsyncFunctionDeclaration$0(state);
1682
+ }
1683
+ }
1684
+ var AsyncFunctionExpression$0 = $S($EXPECT($L6, fail, 'AsyncFunctionExpression "async"'), $N(EOS), __, $EXPECT($L31, fail, 'AsyncFunctionExpression "function"'), $E($S(__, BindingIdentifier)), __, Parameters, AsyncFunctionBody);
1685
+ function AsyncFunctionExpression(state) {
1686
+ if (state.verbose)
1687
+ console.log("ENTER:", "AsyncFunctionExpression");
1688
+ if (state.tokenize) {
1689
+ return $TOKEN("AsyncFunctionExpression", state, AsyncFunctionExpression$0(state));
1690
+ } else {
1691
+ return AsyncFunctionExpression$0(state);
1692
+ }
1693
+ }
1694
+ var AsyncMethod$0 = $S($EXPECT($L6, fail, 'AsyncMethod "async"'), $N(EOS), __, ClassElementName, __, Parameters, AsyncFunctionBody);
1695
+ function AsyncMethod(state) {
1696
+ if (state.verbose)
1697
+ console.log("ENTER:", "AsyncMethod");
1698
+ if (state.tokenize) {
1699
+ return $TOKEN("AsyncMethod", state, AsyncMethod$0(state));
1700
+ } else {
1701
+ return AsyncMethod$0(state);
1702
+ }
1703
+ }
1704
+ var AsyncFunctionBody$0 = BracedBlock;
1705
+ function AsyncFunctionBody(state) {
1706
+ if (state.verbose)
1707
+ console.log("ENTER:", "AsyncFunctionBody");
1708
+ if (state.tokenize) {
1709
+ return $TOKEN("AsyncFunctionBody", state, AsyncFunctionBody$0(state));
1710
+ } else {
1711
+ return AsyncFunctionBody$0(state);
1712
+ }
1713
+ }
1714
+ var AsyncGeneratorDeclaration$0 = AsyncGeneratorExpression;
1715
+ function AsyncGeneratorDeclaration(state) {
1716
+ if (state.verbose)
1717
+ console.log("ENTER:", "AsyncGeneratorDeclaration");
1718
+ if (state.tokenize) {
1719
+ return $TOKEN("AsyncGeneratorDeclaration", state, AsyncGeneratorDeclaration$0(state));
1720
+ } else {
1721
+ return AsyncGeneratorDeclaration$0(state);
1722
+ }
1723
+ }
1724
+ var AsyncGeneratorExpression$0 = $S($EXPECT($L6, fail, 'AsyncGeneratorExpression "async"'), $N(EOS), __, $EXPECT($L31, fail, 'AsyncGeneratorExpression "function"'), __, $EXPECT($L8, fail, 'AsyncGeneratorExpression "*"'), $E($S(__, BindingIdentifier)), __, Parameters, AsyncGeneratorBody);
1725
+ function AsyncGeneratorExpression(state) {
1726
+ if (state.verbose)
1727
+ console.log("ENTER:", "AsyncGeneratorExpression");
1728
+ if (state.tokenize) {
1729
+ return $TOKEN("AsyncGeneratorExpression", state, AsyncGeneratorExpression$0(state));
1730
+ } else {
1731
+ return AsyncGeneratorExpression$0(state);
1732
+ }
1733
+ }
1734
+ var AsyncGeneratorMethod$0 = $S($EXPECT($L6, fail, 'AsyncGeneratorMethod "async"'), $N(EOS), __, $EXPECT($L8, fail, 'AsyncGeneratorMethod "*"'), __, ClassElementName, __, Parameters, AsyncGeneratorBody);
1735
+ function AsyncGeneratorMethod(state) {
1736
+ if (state.verbose)
1737
+ console.log("ENTER:", "AsyncGeneratorMethod");
1738
+ if (state.tokenize) {
1739
+ return $TOKEN("AsyncGeneratorMethod", state, AsyncGeneratorMethod$0(state));
1740
+ } else {
1741
+ return AsyncGeneratorMethod$0(state);
1742
+ }
1743
+ }
1744
+ var AsyncGeneratorBody$0 = BracedBlock;
1745
+ function AsyncGeneratorBody(state) {
1746
+ if (state.verbose)
1747
+ console.log("ENTER:", "AsyncGeneratorBody");
1748
+ if (state.tokenize) {
1749
+ return $TOKEN("AsyncGeneratorBody", state, AsyncGeneratorBody$0(state));
1750
+ } else {
1751
+ return AsyncGeneratorBody$0(state);
1752
+ }
1753
+ }
1754
+ var AssignmentOp$0 = $EXPECT($L39, fail, 'AssignmentOp "**="');
1755
+ var AssignmentOp$1 = $EXPECT($L40, fail, 'AssignmentOp "*="');
1756
+ var AssignmentOp$2 = $EXPECT($L41, fail, 'AssignmentOp "/="');
1757
+ var AssignmentOp$3 = $EXPECT($L42, fail, 'AssignmentOp "%="');
1758
+ var AssignmentOp$4 = $EXPECT($L43, fail, 'AssignmentOp "+="');
1759
+ var AssignmentOp$5 = $EXPECT($L44, fail, 'AssignmentOp "-="');
1760
+ var AssignmentOp$6 = $EXPECT($L45, fail, 'AssignmentOp "<<="');
1761
+ var AssignmentOp$7 = $EXPECT($L46, fail, 'AssignmentOp ">>>="');
1762
+ var AssignmentOp$8 = $EXPECT($L47, fail, 'AssignmentOp ">>="');
1763
+ var AssignmentOp$9 = $EXPECT($L48, fail, 'AssignmentOp "&&="');
1764
+ var AssignmentOp$10 = $EXPECT($L49, fail, 'AssignmentOp "&="');
1765
+ var AssignmentOp$11 = $EXPECT($L50, fail, 'AssignmentOp "^="');
1766
+ var AssignmentOp$12 = $EXPECT($L51, fail, 'AssignmentOp "||="');
1767
+ var AssignmentOp$13 = $EXPECT($L52, fail, 'AssignmentOp "|="');
1768
+ var AssignmentOp$14 = $EXPECT($L53, fail, 'AssignmentOp "??="');
1769
+ var AssignmentOp$15 = $EXPECT($L54, fail, 'AssignmentOp "="');
1770
+ function AssignmentOp(state) {
1771
+ if (state.tokenize) {
1772
+ return $TOKEN("AssignmentOp", state, AssignmentOp$0(state) || AssignmentOp$1(state) || AssignmentOp$2(state) || AssignmentOp$3(state) || AssignmentOp$4(state) || AssignmentOp$5(state) || AssignmentOp$6(state) || AssignmentOp$7(state) || AssignmentOp$8(state) || AssignmentOp$9(state) || AssignmentOp$10(state) || AssignmentOp$11(state) || AssignmentOp$12(state) || AssignmentOp$13(state) || AssignmentOp$14(state) || AssignmentOp$15(state));
1773
+ } else {
1774
+ return AssignmentOp$0(state) || AssignmentOp$1(state) || AssignmentOp$2(state) || AssignmentOp$3(state) || AssignmentOp$4(state) || AssignmentOp$5(state) || AssignmentOp$6(state) || AssignmentOp$7(state) || AssignmentOp$8(state) || AssignmentOp$9(state) || AssignmentOp$10(state) || AssignmentOp$11(state) || AssignmentOp$12(state) || AssignmentOp$13(state) || AssignmentOp$14(state) || AssignmentOp$15(state);
1775
+ }
1776
+ }
1777
+ var BinaryOp$0 = $EXPECT($L55, fail, 'BinaryOp "**"');
1778
+ var BinaryOp$1 = $EXPECT($L8, fail, 'BinaryOp "*"');
1779
+ var BinaryOp$2 = $EXPECT($L56, fail, 'BinaryOp "/"');
1780
+ var BinaryOp$3 = $EXPECT($L57, fail, 'BinaryOp "%"');
1781
+ var BinaryOp$4 = $EXPECT($L58, fail, 'BinaryOp "+"');
1782
+ var BinaryOp$5 = $EXPECT($L59, fail, 'BinaryOp "-"');
1783
+ var BinaryOp$6 = $EXPECT($L60, fail, 'BinaryOp "<="');
1784
+ var BinaryOp$7 = $EXPECT($L61, fail, 'BinaryOp ">="');
1785
+ var BinaryOp$8 = $EXPECT($L62, fail, 'BinaryOp "<<"');
1786
+ var BinaryOp$9 = $EXPECT($L13, fail, 'BinaryOp "<"');
1787
+ var BinaryOp$10 = $EXPECT($L63, fail, 'BinaryOp ">>>"');
1788
+ var BinaryOp$11 = $EXPECT($L64, fail, 'BinaryOp ">>"');
1789
+ var BinaryOp$12 = $EXPECT($L65, fail, 'BinaryOp ">"');
1790
+ var BinaryOp$13 = $EXPECT($L66, fail, 'BinaryOp "!=="');
1791
+ var BinaryOp$14 = $TV($EXPECT($L67, fail, 'BinaryOp "!="'), function($skip, $loc, $0, $1) {
1792
+ if (global.coffeeCompat)
1793
+ return "!==";
1794
+ return $1;
1795
+ });
1796
+ var BinaryOp$15 = $T($EXPECT($L68, fail, 'BinaryOp "is"'), function(value) {
1797
+ return "===";
1798
+ });
1799
+ var BinaryOp$16 = $EXPECT($L69, fail, 'BinaryOp "==="');
1800
+ var BinaryOp$17 = $TV($EXPECT($L70, fail, 'BinaryOp "=="'), function($skip, $loc, $0, $1) {
1801
+ if (global.coffeeCompat)
1802
+ return "===";
1803
+ return $1;
1804
+ });
1805
+ var BinaryOp$18 = $T($EXPECT($L71, fail, 'BinaryOp "and"'), function(value) {
1806
+ return "&&";
1807
+ });
1808
+ var BinaryOp$19 = $EXPECT($L72, fail, 'BinaryOp "&&"');
1809
+ var BinaryOp$20 = $T($EXPECT($L73, fail, 'BinaryOp "or"'), function(value) {
1810
+ return "||";
1811
+ });
1812
+ var BinaryOp$21 = $EXPECT($L74, fail, 'BinaryOp "||"');
1813
+ var BinaryOp$22 = $EXPECT($L75, fail, 'BinaryOp "??"');
1814
+ var BinaryOp$23 = $EXPECT($L76, fail, 'BinaryOp "instanceof"');
1815
+ var BinaryOp$24 = $EXPECT($L77, fail, 'BinaryOp "in"');
1816
+ var BinaryOp$25 = $EXPECT($L78, fail, 'BinaryOp "&"');
1817
+ var BinaryOp$26 = $EXPECT($L79, fail, 'BinaryOp "^"');
1818
+ var BinaryOp$27 = $EXPECT($L80, fail, 'BinaryOp "|"');
1819
+ function BinaryOp(state) {
1820
+ if (state.tokenize) {
1821
+ return $TOKEN("BinaryOp", state, BinaryOp$0(state) || BinaryOp$1(state) || BinaryOp$2(state) || BinaryOp$3(state) || BinaryOp$4(state) || BinaryOp$5(state) || BinaryOp$6(state) || BinaryOp$7(state) || BinaryOp$8(state) || BinaryOp$9(state) || BinaryOp$10(state) || BinaryOp$11(state) || BinaryOp$12(state) || BinaryOp$13(state) || BinaryOp$14(state) || BinaryOp$15(state) || BinaryOp$16(state) || BinaryOp$17(state) || BinaryOp$18(state) || BinaryOp$19(state) || BinaryOp$20(state) || BinaryOp$21(state) || BinaryOp$22(state) || BinaryOp$23(state) || BinaryOp$24(state) || BinaryOp$25(state) || BinaryOp$26(state) || BinaryOp$27(state));
1822
+ } else {
1823
+ return BinaryOp$0(state) || BinaryOp$1(state) || BinaryOp$2(state) || BinaryOp$3(state) || BinaryOp$4(state) || BinaryOp$5(state) || BinaryOp$6(state) || BinaryOp$7(state) || BinaryOp$8(state) || BinaryOp$9(state) || BinaryOp$10(state) || BinaryOp$11(state) || BinaryOp$12(state) || BinaryOp$13(state) || BinaryOp$14(state) || BinaryOp$15(state) || BinaryOp$16(state) || BinaryOp$17(state) || BinaryOp$18(state) || BinaryOp$19(state) || BinaryOp$20(state) || BinaryOp$21(state) || BinaryOp$22(state) || BinaryOp$23(state) || BinaryOp$24(state) || BinaryOp$25(state) || BinaryOp$26(state) || BinaryOp$27(state);
1824
+ }
1825
+ }
1826
+ var UnaryOp$0 = $R$0($EXPECT($R3, fail, "UnaryOp /[!~+-]/"));
1827
+ var UnaryOp$1 = $S($C($EXPECT($L81, fail, 'UnaryOp "delete"'), $EXPECT($L82, fail, 'UnaryOp "void"'), $EXPECT($L83, fail, 'UnaryOp "typeof"')), $P(_));
1828
+ function UnaryOp(state) {
1829
+ if (state.tokenize) {
1830
+ return $TOKEN("UnaryOp", state, UnaryOp$0(state) || UnaryOp$1(state));
1831
+ } else {
1832
+ return UnaryOp$0(state) || UnaryOp$1(state);
1833
+ }
1834
+ }
1835
+ var ModuleItem$0 = ImportDeclaration;
1836
+ var ModuleItem$1 = ExportDeclaration;
1837
+ var ModuleItem$2 = Declaration;
1838
+ var ModuleItem$3 = Statement;
1839
+ function ModuleItem(state) {
1840
+ if (state.tokenize) {
1841
+ return $TOKEN("ModuleItem", state, ModuleItem$0(state) || ModuleItem$1(state) || ModuleItem$2(state) || ModuleItem$3(state));
1842
+ } else {
1843
+ return ModuleItem$0(state) || ModuleItem$1(state) || ModuleItem$2(state) || ModuleItem$3(state);
1844
+ }
1845
+ }
1846
+ var Statement$0 = KeywordStatement;
1847
+ var Statement$1 = BlockStatement;
1848
+ var Statement$2 = VariableStatement;
1849
+ var Statement$3 = IfStatement;
1850
+ var Statement$4 = IterationStatement;
1851
+ var Statement$5 = SwitchStatement;
1852
+ var Statement$6 = TryStatement;
1853
+ var Statement$7 = EmptyStatement;
1854
+ var Statement$8 = ExpressionStatement;
1855
+ function Statement(state) {
1856
+ if (state.tokenize) {
1857
+ return $TOKEN("Statement", state, Statement$0(state) || Statement$1(state) || Statement$2(state) || Statement$3(state) || Statement$4(state) || Statement$5(state) || Statement$6(state) || Statement$7(state) || Statement$8(state));
1858
+ } else {
1859
+ return Statement$0(state) || Statement$1(state) || Statement$2(state) || Statement$3(state) || Statement$4(state) || Statement$5(state) || Statement$6(state) || Statement$7(state) || Statement$8(state);
1860
+ }
1861
+ }
1862
+ var EmptyStatement$0 = $S($Q(TrailingComment), $Y($EXPECT($L84, fail, 'EmptyStatement ";"')));
1863
+ function EmptyStatement(state) {
1864
+ if (state.verbose)
1865
+ console.log("ENTER:", "EmptyStatement");
1866
+ if (state.tokenize) {
1867
+ return $TOKEN("EmptyStatement", state, EmptyStatement$0(state));
1868
+ } else {
1869
+ return EmptyStatement$0(state);
1870
+ }
1871
+ }
1872
+ var BlockStatement$0 = $S(__, $EXPECT($L10, fail, 'BlockStatement "{"'), EOS, NestedBlockExpressions, __, $EXPECT($L15, fail, 'BlockStatement "}"'));
1873
+ function BlockStatement(state) {
1874
+ if (state.verbose)
1875
+ console.log("ENTER:", "BlockStatement");
1876
+ if (state.tokenize) {
1877
+ return $TOKEN("BlockStatement", state, BlockStatement$0(state));
1878
+ } else {
1879
+ return BlockStatement$0(state);
1880
+ }
1881
+ }
1882
+ var IfStatement$0 = $S($EXPECT($L85, fail, 'IfStatement "if"'), Condition, Block, $E($S(__, $EXPECT($L86, fail, 'IfStatement "else"'), Block)));
1883
+ var IfStatement$1 = $TS($S($EXPECT($L87, fail, 'IfStatement "unless"'), Condition, Block), function($skip, $loc, $0, $1, $2, $3) {
1884
+ var condition = $2;
1885
+ var block = $3;
1886
+ return ["if", condition.map((c) => {
1887
+ if (c === "(")
1888
+ return "(!(";
1889
+ if (c === ")")
1890
+ return "))";
1891
+ return c;
1892
+ }), block];
1893
+ });
1894
+ function IfStatement(state) {
1895
+ if (state.tokenize) {
1896
+ return $TOKEN("IfStatement", state, IfStatement$0(state) || IfStatement$1(state));
1897
+ } else {
1898
+ return IfStatement$0(state) || IfStatement$1(state);
1899
+ }
1900
+ }
1901
+ var IterationStatement$0 = LoopStatement;
1902
+ var IterationStatement$1 = DoWhileStatement;
1903
+ var IterationStatement$2 = WhileStatement;
1904
+ var IterationStatement$3 = ForStatement;
1905
+ var IterationStatement$4 = ForInOfStatement;
1906
+ function IterationStatement(state) {
1907
+ if (state.tokenize) {
1908
+ return $TOKEN("IterationStatement", state, IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state));
1909
+ } else {
1910
+ return IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state);
1911
+ }
1912
+ }
1913
+ var LoopStatement$0 = $TS($S($EXPECT($L88, fail, 'LoopStatement "loop"'), Block), function($skip, $loc, $0, $1, $2) {
1914
+ var b = $2;
1915
+ return ["while(true)", b];
1916
+ });
1917
+ function LoopStatement(state) {
1918
+ if (state.verbose)
1919
+ console.log("ENTER:", "LoopStatement");
1920
+ if (state.tokenize) {
1921
+ return $TOKEN("LoopStatement", state, LoopStatement$0(state));
1922
+ } else {
1923
+ return LoopStatement$0(state);
1924
+ }
1925
+ }
1926
+ var DoWhileStatement$0 = $S($EXPECT($L89, fail, 'DoWhileStatement "do"'), Block, __, $EXPECT($L90, fail, 'DoWhileStatement "while"'), Condition);
1927
+ function DoWhileStatement(state) {
1928
+ if (state.verbose)
1929
+ console.log("ENTER:", "DoWhileStatement");
1930
+ if (state.tokenize) {
1931
+ return $TOKEN("DoWhileStatement", state, DoWhileStatement$0(state));
1932
+ } else {
1933
+ return DoWhileStatement$0(state);
1934
+ }
1935
+ }
1936
+ var WhileStatement$0 = $S($EXPECT($L90, fail, 'WhileStatement "while"'), Condition, Block);
1937
+ function WhileStatement(state) {
1938
+ if (state.verbose)
1939
+ console.log("ENTER:", "WhileStatement");
1940
+ if (state.tokenize) {
1941
+ return $TOKEN("WhileStatement", state, WhileStatement$0(state));
1942
+ } else {
1943
+ return WhileStatement$0(state);
1944
+ }
1945
+ }
1946
+ var ForStatement$0 = $S($EXPECT($L91, fail, 'ForStatement "for"'), __, $EXPECT($L1, fail, 'ForStatement "("'), __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, $EXPECT($L84, fail, 'ForStatement ";"'), __, $E(Expression), $EXPECT($L84, fail, 'ForStatement ";"'), __, $E(Expression), $EXPECT($L2, fail, 'ForStatement ")"'), Block);
1947
+ function ForStatement(state) {
1948
+ if (state.verbose)
1949
+ console.log("ENTER:", "ForStatement");
1950
+ if (state.tokenize) {
1951
+ return $TOKEN("ForStatement", state, ForStatement$0(state));
1952
+ } else {
1953
+ return ForStatement$0(state);
1954
+ }
1955
+ }
1956
+ var ForInOfStatement$0 = $S($EXPECT($L91, fail, 'ForInOfStatement "for"'), __, $EXPECT($L1, fail, 'ForInOfStatement "("'), __, $C($S($EXPECT($L92, fail, 'ForInOfStatement "var"'), __, ForBinding), ForDeclaration, LeftHandSideExpression), __, $EXPECT($L77, fail, 'ForInOfStatement "in"'), __, Expression, __, $EXPECT($L2, fail, 'ForInOfStatement ")"'), Block);
1957
+ var ForInOfStatement$1 = $S($EXPECT($L91, fail, 'ForInOfStatement "for"'), __, InsertOpenParen, $C($S($EXPECT($L92, fail, 'ForInOfStatement "var"'), __, ForBinding), ForDeclaration, LeftHandSideExpression), __, $EXPECT($L77, fail, 'ForInOfStatement "in"'), __, Expression, InsertCloseParen, Block);
1958
+ var ForInOfStatement$2 = $S($EXPECT($L91, fail, 'ForInOfStatement "for"'), $E($S(__, $EXPECT($L93, fail, 'ForInOfStatement "await"'))), __, $EXPECT($L1, fail, 'ForInOfStatement "("'), __, $C($S($EXPECT($L92, fail, 'ForInOfStatement "var"'), __, ForBinding), ForDeclaration, LeftHandSideExpression), __, $EXPECT($L94, fail, 'ForInOfStatement "of"'), AssignmentExpression, __, $EXPECT($L2, fail, 'ForInOfStatement ")"'), Block);
1959
+ var ForInOfStatement$3 = $S($EXPECT($L91, fail, 'ForInOfStatement "for"'), $E($S(__, $EXPECT($L93, fail, 'ForInOfStatement "await"'))), __, InsertOpenParen, $C($S($EXPECT($L92, fail, 'ForInOfStatement "var"'), __, ForBinding), ForDeclaration, LeftHandSideExpression), __, $EXPECT($L94, fail, 'ForInOfStatement "of"'), AssignmentExpression, InsertCloseParen, Block);
1960
+ function ForInOfStatement(state) {
1961
+ if (state.tokenize) {
1962
+ return $TOKEN("ForInOfStatement", state, ForInOfStatement$0(state) || ForInOfStatement$1(state) || ForInOfStatement$2(state) || ForInOfStatement$3(state));
1963
+ } else {
1964
+ return ForInOfStatement$0(state) || ForInOfStatement$1(state) || ForInOfStatement$2(state) || ForInOfStatement$3(state);
1965
+ }
1966
+ }
1967
+ var ForDeclaration$0 = $S($C($EXPECT($L95, fail, 'ForDeclaration "let"'), $EXPECT($L96, fail, 'ForDeclaration "const"')), __, ForBinding);
1968
+ function ForDeclaration(state) {
1969
+ if (state.verbose)
1970
+ console.log("ENTER:", "ForDeclaration");
1971
+ if (state.tokenize) {
1972
+ return $TOKEN("ForDeclaration", state, ForDeclaration$0(state));
1973
+ } else {
1974
+ return ForDeclaration$0(state);
1975
+ }
1976
+ }
1977
+ var ForBinding$0 = BindingIdentifier;
1978
+ var ForBinding$1 = BindingPattern;
1979
+ function ForBinding(state) {
1980
+ if (state.tokenize) {
1981
+ return $TOKEN("ForBinding", state, ForBinding$0(state) || ForBinding$1(state));
1982
+ } else {
1983
+ return ForBinding$0(state) || ForBinding$1(state);
1984
+ }
1985
+ }
1986
+ var SwitchStatement$0 = $S($EXPECT($L97, fail, 'SwitchStatement "switch"'), Condition, CaseBlock);
1987
+ function SwitchStatement(state) {
1988
+ if (state.verbose)
1989
+ console.log("ENTER:", "SwitchStatement");
1990
+ if (state.tokenize) {
1991
+ return $TOKEN("SwitchStatement", state, SwitchStatement$0(state));
1992
+ } else {
1993
+ return SwitchStatement$0(state);
1994
+ }
1995
+ }
1996
+ var CaseBlock$0 = $S(__, $EXPECT($L10, fail, 'CaseBlock "{"'), $Y(EOS), NestedCaseClauses, __, $EXPECT($L15, fail, 'CaseBlock "}"'));
1997
+ var CaseBlock$1 = $S($Y(EOS), InsertOpenBrace, NestedCaseClauses, InsertNewline, InsertCloseBrace);
1998
+ function CaseBlock(state) {
1999
+ if (state.tokenize) {
2000
+ return $TOKEN("CaseBlock", state, CaseBlock$0(state) || CaseBlock$1(state));
2001
+ } else {
2002
+ return CaseBlock$0(state) || CaseBlock$1(state);
2003
+ }
2004
+ }
2005
+ var NestedCaseClauses$0 = $TS($S(PushIndent, $Q(NestedCaseClause), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
2006
+ var clauses = $2;
2007
+ if (clauses.length)
2008
+ return clauses;
2009
+ return $skip;
2010
+ });
2011
+ function NestedCaseClauses(state) {
2012
+ if (state.verbose)
2013
+ console.log("ENTER:", "NestedCaseClauses");
2014
+ if (state.tokenize) {
2015
+ return $TOKEN("NestedCaseClauses", state, NestedCaseClauses$0(state));
2016
+ } else {
2017
+ return NestedCaseClauses$0(state);
2018
+ }
2019
+ }
2020
+ var NestedCaseClause$0 = $S(Nested, CaseClause);
2021
+ function NestedCaseClause(state) {
2022
+ if (state.verbose)
2023
+ console.log("ENTER:", "NestedCaseClause");
2024
+ if (state.tokenize) {
2025
+ return $TOKEN("NestedCaseClause", state, NestedCaseClause$0(state));
2026
+ } else {
2027
+ return NestedCaseClause$0(state);
2028
+ }
2029
+ }
2030
+ var CaseClause$0 = $S($EXPECT($L98, fail, 'CaseClause "case"'), $Q(_), Expression, ImpliedColon, NestedBlockExpressions);
2031
+ var CaseClause$1 = $S(When, $Q(_), Expression, ImpliedColon, NestedBlockExpressions, InsertBreak);
2032
+ var CaseClause$2 = $S($EXPECT($L99, fail, 'CaseClause "default"'), ImpliedColon, NestedBlockExpressions);
2033
+ function CaseClause(state) {
2034
+ if (state.tokenize) {
2035
+ return $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state));
2036
+ } else {
2037
+ return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state);
2038
+ }
2039
+ }
2040
+ var When$0 = $T($EXPECT($L100, fail, 'When "when"'), function(value) {
2041
+ return "case";
2042
+ });
2043
+ function When(state) {
2044
+ if (state.verbose)
2045
+ console.log("ENTER:", "When");
2046
+ if (state.tokenize) {
2047
+ return $TOKEN("When", state, When$0(state));
2048
+ } else {
2049
+ return When$0(state);
2050
+ }
2051
+ }
2052
+ var ImpliedColon$0 = $S(__, $EXPECT($L11, fail, 'ImpliedColon ":"'));
2053
+ var ImpliedColon$1 = $T($EXPECT($L29, fail, 'ImpliedColon ""'), function(value) {
2054
+ return ":";
2055
+ });
2056
+ function ImpliedColon(state) {
2057
+ if (state.tokenize) {
2058
+ return $TOKEN("ImpliedColon", state, ImpliedColon$0(state) || ImpliedColon$1(state));
2059
+ } else {
2060
+ return ImpliedColon$0(state) || ImpliedColon$1(state);
2061
+ }
2062
+ }
2063
+ var TryStatement$0 = $TS($S($EXPECT($L101, fail, 'TryStatement "try"'), BracedBlock, $E(Catch), $E(Finally)), function($skip, $loc, $0, $1, $2, $3, $4) {
2064
+ var c = $3;
2065
+ var f = $4;
2066
+ if (!c && !f) {
2067
+ return [$1, $2, " catch {}"];
2068
+ }
2069
+ return [$1, $2, c, f];
2070
+ });
2071
+ function TryStatement(state) {
2072
+ if (state.verbose)
2073
+ console.log("ENTER:", "TryStatement");
2074
+ if (state.tokenize) {
2075
+ return $TOKEN("TryStatement", state, TryStatement$0(state));
2076
+ } else {
2077
+ return TryStatement$0(state);
2078
+ }
2079
+ }
2080
+ var Catch$0 = $S(__, $EXPECT($L102, fail, 'Catch "catch"'), $E(CatchBind), BracedBlock);
2081
+ function Catch(state) {
2082
+ if (state.verbose)
2083
+ console.log("ENTER:", "Catch");
2084
+ if (state.tokenize) {
2085
+ return $TOKEN("Catch", state, Catch$0(state));
2086
+ } else {
2087
+ return Catch$0(state);
2088
+ }
2089
+ }
2090
+ var CatchBind$0 = $S(__, $EXPECT($L1, fail, 'CatchBind "("'), __, CatchParameter, __, $EXPECT($L2, fail, 'CatchBind ")"'));
2091
+ var CatchBind$1 = $S(__, InsertOpenParen, CatchParameter, InsertCloseParen);
2092
+ function CatchBind(state) {
2093
+ if (state.tokenize) {
2094
+ return $TOKEN("CatchBind", state, CatchBind$0(state) || CatchBind$1(state));
2095
+ } else {
2096
+ return CatchBind$0(state) || CatchBind$1(state);
2097
+ }
2098
+ }
2099
+ var Finally$0 = $S(__, $EXPECT($L103, fail, 'Finally "finally"'), BracedBlock);
2100
+ function Finally(state) {
2101
+ if (state.verbose)
2102
+ console.log("ENTER:", "Finally");
2103
+ if (state.tokenize) {
2104
+ return $TOKEN("Finally", state, Finally$0(state));
2105
+ } else {
2106
+ return Finally$0(state);
2107
+ }
2108
+ }
2109
+ var CatchParameter$0 = BindingIdentifier;
2110
+ var CatchParameter$1 = BindingPattern;
2111
+ function CatchParameter(state) {
2112
+ if (state.tokenize) {
2113
+ return $TOKEN("CatchParameter", state, CatchParameter$0(state) || CatchParameter$1(state));
2114
+ } else {
2115
+ return CatchParameter$0(state) || CatchParameter$1(state);
2116
+ }
2117
+ }
2118
+ var Condition$0 = $S(__, $EXPECT($L1, fail, 'Condition "("'), __, Expression, __, $EXPECT($L2, fail, 'Condition ")"'));
2119
+ var Condition$1 = $S($N(EOS), __, InsertOpenParen, Expression, InsertCloseParen);
2120
+ function Condition(state) {
2121
+ if (state.tokenize) {
2122
+ return $TOKEN("Condition", state, Condition$0(state) || Condition$1(state));
2123
+ } else {
2124
+ return Condition$0(state) || Condition$1(state);
2125
+ }
2126
+ }
2127
+ var ExpressionStatement$0 = Expression;
2128
+ function ExpressionStatement(state) {
2129
+ if (state.verbose)
2130
+ console.log("ENTER:", "ExpressionStatement");
2131
+ if (state.tokenize) {
2132
+ return $TOKEN("ExpressionStatement", state, ExpressionStatement$0(state));
2133
+ } else {
2134
+ return ExpressionStatement$0(state);
2135
+ }
2136
+ }
2137
+ var KeywordStatement$0 = $EXPECT($L104, fail, 'KeywordStatement "break"');
2138
+ var KeywordStatement$1 = $EXPECT($L105, fail, 'KeywordStatement "continue"');
2139
+ var KeywordStatement$2 = $EXPECT($L106, fail, 'KeywordStatement "debugger"');
2140
+ var KeywordStatement$3 = $S($EXPECT($L107, fail, 'KeywordStatement "return"'), $P(_), Expression);
2141
+ var KeywordStatement$4 = $EXPECT($L107, fail, 'KeywordStatement "return"');
2142
+ var KeywordStatement$5 = $S($EXPECT($L108, fail, 'KeywordStatement "throw"'), $P(_), Expression);
2143
+ function KeywordStatement(state) {
2144
+ if (state.tokenize) {
2145
+ return $TOKEN("KeywordStatement", state, KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state) || KeywordStatement$5(state));
2146
+ } else {
2147
+ return KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state) || KeywordStatement$5(state);
2148
+ }
2149
+ }
2150
+ var ImportDeclaration$0 = $T($S($EXPECT($L109, fail, 'ImportDeclaration "import type"'), __, ImportClause, __, FromClause), function(value) {
2151
+ return { "ts": true, "children": value };
2152
+ });
2153
+ var ImportDeclaration$1 = $S($EXPECT($L22, fail, 'ImportDeclaration "import"'), __, ImportClause, __, FromClause);
2154
+ var ImportDeclaration$2 = $S($EXPECT($L22, fail, 'ImportDeclaration "import"'), __, ModuleSpecifier);
2155
+ function ImportDeclaration(state) {
2156
+ if (state.tokenize) {
2157
+ return $TOKEN("ImportDeclaration", state, ImportDeclaration$0(state) || ImportDeclaration$1(state) || ImportDeclaration$2(state));
2158
+ } else {
2159
+ return ImportDeclaration$0(state) || ImportDeclaration$1(state) || ImportDeclaration$2(state);
2160
+ }
2161
+ }
2162
+ var ImportClause$0 = $S(ImportedBinding, $E($S(__, $EXPECT($L0, fail, 'ImportClause ","'), __, $C(NameSpaceImport, NamedImports))));
2163
+ var ImportClause$1 = NameSpaceImport;
2164
+ var ImportClause$2 = NamedImports;
2165
+ function ImportClause(state) {
2166
+ if (state.tokenize) {
2167
+ return $TOKEN("ImportClause", state, ImportClause$0(state) || ImportClause$1(state) || ImportClause$2(state));
2168
+ } else {
2169
+ return ImportClause$0(state) || ImportClause$1(state) || ImportClause$2(state);
2170
+ }
2171
+ }
2172
+ var NameSpaceImport$0 = $S($EXPECT($L8, fail, 'NameSpaceImport "*"'), __, $EXPECT($L110, fail, 'NameSpaceImport "as"'), __, ImportedBinding);
2173
+ function NameSpaceImport(state) {
2174
+ if (state.verbose)
2175
+ console.log("ENTER:", "NameSpaceImport");
2176
+ if (state.tokenize) {
2177
+ return $TOKEN("NameSpaceImport", state, NameSpaceImport$0(state));
2178
+ } else {
2179
+ return NameSpaceImport$0(state);
2180
+ }
2181
+ }
2182
+ var NamedImports$0 = $S($EXPECT($L10, fail, 'NamedImports "{"'), $Q(ImportSpecifier), $E($S(__, $EXPECT($L0, fail, 'NamedImports ","'))), __, $EXPECT($L15, fail, 'NamedImports "}"'));
2183
+ function NamedImports(state) {
2184
+ if (state.verbose)
2185
+ console.log("ENTER:", "NamedImports");
2186
+ if (state.tokenize) {
2187
+ return $TOKEN("NamedImports", state, NamedImports$0(state));
2188
+ } else {
2189
+ return NamedImports$0(state);
2190
+ }
2191
+ }
2192
+ var FromClause$0 = $S($EXPECT($L111, fail, 'FromClause "from"'), __, ModuleSpecifier);
2193
+ function FromClause(state) {
2194
+ if (state.verbose)
2195
+ console.log("ENTER:", "FromClause");
2196
+ if (state.tokenize) {
2197
+ return $TOKEN("FromClause", state, FromClause$0(state));
2198
+ } else {
2199
+ return FromClause$0(state);
2200
+ }
2201
+ }
2202
+ var ImportSpecifier$0 = $S(__, ModuleExportName, __, $EXPECT($L110, fail, 'ImportSpecifier "as"'), __, ImportedBinding, ObjectPropertyDelimiter);
2203
+ var ImportSpecifier$1 = $S(__, ImportedBinding, ObjectPropertyDelimiter);
2204
+ function ImportSpecifier(state) {
2205
+ if (state.tokenize) {
2206
+ return $TOKEN("ImportSpecifier", state, ImportSpecifier$0(state) || ImportSpecifier$1(state));
2207
+ } else {
2208
+ return ImportSpecifier$0(state) || ImportSpecifier$1(state);
2209
+ }
2210
+ }
2211
+ var ModuleExportName$0 = StringLiteral;
2212
+ var ModuleExportName$1 = IdentifierName;
2213
+ function ModuleExportName(state) {
2214
+ if (state.tokenize) {
2215
+ return $TOKEN("ModuleExportName", state, ModuleExportName$0(state) || ModuleExportName$1(state));
2216
+ } else {
2217
+ return ModuleExportName$0(state) || ModuleExportName$1(state);
2218
+ }
2219
+ }
2220
+ var ModuleSpecifier$0 = StringLiteral;
2221
+ function ModuleSpecifier(state) {
2222
+ if (state.verbose)
2223
+ console.log("ENTER:", "ModuleSpecifier");
2224
+ if (state.tokenize) {
2225
+ return $TOKEN("ModuleSpecifier", state, ModuleSpecifier$0(state));
2226
+ } else {
2227
+ return ModuleSpecifier$0(state);
2228
+ }
2229
+ }
2230
+ var ImportedBinding$0 = BindingIdentifier;
2231
+ function ImportedBinding(state) {
2232
+ if (state.verbose)
2233
+ console.log("ENTER:", "ImportedBinding");
2234
+ if (state.tokenize) {
2235
+ return $TOKEN("ImportedBinding", state, ImportedBinding$0(state));
2236
+ } else {
2237
+ return ImportedBinding$0(state);
2238
+ }
2239
+ }
2240
+ var ExportDeclaration$0 = $S($EXPECT($L112, fail, 'ExportDeclaration "export"'), __, $EXPECT($L99, fail, 'ExportDeclaration "default"'), __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
2241
+ var ExportDeclaration$1 = $S($EXPECT($L112, fail, 'ExportDeclaration "export"'), __, ExportFromClause, __, FromClause);
2242
+ var ExportDeclaration$2 = $S($EXPECT($L112, fail, 'ExportDeclaration "export"'), __, $C(NamedExports, VariableStatement, Declaration));
2243
+ function ExportDeclaration(state) {
2244
+ if (state.tokenize) {
2245
+ return $TOKEN("ExportDeclaration", state, ExportDeclaration$0(state) || ExportDeclaration$1(state) || ExportDeclaration$2(state));
2246
+ } else {
2247
+ return ExportDeclaration$0(state) || ExportDeclaration$1(state) || ExportDeclaration$2(state);
2248
+ }
2249
+ }
2250
+ var ExportFromClause$0 = $S($EXPECT($L8, fail, 'ExportFromClause "*"'), $E($S(__, $EXPECT($L110, fail, 'ExportFromClause "as"'), __, ModuleExportName)));
2251
+ var ExportFromClause$1 = NamedExports;
2252
+ function ExportFromClause(state) {
2253
+ if (state.tokenize) {
2254
+ return $TOKEN("ExportFromClause", state, ExportFromClause$0(state) || ExportFromClause$1(state));
2255
+ } else {
2256
+ return ExportFromClause$0(state) || ExportFromClause$1(state);
2257
+ }
2258
+ }
2259
+ var NamedExports$0 = $S($EXPECT($L10, fail, 'NamedExports "{"'), $Q(ExportSpecifier), $E($S(__, $EXPECT($L0, fail, 'NamedExports ","'))), __, $EXPECT($L15, fail, 'NamedExports "}"'));
2260
+ function NamedExports(state) {
2261
+ if (state.verbose)
2262
+ console.log("ENTER:", "NamedExports");
2263
+ if (state.tokenize) {
2264
+ return $TOKEN("NamedExports", state, NamedExports$0(state));
2265
+ } else {
2266
+ return NamedExports$0(state);
2267
+ }
2268
+ }
2269
+ var ExportSpecifier$0 = $S(__, ModuleExportName, $E($S(__, $EXPECT($L110, fail, 'ExportSpecifier "as"'), __, ModuleExportName)), ObjectPropertyDelimiter);
2270
+ function ExportSpecifier(state) {
2271
+ if (state.verbose)
2272
+ console.log("ENTER:", "ExportSpecifier");
2273
+ if (state.tokenize) {
2274
+ return $TOKEN("ExportSpecifier", state, ExportSpecifier$0(state));
2275
+ } else {
2276
+ return ExportSpecifier$0(state);
2277
+ }
2278
+ }
2279
+ var Declaration$0 = HoistableDeclaration;
2280
+ var Declaration$1 = ClassDeclaration;
2281
+ var Declaration$2 = LexicalDeclaration;
2282
+ var Declaration$3 = TypeDeclaration;
2283
+ function Declaration(state) {
2284
+ if (state.tokenize) {
2285
+ return $TOKEN("Declaration", state, Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state));
2286
+ } else {
2287
+ return Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state);
2288
+ }
2289
+ }
2290
+ var HoistableDeclaration$0 = AsyncGeneratorDeclaration;
2291
+ var HoistableDeclaration$1 = AsyncFunctionDeclaration;
2292
+ var HoistableDeclaration$2 = GeneratorDeclaration;
2293
+ var HoistableDeclaration$3 = FunctionDeclaration;
2294
+ function HoistableDeclaration(state) {
2295
+ if (state.tokenize) {
2296
+ return $TOKEN("HoistableDeclaration", state, HoistableDeclaration$0(state) || HoistableDeclaration$1(state) || HoistableDeclaration$2(state) || HoistableDeclaration$3(state));
2297
+ } else {
2298
+ return HoistableDeclaration$0(state) || HoistableDeclaration$1(state) || HoistableDeclaration$2(state) || HoistableDeclaration$3(state);
2299
+ }
2300
+ }
2301
+ var LexicalDeclaration$0 = $S($C($EXPECT($L95, fail, 'LexicalDeclaration "let"'), $EXPECT($L96, fail, 'LexicalDeclaration "const"')), __, LexicalBinding, $Q($S(__, $EXPECT($L0, fail, 'LexicalDeclaration ","'), __, LexicalBinding)));
2302
+ function LexicalDeclaration(state) {
2303
+ if (state.verbose)
2304
+ console.log("ENTER:", "LexicalDeclaration");
2305
+ if (state.tokenize) {
2306
+ return $TOKEN("LexicalDeclaration", state, LexicalDeclaration$0(state));
2307
+ } else {
2308
+ return LexicalDeclaration$0(state);
2309
+ }
2310
+ }
2311
+ var LexicalBinding$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
2312
+ var LexicalBinding$1 = $S(BindingIdentifier, $E(TypeSuffix), $E(Initializer));
2313
+ function LexicalBinding(state) {
2314
+ if (state.tokenize) {
2315
+ return $TOKEN("LexicalBinding", state, LexicalBinding$0(state) || LexicalBinding$1(state));
2316
+ } else {
2317
+ return LexicalBinding$0(state) || LexicalBinding$1(state);
2318
+ }
2319
+ }
2320
+ var Initializer$0 = $S(__, $EXPECT($L54, fail, 'Initializer "="'), AssignmentExpression);
2321
+ function Initializer(state) {
2322
+ if (state.verbose)
2323
+ console.log("ENTER:", "Initializer");
2324
+ if (state.tokenize) {
2325
+ return $TOKEN("Initializer", state, Initializer$0(state));
2326
+ } else {
2327
+ return Initializer$0(state);
2328
+ }
2329
+ }
2330
+ var VariableStatement$0 = $S($EXPECT($L92, fail, 'VariableStatement "var"'), __, VariableDeclarationList);
2331
+ function VariableStatement(state) {
2332
+ if (state.verbose)
2333
+ console.log("ENTER:", "VariableStatement");
2334
+ if (state.tokenize) {
2335
+ return $TOKEN("VariableStatement", state, VariableStatement$0(state));
2336
+ } else {
2337
+ return VariableStatement$0(state);
2338
+ }
2339
+ }
2340
+ var VariableDeclarationList$0 = $S(VariableDeclaration, $Q($S(__, $EXPECT($L0, fail, 'VariableDeclarationList ","'), __, VariableDeclaration)));
2341
+ function VariableDeclarationList(state) {
2342
+ if (state.verbose)
2343
+ console.log("ENTER:", "VariableDeclarationList");
2344
+ if (state.tokenize) {
2345
+ return $TOKEN("VariableDeclarationList", state, VariableDeclarationList$0(state));
2346
+ } else {
2347
+ return VariableDeclarationList$0(state);
2348
+ }
2349
+ }
2350
+ var VariableDeclaration$0 = $S(BindingPattern, Initializer);
2351
+ var VariableDeclaration$1 = $S(BindingIdentifier, $E(Initializer));
2352
+ function VariableDeclaration(state) {
2353
+ if (state.tokenize) {
2354
+ return $TOKEN("VariableDeclaration", state, VariableDeclaration$0(state) || VariableDeclaration$1(state));
2355
+ } else {
2356
+ return VariableDeclaration$0(state) || VariableDeclaration$1(state);
2357
+ }
2358
+ }
2359
+ var NumericLiteral$0 = DecimalBigIntegerLiteral;
2360
+ var NumericLiteral$1 = BinaryIntegerLiteral;
2361
+ var NumericLiteral$2 = OctalIntegerLiteral;
2362
+ var NumericLiteral$3 = HexLiteral;
2363
+ var NumericLiteral$4 = DecimalLiteral;
2364
+ function NumericLiteral(state) {
2365
+ if (state.tokenize) {
2366
+ return $TOKEN("NumericLiteral", state, NumericLiteral$0(state) || NumericLiteral$1(state) || NumericLiteral$2(state) || NumericLiteral$3(state) || NumericLiteral$4(state));
2367
+ } else {
2368
+ return NumericLiteral$0(state) || NumericLiteral$1(state) || NumericLiteral$2(state) || NumericLiteral$3(state) || NumericLiteral$4(state);
2369
+ }
2370
+ }
2371
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R4, fail, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
2372
+ function DecimalBigIntegerLiteral(state) {
2373
+ if (state.verbose)
2374
+ console.log("ENTER:", "DecimalBigIntegerLiteral");
2375
+ if (state.tokenize) {
2376
+ return $TOKEN("DecimalBigIntegerLiteral", state, DecimalBigIntegerLiteral$0(state));
2377
+ } else {
2378
+ return DecimalBigIntegerLiteral$0(state);
2379
+ }
2380
+ }
2381
+ var DecimalLiteral$0 = $R$0($EXPECT($R5, fail, "DecimalLiteral /\\d+(?:\\.\\d*)?/"));
2382
+ function DecimalLiteral(state) {
2383
+ if (state.verbose)
2384
+ console.log("ENTER:", "DecimalLiteral");
2385
+ if (state.tokenize) {
2386
+ return $TOKEN("DecimalLiteral", state, DecimalLiteral$0(state));
2387
+ } else {
2388
+ return DecimalLiteral$0(state);
2389
+ }
2390
+ }
2391
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R6, fail, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*/"));
2392
+ function BinaryIntegerLiteral(state) {
2393
+ if (state.verbose)
2394
+ console.log("ENTER:", "BinaryIntegerLiteral");
2395
+ if (state.tokenize) {
2396
+ return $TOKEN("BinaryIntegerLiteral", state, BinaryIntegerLiteral$0(state));
2397
+ } else {
2398
+ return BinaryIntegerLiteral$0(state);
2399
+ }
2400
+ }
2401
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R7, fail, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*/"));
2402
+ function OctalIntegerLiteral(state) {
2403
+ if (state.verbose)
2404
+ console.log("ENTER:", "OctalIntegerLiteral");
2405
+ if (state.tokenize) {
2406
+ return $TOKEN("OctalIntegerLiteral", state, OctalIntegerLiteral$0(state));
2407
+ } else {
2408
+ return OctalIntegerLiteral$0(state);
2409
+ }
2410
+ }
2411
+ var HexLiteral$0 = $R$0($EXPECT($R8, fail, "HexLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*/"));
2412
+ function HexLiteral(state) {
2413
+ if (state.verbose)
2414
+ console.log("ENTER:", "HexLiteral");
2415
+ if (state.tokenize) {
2416
+ return $TOKEN("HexLiteral", state, HexLiteral$0(state));
2417
+ } else {
2418
+ return HexLiteral$0(state);
2419
+ }
2420
+ }
2421
+ var StringLiteral$0 = $T($S($EXPECT($L113, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""'), $TEXT($Q(TripleDoubleStringCharacter)), $EXPECT($L113, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""')), function(value) {
2422
+ return ["`", value[1], "`"];
2423
+ });
2424
+ var StringLiteral$1 = $S($EXPECT($L114, fail, 'StringLiteral "\\\\\\""'), $TEXT($Q(DoubleStringCharacter)), $EXPECT($L114, fail, 'StringLiteral "\\\\\\""'));
2425
+ var StringLiteral$2 = $S($EXPECT($L115, fail, `StringLiteral "\\\\'"`), $TEXT($Q(SingleStringCharacter)), $EXPECT($L115, fail, `StringLiteral "\\\\'"`));
2426
+ function StringLiteral(state) {
2427
+ if (state.tokenize) {
2428
+ return $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state));
2429
+ } else {
2430
+ return StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state);
2431
+ }
2432
+ }
2433
+ var DoubleStringCharacter$0 = $R$0($EXPECT($R9, fail, 'DoubleStringCharacter /[^"\\\\]+/'));
2434
+ var DoubleStringCharacter$1 = EscapeSequence;
2435
+ function DoubleStringCharacter(state) {
2436
+ if (state.tokenize) {
2437
+ return $TOKEN("DoubleStringCharacter", state, DoubleStringCharacter$0(state) || DoubleStringCharacter$1(state));
2438
+ } else {
2439
+ return DoubleStringCharacter$0(state) || DoubleStringCharacter$1(state);
2440
+ }
2441
+ }
2442
+ var SingleStringCharacter$0 = $R$0($EXPECT($R10, fail, "SingleStringCharacter /[^'\\\\]+/"));
2443
+ var SingleStringCharacter$1 = EscapeSequence;
2444
+ function SingleStringCharacter(state) {
2445
+ if (state.tokenize) {
2446
+ return $TOKEN("SingleStringCharacter", state, SingleStringCharacter$0(state) || SingleStringCharacter$1(state));
2447
+ } else {
2448
+ return SingleStringCharacter$0(state) || SingleStringCharacter$1(state);
2449
+ }
2450
+ }
2451
+ var TripleDoubleStringCharacter$0 = $R$0($EXPECT($R11, fail, 'TripleDoubleStringCharacter /(?:"(?!"")|\\\\.|[^"])+/'));
2452
+ function TripleDoubleStringCharacter(state) {
2453
+ if (state.verbose)
2454
+ console.log("ENTER:", "TripleDoubleStringCharacter");
2455
+ if (state.tokenize) {
2456
+ return $TOKEN("TripleDoubleStringCharacter", state, TripleDoubleStringCharacter$0(state));
2457
+ } else {
2458
+ return TripleDoubleStringCharacter$0(state);
2459
+ }
2460
+ }
2461
+ var EscapeSequence$0 = $TEXT($S($EXPECT($L116, fail, 'EscapeSequence "\\\\\\\\"'), $EXPECT($R12, fail, "EscapeSequence /./")));
2462
+ function EscapeSequence(state) {
2463
+ if (state.verbose)
2464
+ console.log("ENTER:", "EscapeSequence");
2465
+ if (state.tokenize) {
2466
+ return $TOKEN("EscapeSequence", state, EscapeSequence$0(state));
2467
+ } else {
2468
+ return EscapeSequence$0(state);
2469
+ }
2470
+ }
2471
+ var RegularExpressionLiteral$0 = $S($EXPECT($L56, fail, 'RegularExpressionLiteral "/"'), $TEXT(RegularExpressionBody), $EXPECT($L56, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags);
2472
+ function RegularExpressionLiteral(state) {
2473
+ if (state.verbose)
2474
+ console.log("ENTER:", "RegularExpressionLiteral");
2475
+ if (state.tokenize) {
2476
+ return $TOKEN("RegularExpressionLiteral", state, RegularExpressionLiteral$0(state));
2477
+ } else {
2478
+ return RegularExpressionLiteral$0(state);
2479
+ }
2480
+ }
2481
+ var RegularExpressionBody$0 = $S($R$0($EXPECT($R13, fail, "RegularExpressionBody /[^*\\/\\r\\n]/")), $Q(RegExpCharacter));
2482
+ function RegularExpressionBody(state) {
2483
+ if (state.verbose)
2484
+ console.log("ENTER:", "RegularExpressionBody");
2485
+ if (state.tokenize) {
2486
+ return $TOKEN("RegularExpressionBody", state, RegularExpressionBody$0(state));
2487
+ } else {
2488
+ return RegularExpressionBody$0(state);
2489
+ }
2490
+ }
2491
+ var RegExpCharacter$0 = $R$0($EXPECT($R14, fail, "RegExpCharacter /[^\\/\\r\\n]+/"));
2492
+ var RegExpCharacter$1 = EscapeSequence;
2493
+ function RegExpCharacter(state) {
2494
+ if (state.tokenize) {
2495
+ return $TOKEN("RegExpCharacter", state, RegExpCharacter$0(state) || RegExpCharacter$1(state));
2496
+ } else {
2497
+ return RegExpCharacter$0(state) || RegExpCharacter$1(state);
2498
+ }
2499
+ }
2500
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R15, fail, "RegularExpressionFlags /(:?\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
2501
+ function RegularExpressionFlags(state) {
2502
+ if (state.verbose)
2503
+ console.log("ENTER:", "RegularExpressionFlags");
2504
+ if (state.tokenize) {
2505
+ return $TOKEN("RegularExpressionFlags", state, RegularExpressionFlags$0(state));
2506
+ } else {
2507
+ return RegularExpressionFlags$0(state);
2508
+ }
2509
+ }
2510
+ var TemplateLiteral$0 = $S($EXPECT($L117, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L117, fail, 'TemplateLiteral "`"'));
2511
+ function TemplateLiteral(state) {
2512
+ if (state.verbose)
2513
+ console.log("ENTER:", "TemplateLiteral");
2514
+ if (state.tokenize) {
2515
+ return $TOKEN("TemplateLiteral", state, TemplateLiteral$0(state));
2516
+ } else {
2517
+ return TemplateLiteral$0(state);
2518
+ }
2519
+ }
2520
+ var TemplateSubstitution$0 = $S($EXPECT($L118, fail, 'TemplateSubstitution "${"'), __, Expression, __, $EXPECT($L15, fail, 'TemplateSubstitution "}"'));
2521
+ function TemplateSubstitution(state) {
2522
+ if (state.verbose)
2523
+ console.log("ENTER:", "TemplateSubstitution");
2524
+ if (state.tokenize) {
2525
+ return $TOKEN("TemplateSubstitution", state, TemplateSubstitution$0(state));
2526
+ } else {
2527
+ return TemplateSubstitution$0(state);
2528
+ }
2529
+ }
2530
+ var TemplateCharacters$0 = $R$0($EXPECT($R16, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"));
2531
+ function TemplateCharacters(state) {
2532
+ if (state.verbose)
2533
+ console.log("ENTER:", "TemplateCharacters");
2534
+ if (state.tokenize) {
2535
+ return $TOKEN("TemplateCharacters", state, TemplateCharacters$0(state));
2536
+ } else {
2537
+ return TemplateCharacters$0(state);
2538
+ }
2539
+ }
2540
+ var ReservedWord$0 = $R$0($EXPECT($R17, fail, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|new|null|or|return|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
2541
+ function ReservedWord(state) {
2542
+ if (state.verbose)
2543
+ console.log("ENTER:", "ReservedWord");
2544
+ if (state.tokenize) {
2545
+ return $TOKEN("ReservedWord", state, ReservedWord$0(state));
2546
+ } else {
2547
+ return ReservedWord$0(state);
2548
+ }
2549
+ }
2550
+ var Comment$0 = MultiLineComment;
2551
+ var Comment$1 = SingleLineComment;
2552
+ function Comment(state) {
2553
+ if (state.tokenize) {
2554
+ return $TOKEN("Comment", state, Comment$0(state) || Comment$1(state));
2555
+ } else {
2556
+ return Comment$0(state) || Comment$1(state);
2557
+ }
2558
+ }
2559
+ var SingleLineComment$0 = $R$0($EXPECT($R18, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"));
2560
+ var SingleLineComment$1 = CoffeeSingleLineComment;
2561
+ function SingleLineComment(state) {
2562
+ if (state.tokenize) {
2563
+ return $TOKEN("SingleLineComment", state, SingleLineComment$0(state) || SingleLineComment$1(state));
2564
+ } else {
2565
+ return SingleLineComment$0(state) || SingleLineComment$1(state);
2566
+ }
2567
+ }
2568
+ var MultiLineComment$0 = JSMultiLineComment;
2569
+ var MultiLineComment$1 = CoffeeMultiLineComment;
2570
+ function MultiLineComment(state) {
2571
+ if (state.tokenize) {
2572
+ return $TOKEN("MultiLineComment", state, MultiLineComment$0(state) || MultiLineComment$1(state));
2573
+ } else {
2574
+ return MultiLineComment$0(state) || MultiLineComment$1(state);
2575
+ }
2576
+ }
2577
+ var JSMultiLineComment$0 = $S($EXPECT($L119, fail, 'JSMultiLineComment "/*"'), $TEXT($Q($S($N($EXPECT($L120, fail, 'JSMultiLineComment "*/"')), $EXPECT($R12, fail, "JSMultiLineComment /./")))), $EXPECT($L120, fail, 'JSMultiLineComment "*/"'));
2578
+ function JSMultiLineComment(state) {
2579
+ if (state.verbose)
2580
+ console.log("ENTER:", "JSMultiLineComment");
2581
+ if (state.tokenize) {
2582
+ return $TOKEN("JSMultiLineComment", state, JSMultiLineComment$0(state));
2583
+ } else {
2584
+ return JSMultiLineComment$0(state);
2585
+ }
2586
+ }
2587
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R19, fail, "CoffeeSingleLineComment /#([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2588
+ if (!global.coffeeCompat)
2589
+ return $skip;
2590
+ return ["//", $1];
2591
+ });
2592
+ function CoffeeSingleLineComment(state) {
2593
+ if (state.verbose)
2594
+ console.log("ENTER:", "CoffeeSingleLineComment");
2595
+ if (state.tokenize) {
2596
+ return $TOKEN("CoffeeSingleLineComment", state, CoffeeSingleLineComment$0(state));
2597
+ } else {
2598
+ return CoffeeSingleLineComment$0(state);
2599
+ }
2600
+ }
2601
+ var CoffeeMultiLineComment$0 = $T($S($EXPECT($L121, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($EXPECT($L121, fail, 'CoffeeMultiLineComment "###"')), $EXPECT($R12, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L121, fail, 'CoffeeMultiLineComment "###"')), function(value) {
2602
+ return ["/*", value[1], "*/"];
2603
+ });
2604
+ function CoffeeMultiLineComment(state) {
2605
+ if (state.verbose)
2606
+ console.log("ENTER:", "CoffeeMultiLineComment");
2607
+ if (state.tokenize) {
2608
+ return $TOKEN("CoffeeMultiLineComment", state, CoffeeMultiLineComment$0(state));
2609
+ } else {
2610
+ return CoffeeMultiLineComment$0(state);
2611
+ }
2612
+ }
2613
+ var InlineComment$0 = $S($EXPECT($L119, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L120, fail, 'InlineComment "*/"')), $EXPECT($R20, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L120, fail, 'InlineComment "*/"'));
2614
+ function InlineComment(state) {
2615
+ if (state.verbose)
2616
+ console.log("ENTER:", "InlineComment");
2617
+ if (state.tokenize) {
2618
+ return $TOKEN("InlineComment", state, InlineComment$0(state));
2619
+ } else {
2620
+ return InlineComment$0(state);
2621
+ }
2622
+ }
2623
+ var RestOfLine$0 = $S($Q(TrailingComment), EOL);
2624
+ function RestOfLine(state) {
2625
+ if (state.verbose)
2626
+ console.log("ENTER:", "RestOfLine");
2627
+ if (state.tokenize) {
2628
+ return $TOKEN("RestOfLine", state, RestOfLine$0(state));
2629
+ } else {
2630
+ return RestOfLine$0(state);
2631
+ }
2632
+ }
2633
+ var TrailingComment$0 = $R$0($EXPECT($R21, fail, "TrailingComment /[\\t ]+/"));
2634
+ var TrailingComment$1 = InlineComment;
2635
+ var TrailingComment$2 = SingleLineComment;
2636
+ function TrailingComment(state) {
2637
+ if (state.tokenize) {
2638
+ return $TOKEN("TrailingComment", state, TrailingComment$0(state) || TrailingComment$1(state) || TrailingComment$2(state));
2639
+ } else {
2640
+ return TrailingComment$0(state) || TrailingComment$1(state) || TrailingComment$2(state);
2641
+ }
2642
+ }
2643
+ var _$0 = $P($C($R$0($EXPECT($R21, fail, "_ /[\\t ]+/")), Comment));
2644
+ function _(state) {
2645
+ if (state.verbose)
2646
+ console.log("ENTER:", "_");
2647
+ if (state.tokenize) {
2648
+ return $TOKEN("_", state, _$0(state));
2649
+ } else {
2650
+ return _$0(state);
2651
+ }
2652
+ }
2653
+ var __$0 = $Q($C($R$0($EXPECT($R22, fail, "__ /[\\s]+/")), Comment));
2654
+ function __(state) {
2655
+ if (state.verbose)
2656
+ console.log("ENTER:", "__");
2657
+ if (state.tokenize) {
2658
+ return $TOKEN("__", state, __$0(state));
2659
+ } else {
2660
+ return __$0(state);
2661
+ }
2662
+ }
2663
+ var StatementDelimiter$0 = $S($Q(TrailingComment), $EXPECT($L84, fail, 'StatementDelimiter ";"'), $Q(TrailingComment));
2664
+ var StatementDelimiter$1 = $T($Y(EOS), function(value) {
2665
+ return [";", value];
2666
+ });
2667
+ function StatementDelimiter(state) {
2668
+ if (state.tokenize) {
2669
+ return $TOKEN("StatementDelimiter", state, StatementDelimiter$0(state) || StatementDelimiter$1(state));
2670
+ } else {
2671
+ return StatementDelimiter$0(state) || StatementDelimiter$1(state);
2672
+ }
2673
+ }
2674
+ var TypeDeclaration$0 = $T($S($EXPECT($L122, fail, 'TypeDeclaration "interface"'), $Q(TrailingComment), IdentifierName, InterfaceBlock), function(value) {
2675
+ return { "ts": true, "children": value };
2676
+ });
2677
+ function TypeDeclaration(state) {
2678
+ if (state.verbose)
2679
+ console.log("ENTER:", "TypeDeclaration");
2680
+ if (state.tokenize) {
2681
+ return $TOKEN("TypeDeclaration", state, TypeDeclaration$0(state));
2682
+ } else {
2683
+ return TypeDeclaration$0(state);
2684
+ }
2685
+ }
2686
+ var InterfaceBlock$0 = $S(__, $EXPECT($L10, fail, 'InterfaceBlock "{"'), EOS, NestedInterfaceProperties, __, $EXPECT($L15, fail, 'InterfaceBlock "}"'));
2687
+ var InterfaceBlock$1 = $S(InsertOpenBrace, EOS, NestedInterfaceProperties, InsertNewline, InsertIndent, InsertCloseBrace);
2688
+ function InterfaceBlock(state) {
2689
+ if (state.tokenize) {
2690
+ return $TOKEN("InterfaceBlock", state, InterfaceBlock$0(state) || InterfaceBlock$1(state));
2691
+ } else {
2692
+ return InterfaceBlock$0(state) || InterfaceBlock$1(state);
2693
+ }
2694
+ }
2695
+ var NestedInterfaceProperties$0 = $TS($S(PushIndent, $Q(NestedInterfaceProperty), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
2696
+ var props = $2;
2697
+ if (props.length)
2698
+ return props;
2699
+ return $skip;
2700
+ });
2701
+ function NestedInterfaceProperties(state) {
2702
+ if (state.verbose)
2703
+ console.log("ENTER:", "NestedInterfaceProperties");
2704
+ if (state.tokenize) {
2705
+ return $TOKEN("NestedInterfaceProperties", state, NestedInterfaceProperties$0(state));
2706
+ } else {
2707
+ return NestedInterfaceProperties$0(state);
2708
+ }
2709
+ }
2710
+ var NestedInterfaceProperty$0 = $S(Nested, PropertyName, TypeSuffix, StatementDelimiter);
2711
+ function NestedInterfaceProperty(state) {
2712
+ if (state.verbose)
2713
+ console.log("ENTER:", "NestedInterfaceProperty");
2714
+ if (state.tokenize) {
2715
+ return $TOKEN("NestedInterfaceProperty", state, NestedInterfaceProperty$0(state));
2716
+ } else {
2717
+ return NestedInterfaceProperty$0(state);
2718
+ }
2719
+ }
2720
+ var TypeSuffix$0 = $T($S(__, $EXPECT($L11, fail, 'TypeSuffix ":"'), Type), function(value) {
2721
+ return { "ts": true, "children": value };
2722
+ });
2723
+ function TypeSuffix(state) {
2724
+ if (state.verbose)
2725
+ console.log("ENTER:", "TypeSuffix");
2726
+ if (state.tokenize) {
2727
+ return $TOKEN("TypeSuffix", state, TypeSuffix$0(state));
2728
+ } else {
2729
+ return TypeSuffix$0(state);
2730
+ }
2731
+ }
2732
+ var Type$0 = InterfaceBlock;
2733
+ var Type$1 = $S($Q(_), FunctionType);
2734
+ var Type$2 = $S($Q(_), IdentifierName, $Q($S($EXPECT($L25, fail, 'Type "."'), IdentifierName)), $E(TypeArguments), $Q($EXPECT($L123, fail, 'Type "[]"')));
2735
+ var Type$3 = $S($Q(_), NumericLiteral);
2736
+ var Type$4 = $S($Q(_), StringLiteral);
2737
+ var Type$5 = $S($Q(_), $EXPECT($L82, fail, 'Type "void"'));
2738
+ function Type(state) {
2739
+ if (state.tokenize) {
2740
+ return $TOKEN("Type", state, Type$0(state) || Type$1(state) || Type$2(state) || Type$3(state) || Type$4(state) || Type$5(state));
2741
+ } else {
2742
+ return Type$0(state) || Type$1(state) || Type$2(state) || Type$3(state) || Type$4(state) || Type$5(state);
2743
+ }
2744
+ }
2745
+ var FunctionType$0 = $S(Parameters, __, $EXPECT($L9, fail, 'FunctionType "=>"'), Type);
2746
+ function FunctionType(state) {
2747
+ if (state.verbose)
2748
+ console.log("ENTER:", "FunctionType");
2749
+ if (state.tokenize) {
2750
+ return $TOKEN("FunctionType", state, FunctionType$0(state));
2751
+ } else {
2752
+ return FunctionType$0(state);
2753
+ }
2754
+ }
2755
+ var TypeArguments$0 = $S(__, $EXPECT($L13, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, $EXPECT($L0, fail, 'TypeArguments ","'), __, Type)), $E($S(__, $EXPECT($L0, fail, 'TypeArguments ","'))), __, $EXPECT($L65, fail, 'TypeArguments ">"'));
2756
+ function TypeArguments(state) {
2757
+ if (state.verbose)
2758
+ console.log("ENTER:", "TypeArguments");
2759
+ if (state.tokenize) {
2760
+ return $TOKEN("TypeArguments", state, TypeArguments$0(state));
2761
+ } else {
2762
+ return TypeArguments$0(state);
2763
+ }
2764
+ }
2765
+ var Shebang$0 = $R$0($EXPECT($R23, fail, "Shebang /#![^\\r\\n]*/"));
2766
+ function Shebang(state) {
2767
+ if (state.verbose)
2768
+ console.log("ENTER:", "Shebang");
2769
+ if (state.tokenize) {
2770
+ return $TOKEN("Shebang", state, Shebang$0(state));
2771
+ } else {
2772
+ return Shebang$0(state);
2773
+ }
2774
+ }
2775
+ var DirectivePrologue$0 = $TV($Q($S($TEXT($EXPECT($R24, fail, "DirectivePrologue /[\\t ]*/")), $TEXT(StringLiteral), $TEXT(StatementDelimiter), $TEXT(EOS))), function($skip, $loc, $0, $1) {
2776
+ return $0.map((p) => p.join(""));
2777
+ });
2778
+ function DirectivePrologue(state) {
2779
+ if (state.verbose)
2780
+ console.log("ENTER:", "DirectivePrologue");
2781
+ if (state.tokenize) {
2782
+ return $TOKEN("DirectivePrologue", state, DirectivePrologue$0(state));
2783
+ } else {
2784
+ return DirectivePrologue$0(state);
2785
+ }
2786
+ }
2787
+ var EOS$0 = $P(RestOfLine);
2788
+ function EOS(state) {
2789
+ if (state.verbose)
2790
+ console.log("ENTER:", "EOS");
2791
+ if (state.tokenize) {
2792
+ return $TOKEN("EOS", state, EOS$0(state));
2793
+ } else {
2794
+ return EOS$0(state);
2795
+ }
2796
+ }
2797
+ var EOL$0 = $R$0($EXPECT($R25, fail, "EOL /\\r\\n|\\n|\\r|$/"));
2798
+ function EOL(state) {
2799
+ if (state.verbose)
2800
+ console.log("ENTER:", "EOL");
2801
+ if (state.tokenize) {
2802
+ return $TOKEN("EOL", state, EOL$0(state));
2803
+ } else {
2804
+ return EOL$0(state);
2805
+ }
2806
+ }
2807
+ var EOF$0 = $R$0($EXPECT($R26, fail, "EOF /$/"));
2808
+ function EOF(state) {
2809
+ if (state.verbose)
2810
+ console.log("ENTER:", "EOF");
2811
+ if (state.tokenize) {
2812
+ return $TOKEN("EOF", state, EOF$0(state));
2813
+ } else {
2814
+ return EOF$0(state);
2815
+ }
2816
+ }
2817
+ var InsertOpenParen$0 = $T($EXPECT($L29, fail, 'InsertOpenParen ""'), function(value) {
2818
+ return "(";
2819
+ });
2820
+ function InsertOpenParen(state) {
2821
+ if (state.verbose)
2822
+ console.log("ENTER:", "InsertOpenParen");
2823
+ if (state.tokenize) {
2824
+ return $TOKEN("InsertOpenParen", state, InsertOpenParen$0(state));
2825
+ } else {
2826
+ return InsertOpenParen$0(state);
2827
+ }
2828
+ }
2829
+ var InsertCloseParen$0 = $T($EXPECT($L29, fail, 'InsertCloseParen ""'), function(value) {
2830
+ return ")";
2831
+ });
2832
+ function InsertCloseParen(state) {
2833
+ if (state.verbose)
2834
+ console.log("ENTER:", "InsertCloseParen");
2835
+ if (state.tokenize) {
2836
+ return $TOKEN("InsertCloseParen", state, InsertCloseParen$0(state));
2837
+ } else {
2838
+ return InsertCloseParen$0(state);
2839
+ }
2840
+ }
2841
+ var InsertOpenBrace$0 = $T($EXPECT($L29, fail, 'InsertOpenBrace ""'), function(value) {
2842
+ return " {";
2843
+ });
2844
+ function InsertOpenBrace(state) {
2845
+ if (state.verbose)
2846
+ console.log("ENTER:", "InsertOpenBrace");
2847
+ if (state.tokenize) {
2848
+ return $TOKEN("InsertOpenBrace", state, InsertOpenBrace$0(state));
2849
+ } else {
2850
+ return InsertOpenBrace$0(state);
2851
+ }
2852
+ }
2853
+ var InsertCloseBrace$0 = $T($EXPECT($L29, fail, 'InsertCloseBrace ""'), function(value) {
2854
+ return "}";
2855
+ });
2856
+ function InsertCloseBrace(state) {
2857
+ if (state.verbose)
2858
+ console.log("ENTER:", "InsertCloseBrace");
2859
+ if (state.tokenize) {
2860
+ return $TOKEN("InsertCloseBrace", state, InsertCloseBrace$0(state));
2861
+ } else {
2862
+ return InsertCloseBrace$0(state);
2863
+ }
2864
+ }
2865
+ var InsertNewline$0 = $TV($EXPECT($L29, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
2866
+ return "\n";
2867
+ });
2868
+ function InsertNewline(state) {
2869
+ if (state.verbose)
2870
+ console.log("ENTER:", "InsertNewline");
2871
+ if (state.tokenize) {
2872
+ return $TOKEN("InsertNewline", state, InsertNewline$0(state));
2873
+ } else {
2874
+ return InsertNewline$0(state);
2875
+ }
2876
+ }
2877
+ var InsertIndent$0 = $TV($EXPECT($L29, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
2878
+ return "".padStart(global.currentIndent * 2);
2879
+ });
2880
+ function InsertIndent(state) {
2881
+ if (state.verbose)
2882
+ console.log("ENTER:", "InsertIndent");
2883
+ if (state.tokenize) {
2884
+ return $TOKEN("InsertIndent", state, InsertIndent$0(state));
2885
+ } else {
2886
+ return InsertIndent$0(state);
2887
+ }
2888
+ }
2889
+ var InsertSpace$0 = $T($EXPECT($L29, fail, 'InsertSpace ""'), function(value) {
2890
+ return " ";
2891
+ });
2892
+ function InsertSpace(state) {
2893
+ if (state.verbose)
2894
+ console.log("ENTER:", "InsertSpace");
2895
+ if (state.tokenize) {
2896
+ return $TOKEN("InsertSpace", state, InsertSpace$0(state));
2897
+ } else {
2898
+ return InsertSpace$0(state);
2899
+ }
2900
+ }
2901
+ var InsertDot$0 = $T($EXPECT($L29, fail, 'InsertDot ""'), function(value) {
2902
+ return ".";
2903
+ });
2904
+ function InsertDot(state) {
2905
+ if (state.verbose)
2906
+ console.log("ENTER:", "InsertDot");
2907
+ if (state.tokenize) {
2908
+ return $TOKEN("InsertDot", state, InsertDot$0(state));
2909
+ } else {
2910
+ return InsertDot$0(state);
2911
+ }
2912
+ }
2913
+ var InsertBreak$0 = $T($EXPECT($L29, fail, 'InsertBreak ""'), function(value) {
2914
+ return "break;";
2915
+ });
2916
+ function InsertBreak(state) {
2917
+ if (state.verbose)
2918
+ console.log("ENTER:", "InsertBreak");
2919
+ if (state.tokenize) {
2920
+ return $TOKEN("InsertBreak", state, InsertBreak$0(state));
2921
+ } else {
2922
+ return InsertBreak$0(state);
2923
+ }
2924
+ }
2925
+ var Init$0 = $TS($S($E(Shebang), DirectivePrologue, $EXPECT($L29, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
2926
+ var directives = $2;
2927
+ global.currentIndent = 0;
2928
+ global.indentLevels = [0];
2929
+ global.verbose = false;
2930
+ if (directives) {
2931
+ const compatRe = /use coffee-compat/;
2932
+ global.coffeeCompat = directives.some((d) => d.match(compatRe));
2933
+ }
2934
+ return $0;
2935
+ });
2936
+ function Init(state) {
2937
+ if (state.verbose)
2938
+ console.log("ENTER:", "Init");
2939
+ if (state.tokenize) {
2940
+ return $TOKEN("Init", state, Init$0(state));
2941
+ } else {
2942
+ return Init$0(state);
2943
+ }
2944
+ }
2945
+ var Indent$0 = $TV($Q($C($EXPECT($L124, fail, 'Indent " "'), $EXPECT($L125, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
2946
+ return $1.length;
2947
+ });
2948
+ function Indent(state) {
2949
+ if (state.verbose)
2950
+ console.log("ENTER:", "Indent");
2951
+ if (state.tokenize) {
2952
+ return $TOKEN("Indent", state, Indent$0(state));
2953
+ } else {
2954
+ return Indent$0(state);
2955
+ }
2956
+ }
2957
+ var PushIndent$0 = $TV($EXPECT($L29, fail, 'PushIndent ""'), function($skip, $loc, $0, $1) {
2958
+ global.currentIndent++;
2959
+ if (global.verbose) {
2960
+ console.log("pushing indent", global.currentIndent);
2961
+ }
2962
+ global.indentLevels.push(global.currentIndent);
2963
+ return global.currentIndent;
2964
+ });
2965
+ function PushIndent(state) {
2966
+ if (state.verbose)
2967
+ console.log("ENTER:", "PushIndent");
2968
+ if (state.tokenize) {
2969
+ return $TOKEN("PushIndent", state, PushIndent$0(state));
2970
+ } else {
2971
+ return PushIndent$0(state);
2972
+ }
2973
+ }
2974
+ var PopIndent$0 = $TV($EXPECT($L29, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
2975
+ if (global.verbose) {
2976
+ console.log("popping indent", global.indentLevels[global.indentLevels.length - 1], "->", global.indentLevels[global.indentLevels.length - 2]);
2977
+ }
2978
+ global.indentLevels.pop();
2979
+ global.currentIndent = global.indentLevels[global.indentLevels.length - 1];
2980
+ return global.currentIndent;
2981
+ });
2982
+ function PopIndent(state) {
2983
+ if (state.verbose)
2984
+ console.log("ENTER:", "PopIndent");
2985
+ if (state.tokenize) {
2986
+ return $TOKEN("PopIndent", state, PopIndent$0(state));
2987
+ } else {
2988
+ return PopIndent$0(state);
2989
+ }
2990
+ }
2991
+ var Nested$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
2992
+ var eos = $1;
2993
+ var indent = $2;
2994
+ const currentIndent = global.indentLevels[global.indentLevels.length - 1];
2995
+ if (global.verbose) {
2996
+ console.log("global indent", global.currentIndent);
2997
+ console.log("Indented", indent, currentIndent);
2998
+ }
2999
+ if (indent !== currentIndent) {
3000
+ if (global.verbose) {
3001
+ console.log("skipped nested");
3002
+ }
3003
+ return $skip;
3004
+ }
3005
+ return [eos, "".padStart(indent * 2)];
3006
+ });
3007
+ function Nested(state) {
3008
+ if (state.verbose)
3009
+ console.log("ENTER:", "Nested");
3010
+ if (state.tokenize) {
3011
+ return $TOKEN("Nested", state, Nested$0(state));
3012
+ } else {
3013
+ return Nested$0(state);
3014
+ }
3015
+ }
3016
+ module2.exports = {
3017
+ parse: parse2
3018
+ };
3019
+ }
3020
+ });
3021
+
3022
+ // source/generate.coffee
3023
+ var require_generate = __commonJS({
3024
+ "source/generate.coffee"(exports2, module2) {
3025
+ var gen2;
3026
+ gen2 = function(node, options) {
3027
+ if (node === null || node === void 0) {
3028
+ return "";
3029
+ }
3030
+ if (typeof node === "string") {
3031
+ return node;
3032
+ }
3033
+ if (Array.isArray(node)) {
3034
+ return node.map(function(child) {
3035
+ return gen2(child, options);
3036
+ }).join("");
3037
+ }
3038
+ if (typeof node === "object") {
3039
+ if ((options != null ? options.js : void 0) && node.ts) {
3040
+ return "";
3041
+ }
3042
+ if (!node.children) {
3043
+ debugger;
3044
+ throw new Error("Unknown node", JSON.stringify(node));
3045
+ }
3046
+ return node.children.map(function(child) {
3047
+ return gen2(child, options);
3048
+ }).join("");
3049
+ }
3050
+ throw new Error("Unknown node", JSON.stringify(node));
3051
+ };
3052
+ module2.exports = gen2;
3053
+ }
3054
+ });
3055
+
3056
+ // source/main.coffee
3057
+ var gen;
3058
+ var parse;
3059
+ ({ parse } = require_parser());
3060
+ gen = require_generate();
3061
+ module.exports = {
3062
+ parse,
3063
+ compile: function(src, options) {
3064
+ return gen(parse(src), options);
3065
+ }
3066
+ };