@makano/rew 1.3.1 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
package/lib/civet/main.js CHANGED
@@ -58,7 +58,7 @@ var require_machine = __commonJS({
58
58
  $EVENT: () => $EVENT2,
59
59
  $EVENT_C: () => $EVENT_C2,
60
60
  $EXPECT: () => $EXPECT2,
61
- $L: () => $L229,
61
+ $L: () => $L231,
62
62
  $N: () => $N2,
63
63
  $P: () => $P2,
64
64
  $Q: () => $Q2,
@@ -83,7 +83,7 @@ var require_machine = __commonJS({
83
83
  return result;
84
84
  };
85
85
  }
86
- function $L229(str) {
86
+ function $L231(str) {
87
87
  return function(_ctx, state2) {
88
88
  const { input, pos } = state2, { length } = str, end = pos + length;
89
89
  if (input.substring(pos, end) === str) {
@@ -438,11 +438,11 @@ ${input.slice(result.pos)}
438
438
  hint = JSON.stringify(hint);
439
439
  else
440
440
  hint = "EOF";
441
- // const error = new ParseError2("Failed to parse", `Expected:
442
- // ${expectations.join("\n ")}
443
- // Found: ${hint}
444
- // `, filename2, line, column, maxFailPos);
445
- throw new SyntaxError(`Unexpected Token at ${filename2}:${line}:${column}.\nFound: ${hint}\nExpected: ${expectations.join("\n ")}`);
441
+ const error = new ParseError2("Failed to parse", `Expected:
442
+ ${expectations.join("\n ")}
443
+ Found: ${hint}
444
+ `, filename2, line, column, maxFailPos);
445
+ throw error;
446
446
  }
447
447
  if (result) {
448
448
  throw new Error(`
@@ -515,6 +515,7 @@ __export(lib_exports, {
515
515
  blockWithPrefix: () => blockWithPrefix,
516
516
  convertNamedImportsToObject: () => convertNamedImportsToObject,
517
517
  convertObjectToJSXAttributes: () => convertObjectToJSXAttributes,
518
+ convertWithClause: () => convertWithClause,
518
519
  dedentBlockString: () => dedentBlockString,
519
520
  dedentBlockSubstitutions: () => dedentBlockSubstitutions,
520
521
  deepCopy: () => deepCopy,
@@ -566,6 +567,7 @@ __export(lib_exports, {
566
567
  replaceNode: () => replaceNode,
567
568
  replaceNodes: () => replaceNodes,
568
569
  skipImplicitArguments: () => skipImplicitArguments,
570
+ trimFirstSpace: () => trimFirstSpace,
569
571
  typeOfJSX: () => typeOfJSX,
570
572
  wrapIIFE: () => wrapIIFE
571
573
  });
@@ -1708,8 +1710,11 @@ function isEmptyBareBlock(node) {
1708
1710
  return bare && (Array.isArray(expressions) && len(expressions, 0) || Array.isArray(expressions) && len(expressions, 1) && Array.isArray(expressions[0]) && expressions[0].length >= 2 && typeof expressions[0][1] === "object" && expressions[0][1] != null && "type" in expressions[0][1] && expressions[0][1].type === "EmptyStatement");
1709
1711
  }
1710
1712
  function isFunction(node) {
1711
- const { type } = node;
1712
- return type === "FunctionExpression" || type === "ArrowFunction" || type === "MethodDefinition" || !!node.async;
1713
+ if (node && typeof node === "object" && "type" in node) {
1714
+ const { type } = node;
1715
+ return type === "FunctionExpression" || type === "ArrowFunction" || type === "MethodDefinition";
1716
+ }
1717
+ return false;
1713
1718
  }
1714
1719
  var statementTypes = /* @__PURE__ */ new Set([
1715
1720
  "BlockStatement",
@@ -1808,10 +1813,15 @@ function insertTrimmingSpace(target, c) {
1808
1813
  ...target,
1809
1814
  token: target.token.replace(/^ ?/, c)
1810
1815
  };
1816
+ } else if (typeof target === "string") {
1817
+ return target.replace(/^ ?/, c);
1811
1818
  } else {
1812
1819
  return target;
1813
1820
  }
1814
1821
  }
1822
+ function trimFirstSpace(target) {
1823
+ return insertTrimmingSpace(target, "");
1824
+ }
1815
1825
  function inplaceInsertTrimmingSpace(target, c) {
1816
1826
  if (!(target != null)) {
1817
1827
  return target;
@@ -2232,7 +2242,11 @@ function gatherNodes(node, predicate) {
2232
2242
  });
2233
2243
  }
2234
2244
  default: {
2235
- return gatherNodes(node.children, predicate);
2245
+ return gatherNodes(
2246
+ //@ts-ignore
2247
+ node.children,
2248
+ predicate
2249
+ );
2236
2250
  }
2237
2251
  }
2238
2252
  }
@@ -2243,12 +2257,18 @@ function gatherRecursive(node, predicate, skipPredicate) {
2243
2257
  if (Array.isArray(node)) {
2244
2258
  return node.flatMap(($) => gatherRecursive($, predicate, skipPredicate));
2245
2259
  }
2246
- if (skipPredicate?.(node))
2260
+ if (skipPredicate?.(node)) {
2247
2261
  return [];
2262
+ }
2248
2263
  if (predicate(node)) {
2249
2264
  return [node];
2250
2265
  }
2251
- return gatherRecursive(node.children, predicate, skipPredicate);
2266
+ return gatherRecursive(
2267
+ //@ts-ignore
2268
+ node.children,
2269
+ predicate,
2270
+ skipPredicate
2271
+ );
2252
2272
  }
2253
2273
  function gatherRecursiveAll(node, predicate) {
2254
2274
  if (node == null || typeof node === "string") {
@@ -2257,7 +2277,11 @@ function gatherRecursiveAll(node, predicate) {
2257
2277
  if (Array.isArray(node)) {
2258
2278
  return node.flatMap((n) => gatherRecursiveAll(n, predicate));
2259
2279
  }
2260
- const nodes = gatherRecursiveAll(node.children, predicate);
2280
+ const nodes = gatherRecursiveAll(
2281
+ //@ts-ignore
2282
+ node.children,
2283
+ predicate
2284
+ );
2261
2285
  if (predicate(node)) {
2262
2286
  nodes.push(node);
2263
2287
  }
@@ -2670,15 +2694,6 @@ var declareHelper = {
2670
2694
  ";\n"
2671
2695
  ]]);
2672
2696
  },
2673
- returnSymbol(ref) {
2674
- state.prelude.push(["", [
2675
- // [indent, statement]
2676
- preludeVar,
2677
- ref,
2678
- ` = Symbol("return")';
2679
- `
2680
- ]]);
2681
- },
2682
2697
  concatAssign(ref) {
2683
2698
  state.prelude.push(["", [
2684
2699
  // [indent, statement]
@@ -3625,6 +3640,39 @@ function dynamizeImportDeclarationExpression($0) {
3625
3640
  ]
3626
3641
  });
3627
3642
  }
3643
+ function convertWithClause(withClause, extendsClause) {
3644
+ let extendsToken, extendsTarget, ws;
3645
+ if (extendsClause) {
3646
+ [extendsToken, ws, extendsTarget] = extendsClause;
3647
+ } else {
3648
+ extendsToken = {
3649
+ type: "Extends",
3650
+ children: [" extends"]
3651
+ };
3652
+ ws = "";
3653
+ extendsTarget = "Object";
3654
+ }
3655
+ const wrapped = withClause.targets.reduce(
3656
+ (extendsTarget2, [wsNext, withTarget]) => {
3657
+ const args = [extendsTarget2];
3658
+ const exp = {
3659
+ type: "CallExpression",
3660
+ children: [
3661
+ makeLeftHandSideExpression(withTarget),
3662
+ {
3663
+ type: "Call",
3664
+ args,
3665
+ children: ["(", trimFirstSpace(ws), args, ")"]
3666
+ }
3667
+ ]
3668
+ };
3669
+ ws = wsNext;
3670
+ return exp;
3671
+ },
3672
+ extendsTarget
3673
+ );
3674
+ return [extendsToken, insertTrimmingSpace(ws, " "), wrapped];
3675
+ }
3628
3676
 
3629
3677
  // source/parser/unary.civet
3630
3678
  function processUnaryExpression(pre, exp, post) {
@@ -4712,7 +4760,7 @@ function getIndentOfBlockString(str, tab) {
4712
4760
  minLevel = level;
4713
4761
  }
4714
4762
  }
4715
- if (minLevel == Infinity) {
4763
+ if (minLevel === Infinity) {
4716
4764
  minLevel = 0;
4717
4765
  }
4718
4766
  return minLevel;
@@ -4758,7 +4806,7 @@ function dedentBlockSubstitutions($0, tab) {
4758
4806
  if (/^[ \t]*\r?\n/.test(stringPart)) {
4759
4807
  ref1 = getIndentOfBlockString(stringPart, tab);
4760
4808
  } else {
4761
- ref1 = false;
4809
+ ref1 = void 0;
4762
4810
  }
4763
4811
  ;
4764
4812
  const dedent = ref1;
@@ -4784,21 +4832,39 @@ function dedentBlockSubstitutions($0, tab) {
4784
4832
  };
4785
4833
  }
4786
4834
  function processCoffeeInterpolation(s, parts, e, $loc) {
4787
- if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
4835
+ if (parts.length === 0) {
4788
4836
  return {
4789
4837
  type: "StringLiteral",
4790
- token: parts.length ? `"${modifyString(parts[0].token)}"` : '""',
4838
+ token: '""',
4791
4839
  $loc
4792
4840
  };
4793
4841
  }
4794
- parts.forEach((part) => {
4795
- if (part.token) {
4796
- const str = part.token.replace(/(`|\$\{)/g, "\\$1");
4797
- return part.token = modifyString(str);
4842
+ if (parts.length === 1) {
4843
+ let ref2;
4844
+ if ((ref2 = parts[0]) && typeof ref2 === "object" && "token" in ref2) {
4845
+ const { token } = ref2;
4846
+ return {
4847
+ type: "StringLiteral",
4848
+ token: `"${modifyString(token)}"`,
4849
+ $loc
4850
+ };
4798
4851
  }
4799
- ;
4800
- return;
4801
- });
4852
+ }
4853
+ const results2 = [];
4854
+ for (let i4 = 0, len3 = parts.length; i4 < len3; i4++) {
4855
+ const part = parts[i4];
4856
+ if ("token" in part) {
4857
+ const token = modifyString(part.token.replace(/(`|\$\{)/g, "\\$1"));
4858
+ results2.push({
4859
+ ...part,
4860
+ token
4861
+ });
4862
+ } else {
4863
+ results2.push(part);
4864
+ }
4865
+ }
4866
+ ;
4867
+ parts = results2;
4802
4868
  s.token = e.token = "`";
4803
4869
  return {
4804
4870
  type: "TemplateLiteral",
@@ -5565,6 +5631,7 @@ function processAssignments(statements) {
5565
5631
  }
5566
5632
  }
5567
5633
  }
5634
+ const refsToDeclare = /* @__PURE__ */ new Set();
5568
5635
  i = len3 - 1;
5569
5636
  while (i >= 0) {
5570
5637
  const lastAssignment = $1[i];
@@ -5598,6 +5665,7 @@ function processAssignments(statements) {
5598
5665
  }
5599
5666
  } else if (m2 = lhs.type, m2 === "ObjectBindingPattern" || m2 === "ArrayBindingPattern") {
5600
5667
  processBindingPatternLHS(lhs, tail);
5668
+ gatherRecursiveAll(lhs, ($5) => $5.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare));
5601
5669
  }
5602
5670
  }
5603
5671
  i--;
@@ -5628,6 +5696,17 @@ function processAssignments(statements) {
5628
5696
  }
5629
5697
  i--;
5630
5698
  }
5699
+ if (refsToDeclare.size) {
5700
+ if (exp.hoistDec) {
5701
+ exp.hoistDec.children.push([...refsToDeclare].map(($6) => [",", $6]));
5702
+ } else {
5703
+ exp.hoistDec = {
5704
+ type: "Declaration",
5705
+ children: ["let ", [...refsToDeclare].map((r, i2) => i2 ? [",", r] : r)],
5706
+ names: []
5707
+ };
5708
+ }
5709
+ }
5631
5710
  exp.names = $1.flatMap(([, l]) => l.names || []);
5632
5711
  if (tail.length) {
5633
5712
  const index = exp.children.indexOf($2);
@@ -5764,7 +5843,7 @@ function processTypes(node) {
5764
5843
  });
5765
5844
  }
5766
5845
  function processStatementExpressions(statements) {
5767
- gatherRecursiveAll(statements, ($5) => $5.type === "StatementExpression").forEach((_exp) => {
5846
+ gatherRecursiveAll(statements, ($7) => $7.type === "StatementExpression").forEach((_exp) => {
5768
5847
  const exp = _exp;
5769
5848
  const { statement } = exp;
5770
5849
  let ref11;
@@ -5894,11 +5973,11 @@ function populateRefs(statements) {
5894
5973
  function processPlaceholders(statements) {
5895
5974
  const placeholderMap = /* @__PURE__ */ new Map();
5896
5975
  const liftedIfs = /* @__PURE__ */ new Set();
5897
- gatherRecursiveAll(statements, ($6) => $6.type === "Placeholder").forEach((_exp) => {
5976
+ gatherRecursiveAll(statements, ($8) => $8.type === "Placeholder").forEach((_exp) => {
5898
5977
  const exp = _exp;
5899
5978
  let ancestor;
5900
5979
  if (exp.subtype === ".") {
5901
- ({ ancestor } = findAncestor(exp, ($7) => $7.type === "Call"));
5980
+ ({ ancestor } = findAncestor(exp, ($9) => $9.type === "Call"));
5902
5981
  ancestor = ancestor?.parent;
5903
5982
  while (ancestor?.parent?.type === "UnaryExpression" || ancestor?.parent?.type === "NewExpression") {
5904
5983
  ancestor = ancestor.parent;
@@ -6293,6 +6372,7 @@ var grammar = {
6293
6372
  ClassBinding,
6294
6373
  ClassHeritage,
6295
6374
  ExtendsClause,
6375
+ WithClause,
6296
6376
  ExtendsToken,
6297
6377
  ExtendsShorthand,
6298
6378
  NotExtendsToken,
@@ -6570,7 +6650,10 @@ var grammar = {
6570
6650
  Break,
6571
6651
  Continue,
6572
6652
  Debugger,
6573
- MaybeNestedExpression,
6653
+ MaybeNestedNonPipelineExtendedExpression,
6654
+ MaybeNestedPostfixedExpression,
6655
+ MaybeNestedExtendedExpression,
6656
+ MaybeParenNestedExtendedExpression,
6574
6657
  ImportDeclaration,
6575
6658
  ImpliedImport,
6576
6659
  ImportClause,
@@ -6759,6 +6842,7 @@ var grammar = {
6759
6842
  Void,
6760
6843
  When,
6761
6844
  While,
6845
+ With,
6762
6846
  Yield,
6763
6847
  JSXImplicitFragment,
6764
6848
  JSXTag,
@@ -6826,6 +6910,7 @@ var grammar = {
6826
6910
  Module,
6827
6911
  Namespace,
6828
6912
  InterfaceBlock,
6913
+ NestedInterfaceBlock,
6829
6914
  NestedInterfaceProperties,
6830
6915
  NestedInterfaceProperty,
6831
6916
  InterfaceProperty,
@@ -6847,7 +6932,7 @@ var grammar = {
6847
6932
  TypeIndexSignature,
6848
6933
  TypeIndex,
6849
6934
  TypeSuffix,
6850
- MaybeIndentedType,
6935
+ MaybeNestedType,
6851
6936
  ReturnTypeSuffix,
6852
6937
  ReturnType,
6853
6938
  TypePredicate,
@@ -6967,15 +7052,15 @@ var $L13 = (0, import_lib3.$L)("=>");
6967
7052
  var $L14 = (0, import_lib3.$L)("\u21D2");
6968
7053
  var $L15 = (0, import_lib3.$L)("import");
6969
7054
  var $L16 = (0, import_lib3.$L)(":");
6970
- var $L17 = (0, import_lib3.$L)(" ");
6971
- var $L18 = (0, import_lib3.$L)("<");
6972
- var $L19 = (0, import_lib3.$L)("implements");
6973
- var $L20 = (0, import_lib3.$L)("<:");
6974
- var $L21 = (0, import_lib3.$L)("^");
6975
- var $L22 = (0, import_lib3.$L)("-");
6976
- var $L23 = (0, import_lib3.$L)("import.meta");
6977
- var $L24 = (0, import_lib3.$L)("return.value");
6978
- var $L25 = (0, import_lib3.$L)(",");
7055
+ var $L17 = (0, import_lib3.$L)(",");
7056
+ var $L18 = (0, import_lib3.$L)(" ");
7057
+ var $L19 = (0, import_lib3.$L)("<");
7058
+ var $L20 = (0, import_lib3.$L)("implements");
7059
+ var $L21 = (0, import_lib3.$L)("<:");
7060
+ var $L22 = (0, import_lib3.$L)("^");
7061
+ var $L23 = (0, import_lib3.$L)("-");
7062
+ var $L24 = (0, import_lib3.$L)("import.meta");
7063
+ var $L25 = (0, import_lib3.$L)("return.value");
6979
7064
  var $L26 = (0, import_lib3.$L)("tighter");
6980
7065
  var $L27 = (0, import_lib3.$L)("looser");
6981
7066
  var $L28 = (0, import_lib3.$L)("same");
@@ -7014,8 +7099,8 @@ var $L60 = (0, import_lib3.$L)("??=");
7014
7099
  var $L61 = (0, import_lib3.$L)("?=");
7015
7100
  var $L62 = (0, import_lib3.$L)("and=");
7016
7101
  var $L63 = (0, import_lib3.$L)("or=");
7017
- var $L64 = (0, import_lib3.$L)("**");
7018
- var $L65 = (0, import_lib3.$L)("*");
7102
+ var $L64 = (0, import_lib3.$L)("*");
7103
+ var $L65 = (0, import_lib3.$L)("**");
7019
7104
  var $L66 = (0, import_lib3.$L)("/");
7020
7105
  var $L67 = (0, import_lib3.$L)("%%");
7021
7106
  var $L68 = (0, import_lib3.$L)("%");
@@ -7177,8 +7262,10 @@ var $L223 = (0, import_lib3.$L)("namespace");
7177
7262
  var $L224 = (0, import_lib3.$L)("asserts");
7178
7263
  var $L225 = (0, import_lib3.$L)("keyof");
7179
7264
  var $L226 = (0, import_lib3.$L)("???");
7180
- var $L227 = (0, import_lib3.$L)("[]");
7181
- var $L228 = (0, import_lib3.$L)("civet");
7265
+ var $L227 = (0, import_lib3.$L)("unique");
7266
+ var $L228 = (0, import_lib3.$L)("symbol");
7267
+ var $L229 = (0, import_lib3.$L)("[]");
7268
+ var $L230 = (0, import_lib3.$L)("civet");
7182
7269
  var $R0 = (0, import_lib3.$R)(new RegExp("(?=async|debugger|if|unless|comptime|do|for|loop|until|while|switch|throw|try)", "suy"));
7183
7270
  var $R1 = (0, import_lib3.$R)(new RegExp("&(?=\\s)", "suy"));
7184
7271
  var $R2 = (0, import_lib3.$R)(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
@@ -7199,7 +7286,7 @@ var $R16 = (0, import_lib3.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
7199
7286
  var $R17 = (0, import_lib3.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
7200
7287
  var $R18 = (0, import_lib3.$R)(new RegExp("(?=\\[)", "suy"));
7201
7288
  var $R19 = (0, import_lib3.$R)(new RegExp("[!+-]?", "suy"));
7202
- var $R20 = (0, import_lib3.$R)(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
7289
+ var $R20 = (0, import_lib3.$R)(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
7203
7290
  var $R21 = (0, import_lib3.$R)(new RegExp("!\\^\\^?", "suy"));
7204
7291
  var $R22 = (0, import_lib3.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
7205
7292
  var $R23 = (0, import_lib3.$R)(new RegExp("[:.]", "suy"));
@@ -7592,23 +7679,28 @@ var ArgumentList$$ = [ArgumentList$0, ArgumentList$1, ArgumentList$2, ArgumentLi
7592
7679
  function ArgumentList(ctx, state2) {
7593
7680
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ArgumentList", ArgumentList$$);
7594
7681
  }
7595
- var NonPipelineArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(NonPipelineArgumentPart, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$N)(EOS), (0, import_lib3.$E)(_), NonPipelineArgumentPart)), (0, import_lib3.$P)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2, $3) {
7682
+ var NonPipelineArgumentList$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), NonPipelineArgumentPart, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$N)(EOS), (0, import_lib3.$E)(_), NonPipelineArgumentPart)), (0, import_lib3.$P)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2, $3, $4) {
7596
7683
  return [
7597
- $1,
7598
- ...$2.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
7599
- ...$3.flatMap(
7684
+ $2,
7685
+ ...$3.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
7686
+ ...$4.flatMap(
7600
7687
  ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
7601
7688
  )
7602
7689
  ];
7603
7690
  });
7604
- var NonPipelineArgumentList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(NestedImplicitObjectLiteral), function($skip, $loc, $0, $1) {
7605
- return [insertTrimmingSpace($1, "")];
7691
+ var NonPipelineArgumentList$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(NestedImplicitObjectLiteral, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$C)(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2) {
7692
+ return [
7693
+ insertTrimmingSpace($1, ""),
7694
+ ...$2.flatMap(
7695
+ ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
7696
+ )
7697
+ ];
7606
7698
  });
7607
7699
  var NonPipelineArgumentList$2 = NestedArgumentList;
7608
- var NonPipelineArgumentList$3 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), NonPipelineArgumentPart, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$E)(_), NonPipelineArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
7700
+ var NonPipelineArgumentList$3 = (0, import_lib3.$TS)((0, import_lib3.$S)(NonPipelineArgumentPart, (0, import_lib3.$Q)((0, import_lib3.$S)(CommaDelimiter, (0, import_lib3.$E)(_), NonPipelineArgumentPart))), function($skip, $loc, $0, $1, $2) {
7609
7701
  return [
7610
- prepend($1, $2),
7611
- ...$3.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
7702
+ $1,
7703
+ ...$2.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
7612
7704
  ];
7613
7705
  });
7614
7706
  var NonPipelineArgumentList$$ = [NonPipelineArgumentList$0, NonPipelineArgumentList$1, NonPipelineArgumentList$2, NonPipelineArgumentList$3];
@@ -7671,7 +7763,7 @@ var BinaryOpExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(UnaryExpress
7671
7763
  function BinaryOpExpression(ctx, state2) {
7672
7764
  return (0, import_lib3.$EVENT)(ctx, state2, "BinaryOpExpression", BinaryOpExpression$0);
7673
7765
  }
7674
- var BinaryOpRHS$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)((0, import_lib3.$E)(_), IndentedFurther, Nested), IsLike, (0, import_lib3.$E)(_), PatternExpressionList), function($skip, $loc, $0, $1, $2, $3, $4) {
7766
+ var BinaryOpRHS$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(NotDedented, IsLike, (0, import_lib3.$E)(_), PatternExpressionList), function($skip, $loc, $0, $1, $2, $3, $4) {
7675
7767
  var ws1 = $1;
7676
7768
  var op = $2;
7677
7769
  var ws2 = $3;
@@ -7695,7 +7787,7 @@ var BinaryOpRHS$$ = [BinaryOpRHS$0, BinaryOpRHS$1, BinaryOpRHS$2, BinaryOpRHS$3]
7695
7787
  function BinaryOpRHS(ctx, state2) {
7696
7788
  return (0, import_lib3.$EVENT_C)(ctx, state2, "BinaryOpRHS", BinaryOpRHS$$);
7697
7789
  }
7698
- var IsLike$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Is, (0, import_lib3.$E)(_), (0, import_lib3.$E)((0, import_lib3.$S)(Not, (0, import_lib3.$E)(_))), Like), function($skip, $loc, $0, $1, $2, $3, $4) {
7790
+ var IsLike$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Is, (0, import_lib3.$E)(_), (0, import_lib3.$E)((0, import_lib3.$S)(OmittedNegation, (0, import_lib3.$E)(_))), Like), function($skip, $loc, $0, $1, $2, $3, $4) {
7699
7791
  var not = $3;
7700
7792
  return {
7701
7793
  type: "PatternTest",
@@ -7707,18 +7799,18 @@ var IsLike$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Is, (0, import_lib3.$E)(
7707
7799
  function IsLike(ctx, state2) {
7708
7800
  return (0, import_lib3.$EVENT)(ctx, state2, "IsLike", IsLike$0);
7709
7801
  }
7710
- var WRHS$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, RHS)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
7802
+ var WRHS$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$S)(Nested, (0, import_lib3.$E)(_)), RHS)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
7711
7803
  var wrhs = $2;
7712
7804
  if (!wrhs)
7713
7805
  return $skip;
7714
7806
  return wrhs;
7715
7807
  });
7716
- var WRHS$1 = (0, import_lib3.$S)((0, import_lib3.$C)(_, (0, import_lib3.$S)(EOS, __)), RHS);
7808
+ var WRHS$1 = (0, import_lib3.$S)((0, import_lib3.$C)((0, import_lib3.$S)(EOS, __), _), RHS);
7717
7809
  var WRHS$$ = [WRHS$0, WRHS$1];
7718
7810
  function WRHS(ctx, state2) {
7719
7811
  return (0, import_lib3.$EVENT_C)(ctx, state2, "WRHS", WRHS$$);
7720
7812
  }
7721
- var SingleLineBinaryOpRHS$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), BinaryOp, (0, import_lib3.$C)(_, (0, import_lib3.$S)(EOS, __)), RHS), function($skip, $loc, $0, $1, $2, $3, $4) {
7813
+ var SingleLineBinaryOpRHS$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), BinaryOp, (0, import_lib3.$C)((0, import_lib3.$S)(EOS, __), _), RHS), function($skip, $loc, $0, $1, $2, $3, $4) {
7722
7814
  var ws1 = $1;
7723
7815
  var op = $2;
7724
7816
  var ws2 = $3;
@@ -7908,7 +8000,7 @@ var NonPipelineAssignmentExpressionTail$$ = [NonPipelineAssignmentExpressionTail
7908
8000
  function NonPipelineAssignmentExpressionTail(ctx, state2) {
7909
8001
  return (0, import_lib3.$EVENT_C)(ctx, state2, "NonPipelineAssignmentExpressionTail", NonPipelineAssignmentExpressionTail$$);
7910
8002
  }
7911
- var ActualAssignment$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$P)((0, import_lib3.$S)(NotDedented, UpdateExpression, WAssignmentOp)), ExtendedExpression), function($skip, $loc, $0, $1, $2) {
8003
+ var ActualAssignment$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$P)((0, import_lib3.$S)(NotDedented, UpdateExpression, WAssignmentOp)), MaybeNestedExtendedExpression), function($skip, $loc, $0, $1, $2) {
7912
8004
  $1 = $1.map((x) => [x[0], x[1], ...x[2]]);
7913
8005
  $0 = [$1, $2];
7914
8006
  return {
@@ -7925,7 +8017,7 @@ var ActualAssignment$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib
7925
8017
  function ActualAssignment(ctx, state2) {
7926
8018
  return (0, import_lib3.$EVENT)(ctx, state2, "ActualAssignment", ActualAssignment$0);
7927
8019
  }
7928
- var NonPipelineActualAssignment$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$P)((0, import_lib3.$S)(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression), function($skip, $loc, $0, $1, $2) {
8020
+ var NonPipelineActualAssignment$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$P)((0, import_lib3.$S)(NotDedented, UpdateExpression, WAssignmentOp)), MaybeNestedNonPipelineExtendedExpression), function($skip, $loc, $0, $1, $2) {
7929
8021
  $1 = $1.map((x) => [x[0], x[1], ...x[2]]);
7930
8022
  $0 = [$1, $2];
7931
8023
  return {
@@ -7942,7 +8034,7 @@ var NonPipelineActualAssignment$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0,
7942
8034
  function NonPipelineActualAssignment(ctx, state2) {
7943
8035
  return (0, import_lib3.$EVENT)(ctx, state2, "NonPipelineActualAssignment", NonPipelineActualAssignment$0);
7944
8036
  }
7945
- var YieldExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Yield, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)(_), Star)), MaybeNestedExpression))), function($skip, $loc, $0, $1, $2) {
8037
+ var YieldExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Yield, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$E)(_), Star)), MaybeParenNestedExtendedExpression))), function($skip, $loc, $0, $1, $2) {
7946
8038
  if ($2) {
7947
8039
  const [star, expression] = $2;
7948
8040
  return {
@@ -8041,20 +8133,22 @@ function ConditionalExpression(ctx, state2) {
8041
8133
  return (0, import_lib3.$EVENT)(ctx, state2, "ConditionalExpression", ConditionalExpression$0);
8042
8134
  }
8043
8135
  var TernaryRest$0 = NestedTernaryRest;
8044
- var TernaryRest$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(CoffeeBinaryExistentialEnabled), (0, import_lib3.$Y)((0, import_lib3.$EXPECT)($R5, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8136
+ var TernaryRest$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(CoffeeBinaryExistentialEnabled), (0, import_lib3.$Y)((0, import_lib3.$EXPECT)($R5, "TernaryRest /[ \\t]/")), _, QuestionMark, MaybeNestedExtendedExpression, __, Colon, MaybeNestedExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8045
8137
  return $0.slice(2);
8046
8138
  });
8047
8139
  var TernaryRest$$ = [TernaryRest$0, TernaryRest$1];
8048
8140
  function TernaryRest(ctx, state2) {
8049
8141
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TernaryRest", TernaryRest$$);
8050
8142
  }
8051
- var NestedTernaryRest$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, QuestionMark, ExtendedExpression, Nested, Colon, ExtendedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
8143
+ var NestedTernaryRest$0 = (0, import_lib3.$S)(Nested, QuestionMark, MaybeNestedExtendedExpression, Nested, Colon, MaybeNestedExtendedExpression);
8144
+ var NestedTernaryRest$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, QuestionMark, MaybeNestedExtendedExpression, Nested, Colon, MaybeNestedExtendedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
8052
8145
  if ($2)
8053
8146
  return $2;
8054
8147
  return $skip;
8055
8148
  });
8149
+ var NestedTernaryRest$$ = [NestedTernaryRest$0, NestedTernaryRest$1];
8056
8150
  function NestedTernaryRest(ctx, state2) {
8057
- return (0, import_lib3.$EVENT)(ctx, state2, "NestedTernaryRest", NestedTernaryRest$0);
8151
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "NestedTernaryRest", NestedTernaryRest$$);
8058
8152
  }
8059
8153
  var ShortCircuitExpression$0 = BinaryOpExpression;
8060
8154
  function ShortCircuitExpression(ctx, state2) {
@@ -8228,8 +8322,24 @@ var ClassBinding$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$N)
8228
8322
  function ClassBinding(ctx, state2) {
8229
8323
  return (0, import_lib3.$EVENT)(ctx, state2, "ClassBinding", ClassBinding$0);
8230
8324
  }
8231
- var ClassHeritage$0 = (0, import_lib3.$S)(ExtendsClause, (0, import_lib3.$E)(ImplementsClause));
8232
- var ClassHeritage$1 = ImplementsClause;
8325
+ var ClassHeritage$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ExtendsClause, (0, import_lib3.$E)(WithClause), (0, import_lib3.$E)(ImplementsClause)), function($skip, $loc, $0, $1, $2, $3) {
8326
+ var extendsClause = $1;
8327
+ var withClause = $2;
8328
+ var implementsClause = $3;
8329
+ if (withClause) {
8330
+ extendsClause = convertWithClause(withClause, extendsClause);
8331
+ }
8332
+ return [extendsClause, implementsClause];
8333
+ });
8334
+ var ClassHeritage$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(WithClause), (0, import_lib3.$E)(ImplementsClause)), function($skip, $loc, $0, $1, $2) {
8335
+ var withClause = $1;
8336
+ var implementsClause = $2;
8337
+ if (withClause)
8338
+ return [convertWithClause(withClause), implementsClause];
8339
+ if (implementsClause)
8340
+ return implementsClause;
8341
+ return $skip;
8342
+ });
8233
8343
  var ClassHeritage$$ = [ClassHeritage$0, ClassHeritage$1];
8234
8344
  function ClassHeritage(ctx, state2) {
8235
8345
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ClassHeritage", ClassHeritage$$);
@@ -8238,7 +8348,20 @@ var ExtendsClause$0 = (0, import_lib3.$S)(ExtendsToken, __, ExtendsTarget);
8238
8348
  function ExtendsClause(ctx, state2) {
8239
8349
  return (0, import_lib3.$EVENT)(ctx, state2, "ExtendsClause", ExtendsClause$0);
8240
8350
  }
8241
- var ExtendsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, (0, import_lib3.$E)(_), ExtendsShorthand, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8351
+ var WithClause$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(__, With, __, ExtendsTarget, (0, import_lib3.$Q)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L17, 'WithClause ","'), __, ExtendsTarget))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8352
+ var ws = $3;
8353
+ var t = $4;
8354
+ var rest = $5;
8355
+ return {
8356
+ type: "WithClause",
8357
+ children: $0,
8358
+ targets: [[ws, t], ...rest.map(([_comma, ws2, target]) => [ws2, target])]
8359
+ };
8360
+ });
8361
+ function WithClause(ctx, state2) {
8362
+ return (0, import_lib3.$EVENT)(ctx, state2, "WithClause", WithClause$0);
8363
+ }
8364
+ var ExtendsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, (0, import_lib3.$E)(_), ExtendsShorthand, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8242
8365
  var l = $1;
