@danielx/civet 0.4.13 → 0.4.15

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 CHANGED
@@ -451,6 +451,7 @@ var require_parser = __commonJS({
451
451
  AdditionalReservedWords,
452
452
  MemberExpression,
453
453
  MemberExpressionRest,
454
+ MemberBracketContent,
454
455
  PropertyAccess,
455
456
  SuperProperty,
456
457
  MetaProperty,
@@ -519,17 +520,21 @@ var require_parser = __commonJS({
519
520
  UnaryOp,
520
521
  ModuleItem,
521
522
  StatementListItem,
522
- PostfixConditional,
523
+ PostfixStatement,
523
524
  Statement,
524
525
  EmptyStatement,
525
526
  BlockStatement,
526
527
  IfStatement,
528
+ IfClause,
529
+ UnlessClause,
527
530
  IterationStatement,
528
531
  LoopStatement,
532
+ LoopClause,
529
533
  DoWhileStatement,
530
534
  WhileStatement,
531
535
  WhileClause,
532
536
  ForStatement,
537
+ ForClause,
533
538
  ForStatementControl,
534
539
  ForInOfDeclaration,
535
540
  ForDeclaration,
@@ -635,7 +640,9 @@ var require_parser = __commonJS({
635
640
  ConstructorShorthand,
636
641
  Default,
637
642
  Delete,
643
+ Do,
638
644
  Dot,
645
+ DotDot,
639
646
  DotDotDot,
640
647
  DoubleQuote,
641
648
  Else,
@@ -671,9 +678,11 @@ var require_parser = __commonJS({
671
678
  Try,
672
679
  Typeof,
673
680
  Unless,
681
+ Until,
674
682
  Var,
675
683
  Void,
676
684
  When,
685
+ While,
677
686
  Yield,
678
687
  JSXElement,
679
688
  JSXSelfClosingElement,
@@ -835,82 +844,83 @@ var require_parser = __commonJS({
835
844
  var $L69 = $L("^");
836
845
  var $L70 = $L("|");
837
846
  var $L71 = $L(";");
838
- var $L72 = $L("do");
839
- var $L73 = $L("while");
840
- var $L74 = $L("until");
841
- var $L75 = $L("finally");
842
- var $L76 = $L("break");
843
- var $L77 = $L("continue");
844
- var $L78 = $L("debugger");
845
- var $L79 = $L("import type");
846
- var $L80 = $L("default");
847
- var $L81 = $L(":=");
848
- var $L82 = $L("/*");
849
- var $L83 = $L("*/");
850
- var $L84 = $L("###");
851
- var $L85 = $L("as");
852
- var $L86 = $L("async");
853
- var $L87 = $L("await");
854
- var $L88 = $L("`");
855
- var $L89 = $L("case");
856
- var $L90 = $L("catch");
857
- var $L91 = $L("class");
858
- var $L92 = $L("#{");
859
- var $L93 = $L(":");
860
- var $L94 = $L("delete");
861
- var $L95 = $L(".");
862
- var $L96 = $L("...");
863
- var $L97 = $L('"');
864
- var $L98 = $L("else");
865
- var $L99 = $L("export");
866
- var $L100 = $L("for");
867
- var $L101 = $L("from");
868
- var $L102 = $L("function");
869
- var $L103 = $L("get");
870
- var $L104 = $L("set");
871
- var $L105 = $L("if");
872
- var $L106 = $L("let");
873
- var $L107 = $L("const");
874
- var $L108 = $L("loop");
875
- var $L109 = $L("new");
876
- var $L110 = $L("of");
877
- var $L111 = $L("{");
878
- var $L112 = $L("[");
879
- var $L113 = $L("(");
880
- var $L114 = $L("?");
881
- var $L115 = $L("return");
882
- var $L116 = $L("'");
883
- var $L117 = $L("static");
884
- var $L118 = $L("${");
885
- var $L119 = $L("switch");
886
- var $L120 = $L("target");
887
- var $L121 = $L("throw");
888
- var $L122 = $L('"""');
889
- var $L123 = $L("'''");
890
- var $L124 = $L("```");
891
- var $L125 = $L("try");
892
- var $L126 = $L("typeof");
893
- var $L127 = $L("unless");
847
+ var $L72 = $L("finally");
848
+ var $L73 = $L("break");
849
+ var $L74 = $L("continue");
850
+ var $L75 = $L("debugger");
851
+ var $L76 = $L("import type");
852
+ var $L77 = $L("default");
853
+ var $L78 = $L(":=");
854
+ var $L79 = $L("/*");
855
+ var $L80 = $L("*/");
856
+ var $L81 = $L("###");
857
+ var $L82 = $L("as");
858
+ var $L83 = $L("async");
859
+ var $L84 = $L("await");
860
+ var $L85 = $L("`");
861
+ var $L86 = $L("case");
862
+ var $L87 = $L("catch");
863
+ var $L88 = $L("class");
864
+ var $L89 = $L("#{");
865
+ var $L90 = $L(":");
866
+ var $L91 = $L("delete");
867
+ var $L92 = $L("do");
868
+ var $L93 = $L(".");
869
+ var $L94 = $L("..");
870
+ var $L95 = $L("...");
871
+ var $L96 = $L('"');
872
+ var $L97 = $L("else");
873
+ var $L98 = $L("export");
874
+ var $L99 = $L("for");
875
+ var $L100 = $L("from");
876
+ var $L101 = $L("function");
877
+ var $L102 = $L("get");
878
+ var $L103 = $L("set");
879
+ var $L104 = $L("if");
880
+ var $L105 = $L("let");
881
+ var $L106 = $L("const");
882
+ var $L107 = $L("loop");
883
+ var $L108 = $L("new");
884
+ var $L109 = $L("of");
885
+ var $L110 = $L("{");
886
+ var $L111 = $L("[");
887
+ var $L112 = $L("(");
888
+ var $L113 = $L("?");
889
+ var $L114 = $L("return");
890
+ var $L115 = $L("'");
891
+ var $L116 = $L("static");
892
+ var $L117 = $L("${");
893
+ var $L118 = $L("switch");
894
+ var $L119 = $L("target");
895
+ var $L120 = $L("throw");
896
+ var $L121 = $L('"""');
897
+ var $L122 = $L("'''");
898
+ var $L123 = $L("```");
899
+ var $L124 = $L("try");
900
+ var $L125 = $L("typeof");
901
+ var $L126 = $L("unless");
902
+ var $L127 = $L("until");
894
903
  var $L128 = $L("var");
895
904
  var $L129 = $L("void");
896
905
  var $L130 = $L("when");
897
- var $L131 = $L("yield");
898
- var $L132 = $L("/>");
899
- var $L133 = $L("</");
900
- var $L134 = $L("<>");
901
- var $L135 = $L("</>");
902
- var $L136 = $L("declare");
903
- var $L137 = $L("type");
904
- var $L138 = $L("interface");
905
- var $L139 = $L("namespace");
906
- var $L140 = $L("readonly");
907
- var $L141 = $L("asserts");
908
- var $L142 = $L("keyof");
909
- var $L143 = $L("infer");
910
- var $L144 = $L("[]");
911
- var $L145 = $L("civet");
912
- var $L146 = $L(" ");
913
- var $L147 = $L(" ");
906
+ var $L131 = $L("while");
907
+ var $L132 = $L("yield");
908
+ var $L133 = $L("/>");
909
+ var $L134 = $L("</");
910
+ var $L135 = $L("<>");
911
+ var $L136 = $L("</>");
912
+ var $L137 = $L("declare");
913
+ var $L138 = $L("type");
914
+ var $L139 = $L("interface");
915
+ var $L140 = $L("namespace");
916
+ var $L141 = $L("readonly");
917
+ var $L142 = $L("asserts");
918
+ var $L143 = $L("keyof");
919
+ var $L144 = $L("infer");
920
+ var $L145 = $L("[]");
921
+ var $L146 = $L("civet");
922
+ var $L147 = $L(" ");
923
+ var $L148 = $L(" ");
914
924
  var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
915
925
  var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
916
926
  var $R2 = $R(new RegExp("[!~+-]", "suy"));
@@ -918,8 +928,8 @@ var require_parser = __commonJS({
918
928
  var $R4 = $R(new RegExp('[^;"\\s]+', "suy"));
919
929
  var $R5 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
920
930
  var $R6 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
921
- var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*)?)?", "suy"));
922
- var $R8 = $R(new RegExp("(?:\\.(?!\\p{ID_Start})[0-9](?:_[0-9]|[0-9])*)", "suy"));
931
+ var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
932
+ var $R8 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
923
933
  var $R9 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
924
934
  var $R10 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
925
935
  var $R11 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
@@ -935,7 +945,7 @@ var require_parser = __commonJS({
935
945
  var $R21 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
936
946
  var $R22 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
937
947
  var $R23 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
938
- var $R24 = $R(new RegExp("(?:and|as|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|static|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
948
+ var $R24 = $R(new RegExp("(?:and|as|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|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
939
949
  var $R25 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
940
950
  var $R26 = $R(new RegExp(".", "suy"));
941
951
  var $R27 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
@@ -1536,7 +1546,7 @@ var require_parser = __commonJS({
1536
1546
  return MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state);
1537
1547
  }
1538
1548
  }
1539
- var MemberExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), OpenBracket, Expression, __, CloseBracket);
1549
+ var MemberExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent);
1540
1550
  var MemberExpressionRest$1 = $S($E($S($Y(EOS), IndentedFurther)), PropertyAccess);
1541
1551
  var MemberExpressionRest$2 = $TS($S($E($S($Y(EOS), IndentedFurther)), $EXPECT($L12, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
1542
1552
  var id = $3;
@@ -1552,6 +1562,42 @@ var require_parser = __commonJS({
1552
1562
  return MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state);
1553
1563
  }
1554
1564
  }
1565
+ var MemberBracketContent$0 = $TS($S(OpenBracket, Expression, $E($S($C(DotDotDot, DotDot), $E(Expression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1566
+ if ($3) {
1567
+ const sep = $3[0];
1568
+ const end = $3[1];
1569
+ const inclusive = sep.token === "..";
1570
+ sep.token = ", ";
1571
+ $1.token = ".slice(";
1572
+ $5.token = ")";
1573
+ if (!end) {
1574
+ return {
1575
+ type: "SliceExpression",
1576
+ children: [$1, $2, $4, $5]
1577
+ };
1578
+ }
1579
+ if (inclusive) {
1580
+ return {
1581
+ type: "SliceExpression",
1582
+ children: [$1, $2, sep, ["1 + ", end, " || 1/0"], $4, $5]
1583
+ };
1584
+ }
1585
+ return {
1586
+ type: "SliceExpression",
1587
+ children: [$1, $2, sep, end, $4, $5]
1588
+ };
1589
+ }
1590
+ return $0;
1591
+ });
1592
+ function MemberBracketContent(state) {
1593
+ if (state.verbose)
1594
+ console.log("ENTER:", "MemberBracketContent");
1595
+ if (state.tokenize) {
1596
+ return $TOKEN("MemberBracketContent", state, MemberBracketContent$0(state));
1597
+ } else {
1598
+ return MemberBracketContent$0(state);
1599
+ }
1600
+ }
1555
1601
  var PropertyAccess$0 = $S($E($C(QuestionMark, NonNullAssertion)), Dot, $C(IdentifierName, PrivateIdentifier));
1556
1602
  function PropertyAccess(state) {
1557
1603
  if (state.verbose)
@@ -2436,49 +2482,36 @@ var require_parser = __commonJS({
2436
2482
  return ModuleItem$0(state) || ModuleItem$1(state) || ModuleItem$2(state);
2437
2483
  }
2438
2484
  }
2439
- var StatementListItem$0 = $TS($S($C(Declaration, Statement), $E(PostfixConditional), Loc), function($skip, $loc, $0, $1, $2, $3) {
2485
+ var StatementListItem$0 = Declaration;
2486
+ var StatementListItem$1 = $TS($S(Statement, $Q(TrailingComment), $E(PostfixStatement)), function($skip, $loc, $0, $1, $2, $3) {
2440
2487
  var statement = $1;
2441
- var cond = $2;
2442
- var l = $3;
2443
- if (cond)
2444
- return [cond, statement, { $loc: l.$loc, token: "}" }];
2488
+ var ws = $2;
2489
+ var post = $3;
2490
+ if (post) {
2491
+ post.children.push(statement);
2492
+ if (!module2.isWhitespaceOrEmpty(ws))
2493
+ post.children.push(ws);
2494
+ return post;
2495
+ }
2445
2496
  return statement;
2446
2497
  });
2447
2498
  function StatementListItem(state) {
2448
- if (state.verbose)
2449
- console.log("ENTER:", "StatementListItem");
2450
2499
  if (state.tokenize) {
2451
- return $TOKEN("StatementListItem", state, StatementListItem$0(state));
2500
+ return $TOKEN("StatementListItem", state, StatementListItem$0(state) || StatementListItem$1(state));
2452
2501
  } else {
2453
- return StatementListItem$0(state);
2502
+ return StatementListItem$0(state) || StatementListItem$1(state);
2454
2503
  }
2455
2504
  }
2456
- var PostfixConditional$0 = $TS($S($Q(TrailingComment), $C(If, Unless), NonIdContinue, Loc, ExpressionWithIndentedApplicationSuppressed, Loc), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2457
- var ws = $1;
2458
- var cond = $2;
2459
- var l1 = $4;
2460
- var exp = $5;
2461
- var l2 = $6;
2462
- let openParens = { $loc: l1.$loc, token: "(!(" };
2463
- let closingParens = { $loc: l2.$loc, token: "))" };
2464
- let space = { $loc: l2.$loc, token: " " };
2465
- let openingBrace = { $loc: l2.$loc, token: "{" };
2466
- if (cond.token === "if") {
2467
- cond.token = "if";
2468
- closingParens.token = ")";
2469
- openParens.token = "(";
2470
- } else {
2471
- cond.token = "if";
2472
- }
2473
- return [ws, cond, openParens, exp, closingParens, space, openingBrace];
2474
- });
2475
- function PostfixConditional(state) {
2476
- if (state.verbose)
2477
- console.log("ENTER:", "PostfixConditional");
2505
+ var PostfixStatement$0 = ForClause;
2506
+ var PostfixStatement$1 = IfClause;
2507
+ var PostfixStatement$2 = LoopClause;
2508
+ var PostfixStatement$3 = UnlessClause;
2509
+ var PostfixStatement$4 = WhileClause;
2510
+ function PostfixStatement(state) {
2478
2511
  if (state.tokenize) {
2479
- return $TOKEN("PostfixConditional", state, PostfixConditional$0(state));
2512
+ return $TOKEN("PostfixStatement", state, PostfixStatement$0(state) || PostfixStatement$1(state) || PostfixStatement$2(state) || PostfixStatement$3(state) || PostfixStatement$4(state));
2480
2513
  } else {
2481
- return PostfixConditional$0(state);
2514
+ return PostfixStatement$0(state) || PostfixStatement$1(state) || PostfixStatement$2(state) || PostfixStatement$3(state) || PostfixStatement$4(state);
2482
2515
  }
2483
2516
  }
2484
2517
  var Statement$0 = KeywordStatement;
@@ -2522,13 +2555,43 @@ var require_parser = __commonJS({
2522
2555
  return BlockStatement$0(state);
2523
2556
  }
2524
2557
  }
2525
- var IfStatement$0 = $T($S(If, Condition, Block, $E($S(__, Else, Block))), function(value) {
2558
+ var IfStatement$0 = $TS($S(IfClause, Block, $E($S(__, Else, Block))), function($skip, $loc, $0, $1, $2, $3) {
2559
+ var clause = $1;
2560
+ var block = $2;
2561
+ var e = $3;
2562
+ clause.children.push(block);
2563
+ if (e)
2564
+ clause.children.push(e);
2565
+ return clause;
2566
+ });
2567
+ var IfStatement$1 = $TS($S(UnlessClause, Block), function($skip, $loc, $0, $1, $2) {
2568
+ var clause = $1;
2569
+ var block = $2;
2570
+ clause.children.push(block);
2571
+ return clause;
2572
+ });
2573
+ function IfStatement(state) {
2574
+ if (state.tokenize) {
2575
+ return $TOKEN("IfStatement", state, IfStatement$0(state) || IfStatement$1(state));
2576
+ } else {
2577
+ return IfStatement$0(state) || IfStatement$1(state);
2578
+ }
2579
+ }
2580
+ var IfClause$0 = $T($S(If, Condition), function(value) {
2526
2581
  return { "type": "IfStatement", "children": value };
2527
2582
  });
2528
- var IfStatement$1 = $TS($S(Unless, Condition, Block), function($skip, $loc, $0, $1, $2, $3) {
2583
+ function IfClause(state) {
2584
+ if (state.verbose)
2585
+ console.log("ENTER:", "IfClause");
2586
+ if (state.tokenize) {
2587
+ return $TOKEN("IfClause", state, IfClause$0(state));
2588
+ } else {
2589
+ return IfClause$0(state);
2590
+ }
2591
+ }
2592
+ var UnlessClause$0 = $TS($S(Unless, Condition), function($skip, $loc, $0, $1, $2) {
2529
2593
  var kind = $1;
2530
2594
  var condition = $2;
2531
- var block = $3;
2532
2595
  condition.forEach((c) => {
2533
2596
  if (!c)
2534
2597
  return;
@@ -2540,22 +2603,22 @@ var require_parser = __commonJS({
2540
2603
  kind.token = "if";
2541
2604
  return {
2542
2605
  type: "IfStatement",
2543
- children: [kind, condition, block]
2606
+ children: [kind, condition]
2544
2607
  };
2545
2608
  });
2546
- function IfStatement(state) {
2609
+ function UnlessClause(state) {
2610
+ if (state.verbose)
2611
+ console.log("ENTER:", "UnlessClause");
2547
2612
  if (state.tokenize) {
2548
- return $TOKEN("IfStatement", state, IfStatement$0(state) || IfStatement$1(state));
2613
+ return $TOKEN("UnlessClause", state, UnlessClause$0(state));
2549
2614
  } else {
2550
- return IfStatement$0(state) || IfStatement$1(state);
2615
+ return UnlessClause$0(state);
2551
2616
  }
2552
2617
  }
2553
2618
  var IterationStatement$0 = LoopStatement;
2554
2619
  var IterationStatement$1 = DoWhileStatement;
2555
2620
  var IterationStatement$2 = WhileStatement;
2556
- var IterationStatement$3 = $T($S(ForStatement), function(value) {
2557
- return { "type": "IterationStatement", "children": value };
2558
- });
2621
+ var IterationStatement$3 = ForStatement;
2559
2622
  function IterationStatement(state) {
2560
2623
  if (state.tokenize) {
2561
2624
  return $TOKEN("IterationStatement", state, IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state));
@@ -2563,8 +2626,11 @@ var require_parser = __commonJS({
2563
2626
  return IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state);
2564
2627
  }
2565
2628
  }
2566
- var LoopStatement$0 = $T($S(Loop, Block), function(value) {
2567
- return { "type": "IterationStatement", "children": value };
2629
+ var LoopStatement$0 = $TS($S(LoopClause, Block), function($skip, $loc, $0, $1, $2) {
2630
+ var clause = $1;
2631
+ var block = $2;
2632
+ clause.children.push(block);
2633
+ return clause;
2568
2634
  });
2569
2635
  function LoopStatement(state) {
2570
2636
  if (state.verbose)
@@ -2575,7 +2641,19 @@ var require_parser = __commonJS({
2575
2641
  return LoopStatement$0(state);
2576
2642
  }
2577
2643
  }
2578
- var DoWhileStatement$0 = $T($S($EXPECT($L72, fail, 'DoWhileStatement "do"'), NonIdContinue, Block, __, WhileClause), function(value) {
2644
+ var LoopClause$0 = $T($S(Loop), function(value) {
2645
+ return { "type": "IterationStatement", "children": value };
2646
+ });
2647
+ function LoopClause(state) {
2648
+ if (state.verbose)
2649
+ console.log("ENTER:", "LoopClause");
2650
+ if (state.tokenize) {
2651
+ return $TOKEN("LoopClause", state, LoopClause$0(state));
2652
+ } else {
2653
+ return LoopClause$0(state);
2654
+ }
2655
+ }
2656
+ var DoWhileStatement$0 = $T($S(Do, BracedBlock, __, WhileClause), function(value) {
2579
2657
  return { "type": "IterationStatement", "children": value };
2580
2658
  });
2581
2659
  function DoWhileStatement(state) {
@@ -2587,8 +2665,11 @@ var require_parser = __commonJS({
2587
2665
  return DoWhileStatement$0(state);
2588
2666
  }
2589
2667
  }
2590
- var WhileStatement$0 = $T($S(WhileClause, Block), function(value) {
2591
- return { "type": "IterationStatement", "children": value };
2668
+ var WhileStatement$0 = $TS($S(WhileClause, Block), function($skip, $loc, $0, $1, $2) {
2669
+ var clause = $1;
2670
+ var block = $2;
2671
+ clause.children.push(block);
2672
+ return clause;
2592
2673
  });
2593
2674
  function WhileStatement(state) {
2594
2675
  if (state.verbose)
@@ -2599,15 +2680,19 @@ var require_parser = __commonJS({
2599
2680
  return WhileStatement$0(state);
2600
2681
  }
2601
2682
  }
2602
- var WhileClause$0 = $TS($S($C($EXPECT($L73, fail, 'WhileClause "while"'), $EXPECT($L74, fail, 'WhileClause "until"')), NonIdContinue, Condition), function($skip, $loc, $0, $1, $2, $3) {
2683
+ var WhileClause$0 = $TS($S($C(While, Until), Condition), function($skip, $loc, $0, $1, $2) {
2603
2684
  var kind = $1;
2604
- var cond = $3;
2605
- if (kind === "until") {
2685
+ var cond = $2;
2686
+ if (kind.token === "until") {
2606
2687
  cond[1] = "(!(";
2607
- cond[4] = "))";
2608
- return ["while", cond];
2688
+ cond[cond.length - 1] = "))";
2689
+ kind.token = "while";
2690
+ $0 = [kind, cond];
2609
2691
  }
2610
- return $0;
2692
+ return {
2693
+ type: "IterationStatement",
2694
+ children: $0
2695
+ };
2611
2696
  });
2612
2697
  function WhileClause(state) {
2613
2698
  if (state.verbose)
@@ -2618,7 +2703,12 @@ var require_parser = __commonJS({
2618
2703
  return WhileClause$0(state);
2619
2704
  }
2620
2705
  }
2621
- var ForStatement$0 = $S(For, __, ForStatementControl, Block);
2706
+ var ForStatement$0 = $TS($S(ForClause, Block), function($skip, $loc, $0, $1, $2) {
2707
+ var clause = $1;
2708
+ var block = $2;
2709
+ clause.children.push(block);
2710
+ return clause;
2711
+ });
2622
2712
  function ForStatement(state) {
2623
2713
  if (state.verbose)
2624
2714
  console.log("ENTER:", "ForStatement");
@@ -2628,6 +2718,18 @@ var require_parser = __commonJS({
2628
2718
  return ForStatement$0(state);
2629
2719
  }
2630
2720
  }
2721
+ var ForClause$0 = $T($S(For, __, ForStatementControl), function(value) {
2722
+ return { "type": "IterationStatement", "children": value };
2723
+ });
2724
+ function ForClause(state) {
2725
+ if (state.verbose)
2726
+ console.log("ENTER:", "ForClause");
2727
+ if (state.tokenize) {
2728
+ return $TOKEN("ForClause", state, ForClause$0(state));
2729
+ } else {
2730
+ return ForClause$0(state);
2731
+ }
2732
+ }
2631
2733
  var ForStatementControl$0 = $S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E(Expression), __, CloseParen);
2632
2734
  var ForStatementControl$1 = $S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E($S($N(EOS), Expression)), InsertCloseParen);
2633
2735
  var ForStatementControl$2 = $S(OpenParen, __, ForInOfDeclaration, __, In, Expression, __, CloseParen);
@@ -2848,7 +2950,7 @@ var require_parser = __commonJS({
2848
2950
  return CatchBind$0(state) || CatchBind$1(state);
2849
2951
  }
2850
2952
  }
2851
- var Finally$0 = $S(__, $EXPECT($L75, fail, 'Finally "finally"'), BracedBlock);
2953
+ var Finally$0 = $S(__, $EXPECT($L72, fail, 'Finally "finally"'), BracedBlock);
2852
2954
  function Finally(state) {
2853
2955
  if (state.verbose)
2854
2956
  console.log("ENTER:", "Finally");
@@ -2868,7 +2970,10 @@ var require_parser = __commonJS({
2868
2970
  }
2869
2971
  }
2870
2972
  var Condition$0 = $S(__, OpenParen, Expression, __, CloseParen);
2871
- var Condition$1 = $S($N(EOS), __, InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen);
2973
+ var Condition$1 = $TS($S($N(EOS), __, InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2974
+ $0.shift();
2975
+ return $0;
2976
+ });
2872
2977
  function Condition(state) {
2873
2978
  if (state.tokenize) {
2874
2979
  return $TOKEN("Condition", state, Condition$0(state) || Condition$1(state));
@@ -2914,13 +3019,13 @@ var require_parser = __commonJS({
2914
3019
  return ExpressionStatement$0(state);
2915
3020
  }
2916
3021
  }
2917
- var KeywordStatement$0 = $T($S($EXPECT($L76, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
3022
+ var KeywordStatement$0 = $T($S($EXPECT($L73, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
2918
3023
  return { "type": "BreakStatement", "children": value };
2919
3024
  });
2920
- var KeywordStatement$1 = $T($S($EXPECT($L77, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
3025
+ var KeywordStatement$1 = $T($S($EXPECT($L74, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
2921
3026
  return { "type": "ContinueStatement", "children": value };
2922
3027
  });
2923
- var KeywordStatement$2 = $T($S($EXPECT($L78, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
3028
+ var KeywordStatement$2 = $T($S($EXPECT($L75, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
2924
3029
  return { "type": "DebuggerStatement", "children": value };
2925
3030
  });
2926
3031
  var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
@@ -2945,7 +3050,7 @@ var require_parser = __commonJS({
2945
3050
  return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
2946
3051
  }
2947
3052
  }
2948
- var ImportDeclaration$0 = $T($S($EXPECT($L79, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
3053
+ var ImportDeclaration$0 = $T($S($EXPECT($L76, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
2949
3054
  return { "ts": true, "children": value };
2950
3055
  });
2951
3056
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -3083,7 +3188,7 @@ var require_parser = __commonJS({
3083
3188
  return ImportedBinding$0(state);
3084
3189
  }
3085
3190
  }
3086
- var ExportDeclaration$0 = $S(Export, __, $EXPECT($L80, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
3191
+ var ExportDeclaration$0 = $S(Export, __, $EXPECT($L77, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
3087
3192
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
3088
3193
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
3089
3194
  function ExportDeclaration(state) {
@@ -3165,7 +3270,7 @@ var require_parser = __commonJS({
3165
3270
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
3166
3271
  }
3167
3272
  }
3168
- var ConstAssignment$0 = $TV($EXPECT($L81, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
3273
+ var ConstAssignment$0 = $TV($EXPECT($L78, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
3169
3274
  return { $loc, token: "=" };
3170
3275
  });
3171
3276
  function ConstAssignment(state) {
@@ -3264,8 +3369,8 @@ var require_parser = __commonJS({
3264
3369
  var DecimalLiteral$0 = $TV($TEXT($EXPECT($R6, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
3265
3370
  return $1 + ".";
3266
3371
  });
3267
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R7, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*)?)?/"), $E(ExponentPart)));
3268
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R8, fail, "DecimalLiteral /(?:\\.(?!\\p{ID_Start})[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
3372
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R7, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
3373
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R8, fail, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
3269
3374
  function DecimalLiteral(state) {
3270
3375
  if (state.tokenize) {
3271
3376
  return $TOKEN("DecimalLiteral", state, DecimalLiteral$0(state) || DecimalLiteral$1(state) || DecimalLiteral$2(state));
@@ -3539,7 +3644,7 @@ var require_parser = __commonJS({
3539
3644
  }
3540
3645
  }
3541
3646
  var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R23, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
3542
- var ReservedWord$1 = $R$0($EXPECT($R24, fail, "ReservedWord /(?:and|as|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|static|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
3647
+ var ReservedWord$1 = $R$0($EXPECT($R24, fail, "ReservedWord /(?:and|as|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|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
3543
3648
  function ReservedWord(state) {
3544
3649
  if (state.tokenize) {
3545
3650
  return $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state));
@@ -3576,7 +3681,7 @@ var require_parser = __commonJS({
3576
3681
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3577
3682
  }
3578
3683
  }
3579
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L82, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L83, fail, 'JSMultiLineComment "*/"')), $EXPECT($R26, fail, "JSMultiLineComment /./"))), $EXPECT($L83, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3684
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L79, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L80, fail, 'JSMultiLineComment "*/"')), $EXPECT($R26, fail, "JSMultiLineComment /./"))), $EXPECT($L80, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3580
3685
  return { $loc, token: $1 };
3581
3686
  });
3582
3687
  function JSMultiLineComment(state) {
@@ -3600,7 +3705,7 @@ var require_parser = __commonJS({
3600
3705
  return CoffeeSingleLineComment$0(state);
3601
3706
  }
3602
3707
  }
3603
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L84, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L84, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L83, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R26, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L84, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3708
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L81, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L81, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L80, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R26, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L81, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3604
3709
  return { $loc, token: `/*${$2}*/` };
3605
3710
  });
3606
3711
  function CoffeeMultiLineComment(state) {
@@ -3612,7 +3717,7 @@ var require_parser = __commonJS({
3612
3717
  return CoffeeMultiLineComment$0(state);
3613
3718
  }
3614
3719
  }
3615
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L82, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L83, fail, 'InlineComment "*/"')), $EXPECT($R28, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L83, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3720
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L79, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L80, fail, 'InlineComment "*/"')), $EXPECT($R28, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L80, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3616
3721
  return { $loc, token: $1 };
3617
3722
  });
3618
3723
  function InlineComment(state) {
@@ -3719,7 +3824,7 @@ var require_parser = __commonJS({
3719
3824
  return Loc$0(state);
3720
3825
  }
3721
3826
  }
3722
- var As$0 = $TS($S($EXPECT($L85, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3827
+ var As$0 = $TS($S($EXPECT($L82, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3723
3828
  return { $loc, token: $1 };
3724
3829
  });
3725
3830
  function As(state) {
@@ -3731,7 +3836,7 @@ var require_parser = __commonJS({
3731
3836
  return As$0(state);
3732
3837
  }
3733
3838
  }
3734
- var Async$0 = $TV($EXPECT($L86, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3839
+ var Async$0 = $TV($EXPECT($L83, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3735
3840
  return { $loc, token: $1 };
3736
3841
  });
3737
3842
  function Async(state) {
@@ -3743,7 +3848,7 @@ var require_parser = __commonJS({
3743
3848
  return Async$0(state);
3744
3849
  }
3745
3850
  }
3746
- var Await$0 = $TS($S($EXPECT($L87, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3851
+ var Await$0 = $TS($S($EXPECT($L84, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3747
3852
  return { $loc, token: $1 };
3748
3853
  });
3749
3854
  function Await(state) {
@@ -3755,7 +3860,7 @@ var require_parser = __commonJS({
3755
3860
  return Await$0(state);
3756
3861
  }
3757
3862
  }
3758
- var Backtick$0 = $TV($EXPECT($L88, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
3863
+ var Backtick$0 = $TV($EXPECT($L85, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
3759
3864
  return { $loc, token: $1 };
3760
3865
  });
3761
3866
  function Backtick(state) {
@@ -3767,7 +3872,7 @@ var require_parser = __commonJS({
3767
3872
  return Backtick$0(state);
3768
3873
  }
3769
3874
  }
3770
- var Case$0 = $TS($S($EXPECT($L89, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3875
+ var Case$0 = $TS($S($EXPECT($L86, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3771
3876
  return { $loc, token: $1 };
3772
3877
  });
3773
3878
  function Case(state) {
@@ -3779,7 +3884,7 @@ var require_parser = __commonJS({
3779
3884
  return Case$0(state);
3780
3885
  }
3781
3886
  }
3782
- var Catch$0 = $TV($EXPECT($L90, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3887
+ var Catch$0 = $TV($EXPECT($L87, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3783
3888
  return { $loc, token: $1 };
3784
3889
  });
3785
3890
  function Catch(state) {
@@ -3791,7 +3896,7 @@ var require_parser = __commonJS({
3791
3896
  return Catch$0(state);
3792
3897
  }
3793
3898
  }
3794
- var Class$0 = $TV($EXPECT($L91, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3899
+ var Class$0 = $TV($EXPECT($L88, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3795
3900
  return { $loc, token: $1 };
3796
3901
  });
3797
3902
  function Class(state) {
@@ -3839,7 +3944,7 @@ var require_parser = __commonJS({
3839
3944
  return CloseParen$0(state);
3840
3945
  }
3841
3946
  }
3842
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L92, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
3947
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L89, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
3843
3948
  return { $loc, token: "${" };
3844
3949
  });
3845
3950
  function CoffeeSubstitutionStart(state) {
@@ -3851,7 +3956,7 @@ var require_parser = __commonJS({
3851
3956
  return CoffeeSubstitutionStart$0(state);
3852
3957
  }
3853
3958
  }
3854
- var Colon$0 = $TV($EXPECT($L93, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3959
+ var Colon$0 = $TV($EXPECT($L90, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3855
3960
  return { $loc, token: $1 };
3856
3961
  });
3857
3962
  function Colon(state) {
@@ -3875,7 +3980,7 @@ var require_parser = __commonJS({
3875
3980
  return ConstructorShorthand$0(state);
3876
3981
  }
3877
3982
  }
3878
- var Default$0 = $TS($S($EXPECT($L80, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3983
+ var Default$0 = $TS($S($EXPECT($L77, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3879
3984
  return { $loc, token: $1 };
3880
3985
  });
3881
3986
  function Default(state) {
@@ -3887,7 +3992,7 @@ var require_parser = __commonJS({
3887
3992
  return Default$0(state);
3888
3993
  }
3889
3994
  }
3890
- var Delete$0 = $TS($S($EXPECT($L94, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3995
+ var Delete$0 = $TS($S($EXPECT($L91, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3891
3996
  return { $loc, token: $1 };
3892
3997
  });
3893
3998
  function Delete(state) {
@@ -3899,7 +4004,19 @@ var require_parser = __commonJS({
3899
4004
  return Delete$0(state);
3900
4005
  }
3901
4006
  }
3902
- var Dot$0 = $TV($EXPECT($L95, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
4007
+ var Do$0 = $TS($S($EXPECT($L92, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4008
+ return { $loc, token: $1 };
4009
+ });
4010
+ function Do(state) {
4011
+ if (state.verbose)
4012
+ console.log("ENTER:", "Do");
4013
+ if (state.tokenize) {
4014
+ return $TOKEN("Do", state, Do$0(state));
4015
+ } else {
4016
+ return Do$0(state);
4017
+ }
4018
+ }
4019
+ var Dot$0 = $TV($EXPECT($L93, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3903
4020
  return { $loc, token: $1 };
3904
4021
  });
3905
4022
  function Dot(state) {
@@ -3911,7 +4028,19 @@ var require_parser = __commonJS({
3911
4028
  return Dot$0(state);
3912
4029
  }
3913
4030
  }
3914
- var DotDotDot$0 = $TV($EXPECT($L96, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
4031
+ var DotDot$0 = $TV($EXPECT($L94, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
4032
+ return { $loc, token: $1 };
4033
+ });
4034
+ function DotDot(state) {
4035
+ if (state.verbose)
4036
+ console.log("ENTER:", "DotDot");
4037
+ if (state.tokenize) {
4038
+ return $TOKEN("DotDot", state, DotDot$0(state));
4039
+ } else {
4040
+ return DotDot$0(state);
4041
+ }
4042
+ }
4043
+ var DotDotDot$0 = $TV($EXPECT($L95, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
3915
4044
  return { $loc, token: $1 };
3916
4045
  });
3917
4046
  function DotDotDot(state) {
@@ -3923,7 +4052,7 @@ var require_parser = __commonJS({
3923
4052
  return DotDotDot$0(state);
3924
4053
  }
3925
4054
  }
3926
- var DoubleQuote$0 = $TV($EXPECT($L97, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
4055
+ var DoubleQuote$0 = $TV($EXPECT($L96, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
3927
4056
  return { $loc, token: $1 };
3928
4057
  });
3929
4058
  function DoubleQuote(state) {
@@ -3935,7 +4064,7 @@ var require_parser = __commonJS({
3935
4064
  return DoubleQuote$0(state);
3936
4065
  }
3937
4066
  }
3938
- var Else$0 = $TV($EXPECT($L98, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
4067
+ var Else$0 = $TV($EXPECT($L97, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3939
4068
  return { $loc, token: $1 };
3940
4069
  });
3941
4070
  function Else(state) {
@@ -3959,7 +4088,7 @@ var require_parser = __commonJS({
3959
4088
  return Equals$0(state);
3960
4089
  }
3961
4090
  }
3962
- var Export$0 = $TS($S($EXPECT($L99, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4091
+ var Export$0 = $TS($S($EXPECT($L98, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3963
4092
  return { $loc, token: $1 };
3964
4093
  });
3965
4094
  function Export(state) {
@@ -3971,7 +4100,7 @@ var require_parser = __commonJS({
3971
4100
  return Export$0(state);
3972
4101
  }
3973
4102
  }
3974
- var For$0 = $TS($S($EXPECT($L100, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4103
+ var For$0 = $TS($S($EXPECT($L99, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3975
4104
  return { $loc, token: $1 };
3976
4105
  });
3977
4106
  function For(state) {
@@ -3983,7 +4112,7 @@ var require_parser = __commonJS({
3983
4112
  return For$0(state);
3984
4113
  }
3985
4114
  }
3986
- var From$0 = $TS($S($EXPECT($L101, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4115
+ var From$0 = $TS($S($EXPECT($L100, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3987
4116
  return { $loc, token: $1 };
3988
4117
  });
3989
4118
  function From(state) {
@@ -3995,7 +4124,7 @@ var require_parser = __commonJS({
3995
4124
  return From$0(state);
3996
4125
  }
3997
4126
  }
3998
- var Function$0 = $TV($EXPECT($L102, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
4127
+ var Function$0 = $TV($EXPECT($L101, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3999
4128
  return { $loc, token: $1 };
4000
4129
  });
4001
4130
  function Function(state) {
@@ -4007,7 +4136,7 @@ var require_parser = __commonJS({
4007
4136
  return Function$0(state);
4008
4137
  }
4009
4138
  }
4010
- var GetOrSet$0 = $TS($S($C($EXPECT($L103, fail, 'GetOrSet "get"'), $EXPECT($L104, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4139
+ var GetOrSet$0 = $TS($S($C($EXPECT($L102, fail, 'GetOrSet "get"'), $EXPECT($L103, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4011
4140
  return { $loc, token: $1 };
4012
4141
  });
4013
4142
  function GetOrSet(state) {
@@ -4019,7 +4148,7 @@ var require_parser = __commonJS({
4019
4148
  return GetOrSet$0(state);
4020
4149
  }
4021
4150
  }
4022
- var If$0 = $TV($EXPECT($L105, fail, 'If "if"'), function($skip, $loc, $0, $1) {
4151
+ var If$0 = $TV($EXPECT($L104, fail, 'If "if"'), function($skip, $loc, $0, $1) {
4023
4152
  return { $loc, token: $1 };
4024
4153
  });
4025
4154
  function If(state) {
@@ -4055,7 +4184,7 @@ var require_parser = __commonJS({
4055
4184
  return In$0(state);
4056
4185
  }
4057
4186
  }
4058
- var LetOrConst$0 = $TV($C($EXPECT($L106, fail, 'LetOrConst "let"'), $EXPECT($L107, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
4187
+ var LetOrConst$0 = $TV($C($EXPECT($L105, fail, 'LetOrConst "let"'), $EXPECT($L106, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
4059
4188
  return { $loc, token: $1 };
4060
4189
  });
4061
4190
  function LetOrConst(state) {
@@ -4067,7 +4196,7 @@ var require_parser = __commonJS({
4067
4196
  return LetOrConst$0(state);
4068
4197
  }
4069
4198
  }
4070
- var Loop$0 = $TS($S($EXPECT($L108, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4199
+ var Loop$0 = $TS($S($EXPECT($L107, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4071
4200
  return { $loc, token: "while(true)" };
4072
4201
  });
4073
4202
  function Loop(state) {
@@ -4079,7 +4208,7 @@ var require_parser = __commonJS({
4079
4208
  return Loop$0(state);
4080
4209
  }
4081
4210
  }
4082
- var New$0 = $TV($EXPECT($L109, fail, 'New "new"'), function($skip, $loc, $0, $1) {
4211
+ var New$0 = $TV($EXPECT($L108, fail, 'New "new"'), function($skip, $loc, $0, $1) {
4083
4212
  return { $loc, token: $1 };
4084
4213
  });
4085
4214
  function New(state) {
@@ -4091,7 +4220,7 @@ var require_parser = __commonJS({
4091
4220
  return New$0(state);
4092
4221
  }
4093
4222
  }
4094
- var Of$0 = $TV($EXPECT($L110, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
4223
+ var Of$0 = $TV($EXPECT($L109, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
4095
4224
  return { $loc, token: $1 };
4096
4225
  });
4097
4226
  function Of(state) {
@@ -4103,7 +4232,7 @@ var require_parser = __commonJS({
4103
4232
  return Of$0(state);
4104
4233
  }
4105
4234
  }
4106
- var OpenBrace$0 = $TV($EXPECT($L111, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
4235
+ var OpenBrace$0 = $TV($EXPECT($L110, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
4107
4236
  return { $loc, token: $1 };
4108
4237
  });
4109
4238
  function OpenBrace(state) {
@@ -4115,7 +4244,7 @@ var require_parser = __commonJS({
4115
4244
  return OpenBrace$0(state);
4116
4245
  }
4117
4246
  }
4118
- var OpenBracket$0 = $TV($EXPECT($L112, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
4247
+ var OpenBracket$0 = $TV($EXPECT($L111, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
4119
4248
  return { $loc, token: $1 };
4120
4249
  });
4121
4250
  function OpenBracket(state) {
@@ -4127,7 +4256,7 @@ var require_parser = __commonJS({
4127
4256
  return OpenBracket$0(state);
4128
4257
  }
4129
4258
  }
4130
- var OpenParen$0 = $TV($EXPECT($L113, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
4259
+ var OpenParen$0 = $TV($EXPECT($L112, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
4131
4260
  return { $loc, token: $1 };
4132
4261
  });
4133
4262
  function OpenParen(state) {
@@ -4139,7 +4268,7 @@ var require_parser = __commonJS({
4139
4268
  return OpenParen$0(state);
4140
4269
  }
4141
4270
  }
4142
- var QuestionMark$0 = $TV($EXPECT($L114, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
4271
+ var QuestionMark$0 = $TV($EXPECT($L113, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
4143
4272
  return { $loc, token: $1 };
4144
4273
  });
4145
4274
  function QuestionMark(state) {
@@ -4151,7 +4280,7 @@ var require_parser = __commonJS({
4151
4280
  return QuestionMark$0(state);
4152
4281
  }
4153
4282
  }
4154
- var Return$0 = $TS($S($EXPECT($L115, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4283
+ var Return$0 = $TS($S($EXPECT($L114, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4155
4284
  return { $loc, token: $1 };
4156
4285
  });
4157
4286
  function Return(state) {
@@ -4175,7 +4304,7 @@ var require_parser = __commonJS({
4175
4304
  return Semicolon$0(state);
4176
4305
  }
4177
4306
  }
4178
- var SingleQuote$0 = $TV($EXPECT($L116, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
4307
+ var SingleQuote$0 = $TV($EXPECT($L115, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
4179
4308
  return { $loc, token: $1 };
4180
4309
  });
4181
4310
  function SingleQuote(state) {
@@ -4199,10 +4328,10 @@ var require_parser = __commonJS({
4199
4328
  return Star$0(state);
4200
4329
  }
4201
4330
  }
4202
- var Static$0 = $TV($EXPECT($L117, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
4331
+ var Static$0 = $TV($EXPECT($L116, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
4203
4332
  return { $loc, token: $1 };
4204
4333
  });
4205
- var Static$1 = $TS($S($EXPECT($L8, fail, 'Static "@"'), $N($EXPECT($L113, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
4334
+ var Static$1 = $TS($S($EXPECT($L8, fail, 'Static "@"'), $N($EXPECT($L112, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
4206
4335
  return { $loc, token: "static " };
4207
4336
  });
4208
4337
  function Static(state) {
@@ -4212,7 +4341,7 @@ var require_parser = __commonJS({
4212
4341
  return Static$0(state) || Static$1(state);
4213
4342
  }
4214
4343
  }
4215
- var SubstitutionStart$0 = $TV($EXPECT($L118, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
4344
+ var SubstitutionStart$0 = $TV($EXPECT($L117, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
4216
4345
  return { $loc, token: $1 };
4217
4346
  });
4218
4347
  function SubstitutionStart(state) {
@@ -4224,7 +4353,7 @@ var require_parser = __commonJS({
4224
4353
  return SubstitutionStart$0(state);
4225
4354
  }
4226
4355
  }
4227
- var Switch$0 = $TS($S($EXPECT($L119, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4356
+ var Switch$0 = $TS($S($EXPECT($L118, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4228
4357
  return { $loc, token: $1 };
4229
4358
  });
4230
4359
  function Switch(state) {
@@ -4236,7 +4365,7 @@ var require_parser = __commonJS({
4236
4365
  return Switch$0(state);
4237
4366
  }
4238
4367
  }
4239
- var Target$0 = $TV($EXPECT($L120, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
4368
+ var Target$0 = $TV($EXPECT($L119, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
4240
4369
  return { $loc, token: $1 };
4241
4370
  });
4242
4371
  function Target(state) {
@@ -4248,7 +4377,7 @@ var require_parser = __commonJS({
4248
4377
  return Target$0(state);
4249
4378
  }
4250
4379
  }
4251
- var Throw$0 = $TS($S($EXPECT($L121, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4380
+ var Throw$0 = $TS($S($EXPECT($L120, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4252
4381
  return { $loc, token: $1 };
4253
4382
  });
4254
4383
  function Throw(state) {
@@ -4260,7 +4389,7 @@ var require_parser = __commonJS({
4260
4389
  return Throw$0(state);
4261
4390
  }
4262
4391
  }
4263
- var TripleDoubleQuote$0 = $TV($EXPECT($L122, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
4392
+ var TripleDoubleQuote$0 = $TV($EXPECT($L121, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
4264
4393
  return { $loc, token: "`" };
4265
4394
  });
4266
4395
  function TripleDoubleQuote(state) {
@@ -4272,7 +4401,7 @@ var require_parser = __commonJS({
4272
4401
  return TripleDoubleQuote$0(state);
4273
4402
  }
4274
4403
  }
4275
- var TripleSingleQuote$0 = $TV($EXPECT($L123, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
4404
+ var TripleSingleQuote$0 = $TV($EXPECT($L122, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
4276
4405
  return { $loc, token: "`" };
4277
4406
  });
4278
4407
  function TripleSingleQuote(state) {
@@ -4284,7 +4413,7 @@ var require_parser = __commonJS({
4284
4413
  return TripleSingleQuote$0(state);
4285
4414
  }
4286
4415
  }
4287
- var TripleTick$0 = $TV($EXPECT($L124, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
4416
+ var TripleTick$0 = $TV($EXPECT($L123, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
4288
4417
  return { $loc, token: "`" };
4289
4418
  });
4290
4419
  function TripleTick(state) {
@@ -4296,7 +4425,7 @@ var require_parser = __commonJS({
4296
4425
  return TripleTick$0(state);
4297
4426
  }
4298
4427
  }
4299
- var Try$0 = $TV($EXPECT($L125, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
4428
+ var Try$0 = $TV($EXPECT($L124, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
4300
4429
  return { $loc, token: $1 };
4301
4430
  });
4302
4431
  function Try(state) {
@@ -4308,7 +4437,7 @@ var require_parser = __commonJS({
4308
4437
  return Try$0(state);
4309
4438
  }
4310
4439
  }
4311
- var Typeof$0 = $TS($S($EXPECT($L126, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4440
+ var Typeof$0 = $TS($S($EXPECT($L125, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4312
4441
  return { $loc, token: $1 };
4313
4442
  });
4314
4443
  function Typeof(state) {
@@ -4320,7 +4449,7 @@ var require_parser = __commonJS({
4320
4449
  return Typeof$0(state);
4321
4450
  }
4322
4451
  }
4323
- var Unless$0 = $TV($EXPECT($L127, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
4452
+ var Unless$0 = $TV($EXPECT($L126, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
4324
4453
  return { $loc, token: $1 };
4325
4454
  });
4326
4455
  function Unless(state) {
@@ -4332,6 +4461,18 @@ var require_parser = __commonJS({
4332
4461
  return Unless$0(state);
4333
4462
  }
4334
4463
  }
4464
+ var Until$0 = $TS($S($EXPECT($L127, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4465
+ return { $loc, token: $1 };
4466
+ });
4467
+ function Until(state) {
4468
+ if (state.verbose)
4469
+ console.log("ENTER:", "Until");
4470
+ if (state.tokenize) {
4471
+ return $TOKEN("Until", state, Until$0(state));
4472
+ } else {
4473
+ return Until$0(state);
4474
+ }
4475
+ }
4335
4476
  var Var$0 = $TV($EXPECT($L128, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
4336
4477
  return { $loc, token: $1 };
4337
4478
  });
@@ -4368,7 +4509,19 @@ var require_parser = __commonJS({
4368
4509
  return When$0(state);
4369
4510
  }
4370
4511
  }
4371
- var Yield$0 = $TS($S($EXPECT($L131, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4512
+ var While$0 = $TS($S($EXPECT($L131, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4513
+ return { $loc, token: $1 };
4514
+ });
4515
+ function While(state) {
4516
+ if (state.verbose)
4517
+ console.log("ENTER:", "While");
4518
+ if (state.tokenize) {
4519
+ return $TOKEN("While", state, While$0(state));
4520
+ } else {
4521
+ return While$0(state);
4522
+ }
4523
+ }
4524
+ var Yield$0 = $TS($S($EXPECT($L132, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4372
4525
  return { $loc, token: $1 };
4373
4526
  });
4374
4527
  function Yield(state) {
@@ -4394,7 +4547,7 @@ var require_parser = __commonJS({
4394
4547
  return JSXElement$0(state) || JSXElement$1(state);
4395
4548
  }
4396
4549
  }
4397
- var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L132, fail, 'JSXSelfClosingElement "/>"'));
4550
+ var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L133, fail, 'JSXSelfClosingElement "/>"'));
4398
4551
  function JSXSelfClosingElement(state) {
4399
4552
  if (state.verbose)
4400
4553
  console.log("ENTER:", "JSXSelfClosingElement");
@@ -4414,7 +4567,7 @@ var require_parser = __commonJS({
4414
4567
  return JSXOpeningElement$0(state);
4415
4568
  }
4416
4569
  }
4417
- var JSXClosingElement$0 = $S($EXPECT($L133, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L55, fail, 'JSXClosingElement ">"'));
4570
+ var JSXClosingElement$0 = $S($EXPECT($L134, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L55, fail, 'JSXClosingElement ">"'));
4418
4571
  function JSXClosingElement(state) {
4419
4572
  if (state.verbose)
4420
4573
  console.log("ENTER:", "JSXClosingElement");
@@ -4424,7 +4577,7 @@ var require_parser = __commonJS({
4424
4577
  return JSXClosingElement$0(state);
4425
4578
  }
4426
4579
  }
4427
- var JSXFragment$0 = $S($EXPECT($L134, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L135, fail, 'JSXFragment "</>"'));
4580
+ var JSXFragment$0 = $S($EXPECT($L135, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L136, fail, 'JSXFragment "</>"'));
4428
4581
  function JSXFragment(state) {
4429
4582
  if (state.verbose)
4430
4583
  console.log("ENTER:", "JSXFragment");
@@ -4558,7 +4711,7 @@ var require_parser = __commonJS({
4558
4711
  return TypeDeclaration$0(state);
4559
4712
  }
4560
4713
  }
4561
- var TypeDeclarationModifier$0 = $S($EXPECT($L136, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
4714
+ var TypeDeclarationModifier$0 = $S($EXPECT($L137, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
4562
4715
  var TypeDeclarationModifier$1 = Export;
4563
4716
  function TypeDeclarationModifier(state) {
4564
4717
  if (state.tokenize) {
@@ -4578,7 +4731,7 @@ var require_parser = __commonJS({
4578
4731
  return TypeDeclarationRest$0(state) || TypeDeclarationRest$1(state) || TypeDeclarationRest$2(state) || TypeDeclarationRest$3(state);
4579
4732
  }
4580
4733
  }
4581
- var TypeKeyword$0 = $S($EXPECT($L137, fail, 'TypeKeyword "type"'), NonIdContinue);
4734
+ var TypeKeyword$0 = $S($EXPECT($L138, fail, 'TypeKeyword "type"'), NonIdContinue);
4582
4735
  function TypeKeyword(state) {
4583
4736
  if (state.verbose)
4584
4737
  console.log("ENTER:", "TypeKeyword");
@@ -4588,7 +4741,7 @@ var require_parser = __commonJS({
4588
4741
  return TypeKeyword$0(state);
4589
4742
  }
4590
4743
  }
4591
- var Interface$0 = $S($EXPECT($L138, fail, 'Interface "interface"'), NonIdContinue);
4744
+ var Interface$0 = $S($EXPECT($L139, fail, 'Interface "interface"'), NonIdContinue);
4592
4745
  function Interface(state) {
4593
4746
  if (state.verbose)
4594
4747
  console.log("ENTER:", "Interface");
@@ -4598,7 +4751,7 @@ var require_parser = __commonJS({
4598
4751
  return Interface$0(state);
4599
4752
  }
4600
4753
  }
4601
- var Namespace$0 = $S($EXPECT($L139, fail, 'Namespace "namespace"'), NonIdContinue);
4754
+ var Namespace$0 = $S($EXPECT($L140, fail, 'Namespace "namespace"'), NonIdContinue);
4602
4755
  function Namespace(state) {
4603
4756
  if (state.verbose)
4604
4757
  console.log("ENTER:", "Namespace");
@@ -4698,7 +4851,7 @@ var require_parser = __commonJS({
4698
4851
  return NestedTypeDeclaration$0(state);
4699
4852
  }
4700
4853
  }
4701
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R37, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L140, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4854
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R37, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L141, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4702
4855
  function TypeIndexSignature(state) {
4703
4856
  if (state.verbose)
4704
4857
  console.log("ENTER:", "TypeIndexSignature");
@@ -4729,7 +4882,7 @@ var require_parser = __commonJS({
4729
4882
  return TypeSuffix$0(state);
4730
4883
  }
4731
4884
  }
4732
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L141, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
4885
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L142, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
4733
4886
  if (!$3)
4734
4887
  $0.splice(2, 1);
4735
4888
  if ($1.length === 0)
@@ -4812,9 +4965,9 @@ var require_parser = __commonJS({
4812
4965
  return TypeUnarySuffix$0(state) || TypeUnarySuffix$1(state);
4813
4966
  }
4814
4967
  }
4815
- var TypeUnaryOp$0 = $EXPECT($L142, fail, 'TypeUnaryOp "keyof"');
4816
- var TypeUnaryOp$1 = $EXPECT($L126, fail, 'TypeUnaryOp "typeof"');
4817
- var TypeUnaryOp$2 = $EXPECT($L143, fail, 'TypeUnaryOp "infer"');
4968
+ var TypeUnaryOp$0 = $EXPECT($L143, fail, 'TypeUnaryOp "keyof"');
4969
+ var TypeUnaryOp$1 = $EXPECT($L125, fail, 'TypeUnaryOp "typeof"');
4970
+ var TypeUnaryOp$2 = $EXPECT($L144, fail, 'TypeUnaryOp "infer"');
4818
4971
  function TypeUnaryOp(state) {
4819
4972
  if (state.tokenize) {
4820
4973
  return $TOKEN("TypeUnaryOp", state, TypeUnaryOp$0(state) || TypeUnaryOp$1(state) || TypeUnaryOp$2(state));
@@ -4907,7 +5060,7 @@ var require_parser = __commonJS({
4907
5060
  var TypeLiteral$1 = $TV($EXPECT($L129, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
4908
5061
  return { $loc, token: "void" };
4909
5062
  });
4910
- var TypeLiteral$2 = $TV($EXPECT($L144, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
5063
+ var TypeLiteral$2 = $TV($EXPECT($L145, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
4911
5064
  return { $loc, token: "[]" };
4912
5065
  });
4913
5066
  function TypeLiteral(state) {
@@ -5022,7 +5175,7 @@ var require_parser = __commonJS({
5022
5175
  return CivetPrologue$0(state) || CivetPrologue$1(state);
5023
5176
  }
5024
5177
  }
5025
- var CivetPrologueContent$0 = $TS($S($EXPECT($L145, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R41, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
5178
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L146, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R41, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
5026
5179
  var options = $2;
5027
5180
  return {
5028
5181
  type: "CivetPrologue",
@@ -5405,6 +5558,16 @@ var require_parser = __commonJS({
5405
5558
  insertReturn(block);
5406
5559
  return block;
5407
5560
  };
5561
+ module2.isWhitespaceOrEmpty = function(node) {
5562
+ if (!node)
5563
+ return true;
5564
+ if (!node.length)
5565
+ return true;
5566
+ if (typeof node === "string")
5567
+ return node.match(/^\s*$/);
5568
+ if (Array.isArray(node))
5569
+ return node.every(module2.isWhitespaceOrEmpty);
5570
+ };
5408
5571
  module2.expandChainedComparisons = function([first, binops]) {
5409
5572
  const relationalOps = ["==", "===", "!=", "!==", "<", "<=", ">", ">=", "in", "instanceof"];
5410
5573
  const lowerPrecedenceOps = ["??", "&&", "||", "&", "|", "^"];
@@ -5485,6 +5648,7 @@ var require_parser = __commonJS({
5485
5648
  }
5486
5649
  return spacing;
5487
5650
  };
5651
+ const initialSpacingRe = /^(?:\r?\n|\n)*((?:\r?\n|\n)\s+)/;
5488
5652
  module2.dedentBlockSubstitutions = function($02) {
5489
5653
  const [s, strWithSubstitutions, e] = $02;
5490
5654
  if (strWithSubstitutions.length === 0) {
@@ -5493,7 +5657,7 @@ var require_parser = __commonJS({
5493
5657
  let initialSpacing, i = 0, l = strWithSubstitutions.length, results = [s];
5494
5658
  const { token } = strWithSubstitutions[0];
5495
5659
  if (token) {
5496
- initialSpacing = token.match(/^(\r?\n|\n)\s+/);
5660
+ initialSpacing = token.match(initialSpacingRe);
5497
5661
  } else {
5498
5662
  initialSpacing = false;
5499
5663
  }
@@ -5518,9 +5682,9 @@ var require_parser = __commonJS({
5518
5682
  };
5519
5683
  module2.dedentBlockString = function({ $loc: $loc2, token: str }, spacing, trim = true) {
5520
5684
  if (spacing == null)
5521
- spacing = str.match(/^(\r?\n|\n)[ \t]+/);
5685
+ spacing = str.match(initialSpacingRe);
5522
5686
  if (spacing) {
5523
- str = str.replaceAll(spacing[0], "\n");
5687
+ str = str.replaceAll(spacing[1], "\n");
5524
5688
  const l = spacing.length;
5525
5689
  $loc2.pos += l;
5526
5690
  $loc2.length -= l;
@@ -5545,7 +5709,7 @@ var require_parser = __commonJS({
5545
5709
  return Init$0(state);
5546
5710
  }
5547
5711
  }
5548
- var Indent$0 = $TV($Q($C($EXPECT($L146, fail, 'Indent " "'), $EXPECT($L147, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
5712
+ var Indent$0 = $TV($Q($C($EXPECT($L147, fail, 'Indent " "'), $EXPECT($L148, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
5549
5713
  const level = $1.length;
5550
5714
  return {
5551
5715
  $loc,