@danielx/civet 0.7.28 → 0.7.29

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
@@ -70,7 +70,7 @@ var Civet = (() => {
70
70
  $N: () => $N2,
71
71
  $P: () => $P2,
72
72
  $Q: () => $Q2,
73
- $R: () => $R98,
73
+ $R: () => $R100,
74
74
  $R$0: () => $R$02,
75
75
  $S: () => $S2,
76
76
  $T: () => $T2,
@@ -107,7 +107,7 @@ var Civet = (() => {
107
107
  return;
108
108
  };
109
109
  }
110
- function $R98(regExp) {
110
+ function $R100(regExp) {
111
111
  return function(_ctx, state2) {
112
112
  const { input, pos } = state2;
113
113
  regExp.lastIndex = state2.pos;
@@ -518,6 +518,7 @@ ${body}`;
518
518
  addPostfixStatement: () => addPostfixStatement,
519
519
  adjustBindingElements: () => adjustBindingElements,
520
520
  adjustIndexAccess: () => adjustIndexAccess,
521
+ append: () => append,
521
522
  attachPostfixStatementAsExpression: () => attachPostfixStatementAsExpression,
522
523
  blockWithPrefix: () => blockWithPrefix,
523
524
  convertNamedImportsToObject: () => convertNamedImportsToObject,
@@ -806,7 +807,7 @@ ${body}`;
806
807
  return;
807
808
  }
808
809
  function prepend(prefix, node) {
809
- if (!(prefix && prefix.length)) {
810
+ if (!prefix || Array.isArray(prefix) && len(prefix, 0)) {
810
811
  return node;
811
812
  }
812
813
  if (Array.isArray(node)) {
@@ -820,6 +821,21 @@ ${body}`;
820
821
  return [prefix, node];
821
822
  }
822
823
  }
824
+ function append(node, suffix) {
825
+ if (!suffix || Array.isArray(suffix) && len(suffix, 0)) {
826
+ return node;
827
+ }
828
+ if (Array.isArray(node)) {
829
+ return [...node, suffix];
830
+ } else if (isParent(node)) {
831
+ return {
832
+ ...node,
833
+ children: [...node.children, suffix]
834
+ };
835
+ } else {
836
+ return [node, suffix];
837
+ }
838
+ }
823
839
  function inplacePrepend(prefix, node) {
824
840
  if (!prefix) {
825
841
  return;
@@ -3284,26 +3300,24 @@ ${body}`;
3284
3300
  function aggregateDuplicateBindings(bindings) {
3285
3301
  const props = gatherRecursiveAll(bindings, ($10) => $10.type === "BindingProperty");
3286
3302
  const arrayBindings = gatherRecursiveAll(bindings, ($11) => $11.type === "ArrayBindingPattern");
3287
- arrayBindings.forEach((a) => {
3288
- const { elements } = a;
3289
- return elements.forEach((element) => {
3303
+ for (let i5 = 0, len4 = arrayBindings.length; i5 < len4; i5++) {
3304
+ const { elements } = arrayBindings[i5];
3305
+ for (let i6 = 0, len5 = elements.length; i6 < len5; i6++) {
3306
+ const element = elements[i6];
3290
3307
  if (Array.isArray(element)) {
3291
3308
  const [, e] = element;
3292
3309
  if (e.type === "Identifier") {
3293
- return props.push(e);
3310
+ props.push(e);
3294
3311
  } else if (e.type === "BindingRestElement") {
3295
- return props.push(e);
3312
+ props.push(e);
3296
3313
  }
3297
- ;
3298
- return;
3299
3314
  }
3300
- ;
3301
- return;
3302
- });
3303
- });
3315
+ }
3316
+ }
3304
3317
  const declarations = [];
3305
3318
  const propsGroupedByName = /* @__PURE__ */ new Map();
3306
- for (const p of props) {
3319
+ for (let i7 = 0, len6 = props.length; i7 < len6; i7++) {
3320
+ const p = props[i7];
3307
3321
  const { name, value } = p;
3308
3322
  let m1;
3309
3323
  if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern") {
@@ -3325,9 +3339,10 @@ ${body}`;
3325
3339
  pos: 0,
3326
3340
  input: key
3327
3341
  })) {
3328
- shared.forEach((p) => {
3329
- return aliasBinding(p, makeRef(`_${key}`, key));
3330
- });
3342
+ for (let i8 = 0, len7 = shared.length; i8 < len7; i8++) {
3343
+ const p = shared[i8];
3344
+ aliasBinding(p, makeRef(`_${key}`, key));
3345
+ }
3331
3346
  return;
3332
3347
  }
3333
3348
  if (shared.length === 1) {
@@ -5220,9 +5235,8 @@ ${js}`
5220
5235
  children
5221
5236
  });
5222
5237
  }
5223
- function expressionizeTypeIf([ws, ifOp, condition, t, e]) {
5238
+ function expressionizeTypeIf([ifOp, condition, t, e]) {
5224
5239
  const children = [
5225
- ws,
5226
5240
  "(",
5227
5241
  insertTrimmingSpace(condition, ""),
5228
5242
  "?"
@@ -7179,6 +7193,8 @@ ${js}`
7179
7193
  TypePredicate,
7180
7194
  Type,
7181
7195
  TypeBinary,
7196
+ NestedTypeBinaryChain,
7197
+ NestedTypeBinary,
7182
7198
  TypeUnary,
7183
7199
  TypeUnarySuffix,
7184
7200
  TypeUnaryOp,
@@ -7187,13 +7203,21 @@ ${js}`
7187
7203
  TypePrimary,
7188
7204
  ImportType,
7189
7205
  TypeTuple,
7190
- TypeList,
7206
+ TypeTupleContent,
7207
+ TypeElementListWithIndentedApplicationForbidden,
7208
+ TypeElementList,
7191
7209
  TypeElement,
7192
- NestedTypeList,
7193
- NestedType,
7210
+ NestedTypeElementList,
7211
+ NestedTypeElement,
7212
+ NestedTypeBulletedTuple,
7213
+ TypeBulletedTuple,
7214
+ NestedTypeBullet,
7215
+ TypeBullet,
7216
+ TypeWithPostfix,
7194
7217
  TypeConditional,
7195
7218
  TypeCondition,
7196
7219
  TypeIfThenElse,
7220
+ TypeIfClause,
7197
7221
  TypeElse,
7198
7222
  TypeBlock,
7199
7223
  TypeTemplateSubstitution,
@@ -7208,6 +7232,14 @@ ${js}`
7208
7232
  TypeFunction,
7209
7233
  TypeArrowFunction,
7210
7234
  TypeArguments,
7235
+ ImplicitTypeArguments,
7236
+ TypeApplicationStart,
7237
+ ForbiddenImplicitTypeCalls,
7238
+ TypeArgumentList,
7239
+ NestedTypeArgumentList,
7240
+ NestedTypeArgument,
7241
+ SingleLineTypeArgumentList,
7242
+ TypeArgumentDelimited,
7211
7243
  TypeArgument,
7212
7244
  TypeArgumentDelimiter,
7213
7245
  TypeParameters,
@@ -7236,6 +7268,8 @@ ${js}`
7236
7268
  InsertCloseBrace,
7237
7269
  InsertOpenBracket,
7238
7270
  InsertCloseBracket,
7271
+ InsertOpenAngleBracket,
7272
+ InsertCloseAngleBracket,
7239
7273
  InsertComma,
7240
7274
  InsertSpaceEquals,
7241
7275
  InsertConst,
@@ -7277,7 +7311,8 @@ ${js}`
7277
7311
  IndentedFurther,
7278
7312
  IndentedAtLeast,
7279
7313
  NotDedented,
7280
- Dedented
7314
+ Dedented,
7315
+ PushExtraIndent1
7281
7316
  };
7282
7317
  var $L0 = (0, import_lib3.$L)("");
7283
7318
  var $L1 = (0, import_lib3.$L)("{");
@@ -7524,7 +7559,7 @@ ${js}`
7524
7559
  var $R3 = (0, import_lib3.$R)(new RegExp("[0-9]", "suy"));
7525
7560
  var $R4 = (0, import_lib3.$R)(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
7526
7561
  var $R5 = (0, import_lib3.$R)(new RegExp("[ \\t]", "suy"));
7527
- var $R6 = (0, import_lib3.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{]", "suy"));
7562
+ var $R6 = (0, import_lib3.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{=]", "suy"));
7528
7563
  var $R7 = (0, import_lib3.$R)(new RegExp("[&=]", "suy"));
7529
7564
  var $R8 = (0, import_lib3.$R)(new RegExp("(?=['\"`])", "suy"));
7530
7565
  var $R9 = (0, import_lib3.$R)(new RegExp("(?=[\\/?])", "suy"));
@@ -7608,14 +7643,16 @@ ${js}`
7608
7643
  var $R87 = (0, import_lib3.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
7609
7644
  var $R88 = (0, import_lib3.$R)(new RegExp("[+-]?", "suy"));
7610
7645
  var $R89 = (0, import_lib3.$R)(new RegExp("(?=if|unless)", "suy"));
7611
- var $R90 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7612
- var $R91 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7613
- var $R92 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7614
- var $R93 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
7615
- var $R94 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7616
- var $R95 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7617
- var $R96 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7618
- var $R97 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7646
+ var $R90 = (0, import_lib3.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
7647
+ var $R91 = (0, import_lib3.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
7648
+ var $R92 = (0, import_lib3.$R)(new RegExp("#![^\\r\\n]*", "suy"));
7649
+ var $R93 = (0, import_lib3.$R)(new RegExp("[\\t ]*", "suy"));
7650
+ var $R94 = (0, import_lib3.$R)(new RegExp("[\\s]*", "suy"));
7651
+ var $R95 = (0, import_lib3.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
7652
+ var $R96 = (0, import_lib3.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
7653
+ var $R97 = (0, import_lib3.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
7654
+ var $R98 = (0, import_lib3.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
7655
+ var $R99 = (0, import_lib3.$R)(new RegExp("[^]*", "suy"));
7619
7656
  var Program$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Reset, Init, (0, import_lib3.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7620
7657
  var reset = $1;
7621
7658
  var init = $2;
@@ -7802,6 +7839,9 @@ ${js}`
7802
7839
  var close = $5;
7803
7840
  if (skipImplicitArguments(args))
7804
7841
  return $skip;
7842
+ let last = args[args.length - 1];
7843
+ if (last?.token === "," && last.implicit)
7844
+ args = args.slice(0, -1);
7805
7845
  return {
7806
7846
  type: "Call",
7807
7847
  args,
@@ -8156,7 +8196,7 @@ ${js}`
8156
8196
  children: [{ $loc: $1.$loc, token: "satisfies" }, $2, $3]
8157
8197
  };
8158
8198
  });
8159
- var NWTypePostfix$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(As, (0, import_lib3.$E)(ExclamationPoint), Type), function($skip, $loc, $0, $1, $2, $3) {
8199
+ var NWTypePostfix$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(As, (0, import_lib3.$E)(ExclamationPoint), (0, import_lib3.$C)(Type, (0, import_lib3.$S)(__, Const))), function($skip, $loc, $0, $1, $2, $3) {
8160
8200
  var as = $1;
8161
8201
  var ex = $2;
8162
8202
  var type = $3;
@@ -8510,7 +8550,7 @@ ${js}`
8510
8550
  function ParenthesizedExpression(ctx, state2) {
8511
8551
  return (0, import_lib3.$EVENT)(ctx, state2, "ParenthesizedExpression", ParenthesizedExpression$0);
8512
8552
  }
8513
- var Placeholder$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Dot, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($R6, "Placeholder /\\p{ID_Continue}|[\\u200C\\u200D$.#{]/")), (0, import_lib3.$E)(PlaceholderTypeSuffix)), function($skip, $loc, $0, $1, $2, $3) {
8553
+ var Placeholder$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Dot, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($R6, "Placeholder /\\p{ID_Continue}|[\\u200C\\u200D$.#{=]/")), (0, import_lib3.$E)(PlaceholderTypeSuffix)), function($skip, $loc, $0, $1, $2, $3) {
8514
8554
  var dot = $1;
8515
8555
  var typeSuffix = $3;
8516
8556
  return {
@@ -9463,18 +9503,18 @@ ${js}`
9463
9503
  var params = $3;
9464
9504
  var close = $4;
9465
9505
  let tt, before = [], rest, after = [], errors = [];
9466
- function append(p) {
9506
+ function append2(p) {
9467
9507
  (rest ? after : before).push(p);
9468
9508
  }
9469
9509
  for (const param of params) {
9470
9510
  switch (param.type) {
9471
9511
  case "ThisType":
9472
9512
  if (tt) {
9473
- append({
9513
+ append2({
9474
9514
  type: "Error",
9475
9515
  message: "Only one typed this parameter is allowed"
9476
9516
  });
9477
- append(param);
9517
+ append2(param);
9478
9518
  } else {
9479
9519
  tt = trimFirstSpace(param);
9480
9520
  if (before.length || rest) {
@@ -9492,17 +9532,17 @@ ${js}`
9492
9532
  break;
9493
9533
  case "FunctionRestParameter":
9494
9534
  if (rest) {
9495
- append({
9535
+ append2({
9496
9536
  type: "Error",
9497
9537
  message: "Only one rest parameter is allowed"
9498
9538
  });
9499
- append(param);
9539
+ append2(param);
9500
9540
  } else {
9501
9541
  rest = param;
9502
9542
  }
9503
9543
  break;
9504
9544
  default:
9505
- append(param);
9545
+ append2(param);
9506
9546
  }
9507
9547
  }
9508
9548
  const names = before.flatMap((p) => p.names);
@@ -11007,15 +11047,10 @@ ${js}`
11007
11047
  if (!length)
11008
11048
  return $skip;
11009
11049
  return list.map((e, i) => {
11010
- if (i === 0 && i === length - 1) {
11011
- return { ...e, children: [indent, ...e.children, delimiter] };
11012
- }
11013
- if (i === 0) {
11014
- return { ...e, children: [indent, ...e.children] };
11015
- }
11016
- if (i === length - 1) {
11017
- return { ...e, children: [...e.children, delimiter] };
11018
- }
11050
+ if (i === 0)
11051
+ e = prepend(indent, e);
11052
+ if (i === length - 1)
11053
+ e = append(e, delimiter);
11019
11054
  return e;
11020
11055
  });
11021
11056
  });
@@ -11045,19 +11080,13 @@ ${js}`
11045
11080
  var ElementList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), ArrayElementExpression, (0, import_lib3.$Q)(ElementListRest)), function($skip, $loc, $0, $1, $2, $3) {
11046
11081
  var first = $2;
11047
11082
  var rest = $3;
11048
- if (rest.length) {
11049
- return [{
11050
- ...first,
11051
- children: [...first.children, rest[0][0]]
11052
- }].concat(rest.map(([_2, e], i) => {
11053
- const delim = rest[i + 1]?.[0];
11054
- return {
11055
- ...e,
11056
- children: [...e.children, delim]
11057
- };
11058
- }));
11059
- }
11060
- return [first];
11083
+ if (!rest.length)
11084
+ return [first];
11085
+ return [
11086
+ append(first, rest[0][0])
11087
+ ].concat(
11088
+ rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
11089
+ );
11061
11090
  });
11062
11091
  var ElementList$$ = [ElementList$0, ElementList$1];
11063
11092
  function ElementList(ctx, state2) {
@@ -11118,9 +11147,10 @@ ${js}`
11118
11147
  if (!content.length)
11119
11148
  return $skip;
11120
11149
  content = content.flat();
11121
- const { children } = content[content.length - 1];
11122
- if (children.at(-1).implicit)
11123
- children.pop();
11150
+ const last = content[content.length - 1];
11151
+ if (last.children?.at(-1)?.implicit) {
11152
+ last.children = last.children.slice(0, -1);
11153
+ }
11124
11154
  return {
11125
11155
  type: "ArrayExpression",
11126
11156
  children: [...open, ...content, close]
@@ -11140,9 +11170,10 @@ ${js}`
11140
11170
  // replace first space with bracket
11141
11171
  ...content[1].flat()
11142
11172
  ];
11143
- const { children } = content[content.length - 1];
11144
- if (children.at(-1).implicit)
11145
- children.pop();
11173
+ const last = content[content.length - 1];
11174
+ if (last.children?.at(-1)?.implicit) {
11175
+ last.children = last.children.slice(0, -1);
11176
+ }
11146
11177
  return {
11147
11178
  type: "ArrayExpression",
11148
11179
  children: [open, ...content, close]
@@ -11154,7 +11185,7 @@ ${js}`
11154
11185
  var NestedArrayBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, ArrayBullet), function($skip, $loc, $0, $1, $2) {
11155
11186
  var indent = $1;
11156
11187
  var list = $2;
11157
- return list.map((e, i) => i === 0 ? { ...e, children: [indent, ...e.children] } : e);
11188
+ return list.map((e, i) => i === 0 ? prepend(indent, e) : e);
11158
11189
  });
11159
11190
  function NestedArrayBullet(ctx, state2) {
11160
11191
  return (0, import_lib3.$EVENT)(ctx, state2, "NestedArrayBullet", NestedArrayBullet$0);
@@ -11165,15 +11196,13 @@ ${js}`
11165
11196
  if (!content)
11166
11197
  return $skip;
11167
11198
  let [list, delimiter] = content;
11168
- if (list.type === "ArrayExpression")
11169
- list = [list];
11170
11199
  if (!list.length)
11171
11200
  return $skip;
11172
11201
  list = list.slice();
11173
- list[0] = { ...list[0], children: [bullet, ...list[0].children] };
11202
+ list[0] = prepend(bullet, list[0]);
11174
11203
  if (delimiter) {
11175
11204
  const last = list.length - 1;
11176
- list[last] = { ...list[last], children: [...list[last].children, delimiter] };
11205
+ list[last] = append(list[last], delimiter);
11177
11206
  }
11178
11207
  return list;
11179
11208
  });
@@ -15966,9 +15995,42 @@ ${js}`
15966
15995
  function JSXText(ctx, state2) {
15967
15996
  return (0, import_lib3.$EVENT)(ctx, state2, "JSXText", JSXText$0);
15968
15997
  }
15969
- var JSXChildExpression$0 = (0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), (0, import_lib3.$E)((0, import_lib3.$S)(DotDotDot, (0, import_lib3.$E)(Whitespace))), PostfixedExpression);
15998
+ var JSXChildExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), LexicalDeclaration), function($skip, $loc, $0, $1, $2) {
15999
+ var d = $2;
16000
+ let names = d.names.concat(
16001
+ d.thisAssignments.map((a) => a[1][1])
16002
+ );
16003
+ names.sort();
16004
+ names = names.filter((name, i) => i === 0 || name !== names[i - 1]);
16005
+ d = {
16006
+ ...d,
16007
+ hoistDec: {
16008
+ type: "Declaration",
16009
+ children: [
16010
+ "let ",
16011
+ names.map((n, i) => i === 0 ? [n] : [",", n]).flat()
16012
+ ]
16013
+ },
16014
+ children: d.children.slice(1)
16015
+ // drop LetOrConst
16016
+ };
16017
+ if (d.thisAssignments?.length) {
16018
+ d.children.push(...d.splices, ",", ...d.thisAssignments.map(
16019
+ (a, i) => a[a.length - 1] === ";" ? [
16020
+ ...a.slice(0, -1),
16021
+ i === d.thisAssignments.length - 1 ? "" : ","
16022
+ ] : a
16023
+ ));
16024
+ } else if (d.splices?.length) {
16025
+ d.children.push(...d.splices);
16026
+ }
16027
+ d.children.push(",void 0");
16028
+ return d;
16029
+ });
16030
+ var JSXChildExpression$1 = (0, import_lib3.$S)((0, import_lib3.$E)(Whitespace), (0, import_lib3.$E)((0, import_lib3.$S)(DotDotDot, (0, import_lib3.$E)(Whitespace))), PostfixedExpression);
16031
+ var JSXChildExpression$$ = [JSXChildExpression$0, JSXChildExpression$1];
15970
16032
  function JSXChildExpression(ctx, state2) {
15971
- return (0, import_lib3.$EVENT)(ctx, state2, "JSXChildExpression", JSXChildExpression$0);
16033
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "JSXChildExpression", JSXChildExpression$$);
15972
16034
  }
15973
16035
  var IndentedJSXChildExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)(NestedJSXChildExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15974
16036
  if (!$2)
@@ -16465,14 +16527,16 @@ ${js}`
16465
16527
  function TypeSuffix(ctx, state2) {
16466
16528
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeSuffix", TypeSuffix$$);
16467
16529
  }
16468
- var MaybeNestedType$0 = NestedInterfaceBlock;
16469
- var MaybeNestedType$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16530
+ var MaybeNestedType$0 = NestedTypeBulletedTuple;
16531
+ var MaybeNestedType$1 = NestedInterfaceBlock;
16532
+ var MaybeNestedType$2 = NestedTypeBinaryChain;
16533
+ var MaybeNestedType$3 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16470
16534
  if (!$2)
16471
16535
  return $skip;
16472
16536
  return $2;
16473
16537
  });
16474
- var MaybeNestedType$2 = Type;
16475
- var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2];
16538
+ var MaybeNestedType$4 = Type;
16539
+ var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2, MaybeNestedType$3, MaybeNestedType$4];
16476
16540
  function MaybeNestedType(ctx, state2) {
16477
16541
  return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedType", MaybeNestedType$$);
16478
16542
  }
@@ -16488,9 +16552,11 @@ ${js}`
16488
16552
  function ReturnTypeSuffix(ctx, state2) {
16489
16553
  return (0, import_lib3.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
16490
16554
  }
16491
- var ReturnType$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L232, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
16555
+ var ReturnType$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L232, 'ReturnType "asserts"'), NonIdContinue)), ForbidIndentedApplication, (0, import_lib3.$E)(TypePredicate), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
16492
16556
  var asserts = $1;
16493
- var t = $2;
16557
+ var t = $3;
16558
+ if (!t)
16559
+ return $skip;
16494
16560
  if (asserts) {
16495
16561
  t = {
16496
16562
  type: "AssertsType",
@@ -16509,7 +16575,7 @@ ${js}`
16509
16575
  function ReturnType(ctx, state2) {
16510
16576
  return (0, import_lib3.$EVENT)(ctx, state2, "ReturnType", ReturnType$0);
16511
16577
  }
16512
- var TypePredicate$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(MaybeNestedType, (0, import_lib3.$E)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L174, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
16578
+ var TypePredicate$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(MaybeNestedType, (0, import_lib3.$E)((0, import_lib3.$S)(__, Is, Type))), function($skip, $loc, $0, $1, $2) {
16513
16579
  var lhs = $1;
16514
16580
  var rhs = $2;
16515
16581
  if (!rhs)
@@ -16524,11 +16590,11 @@ ${js}`
16524
16590
  function TypePredicate(ctx, state2) {
16525
16591
  return (0, import_lib3.$EVENT)(ctx, state2, "TypePredicate", TypePredicate$0);
16526
16592
  }
16527
- var Type$0 = TypeConditional;
16593
+ var Type$0 = TypeWithPostfix;
16528
16594
  function Type(ctx, state2) {
16529
16595
  return (0, import_lib3.$EVENT)(ctx, state2, "Type", Type$0);
16530
16596
  }
16531
- var TypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(__, TypeBinaryOp, __)), TypeUnary, (0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeBinaryOp, __, TypeUnary))), function($skip, $loc, $0, $1, $2, $3) {
16597
+ var TypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(NotDedented, TypeBinaryOp, __)), TypeUnary, (0, import_lib3.$Q)((0, import_lib3.$S)(NotDedented, TypeBinaryOp, __, TypeUnary))), function($skip, $loc, $0, $1, $2, $3) {
16532
16598
  var optionalPrefix = $1;
16533
16599
  var t = $2;
16534
16600
  var ops = $3;
@@ -16543,6 +16609,25 @@ ${js}`
16543
16609
  function TypeBinary(ctx, state2) {
16544
16610
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeBinary", TypeBinary$0);
16545
16611
  }
16612
+ var NestedTypeBinaryChain$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedTypeBinary), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16613
+ if (!$2.length)
16614
+ return $skip;
16615
+ return $2;
16616
+ });
16617
+ function NestedTypeBinaryChain(ctx, state2) {
16618
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBinaryChain", NestedTypeBinaryChain$0);
16619
+ }
16620
+ var NestedTypeBinary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeBinaryOp, PushExtraIndent1, (0, import_lib3.$E)(TypeUnary), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16621
+ var indent = $1;
16622
+ var op = $2;
16623
+ var t = $4;
16624
+ if (!t)
16625
+ return $skip;
16626
+ return [indent, op, t];
16627
+ });
16628
+ function NestedTypeBinary(ctx, state2) {
16629
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBinary", NestedTypeBinary$0);
16630
+ }
16546
16631
  var TypeUnary$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeUnaryOp)), TypePrimary, (0, import_lib3.$Q)(TypeUnarySuffix)), function($skip, $loc, $0, $1, $2, $3) {
16547
16632
  var prefix = $1;
16548
16633
  var t = $2;
@@ -16612,7 +16697,7 @@ ${js}`
16612
16697
  };
16613
16698
  });
16614
16699
  var TypePrimary$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), TypeTuple), function($skip, $loc, $0, $1, $2) {
16615
- return { ...$2, children: [$1, ...$2.children] };
16700
+ return prepend($1, $2);
16616
16701
  });
16617
16702
  var TypePrimary$3 = InterfaceBlock;
16618
16703
  var TypePrimary$4 = (0, import_lib3.$S)((0, import_lib3.$E)(_), TypeFunction);
@@ -16641,7 +16726,7 @@ ${js}`
16641
16726
  args: void 0
16642
16727
  };