8243
8366
  var ws = $2;
8244
8367
  var t = $3;
@@ -8260,13 +8383,13 @@ var ExtendsToken$$ = [ExtendsToken$0, ExtendsToken$1];
8260
8383
  function ExtendsToken(ctx, state2) {
8261
8384
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ExtendsToken", ExtendsToken$$);
8262
8385
  }
8263
- var ExtendsShorthand$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L18, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
8386
+ var ExtendsShorthand$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L19, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
8264
8387
  return { $loc, token: "extends " };
8265
8388
  });
8266
8389
  function ExtendsShorthand(ctx, state2) {
8267
8390
  return (0, import_lib3.$EVENT)(ctx, state2, "ExtendsShorthand", ExtendsShorthand$0);
8268
8391
  }
8269
- var NotExtendsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, (0, import_lib3.$E)(_), OmittedNegation, ExtendsShorthand, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'NotExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8392
+ var NotExtendsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, (0, import_lib3.$E)(_), OmittedNegation, ExtendsShorthand, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'NotExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8270
8393
  var l = $1;
8271
8394
  var ws1 = $2;
8272
8395
  var ws2 = $3;
@@ -8292,7 +8415,7 @@ function NotExtendsToken(ctx, state2) {
8292
8415
  var OmittedNegation$0 = (0, import_lib3.$T)((0, import_lib3.$S)(ExclamationPoint), function(value) {
8293
8416
  return "";
8294
8417
  });
8295
- var OmittedNegation$1 = (0, import_lib3.$T)((0, import_lib3.$S)(Not, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'OmittedNegation " "')), (0, import_lib3.$E)(_)), function(value) {
8418
+ var OmittedNegation$1 = (0, import_lib3.$T)((0, import_lib3.$S)(Not, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'OmittedNegation " "')), (0, import_lib3.$E)(_)), function(value) {
8296
8419
  return value[2];
8297
8420
  });
