@makano/rew 1.3.2 → 1.3.4

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/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",