16643
16728
  });
16644
- var TypePrimary$9 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), IdentifierName, (0, import_lib3.$Q)((0, import_lib3.$S)(Dot, IdentifierName)), (0, import_lib3.$E)(TypeArguments)), function($skip, $loc, $0, $1, $2, $3, $4) {
16729
+ var TypePrimary$9 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), Identifier, (0, import_lib3.$Q)((0, import_lib3.$S)(Dot, IdentifierName)), (0, import_lib3.$E)((0, import_lib3.$C)(TypeArguments, ImplicitTypeArguments))), function($skip, $loc, $0, $1, $2, $3, $4) {
16645
16730
  var args = $4;
16646
16731
  return {
16647
16732
  type: "IdentifierType",
@@ -16650,10 +16735,13 @@ ${js}`
16650
16735
  args
16651
16736
  };
16652
16737
  });
16653
- var TypePrimary$10 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), OpenParen, (0, import_lib3.$C)(Type, (0, import_lib3.$S)(EOS, Type)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16738
+ var TypePrimary$10 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), OpenParen, AllowAll, (0, import_lib3.$E)((0, import_lib3.$C)(Type, (0, import_lib3.$S)(EOS, Type))), RestoreAll, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
16739
+ if (!$4)
16740
+ return $skip;
16654
16741
  return {
16655
16742
  type: "ParenthesizedType",
16656
- children: $0
16743
+ children: [$1, $2, $4, $6, $7]
16744
+ // omit AllowAll/RestoreAll
16657
16745
  };
16658
16746
  });
16659
16747
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8, TypePrimary$9, TypePrimary$10];
@@ -16666,18 +16754,58 @@ ${js}`
16666
16754
  function ImportType(ctx, state2) {
16667
16755
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ImportType", ImportType$$);
16668
16756
  }
16669
- var TypeTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenBracket, (0, import_lib3.$C)(NestedTypeList, (0, import_lib3.$E)(TypeList)), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
16757
+ var TypeTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenBracket, AllowAll, (0, import_lib3.$E)((0, import_lib3.$S)(TypeTupleContent, __, CloseBracket)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
16758
+ if (!$3)
16759
+ return $skip;
16670
16760
  return {
16671
16761
  type: "TypeTuple",
16672
- children: $0
16762
+ children: [$1, ...$3]
16673
16763
  };
16674
16764
  });
16675
16765
  function TypeTuple(ctx, state2) {
16676
16766
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeTuple", TypeTuple$0);
16677
16767
  }
16678
- var TypeList$0 = (0, import_lib3.$S)(TypeElement, (0, import_lib3.$Q)((0, import_lib3.$S)(__, Comma, TypeElement)));
16679
- function TypeList(ctx, state2) {
16680
- return (0, import_lib3.$EVENT)(ctx, state2, "TypeList", TypeList$0);
16768
+ var TypeTupleContent$0 = (0, import_lib3.$S)(NestedTypeElementList, (0, import_lib3.$Y)((0, import_lib3.$S)(__, CloseBracket)));
16769
+ var TypeTupleContent$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeElementListWithIndentedApplicationForbidden, ArrayElementDelimiter, (0, import_lib3.$E)(NestedTypeElementList), (0, import_lib3.$Y)((0, import_lib3.$S)(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
16770
+ var list = $1;
16771
+ var delimiter = $2;
16772
+ var nested = $3;
16773
+ if (!nested)
16774
+ return list;
16775
+ return [...list, delimiter, ...nested];
16776
+ });
16777
+ var TypeTupleContent$2 = (0, import_lib3.$TV)((0, import_lib3.$Q)((0, import_lib3.$S)(__, TypeElementListWithIndentedApplicationForbidden, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
16778
+ return $1.flat();
16779
+ });
16780
+ var TypeTupleContent$$ = [TypeTupleContent$0, TypeTupleContent$1, TypeTupleContent$2];
16781
+ function TypeTupleContent(ctx, state2) {
16782
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeTupleContent", TypeTupleContent$$);
16783
+ }
16784
+ var TypeElementListWithIndentedApplicationForbidden$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ForbidIndentedApplication, (0, import_lib3.$E)(TypeElementList), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3) {
16785
+ if ($2)
16786
+ return $2;
16787
+ return $skip;
16788
+ });
16789
+ function TypeElementListWithIndentedApplicationForbidden(ctx, state2) {
16790
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeElementListWithIndentedApplicationForbidden", TypeElementListWithIndentedApplicationForbidden$0);
16791
+ }
16792
+ var TypeElementList$0 = (0, import_lib3.$T)((0, import_lib3.$S)(TypeBulletedTuple), function(value) {
16793
+ return [value[0]];
16794
+ });
16795
+ var TypeElementList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), TypeElement, (0, import_lib3.$Q)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), Comma, (0, import_lib3.$N)(EOS)), TypeElement))), function($skip, $loc, $0, $1, $2, $3) {
16796
+ var first = $2;
16797
+ var rest = $3;
16798
+ if (!rest.length)
16799
+ return [first];
16800
+ return [
16801
+ append(first, rest[0][0])
16802
+ ].concat(
16803
+ rest.map(([_2, e], i) => append(e, rest[i + 1]?.[0]))
16804
+ );
16805
+ });
16806
+ var TypeElementList$$ = [TypeElementList$0, TypeElementList$1];
16807
+ function TypeElementList(ctx, state2) {
16808
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeElementList", TypeElementList$$);
16681
16809
  }
