@danielx/civet 0.9.7 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -514,12 +514,14 @@ __export(lib_civet_exports, {
514
514
  attachPostfixStatementAsExpression: () => attachPostfixStatementAsExpression,
515
515
  blockWithPrefix: () => blockWithPrefix,
516
516
  braceBlock: () => braceBlock,
517
+ bracedBlock: () => bracedBlock,
517
518
  convertNamedImportsToObject: () => convertNamedImportsToObject,
518
519
  convertObjectToJSXAttributes: () => convertObjectToJSXAttributes,
519
520
  convertWithClause: () => convertWithClause,
520
521
  dedentBlockString: () => dedentBlockString,
521
522
  dedentBlockSubstitutions: () => dedentBlockSubstitutions,
522
523
  deepCopy: () => deepCopy,
524
+ duplicateBlock: () => duplicateBlock,
523
525
  dynamizeImportDeclaration: () => dynamizeImportDeclaration,
524
526
  dynamizeImportDeclarationExpression: () => dynamizeImportDeclarationExpression,
525
527
  expressionizeTypeIf: () => expressionizeTypeIf,
@@ -776,9 +778,49 @@ function isExit(node) {
776
778
  }
777
779
  case "SwitchStatement": {
778
780
  return (
779
- // Ensure exhaustive by requiring an else/default clause
780
- node.caseBlock.clauses.some(($) => $.type === "DefaultClause") && // Every clause should exit
781
- node.caseBlock.clauses.every(isExit)
781
+ // Every clause should exit, or continue to next clause
782
+ (() => {
783
+ let results = true;
784
+ for (const clause of node.caseBlock.clauses) {
785
+ let m1;
786
+ if (m1 = clause.type, m1 === "CaseClause" || m1 === "WhenClause" || m1 === "DefaultClause") {
787
+ if (!(!(clause.type === "WhenClause" && clause.break) && !gatherRecursiveWithinFunction(clause.block, ($) => $.type === "BreakStatement").length)) {
788
+ results = false;
789
+ break;
790
+ }
791
+ } else {
792
+ if (!isExit(clause.block)) {
793
+ results = false;
794
+ break;
795
+ }
796
+ }
797
+ }
798
+ return results;
799
+ })() && // Ensure exhaustive by requiring an else/default clause
800
+ (() => {
801
+ let results1 = false;
802
+ let i3 = 0;
803
+ for (const clause of node.caseBlock.clauses) {
804
+ const i = i3++;
805
+ if (clause.type === "DefaultClause" && // Require default clause to exit or continue to next clause
806
+ // (checked above) and eventually reach an exiting clause
807
+ (() => {
808
+ let results2 = false;
809
+ for (const later of node.caseBlock.clauses.slice(i)) {
810
+ let m2;
811
+ if ((m2 = later.type, m2 === "CaseClause" || m2 === "WhenClause" || m2 === "DefaultClause") && isExit(later.block)) {
812
+ results2 = true;
813
+ break;
814
+ }
815
+ }
816
+ return results2;
817
+ })()) {
818
+ results1 = true;
819
+ break;
820
+ }
821
+ }
822
+ return results1;
823
+ })()
782
824
  );
783
825
  }
784
826
  case "TryStatement": {
@@ -841,18 +883,18 @@ function insertTrimmingSpace(target, c) {
841
883
  if (target.length === 0) {
842
884
  return c;
843
885
  }
844
- const results = [];
845
- for (let i3 = 0, len3 = target.length; i3 < len3; i3++) {
846
- const i = i3;
847
- const e = target[i3];
886
+ const results3 = [];
887
+ for (let i4 = 0, len3 = target.length; i4 < len3; i4++) {
888
+ const i = i4;
889
+ const e = target[i4];
848
890
  if (i === 0) {
849
- results.push(insertTrimmingSpace(e, c));
891
+ results3.push(insertTrimmingSpace(e, c));
850
892
  } else {
851
- results.push(e);
893
+ results3.push(e);
852
894
  }
853
895
  }
854
896
  ;
855
- return results;
897
+ return results3;
856
898
  } else if (isParent(target)) {
857
899
  const oldChildren = target.children;
858
900
  target = {
@@ -1087,8 +1129,8 @@ function startsWithPredicate(node, predicate, skip = isWhitespaceOrEmpty) {
1087
1129
  return void 0;
1088
1130
  }
1089
1131
  if (Array.isArray(node)) {
1090
- for (let i4 = 0, len4 = node.length; i4 < len4; i4++) {
1091
- const child = node[i4];
1132
+ for (let i5 = 0, len4 = node.length; i5 < len4; i5++) {
1133
+ const child = node[i5];
1092
1134
  if (skip(child)) {
1093
1135
  continue;
1094
1136
  }
@@ -1127,9 +1169,9 @@ function deepCopy(root) {
1127
1169
  if (Array.isArray(node)) {
1128
1170
  const array = new Array(node.length);
1129
1171
  copied.set(node, array);
1130
- for (let i5 = 0, len5 = node.length; i5 < len5; i5++) {
1131
- const i = i5;
1132
- const item = node[i5];
1172
+ for (let i6 = 0, len5 = node.length; i6 < len5; i6++) {
1173
+ const i = i6;
1174
+ const item = node[i6];
1133
1175
  array[i] = recurse(item);
1134
1176
  }
1135
1177
  } else if (node?.type === "Ref") {
@@ -1156,9 +1198,9 @@ function replaceNode(node, newNode, parent) {
1156
1198
  throw new Error("replaceNode failed: node has no parent");
1157
1199
  }
1158
1200
  function recurse(children) {
1159
- for (let i6 = 0, len6 = children.length; i6 < len6; i6++) {
1160
- const i = i6;
1161
- const child = children[i6];
1201
+ for (let i7 = 0, len6 = children.length; i7 < len6; i7++) {
1202
+ const i = i7;
1203
+ const child = children[i7];
1162
1204
  if (child === node) {
1163
1205
  children[i] = newNode;
1164
1206
  return true;
@@ -1195,9 +1237,9 @@ function replaceNodes(root, predicate, replacer) {
1195
1237
  return root;
1196
1238
  }
1197
1239
  }
1198
- for (let i7 = 0, len7 = array.length; i7 < len7; i7++) {
1199
- const i = i7;
1200
- const node = array[i7];
1240
+ for (let i8 = 0, len7 = array.length; i8 < len7; i8++) {
1241
+ const i = i8;
1242
+ const node = array[i8];
1201
1243
  if (!(node != null)) {
1202
1244
  return;
1203
1245
  }
@@ -1321,8 +1363,8 @@ function updateParentPointers(node, parent, depth = 1) {
1321
1363
  return;
1322
1364
  }
1323
1365
  if (Array.isArray(node)) {
1324
- for (let i8 = 0, len8 = node.length; i8 < len8; i8++) {
1325
- const child = node[i8];
1366
+ for (let i9 = 0, len8 = node.length; i9 < len8; i9++) {
1367
+ const child = node[i9];
1326
1368
  updateParentPointers(child, parent, depth);
1327
1369
  }
1328
1370
  return;
@@ -1332,8 +1374,8 @@ function updateParentPointers(node, parent, depth = 1) {
1332
1374
  node.parent = parent;
1333
1375
  }
1334
1376
  if (depth && isParent(node)) {
1335
- for (let ref8 = node.children, i9 = 0, len9 = ref8.length; i9 < len9; i9++) {
1336
- const child = ref8[i9];
1377
+ for (let ref8 = node.children, i10 = 0, len9 = ref8.length; i10 < len9; i10++) {
1378
+ const child = ref8[i10];
1337
1379
  updateParentPointers(child, node, depth - 1);
1338
1380
  }
1339
1381
  }
@@ -1530,9 +1572,9 @@ function wrapWithReturn(expression, parent = expression?.parent, semi = false) {
1530
1572
  }
1531
1573
  function flatJoin(array, separator) {
1532
1574
  const result = [];
1533
- for (let i10 = 0, len10 = array.length; i10 < len10; i10++) {
1534
- const i = i10;
1535
- const items = array[i10];
1575
+ for (let i11 = 0, len10 = array.length; i11 < len10; i11++) {
1576
+ const i = i11;
1577
+ const items = array[i11];
1536
1578
  if (i) {
1537
1579
  result.push(separator);
1538
1580
  }
@@ -3155,12 +3197,10 @@ function assignResults(node, collect) {
3155
3197
  }
3156
3198
  case "IfStatement": {
3157
3199
  assignResults(exp.then, collect);
3158
- if (exp.then.bare && !exp.then.semicolon) {
3159
- exp.then.children.push(exp.then.semicolon = ";");
3160
- }
3161
3200
  if (exp.else) {
3162
3201
  assignResults(exp.else.block, collect);
3163
3202
  } else {
3203
+ braceBlock(exp.then);
3164
3204
  exp.children.push([" else {", collect("void 0"), "}"]);
3165
3205
  }
3166
3206
  return;
@@ -4244,6 +4284,11 @@ function duplicateBlock(block) {
4244
4284
  children
4245
4285
  };
4246
4286
  }
4287
+ function bracedBlock(block) {
4288
+ block = duplicateBlock(block);
4289
+ braceBlock(block);
4290
+ return block;
4291
+ }
4247
4292
  function makeEmptyBlock() {
4248
4293
  const expressions = [];
4249
4294
  return {
@@ -5365,7 +5410,7 @@ function processDeclarations(statements) {
5365
5410
  });
5366
5411
  }
5367
5412
  }
5368
- if (initializer) {
5413
+ if (initializer && blockContainingStatement(declaration)) {
5369
5414
  prependStatementExpressionBlock(initializer, declaration);
5370
5415
  }
5371
5416
  }
@@ -9268,8 +9313,6 @@ var grammar = {
9268
9313
  NamedImports,
9269
9314
  OperatorNamedImports,
9270
9315
  FromClause,
9271
- ImpliedFromClause,
9272
- ImpliedFrom,
9273
9316
  ImportAssertion,
9274
9317
  TypeAndImportSpecifier,
9275
9318
  ImportSpecifier,
@@ -9705,16 +9748,16 @@ var $L13 = (0, import_lib2.$L)("=>");
9705
9748
  var $L14 = (0, import_lib2.$L)("\u21D2");
9706
9749
  var $L15 = (0, import_lib2.$L)("import");
9707
9750
  var $L16 = (0, import_lib2.$L)(":");
9708
- var $L17 = (0, import_lib2.$L)(",");
9709
- var $L18 = (0, import_lib2.$L)(" ");
9710
- var $L19 = (0, import_lib2.$L)("<");
9711
- var $L20 = (0, import_lib2.$L)("implements");
9712
- var $L21 = (0, import_lib2.$L)("<:");
9713
- var $L22 = (0, import_lib2.$L)("^");
9714
- var $L23 = (0, import_lib2.$L)("<?");
9715
- var $L24 = (0, import_lib2.$L)("-");
9716
- var $L25 = (0, import_lib2.$L)("import.meta");
9717
- var $L26 = (0, import_lib2.$L)("return.value");
9751
+ var $L17 = (0, import_lib2.$L)(" ");
9752
+ var $L18 = (0, import_lib2.$L)("<");
9753
+ var $L19 = (0, import_lib2.$L)("implements");
9754
+ var $L20 = (0, import_lib2.$L)("<:");
9755
+ var $L21 = (0, import_lib2.$L)("^");
9756
+ var $L22 = (0, import_lib2.$L)("<?");
9757
+ var $L23 = (0, import_lib2.$L)("-");
9758
+ var $L24 = (0, import_lib2.$L)("import.meta");
9759
+ var $L25 = (0, import_lib2.$L)("return.value");
9760
+ var $L26 = (0, import_lib2.$L)(",");
9718
9761
  var $L27 = (0, import_lib2.$L)("tighter");
9719
9762
  var $L28 = (0, import_lib2.$L)("looser");
9720
9763
  var $L29 = (0, import_lib2.$L)("same");
@@ -9957,7 +10000,7 @@ var $R16 = (0, import_lib2.$R)(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
9957
10000
  var $R17 = (0, import_lib2.$R)(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
9958
10001
  var $R18 = (0, import_lib2.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
9959
10002
  var $R19 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9960
- var $R20 = (0, import_lib2.$R)(new RegExp("(?=\\[|\\s*[.\u2022])", "suy"));
10003
+ var $R20 = (0, import_lib2.$R)(new RegExp("(?=\\[|\\s*[.\u2022\\/])", "suy"));
9961
10004
  var $R21 = (0, import_lib2.$R)(new RegExp("([<>])(=?)|([\u2264\u2265])", "suy"));
9962
10005
  var $R22 = (0, import_lib2.$R)(new RegExp("[ \\t]*", "suy"));
9963
10006
  var $R23 = (0, import_lib2.$R)(new RegExp("[ \\t]+", "suy"));
@@ -11139,32 +11182,43 @@ var ExtendsClause$0 = (0, import_lib2.$S)(ExtendsToken, __, ExtendsTarget);
11139
11182
  function ExtendsClause(ctx, state2) {
11140
11183
  return (0, import_lib2.$EVENT)(ctx, state2, "ExtendsClause", ExtendsClause$0);
11141
11184
  }
11142
- var WithClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(__, With, __, ExtendsTarget, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L17, 'WithClause ","'), __, ExtendsTarget))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11185
+ var WithClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(NotDedented, With, PushIndent, (0, import_lib2.$Q)((0, import_lib2.$S)(Nested, ExtendsTarget, (0, import_lib2.$E)(_), (0, import_lib2.$E)(Comma))), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11186
+ var targets = $4;
11187
+ if (!targets.length) return $skip;
11188
+ targets = targets.map(($) => $.slice(0, -1));
11189
+ return {
11190
+ type: "WithClause",
11191
+ children: $0,
11192
+ targets
11193
+ };
11194
+ });
11195
+ var WithClause$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(NotDedented, With, NotDedented, ExtendsTarget, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$E)(_), Comma, NotDedented, ExtendsTarget))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11143
11196
  var ws = $3;
11144
11197
  var t = $4;
11145
11198
  var rest = $5;
11146
11199
  return {
11147
11200
  type: "WithClause",
11148
11201
  children: $0,
11149
- targets: [[ws, t], ...rest.map(([_comma, ws2, target]) => [ws2, target])]
11202
+ targets: [[ws, t], ...rest.map(([ws1, _comma, ws2, target]) => [prepend(ws1, ws2), target])]
11150
11203
  };
11151
11204
  });
11205
+ var WithClause$$ = [WithClause$0, WithClause$1];
11152
11206
  function WithClause(ctx, state2) {
11153
- return (0, import_lib2.$EVENT)(ctx, state2, "WithClause", WithClause$0);
11207
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "WithClause", WithClause$$);
11154
11208
  }
11155
- var ExtendsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, (0, import_lib2.$E)(_), ExtendsShorthand, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
11156
- var l = $1;
11157
- var ws = $2;
11209
+ var ExtendsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(NotDedented, InsertSpace, ExtendsShorthand, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
11210
+ var ws = $1;
11211
+ var s = $2;
11158
11212
  var t = $3;
11159
11213
  return {
11160
11214
  type: "Extends",
11161
11215
  children: [
11162
- ws || { $loc: l.$loc, token: " " },
11216
+ ws.length ? ws : s,
11163
11217
  t
11164
11218
  ]
11165
11219
  };
11166
11220
  });
11167
- var ExtendsToken$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), Extends), function($skip, $loc, $0, $1, $2) {
11221
+ var ExtendsToken$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(NotDedented, Extends), function($skip, $loc, $0, $1, $2) {
11168
11222
  return {
11169
11223
  type: "Extends",
11170
11224
  children: $0
@@ -11174,13 +11228,13 @@ var ExtendsToken$$ = [ExtendsToken$0, ExtendsToken$1];
11174
11228
  function ExtendsToken(ctx, state2) {
11175
11229
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ExtendsToken", ExtendsToken$$);
11176
11230
  }
11177
- var ExtendsShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L19, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
11231
+ var ExtendsShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L18, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
11178
11232
  return { $loc, token: "extends " };
11179
11233
  });
11180
11234
  function ExtendsShorthand(ctx, state2) {
11181
11235
  return (0, import_lib2.$EVENT)(ctx, state2, "ExtendsShorthand", ExtendsShorthand$0);
11182
11236
  }
11183
- var NotExtendsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, (0, import_lib2.$E)(_), OmittedNegation, ExtendsShorthand, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'NotExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11237
+ var NotExtendsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, (0, import_lib2.$E)(_), OmittedNegation, ExtendsShorthand, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'NotExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11184
11238
  var l = $1;
11185
11239
  var ws1 = $2;
11186
11240
  var ws2 = $3;
@@ -11206,7 +11260,7 @@ function NotExtendsToken(ctx, state2) {
11206
11260
  var OmittedNegation$0 = (0, import_lib2.$T)((0, import_lib2.$S)(ExclamationPoint), function(value) {
11207
11261
  return "";
11208
11262
  });
11209
- var OmittedNegation$1 = (0, import_lib2.$T)((0, import_lib2.$S)(Not, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'OmittedNegation " "')), (0, import_lib2.$E)(_)), function(value) {
11263
+ var OmittedNegation$1 = (0, import_lib2.$T)((0, import_lib2.$S)(Not, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'OmittedNegation " "')), (0, import_lib2.$E)(_)), function(value) {
11210
11264
  return value[2];
11211
11265
  });
11212
11266
  var OmittedNegation$$ = [OmittedNegation$0, OmittedNegation$1];
@@ -11220,16 +11274,28 @@ var ExtendsTarget$0 = (0, import_lib2.$TV)(LeftHandSideExpressionWithObjectAppli
11220
11274
  function ExtendsTarget(ctx, state2) {
11221
11275
  return (0, import_lib2.$EVENT)(ctx, state2, "ExtendsTarget", ExtendsTarget$0);
11222
11276
  }
11223
- var ImplementsClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImplementsToken, ImplementsTarget, (0, import_lib2.$Q)((0, import_lib2.$S)(Comma, ImplementsTarget))), function($skip, $loc, $0, $1, $2, $3) {
11277
+ var ImplementsClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImplementsToken, PushIndent, (0, import_lib2.$Q)((0, import_lib2.$S)(Nested, ImplementsTarget, ArrayBulletDelimiter)), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
11278
+ var i = $1;
11279
+ var targets = $3;
11280
+ if (!targets.length) return $skip;
11281
+ const last = targets.at(-1).slice(0, -1);
11282
+ targets = targets.slice(0, -1).concat(last);
11283
+ return {
11284
+ ts: true,
11285
+ children: [i, targets]
11286
+ };
11287
+ });
11288
+ var ImplementsClause$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImplementsToken, ImplementsTarget, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$E)(_), Comma, ImplementsTarget))), function($skip, $loc, $0, $1, $2, $3) {
11224
11289
  return {
11225
11290
  ts: true,
11226
11291
  children: $0
11227
11292
  };
11228
11293
  });
11294
+ var ImplementsClause$$ = [ImplementsClause$0, ImplementsClause$1];
11229
11295
  function ImplementsClause(ctx, state2) {
11230
- return (0, import_lib2.$EVENT)(ctx, state2, "ImplementsClause", ImplementsClause$0);
11296
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ImplementsClause", ImplementsClause$$);
11231
11297
  }
11232
- var ImplementsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, __, ImplementsShorthand, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
11298
+ var ImplementsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, NotDedented, ImplementsShorthand, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
11233
11299
  var l = $1;
11234
11300
  var ws = $2;
11235
11301
  var token = $3;
@@ -11239,7 +11305,7 @@ var ImplementsToken$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, __, Implem
11239
11305
  }
11240
11306
  return { children };
11241
11307
  });
11242
- var ImplementsToken$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L20, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
11308
+ var ImplementsToken$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(NotDedented, (0, import_lib2.$EXPECT)($L19, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
11243
11309
  $2 = { $loc, token: $2 };
11244
11310
  return [$1, $2];
11245
11311
  });
@@ -11247,7 +11313,7 @@ var ImplementsToken$$ = [ImplementsToken$0, ImplementsToken$1];
11247
11313
  function ImplementsToken(ctx, state2) {
11248
11314
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ImplementsToken", ImplementsToken$$);
11249
11315
  }
11250
- var ImplementsShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L21, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
11316
+ var ImplementsShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L20, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
11251
11317
  return { $loc, token: "implements " };
11252
11318
  });
11253
11319
  function ImplementsShorthand(ctx, state2) {
@@ -11687,7 +11753,7 @@ var OptionalDot$$ = [OptionalDot$0, OptionalDot$1];
11687
11753
  function OptionalDot(ctx, state2) {
11688
11754
  return (0, import_lib2.$EVENT_C)(ctx, state2, "OptionalDot", OptionalDot$$);
11689
11755
  }
11690
- var NonNullAssertion$0 = (0, import_lib2.$T)((0, import_lib2.$S)(ExclamationPoint, (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L22, 'NonNullAssertion "^"'), (0, import_lib2.$EXPECT)($L23, 'NonNullAssertion "<?"'), (0, import_lib2.$EXPECT)($L3, 'NonNullAssertion "="')))), function(value) {
11756
+ var NonNullAssertion$0 = (0, import_lib2.$T)((0, import_lib2.$S)(ExclamationPoint, (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L21, 'NonNullAssertion "^"'), (0, import_lib2.$EXPECT)($L22, 'NonNullAssertion "<?"'), (0, import_lib2.$EXPECT)($L3, 'NonNullAssertion "="')))), function(value) {
11691
11757
  return { "type": "NonNullAssertion", "ts": true, "children": [value[0]] };
11692
11758
  });
11693
11759
  function NonNullAssertion(ctx, state2) {
@@ -11947,7 +12013,7 @@ var PropertyAccess$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(AccessStart, (0,
11947
12013
  ]
11948
12014
  };
11949
12015
  });
11950
- var PropertyAccess$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(AccessStart, (0, import_lib2.$EXPECT)($L24, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
12016
+ var PropertyAccess$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(AccessStart, (0, import_lib2.$EXPECT)($L23, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
11951
12017
  var dot = $1;
11952
12018
  var neg = $2;
11953
12019
  var num = $3;
@@ -12077,7 +12143,7 @@ function SuperProperty(ctx, state2) {
12077
12143
  return (0, import_lib2.$EVENT_C)(ctx, state2, "SuperProperty", SuperProperty$$);
12078
12144
  }
12079
12145
  var MetaProperty$0 = (0, import_lib2.$S)(New, Dot, Target);
12080
- var MetaProperty$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L25, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12146
+ var MetaProperty$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L24, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12081
12147
  return { $loc, token: $1 };
12082
12148
  });
12083
12149
  var MetaProperty$2 = ReturnValue;
@@ -12085,7 +12151,7 @@ var MetaProperty$$ = [MetaProperty$0, MetaProperty$1, MetaProperty$2];
12085
12151
  function MetaProperty(ctx, state2) {
12086
12152
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MetaProperty", MetaProperty$$);
12087
12153
  }
12088
- var ReturnValue$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L26, 'ReturnValue "return.value"'), NonIdContinue), (0, import_lib2.$S)(Return, (0, import_lib2.$Y)(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
12154
+ var ReturnValue$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L25, 'ReturnValue "return.value"'), NonIdContinue), (0, import_lib2.$S)(Return, (0, import_lib2.$Y)(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
12089
12155
  return { type: "ReturnValue", children: [$1[0]] };
12090
12156
  });
12091
12157
  function ReturnValue(ctx, state2) {
@@ -12641,7 +12707,7 @@ var BindingElement$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.
12641
12707
  initializer
12642
12708
  };
12643
12709
  });