8298
8421
  var OmittedNegation$$ = [OmittedNegation$0, OmittedNegation$1];
@@ -8315,7 +8438,7 @@ var ImplementsClause$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(ImplementsToke
8315
8438
  function ImplementsClause(ctx, state2) {
8316
8439
  return (0, import_lib3.$EVENT)(ctx, state2, "ImplementsClause", ImplementsClause$0);
8317
8440
  }
8318
- var ImplementsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, __, ImplementsShorthand, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8441
+ var ImplementsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, __, ImplementsShorthand, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8319
8442
  var l = $1;
8320
8443
  var ws = $2;
8321
8444
  var token = $3;
@@ -8325,7 +8448,7 @@ var ImplementsToken$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, __, Implem
8325
8448
  }
8326
8449
  return { children };
8327
8450
  });
8328
- var ImplementsToken$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L19, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
8451
+ var ImplementsToken$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(__, (0, import_lib3.$EXPECT)($L20, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
8329
8452
  $2 = { $loc, token: $2 };
8330
8453
  return [$1, $2];
8331
8454
  });
@@ -8333,7 +8456,7 @@ var ImplementsToken$$ = [ImplementsToken$0, ImplementsToken$1];
8333
8456
  function ImplementsToken(ctx, state2) {
8334
8457
  return (0, import_lib3.$EVENT_C)(ctx, state2, "ImplementsToken", ImplementsToken$$);
8335
8458
  }