16682
16810
  var TypeElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(__, (0, import_lib3.$E)((0, import_lib3.$S)(DotDotDot, __)), IdentifierName, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)(_), DotDotDot)), (0, import_lib3.$S)(__, (0, import_lib3.$E)((0, import_lib3.$S)(QuestionMark, (0, import_lib3.$E)(_))), Colon, __), Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
16683
16811
  var ws = $1;
@@ -16711,21 +16839,129 @@ ${js}`
16711
16839
  function TypeElement(ctx, state2) {
16712
16840
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeElement", TypeElement$$);
16713
16841
  }
16714
- var NestedTypeList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedType), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16842
+ var NestedTypeElementList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedTypeElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16715
16843
  var types = $2;
16716
16844
  if (types.length)
16717
16845
  return types;
16718
16846
  return $skip;
16719
16847
  });
16720
- function NestedTypeList(ctx, state2) {
16721
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeList", NestedTypeList$0);
16848
+ function NestedTypeElementList(ctx, state2) {
16849
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeElementList", NestedTypeElementList$0);
16850
+ }
16851
+ var NestedTypeElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeElementList, ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
16852
+ var indent = $1;
16853
+ var list = $2;
16854
+ var delimiter = $3;
16855
+ const { length } = list;
16856
+ if (!length)
16857
+ return $skip;
16858
+ return list.map((e, i) => {
16859
+ if (i === 0)
16860
+ e = prepend(indent, e);
16861
+ if (i === length - 1)
16862
+ e = append(e, delimiter);
16863
+ return e;
16864
+ });
16865
+ });
16866
+ function NestedTypeElement(ctx, state2) {
16867
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeElement", NestedTypeElement$0);
16868
+ }
16869
+ var NestedTypeBulletedTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$S)(InsertSpace, InsertOpenBracket), PushIndent, (0, import_lib3.$Q)(NestedTypeBullet), InsertCloseBracket, PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16870
+ var open = $1;
16871
+ var content = $3;
16872
+ var close = $4;
16873
+ if (!content.length)
16874
+ return $skip;
16875
+ content = content.flat();
16876
+ const last = content[content.length - 1];
16877
+ let children = Array.isArray(last) ? last : last?.children;
16878
+ if (children?.at(-1).implicit) {
16879
+ children = children.slice(0, -1);
16880
+ if (Array.isArray(last)) {
16881
+ content[content.length - 1] = children;
16882
+ } else {
16883
+ content[content.length - 1] = { ...last, children };
16884
+ }
16885
+ }
16886
+ return {
16887
+ type: "TypeTuple",
16888
+ children: [...open, ...content, close]
16889
+ };
16890
+ });
16891
+ function NestedTypeBulletedTuple(ctx, state2) {
16892
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBulletedTuple", NestedTypeBulletedTuple$0);
16893
+ }
16894
+ var TypeBulletedTuple$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertOpenBracket, (0, import_lib3.$E)((0, import_lib3.$S)(TypeBullet, (0, import_lib3.$Q)(NestedTypeBullet))), InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3) {
16895
+ var open = $1;
16896
+ var content = $2;
16897
+ var close = $3;
16898
+ if (!content)
16899
+ return $skip;
16900
+ content = [
16901
+ ...trimFirstSpace(content[0]),
16902
+ // replace first space with bracket
16903
+ ...content[1].flat()
16904
+ ];
16905
+ const last = content[content.length - 1];
16906
+ let children = Array.isArray(last) ? last : last?.children;
16907
+ if (children?.at(-1).implicit) {
16908
+ children = children.slice(0, -1);
16909
+ if (Array.isArray(last)) {
16910
+ content[content.length - 1] = children;
16911
+ } else {
16912
+ content[content.length - 1] = { ...last, children };
16913
+ }
16914
+ }
16915
+ return {
16916
+ type: "TypeTuple",
16917
+ children: [open, ...content, close]
16918
+ };
16919
+ });
16920
+ function TypeBulletedTuple(ctx, state2) {
16921
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeBulletedTuple", TypeBulletedTuple$0);
16922
+ }
16923
+ var NestedTypeBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, TypeBullet), function($skip, $loc, $0, $1, $2) {
16924
+ var indent = $1;
16925
+ var list = $2;
16926
+ return list.map((e, i) => i === 0 ? prepend(indent, e) : e);
16927
+ });
16928
+ function NestedTypeBullet(ctx, state2) {
16929
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeBullet", NestedTypeBullet$0);
16930
+ }
16931
+ var TypeBullet$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(BulletIndent, (0, import_lib3.$E)((0, import_lib3.$S)(TypeElementList, ArrayBulletDelimiter)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
16932
+ var bullet = $1;
16933
+ var content = $2;
16934
+ if (!content)
16935
+ return $skip;
16936
+ let [list, delimiter] = content;
16937
+ if (!list.length)
16938
+ return $skip;
16939
+ list = list.slice();
16940
+ list[0] = prepend(bullet, list[0]);
16941
+ if (delimiter) {
16942
+ const last = list.length - 1;
16943
+ list[last] = append(list[last], delimiter);
16944
+ }
16945
+ return list;
16946
+ });
16947
+ function TypeBullet(ctx, state2) {
16948
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeBullet", TypeBullet$0);
16722
16949
  }
16723
- var NestedType$0 = (0, import_lib3.$S)(Nested, TypeElement, ArrayElementDelimiter);
16724
- function NestedType(ctx, state2) {
16725
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedType", NestedType$0);
16950
+ var TypeWithPostfix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeConditional, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$C)(_, IndentedFurther)), TypeIfClause))), function($skip, $loc, $0, $1, $2) {
16951
+ var t = $1;
16952
+ var postfix = $2;
16953
+ if (!postfix)
16954
+ return t;
16955
+ return prepend(
16956
+ postfix[0],
16957
+ expressionizeTypeIf([...postfix[1], $1, void 0])
16958
+ );
16959
+ });
16960
+ function TypeWithPostfix(ctx, state2) {
16961
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
16726
16962
  }
16727
16963
  var TypeConditional$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$EXPECT)($R89, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
16728
- return [$1, expressionizeTypeIf($3)];
16964
+ return prepend($1, expressionizeTypeIf($3));
16729
16965
  });
16730
16966
  var TypeConditional$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeCondition, NotDedented, QuestionMark, __, Type, __, Colon, __, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16731
16967
  if ($1.negated)
@@ -16737,7 +16973,7 @@ ${js}`
16737
16973
  function TypeConditional(ctx, state2) {
16738
16974
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeConditional", TypeConditional$$);
16739
16975
  }