12644
- var BindingElement$2 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L17, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
12710
+ var BindingElement$2 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L26, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
12645
12711
  return {
12646
12712
  type: "ElisionElement",
12647
12713
  children: [""],
@@ -13568,7 +13634,7 @@ var UpcomingAssignment$0 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, impor
13568
13634
  function UpcomingAssignment(ctx, state2) {
13569
13635
  return (0, import_lib2.$EVENT)(ctx, state2, "UpcomingAssignment", UpcomingAssignment$0);
13570
13636
  }
13571
- var ArrayLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R20, "ArrayLiteral /(?=\\[|\\s*[.\u2022])/"), _ArrayLiteral), function(value) {
13637
+ var ArrayLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R20, "ArrayLiteral /(?=\\[|\\s*[.\u2022\\/])/"), _ArrayLiteral), function(value) {
13572
13638
  return value[1];
13573
13639
  });
13574
13640
  function ArrayLiteral(ctx, state2) {
@@ -14352,7 +14418,7 @@ function SnugNamedProperty(ctx, state2) {
14352
14418
  var PropertyName$0 = NumericLiteral;
14353
14419
  var PropertyName$1 = ComputedPropertyName;
14354
14420
  var PropertyName$2 = StringLiteral;
14355
- var PropertyName$3 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$E)(IdentifierName), (0, import_lib2.$EXPECT)($L24, 'PropertyName "-"'), (0, import_lib2.$EXPECT)($R25, "PropertyName /(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"))), function($skip, $loc, $0, $1) {
14421
+ var PropertyName$3 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$E)(IdentifierName), (0, import_lib2.$EXPECT)($L23, 'PropertyName "-"'), (0, import_lib2.$EXPECT)($R25, "PropertyName /(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"))), function($skip, $loc, $0, $1) {
14356
14422
  return {
14357
14423
  token: `"${$1}"`,
14358
14424
  $loc
@@ -14829,7 +14895,7 @@ var BinaryOpSymbol$6 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.
14829
14895
  };
14830
14896
  });
