@danielx/civet 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -409,6 +409,8 @@ var require_parser = __commonJS({
409
409
  Expression,
410
410
  Arguments,
411
411
  ArgumentList,
412
+ NestedArgumentList,
413
+ NestedArgument,
412
414
  CommaExpression,
413
415
  BinaryOpExpression,
414
416
  UnaryExpression,
@@ -579,14 +581,41 @@ var require_parser = __commonJS({
579
581
  _,
580
582
  __,
581
583
  StatementDelimiter,
584
+ JSXElement,
585
+ JSXSelfClosingElement,
586
+ JSXOpeningElement,
587
+ JSXClosingElement,
588
+ JSXFragment,
589
+ JSXElementName,
590
+ JSXIdentifierName,
591
+ JSXAttributes,
592
+ JSXAttribute,
593
+ JSXAttributeName,
594
+ JSXAttributeInitializer,
595
+ JSXAttributeValue,
596
+ JSXChildren,
597
+ JSXChild,
598
+ JSXText,
599
+ JSXChildExpression,
582
600
  TypeDeclaration,
583
601
  InterfaceBlock,
584
602
  NestedInterfaceProperties,
585
603
  NestedInterfaceProperty,
586
604
  TypeSuffix,
587
605
  Type,
606
+ TypeBinary,
607
+ TypeUnary,
608
+ TypeUnaryOp,
609
+ TypePrimary,
610
+ TypeConditional,
611
+ TypeLiteral,
612
+ TypeBinaryOp,
588
613
  FunctionType,
589
614
  TypeArguments,
615
+ TypeParameters,
616
+ TypeParameter,
617
+ TypeConstraint,
618
+ TypeParameterDelimiter,
590
619
  Shebang,
591
620
  DirectivePrologue,
592
621
  EOS,
@@ -720,19 +749,24 @@ var require_parser = __commonJS({
720
749
  var $L110 = $L("as");
721
750
  var $L111 = $L("from");
722
751
  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(" ");
752
+ var $L113 = $L(":=");
753
+ var $L114 = $L('"""');
754
+ var $L115 = $L('"');
755
+ var $L116 = $L("'");
756
+ var $L117 = $L("\\");
757
+ var $L118 = $L("`");
758
+ var $L119 = $L("${");
759
+ var $L120 = $L("/*");
760
+ var $L121 = $L("*/");
761
+ var $L122 = $L("###");
762
+ var $L123 = $L("/>");
763
+ var $L124 = $L("</");
764
+ var $L125 = $L("<>");
765
+ var $L126 = $L("</>");
766
+ var $L127 = $L("infer");
767
+ var $L128 = $L("[]");
768
+ var $L129 = $L(" ");
769
+ var $L130 = $L(" ");
736
770
  var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue})", "suy"));
737
771
  var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
738
772
  var $R2 = $R(new RegExp("\\p{ID_Continue}", "suy"));
@@ -756,10 +790,17 @@ var require_parser = __commonJS({
756
790
  var $R20 = $R(new RegExp("[^\\r\\n]", "suy"));
757
791
  var $R21 = $R(new RegExp("[\\t ]+", "suy"));
758
792
  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"));
793
+ var $R23 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
794
+ var $R24 = $R(new RegExp('"[^"]*"', "suy"));
795
+ var $R25 = $R(new RegExp("'[^']*'", "suy"));
796
+ var $R26 = $R(new RegExp("[^{}<>]+", "suy"));
797
+ var $R27 = $R(new RegExp("type(?!\\p{ID_Continue})", "suy"));
798
+ var $R28 = $R(new RegExp("interface(?!\\p{ID_Continue})", "suy"));
799
+ var $R29 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
800
+ var $R30 = $R(new RegExp("#![^\\r\\n]*", "suy"));
801
+ var $R31 = $R(new RegExp("[\\t ]*", "suy"));
802
+ var $R32 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
803
+ var $R33 = $R(new RegExp("$", "suy"));
763
804
  var Program$0 = $S(Init, __, $Q(TopLevelStatement), __);
764
805
  function Program(state) {
765
806
  if (state.verbose)
@@ -790,7 +831,7 @@ var require_parser = __commonJS({
790
831
  return Expression$0(state);
791
832
  }
792
833
  }
793
- var Arguments$0 = $S($EXPECT($L1, fail, 'Arguments "("'), $C(ArgumentList, __), $E($S($EXPECT($L0, fail, 'Arguments ","'), __)), $EXPECT($L2, fail, 'Arguments ")"'));
834
+ var Arguments$0 = $S($EXPECT($L1, fail, 'Arguments "("'), $E(ArgumentList), $E($S(__, $EXPECT($L0, fail, 'Arguments ","'))), __, $EXPECT($L2, fail, 'Arguments ")"'));
794
835
  function Arguments(state) {
795
836
  if (state.verbose)
796
837
  console.log("ENTER:", "Arguments");
@@ -800,14 +841,38 @@ var require_parser = __commonJS({
800
841
  return Arguments$0(state);
801
842
  }
802
843
  }
803
- var ArgumentList$0 = $S(Expression, $Q(CommaExpression));
844
+ var ArgumentList$0 = $S($Y(EOS), NestedArgumentList);
845
+ var ArgumentList$1 = $S(__, Expression, $Q(CommaExpression));
804
846
  function ArgumentList(state) {
847
+ if (state.tokenize) {
848
+ return $TOKEN("ArgumentList", state, ArgumentList$0(state) || ArgumentList$1(state));
849
+ } else {
850
+ return ArgumentList$0(state) || ArgumentList$1(state);
851
+ }
852
+ }
853
+ var NestedArgumentList$0 = $TS($S(PushIndent, $Q(NestedArgument), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
854
+ var args = $2;
855
+ if (args.length)
856
+ return args;
857
+ return $skip;
858
+ });
859
+ function NestedArgumentList(state) {
805
860
  if (state.verbose)
806
- console.log("ENTER:", "ArgumentList");
861
+ console.log("ENTER:", "NestedArgumentList");
807
862
  if (state.tokenize) {
808
- return $TOKEN("ArgumentList", state, ArgumentList$0(state));
863
+ return $TOKEN("NestedArgumentList", state, NestedArgumentList$0(state));
809
864
  } else {
810
- return ArgumentList$0(state);
865
+ return NestedArgumentList$0(state);
866
+ }
867
+ }
868
+ var NestedArgument$0 = $S(Nested, Expression, ParameterElementDelimiter);
869
+ function NestedArgument(state) {
870
+ if (state.verbose)
871
+ console.log("ENTER:", "NestedArgument");
872
+ if (state.tokenize) {
873
+ return $TOKEN("NestedArgument", state, NestedArgument$0(state));
874
+ } else {
875
+ return NestedArgument$0(state);
811
876
  }
812
877
  }
813
878
  var CommaExpression$0 = $S(__, $EXPECT($L0, fail, 'CommaExpression ","'), __, Expression);
@@ -946,11 +1011,13 @@ var require_parser = __commonJS({
946
1011
  var PrimaryExpression$7 = RegularExpressionLiteral;
947
1012
  var PrimaryExpression$8 = TemplateLiteral;
948
1013
  var PrimaryExpression$9 = $S($EXPECT($L1, fail, 'PrimaryExpression "("'), __, Expression, __, $EXPECT($L2, fail, 'PrimaryExpression ")"'));
1014
+ var PrimaryExpression$10 = JSXElement;
1015
+ var PrimaryExpression$11 = JSXFragment;
949
1016
  function PrimaryExpression(state) {
950
1017
  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));
1018
+ 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) || PrimaryExpression$10(state) || PrimaryExpression$11(state));
952
1019
  } 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);
1020
+ 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) || PrimaryExpression$10(state) || PrimaryExpression$11(state);
954
1021
  }
955
1022
  }
956
1023
  var ClassDeclaration$0 = ClassExpression;
@@ -2137,9 +2204,9 @@ var require_parser = __commonJS({
2137
2204
  var KeywordStatement$0 = $EXPECT($L104, fail, 'KeywordStatement "break"');
2138
2205
  var KeywordStatement$1 = $EXPECT($L105, fail, 'KeywordStatement "continue"');
2139
2206
  var KeywordStatement$2 = $EXPECT($L106, fail, 'KeywordStatement "debugger"');
2140
- var KeywordStatement$3 = $S($EXPECT($L107, fail, 'KeywordStatement "return"'), $P(_), Expression);
2207
+ var KeywordStatement$3 = $S($EXPECT($L107, fail, 'KeywordStatement "return"'), Expression);
2141
2208
  var KeywordStatement$4 = $EXPECT($L107, fail, 'KeywordStatement "return"');
2142
- var KeywordStatement$5 = $S($EXPECT($L108, fail, 'KeywordStatement "throw"'), $P(_), Expression);
2209
+ var KeywordStatement$5 = $S($EXPECT($L108, fail, 'KeywordStatement "throw"'), Expression);
2143
2210
  function KeywordStatement(state) {
2144
2211
  if (state.tokenize) {
2145
2212
  return $TOKEN("KeywordStatement", state, KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state) || KeywordStatement$5(state));
@@ -2299,13 +2366,18 @@ var require_parser = __commonJS({
2299
2366
  }
2300
2367
  }
2301
2368
  var LexicalDeclaration$0 = $S($C($EXPECT($L95, fail, 'LexicalDeclaration "let"'), $EXPECT($L96, fail, 'LexicalDeclaration "const"')), __, LexicalBinding, $Q($S(__, $EXPECT($L0, fail, 'LexicalDeclaration ","'), __, LexicalBinding)));
2369
+ var LexicalDeclaration$1 = $T($S($C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, $EXPECT($L113, fail, 'LexicalDeclaration ":="'), AssignmentExpression), function(value) {
2370
+ var bind = value[0];
2371
+ var suffix = value[1];
2372
+ var ws = value[2];
2373
+ var exp = value[4];
2374
+ return ["const ", bind, suffix, ws, "=", exp];
2375
+ });
2302
2376
  function LexicalDeclaration(state) {
2303
- if (state.verbose)
2304
- console.log("ENTER:", "LexicalDeclaration");
2305
2377
  if (state.tokenize) {
2306
- return $TOKEN("LexicalDeclaration", state, LexicalDeclaration$0(state));
2378
+ return $TOKEN("LexicalDeclaration", state, LexicalDeclaration$0(state) || LexicalDeclaration$1(state));
2307
2379
  } else {
2308
- return LexicalDeclaration$0(state);
2380
+ return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
2309
2381
  }
2310
2382
  }
2311
2383
  var LexicalBinding$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
@@ -2418,11 +2490,11 @@ var require_parser = __commonJS({
2418
2490
  return HexLiteral$0(state);
2419
2491
  }
2420
2492
  }
2421
- var StringLiteral$0 = $T($S($EXPECT($L113, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""'), $TEXT($Q(TripleDoubleStringCharacter)), $EXPECT($L113, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""')), function(value) {
2493
+ var StringLiteral$0 = $T($S($EXPECT($L114, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""'), $TEXT($Q(TripleDoubleStringCharacter)), $EXPECT($L114, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""')), function(value) {
2422
2494
  return ["`", value[1], "`"];
2423
2495
  });
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 "\\\\'"`));
2496
+ var StringLiteral$1 = $S($EXPECT($L115, fail, 'StringLiteral "\\\\\\""'), $TEXT($Q(DoubleStringCharacter)), $EXPECT($L115, fail, 'StringLiteral "\\\\\\""'));
2497
+ var StringLiteral$2 = $S($EXPECT($L116, fail, `StringLiteral "\\\\'"`), $TEXT($Q(SingleStringCharacter)), $EXPECT($L116, fail, `StringLiteral "\\\\'"`));
2426
2498
  function StringLiteral(state) {
2427
2499
  if (state.tokenize) {
2428
2500
  return $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state));
@@ -2458,7 +2530,7 @@ var require_parser = __commonJS({
2458
2530
  return TripleDoubleStringCharacter$0(state);
2459
2531
  }
2460
2532
  }
2461
- var EscapeSequence$0 = $TEXT($S($EXPECT($L116, fail, 'EscapeSequence "\\\\\\\\"'), $EXPECT($R12, fail, "EscapeSequence /./")));
2533
+ var EscapeSequence$0 = $TEXT($S($EXPECT($L117, fail, 'EscapeSequence "\\\\\\\\"'), $EXPECT($R12, fail, "EscapeSequence /./")));
2462
2534
  function EscapeSequence(state) {
2463
2535
  if (state.verbose)
2464
2536
  console.log("ENTER:", "EscapeSequence");
@@ -2507,7 +2579,7 @@ var require_parser = __commonJS({
2507
2579
  return RegularExpressionFlags$0(state);
2508
2580
  }
2509
2581
  }
2510
- var TemplateLiteral$0 = $S($EXPECT($L117, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L117, fail, 'TemplateLiteral "`"'));
2582
+ var TemplateLiteral$0 = $S($EXPECT($L118, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L118, fail, 'TemplateLiteral "`"'));
2511
2583
  function TemplateLiteral(state) {
2512
2584
  if (state.verbose)
2513
2585
  console.log("ENTER:", "TemplateLiteral");
@@ -2517,7 +2589,7 @@ var require_parser = __commonJS({
2517
2589
  return TemplateLiteral$0(state);
2518
2590
  }
2519
2591
  }
2520
- var TemplateSubstitution$0 = $S($EXPECT($L118, fail, 'TemplateSubstitution "${"'), __, Expression, __, $EXPECT($L15, fail, 'TemplateSubstitution "}"'));
2592
+ var TemplateSubstitution$0 = $S($EXPECT($L119, fail, 'TemplateSubstitution "${"'), __, Expression, __, $EXPECT($L15, fail, 'TemplateSubstitution "}"'));
2521
2593
  function TemplateSubstitution(state) {
2522
2594
  if (state.verbose)
2523
2595
  console.log("ENTER:", "TemplateSubstitution");
@@ -2574,7 +2646,7 @@ var require_parser = __commonJS({
2574
2646
  return MultiLineComment$0(state) || MultiLineComment$1(state);
2575
2647
  }
2576
2648
  }
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 "*/"'));
2649
+ var JSMultiLineComment$0 = $S($EXPECT($L120, fail, 'JSMultiLineComment "/*"'), $TEXT($Q($S($N($EXPECT($L121, fail, 'JSMultiLineComment "*/"')), $EXPECT($R12, fail, "JSMultiLineComment /./")))), $EXPECT($L121, fail, 'JSMultiLineComment "*/"'));
2578
2650
  function JSMultiLineComment(state) {
2579
2651
  if (state.verbose)
2580
2652
  console.log("ENTER:", "JSMultiLineComment");
@@ -2598,7 +2670,7 @@ var require_parser = __commonJS({
2598
2670
  return CoffeeSingleLineComment$0(state);
2599
2671
  }
2600
2672
  }
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) {
2673
+ var CoffeeMultiLineComment$0 = $T($S($EXPECT($L122, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($EXPECT($L122, fail, 'CoffeeMultiLineComment "###"')), $EXPECT($R12, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L122, fail, 'CoffeeMultiLineComment "###"')), function(value) {
2602
2674
  return ["/*", value[1], "*/"];
2603
2675
  });
2604
2676
  function CoffeeMultiLineComment(state) {
@@ -2610,7 +2682,7 @@ var require_parser = __commonJS({
2610
2682
  return CoffeeMultiLineComment$0(state);
2611
2683
  }
2612
2684
  }
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 "*/"'));
2685
+ var InlineComment$0 = $S($EXPECT($L120, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L121, fail, 'InlineComment "*/"')), $EXPECT($R20, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L121, fail, 'InlineComment "*/"'));
2614
2686
  function InlineComment(state) {
2615
2687
  if (state.verbose)
2616
2688
  console.log("ENTER:", "InlineComment");
@@ -2671,16 +2743,184 @@ var require_parser = __commonJS({
2671
2743
  return StatementDelimiter$0(state) || StatementDelimiter$1(state);
2672
2744
  }
2673
2745
  }
2674
- var TypeDeclaration$0 = $T($S($EXPECT($L122, fail, 'TypeDeclaration "interface"'), $Q(TrailingComment), IdentifierName, InterfaceBlock), function(value) {
2746
+ var JSXElement$0 = JSXSelfClosingElement;
2747
+ var JSXElement$1 = $TS($S(JSXOpeningElement, $Q(JSXChildren), __, JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
2748
+ if ($1[1] !== $4[2]) {
2749
+ console.log($1, $4, $loc);
2750
+ throw new Error(`mismatched closing tags at ${JSON.stringify($loc)}`);
2751
+ }
2752
+ return $0;
2753
+ });
2754
+ function JSXElement(state) {
2755
+ if (state.tokenize) {
2756
+ return $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state));
2757
+ } else {
2758
+ return JSXElement$0(state) || JSXElement$1(state);
2759
+ }
2760
+ }
2761
+ var JSXSelfClosingElement$0 = $S($EXPECT($L13, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L123, fail, 'JSXSelfClosingElement "/>"'));
2762
+ function JSXSelfClosingElement(state) {
2763
+ if (state.verbose)
2764
+ console.log("ENTER:", "JSXSelfClosingElement");
2765
+ if (state.tokenize) {
2766
+ return $TOKEN("JSXSelfClosingElement", state, JSXSelfClosingElement$0(state));
2767
+ } else {
2768
+ return JSXSelfClosingElement$0(state);
2769
+ }
2770
+ }
2771
+ var JSXOpeningElement$0 = $S($EXPECT($L13, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L65, fail, 'JSXOpeningElement ">"'));
2772
+ function JSXOpeningElement(state) {
2773
+ if (state.verbose)
2774
+ console.log("ENTER:", "JSXOpeningElement");
2775
+ if (state.tokenize) {
2776
+ return $TOKEN("JSXOpeningElement", state, JSXOpeningElement$0(state));
2777
+ } else {
2778
+ return JSXOpeningElement$0(state);
2779
+ }
2780
+ }
2781
+ var JSXClosingElement$0 = $S($EXPECT($L124, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L65, fail, 'JSXClosingElement ">"'));
2782
+ function JSXClosingElement(state) {
2783
+ if (state.verbose)
2784
+ console.log("ENTER:", "JSXClosingElement");
2785
+ if (state.tokenize) {
2786
+ return $TOKEN("JSXClosingElement", state, JSXClosingElement$0(state));
2787
+ } else {
2788
+ return JSXClosingElement$0(state);
2789
+ }
2790
+ }
2791
+ var JSXFragment$0 = $S($EXPECT($L125, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L126, fail, 'JSXFragment "</>"'));
2792
+ function JSXFragment(state) {
2793
+ if (state.verbose)
2794
+ console.log("ENTER:", "JSXFragment");
2795
+ if (state.tokenize) {
2796
+ return $TOKEN("JSXFragment", state, JSXFragment$0(state));
2797
+ } else {
2798
+ return JSXFragment$0(state);
2799
+ }
2800
+ }
2801
+ var JSXElementName$0 = $S(JSXIdentifierName, $C($S($EXPECT($L11, fail, 'JSXElementName ":"'), JSXIdentifierName), $Q($S($EXPECT($L25, fail, 'JSXElementName "."'), JSXIdentifierName))));
2802
+ function JSXElementName(state) {
2803
+ if (state.verbose)
2804
+ console.log("ENTER:", "JSXElementName");
2805
+ if (state.tokenize) {
2806
+ return $TOKEN("JSXElementName", state, JSXElementName$0(state));
2807
+ } else {
2808
+ return JSXElementName$0(state);
2809
+ }
2810
+ }
2811
+ var JSXIdentifierName$0 = $R$0($EXPECT($R23, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
2812
+ function JSXIdentifierName(state) {
2813
+ if (state.verbose)
2814
+ console.log("ENTER:", "JSXIdentifierName");
2815
+ if (state.tokenize) {
2816
+ return $TOKEN("JSXIdentifierName", state, JSXIdentifierName$0(state));
2817
+ } else {
2818
+ return JSXIdentifierName$0(state);
2819
+ }
2820
+ }
2821
+ var JSXAttributes$0 = $Q($S(__, JSXAttribute));
2822
+ function JSXAttributes(state) {
2823
+ if (state.verbose)
2824
+ console.log("ENTER:", "JSXAttributes");
2825
+ if (state.tokenize) {
2826
+ return $TOKEN("JSXAttributes", state, JSXAttributes$0(state));
2827
+ } else {
2828
+ return JSXAttributes$0(state);
2829
+ }
2830
+ }
2831
+ var JSXAttribute$0 = $S($EXPECT($L10, fail, 'JSXAttribute "{"'), __, $EXPECT($L30, fail, 'JSXAttribute "..."'), __, AssignmentExpression, __, $EXPECT($L15, fail, 'JSXAttribute "}"'));
2832
+ var JSXAttribute$1 = $S(JSXAttributeName, $E(JSXAttributeInitializer));
2833
+ function JSXAttribute(state) {
2834
+ if (state.tokenize) {
2835
+ return $TOKEN("JSXAttribute", state, JSXAttribute$0(state) || JSXAttribute$1(state));
2836
+ } else {
2837
+ return JSXAttribute$0(state) || JSXAttribute$1(state);
2838
+ }
2839
+ }
2840
+ var JSXAttributeName$0 = $S(JSXIdentifierName, $E($S($EXPECT($L11, fail, 'JSXAttributeName ":"'), JSXIdentifierName)));
2841
+ function JSXAttributeName(state) {
2842
+ if (state.verbose)
2843
+ console.log("ENTER:", "JSXAttributeName");
2844
+ if (state.tokenize) {
2845
+ return $TOKEN("JSXAttributeName", state, JSXAttributeName$0(state));
2846
+ } else {
2847
+ return JSXAttributeName$0(state);
2848
+ }
2849
+ }
2850
+ var JSXAttributeInitializer$0 = $S(__, $EXPECT($L54, fail, 'JSXAttributeInitializer "="'), __, JSXAttributeValue);
2851
+ function JSXAttributeInitializer(state) {
2852
+ if (state.verbose)
2853
+ console.log("ENTER:", "JSXAttributeInitializer");
2854
+ if (state.tokenize) {
2855
+ return $TOKEN("JSXAttributeInitializer", state, JSXAttributeInitializer$0(state));
2856
+ } else {
2857
+ return JSXAttributeInitializer$0(state);
2858
+ }
2859
+ }
2860
+ var JSXAttributeValue$0 = $R$0($EXPECT($R24, fail, 'JSXAttributeValue /"[^"]*"/'));
2861
+ var JSXAttributeValue$1 = $R$0($EXPECT($R25, fail, "JSXAttributeValue /'[^']*'/"));
2862
+ var JSXAttributeValue$2 = $S($EXPECT($L10, fail, 'JSXAttributeValue "{"'), __, AssignmentExpression, __, $EXPECT($L15, fail, 'JSXAttributeValue "}"'));
2863
+ var JSXAttributeValue$3 = JSXElement;
2864
+ var JSXAttributeValue$4 = JSXFragment;
2865
+ function JSXAttributeValue(state) {
2866
+ if (state.tokenize) {
2867
+ return $TOKEN("JSXAttributeValue", state, JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state));
2868
+ } else {
2869
+ return JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state);
2870
+ }
2871
+ }
2872
+ var JSXChildren$0 = $Q($S(__, JSXChild));
2873
+ function JSXChildren(state) {
2874
+ if (state.verbose)
2875
+ console.log("ENTER:", "JSXChildren");
2876
+ if (state.tokenize) {
2877
+ return $TOKEN("JSXChildren", state, JSXChildren$0(state));
2878
+ } else {
2879
+ return JSXChildren$0(state);
2880
+ }
2881
+ }
2882
+ var JSXChild$0 = JSXText;
2883
+ var JSXChild$1 = JSXElement;
2884
+ var JSXChild$2 = JSXFragment;
2885
+ var JSXChild$3 = $S($EXPECT($L10, fail, 'JSXChild "{"'), $E(JSXChildExpression), __, $EXPECT($L15, fail, 'JSXChild "}"'));
2886
+ function JSXChild(state) {
2887
+ if (state.tokenize) {
2888
+ return $TOKEN("JSXChild", state, JSXChild$0(state) || JSXChild$1(state) || JSXChild$2(state) || JSXChild$3(state));
2889
+ } else {
2890
+ return JSXChild$0(state) || JSXChild$1(state) || JSXChild$2(state) || JSXChild$3(state);
2891
+ }
2892
+ }
2893
+ var JSXText$0 = $R$0($EXPECT($R26, fail, "JSXText /[^{}<>]+/"));
2894
+ function JSXText(state) {
2895
+ if (state.verbose)
2896
+ console.log("ENTER:", "JSXText");
2897
+ if (state.tokenize) {
2898
+ return $TOKEN("JSXText", state, JSXText$0(state));
2899
+ } else {
2900
+ return JSXText$0(state);
2901
+ }
2902
+ }
2903
+ var JSXChildExpression$0 = $S(__, $E($S($EXPECT($L30, fail, 'JSXChildExpression "..."'), __)), AssignmentExpression);
2904
+ function JSXChildExpression(state) {
2905
+ if (state.verbose)
2906
+ console.log("ENTER:", "JSXChildExpression");
2907
+ if (state.tokenize) {
2908
+ return $TOKEN("JSXChildExpression", state, JSXChildExpression$0(state));
2909
+ } else {
2910
+ return JSXChildExpression$0(state);
2911
+ }
2912
+ }
2913
+ var TypeDeclaration$0 = $T($S($EXPECT($R27, fail, "TypeDeclaration /type(?!\\p{ID_Continue})/"), $Q(TrailingComment), IdentifierName, $E(TypeParameters), __, $EXPECT($L54, fail, 'TypeDeclaration "="'), __, Type), function(value) {
2914
+ return { "ts": true, "children": value };
2915
+ });
2916
+ var TypeDeclaration$1 = $T($S($EXPECT($R28, fail, "TypeDeclaration /interface(?!\\p{ID_Continue})/"), $Q(TrailingComment), IdentifierName, InterfaceBlock), function(value) {
2675
2917
  return { "ts": true, "children": value };
2676
2918
  });
2677
2919
  function TypeDeclaration(state) {
2678
- if (state.verbose)
2679
- console.log("ENTER:", "TypeDeclaration");
2680
2920
  if (state.tokenize) {
2681
- return $TOKEN("TypeDeclaration", state, TypeDeclaration$0(state));
2921
+ return $TOKEN("TypeDeclaration", state, TypeDeclaration$0(state) || TypeDeclaration$1(state));
2682
2922
  } else {
2683
- return TypeDeclaration$0(state);
2923
+ return TypeDeclaration$0(state) || TypeDeclaration$1(state);
2684
2924
  }
2685
2925
  }
2686
2926
  var InterfaceBlock$0 = $S(__, $EXPECT($L10, fail, 'InterfaceBlock "{"'), EOS, NestedInterfaceProperties, __, $EXPECT($L15, fail, 'InterfaceBlock "}"'));
@@ -2717,7 +2957,7 @@ var require_parser = __commonJS({
2717
2957
  return NestedInterfaceProperty$0(state);
2718
2958
  }
2719
2959
  }
2720
- var TypeSuffix$0 = $T($S(__, $EXPECT($L11, fail, 'TypeSuffix ":"'), Type), function(value) {
2960
+ var TypeSuffix$0 = $T($S($E($EXPECT($L3, fail, 'TypeSuffix "?"')), __, $EXPECT($L11, fail, 'TypeSuffix ":"'), Type), function(value) {
2721
2961
  return { "ts": true, "children": value };
2722
2962
  });
2723
2963
  function TypeSuffix(state) {
@@ -2729,17 +2969,84 @@ var require_parser = __commonJS({
2729
2969
  return TypeSuffix$0(state);
2730
2970
  }
2731
2971
  }
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"'));
2972
+ var Type$0 = TypeConditional;
2738
2973
  function Type(state) {
2974
+ if (state.verbose)
2975
+ console.log("ENTER:", "Type");
2976
+ if (state.tokenize) {
2977
+ return $TOKEN("Type", state, Type$0(state));
2978
+ } else {
2979
+ return Type$0(state);
2980
+ }
2981
+ }
2982
+ var TypeBinary$0 = $S(TypeUnary, $Q($S(__, TypeBinaryOp, TypeUnary)));
2983
+ function TypeBinary(state) {
2984
+ if (state.verbose)
2985
+ console.log("ENTER:", "TypeBinary");
2739
2986
  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));
2987
+ return $TOKEN("TypeBinary", state, TypeBinary$0(state));
2741
2988
  } else {
2742
- return Type$0(state) || Type$1(state) || Type$2(state) || Type$3(state) || Type$4(state) || Type$5(state);
2989
+ return TypeBinary$0(state);
2990
+ }
2991
+ }
2992
+ var TypeUnary$0 = $S($Q(TypeUnaryOp), TypePrimary);
2993
+ function TypeUnary(state) {
2994
+ if (state.verbose)
2995
+ console.log("ENTER:", "TypeUnary");
2996
+ if (state.tokenize) {
2997
+ return $TOKEN("TypeUnary", state, TypeUnary$0(state));
2998
+ } else {
2999
+ return TypeUnary$0(state);
3000
+ }
3001
+ }
3002
+ var TypeUnaryOp$0 = $S(__, $EXPECT($L83, fail, 'TypeUnaryOp "typeof"'), $R$0($EXPECT($R29, fail, "TypeUnaryOp /(?!\\p{ID_Continue})/")));
3003
+ var TypeUnaryOp$1 = $S(__, $EXPECT($L127, fail, 'TypeUnaryOp "infer"'), $R$0($EXPECT($R29, fail, "TypeUnaryOp /(?!\\p{ID_Continue})/")));
3004
+ function TypeUnaryOp(state) {
3005
+ if (state.tokenize) {
3006
+ return $TOKEN("TypeUnaryOp", state, TypeUnaryOp$0(state) || TypeUnaryOp$1(state));
3007
+ } else {
3008
+ return TypeUnaryOp$0(state) || TypeUnaryOp$1(state);
3009
+ }
3010
+ }
3011
+ var TypePrimary$0 = InterfaceBlock;
3012
+ var TypePrimary$1 = $S(__, $EXPECT($L1, fail, 'TypePrimary "("'), Type, __, $EXPECT($L2, fail, 'TypePrimary ")"'));
3013
+ var TypePrimary$2 = $S($Q(_), FunctionType);
3014
+ var TypePrimary$3 = $S($Q(_), IdentifierName, $Q($S($EXPECT($L25, fail, 'TypePrimary "."'), IdentifierName)), $E(TypeArguments), $Q($EXPECT($L128, fail, 'TypePrimary "[]"')));
3015
+ var TypePrimary$4 = $S($Q(_), TypeLiteral);
3016
+ function TypePrimary(state) {
3017
+ if (state.tokenize) {
3018
+ return $TOKEN("TypePrimary", state, TypePrimary$0(state) || TypePrimary$1(state) || TypePrimary$2(state) || TypePrimary$3(state) || TypePrimary$4(state));
3019
+ } else {
3020
+ return TypePrimary$0(state) || TypePrimary$1(state) || TypePrimary$2(state) || TypePrimary$3(state) || TypePrimary$4(state);
3021
+ }
3022
+ }
3023
+ var TypeConditional$0 = $S(TypeBinary, $E($S(__, $EXPECT($L14, fail, 'TypeConditional "extends"'), Type, __, $EXPECT($L3, fail, 'TypeConditional "?"'), Type, __, $EXPECT($L11, fail, 'TypeConditional ":"'), Type)));
3024
+ function TypeConditional(state) {
3025
+ if (state.verbose)
3026
+ console.log("ENTER:", "TypeConditional");
3027
+ if (state.tokenize) {
3028
+ return $TOKEN("TypeConditional", state, TypeConditional$0(state));
3029
+ } else {
3030
+ return TypeConditional$0(state);
3031
+ }
3032
+ }
3033
+ var TypeLiteral$0 = Literal;
3034
+ var TypeLiteral$1 = $EXPECT($L82, fail, 'TypeLiteral "void"');
3035
+ var TypeLiteral$2 = $EXPECT($L128, fail, 'TypeLiteral "[]"');
3036
+ function TypeLiteral(state) {
3037
+ if (state.tokenize) {
3038
+ return $TOKEN("TypeLiteral", state, TypeLiteral$0(state) || TypeLiteral$1(state) || TypeLiteral$2(state));
3039
+ } else {
3040
+ return TypeLiteral$0(state) || TypeLiteral$1(state) || TypeLiteral$2(state);
3041
+ }
3042
+ }
3043
+ var TypeBinaryOp$0 = $EXPECT($L80, fail, 'TypeBinaryOp "|"');
3044
+ var TypeBinaryOp$1 = $EXPECT($L78, fail, 'TypeBinaryOp "&"');
3045
+ function TypeBinaryOp(state) {
3046
+ if (state.tokenize) {
3047
+ return $TOKEN("TypeBinaryOp", state, TypeBinaryOp$0(state) || TypeBinaryOp$1(state));
3048
+ } else {
3049
+ return TypeBinaryOp$0(state) || TypeBinaryOp$1(state);
2743
3050
  }
2744
3051
  }
2745
3052
  var FunctionType$0 = $S(Parameters, __, $EXPECT($L9, fail, 'FunctionType "=>"'), Type);
@@ -2762,7 +3069,52 @@ var require_parser = __commonJS({
2762
3069
  return TypeArguments$0(state);
2763
3070
  }
2764
3071
  }
2765
- var Shebang$0 = $R$0($EXPECT($R23, fail, "Shebang /#![^\\r\\n]*/"));
3072
+ var TypeParameters$0 = $S(__, $EXPECT($L13, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, $EXPECT($L0, fail, 'TypeParameters ","'), __, Type)), $E($S(__, $EXPECT($L0, fail, 'TypeParameters ","'))), __, $EXPECT($L65, fail, 'TypeParameters ">"'));
3073
+ function TypeParameters(state) {
3074
+ if (state.verbose)
3075
+ console.log("ENTER:", "TypeParameters");
3076
+ if (state.tokenize) {
3077
+ return $TOKEN("TypeParameters", state, TypeParameters$0(state));
3078
+ } else {
3079
+ return TypeParameters$0(state);
3080
+ }
3081
+ }
3082
+ var TypeParameter$0 = $S(__, Identifier, $E(TypeConstraint), TypeParameterDelimiter);
3083
+ function TypeParameter(state) {
3084
+ if (state.verbose)
3085
+ console.log("ENTER:", "TypeParameter");
3086
+ if (state.tokenize) {
3087
+ return $TOKEN("TypeParameter", state, TypeParameter$0(state));
3088
+ } else {
3089
+ return TypeParameter$0(state);
3090
+ }
3091
+ }
3092
+ var TypeConstraint$0 = $S(__, $EXPECT($L14, fail, 'TypeConstraint "extends"'), Type);
3093
+ function TypeConstraint(state) {
3094
+ if (state.verbose)
3095
+ console.log("ENTER:", "TypeConstraint");
3096
+ if (state.tokenize) {
3097
+ return $TOKEN("TypeConstraint", state, TypeConstraint$0(state));
3098
+ } else {
3099
+ return TypeConstraint$0(state);
3100
+ }
3101
+ }
3102
+ var TypeParameterDelimiter$0 = $S($Q(_), $EXPECT($L0, fail, 'TypeParameterDelimiter ","'));
3103
+ var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L65, fail, 'TypeParameterDelimiter ">"')));
3104
+ var TypeParameterDelimiter$2 = $T($Y($S(__, $EXPECT($L65, fail, 'TypeParameterDelimiter ">"'))), function(value) {
3105
+ return ",";
3106
+ });
3107
+ var TypeParameterDelimiter$3 = $T($Y(EOS), function(value) {
3108
+ return ",";
3109
+ });
3110
+ function TypeParameterDelimiter(state) {
3111
+ if (state.tokenize) {
3112
+ return $TOKEN("TypeParameterDelimiter", state, TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state));
3113
+ } else {
3114
+ return TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
3115
+ }
3116
+ }
3117
+ var Shebang$0 = $R$0($EXPECT($R30, fail, "Shebang /#![^\\r\\n]*/"));
2766
3118
  function Shebang(state) {
2767
3119
  if (state.verbose)
2768
3120
  console.log("ENTER:", "Shebang");
@@ -2772,7 +3124,7 @@ var require_parser = __commonJS({
2772
3124
  return Shebang$0(state);
2773
3125
  }
2774
3126
  }
2775
- var DirectivePrologue$0 = $TV($Q($S($TEXT($EXPECT($R24, fail, "DirectivePrologue /[\\t ]*/")), $TEXT(StringLiteral), $TEXT(StatementDelimiter), $TEXT(EOS))), function($skip, $loc, $0, $1) {
3127
+ var DirectivePrologue$0 = $TV($Q($S($TEXT($EXPECT($R31, fail, "DirectivePrologue /[\\t ]*/")), $TEXT(StringLiteral), $TEXT(StatementDelimiter), $TEXT(EOS))), function($skip, $loc, $0, $1) {
2776
3128
  return $0.map((p) => p.join(""));
2777
3129
  });
2778
3130
  function DirectivePrologue(state) {
@@ -2794,7 +3146,7 @@ var require_parser = __commonJS({
2794
3146
  return EOS$0(state);
2795
3147
  }
2796
3148
  }
2797
- var EOL$0 = $R$0($EXPECT($R25, fail, "EOL /\\r\\n|\\n|\\r|$/"));
3149
+ var EOL$0 = $R$0($EXPECT($R32, fail, "EOL /\\r\\n|\\n|\\r|$/"));
2798
3150
  function EOL(state) {
2799
3151
  if (state.verbose)
2800
3152
  console.log("ENTER:", "EOL");
@@ -2804,7 +3156,7 @@ var require_parser = __commonJS({
2804
3156
  return EOL$0(state);
2805
3157
  }
2806
3158
  }
2807
- var EOF$0 = $R$0($EXPECT($R26, fail, "EOF /$/"));
3159
+ var EOF$0 = $R$0($EXPECT($R33, fail, "EOF /$/"));
2808
3160
  function EOF(state) {
2809
3161
  if (state.verbose)
2810
3162
  console.log("ENTER:", "EOF");
@@ -2942,7 +3294,7 @@ var require_parser = __commonJS({
2942
3294
  return Init$0(state);
2943
3295
  }
2944
3296
  }
2945
- var Indent$0 = $TV($Q($C($EXPECT($L124, fail, 'Indent " "'), $EXPECT($L125, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
3297
+ var Indent$0 = $TV($Q($C($EXPECT($L129, fail, 'Indent " "'), $EXPECT($L130, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
2946
3298
  return $1.length;
2947
3299
  });
2948
3300
  function Indent(state) {
@@ -3040,7 +3392,6 @@ var require_generate = __commonJS({
3040
3392
  return "";
3041
3393
  }
3042
3394
  if (!node.children) {
3043
- debugger;
3044
3395
  throw new Error("Unknown node", JSON.stringify(node));
3045
3396
  }
3046
3397
  return node.children.map(function(child) {