16740
- var TypeCondition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeBinary, (0, import_lib3.$E)(IndentedFurther), (0, import_lib3.$C)(ExtendsToken, NotExtendsToken), Type), function($skip, $loc, $0, $1, $2, $3, $4) {
16976
+ var TypeCondition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeBinary, (0, import_lib3.$E)(IndentedFurther), (0, import_lib3.$C)(ExtendsToken, NotExtendsToken), TypeConditional), function($skip, $loc, $0, $1, $2, $3, $4) {
16741
16977
  return {
16742
16978
  type: "TypeCondition",
16743
16979
  negated: $3.negated,
@@ -16747,13 +16983,27 @@ ${js}`
16747
16983
  function TypeCondition(ctx, state2) {
16748
16984
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeCondition", TypeCondition$0);
16749
16985
  }
16750
- var TypeIfThenElse$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$C)(If, Unless), (0, import_lib3.$S)(OpenParen, TypeCondition, CloseParen), TypeBlock, (0, import_lib3.$E)(TypeElse)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16751
- return [$1, $2, $3[1], $4, $5];
16986
+ var TypeIfThenElse$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeIfClause, TypeBlock, (0, import_lib3.$E)(TypeElse)), function($skip, $loc, $0, $1, $2, $3) {
16987
+ return [...$1, $2, $3];
16752
16988
  });
16753
- var TypeIfThenElse$1 = (0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$C)(If, Unless), TypeCondition, TypeBlock, (0, import_lib3.$E)(TypeElse));
16754
- var TypeIfThenElse$$ = [TypeIfThenElse$0, TypeIfThenElse$1];
16755
16989
  function TypeIfThenElse(ctx, state2) {
16756
- return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIfThenElse", TypeIfThenElse$$);
16990
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeIfThenElse", TypeIfThenElse$0);
16991
+ }
16992
+ var TypeIfClause$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(If, Unless), OpenParen, AllowAll, (0, import_lib3.$E)(TypeCondition), RestoreAll, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
16993
+ var condition = $4;
16994
+ if (!condition)
16995
+ return $skip;
16996
+ return [$1, condition];
16997
+ });
16998
+ var TypeIfClause$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(If, Unless), ForbidIndentedApplication, (0, import_lib3.$E)(TypeCondition), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
16999
+ var condition = $3;
17000
+ if (!condition)
17001
+ return $skip;
17002
+ return [$1, condition];
17003
+ });
17004
+ var TypeIfClause$$ = [TypeIfClause$0, TypeIfClause$1];
17005
+ function TypeIfClause(ctx, state2) {
17006
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIfClause", TypeIfClause$$);
16757
17007
  }
16758
17008
  var TypeElse$0 = (0, import_lib3.$S)(NotDedented, Else, TypeBlock);
16759
17009
  function TypeElse(ctx, state2) {
@@ -16853,12 +17103,18 @@ ${js}`
16853
17103
  function TypeBinaryOp(ctx, state2) {
16854
17104
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeBinaryOp", TypeBinaryOp$$);
16855
17105
  }
16856
- var TypeFunction$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(Abstract, (0, import_lib3.$E)(_))), New, (0, import_lib3.$E)(_))), Parameters, __, TypeArrowFunction, (0, import_lib3.$E)(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16857
- var type = $5;
16858
- if (type) {
16859
- return $0;
17106
+ var TypeFunction$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)(Abstract, (0, import_lib3.$E)(_))), (0, import_lib3.$E)((0, import_lib3.$S)(New, (0, import_lib3.$E)(_))), Parameters, __, TypeArrowFunction, (0, import_lib3.$E)(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
17107
+ var type = $6;
17108
+ const ret = [...$0];
17109
+ if ($1 && !$2) {
17110
+ ret[1] = {
17111
+ type: "Error",
17112
+ message: "abstract function types must be constructors (abstract new)"
17113
+ };
16860
17114
  }
16861
- return [...$0, "void"];
17115
+ if (!type)
17116
+ ret.push("void");
17117
+ return ret;
16862
17118
  });
