@danielx/civet 0.2.13 → 0.2.14

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
@@ -445,6 +445,8 @@ var Civet = (() => {
445
445
  ApplicationStart,
446
446
  AdditionalReservedWords,
447
447
  MemberExpression,
448
+ MemberExpressionRest,
449
+ PropertyAccess,
448
450
  SuperProperty,
449
451
  MetaProperty,
450
452
  Parameters,
@@ -550,6 +552,7 @@ var Civet = (() => {
550
552
  Declaration,
551
553
  HoistableDeclaration,
552
554
  LexicalDeclaration,
555
+ ConstAssignment,
553
556
  LexicalBinding,
554
557
  Initializer,
555
558
  VariableStatement,
@@ -635,6 +638,7 @@ var Civet = (() => {
635
638
  EOS,
636
639
  EOL,
637
640
  EOF,
641
+ Debugger,
638
642
  InsertOpenParen,
639
643
  InsertCloseParen,
640
644
  InsertOpenBrace,
@@ -648,7 +652,8 @@ var Civet = (() => {
648
652
  Indent,
649
653
  PushIndent,
650
654
  PopIndent,
651
- Nested
655
+ Nested,
656
+ NestedFurther
652
657
  });
653
658
  var $L0 = $L(",");
654
659
  var $L1 = $L("(");
@@ -674,9 +679,9 @@ var Civet = (() => {
674
679
  var $L21 = $L("new");
675
680
  var $L22 = $L("super");
676
681
  var $L23 = $L("import");
677
- var $L24 = $L("[");
678
- var $L25 = $L("]");
679
- var $L26 = $L(".");
682
+ var $L24 = $L(".");
683
+ var $L25 = $L("[");
684
+ var $L26 = $L("]");
680
685
  var $L27 = $L("::");
681
686
  var $L28 = $L("super[");
682
687
  var $L29 = $L("new.target");
@@ -1074,7 +1079,7 @@ var Civet = (() => {
1074
1079
  return ClassExpression$0(state);
1075
1080
  }
1076
1081
  }
1077
- var ClassHeritage$0 = $S(ExtendsToken, __, $S(MemberExpression, $Q(CallExpressionRest)));
1082
+ var ClassHeritage$0 = $S(ExtendsToken, __, MemberExpression);
1078
1083
  function ClassHeritage(state) {
1079
1084
  if (state.verbose)
1080
1085
  console.log("ENTER:", "ClassHeritage");
@@ -1153,8 +1158,8 @@ var Civet = (() => {
1153
1158
  var ref = value[1];
1154
1159
  return ["this.", ref];
1155
1160
  });
1156
- var This$2 = $T($EXPECT($L19, fail, 'This "@"'), function(value) {
1157
- return "this";
1161
+ var This$2 = $TV($EXPECT($L19, fail, 'This "@"'), function($skip, $loc, $0, $1) {
1162
+ return { $loc, token: "this" };
1158
1163
  });
1159
1164
  function This(state) {
1160
1165
  if (state.tokenize) {
@@ -1172,7 +1177,7 @@ var Civet = (() => {
1172
1177
  return LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state);
1173
1178
  }
1174
1179
  }
1175
- var NewExpression$0 = $S($P($S($EXPECT($L21, fail, 'NewExpression "new"'), __)), MemberExpression);
1180
+ var NewExpression$0 = $S($P($S($EXPECT($L21, fail, 'NewExpression "new"'), __)), CallExpression);
1176
1181
  function NewExpression(state) {
1177
1182
  if (state.verbose)
1178
1183
  console.log("ENTER:", "NewExpression");
@@ -1184,7 +1189,7 @@ var Civet = (() => {
1184
1189
  }
1185
1190
  var CallExpression$0 = $S($EXPECT($L22, fail, 'CallExpression "super"'), __, Arguments);
1186
1191
  var CallExpression$1 = $S($EXPECT($L23, fail, 'CallExpression "import"'), __, $EXPECT($L1, fail, 'CallExpression "("'), AssignmentExpression, __, $EXPECT($L2, fail, 'CallExpression ")"'));
1187
- var CallExpression$2 = $S(MemberExpression, $Q(CallExpressionRest), $E(SpacedApplication));
1192
+ var CallExpression$2 = $S(MemberExpression, $Q(CallExpressionRest));
1188
1193
  function CallExpression(state) {
1189
1194
  if (state.tokenize) {
1190
1195
  return $TOKEN("CallExpression", state, CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state));
@@ -1193,23 +1198,17 @@ var Civet = (() => {
1193
1198
  }
1194
1199
  }
1195
1200
  var CallExpressionRest$0 = $S($E(OptionalShorthand), Arguments);
1196
- var CallExpressionRest$1 = $S($E(OptionalShorthand), $EXPECT($L24, fail, 'CallExpressionRest "["'), __, Expression, __, $EXPECT($L25, fail, 'CallExpressionRest "]"'));
1197
- var CallExpressionRest$2 = $S($E($EXPECT($L3, fail, 'CallExpressionRest "?"')), $EXPECT($L26, fail, 'CallExpressionRest "."'), $C(IdentifierName, PrivateIdentifier));
1198
- var CallExpressionRest$3 = $TS($S($EXPECT($L27, fail, 'CallExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2) {
1199
- var id = $2;
1200
- if (id)
1201
- return [".prototype.", id];
1202
- return ".prototype";
1203
- });
1204
- var CallExpressionRest$4 = TemplateLiteral;
1201
+ var CallExpressionRest$1 = MemberExpressionRest;
1202
+ var CallExpressionRest$2 = SpacedApplication;
1203
+ var CallExpressionRest$3 = TemplateLiteral;
1205
1204
  function CallExpressionRest(state) {
1206
1205
  if (state.tokenize) {
1207
- return $TOKEN("CallExpressionRest", state, CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state) || CallExpressionRest$4(state));
1206
+ return $TOKEN("CallExpressionRest", state, CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state));
1208
1207
  } else {
1209
- return CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state) || CallExpressionRest$4(state);
1208
+ return CallExpressionRest$0(state) || CallExpressionRest$1(state) || CallExpressionRest$2(state) || CallExpressionRest$3(state);
1210
1209
  }
1211
1210
  }
1212
- var OptionalShorthand$0 = $S($EXPECT($L3, fail, 'OptionalShorthand "?"'), $C($EXPECT($L26, fail, 'OptionalShorthand "."'), InsertDot));
1211
+ var OptionalShorthand$0 = $S($EXPECT($L3, fail, 'OptionalShorthand "?"'), $C($EXPECT($L24, fail, 'OptionalShorthand "."'), InsertDot));
1213
1212
  function OptionalShorthand(state) {
1214
1213
  if (state.verbose)
1215
1214
  console.log("ENTER:", "OptionalShorthand");
@@ -1219,7 +1218,7 @@ var Civet = (() => {
1219
1218
  return OptionalShorthand$0(state);
1220
1219
  }
1221
1220
  }
1222
- var SpacedApplication$0 = $S(ApplicationStart, ArgumentList, InsertCloseParen);
1221
+ var SpacedApplication$0 = $S(ApplicationStart, ArgumentList, InsertCloseParen, $Q($S($Y(EOS), Nested, CallExpressionRest)));
1223
1222
  function SpacedApplication(state) {
1224
1223
  if (state.verbose)
1225
1224
  console.log("ENTER:", "SpacedApplication");
@@ -1253,7 +1252,7 @@ var Civet = (() => {
1253
1252
  return AdditionalReservedWords$0(state);
1254
1253
  }
1255
1254
  }
1256
- var MemberExpression$0 = $S(PrimaryExpression, $Q(CallExpressionRest));
1255
+ var MemberExpression$0 = $S(PrimaryExpression, $Q(MemberExpressionRest));
1257
1256
  var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
1258
1257
  var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
1259
1258
  function MemberExpression(state) {
@@ -1263,7 +1262,32 @@ var Civet = (() => {
1263
1262
  return MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state);
1264
1263
  }
1265
1264
  }
1266
- var SuperProperty$0 = $S($EXPECT($L28, fail, 'SuperProperty "super["'), __, Expression, __, $EXPECT($L25, fail, 'SuperProperty "]"'));
1265
+ var MemberExpressionRest$0 = $S($E(OptionalShorthand), $EXPECT($L25, fail, 'MemberExpressionRest "["'), __, Expression, __, $EXPECT($L26, fail, 'MemberExpressionRest "]"'));
1266
+ var MemberExpressionRest$1 = $S($E($S(EOS, NestedFurther)), PropertyAccess);
1267
+ var MemberExpressionRest$2 = $TS($S($EXPECT($L27, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2) {
1268
+ var id = $2;
1269
+ if (id)
1270
+ return [".prototype.", id];
1271
+ return ".prototype";
1272
+ });
1273
+ function MemberExpressionRest(state) {
1274
+ if (state.tokenize) {
1275
+ return $TOKEN("MemberExpressionRest", state, MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state));
1276
+ } else {
1277
+ return MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state);
1278
+ }
1279
+ }
1280
+ var PropertyAccess$0 = $S($E($EXPECT($L3, fail, 'PropertyAccess "?"')), $EXPECT($L24, fail, 'PropertyAccess "."'), $C(IdentifierName, PrivateIdentifier));
1281
+ function PropertyAccess(state) {
1282
+ if (state.verbose)
1283
+ console.log("ENTER:", "PropertyAccess");
1284
+ if (state.tokenize) {
1285
+ return $TOKEN("PropertyAccess", state, PropertyAccess$0(state));
1286
+ } else {
1287
+ return PropertyAccess$0(state);
1288
+ }
1289
+ }
1290
+ var SuperProperty$0 = $S($EXPECT($L28, fail, 'SuperProperty "super["'), __, Expression, __, $EXPECT($L26, fail, 'SuperProperty "]"'));
1267
1291
  function SuperProperty(state) {
1268
1292
  if (state.verbose)
1269
1293
  console.log("ENTER:", "SuperProperty");
@@ -1347,7 +1371,7 @@ var Civet = (() => {
1347
1371
  return ObjectBindingPattern$0(state);
1348
1372
  }
1349
1373
  }
1350
- var ArrayBindingPattern$0 = $S($EXPECT($L24, fail, 'ArrayBindingPattern "["'), $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, $EXPECT($L25, fail, 'ArrayBindingPattern "]"'));
1374
+ var ArrayBindingPattern$0 = $S($EXPECT($L25, fail, 'ArrayBindingPattern "["'), $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, $EXPECT($L26, fail, 'ArrayBindingPattern "]"'));
1351
1375
  function ArrayBindingPattern(state) {
1352
1376
  if (state.verbose)
1353
1377
  console.log("ENTER:", "ArrayBindingPattern");
@@ -1451,7 +1475,7 @@ var Civet = (() => {
1451
1475
  return BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state);
1452
1476
  }
1453
1477
  }
1454
- var SingleNestedExpression$0 = $TS($S(PushIndent, $E($S(Nested, Expression, StatementDelimiter)), $C($S($N($S(Nested, Expression)), PopIndent), $S(PopIndent, $N($EXPECT($L31, fail, 'SingleNestedExpression ""'))))), function($skip, $loc, $0, $1, $2, $3) {
1478
+ var SingleNestedExpression$0 = $TS($S(PushIndent, $E($S(Nested, Expression, StatementDelimiter)), $C($S($N($S(Nested, Expression)), PopIndent), PopIndent)), function($skip, $loc, $0, $1, $2, $3) {
1455
1479
  var exp = $2;
1456
1480
  if (exp)
1457
1481
  return exp;
@@ -1466,7 +1490,7 @@ var Civet = (() => {
1466
1490
  return SingleNestedExpression$0(state);
1467
1491
  }
1468
1492
  }
1469
- var SingleNestedBlockStatement$0 = $TS($S(PushIndent, $E($S(Nested, StatementListItem)), $C($C($N($S(Nested, StatementListItem)), $S(PopIndent, $N($EXPECT($L31, fail, 'SingleNestedBlockStatement ""')))), PopIndent)), function($skip, $loc, $0, $1, $2, $3) {
1493
+ var SingleNestedBlockStatement$0 = $TS($S(PushIndent, $E($S(Nested, StatementListItem)), $C($C($N($S(Nested, StatementListItem)), PopIndent), PopIndent)), function($skip, $loc, $0, $1, $2, $3) {
1470
1494
  var exp = $2;
1471
1495
  if (exp)
1472
1496
  return exp;
@@ -1539,7 +1563,12 @@ var Civet = (() => {
1539
1563
  return Identifier$0(state);
1540
1564
  }
1541
1565
  }
1542
- var IdentifierName$0 = $R$0($EXPECT($R1, fail, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
1566
+ var IdentifierName$0 = $TR($EXPECT($R1, fail, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
1567
+ return {
1568
+ $loc,
1569
+ token: $0
1570
+ };
1571
+ });
1543
1572
  function IdentifierName(state) {
1544
1573
  if (state.verbose)
1545
1574
  console.log("ENTER:", "IdentifierName");
@@ -1559,8 +1588,8 @@ var Civet = (() => {
1559
1588
  return IdentifierReference$0(state);
1560
1589
  }
1561
1590
  }
1562
- var ArrayLiteral$0 = $S($EXPECT($L24, fail, 'ArrayLiteral "["'), NestedElementList, __, $EXPECT($L25, fail, 'ArrayLiteral "]"'));
1563
- var ArrayLiteral$1 = $S($EXPECT($L24, fail, 'ArrayLiteral "["'), ElementList, __, $EXPECT($L25, fail, 'ArrayLiteral "]"'));
1591
+ var ArrayLiteral$0 = $S($EXPECT($L25, fail, 'ArrayLiteral "["'), NestedElementList, __, $EXPECT($L26, fail, 'ArrayLiteral "]"'));
1592
+ var ArrayLiteral$1 = $S($EXPECT($L25, fail, 'ArrayLiteral "["'), ElementList, __, $EXPECT($L26, fail, 'ArrayLiteral "]"'));
1564
1593
  function ArrayLiteral(state) {
1565
1594
  if (state.tokenize) {
1566
1595
  return $TOKEN("ArrayLiteral", state, ArrayLiteral$0(state) || ArrayLiteral$1(state));
@@ -1594,8 +1623,8 @@ var Civet = (() => {
1594
1623
  }
1595
1624
  }
1596
1625
  var ArrayElementDelimiter$0 = $S($Q(_), $EXPECT($L0, fail, 'ArrayElementDelimiter ","'));
1597
- var ArrayElementDelimiter$1 = $Y($S($Q(_), $EXPECT($L25, fail, 'ArrayElementDelimiter "]"')));
1598
- var ArrayElementDelimiter$2 = $T($Y($S(__, $EXPECT($L25, fail, 'ArrayElementDelimiter "]"'))), function(value) {
1626
+ var ArrayElementDelimiter$1 = $Y($S($Q(_), $EXPECT($L26, fail, 'ArrayElementDelimiter "]"')));
1627
+ var ArrayElementDelimiter$2 = $T($Y($S(__, $EXPECT($L26, fail, 'ArrayElementDelimiter "]"'))), function(value) {
1599
1628
  return ",";
1600
1629
  });
1601
1630
  var ArrayElementDelimiter$3 = $T($Y(EOS), function(value) {
@@ -1723,7 +1752,7 @@ var Civet = (() => {
1723
1752
  var PropertyName$0 = NumericLiteral;
1724
1753
  var PropertyName$1 = StringLiteral;
1725
1754
  var PropertyName$2 = IdentifierName;
1726
- var PropertyName$3 = $S($EXPECT($L24, fail, 'PropertyName "["'), AssignmentExpression, __, $EXPECT($L25, fail, 'PropertyName "]"'));
1755
+ var PropertyName$3 = $S($EXPECT($L25, fail, 'PropertyName "["'), AssignmentExpression, __, $EXPECT($L26, fail, 'PropertyName "]"'));
1727
1756
  function PropertyName(state) {
1728
1757
  if (state.tokenize) {
1729
1758
  return $TOKEN("PropertyName", state, PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state));
@@ -2270,13 +2299,12 @@ var Civet = (() => {
2270
2299
  }
2271
2300
  }
2272
2301
  var MaybeNestedExpression$0 = $S($N(EOS), $Q(TrailingComment), Expression);
2273
- var MaybeNestedExpression$1 = $S($Y(EOS), SingleNestedExpression);
2274
- var MaybeNestedExpression$2 = $S($Y(EOS), ObjectLiteral);
2302
+ var MaybeNestedExpression$1 = $S($Y(EOS), ObjectLiteral);
2275
2303
  function MaybeNestedExpression(state) {
2276
2304
  if (state.tokenize) {
2277
- return $TOKEN("MaybeNestedExpression", state, MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state) || MaybeNestedExpression$2(state));
2305
+ return $TOKEN("MaybeNestedExpression", state, MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state));
2278
2306
  } else {
2279
- return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state) || MaybeNestedExpression$2(state);
2307
+ return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
2280
2308
  }
2281
2309
  }
2282
2310
  var Return$0 = $S($EXPECT($L111, fail, 'Return "return"'), NonIdContinue);
@@ -2460,12 +2488,21 @@ var Civet = (() => {
2460
2488
  }
2461
2489
  }
2462
2490
  var LexicalDeclaration$0 = $S($C($EXPECT($L98, fail, 'LexicalDeclaration "let"'), $EXPECT($L99, fail, 'LexicalDeclaration "const"')), __, LexicalBinding, $Q($S(__, $EXPECT($L0, fail, 'LexicalDeclaration ","'), __, LexicalBinding)));
2463
- var LexicalDeclaration$1 = $T($S($C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, $EXPECT($L115, fail, 'LexicalDeclaration ":="'), AssignmentExpression), function(value) {
2464
- var bind = value[0];
2465
- var suffix = value[1];
2466
- var ws = value[2];
2467
- var exp = value[4];
2468
- return ["const ", bind, suffix, ws, "=", exp];
2491
+ var LexicalDeclaration$1 = $TS($S($C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2492
+ var bind = $1;
2493
+ var suffix = $2;
2494
+ var ws = $3;
2495
+ var ca = $4;
2496
+ var exp = $5;
2497
+ return [
2498
+ { token: "const", $loc: ca.$loc },
2499
+ " ",
2500
+ bind,
2501
+ suffix,
2502
+ ws,
2503
+ { token: "=", $loc: ca.$loc },
2504
+ exp
2505
+ ];
2469
2506
  });
2470
2507
  function LexicalDeclaration(state) {
2471
2508
  if (state.tokenize) {
@@ -2474,6 +2511,18 @@ var Civet = (() => {
2474
2511
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
2475
2512
  }
2476
2513
  }
2514
+ var ConstAssignment$0 = $TV($EXPECT($L115, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
2515
+ return { $loc, token: $0 };
2516
+ });
2517
+ function ConstAssignment(state) {
2518
+ if (state.verbose)
2519
+ console.log("ENTER:", "ConstAssignment");
2520
+ if (state.tokenize) {
2521
+ return $TOKEN("ConstAssignment", state, ConstAssignment$0(state));
2522
+ } else {
2523
+ return ConstAssignment$0(state);
2524
+ }
2525
+ }
2477
2526
  var LexicalBinding$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
2478
2527
  var LexicalBinding$1 = $S(BindingIdentifier, $E(TypeSuffix), $E(Initializer));
2479
2528
  function LexicalBinding(state) {
@@ -2901,7 +2950,7 @@ var Civet = (() => {
2901
2950
  return JSXFragment$0(state);
2902
2951
  }
2903
2952
  }
2904
- var JSXElementName$0 = $S(JSXIdentifierName, $C($S($EXPECT($L12, fail, 'JSXElementName ":"'), JSXIdentifierName), $Q($S($EXPECT($L26, fail, 'JSXElementName "."'), JSXIdentifierName))));
2953
+ var JSXElementName$0 = $S(JSXIdentifierName, $C($S($EXPECT($L12, fail, 'JSXElementName ":"'), JSXIdentifierName), $Q($S($EXPECT($L24, fail, 'JSXElementName "."'), JSXIdentifierName))));
2905
2954
  function JSXElementName(state) {
2906
2955
  if (state.verbose)
2907
2956
  console.log("ENTER:", "JSXElementName");
@@ -3086,7 +3135,7 @@ var Civet = (() => {
3086
3135
  return InterfacePropertyDelimiter$0(state) || InterfacePropertyDelimiter$1(state) || InterfacePropertyDelimiter$2(state) || InterfacePropertyDelimiter$3(state);
3087
3136
  }
3088
3137
  }
3089
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R29, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L129, fail, 'TypeIndexSignature "readonly"'), __)), $EXPECT($L24, fail, 'TypeIndexSignature "["'), TypeIndex, $EXPECT($L25, fail, 'TypeIndexSignature "]"'), $E($S(__, $R$0($EXPECT($R30, fail, "TypeIndexSignature /[+-]/")), $EXPECT($L3, fail, 'TypeIndexSignature "?"'))));
3138
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R29, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L129, fail, 'TypeIndexSignature "readonly"'), __)), $EXPECT($L25, fail, 'TypeIndexSignature "["'), TypeIndex, $EXPECT($L26, fail, 'TypeIndexSignature "]"'), $E($S(__, $R$0($EXPECT($R30, fail, "TypeIndexSignature /[+-]/")), $EXPECT($L3, fail, 'TypeIndexSignature "?"'))));
3090
3139
  function TypeIndexSignature(state) {
3091
3140
  if (state.verbose)
3092
3141
  console.log("ENTER:", "TypeIndexSignature");
@@ -3189,7 +3238,7 @@ var Civet = (() => {
3189
3238
  return TypeUnaryOp$0(state) || TypeUnaryOp$1(state) || TypeUnaryOp$2(state);
3190
3239
  }
3191
3240
  }
3192
- var TypeIndexedAccess$0 = $S(__, $EXPECT($L24, fail, 'TypeIndexedAccess "["'), $E(Type), __, $EXPECT($L25, fail, 'TypeIndexedAccess "]"'));
3241
+ var TypeIndexedAccess$0 = $S(__, $EXPECT($L25, fail, 'TypeIndexedAccess "["'), $E(Type), __, $EXPECT($L26, fail, 'TypeIndexedAccess "]"'));
3193
3242
  function TypeIndexedAccess(state) {
3194
3243
  if (state.verbose)
3195
3244
  console.log("ENTER:", "TypeIndexedAccess");
@@ -3202,7 +3251,7 @@ var Civet = (() => {
3202
3251
  var TypePrimary$0 = InterfaceBlock;
3203
3252
  var TypePrimary$1 = $S(__, $EXPECT($L1, fail, 'TypePrimary "("'), Type, __, $EXPECT($L2, fail, 'TypePrimary ")"'));
3204
3253
  var TypePrimary$2 = $S($Q(_), FunctionType);
3205
- var TypePrimary$3 = $S($Q(_), IdentifierName, $Q($S($EXPECT($L26, fail, 'TypePrimary "."'), IdentifierName)), $E(TypeArguments));
3254
+ var TypePrimary$3 = $S($Q(_), IdentifierName, $Q($S($EXPECT($L24, fail, 'TypePrimary "."'), IdentifierName)), $E(TypeArguments));
3206
3255
  var TypePrimary$4 = $S($Q(_), TypeLiteral);
3207
3256
  function TypePrimary(state) {
3208
3257
  if (state.tokenize) {
@@ -3357,6 +3406,18 @@ var Civet = (() => {
3357
3406
  return EOF$0(state);
3358
3407
  }
3359
3408
  }
3409
+ var Debugger$0 = $TV($EXPECT($L31, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
3410
+ debugger;
3411
+ });
3412
+ function Debugger(state) {
3413
+ if (state.verbose)
3414
+ console.log("ENTER:", "Debugger");
3415
+ if (state.tokenize) {
3416
+ return $TOKEN("Debugger", state, Debugger$0(state));
3417
+ } else {
3418
+ return Debugger$0(state);
3419
+ }
3420
+ }
3360
3421
  var InsertOpenParen$0 = $T($EXPECT($L31, fail, 'InsertOpenParen ""'), function(value) {
3361
3422
  return "(";
3362
3423
  });
@@ -3556,6 +3617,31 @@ var Civet = (() => {
3556
3617
  return Nested$0(state);
3557
3618
  }
3558
3619
  }
3620
+ var NestedFurther$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
3621
+ var eos = $1;
3622
+ var indent = $2;
3623
+ const currentIndent = global.indentLevels[global.indentLevels.length - 1];
3624
+ if (global.verbose) {
3625
+ console.log("global indent", global.currentIndent);
3626
+ console.log("Indented", indent, currentIndent);
3627
+ }
3628
+ if (indent !== currentIndent + 1) {
3629
+ if (global.verbose) {
3630
+ console.log("skipped nested");
3631
+ }
3632
+ return $skip;
3633
+ }
3634
+ return [eos, "".padStart(indent * 2)];
3635
+ });
3636
+ function NestedFurther(state) {
3637
+ if (state.verbose)
3638
+ console.log("ENTER:", "NestedFurther");
3639
+ if (state.tokenize) {
3640
+ return $TOKEN("NestedFurther", state, NestedFurther$0(state));
3641
+ } else {
3642
+ return NestedFurther$0(state);
3643
+ }
3644
+ }
3559
3645
  module.exports = {
3560
3646
  parse
3561
3647
  };
@@ -3566,11 +3652,18 @@ var Civet = (() => {
3566
3652
  var require_generate = __commonJS({
3567
3653
  "source/generate.coffee"(exports, module) {
3568
3654
  var gen;
3655
+ var prune;
3569
3656
  gen = function(node, options) {
3657
+ var $loc, token;
3570
3658
  if (node === null || node === void 0) {
3571
3659
  return "";
3572
3660
  }
3573
3661
  if (typeof node === "string") {
3662
+ if (options != null) {
3663
+ if (typeof options.updateSourceMap === "function") {
3664
+ options.updateSourceMap(node);
3665
+ }
3666
+ }
3574
3667
  return node;
3575
3668
  }
3576
3669
  if (Array.isArray(node)) {
@@ -3579,19 +3672,55 @@ var Civet = (() => {
3579
3672
  }).join("");
3580
3673
  }
3581
3674
  if (typeof node === "object") {
3582
- if ((options != null ? options.js : void 0) && node.ts) {
3675
+ if (options.js && node.ts) {
3583
3676
  return "";
3584
3677
  }
3678
+ if (node.$loc != null) {
3679
+ ({ token, $loc } = node);
3680
+ if (options != null) {
3681
+ if (typeof options.updateSourceMap === "function") {
3682
+ options.updateSourceMap(token, $loc.pos);
3683
+ }
3684
+ }
3685
+ return token;
3686
+ }
3585
3687
  if (!node.children) {
3586
3688
  throw new Error("Unknown node", JSON.stringify(node));
3587
3689
  }
3588
- return node.children.map(function(child) {
3589
- return gen(child, options);
3590
- }).join("");
3690
+ return gen(node.children, options);
3591
3691
  }
3592
3692
  throw new Error("Unknown node", JSON.stringify(node));
3593
3693
  };
3594
3694
  module.exports = gen;
3695
+ prune = function(node) {
3696
+ var a;
3697
+ if (node === null || node === void 0) {
3698
+ return;
3699
+ }
3700
+ if (node.length === 0) {
3701
+ return;
3702
+ }
3703
+ if (Array.isArray(node)) {
3704
+ a = node.map(function(n) {
3705
+ return prune(n);
3706
+ }).filter(function(n) {
3707
+ return !!n;
3708
+ });
3709
+ if (a.length > 1) {
3710
+ return a;
3711
+ }
3712
+ if (a.length === 1) {
3713
+ return a[0];
3714
+ }
3715
+ return;
3716
+ }
3717
+ if (node.children != null) {
3718
+ node.children = prune(node.children);
3719
+ return node;
3720
+ }
3721
+ return node;
3722
+ };
3723
+ gen.prune = prune;
3595
3724
  }
3596
3725
  });
3597
3726