@danielx/civet 0.4.0 → 0.4.2

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/browser.js CHANGED
@@ -409,9 +409,13 @@ var Civet = (() => {
409
409
  TopLevelStatement,
410
410
  Expression,
411
411
  Arguments,
412
+ ArgumentsWithTrailingCallExpressions,
412
413
  ArgumentList,
413
414
  NestedArgumentList,
414
415
  NestedArgument,
416
+ ImplicitApplication,
417
+ ApplicationStart,
418
+ IndentedApplicationAllowed,
415
419
  CommaExpression,
416
420
  BinaryOpExpression,
417
421
  UnaryExpression,
@@ -445,8 +449,6 @@ var Civet = (() => {
445
449
  CallExpressionRest,
446
450
  OptionalShorthand,
447
451
  NonNullAssertion,
448
- SpacedApplication,
449
- ApplicationStart,
450
452
  AdditionalReservedWords,
451
453
  MemberExpression,
452
454
  MemberExpressionRest,
@@ -460,8 +462,12 @@ var Civet = (() => {
460
462
  BindingPattern,
461
463
  ObjectBindingPattern,
462
464
  ArrayBindingPattern,
465
+ NestedBindingProperties,
466
+ NestedBindingProperty,
463
467
  BindingProperty,
464
468
  BindingRestProperty,
469
+ NestedBindingElements,
470
+ NestedBindingElement,
465
471
  BindingElement,
466
472
  BindingRestElement,
467
473
  FunctionDeclaration,
@@ -490,6 +496,7 @@ var Civet = (() => {
490
496
  ArrayElementExpression,
491
497
  Elision,
492
498
  ObjectLiteral,
499
+ NestedObjectLiteral,
493
500
  NestedPropertyDefinitions,
494
501
  NestedPropertyDefinition,
495
502
  ObjectPropertyDelimiter,
@@ -501,12 +508,6 @@ var Civet = (() => {
501
508
  MethodSignature,
502
509
  ClassElementName,
503
510
  PrivateIdentifier,
504
- GeneratorMethod,
505
- GeneratorBody,
506
- AsyncMethod,
507
- AsyncFunctionBody,
508
- AsyncGeneratorMethod,
509
- AsyncGeneratorBody,
510
511
  AssignmentOp,
511
512
  AssignmentOpSymbol,
512
513
  BinaryOp,
@@ -527,7 +528,6 @@ var Civet = (() => {
527
528
  ForStatement,
528
529
  ForInOfStatement,
529
530
  ForDeclaration,
530
- LetOrConst,
531
531
  ForBinding,
532
532
  SwitchStatement,
533
533
  CaseBlock,
@@ -541,6 +541,8 @@ var Civet = (() => {
541
541
  Finally,
542
542
  CatchParameter,
543
543
  Condition,
544
+ ExpressionWithIndentedApplicationSuppressed,
545
+ SuppressIndentedApplication,
544
546
  ExpressionStatement,
545
547
  KeywordStatement,
546
548
  MaybeNestedExpression,
@@ -621,9 +623,11 @@ var Civet = (() => {
621
623
  For,
622
624
  From,
623
625
  Function,
626
+ GetOrSet,
624
627
  If,
625
628
  Import,
626
629
  In,
630
+ LetOrConst,
627
631
  Loop,
628
632
  New,
629
633
  Of,
@@ -712,38 +716,40 @@ var Civet = (() => {
712
716
  InsertBreak,
713
717
  Init,
714
718
  Indent,
719
+ TrackIndent,
720
+ Samedent,
721
+ IndentedFurther,
715
722
  PushIndent,
716
723
  PopIndent,
717
- Nested,
718
- NestedFurther
719
- });
720
- var $L0 = $L("++");
721
- var $L1 = $L("--");
722
- var $L2 = $L("yield");
723
- var $L3 = $L("*");
724
- var $L4 = $L("=>");
725
- var $L5 = $L("<");
726
- var $L6 = $L("extends");
727
- var $L7 = $L("this");
728
- var $L8 = $L("#");
729
- var $L9 = $L("@");
730
- var $L10 = $L("super");
731
- var $L11 = $L("import");
732
- var $L12 = $L("!");
733
- var $L13 = $L("::");
734
- var $L14 = $L("super[");
735
- var $L15 = $L("import.meta");
736
- var $L16 = $L("");
737
- var $L17 = $L(")");
738
- var $L18 = $L("...");
739
- var $L19 = $L("->");
740
- var $L20 = $L("null");
741
- var $L21 = $L("true");
742
- var $L22 = $L("false");
743
- var $L23 = $L(",");
744
- var $L24 = $L("]");
745
- var $L25 = $L("get");
746
- var $L26 = $L("set");
724
+ Nested
725
+ });
726
+ var $L0 = $L("`");
727
+ var $L1 = $L("");
728
+ var $L2 = $L("++");
729
+ var $L3 = $L("--");
730
+ var $L4 = $L("yield");
731
+ var $L5 = $L("*");
732
+ var $L6 = $L("=>");
733
+ var $L7 = $L("<");
734
+ var $L8 = $L("extends");
735
+ var $L9 = $L("this");
736
+ var $L10 = $L("#");
737
+ var $L11 = $L("@");
738
+ var $L12 = $L("super");
739
+ var $L13 = $L("import");
740
+ var $L14 = $L("!");
741
+ var $L15 = $L("::");
742
+ var $L16 = $L("super[");
743
+ var $L17 = $L("import.meta");
744
+ var $L18 = $L(")");
745
+ var $L19 = $L("...");
746
+ var $L20 = $L("->");
747
+ var $L21 = $L("null");
748
+ var $L22 = $L("true");
749
+ var $L23 = $L("false");
750
+ var $L24 = $L(",");
751
+ var $L25 = $L("]");
752
+ var $L26 = $L("}");
747
753
  var $L27 = $L("**=");
748
754
  var $L28 = $L("*=");
749
755
  var $L29 = $L("/=");
@@ -794,38 +800,38 @@ var Civet = (() => {
794
800
  var $L74 = $L("do");
795
801
  var $L75 = $L("while");
796
802
  var $L76 = $L("until");
797
- var $L77 = $L("let");
798
- var $L78 = $L("const");
799
- var $L79 = $L("case");
800
- var $L80 = $L("default");
801
- var $L81 = $L("finally");
802
- var $L82 = $L("break");
803
- var $L83 = $L("continue");
804
- var $L84 = $L("debugger");
805
- var $L85 = $L("throw");
806
- var $L86 = $L("import type");
807
- var $L87 = $L(":=");
808
- var $L88 = $L('"');
809
- var $L89 = $L("'");
810
- var $L90 = $L("`");
811
- var $L91 = $L("${");
812
- var $L92 = $L("/*");
813
- var $L93 = $L("*/");
814
- var $L94 = $L("###");
815
- var $L95 = $L("as");
816
- var $L96 = $L("async");
817
- var $L97 = $L("await");
818
- var $L98 = $L("catch");
819
- var $L99 = $L("class");
820
- var $L100 = $L("}");
821
- var $L101 = $L(":");
822
- var $L102 = $L(".");
823
- var $L103 = $L("else");
824
- var $L104 = $L("export");
825
- var $L105 = $L("for");
826
- var $L106 = $L("from");
827
- var $L107 = $L("function");
828
- var $L108 = $L("if");
803
+ var $L77 = $L("case");
804
+ var $L78 = $L("default");
805
+ var $L79 = $L("finally");
806
+ var $L80 = $L("break");
807
+ var $L81 = $L("continue");
808
+ var $L82 = $L("debugger");
809
+ var $L83 = $L("throw");
810
+ var $L84 = $L("import type");
811
+ var $L85 = $L(":=");
812
+ var $L86 = $L('"');
813
+ var $L87 = $L("'");
814
+ var $L88 = $L("${");
815
+ var $L89 = $L("/*");
816
+ var $L90 = $L("*/");
817
+ var $L91 = $L("###");
818
+ var $L92 = $L("as");
819
+ var $L93 = $L("async");
820
+ var $L94 = $L("await");
821
+ var $L95 = $L("catch");
822
+ var $L96 = $L("class");
823
+ var $L97 = $L(":");
824
+ var $L98 = $L(".");
825
+ var $L99 = $L("else");
826
+ var $L100 = $L("export");
827
+ var $L101 = $L("for");
828
+ var $L102 = $L("from");
829
+ var $L103 = $L("function");
830
+ var $L104 = $L("get");
831
+ var $L105 = $L("set");
832
+ var $L106 = $L("if");
833
+ var $L107 = $L("let");
834
+ var $L108 = $L("const");
829
835
  var $L109 = $L("loop");
830
836
  var $L110 = $L("new");
831
837
  var $L111 = $L("of");
@@ -926,17 +932,30 @@ var Civet = (() => {
926
932
  }
927
933
  }
928
934
  var Arguments$0 = $S(OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
935
+ var Arguments$1 = ImplicitApplication;
929
936
  function Arguments(state) {
937
+ if (state.tokenize) {
938
+ return $TOKEN("Arguments", state, Arguments$0(state) || Arguments$1(state));
939
+ } else {
940
+ return Arguments$0(state) || Arguments$1(state);
941
+ }
942
+ }
943
+ var ArgumentsWithTrailingCallExpressions$0 = $TS($S(TrackIndent, $C($S(Arguments, $Q($S($Y(EOS), Samedent, $N($EXPECT($L0, fail, 'ArgumentsWithTrailingCallExpressions "`"')), CallExpressionRest)), PopIndent), PopIndent)), function($skip, $loc, $0, $1, $2) {
944
+ if (!$2)
945
+ return $skip;
946
+ return $2;
947
+ });
948
+ function ArgumentsWithTrailingCallExpressions(state) {
930
949
  if (state.verbose)
931
- console.log("ENTER:", "Arguments");
950
+ console.log("ENTER:", "ArgumentsWithTrailingCallExpressions");
932
951
  if (state.tokenize) {
933
- return $TOKEN("Arguments", state, Arguments$0(state));
952
+ return $TOKEN("ArgumentsWithTrailingCallExpressions", state, ArgumentsWithTrailingCallExpressions$0(state));
934
953
  } else {
935
- return Arguments$0(state);
954
+ return ArgumentsWithTrailingCallExpressions$0(state);
936
955
  }
937
956
  }
938
957
  var ArgumentList$0 = $S($Y(EOS), NestedArgumentList);
939
- var ArgumentList$1 = $S(__, Expression, $Q(CommaExpression));
958
+ var ArgumentList$1 = $S(Expression, $Q(CommaExpression));
940
959
  function ArgumentList(state) {
941
960
  if (state.tokenize) {
942
961
  return $TOKEN("ArgumentList", state, ArgumentList$0(state) || ArgumentList$1(state));
@@ -969,7 +988,44 @@ var Civet = (() => {
969
988
  return NestedArgument$0(state);
970
989
  }
971
990
  }
972
- var CommaExpression$0 = $S(__, Comma, __, Expression);
991
+ var ImplicitApplication$0 = $S(ApplicationStart, ArgumentList, InsertCloseParen);
992
+ function ImplicitApplication(state) {
993
+ if (state.verbose)
994
+ console.log("ENTER:", "ImplicitApplication");
995
+ if (state.tokenize) {
996
+ return $TOKEN("ImplicitApplication", state, ImplicitApplication$0(state));
997
+ } else {
998
+ return ImplicitApplication$0(state);
999
+ }
1000
+ }
1001
+ var ApplicationStart$0 = $TS($S($N(EOS), _, $N(AdditionalReservedWords)), function($skip, $loc, $0, $1, $2, $3) {
1002
+ var spacing = $2;
1003
+ spacing[0].token = spacing[0].token.replace(/^ ?/, "(");
1004
+ return spacing;
1005
+ });
1006
+ var ApplicationStart$1 = $S(IndentedApplicationAllowed, $Y(NestedObjectLiteral), InsertOpenParen);
1007
+ function ApplicationStart(state) {
1008
+ if (state.tokenize) {
1009
+ return $TOKEN("ApplicationStart", state, ApplicationStart$0(state) || ApplicationStart$1(state));
1010
+ } else {
1011
+ return ApplicationStart$0(state) || ApplicationStart$1(state);
1012
+ }
1013
+ }
1014
+ var IndentedApplicationAllowed$0 = $TV($EXPECT($L1, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
1015
+ if (module.suppressIndentedApplication)
1016
+ return $skip;
1017
+ return;
1018
+ });
1019
+ function IndentedApplicationAllowed(state) {
1020
+ if (state.verbose)
1021
+ console.log("ENTER:", "IndentedApplicationAllowed");
1022
+ if (state.tokenize) {
1023
+ return $TOKEN("IndentedApplicationAllowed", state, IndentedApplicationAllowed$0(state));
1024
+ } else {
1025
+ return IndentedApplicationAllowed$0(state);
1026
+ }
1027
+ }
1028
+ var CommaExpression$0 = $S(__, Comma, Expression);
973
1029
  function CommaExpression(state) {
974
1030
  if (state.verbose)
975
1031
  console.log("ENTER:", "CommaExpression");
@@ -1027,7 +1083,7 @@ var Civet = (() => {
1027
1083
  return UpdateExpression$0(state) || UpdateExpression$1(state);
1028
1084
  }
1029
1085
  }
1030
- var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L0, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L1, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1086
+ var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L2, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L3, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1031
1087
  return { $loc, token: $1 };
1032
1088
  });
1033
1089
  function UpdateExpressionSymbol(state) {
@@ -1070,7 +1126,7 @@ var Civet = (() => {
1070
1126
  return AwaitExpression$0(state);
1071
1127
  }
1072
1128
  }
1073
- var YieldExpression$0 = $S($EXPECT($L2, fail, 'YieldExpression "yield"'), NonIdContinue, $E($S($Q(TrailingComment), $EXPECT($L3, fail, 'YieldExpression "*"'))), AssignmentExpression);
1129
+ var YieldExpression$0 = $S($EXPECT($L4, fail, 'YieldExpression "yield"'), NonIdContinue, $E($S($Q(TrailingComment), $EXPECT($L5, fail, 'YieldExpression "*"'))), AssignmentExpression);
1074
1130
  function YieldExpression(state) {
1075
1131
  if (state.verbose)
1076
1132
  console.log("ENTER:", "YieldExpression");
@@ -1089,7 +1145,7 @@ var Civet = (() => {
1089
1145
  return ArrowFunction$0(state) || ArrowFunction$1(state);
1090
1146
  }
1091
1147
  }
1092
- var FatArrow$0 = $TS($S(__, $EXPECT($L4, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
1148
+ var FatArrow$0 = $TS($S(__, $EXPECT($L6, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
1093
1149
  var ws = $1;
1094
1150
  if (!ws.length)
1095
1151
  return " =>";
@@ -1105,15 +1161,7 @@ var Civet = (() => {
1105
1161
  }
1106
1162
  }
1107
1163
  var FatArrowBody$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace);
1108
- var FatArrowBody$1 = $TS($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1109
- var eos = $2;
1110
- var exps = $3;
1111
- if (exps.length == 1) {
1112
- exps[0].pop();
1113
- return [eos, exps];
1114
- }
1115
- return $0;
1116
- });
1164
+ var FatArrowBody$1 = $S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace);
1117
1165
  var FatArrowBody$2 = AssignmentExpression;
1118
1166
  var FatArrowBody$3 = $S(__, AssignmentExpression);
1119
1167
  var FatArrowBody$4 = $S(InsertOpenBrace, InsertCloseBrace);
@@ -1153,7 +1201,7 @@ var Civet = (() => {
1153
1201
  var PrimaryExpression$6 = ClassExpression;
1154
1202
  var PrimaryExpression$7 = RegularExpressionLiteral;
1155
1203
  var PrimaryExpression$8 = TemplateLiteral;
1156
- var PrimaryExpression$9 = $S(OpenParen, __, Expression, __, CloseParen);
1204
+ var PrimaryExpression$9 = $S(OpenParen, Expression, __, CloseParen);
1157
1205
  var PrimaryExpression$10 = JSXElement;
1158
1206
  var PrimaryExpression$11 = JSXFragment;
1159
1207
  function PrimaryExpression(state) {
@@ -1173,7 +1221,7 @@ var Civet = (() => {
1173
1221
  return ClassDeclaration$0(state);
1174
1222
  }
1175
1223
  }
1176
- var ClassExpression$0 = $S(Class, $E($S(__, BindingIdentifier)), $E($S(__, ClassHeritage)), ClassBody);
1224
+ var ClassExpression$0 = $S(Class, $E(BindingIdentifier), $E($S(__, ClassHeritage)), ClassBody);
1177
1225
  function ClassExpression(state) {
1178
1226
  if (state.verbose)
1179
1227
  console.log("ENTER:", "ClassExpression");
@@ -1193,10 +1241,10 @@ var Civet = (() => {
1193
1241
  return ClassHeritage$0(state);
1194
1242
  }
1195
1243
  }
1196
- var ExtendsToken$0 = $TV($EXPECT($L5, fail, 'ExtendsToken "<"'), function($skip, $loc, $0, $1) {
1244
+ var ExtendsToken$0 = $TV($EXPECT($L7, fail, 'ExtendsToken "<"'), function($skip, $loc, $0, $1) {
1197
1245
  return { $loc, token: "extends" };
1198
1246
  });
1199
- var ExtendsToken$1 = $TV($EXPECT($L6, fail, 'ExtendsToken "extends"'), function($skip, $loc, $0, $1) {
1247
+ var ExtendsToken$1 = $TV($EXPECT($L8, fail, 'ExtendsToken "extends"'), function($skip, $loc, $0, $1) {
1200
1248
  return { $loc, token: $1 };
1201
1249
  });
1202
1250
  function ExtendsToken(state) {
@@ -1266,11 +1314,11 @@ var Civet = (() => {
1266
1314
  return FieldDefinition$0(state) || FieldDefinition$1(state);
1267
1315
  }
1268
1316
  }
1269
- var This$0 = $TV($EXPECT($L7, fail, 'This "this"'), function($skip, $loc, $0, $1) {
1317
+ var This$0 = $TV($EXPECT($L9, fail, 'This "this"'), function($skip, $loc, $0, $1) {
1270
1318
  return { $loc, token: $1 };
1271
1319
  });
1272
- var This$1 = $S(AtAccessor, $S($E($EXPECT($L8, fail, 'This "#"')), IdentifierName));
1273
- var This$2 = $TV($EXPECT($L9, fail, 'This "@"'), function($skip, $loc, $0, $1) {
1320
+ var This$1 = $S(AtAccessor, $S($E($EXPECT($L10, fail, 'This "#"')), IdentifierName));
1321
+ var This$2 = $TV($EXPECT($L11, fail, 'This "@"'), function($skip, $loc, $0, $1) {
1274
1322
  return { $loc, token: "this" };
1275
1323
  });
1276
1324
  function This(state) {
@@ -1280,7 +1328,7 @@ var Civet = (() => {
1280
1328
  return This$0(state) || This$1(state) || This$2(state);
1281
1329
  }
1282
1330
  }
1283
- var AtAccessor$0 = $TV($EXPECT($L9, fail, 'AtAccessor "@"'), function($skip, $loc, $0, $1) {
1331
+ var AtAccessor$0 = $TV($EXPECT($L11, fail, 'AtAccessor "@"'), function($skip, $loc, $0, $1) {
1284
1332
  return { $loc, token: "this." };
1285
1333
  });
1286
1334
  function AtAccessor(state) {
@@ -1311,8 +1359,8 @@ var Civet = (() => {
1311
1359
  return NewExpression$0(state);
1312
1360
  }
1313
1361
  }
1314
- var CallExpression$0 = $S($EXPECT($L10, fail, 'CallExpression "super"'), __, Arguments);
1315
- var CallExpression$1 = $S($EXPECT($L11, fail, 'CallExpression "import"'), __, OpenParen, AssignmentExpression, __, CloseParen);
1362
+ var CallExpression$0 = $S($EXPECT($L12, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
1363
+ var CallExpression$1 = $S($EXPECT($L13, fail, 'CallExpression "import"'), __, OpenParen, AssignmentExpression, __, CloseParen);
1316
1364
  var CallExpression$2 = $S(MemberExpression, $Q(CallExpressionRest));
1317
1365
  function CallExpression(state) {
1318
1366
  if (state.tokenize) {
@@ -1321,15 +1369,14 @@ var Civet = (() => {
1321
1369
  return CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state);
1322
1370
  }
1323
1371
  }
1324
- var CallExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), Arguments);
1325
- var CallExpressionRest$1 = MemberExpressionRest;
1326
- var CallExpressionRest$2 = SpacedApplication;
1327
- var CallExpressionRest$3 = TemplateLiteral;
1372
+ var CallExpressionRest$0 = MemberExpressionRest;
1373
+ var CallExpressionRest$1 = TemplateLiteral;
1374
+ var CallExpressionRest$2 = $S($E($C(OptionalShorthand, NonNullAssertion)), ArgumentsWithTrailingCallExpressions);
1328
1375
  function CallExpressionRest(state) {
1329
1376
  if (state.tokenize) {
1330
- return $TOKEN("CallExpressionRest", state, CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state));
1377
+ return $TOKEN("CallExpressionRest", state, CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state));
1331
1378
  } else {
1332
- return CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state);
1379
+ return CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state);
1333
1380
  }
1334
1381
  }
1335
1382
  var OptionalShorthand$0 = $S(QuestionMark, $C(Dot, InsertDot));
@@ -1342,7 +1389,7 @@ var Civet = (() => {
1342
1389
  return OptionalShorthand$0(state);
1343
1390
  }
1344
1391
  }
1345
- var NonNullAssertion$0 = $T($EXPECT($L12, fail, 'NonNullAssertion "!"'), function(value) {
1392
+ var NonNullAssertion$0 = $T($EXPECT($L14, fail, 'NonNullAssertion "!"'), function(value) {
1346
1393
  return { "ts": true, "children": value };
1347
1394
  });
1348
1395
  function NonNullAssertion(state) {
@@ -1354,31 +1401,6 @@ var Civet = (() => {
1354
1401
  return NonNullAssertion$0(state);
1355
1402
  }
1356
1403
  }
1357
- var SpacedApplication$0 = $S(ApplicationStart, ArgumentList, InsertCloseParen, $Q($S($Y(EOS), Nested, CallExpressionRest)));
1358
- function SpacedApplication(state) {
1359
- if (state.verbose)
1360
- console.log("ENTER:", "SpacedApplication");
1361
- if (state.tokenize) {
1362
- return $TOKEN("SpacedApplication", state, SpacedApplication$0(state));
1363
- } else {
1364
- return SpacedApplication$0(state);
1365
- }
1366
- }
1367
- var ApplicationStart$0 = $TS($S($E(OptionalShorthand), $N(EOS), _, $N(AdditionalReservedWords)), function($skip, $loc, $0, $1, $2, $3, $4) {
1368
- var opt = $1;
1369
- var spacing = $3;
1370
- spacing[0].token = spacing[0].token.replace(/^ ?/, "(");
1371
- return [opt, spacing];
1372
- });
1373
- function ApplicationStart(state) {
1374
- if (state.verbose)
1375
- console.log("ENTER:", "ApplicationStart");
1376
- if (state.tokenize) {
1377
- return $TOKEN("ApplicationStart", state, ApplicationStart$0(state));
1378
- } else {
1379
- return ApplicationStart$0(state);
1380
- }
1381
- }
1382
1404
  var AdditionalReservedWords$0 = $R$0($EXPECT($R0, fail, "AdditionalReservedWords /(of)(?!\\p{ID_Continue})/"));
1383
1405
  function AdditionalReservedWords(state) {
1384
1406
  if (state.verbose)
@@ -1399,10 +1421,10 @@ var Civet = (() => {
1399
1421
  return MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state);
1400
1422
  }
1401
1423
  }
1402
- var MemberExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), OpenBracket, __, Expression, __, CloseBracket);
1403
- var MemberExpressionRest$1 = $S($E($S(EOS, NestedFurther)), PropertyAccess);
1404
- var MemberExpressionRest$2 = $TS($S($EXPECT($L13, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2) {
1405
- var id = $2;
1424
+ var MemberExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), OpenBracket, Expression, __, CloseBracket);
1425
+ var MemberExpressionRest$1 = $S($E($S($Y(EOS), IndentedFurther)), PropertyAccess);
1426
+ var MemberExpressionRest$2 = $TS($S($E($S($Y(EOS), IndentedFurther)), $EXPECT($L15, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
1427
+ var id = $3;
1406
1428
  if (id)
1407
1429
  return [".prototype.", id];
1408
1430
  return ".prototype";
@@ -1425,7 +1447,7 @@ var Civet = (() => {
1425
1447
  return PropertyAccess$0(state);
1426
1448
  }
1427
1449
  }
1428
- var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super["'), __, Expression, __, CloseBracket);
1450
+ var SuperProperty$0 = $S($EXPECT($L16, fail, 'SuperProperty "super["'), Expression, __, CloseBracket);
1429
1451
  function SuperProperty(state) {
1430
1452
  if (state.verbose)
1431
1453
  console.log("ENTER:", "SuperProperty");
@@ -1436,7 +1458,7 @@ var Civet = (() => {
1436
1458
  }
1437
1459
  }
1438
1460
  var MetaProperty$0 = $S(New, Dot, Target);
1439
- var MetaProperty$1 = $TV($EXPECT($L15, fail, 'MetaProperty "import.meta"'), function($skip, $loc, $0, $1) {
1461
+ var MetaProperty$1 = $TV($EXPECT($L17, fail, 'MetaProperty "import.meta"'), function($skip, $loc, $0, $1) {
1440
1462
  return { $loc, token: $1 };
1441
1463
  });
1442
1464
  function MetaProperty(state) {
@@ -1447,7 +1469,7 @@ var Civet = (() => {
1447
1469
  }
1448
1470
  }
1449
1471
  var Parameters$0 = $S($E(TypeParameters), OpenParen, $Q(ParameterElement), __, CloseParen);
1450
- var Parameters$1 = $TV($EXPECT($L16, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
1472
+ var Parameters$1 = $TV($EXPECT($L1, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
1451
1473
  return { $loc, token: "()" };
1452
1474
  });
1453
1475
  function Parameters(state) {
@@ -1468,8 +1490,8 @@ var Civet = (() => {
1468
1490
  }
1469
1491
  }
1470
1492
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
1471
- var ParameterElementDelimiter$1 = $Y($S($Q(_), $EXPECT($L17, fail, 'ParameterElementDelimiter ")"')));
1472
- var ParameterElementDelimiter$2 = $TV($Y($S(__, $EXPECT($L17, fail, 'ParameterElementDelimiter ")"'))), function($skip, $loc, $0, $1) {
1493
+ var ParameterElementDelimiter$1 = $Y($S($Q(_), $EXPECT($L18, fail, 'ParameterElementDelimiter ")"')));
1494
+ var ParameterElementDelimiter$2 = $TV($Y($S(__, $EXPECT($L18, fail, 'ParameterElementDelimiter ")"'))), function($skip, $loc, $0, $1) {
1473
1495
  return { $loc, token: "," };
1474
1496
  });
1475
1497
  var ParameterElementDelimiter$3 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
@@ -1482,7 +1504,7 @@ var Civet = (() => {
1482
1504
  return ParameterElementDelimiter$0(state) || ParameterElementDelimiter$1(state) || ParameterElementDelimiter$2(state) || ParameterElementDelimiter$3(state);
1483
1505
  }
1484
1506
  }
1485
- var BindingIdentifier$0 = Identifier;
1507
+ var BindingIdentifier$0 = $S(__, Identifier);
1486
1508
  function BindingIdentifier(state) {
1487
1509
  if (state.verbose)
1488
1510
  console.log("ENTER:", "BindingIdentifier");
@@ -1492,8 +1514,8 @@ var Civet = (() => {
1492
1514
  return BindingIdentifier$0(state);
1493
1515
  }
1494
1516
  }
1495
- var BindingPattern$0 = ObjectBindingPattern;
1496
- var BindingPattern$1 = ArrayBindingPattern;
1517
+ var BindingPattern$0 = $S(__, ObjectBindingPattern);
1518
+ var BindingPattern$1 = $S(__, ArrayBindingPattern);
1497
1519
  function BindingPattern(state) {
1498
1520
  if (state.tokenize) {
1499
1521
  return $TOKEN("BindingPattern", state, BindingPattern$0(state) || BindingPattern$1(state));
@@ -1501,28 +1523,54 @@ var Civet = (() => {
1501
1523
  return BindingPattern$0(state) || BindingPattern$1(state);
1502
1524
  }
1503
1525
  }
1504
- var ObjectBindingPattern$0 = $S(OpenBrace, $Q(BindingProperty), $E($S(__, BindingRestProperty)), __, CloseBrace);
1526
+ var ObjectBindingPattern$0 = $S(OpenBrace, $Y(EOS), NestedBindingProperties, __, CloseBrace);
1527
+ var ObjectBindingPattern$1 = $S(OpenBrace, $Q(BindingProperty), $E($S(__, BindingRestProperty)), __, CloseBrace);
1505
1528
  function ObjectBindingPattern(state) {
1506
- if (state.verbose)
1507
- console.log("ENTER:", "ObjectBindingPattern");
1508
1529
  if (state.tokenize) {
1509
- return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state));
1530
+ return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state) || ObjectBindingPattern$1(state));
1510
1531
  } else {
1511
- return ObjectBindingPattern$0(state);
1532
+ return ObjectBindingPattern$0(state) || ObjectBindingPattern$1(state);
1512
1533
  }
1513
1534
  }
1514
- var ArrayBindingPattern$0 = $S(OpenBracket, $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, CloseBracket);
1535
+ var ArrayBindingPattern$0 = $S(OpenBracket, $Y(EOS), NestedBindingElements, __, CloseBracket);
1536
+ var ArrayBindingPattern$1 = $S(OpenBracket, $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, CloseBracket);
1515
1537
  function ArrayBindingPattern(state) {
1538
+ if (state.tokenize) {
1539
+ return $TOKEN("ArrayBindingPattern", state, ArrayBindingPattern$0(state) || ArrayBindingPattern$1(state));
1540
+ } else {
1541
+ return ArrayBindingPattern$0(state) || ArrayBindingPattern$1(state);
1542
+ }
1543
+ }
1544
+ var NestedBindingProperties$0 = $TS($S(PushIndent, $Q(NestedBindingProperty), $E($S(Nested, BindingRestProperty)), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
1545
+ var props = $2;
1546
+ var rest = $3;
1547
+ if (!props.length)
1548
+ return $skip;
1549
+ if (rest)
1550
+ props.push(rest);
1551
+ return props;
1552
+ });
1553
+ function NestedBindingProperties(state) {
1516
1554
  if (state.verbose)
1517
- console.log("ENTER:", "ArrayBindingPattern");
1555
+ console.log("ENTER:", "NestedBindingProperties");
1518
1556
  if (state.tokenize) {
1519
- return $TOKEN("ArrayBindingPattern", state, ArrayBindingPattern$0(state));
1557
+ return $TOKEN("NestedBindingProperties", state, NestedBindingProperties$0(state));
1520
1558
  } else {
1521
- return ArrayBindingPattern$0(state);
1559
+ return NestedBindingProperties$0(state);
1522
1560
  }
1523
1561
  }
1524
- var BindingProperty$0 = $S(__, PropertyName, __, Colon, __, $C(BindingIdentifier, BindingPattern), $E(Initializer), ObjectPropertyDelimiter);
1525
- var BindingProperty$1 = $S(__, BindingIdentifier, $E(Initializer), ObjectPropertyDelimiter);
1562
+ var NestedBindingProperty$0 = $S(Nested, BindingProperty);
1563
+ function NestedBindingProperty(state) {
1564
+ if (state.verbose)
1565
+ console.log("ENTER:", "NestedBindingProperty");
1566
+ if (state.tokenize) {
1567
+ return $TOKEN("NestedBindingProperty", state, NestedBindingProperty$0(state));
1568
+ } else {
1569
+ return NestedBindingProperty$0(state);
1570
+ }
1571
+ }
1572
+ var BindingProperty$0 = $S(__, PropertyName, __, Colon, $C(BindingIdentifier, BindingPattern), $E(Initializer), ObjectPropertyDelimiter);
1573
+ var BindingProperty$1 = $S(BindingIdentifier, $E(Initializer), ObjectPropertyDelimiter);
1526
1574
  function BindingProperty(state) {
1527
1575
  if (state.tokenize) {
1528
1576
  return $TOKEN("BindingProperty", state, BindingProperty$0(state) || BindingProperty$1(state));
@@ -1530,7 +1578,7 @@ var Civet = (() => {
1530
1578
  return BindingProperty$0(state) || BindingProperty$1(state);
1531
1579
  }
1532
1580
  }
1533
- var BindingRestProperty$0 = $S($EXPECT($L18, fail, 'BindingRestProperty "..."'), __, BindingIdentifier);
1581
+ var BindingRestProperty$0 = $S($EXPECT($L19, fail, 'BindingRestProperty "..."'), BindingIdentifier);
1534
1582
  function BindingRestProperty(state) {
1535
1583
  if (state.verbose)
1536
1584
  console.log("ENTER:", "BindingRestProperty");
@@ -1540,6 +1588,34 @@ var Civet = (() => {
1540
1588
  return BindingRestProperty$0(state);
1541
1589
  }
1542
1590
  }
1591
+ var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElement), $E($S(Nested, BindingRestElement)), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
1592
+ var props = $2;
1593
+ var rest = $3;
1594
+ if (!props.length)
1595
+ return $skip;
1596
+ if (rest)
1597
+ props.push(rest);
1598
+ return props;
1599
+ });
1600
+ function NestedBindingElements(state) {
1601
+ if (state.verbose)
1602
+ console.log("ENTER:", "NestedBindingElements");
1603
+ if (state.tokenize) {
1604
+ return $TOKEN("NestedBindingElements", state, NestedBindingElements$0(state));
1605
+ } else {
1606
+ return NestedBindingElements$0(state);
1607
+ }
1608
+ }
1609
+ var NestedBindingElement$0 = $S(Nested, BindingElement);
1610
+ function NestedBindingElement(state) {
1611
+ if (state.verbose)
1612
+ console.log("ENTER:", "NestedBindingElement");
1613
+ if (state.tokenize) {
1614
+ return $TOKEN("NestedBindingElement", state, NestedBindingElement$0(state));
1615
+ } else {
1616
+ return NestedBindingElement$0(state);
1617
+ }
1618
+ }
1543
1619
  var BindingElement$0 = $S(__, $C(BindingIdentifier, BindingPattern), $E(Initializer), ArrayElementDelimiter);
1544
1620
  function BindingElement(state) {
1545
1621
  if (state.verbose)
@@ -1550,7 +1626,7 @@ var Civet = (() => {
1550
1626
  return BindingElement$0(state);
1551
1627
  }
1552
1628
  }
1553
- var BindingRestElement$0 = $S($EXPECT($L18, fail, 'BindingRestElement "..."'), __, $C(BindingIdentifier, BindingPattern));
1629
+ var BindingRestElement$0 = $S($EXPECT($L19, fail, 'BindingRestElement "..."'), __, $C(BindingIdentifier, BindingPattern));
1554
1630
  function BindingRestElement(state) {
1555
1631
  if (state.verbose)
1556
1632
  console.log("ENTER:", "BindingRestElement");
@@ -1571,7 +1647,7 @@ var Civet = (() => {
1571
1647
  }
1572
1648
  }
1573
1649
  var FunctionExpression$0 = ThinArrowFunction;
1574
- var FunctionExpression$1 = $S($E($S(Async, __)), Function, $E($S($EXPECT($L3, fail, 'FunctionExpression "*"'), __)), $E($S(__, BindingIdentifier)), __, Parameters, $E(ReturnTypeSuffix), BracedBlock);
1650
+ var FunctionExpression$1 = $S($E($S(Async, __)), Function, $E($S($EXPECT($L5, fail, 'FunctionExpression "*"'), __)), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix), BracedBlock);
1575
1651
  function FunctionExpression(state) {
1576
1652
  if (state.tokenize) {
1577
1653
  return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
@@ -1600,7 +1676,7 @@ var Civet = (() => {
1600
1676
  return ThinArrowFunction$0(state);
1601
1677
  }
1602
1678
  }
1603
- var Arrow$0 = $TV($EXPECT($L19, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
1679
+ var Arrow$0 = $TV($EXPECT($L20, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
1604
1680
  return { $loc, token: $1 };
1605
1681
  });
1606
1682
  function Arrow(state) {
@@ -1693,7 +1769,7 @@ var Civet = (() => {
1693
1769
  return Literal$0(state) || Literal$1(state) || Literal$2(state) || Literal$3(state);
1694
1770
  }
1695
1771
  }
1696
- var NullLiteral$0 = $TV($EXPECT($L20, fail, 'NullLiteral "null"'), function($skip, $loc, $0, $1) {
1772
+ var NullLiteral$0 = $TV($EXPECT($L21, fail, 'NullLiteral "null"'), function($skip, $loc, $0, $1) {
1697
1773
  return { $loc, token: $1 };
1698
1774
  });
1699
1775
  function NullLiteral(state) {
@@ -1705,7 +1781,7 @@ var Civet = (() => {
1705
1781
  return NullLiteral$0(state);
1706
1782
  }
1707
1783
  }
1708
- var BooleanLiteral$0 = $TV($C($EXPECT($L21, fail, 'BooleanLiteral "true"'), $EXPECT($L22, fail, 'BooleanLiteral "false"')), function($skip, $loc, $0, $1) {
1784
+ var BooleanLiteral$0 = $TV($C($EXPECT($L22, fail, 'BooleanLiteral "true"'), $EXPECT($L23, fail, 'BooleanLiteral "false"')), function($skip, $loc, $0, $1) {
1709
1785
  return { $loc, token: $1 };
1710
1786
  });
1711
1787
  function BooleanLiteral(state) {
@@ -1717,7 +1793,7 @@ var Civet = (() => {
1717
1793
  return BooleanLiteral$0(state);
1718
1794
  }
1719
1795
  }
1720
- var Comma$0 = $TV($EXPECT($L23, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
1796
+ var Comma$0 = $TV($EXPECT($L24, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
1721
1797
  return { $loc, token: $1 };
1722
1798
  });
1723
1799
  function Comma(state) {
@@ -1799,7 +1875,7 @@ var Civet = (() => {
1799
1875
  }
1800
1876
  }
1801
1877
  var ArrayElementDelimiter$0 = $S($Q(_), Comma);
1802
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L24, fail, 'ArrayElementDelimiter "]"')));
1878
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L25, fail, 'ArrayElementDelimiter "]"')));
1803
1879
  var ArrayElementDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
1804
1880
  return { $loc, token: "," };
1805
1881
  });
@@ -1830,7 +1906,7 @@ var Civet = (() => {
1830
1906
  return InlineElementList$0(state);
1831
1907
  }
1832
1908
  }
1833
- var ArrayElementExpression$0 = $E($S($E($S($EXPECT($L18, fail, 'ArrayElementExpression "..."'), __)), AssignmentExpression));
1909
+ var ArrayElementExpression$0 = $E($S($E($S($EXPECT($L19, fail, 'ArrayElementExpression "..."'), __)), AssignmentExpression));
1834
1910
  function ArrayElementExpression(state) {
1835
1911
  if (state.verbose)
1836
1912
  console.log("ENTER:", "ArrayElementExpression");
@@ -1853,7 +1929,7 @@ var Civet = (() => {
1853
1929
  var ObjectLiteral$0 = $S(OpenBrace, $Y(EOS), NestedPropertyDefinitions, __, CloseBrace);
1854
1930
  var ObjectLiteral$1 = $S(OpenBrace, __, PropertyDefinitionList, __, $E($S(Comma, __)), CloseBrace);
1855
1931
  var ObjectLiteral$2 = $S(OpenBrace, __, CloseBrace);
1856
- var ObjectLiteral$3 = $S(InsertOpenBrace, $Y(EOS), NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace);
1932
+ var ObjectLiteral$3 = NestedObjectLiteral;
1857
1933
  function ObjectLiteral(state) {
1858
1934
  if (state.tokenize) {
1859
1935
  return $TOKEN("ObjectLiteral", state, ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state));
@@ -1861,6 +1937,16 @@ var Civet = (() => {
1861
1937
  return ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state);
1862
1938
  }
1863
1939
  }
1940
+ var NestedObjectLiteral$0 = $S(InsertOpenBrace, $Y(EOS), NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace);
1941
+ function NestedObjectLiteral(state) {
1942
+ if (state.verbose)
1943
+ console.log("ENTER:", "NestedObjectLiteral");
1944
+ if (state.tokenize) {
1945
+ return $TOKEN("NestedObjectLiteral", state, NestedObjectLiteral$0(state));
1946
+ } else {
1947
+ return NestedObjectLiteral$0(state);
1948
+ }
1949
+ }
1864
1950
  var NestedPropertyDefinitions$0 = $TS($S(PushIndent, $Q(NestedPropertyDefinition), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1865
1951
  var defs = $2;
1866
1952
  if (!defs.length)
@@ -1887,18 +1973,15 @@ var Civet = (() => {
1887
1973
  }
1888
1974
  }
1889
1975
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
1890
- var ObjectPropertyDelimiter$1 = $Y($S($Q(_), CloseBrace));
1891
- var ObjectPropertyDelimiter$2 = $TV($Y($S(__, CloseBrace)), function($skip, $loc, $0, $1) {
1892
- return { $loc, token: "," };
1893
- });
1894
- var ObjectPropertyDelimiter$3 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
1976
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'ObjectPropertyDelimiter "}"')));
1977
+ var ObjectPropertyDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
1895
1978
  return { $loc, token: "," };
1896
1979
  });
1897
1980
  function ObjectPropertyDelimiter(state) {
1898
1981
  if (state.tokenize) {
1899
- return $TOKEN("ObjectPropertyDelimiter", state, ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state) || ObjectPropertyDelimiter$3(state));
1982
+ return $TOKEN("ObjectPropertyDelimiter", state, ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state));
1900
1983
  } else {
1901
- return ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state) || ObjectPropertyDelimiter$3(state);
1984
+ return ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state);
1902
1985
  }
1903
1986
  }
1904
1987
  var PropertyDefinitionList$0 = $S(PropertyDefinition, $Q($S(__, Comma, __, PropertyDefinition)));
@@ -1913,7 +1996,7 @@ var Civet = (() => {
1913
1996
  }
1914
1997
  var PropertyDefinition$0 = $S(PropertyName, __, Colon, AssignmentExpression);
1915
1998
  var PropertyDefinition$1 = MethodDefinition;
1916
- var PropertyDefinition$2 = $S($EXPECT($L18, fail, 'PropertyDefinition "..."'), AssignmentExpression);
1999
+ var PropertyDefinition$2 = $S($EXPECT($L19, fail, 'PropertyDefinition "..."'), AssignmentExpression);
1917
2000
  var PropertyDefinition$3 = IdentifierReference;
1918
2001
  function PropertyDefinition(state) {
1919
2002
  if (state.tokenize) {
@@ -1925,7 +2008,7 @@ var Civet = (() => {
1925
2008
  var PropertyName$0 = NumericLiteral;
1926
2009
  var PropertyName$1 = StringLiteral;
1927
2010
  var PropertyName$2 = IdentifierName;
1928
- var PropertyName$3 = $S(OpenBracket, AssignmentExpression, __, $EXPECT($L24, fail, 'PropertyName "]"'));
2011
+ var PropertyName$3 = $S(OpenBracket, AssignmentExpression, __, $EXPECT($L25, fail, 'PropertyName "]"'));
1929
2012
  function PropertyName(state) {
1930
2013
  if (state.tokenize) {
1931
2014
  return $TOKEN("PropertyName", state, PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state));
@@ -1933,27 +2016,25 @@ var Civet = (() => {
1933
2016
  return PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state);
1934
2017
  }
1935
2018
  }
1936
- var MethodDefinition$0 = $S($EXPECT($L25, fail, 'MethodDefinition "get"'), NonIdContinue, $Q(TrailingComment), ClassElementName, __, Parameters, BracedBlock);
1937
- var MethodDefinition$1 = $S($EXPECT($L26, fail, 'MethodDefinition "set"'), NonIdContinue, $Q(TrailingComment), ClassElementName, __, Parameters, BracedBlock);
1938
- var MethodDefinition$2 = AsyncGeneratorMethod;
1939
- var MethodDefinition$3 = AsyncMethod;
1940
- var MethodDefinition$4 = GeneratorMethod;
1941
- var MethodDefinition$5 = $S(ClassElementName, $Q(_), Parameters, BracedBlock);
2019
+ var MethodDefinition$0 = $S(MethodSignature, BracedBlock);
1942
2020
  function MethodDefinition(state) {
2021
+ if (state.verbose)
2022
+ console.log("ENTER:", "MethodDefinition");
1943
2023
  if (state.tokenize) {
1944
- return $TOKEN("MethodDefinition", state, MethodDefinition$0(state) || MethodDefinition$1(state) || MethodDefinition$2(state) || MethodDefinition$3(state) || MethodDefinition$4(state) || MethodDefinition$5(state));
2024
+ return $TOKEN("MethodDefinition", state, MethodDefinition$0(state));
1945
2025
  } else {
1946
- return MethodDefinition$0(state) || MethodDefinition$1(state) || MethodDefinition$2(state) || MethodDefinition$3(state) || MethodDefinition$4(state) || MethodDefinition$5(state);
2026
+ return MethodDefinition$0(state);
1947
2027
  }
1948
2028
  }
1949
- var MethodModifier$0 = $S($C($EXPECT($L25, fail, 'MethodModifier "get"'), $EXPECT($L26, fail, 'MethodModifier "set"')), NonIdContinue, $Q(TrailingComment));
2029
+ var MethodModifier$0 = $S(GetOrSet, $Q(TrailingComment));
2030
+ var MethodModifier$1 = $S($S(Async, __), $E($S($EXPECT($L5, fail, 'MethodModifier "*"'), __)));
2031
+ var MethodModifier$2 = $S($EXPECT($L5, fail, 'MethodModifier "*"'), __);
2032
+ var MethodModifier$3 = $S(Async, __);
1950
2033
  function MethodModifier(state) {
1951
- if (state.verbose)
1952
- console.log("ENTER:", "MethodModifier");
1953
2034
  if (state.tokenize) {
1954
- return $TOKEN("MethodModifier", state, MethodModifier$0(state));
2035
+ return $TOKEN("MethodModifier", state, MethodModifier$0(state) || MethodModifier$1(state) || MethodModifier$2(state) || MethodModifier$3(state));
1955
2036
  } else {
1956
- return MethodModifier$0(state);
2037
+ return MethodModifier$0(state) || MethodModifier$1(state) || MethodModifier$2(state) || MethodModifier$3(state);
1957
2038
  }
1958
2039
  }
1959
2040
  var MethodSignature$0 = $S($E(MethodModifier), ClassElementName, $Q(_), Parameters);
@@ -1975,7 +2056,7 @@ var Civet = (() => {
1975
2056
  return ClassElementName$0(state) || ClassElementName$1(state);
1976
2057
  }
1977
2058
  }
1978
- var PrivateIdentifier$0 = $S($EXPECT($L8, fail, 'PrivateIdentifier "#"'), IdentifierName);
2059
+ var PrivateIdentifier$0 = $S($EXPECT($L10, fail, 'PrivateIdentifier "#"'), IdentifierName);
1979
2060
  function PrivateIdentifier(state) {
1980
2061
  if (state.verbose)
1981
2062
  console.log("ENTER:", "PrivateIdentifier");
@@ -1985,66 +2066,6 @@ var Civet = (() => {
1985
2066
  return PrivateIdentifier$0(state);
1986
2067
  }
1987
2068
  }
1988
- var GeneratorMethod$0 = $S($EXPECT($L3, fail, 'GeneratorMethod "*"'), __, ClassElementName, __, Parameters, GeneratorBody);
1989
- function GeneratorMethod(state) {
1990
- if (state.verbose)
1991
- console.log("ENTER:", "GeneratorMethod");
1992
- if (state.tokenize) {
1993
- return $TOKEN("GeneratorMethod", state, GeneratorMethod$0(state));
1994
- } else {
1995
- return GeneratorMethod$0(state);
1996
- }
1997
- }
1998
- var GeneratorBody$0 = BracedBlock;
1999
- function GeneratorBody(state) {
2000
- if (state.verbose)
2001
- console.log("ENTER:", "GeneratorBody");
2002
- if (state.tokenize) {
2003
- return $TOKEN("GeneratorBody", state, GeneratorBody$0(state));
2004
- } else {
2005
- return GeneratorBody$0(state);
2006
- }
2007
- }
2008
- var AsyncMethod$0 = $S(Async, $N(EOS), __, ClassElementName, __, Parameters, AsyncFunctionBody);
2009
- function AsyncMethod(state) {
2010
- if (state.verbose)
2011
- console.log("ENTER:", "AsyncMethod");
2012
- if (state.tokenize) {
2013
- return $TOKEN("AsyncMethod", state, AsyncMethod$0(state));
2014
- } else {
2015
- return AsyncMethod$0(state);
2016
- }
2017
- }
2018
- var AsyncFunctionBody$0 = BracedBlock;
2019
- function AsyncFunctionBody(state) {
2020
- if (state.verbose)
2021
- console.log("ENTER:", "AsyncFunctionBody");
2022
- if (state.tokenize) {
2023
- return $TOKEN("AsyncFunctionBody", state, AsyncFunctionBody$0(state));
2024
- } else {
2025
- return AsyncFunctionBody$0(state);
2026
- }
2027
- }
2028
- var AsyncGeneratorMethod$0 = $S(Async, $N(EOS), __, $EXPECT($L3, fail, 'AsyncGeneratorMethod "*"'), __, ClassElementName, __, Parameters, AsyncGeneratorBody);
2029
- function AsyncGeneratorMethod(state) {
2030
- if (state.verbose)
2031
- console.log("ENTER:", "AsyncGeneratorMethod");
2032
- if (state.tokenize) {
2033
- return $TOKEN("AsyncGeneratorMethod", state, AsyncGeneratorMethod$0(state));
2034
- } else {
2035
- return AsyncGeneratorMethod$0(state);
2036
- }
2037
- }
2038
- var AsyncGeneratorBody$0 = BracedBlock;
2039
- function AsyncGeneratorBody(state) {
2040
- if (state.verbose)
2041
- console.log("ENTER:", "AsyncGeneratorBody");
2042
- if (state.tokenize) {
2043
- return $TOKEN("AsyncGeneratorBody", state, AsyncGeneratorBody$0(state));
2044
- } else {
2045
- return AsyncGeneratorBody$0(state);
2046
- }
2047
- }
2048
2069
  var AssignmentOp$0 = $TS($S(AssignmentOpSymbol), function($skip, $loc, $0, $1) {
2049
2070
  return { $loc, token: $1 };
2050
2071
  });
@@ -2096,7 +2117,7 @@ var Civet = (() => {
2096
2117
  }
2097
2118
  }
2098
2119
  var BinaryOpSymbol$0 = $EXPECT($L44, fail, 'BinaryOpSymbol "**"');
2099
- var BinaryOpSymbol$1 = $EXPECT($L3, fail, 'BinaryOpSymbol "*"');
2120
+ var BinaryOpSymbol$1 = $EXPECT($L5, fail, 'BinaryOpSymbol "*"');
2100
2121
  var BinaryOpSymbol$2 = $EXPECT($L45, fail, 'BinaryOpSymbol "/"');
2101
2122
  var BinaryOpSymbol$3 = $EXPECT($L46, fail, 'BinaryOpSymbol "%"');
2102
2123
  var BinaryOpSymbol$4 = $EXPECT($L47, fail, 'BinaryOpSymbol "+"');
@@ -2104,7 +2125,7 @@ var Civet = (() => {
2104
2125
  var BinaryOpSymbol$6 = $EXPECT($L49, fail, 'BinaryOpSymbol "<="');
2105
2126
  var BinaryOpSymbol$7 = $EXPECT($L50, fail, 'BinaryOpSymbol ">="');
2106
2127
  var BinaryOpSymbol$8 = $EXPECT($L51, fail, 'BinaryOpSymbol "<<"');
2107
- var BinaryOpSymbol$9 = $EXPECT($L5, fail, 'BinaryOpSymbol "<"');
2128
+ var BinaryOpSymbol$9 = $EXPECT($L7, fail, 'BinaryOpSymbol "<"');
2108
2129
  var BinaryOpSymbol$10 = $EXPECT($L52, fail, 'BinaryOpSymbol ">>>"');
2109
2130
  var BinaryOpSymbol$11 = $EXPECT($L53, fail, 'BinaryOpSymbol ">>"');
2110
2131
  var BinaryOpSymbol$12 = $EXPECT($L54, fail, 'BinaryOpSymbol ">"');
@@ -2185,7 +2206,7 @@ var Civet = (() => {
2185
2206
  return StatementListItem$0(state);
2186
2207
  }
2187
2208
  }
2188
- var PostfixConditional$0 = $TS($S($Q(TrailingComment), $C(If, Unless), NonIdContinue, Loc, Expression, Loc), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2209
+ var PostfixConditional$0 = $TS($S($Q(TrailingComment), $C(If, Unless), NonIdContinue, Loc, ExpressionWithIndentedApplicationSuppressed, Loc), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2189
2210
  var ws = $1;
2190
2211
  var cond = $2;
2191
2212
  var l1 = $4;
@@ -2319,7 +2340,7 @@ var Civet = (() => {
2319
2340
  var cond = $3;
2320
2341
  if (kind === "until") {
2321
2342
  cond[1] = "(!(";
2322
- cond[5] = "))";
2343
+ cond[4] = "))";
2323
2344
  return ["while", cond];
2324
2345
  }
2325
2346
  return $0;
@@ -2333,7 +2354,7 @@ var Civet = (() => {
2333
2354
  return WhileClause$0(state);
2334
2355
  }
2335
2356
  }
2336
- var ForStatement$0 = $S(For, __, OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, __, $E(Expression), Semicolon, __, $E(Expression), CloseParen, Block);
2357
+ var ForStatement$0 = $S(For, __, OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E(Expression), CloseParen, Block);
2337
2358
  function ForStatement(state) {
2338
2359
  if (state.verbose)
2339
2360
  console.log("ENTER:", "ForStatement");
@@ -2343,8 +2364,8 @@ var Civet = (() => {
2343
2364
  return ForStatement$0(state);
2344
2365
  }
2345
2366
  }
2346
- var ForInOfStatement$0 = $S(For, __, OpenParen, __, $C($S(Var, __, ForBinding), ForDeclaration, LeftHandSideExpression), __, In, __, Expression, __, CloseParen, Block);
2347
- var ForInOfStatement$1 = $S(For, __, InsertOpenParen, $C($S(Var, __, ForBinding), ForDeclaration, LeftHandSideExpression), __, In, __, Expression, InsertCloseParen, Block);
2367
+ var ForInOfStatement$0 = $S(For, __, OpenParen, __, $C($S(Var, __, ForBinding), ForDeclaration, LeftHandSideExpression), __, In, Expression, __, CloseParen, Block);
2368
+ var ForInOfStatement$1 = $S(For, __, InsertOpenParen, $C($S(Var, __, ForBinding), ForDeclaration, LeftHandSideExpression), __, In, Expression, InsertCloseParen, Block);
2348
2369
  var ForInOfStatement$2 = $S(For, $E($S(__, Await)), __, OpenParen, __, $C($S(Var, __, ForBinding), ForDeclaration, LeftHandSideExpression), __, Of, AssignmentExpression, __, CloseParen, Block);
2349
2370
  var ForInOfStatement$3 = $S(For, $E($S(__, Await)), __, InsertOpenParen, $C($S(Var, __, ForBinding), ForDeclaration, LeftHandSideExpression), __, Of, AssignmentExpression, InsertCloseParen, Block);
2350
2371
  function ForInOfStatement(state) {
@@ -2364,18 +2385,6 @@ var Civet = (() => {
2364
2385
  return ForDeclaration$0(state);
2365
2386
  }
2366
2387
  }
2367
- var LetOrConst$0 = $TV($C($EXPECT($L77, fail, 'LetOrConst "let"'), $EXPECT($L78, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
2368
- return { $loc, token: $1 };
2369
- });
2370
- function LetOrConst(state) {
2371
- if (state.verbose)
2372
- console.log("ENTER:", "LetOrConst");
2373
- if (state.tokenize) {
2374
- return $TOKEN("LetOrConst", state, LetOrConst$0(state));
2375
- } else {
2376
- return LetOrConst$0(state);
2377
- }
2378
- }
2379
2388
  var ForBinding$0 = BindingIdentifier;
2380
2389
  var ForBinding$1 = BindingPattern;
2381
2390
  function ForBinding(state) {
@@ -2429,9 +2438,9 @@ var Civet = (() => {
2429
2438
  return NestedCaseClause$0(state);
2430
2439
  }
2431
2440
  }
2432
- var CaseClause$0 = $S($EXPECT($L79, fail, 'CaseClause "case"'), NonIdContinue, $Q(_), Expression, ImpliedColon, NestedBlockExpressions);
2433
- var CaseClause$1 = $S(When, $Q(_), Expression, ImpliedColon, NestedBlockExpressions, InsertBreak);
2434
- var CaseClause$2 = $S($EXPECT($L80, fail, 'CaseClause "default"'), NonIdContinue, ImpliedColon, NestedBlockExpressions);
2441
+ var CaseClause$0 = $S($EXPECT($L77, fail, 'CaseClause "case"'), NonIdContinue, $Q(_), ExpressionWithIndentedApplicationSuppressed, ImpliedColon, NestedBlockExpressions);
2442
+ var CaseClause$1 = $S(When, $Q(_), ExpressionWithIndentedApplicationSuppressed, ImpliedColon, NestedBlockExpressions, InsertBreak);
2443
+ var CaseClause$2 = $S($EXPECT($L78, fail, 'CaseClause "default"'), NonIdContinue, ImpliedColon, NestedBlockExpressions);
2435
2444
  function CaseClause(state) {
2436
2445
  if (state.tokenize) {
2437
2446
  return $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state));
@@ -2440,7 +2449,7 @@ var Civet = (() => {
2440
2449
  }
2441
2450
  }
2442
2451
  var ImpliedColon$0 = $S(__, Colon);
2443
- var ImpliedColon$1 = $TV($EXPECT($L16, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
2452
+ var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
2444
2453
  return { $loc, token: ":" };
2445
2454
  });
2446
2455
  function ImpliedColon(state) {
@@ -2486,7 +2495,7 @@ var Civet = (() => {
2486
2495
  return CatchBind$0(state) || CatchBind$1(state);
2487
2496
  }
2488
2497
  }
2489
- var Finally$0 = $S(__, $EXPECT($L81, fail, 'Finally "finally"'), BracedBlock);
2498
+ var Finally$0 = $S(__, $EXPECT($L79, fail, 'Finally "finally"'), BracedBlock);
2490
2499
  function Finally(state) {
2491
2500
  if (state.verbose)
2492
2501
  console.log("ENTER:", "Finally");
@@ -2505,8 +2514,8 @@ var Civet = (() => {
2505
2514
  return CatchParameter$0(state) || CatchParameter$1(state);
2506
2515
  }
2507
2516
  }
2508
- var Condition$0 = $S(__, OpenParen, __, Expression, __, CloseParen);
2509
- var Condition$1 = $S($N(EOS), __, InsertOpenParen, Expression, InsertCloseParen);
2517
+ var Condition$0 = $S(__, OpenParen, Expression, __, CloseParen);
2518
+ var Condition$1 = $S($N(EOS), __, InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen);
2510
2519
  function Condition(state) {
2511
2520
  if (state.tokenize) {
2512
2521
  return $TOKEN("Condition", state, Condition$0(state) || Condition$1(state));
@@ -2514,6 +2523,34 @@ var Civet = (() => {
2514
2523
  return Condition$0(state) || Condition$1(state);
2515
2524
  }
2516
2525
  }
2526
+ var ExpressionWithIndentedApplicationSuppressed$0 = $TS($S(SuppressIndentedApplication, $E(Expression)), function($skip, $loc, $0, $1, $2) {
2527
+ var exp = $2;
2528
+ module.suppressIndentedApplication = false;
2529
+ if (exp)
2530
+ return exp;
2531
+ return $skip;
2532
+ });
2533
+ function ExpressionWithIndentedApplicationSuppressed(state) {
2534
+ if (state.verbose)
2535
+ console.log("ENTER:", "ExpressionWithIndentedApplicationSuppressed");
2536
+ if (state.tokenize) {
2537
+ return $TOKEN("ExpressionWithIndentedApplicationSuppressed", state, ExpressionWithIndentedApplicationSuppressed$0(state));
2538
+ } else {
2539
+ return ExpressionWithIndentedApplicationSuppressed$0(state);
2540
+ }
2541
+ }
2542
+ var SuppressIndentedApplication$0 = $TV($EXPECT($L1, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
2543
+ module.suppressIndentedApplication = true;
2544
+ });
2545
+ function SuppressIndentedApplication(state) {
2546
+ if (state.verbose)
2547
+ console.log("ENTER:", "SuppressIndentedApplication");
2548
+ if (state.tokenize) {
2549
+ return $TOKEN("SuppressIndentedApplication", state, SuppressIndentedApplication$0(state));
2550
+ } else {
2551
+ return SuppressIndentedApplication$0(state);
2552
+ }
2553
+ }
2517
2554
  var ExpressionStatement$0 = Expression;
2518
2555
  function ExpressionStatement(state) {
2519
2556
  if (state.verbose)
@@ -2524,11 +2561,11 @@ var Civet = (() => {
2524
2561
  return ExpressionStatement$0(state);
2525
2562
  }
2526
2563
  }
2527
- var KeywordStatement$0 = $S($EXPECT($L82, fail, 'KeywordStatement "break"'), NonIdContinue);
2528
- var KeywordStatement$1 = $S($EXPECT($L83, fail, 'KeywordStatement "continue"'), NonIdContinue);
2529
- var KeywordStatement$2 = $S($EXPECT($L84, fail, 'KeywordStatement "debugger"'), NonIdContinue);
2564
+ var KeywordStatement$0 = $S($EXPECT($L80, fail, 'KeywordStatement "break"'), NonIdContinue);
2565
+ var KeywordStatement$1 = $S($EXPECT($L81, fail, 'KeywordStatement "continue"'), NonIdContinue);
2566
+ var KeywordStatement$2 = $S($EXPECT($L82, fail, 'KeywordStatement "debugger"'), NonIdContinue);
2530
2567
  var KeywordStatement$3 = $S(Return, $E(MaybeNestedExpression));
2531
- var KeywordStatement$4 = $S($EXPECT($L85, fail, 'KeywordStatement "throw"'), NonIdContinue, Expression);
2568
+ var KeywordStatement$4 = $S($EXPECT($L83, fail, 'KeywordStatement "throw"'), NonIdContinue, Expression);
2532
2569
  function KeywordStatement(state) {
2533
2570
  if (state.tokenize) {
2534
2571
  return $TOKEN("KeywordStatement", state, KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state));
@@ -2545,7 +2582,7 @@ var Civet = (() => {
2545
2582
  return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
2546
2583
  }
2547
2584
  }
2548
- var ImportDeclaration$0 = $T($S($EXPECT($L86, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
2585
+ var ImportDeclaration$0 = $T($S($EXPECT($L84, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
2549
2586
  return { "ts": true, "children": value };
2550
2587
  });
2551
2588
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -2568,7 +2605,7 @@ var Civet = (() => {
2568
2605
  return ImportDeclaration$0(state) || ImportDeclaration$1(state) || ImportDeclaration$2(state) || ImportDeclaration$3(state);
2569
2606
  }
2570
2607
  }
2571
- var ImpliedImport$0 = $TV($EXPECT($L16, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
2608
+ var ImpliedImport$0 = $TV($EXPECT($L1, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
2572
2609
  return { $loc, token: "import " };
2573
2610
  });
2574
2611
  function ImpliedImport(state) {
@@ -2590,7 +2627,7 @@ var Civet = (() => {
2590
2627
  return ImportClause$0(state) || ImportClause$1(state) || ImportClause$2(state);
2591
2628
  }
2592
2629
  }
2593
- var NameSpaceImport$0 = $S($EXPECT($L3, fail, 'NameSpaceImport "*"'), __, As, NonIdContinue, __, ImportedBinding);
2630
+ var NameSpaceImport$0 = $S($EXPECT($L5, fail, 'NameSpaceImport "*"'), __, As, NonIdContinue, __, ImportedBinding);
2594
2631
  function NameSpaceImport(state) {
2595
2632
  if (state.verbose)
2596
2633
  console.log("ENTER:", "NameSpaceImport");
@@ -2683,7 +2720,7 @@ var Civet = (() => {
2683
2720
  return ImportedBinding$0(state);
2684
2721
  }
2685
2722
  }
2686
- var ExportDeclaration$0 = $S(Export, __, $EXPECT($L80, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
2723
+ var ExportDeclaration$0 = $S(Export, __, $EXPECT($L78, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
2687
2724
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
2688
2725
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
2689
2726
  function ExportDeclaration(state) {
@@ -2693,7 +2730,7 @@ var Civet = (() => {
2693
2730
  return ExportDeclaration$0(state) || ExportDeclaration$1(state) || ExportDeclaration$2(state);
2694
2731
  }
2695
2732
  }
2696
- var ExportFromClause$0 = $S($EXPECT($L3, fail, 'ExportFromClause "*"'), $E($S(__, As, NonIdContinue, __, ModuleExportName)));
2733
+ var ExportFromClause$0 = $S($EXPECT($L5, fail, 'ExportFromClause "*"'), $E($S(__, As, NonIdContinue, __, ModuleExportName)));
2697
2734
  var ExportFromClause$1 = NamedExports;
2698
2735
  function ExportFromClause(state) {
2699
2736
  if (state.tokenize) {
@@ -2760,7 +2797,7 @@ var Civet = (() => {
2760
2797
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
2761
2798
  }
2762
2799
  }
2763
- var ConstAssignment$0 = $TV($EXPECT($L87, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
2800
+ var ConstAssignment$0 = $TV($EXPECT($L85, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
2764
2801
  return { $loc, token: "=" };
2765
2802
  });
2766
2803
  function ConstAssignment(state) {
@@ -2906,10 +2943,10 @@ var Civet = (() => {
2906
2943
  var e = $3;
2907
2944
  return [s, module.dedentBlockString(str), e];
2908
2945
  });
2909
- var StringLiteral$2 = $TV($TEXT($S($EXPECT($L88, fail, 'StringLiteral "\\\\\\""'), $Q(DoubleStringCharacter), $EXPECT($L88, fail, 'StringLiteral "\\\\\\""'))), function($skip, $loc, $0, $1) {
2946
+ var StringLiteral$2 = $TV($TEXT($S($EXPECT($L86, fail, 'StringLiteral "\\\\\\""'), $Q(DoubleStringCharacter), $EXPECT($L86, fail, 'StringLiteral "\\\\\\""'))), function($skip, $loc, $0, $1) {
2910
2947
  return { $loc, token: $1 };
2911
2948
  });
2912
- var StringLiteral$3 = $TV($TEXT($S($EXPECT($L89, fail, `StringLiteral "'"`), $Q(SingleStringCharacter), $EXPECT($L89, fail, `StringLiteral "'"`))), function($skip, $loc, $0, $1) {
2949
+ var StringLiteral$3 = $TV($TEXT($S($EXPECT($L87, fail, `StringLiteral "'"`), $Q(SingleStringCharacter), $EXPECT($L87, fail, `StringLiteral "'"`))), function($skip, $loc, $0, $1) {
2913
2950
  return { $loc, token: $1 };
2914
2951
  });
2915
2952
  function StringLiteral(state) {
@@ -3005,7 +3042,7 @@ var Civet = (() => {
3005
3042
  return RegularExpressionFlags$0(state);
3006
3043
  }
3007
3044
  }
3008
- var TemplateLiteral$0 = $S($EXPECT($L90, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L90, fail, 'TemplateLiteral "`"'));
3045
+ var TemplateLiteral$0 = $S($EXPECT($L0, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L0, fail, 'TemplateLiteral "`"'));
3009
3046
  function TemplateLiteral(state) {
3010
3047
  if (state.verbose)
3011
3048
  console.log("ENTER:", "TemplateLiteral");
@@ -3015,7 +3052,7 @@ var Civet = (() => {
3015
3052
  return TemplateLiteral$0(state);
3016
3053
  }
3017
3054
  }
3018
- var TemplateSubstitution$0 = $S($EXPECT($L91, fail, 'TemplateSubstitution "${"'), __, Expression, __, CloseBrace);
3055
+ var TemplateSubstitution$0 = $S($EXPECT($L88, fail, 'TemplateSubstitution "${"'), Expression, __, CloseBrace);
3019
3056
  function TemplateSubstitution(state) {
3020
3057
  if (state.verbose)
3021
3058
  console.log("ENTER:", "TemplateSubstitution");
@@ -3074,7 +3111,7 @@ var Civet = (() => {
3074
3111
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3075
3112
  }
3076
3113
  }
3077
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L92, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L93, fail, 'JSMultiLineComment "*/"')), $EXPECT($R19, fail, "JSMultiLineComment /./"))), $EXPECT($L93, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3114
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L90, fail, 'JSMultiLineComment "*/"')), $EXPECT($R19, fail, "JSMultiLineComment /./"))), $EXPECT($L90, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3078
3115
  return { $loc, token: $1 };
3079
3116
  });
3080
3117
  function JSMultiLineComment(state) {
@@ -3100,7 +3137,7 @@ var Civet = (() => {
3100
3137
  return CoffeeSingleLineComment$0(state);
3101
3138
  }
3102
3139
  }
3103
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L94, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L94, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L93, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R19, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L94, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3140
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L91, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L91, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L90, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R19, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L91, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3104
3141
  return { $loc, token: `/*${$2}*/` };
3105
3142
  });
3106
3143
  function CoffeeMultiLineComment(state) {
@@ -3112,7 +3149,7 @@ var Civet = (() => {
3112
3149
  return CoffeeMultiLineComment$0(state);
3113
3150
  }
3114
3151
  }
3115
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L92, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L93, fail, 'InlineComment "*/"')), $EXPECT($R21, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L93, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3152
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L90, fail, 'InlineComment "*/"')), $EXPECT($R21, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L90, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3116
3153
  return { $loc, token: $1 };
3117
3154
  });
3118
3155
  function InlineComment(state) {
@@ -3189,7 +3226,7 @@ var Civet = (() => {
3189
3226
  }
3190
3227
  }
3191
3228
  var StatementDelimiter$0 = $S($Q(TrailingComment), Semicolon, $Q(TrailingComment));
3192
- var StatementDelimiter$1 = $TS($S($EXPECT($L16, fail, 'StatementDelimiter ""'), $Y(EOS)), function($skip, $loc, $0, $1, $2) {
3229
+ var StatementDelimiter$1 = $TS($S($EXPECT($L1, fail, 'StatementDelimiter ""'), $Y(EOS)), function($skip, $loc, $0, $1, $2) {
3193
3230
  return { $loc, token: ";" };
3194
3231
  });
3195
3232
  function StatementDelimiter(state) {
@@ -3209,7 +3246,7 @@ var Civet = (() => {
3209
3246
  return NonIdContinue$0(state);
3210
3247
  }
3211
3248
  }
3212
- var Loc$0 = $TV($EXPECT($L16, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
3249
+ var Loc$0 = $TV($EXPECT($L1, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
3213
3250
  return { $loc, token: "" };
3214
3251
  });
3215
3252
  function Loc(state) {
@@ -3221,7 +3258,7 @@ var Civet = (() => {
3221
3258
  return Loc$0(state);
3222
3259
  }
3223
3260
  }
3224
- var As$0 = $TS($S($EXPECT($L95, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3261
+ var As$0 = $TS($S($EXPECT($L92, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3225
3262
  return { $loc, token: $1 };
3226
3263
  });
3227
3264
  function As(state) {
@@ -3233,7 +3270,7 @@ var Civet = (() => {
3233
3270
  return As$0(state);
3234
3271
  }
3235
3272
  }
3236
- var Async$0 = $TV($EXPECT($L96, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3273
+ var Async$0 = $TV($EXPECT($L93, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3237
3274
  return { $loc, token: $1 };
3238
3275
  });
3239
3276
  function Async(state) {
@@ -3245,7 +3282,7 @@ var Civet = (() => {
3245
3282
  return Async$0(state);
3246
3283
  }
3247
3284
  }
3248
- var Await$0 = $TS($S($EXPECT($L97, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3285
+ var Await$0 = $TS($S($EXPECT($L94, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3249
3286
  return { $loc, token: $1 };
3250
3287
  });
3251
3288
  function Await(state) {
@@ -3257,7 +3294,7 @@ var Civet = (() => {
3257
3294
  return Await$0(state);
3258
3295
  }
3259
3296
  }
3260
- var Catch$0 = $TV($EXPECT($L98, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3297
+ var Catch$0 = $TV($EXPECT($L95, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3261
3298
  return { $loc, token: $1 };
3262
3299
  });
3263
3300
  function Catch(state) {
@@ -3269,7 +3306,7 @@ var Civet = (() => {
3269
3306
  return Catch$0(state);
3270
3307
  }
3271
3308
  }
3272
- var Class$0 = $TV($EXPECT($L99, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3309
+ var Class$0 = $TV($EXPECT($L96, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3273
3310
  return { $loc, token: $1 };
3274
3311
  });
3275
3312
  function Class(state) {
@@ -3281,7 +3318,7 @@ var Civet = (() => {
3281
3318
  return Class$0(state);
3282
3319
  }
3283
3320
  }
3284
- var CloseBrace$0 = $TV($EXPECT($L100, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
3321
+ var CloseBrace$0 = $TV($EXPECT($L26, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
3285
3322
  return { $loc, token: $1 };
3286
3323
  });
3287
3324
  function CloseBrace(state) {
@@ -3293,7 +3330,7 @@ var Civet = (() => {
3293
3330
  return CloseBrace$0(state);
3294
3331
  }
3295
3332
  }
3296
- var CloseBracket$0 = $TV($EXPECT($L24, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
3333
+ var CloseBracket$0 = $TV($EXPECT($L25, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
3297
3334
  return { $loc, token: $1 };
3298
3335
  });
3299
3336
  function CloseBracket(state) {
@@ -3305,7 +3342,7 @@ var Civet = (() => {
3305
3342
  return CloseBracket$0(state);
3306
3343
  }
3307
3344
  }
3308
- var CloseParen$0 = $TV($EXPECT($L17, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
3345
+ var CloseParen$0 = $TV($EXPECT($L18, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
3309
3346
  return { $loc, token: $1 };
3310
3347
  });
3311
3348
  function CloseParen(state) {
@@ -3317,7 +3354,7 @@ var Civet = (() => {
3317
3354
  return CloseParen$0(state);
3318
3355
  }
3319
3356
  }
3320
- var Colon$0 = $TV($EXPECT($L101, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3357
+ var Colon$0 = $TV($EXPECT($L97, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3321
3358
  return { $loc, token: $1 };
3322
3359
  });
3323
3360
  function Colon(state) {
@@ -3329,7 +3366,7 @@ var Civet = (() => {
3329
3366
  return Colon$0(state);
3330
3367
  }
3331
3368
  }
3332
- var Dot$0 = $TV($EXPECT($L102, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3369
+ var Dot$0 = $TV($EXPECT($L98, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3333
3370
  return { $loc, token: $1 };
3334
3371
  });
3335
3372
  function Dot(state) {
@@ -3341,7 +3378,7 @@ var Civet = (() => {
3341
3378
  return Dot$0(state);
3342
3379
  }
3343
3380
  }
3344
- var Else$0 = $TV($EXPECT($L103, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3381
+ var Else$0 = $TV($EXPECT($L99, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3345
3382
  return { $loc, token: $1 };
3346
3383
  });
3347
3384
  function Else(state) {
@@ -3365,7 +3402,7 @@ var Civet = (() => {
3365
3402
  return Equals$0(state);
3366
3403
  }
3367
3404
  }
3368
- var Export$0 = $TS($S($EXPECT($L104, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3405
+ var Export$0 = $TS($S($EXPECT($L100, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3369
3406
  return { $loc, token: $1 };
3370
3407
  });
3371
3408
  function Export(state) {
@@ -3377,7 +3414,7 @@ var Civet = (() => {
3377
3414
  return Export$0(state);
3378
3415
  }
3379
3416
  }
3380
- var For$0 = $TS($S($EXPECT($L105, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3417
+ var For$0 = $TS($S($EXPECT($L101, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3381
3418
  return { $loc, token: $1 };
3382
3419
  });
3383
3420
  function For(state) {
@@ -3389,7 +3426,7 @@ var Civet = (() => {
3389
3426
  return For$0(state);
3390
3427
  }
3391
3428
  }
3392
- var From$0 = $TS($S($EXPECT($L106, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3429
+ var From$0 = $TS($S($EXPECT($L102, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3393
3430
  return { $loc, token: $1 };
3394
3431
  });
3395
3432
  function From(state) {
@@ -3401,7 +3438,7 @@ var Civet = (() => {
3401
3438
  return From$0(state);
3402
3439
  }
3403
3440
  }
3404
- var Function$0 = $TV($EXPECT($L107, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3441
+ var Function$0 = $TV($EXPECT($L103, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3405
3442
  return { $loc, token: $1 };
3406
3443
  });
3407
3444
  function Function(state) {
@@ -3413,7 +3450,19 @@ var Civet = (() => {
3413
3450
  return Function$0(state);
3414
3451
  }
3415
3452
  }
3416
- var If$0 = $TV($EXPECT($L108, fail, 'If "if"'), function($skip, $loc, $0, $1) {
3453
+ var GetOrSet$0 = $TS($S($C($EXPECT($L104, fail, 'GetOrSet "get"'), $EXPECT($L105, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3454
+ return { $loc, token: $1 };
3455
+ });
3456
+ function GetOrSet(state) {
3457
+ if (state.verbose)
3458
+ console.log("ENTER:", "GetOrSet");
3459
+ if (state.tokenize) {
3460
+ return $TOKEN("GetOrSet", state, GetOrSet$0(state));
3461
+ } else {
3462
+ return GetOrSet$0(state);
3463
+ }
3464
+ }
3465
+ var If$0 = $TV($EXPECT($L106, fail, 'If "if"'), function($skip, $loc, $0, $1) {
3417
3466
  return { $loc, token: $1 };
3418
3467
  });
3419
3468
  function If(state) {
@@ -3425,7 +3474,7 @@ var Civet = (() => {
3425
3474
  return If$0(state);
3426
3475
  }
3427
3476
  }
3428
- var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R26, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
3477
+ var Import$0 = $TS($S($EXPECT($L13, fail, 'Import "import"'), $Y($EXPECT($R26, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
3429
3478
  return { $loc, token: $1 };
3430
3479
  });
3431
3480
  function Import(state) {
@@ -3449,6 +3498,18 @@ var Civet = (() => {
3449
3498
  return In$0(state);
3450
3499
  }
3451
3500
  }
3501
+ var LetOrConst$0 = $TV($C($EXPECT($L107, fail, 'LetOrConst "let"'), $EXPECT($L108, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
3502
+ return { $loc, token: $1 };
3503
+ });
3504
+ function LetOrConst(state) {
3505
+ if (state.verbose)
3506
+ console.log("ENTER:", "LetOrConst");
3507
+ if (state.tokenize) {
3508
+ return $TOKEN("LetOrConst", state, LetOrConst$0(state));
3509
+ } else {
3510
+ return LetOrConst$0(state);
3511
+ }
3512
+ }
3452
3513
  var Loop$0 = $TS($S($EXPECT($L109, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3453
3514
  return { $loc, token: "while(true)" };
3454
3515
  });
@@ -3560,13 +3621,14 @@ var Civet = (() => {
3560
3621
  var Static$0 = $TV($EXPECT($L117, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
3561
3622
  return { $loc, token: $1 };
3562
3623
  });
3624
+ var Static$1 = $TV($EXPECT($L11, fail, 'Static "@"'), function($skip, $loc, $0, $1) {
3625
+ return { $loc, token: "static " };
3626
+ });
3563
3627
  function Static(state) {
3564
- if (state.verbose)
3565
- console.log("ENTER:", "Static");
3566
3628
  if (state.tokenize) {
3567
- return $TOKEN("Static", state, Static$0(state));
3629
+ return $TOKEN("Static", state, Static$0(state) || Static$1(state));
3568
3630
  } else {
3569
- return Static$0(state);
3631
+ return Static$0(state) || Static$1(state);
3570
3632
  }
3571
3633
  }
3572
3634
  var Switch$0 = $TV($EXPECT($L118, fail, 'Switch "switch"'), function($skip, $loc, $0, $1) {
@@ -3679,7 +3741,7 @@ var Civet = (() => {
3679
3741
  return JSXElement$0(state) || JSXElement$1(state);
3680
3742
  }
3681
3743
  }
3682
- var JSXSelfClosingElement$0 = $S($EXPECT($L5, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L126, fail, 'JSXSelfClosingElement "/>"'));
3744
+ var JSXSelfClosingElement$0 = $S($EXPECT($L7, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L126, fail, 'JSXSelfClosingElement "/>"'));
3683
3745
  function JSXSelfClosingElement(state) {
3684
3746
  if (state.verbose)
3685
3747
  console.log("ENTER:", "JSXSelfClosingElement");
@@ -3689,7 +3751,7 @@ var Civet = (() => {
3689
3751
  return JSXSelfClosingElement$0(state);
3690
3752
  }
3691
3753
  }
3692
- var JSXOpeningElement$0 = $S($EXPECT($L5, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L54, fail, 'JSXOpeningElement ">"'));
3754
+ var JSXOpeningElement$0 = $S($EXPECT($L7, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L54, fail, 'JSXOpeningElement ">"'));
3693
3755
  function JSXOpeningElement(state) {
3694
3756
  if (state.verbose)
3695
3757
  console.log("ENTER:", "JSXOpeningElement");
@@ -3749,7 +3811,7 @@ var Civet = (() => {
3749
3811
  return JSXAttributes$0(state);
3750
3812
  }
3751
3813
  }
3752
- var JSXAttribute$0 = $S(OpenBrace, __, $EXPECT($L18, fail, 'JSXAttribute "..."'), __, AssignmentExpression, __, CloseBrace);
3814
+ var JSXAttribute$0 = $S(OpenBrace, __, $EXPECT($L19, fail, 'JSXAttribute "..."'), __, AssignmentExpression, __, CloseBrace);
3753
3815
  var JSXAttribute$1 = $S(JSXAttributeName, $E(JSXAttributeInitializer));
3754
3816
  function JSXAttribute(state) {
3755
3817
  if (state.tokenize) {
@@ -3821,7 +3883,7 @@ var Civet = (() => {
3821
3883
  return JSXText$0(state);
3822
3884
  }
3823
3885
  }
3824
- var JSXChildExpression$0 = $S(__, $E($S($EXPECT($L18, fail, 'JSXChildExpression "..."'), __)), AssignmentExpression);
3886
+ var JSXChildExpression$0 = $S(__, $E($S($EXPECT($L19, fail, 'JSXChildExpression "..."'), __)), AssignmentExpression);
3825
3887
  function JSXChildExpression(state) {
3826
3888
  if (state.verbose)
3827
3889
  console.log("ENTER:", "JSXChildExpression");
@@ -4111,7 +4173,7 @@ var Civet = (() => {
4111
4173
  return TypePrimary$0(state) || TypePrimary$1(state) || TypePrimary$2(state) || TypePrimary$3(state) || TypePrimary$4(state);
4112
4174
  }
4113
4175
  }
4114
- var TypeConditional$0 = $S(TypeBinary, $E($S(__, $EXPECT($L6, fail, 'TypeConditional "extends"'), Type, $E($S(__, QuestionMark, Type, __, Colon, Type)))));
4176
+ var TypeConditional$0 = $S(TypeBinary, $E($S(__, $EXPECT($L8, fail, 'TypeConditional "extends"'), Type, $E($S(__, QuestionMark, Type, __, Colon, Type)))));
4115
4177
  function TypeConditional(state) {
4116
4178
  if (state.verbose)
4117
4179
  console.log("ENTER:", "TypeConditional");
@@ -4140,7 +4202,7 @@ var Civet = (() => {
4140
4202
  return TypeBinaryOp$0(state) || TypeBinaryOp$1(state);
4141
4203
  }
4142
4204
  }
4143
- var FunctionType$0 = $S(Parameters, __, $EXPECT($L4, fail, 'FunctionType "=>"'), Type);
4205
+ var FunctionType$0 = $S(Parameters, __, $EXPECT($L6, fail, 'FunctionType "=>"'), Type);
4144
4206
  function FunctionType(state) {
4145
4207
  if (state.verbose)
4146
4208
  console.log("ENTER:", "FunctionType");
@@ -4150,7 +4212,7 @@ var Civet = (() => {
4150
4212
  return FunctionType$0(state);
4151
4213
  }
4152
4214
  }
4153
- var TypeArguments$0 = $S(__, $EXPECT($L5, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L54, fail, 'TypeArguments ">"'));
4215
+ var TypeArguments$0 = $S(__, $EXPECT($L7, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L54, fail, 'TypeArguments ">"'));
4154
4216
  function TypeArguments(state) {
4155
4217
  if (state.verbose)
4156
4218
  console.log("ENTER:", "TypeArguments");
@@ -4160,7 +4222,7 @@ var Civet = (() => {
4160
4222
  return TypeArguments$0(state);
4161
4223
  }
4162
4224
  }
4163
- var TypeParameters$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L54, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
4225
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L7, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L54, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
4164
4226
  return { ts: true, children: $0 };
4165
4227
  });
4166
4228
  function TypeParameters(state) {
@@ -4182,7 +4244,7 @@ var Civet = (() => {
4182
4244
  return TypeParameter$0(state);
4183
4245
  }
4184
4246
  }
4185
- var TypeConstraint$0 = $S(__, $EXPECT($L6, fail, 'TypeConstraint "extends"'), Type);
4247
+ var TypeConstraint$0 = $S(__, $EXPECT($L8, fail, 'TypeConstraint "extends"'), Type);
4186
4248
  function TypeConstraint(state) {
4187
4249
  if (state.verbose)
4188
4250
  console.log("ENTER:", "TypeConstraint");
@@ -4257,7 +4319,7 @@ var Civet = (() => {
4257
4319
  return EOF$0(state);
4258
4320
  }
4259
4321
  }
4260
- var Debugger$0 = $TV($EXPECT($L16, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
4322
+ var Debugger$0 = $TV($EXPECT($L1, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
4261
4323
  debugger;
4262
4324
  });
4263
4325
  function Debugger(state) {
@@ -4269,7 +4331,7 @@ var Civet = (() => {
4269
4331
  return Debugger$0(state);
4270
4332
  }
4271
4333
  }
4272
- var InsertOpenParen$0 = $TV($EXPECT($L16, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
4334
+ var InsertOpenParen$0 = $TV($EXPECT($L1, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
4273
4335
  return { $loc, token: "(" };
4274
4336
  });
4275
4337
  function InsertOpenParen(state) {
@@ -4281,7 +4343,7 @@ var Civet = (() => {
4281
4343
  return InsertOpenParen$0(state);
4282
4344
  }
4283
4345
  }
4284
- var InsertCloseParen$0 = $TV($EXPECT($L16, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
4346
+ var InsertCloseParen$0 = $TV($EXPECT($L1, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
4285
4347
  return { $loc, token: ")" };
4286
4348
  });
4287
4349
  function InsertCloseParen(state) {
@@ -4293,7 +4355,7 @@ var Civet = (() => {
4293
4355
  return InsertCloseParen$0(state);
4294
4356
  }
4295
4357
  }
4296
- var InsertOpenBrace$0 = $TV($EXPECT($L16, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
4358
+ var InsertOpenBrace$0 = $TV($EXPECT($L1, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
4297
4359
  return [{ $loc, token: " " }, { $loc, token: "{" }];
4298
4360
  });
4299
4361
  function InsertOpenBrace(state) {
@@ -4305,7 +4367,7 @@ var Civet = (() => {
4305
4367
  return InsertOpenBrace$0(state);
4306
4368
  }
4307
4369
  }
4308
- var InsertCloseBrace$0 = $TV($EXPECT($L16, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
4370
+ var InsertCloseBrace$0 = $TV($EXPECT($L1, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
4309
4371
  return { $loc, token: "}" };
4310
4372
  });
4311
4373
  function InsertCloseBrace(state) {
@@ -4317,7 +4379,7 @@ var Civet = (() => {
4317
4379
  return InsertCloseBrace$0(state);
4318
4380
  }
4319
4381
  }
4320
- var InsertConst$0 = $TV($EXPECT($L16, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
4382
+ var InsertConst$0 = $TV($EXPECT($L1, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
4321
4383
  return { $loc, token: "const " };
4322
4384
  });
4323
4385
  function InsertConst(state) {
@@ -4329,7 +4391,7 @@ var Civet = (() => {
4329
4391
  return InsertConst$0(state);
4330
4392
  }
4331
4393
  }
4332
- var InsertReadonly$0 = $TV($EXPECT($L16, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
4394
+ var InsertReadonly$0 = $TV($EXPECT($L1, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
4333
4395
  return { ts: true, children: [{ $loc, token: "readonly " }] };
4334
4396
  });
4335
4397
  function InsertReadonly(state) {
@@ -4341,7 +4403,7 @@ var Civet = (() => {
4341
4403
  return InsertReadonly$0(state);
4342
4404
  }
4343
4405
  }
4344
- var InsertNewline$0 = $TV($EXPECT($L16, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
4406
+ var InsertNewline$0 = $TV($EXPECT($L1, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
4345
4407
  return "\n";
4346
4408
  });
4347
4409
  function InsertNewline(state) {
@@ -4353,8 +4415,8 @@ var Civet = (() => {
4353
4415
  return InsertNewline$0(state);
4354
4416
  }
4355
4417
  }
4356
- var InsertIndent$0 = $TV($EXPECT($L16, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
4357
- return "".padStart(global.currentIndent * 2);
4418
+ var InsertIndent$0 = $TV($EXPECT($L1, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
4419
+ return "".padStart(module.currentIndent * 2);
4358
4420
  });
4359
4421
  function InsertIndent(state) {
4360
4422
  if (state.verbose)
@@ -4365,7 +4427,7 @@ var Civet = (() => {
4365
4427
  return InsertIndent$0(state);
4366
4428
  }
4367
4429
  }
4368
- var InsertSpace$0 = $TV($EXPECT($L16, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
4430
+ var InsertSpace$0 = $TV($EXPECT($L1, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
4369
4431
  return { $loc, token: " " };
4370
4432
  });
4371
4433
  function InsertSpace(state) {
@@ -4377,7 +4439,7 @@ var Civet = (() => {
4377
4439
  return InsertSpace$0(state);
4378
4440
  }
4379
4441
  }
4380
- var InsertDot$0 = $TV($EXPECT($L16, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
4442
+ var InsertDot$0 = $TV($EXPECT($L1, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
4381
4443
  return { $loc, token: "." };
4382
4444
  });
4383
4445
  function InsertDot(state) {
@@ -4389,7 +4451,7 @@ var Civet = (() => {
4389
4451
  return InsertDot$0(state);
4390
4452
  }
4391
4453
  }
4392
- var InsertBreak$0 = $TV($EXPECT($L16, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
4454
+ var InsertBreak$0 = $TV($EXPECT($L1, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
4393
4455
  return { $loc, token: "break;" };
4394
4456
  });
4395
4457
  function InsertBreak(state) {
@@ -4401,11 +4463,11 @@ var Civet = (() => {
4401
4463
  return InsertBreak$0(state);
4402
4464
  }
4403
4465
  }
4404
- var Init$0 = $TS($S($E(Shebang), DirectivePrologue, $EXPECT($L16, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
4466
+ var Init$0 = $TS($S($E(Shebang), DirectivePrologue, $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
4405
4467
  var directives = $2;
4406
- global.currentIndent = 0;
4407
- global.indentLevels = [0];
4408
- global.verbose = false;
4468
+ module.currentIndent = 0;
4469
+ module.indentLevels = [0];
4470
+ module.verbose = false;
4409
4471
  if (directives) {
4410
4472
  const compatRe = /use coffee-compat/;
4411
4473
  module.coffeeCompat = directives.some((d) => d[1].token?.match(compatRe));
@@ -4436,7 +4498,12 @@ var Civet = (() => {
4436
4498
  }
4437
4499
  }
4438
4500
  var Indent$0 = $TV($Q($C($EXPECT($L139, fail, 'Indent " "'), $EXPECT($L140, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
4439
- return $1.length;
4501
+ const level = $1.length;
4502
+ return {
4503
+ $loc,
4504
+ token: "".padStart(level * 2),
4505
+ level
4506
+ };
4440
4507
  });
4441
4508
  function Indent(state) {
4442
4509
  if (state.verbose)
@@ -4447,13 +4514,60 @@ var Civet = (() => {
4447
4514
  return Indent$0(state);
4448
4515
  }
4449
4516
  }
4450
- var PushIndent$0 = $TV($EXPECT($L16, fail, 'PushIndent ""'), function($skip, $loc, $0, $1) {
4451
- global.currentIndent++;
4452
- if (global.verbose) {
4453
- console.log("pushing indent", global.currentIndent);
4517
+ var TrackIndent$0 = $TV($EXPECT($L1, fail, 'TrackIndent ""'), function($skip, $loc, $0, $1) {
4518
+ module.indentLevels.push(module.currentIndent);
4519
+ });
4520
+ function TrackIndent(state) {
4521
+ if (state.verbose)
4522
+ console.log("ENTER:", "TrackIndent");
4523
+ if (state.tokenize) {
4524
+ return $TOKEN("TrackIndent", state, TrackIndent$0(state));
4525
+ } else {
4526
+ return TrackIndent$0(state);
4527
+ }
4528
+ }
4529
+ var Samedent$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
4530
+ var indent = $2;
4531
+ const { level } = indent;
4532
+ const currentIndent = module.indentLevels[module.indentLevels.length - 1];
4533
+ if (level === currentIndent) {
4534
+ return $0;
4535
+ }
4536
+ return $skip;
4537
+ });
4538
+ function Samedent(state) {
4539
+ if (state.verbose)
4540
+ console.log("ENTER:", "Samedent");
4541
+ if (state.tokenize) {
4542
+ return $TOKEN("Samedent", state, Samedent$0(state));
4543
+ } else {
4544
+ return Samedent$0(state);
4545
+ }
4546
+ }
4547
+ var IndentedFurther$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
4548
+ var indent = $2;
4549
+ const { level } = indent;
4550
+ const currentIndent = module.indentLevels[module.indentLevels.length - 1];
4551
+ if (level > currentIndent) {
4552
+ return $0;
4454
4553
  }
4455
- global.indentLevels.push(global.currentIndent);
4456
- return global.currentIndent;
4554
+ return $skip;
4555
+ });
4556
+ function IndentedFurther(state) {
4557
+ if (state.verbose)
4558
+ console.log("ENTER:", "IndentedFurther");
4559
+ if (state.tokenize) {
4560
+ return $TOKEN("IndentedFurther", state, IndentedFurther$0(state));
4561
+ } else {
4562
+ return IndentedFurther$0(state);
4563
+ }
4564
+ }
4565
+ var PushIndent$0 = $TV($EXPECT($L1, fail, 'PushIndent ""'), function($skip, $loc, $0, $1) {
4566
+ module.currentIndent++;
4567
+ if (module.verbose) {
4568
+ console.log("pushing indent", module.currentIndent);
4569
+ }
4570
+ module.indentLevels.push(module.currentIndent);
4457
4571
  });
4458
4572
  function PushIndent(state) {
4459
4573
  if (state.verbose)
@@ -4464,13 +4578,12 @@ var Civet = (() => {
4464
4578
  return PushIndent$0(state);
4465
4579
  }
4466
4580
  }
4467
- var PopIndent$0 = $TV($EXPECT($L16, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
4468
- if (global.verbose) {
4469
- console.log("popping indent", global.indentLevels[global.indentLevels.length - 1], "->", global.indentLevels[global.indentLevels.length - 2]);
4581
+ var PopIndent$0 = $TV($EXPECT($L1, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
4582
+ if (module.verbose) {
4583
+ console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
4470
4584
  }
4471
- global.indentLevels.pop();
4472
- global.currentIndent = global.indentLevels[global.indentLevels.length - 1];
4473
- return global.currentIndent;
4585
+ module.indentLevels.pop();
4586
+ module.currentIndent = module.indentLevels[module.indentLevels.length - 1];
4474
4587
  });
4475
4588
  function PopIndent(state) {
4476
4589
  if (state.verbose)
@@ -4484,18 +4597,19 @@ var Civet = (() => {
4484
4597
  var Nested$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
4485
4598
  var eos = $1;
4486
4599
  var indent = $2;
4487
- const currentIndent = global.indentLevels[global.indentLevels.length - 1];
4488
- if (global.verbose) {
4489
- console.log("global indent", global.currentIndent);
4490
- console.log("Indented", indent, currentIndent);
4491
- }
4492
- if (indent !== currentIndent) {
4493
- if (global.verbose) {
4600
+ const { level } = indent;
4601
+ const currentIndent = module.indentLevels[module.indentLevels.length - 1];
4602
+ if (module.verbose) {
4603
+ console.log("global indent", module.currentIndent);
4604
+ console.log("Indented", level, currentIndent);
4605
+ }
4606
+ if (level !== currentIndent) {
4607
+ if (module.verbose) {
4494
4608
  console.log("skipped nested");
4495
4609
  }
4496
4610
  return $skip;
4497
4611
  }
4498
- return [eos, "".padStart(indent * 2)];
4612
+ return $0;
4499
4613
  });
4500
4614
  function Nested(state) {
4501
4615
  if (state.verbose)
@@ -4506,31 +4620,6 @@ var Civet = (() => {
4506
4620
  return Nested$0(state);
4507
4621
  }
4508
4622
  }
4509
- var NestedFurther$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
4510
- var eos = $1;
4511
- var indent = $2;
4512
- const currentIndent = global.indentLevels[global.indentLevels.length - 1];
4513
- if (global.verbose) {
4514
- console.log("global indent", global.currentIndent);
4515
- console.log("Indented", indent, currentIndent);
4516
- }
4517
- if (indent !== currentIndent + 1) {
4518
- if (global.verbose) {
4519
- console.log("skipped nested");
4520
- }
4521
- return $skip;
4522
- }
4523
- return [eos, "".padStart(indent * 2)];
4524
- });
4525
- function NestedFurther(state) {
4526
- if (state.verbose)
4527
- console.log("ENTER:", "NestedFurther");
4528
- if (state.tokenize) {
4529
- return $TOKEN("NestedFurther", state, NestedFurther$0(state));
4530
- } else {
4531
- return NestedFurther$0(state);
4532
- }
4533
- }
4534
4623
  module.exports = {
4535
4624
  parse
4536
4625
  };
@@ -4765,7 +4854,6 @@ var Civet = (() => {
4765
4854
  console.warn("No source map found in code");
4766
4855
  return codeWithSourceMap;
4767
4856
  }
4768
- debugger;
4769
4857
  composedLines = SourceMap.composeLines(upstreamMap.data.lines, parsed.lines);
4770
4858
  upstreamMap.data.lines = composedLines;
4771
4859
  remappedSourceMapJSON = upstreamMap.json(sourcePath, targetPath);