16863
17119
  function TypeFunction(ctx, state2) {
16864
17120
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeFunction", TypeFunction$0);
@@ -16869,8 +17125,9 @@ ${js}`
16869
17125
  function TypeArrowFunction(ctx, state2) {
16870
17126
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArrowFunction", TypeArrowFunction$0);
16871
17127
  }
16872
- var TypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket, (0, import_lib3.$P)(TypeArgument), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
17128
+ var TypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenAngleBracket, (0, import_lib3.$P)((0, import_lib3.$S)(__, TypeArgumentDelimited)), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
16873
17129
  var args = $2;
17130
+ args = args.map(([ws, arg]) => [ws, ...arg]);
16874
17131
  return {
16875
17132
  type: "TypeArguments",
16876
17133
  ts: true,
@@ -16881,7 +17138,91 @@ ${js}`
16881
17138
  function TypeArguments(ctx, state2) {
16882
17139
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArguments", TypeArguments$0);
16883
17140
  }
16884
- var TypeArgument$0 = (0, import_lib3.$S)(__, Type, TypeArgumentDelimiter);
17141
+ var ImplicitTypeArguments$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeApplicationStart, InsertOpenAngleBracket, (0, import_lib3.$E)(Trimmed_), TypeArgumentList, InsertCloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17142
+ var open = $2;
17143
+ var ws = $3;
17144
+ var args = $4;
17145
+ var close = $5;
17146
+ let last = args[args.length - 1];
17147
+ if (last?.token === ",")
17148
+ args = args.slice(0, -1);
17149
+ return [open, ws, args, close];
17150
+ });
17151
+ function ImplicitTypeArguments(ctx, state2) {
17152
+ return (0, import_lib3.$EVENT)(ctx, state2, "ImplicitTypeArguments", ImplicitTypeArguments$0);
17153
+ }
17154
+ var TypeApplicationStart$0 = (0, import_lib3.$S)(IndentedApplicationAllowed, (0, import_lib3.$Y)((0, import_lib3.$S)(IndentedFurther, (0, import_lib3.$N)(ForbiddenImplicitTypeCalls))));
17155
+ var TypeApplicationStart$1 = (0, import_lib3.$S)((0, import_lib3.$N)(EOS), (0, import_lib3.$Y)((0, import_lib3.$S)(_, (0, import_lib3.$N)(ForbiddenImplicitTypeCalls))));
17156
+ var TypeApplicationStart$$ = [TypeApplicationStart$0, TypeApplicationStart$1];
17157
+ function TypeApplicationStart(ctx, state2) {
17158
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
17159
+ }
17160
+ var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
17161
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
17162
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
17163
+ var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
17164
+ function ForbiddenImplicitTypeCalls(ctx, state2) {
17165
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
17166
+ }
17167
+ var TypeArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), TypeArgument, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$N)(EOS), (0, import_lib3.$E)(_), TypeArgument)), (0, import_lib3.$P)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedTypeBulletedTuple, NestedInterfaceBlock, NestedTypeArgumentList)))), function($skip, $loc, $0, $1, $2, $3, $4) {
17168
+ return [
17169
+ $2,
17170
+ ...$3.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
17171
+ ...$4.flatMap(
17172
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
17173
+ )
17174
+ ];
17175
+ });
17176
+ var TypeArgumentList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(NestedTypeBulletedTuple, NestedInterfaceBlock), (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedTypeBulletedTuple, NestedInterfaceBlock, NestedTypeArgumentList)))), function($skip, $loc, $0, $1, $2) {
17177
+ return [
17178
+ trimFirstSpace($1),
17179
+ ...$2.flatMap(
17180
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
17181
+ )
17182
+ ];
17183
+ });
17184
+ var TypeArgumentList$2 = NestedTypeArgumentList;
17185
+ var TypeArgumentList$3 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeArgument, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$E)(_), TypeArgument))), function($skip, $loc, $0, $1, $2) {
17186
+ return [
17187
+ $1,
17188
+ ...$2.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
17189
+ ];
17190
+ });
17191
+ var TypeArgumentList$$ = [TypeArgumentList$0, TypeArgumentList$1, TypeArgumentList$2, TypeArgumentList$3];
17192
+ function TypeArgumentList(ctx, state2) {
17193
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeArgumentList", TypeArgumentList$$);
17194
+ }
17195
+ var NestedTypeArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedTypeArgument), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
17196
+ var args = $2;
17197
+ if (!args.length)
17198
+ return $skip;
17199
+ return args.flat();
17200
+ });
17201
+ function NestedTypeArgumentList(ctx, state2) {
17202
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeArgumentList", NestedTypeArgumentList$0);
17203
+ }
17204
+ var NestedTypeArgument$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, SingleLineTypeArgumentList, TypeArgumentDelimiter), function($skip, $loc, $0, $1, $2, $3) {
17205
+ var indent = $1;
17206
+ var args = $2;
17207
+ var comma = $3;
17208
+ let [arg0, ...rest] = args;
17209
+ arg0 = prepend(indent, arg0);
17210
+ return [arg0, ...rest, comma];
17211
+ });
17212
+ function NestedTypeArgument(ctx, state2) {
17213
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedTypeArgument", NestedTypeArgument$0);
17214
+ }
17215
+ var SingleLineTypeArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), TypeArgument), (0, import_lib3.$Q)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), Comma), (0, import_lib3.$S)((0, import_lib3.$E)(_), TypeArgument)))), function($skip, $loc, $0, $1, $2) {
17216
+ return [$1, ...$2.flat()];
17217
+ });
17218
+ function SingleLineTypeArgumentList(ctx, state2) {
17219
+ return (0, import_lib3.$EVENT)(ctx, state2, "SingleLineTypeArgumentList", SingleLineTypeArgumentList$0);
17220
+ }
17221
+ var TypeArgumentDelimited$0 = (0, import_lib3.$S)(TypeArgument, TypeArgumentDelimiter);
17222
+ function TypeArgumentDelimited(ctx, state2) {
17223
+ return (0, import_lib3.$EVENT)(ctx, state2, "TypeArgumentDelimited", TypeArgumentDelimited$0);
17224
+ }
17225
+ var TypeArgument$0 = Type;
16885
17226
  function TypeArgument(ctx, state2) {
16886
17227
  return (0, import_lib3.$EVENT)(ctx, state2, "TypeArgument", TypeArgument$0);
16887
17228
  }