8336
- var ImplementsShorthand$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L20, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
8459
+ var ImplementsShorthand$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L21, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
8337
8460
  return { $loc, token: "implements " };
8338
8461
  });
8339
8462
  function ImplementsShorthand(ctx, state2) {
@@ -8481,7 +8604,7 @@ var FieldDefinition$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(CoffeeClassesEn
8481
8604
  };
8482
8605
  }
8483
8606
  });
8484
- var FieldDefinition$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertReadonly, ClassElementName, (0, import_lib3.$E)(TypeSuffix), __, ConstAssignment, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
8607
+ var FieldDefinition$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertReadonly, ClassElementName, (0, import_lib3.$E)(TypeSuffix), __, ConstAssignment, MaybeNestedExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
8485
8608
  var r = $1;
8486
8609
  var ca = $5;
8487
8610
  r.children[0].$loc = {
@@ -8682,7 +8805,7 @@ var OptionalDot$$ = [OptionalDot$0, OptionalDot$1];
8682
8805
  function OptionalDot(ctx, state2) {
8683
8806
  return (0, import_lib3.$EVENT_C)(ctx, state2, "OptionalDot", OptionalDot$$);
8684
8807
  }
8685
- var NonNullAssertion$0 = (0, import_lib3.$T)((0, import_lib3.$S)(ExclamationPoint, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($L21, 'NonNullAssertion "^"'))), function(value) {
8808
+ var NonNullAssertion$0 = (0, import_lib3.$T)((0, import_lib3.$S)(ExclamationPoint, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($L22, 'NonNullAssertion "^"'))), function(value) {
8686
8809
  return { "type": "NonNullAssertion", "ts": true, "children": [value[0]] };
8687
8810
  });
8688
8811
  function NonNullAssertion(ctx, state2) {
@@ -8890,7 +9013,7 @@ var PropertyAccess$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(AccessStart, (0,
8890
9013
  ]
8891
9014
  };
8892
9015
  });