14831
14897
  var BinaryOpSymbol$7 = (0, import_lib2.$EXPECT)($L79, 'BinaryOpSymbol "+"');
14832
- var BinaryOpSymbol$8 = (0, import_lib2.$EXPECT)($L24, 'BinaryOpSymbol "-"');
14898
+ var BinaryOpSymbol$8 = (0, import_lib2.$EXPECT)($L23, 'BinaryOpSymbol "-"');
14833
14899
  var BinaryOpSymbol$9 = (0, import_lib2.$EXPECT)($L80, 'BinaryOpSymbol "<="');
14834
14900
  var BinaryOpSymbol$10 = (0, import_lib2.$T)((0, import_lib2.$EXPECT)($L81, 'BinaryOpSymbol "\u2264"'), function(value) {
14835
14901
  return "<=";
@@ -14838,7 +14904,7 @@ var BinaryOpSymbol$11 = (0, import_lib2.$EXPECT)($L82, 'BinaryOpSymbol ">="');
14838
14904
  var BinaryOpSymbol$12 = (0, import_lib2.$T)((0, import_lib2.$EXPECT)($L83, 'BinaryOpSymbol "\u2265"'), function(value) {
14839
14905
  return ">=";
14840
14906
  });
14841
- var BinaryOpSymbol$13 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L23, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
14907
+ var BinaryOpSymbol$13 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L22, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
14842
14908
  return {
14843
14909
  $loc,
14844
14910
  token: "instanceof",
@@ -14861,7 +14927,7 @@ var BinaryOpSymbol$15 = (0, import_lib2.$EXPECT)($L85, 'BinaryOpSymbol "<<"');
14861
14927
  var BinaryOpSymbol$16 = (0, import_lib2.$T)((0, import_lib2.$EXPECT)($L86, 'BinaryOpSymbol "\u226A"'), function(value) {
14862
14928
  return "<<";
14863
14929
  });
14864
- var BinaryOpSymbol$17 = (0, import_lib2.$EXPECT)($L19, 'BinaryOpSymbol "<"');
14930
+ var BinaryOpSymbol$17 = (0, import_lib2.$EXPECT)($L18, 'BinaryOpSymbol "<"');
14865
14931
  var BinaryOpSymbol$18 = (0, import_lib2.$EXPECT)($L87, 'BinaryOpSymbol ">>>"');
14866
14932
  var BinaryOpSymbol$19 = (0, import_lib2.$T)((0, import_lib2.$EXPECT)($L88, 'BinaryOpSymbol "\u22D9"'), function(value) {
14867
14933
  return ">>>";
@@ -14998,7 +15064,7 @@ var BinaryOpSymbol$48 = (0, import_lib2.$TS)((0, import_lib2.$S)(Is), function($
14998
15064
  });
14999
15065
  var BinaryOpSymbol$49 = In;
15000
15066
  var BinaryOpSymbol$50 = (0, import_lib2.$EXPECT)($L117, 'BinaryOpSymbol "&"');
15001
- var BinaryOpSymbol$51 = (0, import_lib2.$EXPECT)($L22, 'BinaryOpSymbol "^"');
15067
+ var BinaryOpSymbol$51 = (0, import_lib2.$EXPECT)($L21, 'BinaryOpSymbol "^"');
15002
15068
  var BinaryOpSymbol$52 = (0, import_lib2.$EXPECT)($L118, 'BinaryOpSymbol "|"');
15003
15069
  var BinaryOpSymbol$$ = [BinaryOpSymbol$0, BinaryOpSymbol$1, BinaryOpSymbol$2, BinaryOpSymbol$3, BinaryOpSymbol$4, BinaryOpSymbol$5, BinaryOpSymbol$6, BinaryOpSymbol$7, BinaryOpSymbol$8, BinaryOpSymbol$9, BinaryOpSymbol$10, BinaryOpSymbol$11, BinaryOpSymbol$12, BinaryOpSymbol$13, BinaryOpSymbol$14, BinaryOpSymbol$15, BinaryOpSymbol$16, BinaryOpSymbol$17, BinaryOpSymbol$18, BinaryOpSymbol$19, BinaryOpSymbol$20, BinaryOpSymbol$21, BinaryOpSymbol$22, BinaryOpSymbol$23, BinaryOpSymbol$24, BinaryOpSymbol$25, BinaryOpSymbol$26, BinaryOpSymbol$27, BinaryOpSymbol$28, BinaryOpSymbol$29, BinaryOpSymbol$30, BinaryOpSymbol$31, BinaryOpSymbol$32, BinaryOpSymbol$33, BinaryOpSymbol$34, BinaryOpSymbol$35, BinaryOpSymbol$36, BinaryOpSymbol$37, BinaryOpSymbol$38, BinaryOpSymbol$39, BinaryOpSymbol$40, BinaryOpSymbol$41, BinaryOpSymbol$42, BinaryOpSymbol$43, BinaryOpSymbol$44, BinaryOpSymbol$45, BinaryOpSymbol$46, BinaryOpSymbol$47, BinaryOpSymbol$48, BinaryOpSymbol$49, BinaryOpSymbol$50, BinaryOpSymbol$51, BinaryOpSymbol$52];
15004
15070
  function BinaryOpSymbol(ctx, state2) {
@@ -15093,7 +15159,7 @@ var UnaryOp$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)(Del
15093
15159
  if (!ws) return [op, [" "]];
15094
15160
  return [op, ws];
15095
15161
  });
15096
- var UnaryOp$3 = (0, import_lib2.$T)((0, import_lib2.$S)(Not, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R30, "UnaryOp /[:.]/")), (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'UnaryOp " "')), (0, import_lib2.$E)(_)), function(value) {
15162
+ var UnaryOp$3 = (0, import_lib2.$T)((0, import_lib2.$S)(Not, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R30, "UnaryOp /[:.]/")), (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'UnaryOp " "')), (0, import_lib2.$E)(_)), function(value) {
15097
15163
  return [value[0], value[3]];
15098
15164
  });