@@ -16928,15 +17269,15 @@ ${js}`
16928
17269
  function ThisType(ctx, state2) {
16929
17270
  return (0, import_lib3.$EVENT)(ctx, state2, "ThisType", ThisType$0);
16930
17271
  }
16931
- var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R90, "Shebang /#![^\\r\\n]*/")), EOL);
17272
+ var Shebang$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
16932
17273
  function Shebang(ctx, state2) {
16933
17274
  return (0, import_lib3.$EVENT)(ctx, state2, "Shebang", Shebang$0);
16934
17275
  }
16935
- var CivetPrologue$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R91, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17276
+ var CivetPrologue$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
16936
17277
  var content = value[2];
16937
17278
  return content;
16938
17279
  });
16939
- var CivetPrologue$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R91, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
17280
+ var CivetPrologue$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib3.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib3.$C)(EOL, (0, import_lib3.$Y)(RestOfLine))), function(value) {
16940
17281
  var content = value[2];
16941
17282
  return content;
16942
17283
  });
@@ -16944,7 +17285,7 @@ ${js}`
16944
17285
  function CivetPrologue(ctx, state2) {
16945
17286
  return (0, import_lib3.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
16946
17287
  }
16947
- var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R92, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
17288
+ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R94, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16948
17289
  var options = $3;
16949
17290
  return {
16950
17291
  type: "CivetPrologue",
@@ -16955,7 +17296,7 @@ ${js}`
16955
17296
  function CivetPrologueContent(ctx, state2) {
16956
17297
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
16957
17298
  }
16958
- var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R93, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17299
+ var CivetOption$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R95, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16959
17300
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
16960
17301
  if (l)
16961
17302
  return l.toUpperCase();
@@ -16972,11 +17313,11 @@ ${js}`
16972
17313
  function CivetOption(ctx, state2) {
16973
17314
  return (0, import_lib3.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
16974
17315
  }
16975
- var UnknownPrologue$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R91, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib3.$TEXT)(SimpleStatementDelimiter), EOS);
17316
+ var UnknownPrologue$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R93, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib3.$TEXT)(SimpleStatementDelimiter), EOS);
16976
17317
  function UnknownPrologue(ctx, state2) {
16977
17318
  return (0, import_lib3.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
16978
17319
  }
16979
- var TripleSlashDirective$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R94, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib3.$E)(EOS));
17320
+ var TripleSlashDirective$0 = (0, import_lib3.$S)((0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R96, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib3.$E)(EOS));
16980
17321
  function TripleSlashDirective(ctx, state2) {
16981
17322
  return (0, import_lib3.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
16982
17323
  }
@@ -16992,13 +17333,13 @@ ${js}`
16992
17333
  function PrologueString(ctx, state2) {
16993
17334
  return (0, import_lib3.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
16994
17335
  }
16995
- var EOS$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R95, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib3.$P)(RestOfLine)), function(value) {
17336
+ var EOS$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R97, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib3.$P)(RestOfLine)), function(value) {
16996
17337
  return value[1];
16997
17338
  });
16998
17339
  function EOS(ctx, state2) {
16999
17340
  return (0, import_lib3.$EVENT)(ctx, state2, "EOS", EOS$0);
17000
17341
  }
17001
- var EOL$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R96, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17342
+ var EOL$0 = (0, import_lib3.$TR)((0, import_lib3.$EXPECT)($R98, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17002
17343
  return { $loc, token: $0 };
17003
17344
  });
17004
17345
  function EOL(ctx, state2) {
@@ -17064,6 +17405,18 @@ ${js}`
17064
17405
  function InsertCloseBracket(ctx, state2) {
17065
17406
  return (0, import_lib3.$EVENT)(ctx, state2, "InsertCloseBracket", InsertCloseBracket$0);
17066
17407
  }
17408
+ var InsertOpenAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertOpenAngleBracket ""'), function($skip, $loc, $0, $1) {
17409
+ return { $loc, token: "<" };
17410
+ });
17411
+ function InsertOpenAngleBracket(ctx, state2) {
17412
+ return (0, import_lib3.$EVENT)(ctx, state2, "InsertOpenAngleBracket", InsertOpenAngleBracket$0);
17413
+ }
17414
+ var InsertCloseAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertCloseAngleBracket ""'), function($skip, $loc, $0, $1) {
17415
+ return { $loc, token: ">" };
17416
+ });
17417
+ function InsertCloseAngleBracket(ctx, state2) {
17418
+ return (0, import_lib3.$EVENT)(ctx, state2, "InsertCloseAngleBracket", InsertCloseAngleBracket$0);
17419
+ }
17067
17420
  var InsertComma$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'InsertComma ""'), function($skip, $loc, $0, $1) {
17068
17421
  return { $loc, token: ",", implicit: true };
17069
17422
  });