8893
- var PropertyAccess$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(AccessStart, (0, import_lib3.$EXPECT)($L22, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
9016
+ var PropertyAccess$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(AccessStart, (0, import_lib3.$EXPECT)($L23, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
8894
9017
  var dot = $1;
8895
9018
  var neg = $2;
8896
9019
  var num = $3;
@@ -8997,7 +9120,7 @@ function SuperProperty(ctx, state2) {
8997
9120
  return (0, import_lib3.$EVENT_C)(ctx, state2, "SuperProperty", SuperProperty$$);
8998
9121
  }
8999
9122
  var MetaProperty$0 = (0, import_lib3.$S)(New, Dot, Target);
9000
- var MetaProperty$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L23, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9123
+ var MetaProperty$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L24, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9001
9124
  return { $loc, token: $1 };
9002
9125
  });
9003
9126
  var MetaProperty$2 = ReturnValue;
@@ -9005,7 +9128,7 @@ var MetaProperty$$ = [MetaProperty$0, MetaProperty$1, MetaProperty$2];
9005
9128
  function MetaProperty(ctx, state2) {
9006
9129
  return (0, import_lib3.$EVENT_C)(ctx, state2, "MetaProperty", MetaProperty$$);
9007
9130
  }
9008
- var ReturnValue$0 = (0, import_lib3.$TV)((0, import_lib3.$C)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L24, 'ReturnValue "return.value"'), NonIdContinue), (0, import_lib3.$S)(Return, (0, import_lib3.$Y)(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
9131
+ var ReturnValue$0 = (0, import_lib3.$TV)((0, import_lib3.$C)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L25, 'ReturnValue "return.value"'), NonIdContinue), (0, import_lib3.$S)(Return, (0, import_lib3.$Y)(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
9009
9132
  return { type: "ReturnValue", children: [$1[0]] };
9010
9133
  });
9011
9134
  function ReturnValue(ctx, state2) {
@@ -9534,7 +9657,7 @@ var BindingElement$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.
9534
9657
  children: [ws, binding]
9535
9658
  };
9536
9659
  });
9537
- var BindingElement$2 = (0, import_lib3.$TV)((0, import_lib3.$Y)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$EXPECT)($L25, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
9660
+ var BindingElement$2 = (0, import_lib3.$TV)((0, import_lib3.$Y)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$EXPECT)($L17, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
9538
9661
  return {
9539
9662
  children: [{
9540
9663
  type: "ElisionElement",
@@ -9651,10 +9774,10 @@ var FunctionExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(FunctionSign
9651
9774
  block
9652
9775
  };
9653
9776
  });
9654
- var FunctionExpression$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3) {
9655
- var open = $1;
9656
- var op = $2;
9657
- var close = $3;
9777
+ var FunctionExpression$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(ArrowFunction), OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4) {
9778
+ var open = $2;
9779
+ var op = $3;
9780
+ var close = $4;
9658
9781
  if (op.special && op.call && !op.negated)
9659
9782
  return op.call;
9660
9783
  const refA = makeRef("a"), refB = makeRef("b"), body = processBinaryOpExpression([refA, [
@@ -10969,7 +11092,7 @@ var NamedProperty$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PropertyName, (0,
10969
11092
  function NamedProperty(ctx, state2) {
10970
11093
  return (0, import_lib3.$EVENT)(ctx, state2, "NamedProperty", NamedProperty$0);
10971
11094
  }
10972
- var SnugNamedProperty$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PropertyName, Colon, ExtendedExpression, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), PostfixStatement), (0, import_lib3.$Y)((0, import_lib3.$S)(Nested, NamedProperty))))), function($skip, $loc, $0, $1, $2, $3, $4) {
11095
+ var SnugNamedProperty$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PropertyName, Colon, MaybeNestedExtendedExpression, (0, import_lib3.$E)((0, import_lib3.$S)((0, import_lib3.$S)((0, import_lib3.$E)(_), PostfixStatement), (0, import_lib3.$Y)((0, import_lib3.$S)(Nested, NamedProperty))))), function($skip, $loc, $0, $1, $2, $3, $4) {
10973
11096
  var name = $1;
10974
11097
  var colon = $2;
10975
11098
  var expression = $3;
@@ -11373,11 +11496,12 @@ var NotDedentedBinaryOp$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_
11373
11496
  ws.push(...$2);
11374
11497
  return [ws, $3];
11375
11498
  });
11376
- var NotDedentedBinaryOp$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, (0, import_lib3.$E)(_), (0, import_lib3.$N)(Identifier), BinaryOp), function($skip, $loc, $0, $1, $2, $3, $4) {
11499
+ var NotDedentedBinaryOp$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(Nested, (0, import_lib3.$E)(_), (0, import_lib3.$N)(Identifier), (0, import_lib3.$C)((0, import_lib3.$N)((0, import_lib3.$EXPECT)($L64, 'NotDedentedBinaryOp "*"')), (0, import_lib3.$N)(ImportDeclaration)), BinaryOp), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11500
+ var op = $5;
11377
11501
  const ws = [...$1];
11378
11502
  if ($2)
11379
11503
  ws.push(...$2);
11380
- return [ws, $4];
11504
+ return [ws, op];
11381
11505
  });
11382
11506
  var NotDedentedBinaryOp$$ = [NotDedentedBinaryOp$0, NotDedentedBinaryOp$1];