15099
15165
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -15332,12 +15398,7 @@ var IfStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)
15332
15398
  condition = negateCondition(condition);
15333
15399
  }
15334
15400
  if (block.bare && e) {
15335
- const semicolon = ";";
15336
- block = {
15337
- ...block,
15338
- semicolon,
15339
- children: [...block.children, semicolon]
15340
- };
15401
+ block = bracedBlock(block);
15341
15402
  }
15342
15403
  return {
15343
15404
  type: "IfStatement",
@@ -15353,11 +15414,7 @@ var IfStatement$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(IfClause, BlockOrEm
15353
15414
  var block = $2;
15354
15415
  var e = $3;
15355
15416
  if (block.bare && e) {
15356
- block = {
15357
- ...block,
15358
- semicolon: ";",
15359
- children: [...block.children, ";"]
15360
- };
15417
+ block = bracedBlock(block);
15361
15418
  }
15362
15419
  return {
15363
15420
  type: "IfStatement",
@@ -16701,7 +16758,7 @@ var ImportDeclaration$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImpliedImport
16701
16758
  const children = [i, t, imports, w, from];
16702
16759
  return { type: "ImportDeclaration", ts: !!t, children, imports, from };
16703
16760
  });
16704
- var ImportDeclaration$5 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImpliedFromClause, __, Import, __, Operator, (0, import_lib2.$E)(OperatorBehavior), __, OperatorNamedImports), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
16761
+ var ImportDeclaration$5 = (0, import_lib2.$TS)((0, import_lib2.$S)(FromClause, __, Import, __, Operator, (0, import_lib2.$E)(OperatorBehavior), __, OperatorNamedImports), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
16705
16762
  var from = $1;
16706
16763
  var fws = $2;
16707
16764
  var i = $3;
@@ -16723,7 +16780,7 @@ var ImportDeclaration$5 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImpliedFromCl
16723
16780
  from
16724
16781
  };