@@ -17396,7 +17749,7 @@ ${js}`
17396
17749
  function Prologue(ctx, state2) {
17397
17750
  return (0, import_lib3.$EVENT)(ctx, state2, "Prologue", Prologue$0);
17398
17751
  }
17399
- var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R97, "ProloguePrefix /[^]*/")));
17752
+ var ProloguePrefix$0 = (0, import_lib3.$S)(Prologue, (0, import_lib3.$R$0)((0, import_lib3.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
17400
17753
  function ProloguePrefix(ctx, state2) {
17401
17754
  return (0, import_lib3.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
17402
17755
  }
@@ -17486,6 +17839,20 @@ ${js}`
17486
17839
  function Dedented(ctx, state2) {
17487
17840
  return (0, import_lib3.$EVENT)(ctx, state2, "Dedented", Dedented$0);
17488
17841
  }
17842
+ var PushExtraIndent1$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'PushExtraIndent1 ""'), function($skip, $loc, $0, $1) {
17843
+ const indent = {
17844
+ token: "",
17845
+ $loc,
17846
+ level: state.currentIndent.level + 1
17847
+ };
17848
+ if (config.verbose)
17849
+ console.log("pushing bonus indent", indent);
17850
+ state.indentLevels.push(indent);
17851
+ return indent;
17852
+ });
17853
+ function PushExtraIndent1(ctx, state2) {
17854
+ return (0, import_lib3.$EVENT)(ctx, state2, "PushExtraIndent1", PushExtraIndent1$0);
17855
+ }
17489
17856
  var parser = function() {
17490
17857
  const { fail, validate, reset } = (0, import_lib3.Validator)();
17491
17858
  let ctx = { expectation: "", fail };
@@ -17945,6 +18312,7 @@ ${js}`
17945
18312
  "PopIndent",
17946
18313
  "TrackIndented",
17947
18314
  "BulletIndent",
18315
+ "PushExtraIndent1",
17948
18316
  // JSX
17949
18317
  "PushJSXOpeningElement",
17950
18318
  "PushJSXOpeningFragment",