11383
11507
  function NotDedentedBinaryOp(ctx, state2) {
@@ -11392,7 +11516,7 @@ var IdentifierBinaryOp$0 = (0, import_lib3.$TV)(Identifier, function($skip, $loc
11392
11516
  function IdentifierBinaryOp(ctx, state2) {
11393
11517
  return (0, import_lib3.$EVENT)(ctx, state2, "IdentifierBinaryOp", IdentifierBinaryOp$0);
11394
11518
  }
11395
- var BinaryOp$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R20, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
11519
+ var BinaryOp$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($R20, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
11396
11520
  var op = value[1];
11397
11521
  return op;
11398
11522
  });
@@ -11431,8 +11555,8 @@ var _BinaryOp$$ = [_BinaryOp$0, _BinaryOp$1, _BinaryOp$2];
11431
11555
  function _BinaryOp(ctx, state2) {
11432
11556
  return (0, import_lib3.$EVENT_C)(ctx, state2, "_BinaryOp", _BinaryOp$$);
11433
11557
  }
11434
- var BinaryOpSymbol$0 = (0, import_lib3.$EXPECT)($L64, 'BinaryOpSymbol "**"');
11435
- var BinaryOpSymbol$1 = (0, import_lib3.$EXPECT)($L65, 'BinaryOpSymbol "*"');
11558
+ var BinaryOpSymbol$0 = (0, import_lib3.$EXPECT)($L65, 'BinaryOpSymbol "**"');
11559
+ var BinaryOpSymbol$1 = (0, import_lib3.$EXPECT)($L64, 'BinaryOpSymbol "*"');
11436
11560
  var BinaryOpSymbol$2 = (0, import_lib3.$EXPECT)($L66, 'BinaryOpSymbol "/"');
11437
11561
  var BinaryOpSymbol$3 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L67, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
11438
11562
  return {
@@ -11448,7 +11572,7 @@ var BinaryOpSymbol$5 = (0, import_lib3.$TV)((0, import_lib3.$C)((0, import_lib3.
11448
11572
  };
11449
11573
  });
11450
11574
  var BinaryOpSymbol$6 = (0, import_lib3.$EXPECT)($L69, 'BinaryOpSymbol "+"');
11451
- var BinaryOpSymbol$7 = (0, import_lib3.$EXPECT)($L22, 'BinaryOpSymbol "-"');
11575
+ var BinaryOpSymbol$7 = (0, import_lib3.$EXPECT)($L23, 'BinaryOpSymbol "-"');
11452
11576
  var BinaryOpSymbol$8 = (0, import_lib3.$EXPECT)($L70, 'BinaryOpSymbol "<="');
11453
11577
  var BinaryOpSymbol$9 = (0, import_lib3.$T)((0, import_lib3.$EXPECT)($L71, 'BinaryOpSymbol "\u2264"'), function(value) {
11454
11578
  return "<=";
@@ -11478,7 +11602,7 @@ var BinaryOpSymbol$14 = (0, import_lib3.$EXPECT)($L76, 'BinaryOpSymbol "<<"');
11478
11602
  var BinaryOpSymbol$15 = (0, import_lib3.$T)((0, import_lib3.$EXPECT)($L77, 'BinaryOpSymbol "\xAB"'), function(value) {
11479
11603
  return "<<";
11480
11604
  });
11481
- var BinaryOpSymbol$16 = (0, import_lib3.$EXPECT)($L18, 'BinaryOpSymbol "<"');
11605
+ var BinaryOpSymbol$16 = (0, import_lib3.$EXPECT)($L19, 'BinaryOpSymbol "<"');
11482
11606
  var BinaryOpSymbol$17 = (0, import_lib3.$EXPECT)($L78, 'BinaryOpSymbol ">>>"');
11483
11607
  var BinaryOpSymbol$18 = (0, import_lib3.$T)((0, import_lib3.$EXPECT)($L79, 'BinaryOpSymbol "\u22D9"'), function(value) {
11484
11608
  return ">>>";
@@ -11617,7 +11741,7 @@ var BinaryOpSymbol$47 = (0, import_lib3.$TS)((0, import_lib3.$S)(Is), function($
11617
11741
  });
11618
11742
  var BinaryOpSymbol$48 = In;
11619
11743
  var BinaryOpSymbol$49 = (0, import_lib3.$EXPECT)($L108, 'BinaryOpSymbol "&"');
11620
- var BinaryOpSymbol$50 = (0, import_lib3.$EXPECT)($L21, 'BinaryOpSymbol "^"');
11744
+ var BinaryOpSymbol$50 = (0, import_lib3.$EXPECT)($L22, 'BinaryOpSymbol "^"');
11621
11745
  var BinaryOpSymbol$51 = (0, import_lib3.$EXPECT)($L109, 'BinaryOpSymbol "|"');
11622
11746
  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];
11623
11747
  function BinaryOpSymbol(ctx, state2) {
@@ -11710,7 +11834,7 @@ var UnaryOp$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$C)(Del
11710
11834
  return [op, [" "]];
11711
11835
  return [op, ws];
11712
11836
  });
11713
- var UnaryOp$3 = (0, import_lib3.$T)((0, import_lib3.$S)(Not, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($R23, "UnaryOp /[:.]/")), (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'UnaryOp " "')), (0, import_lib3.$E)(_)), function(value) {
11837
+ var UnaryOp$3 = (0, import_lib3.$T)((0, import_lib3.$S)(Not, (0, import_lib3.$N)((0, import_lib3.$EXPECT)($R23, "UnaryOp /[:.]/")), (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'UnaryOp " "')), (0, import_lib3.$E)(_)), function(value) {
11714
11838
  return [value[0], value[3]];
11715
11839
  });
11716
11840
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -12858,7 +12982,7 @@ var KeywordStatement$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(Continue, (0,
12858
12982
  };
12859
12983
  });
12860
12984
  var KeywordStatement$2 = DebuggerStatement;
12861
- var KeywordStatement$3 = (0, import_lib3.$T)((0, import_lib3.$S)(Return, (0, import_lib3.$N)((0, import_lib3.$C)((0, import_lib3.$EXPECT)($L16, 'KeywordStatement ":"'), (0, import_lib3.$EXPECT)($L7, 'KeywordStatement "."'), AfterReturnShorthand)), (0, import_lib3.$E)(MaybeNestedExpression)), function(value) {
12985
+ var KeywordStatement$3 = (0, import_lib3.$T)((0, import_lib3.$S)(Return, (0, import_lib3.$N)((0, import_lib3.$C)((0, import_lib3.$EXPECT)($L16, 'KeywordStatement ":"'), (0, import_lib3.$EXPECT)($L7, 'KeywordStatement "."'), AfterReturnShorthand)), (0, import_lib3.$E)(MaybeParenNestedExtendedExpression)), function(value) {
12862
12986
  var expression = value[2];
12863
12987
  return { "type": "ReturnStatement", "expression": expression, "children": value };
12864
12988
  });
@@ -12873,7 +12997,7 @@ var DebuggerStatement$0 = (0, import_lib3.$T)((0, import_lib3.$S)(Debugger), fun
12873
12997
  function DebuggerStatement(ctx, state2) {
12874
12998
  return (0, import_lib3.$EVENT)(ctx, state2, "DebuggerStatement", DebuggerStatement$0);
12875
12999
  }
12876
- var ThrowStatement$0 = (0, import_lib3.$T)((0, import_lib3.$S)(Throw, ExtendedExpression), function(value) {
13000
+ var ThrowStatement$0 = (0, import_lib3.$T)((0, import_lib3.$S)(Throw, MaybeParenNestedExtendedExpression), function(value) {
12877
13001
  return { "type": "ThrowStatement", "children": value };
12878
13002
  });
12879
13003
  function ThrowStatement(ctx, state2) {
@@ -12897,16 +13021,51 @@ var Debugger$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPEC
12897
13021
  function Debugger(ctx, state2) {
12898
13022
  return (0, import_lib3.$EVENT)(ctx, state2, "Debugger", Debugger$0);
12899
13023
  }
12900
- var MaybeNestedExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), ExtendedExpression), function($skip, $loc, $0, $1, $2) {
12901
- return $2;
13024
+ var MaybeNestedNonPipelineExtendedExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, NonPipelineExtendedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13025
+ if ($3)
13026
+ return $3;
13027
+ return $skip;
12902
13028
  });
12903
- var MaybeNestedExpression$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$Y)(EOS), ObjectLiteral), function($skip, $loc, $0, $1, $2) {
12904
- return $2;
13029
+ var MaybeNestedNonPipelineExtendedExpression$1 = NonPipelineExtendedExpression;
13030
+ var MaybeNestedNonPipelineExtendedExpression$$ = [MaybeNestedNonPipelineExtendedExpression$0, MaybeNestedNonPipelineExtendedExpression$1];
13031
+ function MaybeNestedNonPipelineExtendedExpression(ctx, state2) {
13032
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedNonPipelineExtendedExpression", MaybeNestedNonPipelineExtendedExpression$$);
13033
+ }
13034
+ var MaybeNestedPostfixedExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, PostfixedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13035
+ if ($3)
13036
+ return $3;
13037
+ return $skip;
13038
+ });
13039
+ var MaybeNestedPostfixedExpression$1 = PostfixedExpression;
13040
+ var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1];
13041
+ function MaybeNestedPostfixedExpression(ctx, state2) {
13042
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedPostfixedExpression", MaybeNestedPostfixedExpression$$);
13043
+ }
13044
+ var MaybeNestedExtendedExpression$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$E)((0, import_lib3.$S)(Nested, ExtendedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13045
+ if ($3)
13046
+ return $3;
13047
+ return $skip;
13048
+ });
13049
+ var MaybeNestedExtendedExpression$1 = ExtendedExpression;
13050
+ var MaybeNestedExtendedExpression$$ = [MaybeNestedExtendedExpression$0, MaybeNestedExtendedExpression$1];
13051
+ function MaybeNestedExtendedExpression(ctx, state2) {
13052
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedExtendedExpression", MaybeNestedExtendedExpression$$);
13053
+ }
13054
+ var MaybeParenNestedExtendedExpression$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), ExtendedExpression), function(value) {
13055
+ return value[1];
13056
+ });
13057
+ var MaybeParenNestedExtendedExpression$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$Y)(EOS), ObjectLiteral), function(value) {
13058
+ return value[1];
13059
+ });
13060
+ var MaybeParenNestedExtendedExpression$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$Y)(EOS), InsertSpace, InsertOpenParen, PushIndent, (0, import_lib3.$S)(Nested, ExtendedExpression), PopIndent, InsertNewline, InsertIndent, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13061
+ var exp = $5;
13062
+ if (!exp)
13063
+ return $skip;
13064
+ return $0.slice(1);
12905
13065
  });
12906
- var MaybeNestedExpression$2 = (0, import_lib3.$S)((0, import_lib3.$Y)(EOS), InsertSpace, InsertOpenParen, PushIndent, Nested, ExtendedExpression, PopIndent, InsertNewline, InsertIndent, InsertCloseParen);
12907
- var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2];
12908
- function MaybeNestedExpression(ctx, state2) {
12909
- return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedExpression", MaybeNestedExpression$$);
13066
+ var MaybeParenNestedExtendedExpression$$ = [MaybeParenNestedExtendedExpression$0, MaybeParenNestedExtendedExpression$1, MaybeParenNestedExtendedExpression$2];
13067
+ function MaybeParenNestedExtendedExpression(ctx, state2) {
13068
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeParenNestedExtendedExpression", MaybeParenNestedExtendedExpression$$);
12910
13069
  }
12911
13070
  var ImportDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Import, _, Identifier, (0, import_lib3.$E)(_), Equals, __, (0, import_lib3.$EXPECT)($L115, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12912
13071
  const imp = [
@@ -13098,7 +13257,7 @@ function OperatorImportSpecifier(ctx, state2) {
13098
13257
  return (0, import_lib3.$EVENT_C)(ctx, state2, "OperatorImportSpecifier", OperatorImportSpecifier$$);
13099
13258
  }
13100
13259
  var ImportAsToken$0 = (0, import_lib3.$S)(__, As);
13101
- var ImportAsToken$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, __, Colon, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
13260
+ var ImportAsToken$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, __, Colon, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
13102
13261
  var l = $1;
13103
13262
  var ws = $2;
13104
13263
  var c = $3;
@@ -13159,7 +13318,7 @@ var ImportedBinding$0 = BindingIdentifier;
13159
13318
  function ImportedBinding(ctx, state2) {
13160
13319
  return (0, import_lib3.$EVENT)(ctx, state2, "ImportedBinding", ImportedBinding$0);
13161
13320
  }
13162
- var ExportDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Export, (0, import_lib3.$E)(_), Equals, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
13321
+ var ExportDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Export, (0, import_lib3.$E)(_), Equals, MaybeNestedExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
13163
13322
  const exp = [
13164
13323
  { ...$1, ts: true },
13165
13324
  { ...$1, token: "module.exports", js: true }
@@ -13196,7 +13355,7 @@ var ExportDeclaration$1 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_li
13196
13355
  }
13197
13356
  ];
13198
13357
  });
13199
- var ExportDeclaration$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(Decorators), Export, __, Default, __, (0, import_lib3.$C)(HoistableDeclaration, ClassDeclaration, InterfaceDeclaration, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13358
+ var ExportDeclaration$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(Decorators), Export, __, Default, __, (0, import_lib3.$C)(HoistableDeclaration, ClassDeclaration, InterfaceDeclaration, MaybeNestedExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13200
13359
  var declaration = $6;
13201
13360
  return { type: "ExportDeclaration", declaration, ts: declaration.ts, children: $0 };
13202
13361
  });
@@ -13310,24 +13469,26 @@ var LexicalDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(LetOrConst,
13310
13469
  thisAssignments: bindings.flatMap((b) => b.thisAssignments)
13311
13470
  };
13312
13471
  });
13313
- var LexicalDeclaration$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertConst, (0, import_lib3.$C)(BindingPattern, BindingIdentifier), (0, import_lib3.$E)(TypeSuffix), __, ConstAssignment, PostfixedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13314
- return processAssignmentDeclaration(...$0);
13315
- });
13316
- var LexicalDeclaration$2 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertLet, (0, import_lib3.$C)(BindingPattern, BindingIdentifier), (0, import_lib3.$E)(TypeSuffix), __, LetAssignment, PostfixedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13317
- return processAssignmentDeclaration(...$0);
13472
+ var LexicalDeclaration$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(Loc, (0, import_lib3.$C)(BindingPattern, BindingIdentifier), (0, import_lib3.$E)(TypeSuffix), __, (0, import_lib3.$C)(ConstAssignment, LetAssignment), MaybeNestedPostfixedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13473
+ var loc = $1;
13474
+ var assign = $5;
13475
+ return processAssignmentDeclaration(
13476
+ { $loc: loc, token: assign.decl },
13477
+ ...$0.slice(1)
13478
+ );
13318
13479
  });