16725
16782
  });
16726
- var ImportDeclaration$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImpliedFromClause, __, Import, __, (0, import_lib2.$E)((0, import_lib2.$S)(TypeKeyword, __)), ImportClause), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
16783
+ var ImportDeclaration$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(FromClause, __, Import, __, (0, import_lib2.$E)((0, import_lib2.$S)(TypeKeyword, __)), ImportClause), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
16727
16784
  var from = $1;
16728
16785
  var fws = $2;
16729
16786
  var i = $3;
@@ -16821,20 +16878,6 @@ var FromClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(From, __, ModuleSpec
16821
16878
  function FromClause(ctx, state2) {
16822
16879
  return (0, import_lib2.$EVENT)(ctx, state2, "FromClause", FromClause$0);
16823
16880
  }
16824
- var ImpliedFromClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$S)(From, __), ImpliedFrom), ModuleSpecifier), function($skip, $loc, $0, $1, $2) {
16825
- var module2 = $2;
16826
- if (!Array.isArray(module2)) return $0;
16827
- return [$1, ...module2];
16828
- });
16829
- function ImpliedFromClause(ctx, state2) {
16830
- return (0, import_lib2.$EVENT)(ctx, state2, "ImpliedFromClause", ImpliedFromClause$0);
16831
- }
16832
- var ImpliedFrom$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'ImpliedFrom ""'), function($skip, $loc, $0, $1) {
16833
- return { $loc, token: "from " };
16834
- });
16835
- function ImpliedFrom(ctx, state2) {
16836
- return (0, import_lib2.$EVENT)(ctx, state2, "ImpliedFrom", ImpliedFrom$0);
16837
- }
16838
16881
  var ImportAssertion$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L134, 'ImportAssertion "with"'), (0, import_lib2.$EXPECT)($L135, 'ImportAssertion "assert"')), NonIdContinue, (0, import_lib2.$E)(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16839
16882
  var keyword = $2;
16840
16883
  var object = $5;
@@ -16916,7 +16959,7 @@ function OperatorImportSpecifier(ctx, state2) {
16916
16959
  return (0, import_lib2.$EVENT_C)(ctx, state2, "OperatorImportSpecifier", OperatorImportSpecifier$$);
16917
16960
  }
16918
16961
  var ImportAsToken$0 = (0, import_lib2.$S)(__, As);
16919
- var ImportAsToken$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, __, Colon, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
16962
+ var ImportAsToken$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Loc, __, Colon, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
16920
16963
  var l = $1;
16921
16964
  var ws = $2;
16922
16965
  var c = $3;
@@ -17029,7 +17072,7 @@ var ExportDeclaration$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(Export, __, E
17029
17072
  var exports2 = $3;
17030
17073
  return { type: "ExportDeclaration", ts: exports2.ts, children: $0 };
17031
17074
  });