13319
- var LexicalDeclaration$$ = [LexicalDeclaration$0, LexicalDeclaration$1, LexicalDeclaration$2];
13480
+ var LexicalDeclaration$$ = [LexicalDeclaration$0, LexicalDeclaration$1];
13320
13481
  function LexicalDeclaration(ctx, state2) {
13321
13482
  return (0, import_lib3.$EVENT_C)(ctx, state2, "LexicalDeclaration", LexicalDeclaration$$);
13322
13483
  }
13323
13484
  var ConstAssignment$0 = (0, import_lib3.$TV)((0, import_lib3.$C)((0, import_lib3.$EXPECT)($L118, 'ConstAssignment ":="'), (0, import_lib3.$EXPECT)($L119, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
13324
- return { $loc, token: "=" };
13485
+ return { $loc, token: "=", decl: "const " };
13325
13486
  });
13326
13487
  function ConstAssignment(ctx, state2) {
13327
13488
  return (0, import_lib3.$EVENT)(ctx, state2, "ConstAssignment", ConstAssignment$0);
13328
13489
  }
13329
13490
  var LetAssignment$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L120, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
13330
- return { $loc, token: "=" };
13491
+ return { $loc, token: "=", decl: "let " };
13331
13492
  });
13332
13493
  function LetAssignment(ctx, state2) {
13333
13494
  return (0, import_lib3.$EVENT)(ctx, state2, "LetAssignment", LetAssignment$0);
@@ -13373,7 +13534,7 @@ var LexicalBinding$$ = [LexicalBinding$0, LexicalBinding$1];
13373
13534
  function LexicalBinding(ctx, state2) {
13374
13535
  return (0, import_lib3.$EVENT_C)(ctx, state2, "LexicalBinding", LexicalBinding$$);
13375
13536
  }
13376
- var Initializer$0 = (0, import_lib3.$T)((0, import_lib3.$S)(__, Equals, ExtendedExpression), function(value) {
13537
+ var Initializer$0 = (0, import_lib3.$T)((0, import_lib3.$S)(__, Equals, MaybeNestedExtendedExpression), function(value) {
13377
13538
  var expression = value[2];
13378
13539
  return { "type": "Initializer", "expression": expression, "children": value };
13379
13540
  });
@@ -13869,7 +14030,7 @@ var Loc$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'Loc ""'), functi
13869
14030
  function Loc(ctx, state2) {
13870
14031
  return (0, import_lib3.$EVENT)(ctx, state2, "Loc", Loc$0);
13871
14032
  }
13872
- var Abstract$0 = (0, import_lib3.$TV)((0, import_lib3.$TEXT)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L126, 'Abstract "abstract"'), NonIdContinue, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'Abstract " "')))), function($skip, $loc, $0, $1) {
14033
+ var Abstract$0 = (0, import_lib3.$TV)((0, import_lib3.$TEXT)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L126, 'Abstract "abstract"'), NonIdContinue, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'Abstract " "')))), function($skip, $loc, $0, $1) {
13873
14034
  return { $loc, token: $1, ts: true };
13874
14035
  });
13875
14036
  function Abstract(ctx, state2) {
@@ -13923,7 +14084,7 @@ var By$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L1
13923
14084
  function By(ctx, state2) {
13924
14085
  return (0, import_lib3.$EVENT)(ctx, state2, "By", By$0);
13925
14086
  }
13926
- var Caret$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L21, 'Caret "^"'), function($skip, $loc, $0, $1) {
14087
+ var Caret$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L22, 'Caret "^"'), function($skip, $loc, $0, $1) {
13927
14088
  return { $loc, token: $1 };
13928
14089
  });
13929
14090
  function Caret(ctx, state2) {
@@ -13983,7 +14144,7 @@ var Colon$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)(
13983
14144
  function Colon(ctx, state2) {
13984
14145
  return (0, import_lib3.$EVENT)(ctx, state2, "Colon", Colon$0);
13985
14146
  }
13986
- var Comma$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L25, 'Comma ","'), function($skip, $loc, $0, $1) {
14147
+ var Comma$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L17, 'Comma ","'), function($skip, $loc, $0, $1) {
13987
14148
  return { $loc, token: $1 };
13988
14149
  });
13989
14150
  function Comma(ctx, state2) {
@@ -14143,7 +14304,7 @@ var Hash$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L160, 'Hash "#"'), f
14143
14304
  function Hash(ctx, state2) {
14144
14305
  return (0, import_lib3.$EVENT)(ctx, state2, "Hash", Hash$0);
14145
14306
  }
14146
- var If$0 = (0, import_lib3.$TV)((0, import_lib3.$TEXT)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L161, 'If "if"'), NonIdContinue, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L17, 'If " "')))), function($skip, $loc, $0, $1) {
14307
+ var If$0 = (0, import_lib3.$TV)((0, import_lib3.$TEXT)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L161, 'If "if"'), NonIdContinue, (0, import_lib3.$E)((0, import_lib3.$EXPECT)($L18, 'If " "')))), function($skip, $loc, $0, $1) {
14147
14308
  return { $loc, token: $1 };
14148
14309
  });
14149
14310
  function If(ctx, state2) {
@@ -14221,7 +14382,7 @@ var Of$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L1
14221
14382
  function Of(ctx, state2) {
14222
14383
  return (0, import_lib3.$EVENT)(ctx, state2, "Of", Of$0);
14223
14384
  }
14224
- var OpenAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L18, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
14385
+ var OpenAngleBracket$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L19, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
14225
14386
  return { $loc, token: $1 };
14226
14387
  });
14227
14388
  function OpenAngleBracket(ctx, state2) {
@@ -14330,7 +14491,7 @@ var SingleQuote$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L188, `Single
14330
14491
  function SingleQuote(ctx, state2) {
14331
14492
  return (0, import_lib3.$EVENT)(ctx, state2, "SingleQuote", SingleQuote$0);
14332
14493
  }
14333
- var Star$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L65, 'Star "*"'), function($skip, $loc, $0, $1) {
14494
+ var Star$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L64, 'Star "*"'), function($skip, $loc, $0, $1) {
14334
14495
  return { $loc, token: $1 };
14335
14496
  });
14336
14497
  function Star(ctx, state2) {
@@ -14472,6 +14633,12 @@ var While$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)(
14472
14633
  function While(ctx, state2) {
14473
14634
  return (0, import_lib3.$EVENT)(ctx, state2, "While", While$0);
14474
14635
  }
14636
+ var With$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L116, 'With "with"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14637
+ return { $loc, token: $1 };
14638
+ });
14639
+ function With(ctx, state2) {
14640
+ return (0, import_lib3.$EVENT)(ctx, state2, "With", With$0);
14641
+ }
14475
14642
  var Yield$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L211, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14476
14643
  return { $loc, token: $1, type: "Yield" };
14477
14644
  });
@@ -14551,7 +14718,7 @@ var JSXElement$$ = [JSXElement$0, JSXElement$1, JSXElement$2];
14551
14718
  function JSXElement(ctx, state2) {
14552
14719
  return (0, import_lib3.$EVENT_C)(ctx, state2, "JSXElement", JSXElement$$);
14553
14720
  }
14554
- var JSXSelfClosingElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L18, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib3.$E)(TypeArguments), (0, import_lib3.$E)(JSXAttributes), (0, import_lib3.$E)(Whitespace), (0, import_lib3.$EXPECT)($L212, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
14721
+ var JSXSelfClosingElement$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L19, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib3.$E)(TypeArguments), (0, import_lib3.$E)(JSXAttributes), (0, import_lib3.$E)(Whitespace), (0, import_lib3.$EXPECT)($L212, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
14555
14722
  return { type: "JSXElement", children: $0, tag: $2 };
14556
14723
  });
14557
14724
  function JSXSelfClosingElement(ctx, state2) {
@@ -14570,7 +14737,7 @@ var PopJSXStack$0 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L0, 'PopJSXSt
14570
14737
  function PopJSXStack(ctx, state2) {
14571
14738
  return (0, import_lib3.$EVENT)(ctx, state2, "PopJSXStack", PopJSXStack$0);
14572
14739
  }
14573
- var JSXOpeningElement$0 = (0, import_lib3.$S)((0, import_lib3.$EXPECT)($L18, 'JSXOpeningElement "<"'), JSXElementName, (0, import_lib3.$E)(TypeArguments), (0, import_lib3.$E)(JSXAttributes), (0, import_lib3.$E)(Whitespace), (0, import_lib3.$EXPECT)($L44, 'JSXOpeningElement ">"'));
14740
+ var JSXOpeningElement$0 = (0, import_lib3.$S)((0, import_lib3.$EXPECT)($L19, 'JSXOpeningElement "<"'), JSXElementName, (0, import_lib3.$E)(TypeArguments), (0, import_lib3.$E)(JSXAttributes), (0, import_lib3.$E)(Whitespace), (0, import_lib3.$EXPECT)($L44, 'JSXOpeningElement ">"'));
14574
14741
  function JSXOpeningElement(ctx, state2) {
14575
14742
  return (0, import_lib3.$EVENT)(ctx, state2, "JSXOpeningElement", JSXOpeningElement$0);
14576
14743
  }
@@ -15226,7 +15393,7 @@ var TypeDeclarationRest$$ = [TypeDeclarationRest$0, TypeDeclarationRest$1, TypeD
15226
15393
  function TypeDeclarationRest(ctx, state2) {
15227
15394
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeDeclarationRest", TypeDeclarationRest$$);
15228
15395
  }
15229
- var TypeAliasDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeKeyword, (0, import_lib3.$E)(_), IdentifierName, (0, import_lib3.$E)(TypeParameters), OptionalEquals, (0, import_lib3.$C)(MaybeIndentedType, (0, import_lib3.$S)(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
15396
+ var TypeAliasDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeKeyword, (0, import_lib3.$E)(_), IdentifierName, (0, import_lib3.$E)(TypeParameters), OptionalEquals, (0, import_lib3.$C)(MaybeNestedType, (0, import_lib3.$S)(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
15230
15397
  var id = $3;
15231
15398
  return {
15232
15399
  type: "TypeDeclaration",
@@ -15235,7 +15402,7 @@ var TypeAliasDeclaration$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(TypeKeywor
15235
15402
  ts: true
15236
15403
  };
15237
15404
  });
15238
- var TypeAliasDeclaration$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertType, IdentifierName, (0, import_lib3.$E)(TypeParameters), __, TypeAssignment, (0, import_lib3.$C)(MaybeIndentedType, (0, import_lib3.$S)(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
15405
+ var TypeAliasDeclaration$1 = (0, import_lib3.$TS)((0, import_lib3.$S)(InsertType, IdentifierName, (0, import_lib3.$E)(TypeParameters), __, TypeAssignment, (0, import_lib3.$C)(MaybeNestedType, (0, import_lib3.$S)(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
15239
15406
  var id = $2;
15240
15407
  return {
15241
15408
  type: "TypeDeclaration",
@@ -15340,11 +15507,15 @@ function Namespace(ctx, state2) {
15340
15507
  }
15341
15508
  var InterfaceBlock$0 = (0, import_lib3.$S)(__, OpenBrace, NestedInterfaceProperties, __, CloseBrace);
15342
15509
  var InterfaceBlock$1 = (0, import_lib3.$S)(__, OpenBrace, (0, import_lib3.$Q)((0, import_lib3.$S)(__, InterfaceProperty)), __, CloseBrace);
15343
- var InterfaceBlock$2 = (0, import_lib3.$S)(InsertOpenBrace, NestedInterfaceProperties, InsertNewline, InsertIndent, InsertCloseBrace);
15510
+ var InterfaceBlock$2 = NestedInterfaceBlock;
15344
15511
  var InterfaceBlock$$ = [InterfaceBlock$0, InterfaceBlock$1, InterfaceBlock$2];
15345
15512
  function InterfaceBlock(ctx, state2) {
15346
15513
  return (0, import_lib3.$EVENT_C)(ctx, state2, "InterfaceBlock", InterfaceBlock$$);
15347
15514
  }
15515
+ var NestedInterfaceBlock$0 = (0, import_lib3.$S)(InsertOpenBrace, NestedInterfaceProperties, InsertNewline, InsertIndent, InsertCloseBrace);
15516
+ function NestedInterfaceBlock(ctx, state2) {
15517
+ return (0, import_lib3.$EVENT)(ctx, state2, "NestedInterfaceBlock", NestedInterfaceBlock$0);
15518
+ }
15348
15519
  var NestedInterfaceProperties$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(PushIndent, (0, import_lib3.$Q)(NestedInterfaceProperty), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15349
15520
  var props = $2;
15350
15521
  if (props.length)
@@ -15531,7 +15702,7 @@ var NestedEnumPropertyLine$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, impo
15531
15702
  function NestedEnumPropertyLine(ctx, state2) {
15532
15703
  return (0, import_lib3.$EVENT)(ctx, state2, "NestedEnumPropertyLine", NestedEnumPropertyLine$0);
15533
15704
  }
15534
- var EnumProperty$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Identifier, (0, import_lib3.$E)((0, import_lib3.$S)(__, Equals, ExtendedExpression)), ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
15705
+ var EnumProperty$0 = (0, import_lib3.$TS)((0, import_lib3.$S)(Identifier, (0, import_lib3.$E)((0, import_lib3.$S)(__, Equals, MaybeNestedExtendedExpression)), ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
15535
15706
  var name = $1;
15536
15707
  var initializer = $2;
15537
15708
  return {
@@ -15558,7 +15729,7 @@ var TypeIndex$$ = [TypeIndex$0, TypeIndex$1];
15558
15729
  function TypeIndex(ctx, state2) {
15559
15730
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeIndex", TypeIndex$$);
15560
15731
  }
15561
- var TypeSuffix$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$E)(QuestionMark), (0, import_lib3.$E)(_), Colon, MaybeIndentedType), function(value) {
15732
+ var TypeSuffix$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$E)(QuestionMark), (0, import_lib3.$E)(_), Colon, MaybeNestedType), function(value) {
15562
15733
  var optional = value[1];
15563
15734
  var t = value[4];
15564
15735
  return { "type": "TypeSuffix", "ts": true, "optional": optional, "t": t, "children": value };
@@ -15567,7 +15738,7 @@ var TypeSuffix$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$E)(_
15567
15738
  var optional = value[1];
15568
15739
  return { "type": "TypeSuffix", "ts": true, "optional": optional, "children": value };
15569
15740
  });
15570
- var TypeSuffix$2 = (0, import_lib3.$TS)((0, import_lib3.$S)(NonNullAssertion, (0, import_lib3.$E)(_), (0, import_lib3.$E)((0, import_lib3.$S)(Colon, MaybeIndentedType))), function($skip, $loc, $0, $1, $2, $3) {
15741
+ var TypeSuffix$2 = (0, import_lib3.$TS)((0, import_lib3.$S)(NonNullAssertion, (0, import_lib3.$E)(_), (0, import_lib3.$E)((0, import_lib3.$S)(Colon, MaybeNestedType))), function($skip, $loc, $0, $1, $2, $3) {
15571
15742
  var nonnull = $1;
15572
15743
  var ct = $3;
15573
15744
  const [colon, t] = ct ?? [];
@@ -15583,18 +15754,16 @@ var TypeSuffix$$ = [TypeSuffix$0, TypeSuffix$1, TypeSuffix$2];
15583
15754
  function TypeSuffix(ctx, state2) {
15584
15755
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeSuffix", TypeSuffix$$);
15585
15756
  }
15586
- var MaybeIndentedType$0 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$N)((0, import_lib3.$S)(__, OpenBrace)), InterfaceBlock), function(value) {
15587
- return value[1];
15588
- });
15589
- var MaybeIndentedType$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) {
15757
+ var MaybeNestedType$0 = NestedInterfaceBlock;
15758
+ 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) {
15590
15759
  if (!$2)
15591
15760
  return $skip;
15592
15761
  return $2;
15593
15762
  });
15594
- var MaybeIndentedType$2 = Type;
15595
- var MaybeIndentedType$$ = [MaybeIndentedType$0, MaybeIndentedType$1, MaybeIndentedType$2];
15596
- function MaybeIndentedType(ctx, state2) {
15597
- return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeIndentedType", MaybeIndentedType$$);
15763
+ var MaybeNestedType$2 = Type;
15764
+ var MaybeNestedType$$ = [MaybeNestedType$0, MaybeNestedType$1, MaybeNestedType$2];
15765
+ function MaybeNestedType(ctx, state2) {
15766
+ return (0, import_lib3.$EVENT_C)(ctx, state2, "MaybeNestedType", MaybeNestedType$$);
15598
15767
  }
15599
15768
  var ReturnTypeSuffix$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$E)(QuestionMark), (0, import_lib3.$E)(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15600
15769
  var optional = $2;
@@ -15847,9 +16016,9 @@ function NestedType(ctx, state2) {
15847
16016
  var TypeConditional$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$E)(_), (0, import_lib3.$EXPECT)($R85, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
15848
16017
  return [$1, expressionizeTypeIf($3)];
15849
16018
  });
15850
- 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) {
16019
+ 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) {
15851
16020
  if ($1.negated)
15852
- return [$1, $2, $3, $7, $5, $6, $4];
16021
+ return [$1, $2, $3, $4, $9, $6, $7, $8, $5];
15853
16022
  return $0;
15854
16023
  });
15855
16024
  var TypeConditional$2 = TypeBinary;
@@ -15885,12 +16054,13 @@ var TypeBlock$0 = (0, import_lib3.$T)((0, import_lib3.$S)(Then, Type), function(
15885
16054
  var TypeBlock$1 = (0, import_lib3.$T)((0, import_lib3.$S)((0, import_lib3.$N)(EOS), Type), function(value) {
15886
16055
  return value[1];
15887
16056
  });
15888
- var TypeBlock$2 = (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) {
16057
+ var TypeBlock$2 = NestedInterfaceBlock;
16058
+ var TypeBlock$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) {
15889
16059
  if (!$2)
15890
16060
  return $skip;
15891
16061
  return $2;
15892
16062
  });
15893
- var TypeBlock$$ = [TypeBlock$0, TypeBlock$1, TypeBlock$2];
16063
+ var TypeBlock$$ = [TypeBlock$0, TypeBlock$1, TypeBlock$2, TypeBlock$3];
15894
16064
  function TypeBlock(ctx, state2) {
15895
16065
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeBlock", TypeBlock$$);
15896
16066
  }
@@ -15934,10 +16104,13 @@ var TypeLiteral$2 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EX
15934
16104
  var TypeLiteral$3 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L208, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15935
16105
  return { type: "VoidType", $loc, token: $1 };
15936
16106
  });
15937
- var TypeLiteral$4 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L227, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
16107
+ var TypeLiteral$4 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L227, 'TypeLiteral "unique"'), _, (0, import_lib3.$EXPECT)($L228, 'TypeLiteral "symbol"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
16108
+ return { type: "UniqueSymbolType", children: $0 };
16109
+ });
16110
+ var TypeLiteral$5 = (0, import_lib3.$TV)((0, import_lib3.$EXPECT)($L229, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
15938
16111
  return { $loc, token: "[]" };
15939
16112
  });
15940
- var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4];
16113
+ var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4, TypeLiteral$5];
15941
16114
  function TypeLiteral(ctx, state2) {
15942
16115
  return (0, import_lib3.$EVENT_C)(ctx, state2, "TypeLiteral", TypeLiteral$$);
15943
16116
  }
@@ -16060,7 +16233,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
16060
16233
  function CivetPrologue(ctx, state2) {
16061
16234
  return (0, import_lib3.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
16062
16235
  }
16063
- var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L228, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R89, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16236
+ var CivetPrologueContent$0 = (0, import_lib3.$TS)((0, import_lib3.$S)((0, import_lib3.$EXPECT)($L230, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib3.$Q)(CivetOption), (0, import_lib3.$EXPECT)($R89, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16064
16237
  var options = $3;
16065
16238
  return {
16066
16239
  type: "CivetPrologue",