17032
- var ExportDeclaration$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(ImpliedFromClause, __, Export, __, ExportFromClause), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17075
+ var ExportDeclaration$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(FromClause, __, Export, __, ExportFromClause), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17033
17076
  var from = $1;
17034
17077
  var fws = $2;
17035
17078
  var e = $3;
@@ -17732,7 +17775,7 @@ var Loc$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Loc ""'), functi
17732
17775
  function Loc(ctx, state2) {
17733
17776
  return (0, import_lib2.$EVENT)(ctx, state2, "Loc", Loc$0);
17734
17777
  }
17735
- var Abstract$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L144, 'Abstract "abstract"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'Abstract " "')))), function($skip, $loc, $0, $1) {
17778
+ var Abstract$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L144, 'Abstract "abstract"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'Abstract " "')))), function($skip, $loc, $0, $1) {
17736
17779
  return { $loc, token: $1, ts: true };
17737
17780
  });
17738
17781
  function Abstract(ctx, state2) {
@@ -17786,7 +17829,7 @@ var By$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L1
17786
17829
  function By(ctx, state2) {
17787
17830
  return (0, import_lib2.$EVENT)(ctx, state2, "By", By$0);
17788
17831
  }
17789
- var Caret$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L22, 'Caret "^"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L22, 'Caret "^"'))), function($skip, $loc, $0, $1, $2) {
17832
+ var Caret$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L21, 'Caret "^"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L21, 'Caret "^"'))), function($skip, $loc, $0, $1, $2) {
17790
17833
  return { $loc, token: $1 };
17791
17834
  });
17792
17835
  function Caret(ctx, state2) {
@@ -17846,7 +17889,7 @@ var Colon$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)(
17846
17889
  function Colon(ctx, state2) {
17847
17890
  return (0, import_lib2.$EVENT)(ctx, state2, "Colon", Colon$0);
17848
17891
  }
17849
- var Comma$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L17, 'Comma ","'), function($skip, $loc, $0, $1) {
17892
+ var Comma$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L26, 'Comma ","'), function($skip, $loc, $0, $1) {
17850
17893
  return { $loc, token: $1 };
17851
17894
  });
17852
17895
  function Comma(ctx, state2) {
@@ -18018,7 +18061,7 @@ var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L178, 'Hash "#"'), f
18018
18061
  function Hash(ctx, state2) {
18019
18062
  return (0, import_lib2.$EVENT)(ctx, state2, "Hash", Hash$0);
18020
18063
  }
18021
- var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L179, 'If "if"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'If " "')))), function($skip, $loc, $0, $1) {
18064
+ var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L179, 'If "if"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L17, 'If " "')))), function($skip, $loc, $0, $1) {
18022
18065
  return { $loc, token: $1 };
18023
18066
  });
18024
18067
  function If(ctx, state2) {
@@ -18096,7 +18139,7 @@ var Of$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L1
18096
18139
  function Of(ctx, state2) {
18097
18140
  return (0, import_lib2.$EVENT)(ctx, state2, "Of", Of$0);
18098
18141
  }
18099
- var OpenAngleBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L19, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
18142
+ var OpenAngleBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L18, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
18100
18143
  return { $loc, token: $1 };
18101
18144
  });
18102
18145
  function OpenAngleBracket(ctx, state2) {
@@ -18430,7 +18473,7 @@ var JSXElement$$ = [JSXElement$0, JSXElement$1, JSXElement$2];
18430
18473
  function JSXElement(ctx, state2) {
18431
18474
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElement", JSXElement$$);
18432
18475
  }
18433
- var JSXSelfClosingElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L19, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L230, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
18476
+ var JSXSelfClosingElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L18, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L230, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
18434
18477
  return { type: "JSXElement", children: $0, tag: $2 };
18435
18478
  });
18436
18479
  function JSXSelfClosingElement(ctx, state2) {
@@ -18449,7 +18492,7 @@ var PopJSXStack$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'PopJSXSt
18449
18492
  function PopJSXStack(ctx, state2) {
18450
18493
  return (0, import_lib2.$EVENT)(ctx, state2, "PopJSXStack", PopJSXStack$0);
18451
18494
  }
18452
- var JSXOpeningElement$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L19, 'JSXOpeningElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L45, 'JSXOpeningElement ">"'));
18495
+ var JSXOpeningElement$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L18, 'JSXOpeningElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L45, 'JSXOpeningElement ">"'));
18453
18496
  function JSXOpeningElement(ctx, state2) {
18454
18497
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXOpeningElement", JSXOpeningElement$0);
18455
18498
  }
@@ -19830,7 +19873,7 @@ var TypePrimary$9 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)
19830
19873
  args
19831
19874
  };
19832
19875
  });
19833
- var TypePrimary$10 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), OpenParen, AllowAll, (0, import_lib2.$E)((0, import_lib2.$C)(Type, (0, import_lib2.$S)(EOS, Type))), RestoreAll, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
19876
+ var TypePrimary$10 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), OpenParen, AllowAll, (0, import_lib2.$E)((0, import_lib2.$C)(MaybeNestedType, (0, import_lib2.$S)(EOS, Type))), RestoreAll, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
19834
19877
  if (!$4) return $skip;
19835
19878
  return {
19836
19879
  type: "TypeParenthesized",