@danielx/civet 0.8.3 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.mjs CHANGED
@@ -28,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  mod
29
29
  ));
30
30
 
31
- // node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js
31
+ // node_modules/@danielx/hera/dist/machine.js
32
32
  var require_machine = __commonJS({
33
- "node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js"(exports, module) {
33
+ "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
34
34
  "use strict";
35
35
  var __defProp2 = Object.defineProperty;
36
36
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -60,7 +60,7 @@ var require_machine = __commonJS({
60
60
  $N: () => $N2,
61
61
  $P: () => $P2,
62
62
  $Q: () => $Q2,
63
- $R: () => $R100,
63
+ $R: () => $R101,
64
64
  $R$0: () => $R$02,
65
65
  $S: () => $S2,
66
66
  $T: () => $T2,
@@ -97,7 +97,7 @@ var require_machine = __commonJS({
97
97
  return;
98
98
  };
99
99
  }
100
- function $R100(regExp) {
100
+ function $R101(regExp) {
101
101
  return function(_ctx, state2) {
102
102
  const { input, pos } = state2;
103
103
  regExp.lastIndex = state2.pos;
@@ -543,6 +543,7 @@ __export(lib_exports, {
543
543
  processForInOf: () => processForInOf,
544
544
  processProgram: () => processProgram,
545
545
  processProgramAsync: () => processProgramAsync,
546
+ processRangeExpression: () => processRangeExpression,
546
547
  processTryBlock: () => processTryBlock,
547
548
  processUnaryExpression: () => processUnaryExpression,
548
549
  processUnaryNestedExpression: () => processUnaryNestedExpression,
@@ -571,6 +572,13 @@ var assert = {
571
572
  if (a === b) {
572
573
  throw new Error(`Assertion failed [${msg}]: ${a} === ${b}`);
573
574
  }
575
+ },
576
+ notNull(a, msg) {
577
+ if (!(a != null)) {
578
+ throw new Error(`Assertion failed [${msg}]: got null`);
579
+ }
580
+ ;
581
+ return;
574
582
  }
575
583
  };
576
584
  function addParentPointers(node, parent) {
@@ -1030,6 +1038,9 @@ function makeLeftHandSideExpression(expression) {
1030
1038
  expression = item;
1031
1039
  }
1032
1040
  if (isASTNodeObject(expression)) {
1041
+ if (expression.token) {
1042
+ return expression;
1043
+ }
1033
1044
  if (expression.parenthesized) {
1034
1045
  return expression;
1035
1046
  }
@@ -1552,86 +1563,90 @@ function gatherBindingPatternTypeSuffix(pattern) {
1552
1563
  let count = 0;
1553
1564
  switch (pattern.type) {
1554
1565
  case "ArrayBindingPattern": {
1555
- const results = [];
1556
- for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1557
- const elem = ref2[i2];
1558
- let { typeSuffix } = elem;
1559
- typeSuffix ??= elem.binding?.typeSuffix;
1560
- if (typeSuffix) {
1561
- count++;
1562
- }
1563
- let typeElement = [typeSuffix?.t, elem.delim];
1564
- if (typeSuffix?.optional) {
1565
- typeElement[0] = parenthesizeType(typeElement[0]);
1566
- typeElement.unshift("undefined |");
1566
+ {
1567
+ const results = [];
1568
+ for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1569
+ const elem = ref2[i2];
1570
+ let { typeSuffix } = elem;
1571
+ typeSuffix ??= elem.binding?.typeSuffix;
1572
+ if (typeSuffix) {
1573
+ count++;
1574
+ }
1575
+ let typeElement = [typeSuffix?.t, elem.delim];
1576
+ if (typeSuffix?.optional) {
1577
+ typeElement[0] = parenthesizeType(typeElement[0]);
1578
+ typeElement.unshift("undefined |");
1579
+ }
1580
+ if (elem.type === "BindingRestElement") {
1581
+ typeElement[0] ??= "unknown[]";
1582
+ typeElement.unshift(elem.dots);
1583
+ } else {
1584
+ typeElement[0] ??= "unknown";
1585
+ }
1586
+ results.push(typeElement);
1567
1587
  }
1568
- if (elem.type === "BindingRestElement") {
1569
- typeElement[0] ??= "unknown[]";
1570
- typeElement.unshift(elem.dots);
1571
- } else {
1572
- typeElement[0] ??= "unknown";
1588
+ ;
1589
+ const types = results;
1590
+ if (count) {
1591
+ const t = [": [", types, "]"];
1592
+ pattern.typeSuffix = {
1593
+ type: "TypeSuffix",
1594
+ ts: true,
1595
+ t,
1596
+ children: [t]
1597
+ };
1573
1598
  }
1574
- results.push(typeElement);
1575
- }
1576
- ;
1577
- const types = results;
1578
- if (count) {
1579
- const t = [": [", types, "]"];
1580
- pattern.typeSuffix = {
1581
- type: "TypeSuffix",
1582
- ts: true,
1583
- t,
1584
- children: [t]
1585
- };
1586
1599
  }
1587
1600
  ;
1588
1601
  break;
1589
1602
  }
1590
1603
  case "ObjectBindingPattern": {
1591
- let restType;
1592
- const results1 = [];
1593
- for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1594
- const prop = ref3[i3];
1595
- let { typeSuffix } = prop;
1596
- typeSuffix ??= prop.value?.typeSuffix;
1597
- if (typeSuffix) {
1598
- count++;
1599
- }
1600
- typeSuffix ??= {
1601
- type: "TypeSuffix",
1602
- ts: true,
1603
- children: [": unknown"]
1604
- };
1605
- switch (prop.type) {
1606
- case "BindingProperty": {
1607
- const ws = prop.children.slice(0, prop.children.indexOf(prop.name));
1608
- results1.push([...ws, prop.name, typeSuffix, prop.delim]);
1609
- break;
1610
- }
1611
- case "AtBindingProperty": {
1612
- const ws = prop.children.slice(0, prop.children.indexOf(prop.binding));
1613
- results1.push([...ws, prop.ref.id, typeSuffix, prop.delim]);
1614
- break;
1604
+ {
1605
+ let restType;
1606
+ const results1 = [];
1607
+ for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1608
+ const prop = ref3[i3];
1609
+ let { typeSuffix } = prop;
1610
+ typeSuffix ??= prop.value?.typeSuffix;
1611
+ if (typeSuffix) {
1612
+ count++;
1615
1613
  }
1616
- case "BindingRestProperty": {
1617
- restType = prop.typeSuffix?.t;
1618
- continue;
1614
+ typeSuffix ??= {
1615
+ type: "TypeSuffix",
1616
+ ts: true,
1617
+ children: [": unknown"]
1618
+ };
1619
+ switch (prop.type) {
1620
+ case "BindingProperty": {
1621
+ const ws = prop.children.slice(0, prop.children.indexOf(prop.name));
1622
+ results1.push([...ws, prop.name, typeSuffix, prop.delim]);
1623
+ break;
1624
+ }
1625
+ case "AtBindingProperty": {
1626
+ const ws = prop.children.slice(0, prop.children.indexOf(prop.binding));
1627
+ results1.push([...ws, prop.ref.id, typeSuffix, prop.delim]);
1628
+ break;
1629
+ }
1630
+ case "BindingRestProperty": {
1631
+ restType = prop.typeSuffix?.t;
1632
+ continue;
1633
+ }
1619
1634
  }
1620
1635
  }
1621
- }
1622
- ;
1623
- const types = results1;
1624
- if (count) {
1625
- const t = ["{", types, "}"];
1626
- if (restType != null) {
1627
- t.push(" & ", parenthesizeType(trimFirstSpace(restType)));
1636
+ ;
1637
+ const types = results1;
1638
+ if (count) {
1639
+ const t = ["{", types, "}"];
1640
+ if (restType != null) {
1641
+ t.push(" & ", parenthesizeType(trimFirstSpace(restType)));
1642
+ }
1643
+ pattern.typeSuffix = {
1644
+ type: "TypeSuffix",
1645
+ ts: true,
1646
+ t,
1647
+ children: [": ", t]
1648
+ };
1628
1649
  }
1629
- pattern.typeSuffix = {
1630
- type: "TypeSuffix",
1631
- ts: true,
1632
- t,
1633
- children: [": ", t]
1634
- };
1635
1650
  }
1636
1651
  ;
1637
1652
  break;
@@ -1701,6 +1716,34 @@ var declareHelper = {
1701
1716
  "\n"
1702
1717
  ]]);
1703
1718
  },
1719
+ rslice(rsliceRef) {
1720
+ const RSliceable = makeRef("RSliceable");
1721
+ state.prelude.push(["", [
1722
+ ts(["type ", RSliceable, "<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}\n"]),
1723
+ preludeVar,
1724
+ rsliceRef,
1725
+ ts([": <R, T extends string | ", RSliceable, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceable, "<infer R> ? R : never"]),
1726
+ " = ((a, start, end) => {\n",
1727
+ " const l = a.length\n",
1728
+ " start = ",
1729
+ getHelperRef("modulo"),
1730
+ "(start ?? -1, l)\n",
1731
+ " end = ",
1732
+ getHelperRef("modulo"),
1733
+ "((end ?? -1) + 1, l)\n",
1734
+ " if (typeof a === 'string') {\n",
1735
+ ` let r = ""
1736
+ `,
1737
+ " for (let i = start; i >= end; --i) r += a[i]\n",
1738
+ " return r",
1739
+ asAny,
1740
+ "\n",
1741
+ " } else {\n",
1742
+ " return a.slice(end, start + 1).reverse()\n",
1743
+ " }\n",
1744
+ "});\n"
1745
+ ]]);
1746
+ },
1704
1747
  div(divRef) {
1705
1748
  state.prelude.push(["", [
1706
1749
  // [indent, statement]
@@ -1827,6 +1870,9 @@ function getHelperRef(base) {
1827
1870
  declareHelper[base](ref);
1828
1871
  return state.helperRefs[base] = ref;
1829
1872
  }
1873
+ function peekHelperRef(base) {
1874
+ return state.helperRefs[base];
1875
+ }
1830
1876
  function extractPreludeFor(node) {
1831
1877
  let helpers = new Set(Object.values(state.helperRefs));
1832
1878
  helpers = new Set(gatherRecursive(node, helpers.has.bind(helpers)));
@@ -1870,6 +1916,9 @@ function gen(root, options) {
1870
1916
  let ref;
1871
1917
  if (ref = options.sourceMap) {
1872
1918
  const sourceMap = ref;
1919
+ if (node.$loc != null) {
1920
+ sourceMap.updateSourceMap("", node.$loc.pos);
1921
+ }
1873
1922
  line = sourceMap.data.srcLine + 1;
1874
1923
  column = sourceMap.data.srcColumn + 1;
1875
1924
  offset = sourceMap.data.srcOffset;
@@ -2494,7 +2543,7 @@ function assignResults(node, collect) {
2494
2543
  case "IterationStatement":
2495
2544
  case "DoStatement":
2496
2545
  case "ComptimeStatement": {
2497
- wrapIterationReturningResults(exp, outer, collect);
2546
+ wrapIterationReturningResults(exp, collect);
2498
2547
  return;
2499
2548
  }
2500
2549
  case "BlockStatement": {
@@ -2534,7 +2583,7 @@ function assignResults(node, collect) {
2534
2583
  }
2535
2584
  node[1] = collect(node[1]);
2536
2585
  }
2537
- function insertReturn(node, outerNode = node) {
2586
+ function insertReturn(node) {
2538
2587
  if (!node)
2539
2588
  return;
2540
2589
  switch (node.type) {
@@ -2642,7 +2691,7 @@ function insertReturn(node, outerNode = node) {
2642
2691
  case "IterationStatement":
2643
2692
  case "DoStatement":
2644
2693
  case "ComptimeStatement": {
2645
- wrapIterationReturningResults(exp, outer);
2694
+ wrapIterationReturningResults(exp);
2646
2695
  return;
2647
2696
  }
2648
2697
  case "BlockStatement": {
@@ -2738,11 +2787,11 @@ function processBreakContinueWith(statement) {
2738
2787
  }
2739
2788
  return changed;
2740
2789
  }
2741
- function wrapIterationReturningResults(statement, outer, collect) {
2790
+ function wrapIterationReturningResults(statement, collect) {
2742
2791
  if (statement.type === "DoStatement" || statement.type === "ComptimeStatement") {
2743
2792
  let results;
2744
2793
  if (statement.type === "ComptimeStatement") {
2745
- insertReturn(statement.block, outer);
2794
+ insertReturn(statement.block);
2746
2795
  const expression = expressionizeComptime(statement);
2747
2796
  replaceNode(statement, expression);
2748
2797
  const parent = expression.parent;
@@ -2758,7 +2807,7 @@ function wrapIterationReturningResults(statement, outer, collect) {
2758
2807
  if (collect) {
2759
2808
  assignResults(results, collect);
2760
2809
  } else {
2761
- insertReturn(results, outer);
2810
+ insertReturn(results);
2762
2811
  }
2763
2812
  return;
2764
2813
  }
@@ -2768,6 +2817,27 @@ function wrapIterationReturningResults(statement, outer, collect) {
2768
2817
  "wrapIterationReturningResults should not be called twice on the same statement"
2769
2818
  );
2770
2819
  const resultsRef = statement.resultsRef = makeRef("results");
2820
+ const { declaration, breakWithOnly } = iterationDeclaration(statement);
2821
+ const { ancestor, child } = findAncestor(statement, ($4) => $4.type === "BlockStatement");
2822
+ assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
2823
+ const index = findChildIndex(ancestor.expressions, child);
2824
+ const iterationTuple = ancestor.expressions[index];
2825
+ ancestor.expressions.splice(index, 0, [iterationTuple[0], declaration, ";"]);
2826
+ iterationTuple[0] = "";
2827
+ braceBlock(ancestor);
2828
+ if (!breakWithOnly) {
2829
+ assignResults(statement.block, (node) => {
2830
+ return [resultsRef, ".push(", node, ")"];
2831
+ });
2832
+ }
2833
+ if (collect) {
2834
+ statement.children.push(collect(resultsRef));
2835
+ } else {
2836
+ statement.children.push(";return ", resultsRef, ";");
2837
+ }
2838
+ }
2839
+ function iterationDeclaration(statement) {
2840
+ const { resultsRef } = statement;
2771
2841
  let decl = "const";
2772
2842
  if (statement.type === "IterationStatement" || statement.type === "ForStatement") {
2773
2843
  if (processBreakContinueWith(statement)) {
@@ -2793,17 +2863,7 @@ function wrapIterationReturningResults(statement, outer, collect) {
2793
2863
  declaration.children.push(";", resultsRef, "=[]");
2794
2864
  }
2795
2865
  }
2796
- outer.children.unshift(["", declaration, ";"]);
2797
- if (!breakWithOnly) {
2798
- assignResults(statement.block, (node) => {
2799
- return [resultsRef, ".push(", node, ")"];
2800
- });
2801
- }
2802
- if (collect) {
2803
- statement.children.push(collect(resultsRef));
2804
- } else {
2805
- statement.children.push(";return ", resultsRef, ";");
2806
- }
2866
+ return { declaration, breakWithOnly };
2807
2867
  }
2808
2868
  function processParams(f) {
2809
2869
  const { type, parameters, block } = f;
@@ -2828,9 +2888,9 @@ function processParams(f) {
2828
2888
  injectParamProps: isConstructor
2829
2889
  });
2830
2890
  if (isConstructor) {
2831
- const { ancestor } = findAncestor(f, ($4) => $4.type === "ClassExpression");
2891
+ const { ancestor } = findAncestor(f, ($5) => $5.type === "ClassExpression");
2832
2892
  if (ancestor != null) {
2833
- const fields = new Set(gatherRecursiveWithinFunction(ancestor, ($5) => $5.type === "FieldDefinition").map(($6) => $6.id).filter((a) => typeof a === "object" && a != null && "type" in a && a.type === "Identifier").map(($7) => $7.name));
2893
+ const fields = new Set(gatherRecursiveWithinFunction(ancestor, ($6) => $6.type === "FieldDefinition").map(($7) => $7.id).filter((a) => typeof a === "object" && a != null && "type" in a && a.type === "Identifier").map(($8) => $8.name));
2834
2894
  const classExpressions = ancestor.body.expressions;
2835
2895
  let index = findChildIndex(classExpressions, f);
2836
2896
  assert.notEqual(index, -1, "Could not find constructor in class");
@@ -2839,12 +2899,12 @@ function processParams(f) {
2839
2899
  index--;
2840
2900
  }
2841
2901
  const fStatement = classExpressions[index];
2842
- for (let ref8 = gatherRecursive(parameters, ($8) => $8.type === "Parameter"), i1 = 0, len3 = ref8.length; i1 < len3; i1++) {
2902
+ for (let ref8 = gatherRecursive(parameters, ($9) => $9.type === "Parameter"), i1 = 0, len3 = ref8.length; i1 < len3; i1++) {
2843
2903
  const parameter = ref8[i1];
2844
2904
  if (!parameter.typeSuffix) {
2845
2905
  continue;
2846
2906
  }
2847
- for (let ref9 = gatherRecursive(parameter, ($9) => $9.type === "AtBinding"), i2 = 0, len1 = ref9.length; i2 < len1; i2++) {
2907
+ for (let ref9 = gatherRecursive(parameter, ($10) => $10.type === "AtBinding"), i2 = 0, len1 = ref9.length; i2 < len1; i2++) {
2848
2908
  const binding = ref9[i2];
2849
2909
  const typeSuffix = binding.parent?.typeSuffix;
2850
2910
  if (!typeSuffix) {
@@ -2856,7 +2916,6 @@ function processParams(f) {
2856
2916
  }
2857
2917
  classExpressions.splice(index++, 0, [fStatement[0], {
2858
2918
  type: "FieldDefinition",
2859
- ts: true,
2860
2919
  id,
2861
2920
  typeSuffix,
2862
2921
  children: [id, typeSuffix]
@@ -2905,8 +2964,8 @@ function processSignature(f) {
2905
2964
  }
2906
2965
  if (hasYield(block) && !f.generator?.length) {
2907
2966
  if (f.type === "ArrowFunction") {
2908
- gatherRecursiveWithinFunction(block, ($10) => $10.type === "YieldExpression").forEach((y) => {
2909
- const i = y.children.findIndex(($11) => $11.type === "Yield");
2967
+ gatherRecursiveWithinFunction(block, ($11) => $11.type === "YieldExpression").forEach((y) => {
2968
+ const i = y.children.findIndex(($12) => $12.type === "Yield");
2910
2969
  return y.children.splice(i + 1, 0, {
2911
2970
  type: "Error",
2912
2971
  message: "Can't use yield inside of => arrow function"
@@ -2934,12 +2993,12 @@ function processFunctions(statements, config2) {
2934
2993
  });
2935
2994
  }
2936
2995
  function expressionizeIteration(exp) {
2937
- const { async, generator, subtype, block, children, statement } = exp;
2996
+ let { async, generator, block, children, statement } = exp;
2938
2997
  const i = children.indexOf(statement);
2939
2998
  if (i < 0) {
2940
2999
  throw new Error("Could not find iteration statement in iteration expression");
2941
3000
  }
2942
- if (subtype === "DoStatement" || subtype === "ComptimeStatement") {
3001
+ if (statement.type === "DoStatement" || statement.type === "ComptimeStatement") {
2943
3002
  children.splice(i, 1, wrapIIFE([["", statement, void 0]], async, generator));
2944
3003
  updateParentPointers(exp);
2945
3004
  return;
@@ -2952,7 +3011,6 @@ function expressionizeIteration(exp) {
2952
3011
  children: ["yield ", node]
2953
3012
  };
2954
3013
  });
2955
- braceBlock(block);
2956
3014
  children.splice(
2957
3015
  i,
2958
3016
  1,
@@ -2967,17 +3025,19 @@ function expressionizeIteration(exp) {
2967
3025
  ], async, generator)
2968
3026
  );
2969
3027
  } else {
2970
- exp.resultsRef ??= makeRef("results");
2971
- const { resultsRef } = exp;
2972
- assignResults(block, (node) => {
2973
- return [resultsRef, ".push(", node, ")"];
2974
- });
2975
- braceBlock(block);
3028
+ const resultsRef = statement.resultsRef ??= makeRef("results");
3029
+ const { declaration, breakWithOnly } = iterationDeclaration(statement);
3030
+ if (!breakWithOnly) {
3031
+ assignResults(block, (node) => {
3032
+ return [resultsRef, ".push(", node, ")"];
3033
+ });
3034
+ braceBlock(block);
3035
+ }
2976
3036
  children.splice(
2977
3037
  i,
2978
3038
  1,
2979
3039
  wrapIIFE([
2980
- ["", ["const ", resultsRef, "=[]"], ";"],
3040
+ ["", declaration, ";"],
2981
3041
  ["", statement, void 0],
2982
3042
  ["", wrapWithReturn(resultsRef)]
2983
3043
  ], async)
@@ -3033,7 +3093,7 @@ function processCoffeeDo(ws, expression) {
3033
3093
  expression = {
3034
3094
  ...expression,
3035
3095
  parameters: newParameters,
3036
- children: expression.children.map(($12) => $12 === parameters ? newParameters : $12)
3096
+ children: expression.children.map(($13) => $13 === parameters ? newParameters : $13)
3037
3097
  };
3038
3098
  }
3039
3099
  return {
@@ -3055,7 +3115,7 @@ function makeAmpersandFunction(rhs) {
3055
3115
  ref = makeRef("$");
3056
3116
  inplacePrepend(ref, body);
3057
3117
  }
3058
- if (startsWithPredicate(body, ($13) => $13.type === "ObjectExpression")) {
3118
+ if (startsWithPredicate(body, ($14) => $14.type === "ObjectExpression")) {
3059
3119
  body = makeLeftHandSideExpression(body);
3060
3120
  }
3061
3121
  const parameters = makeNode({
@@ -4160,8 +4220,7 @@ function prependStatementExpressionBlock(initializer, statement) {
4160
4220
  };
4161
4221
  pre.unshift(refDec);
4162
4222
  } else {
4163
- wrapIterationReturningResults(statement2, { children: blockStatement }, function() {
4164
- });
4223
+ wrapIterationReturningResults(statement2, () => void 0);
4165
4224
  ref = initializer.expression = initializer.children[2] = statement2.resultsRef;
4166
4225
  }
4167
4226
  } else {
@@ -4917,22 +4976,168 @@ function processPipelineExpressions(statements) {
4917
4976
  }
4918
4977
 
4919
4978
  // source/parser/for.civet
4979
+ function processRangeExpression(start, ws1, range, end) {
4980
+ ws1 = [ws1, range.children[0]];
4981
+ const ws2 = range.children[1];
4982
+ const comma = { $loc: range.$loc, token: "," };
4983
+ let ref;
4984
+ switch (range.increasing) {
4985
+ case true: {
4986
+ ref = ($) => $;
4987
+ break;
4988
+ }
4989
+ case false: {
4990
+ ref = ($1) => -$1;
4991
+ break;
4992
+ }
4993
+ default: {
4994
+ ref = Math.abs;
4995
+ }
4996
+ }
4997
+ ;
4998
+ const abs = ref;
4999
+ const lengthAdjust = 1 - Number(!range.left.inclusive) - Number(!range.right.inclusive);
5000
+ let ref1;
5001
+ if (lengthAdjust > 0)
5002
+ ref1 = ` + ${lengthAdjust}`;
5003
+ else if (lengthAdjust < 0)
5004
+ ref1 = ` - ${-lengthAdjust}`;
5005
+ else {
5006
+ ref1 = void 0;
5007
+ }
5008
+ ;
5009
+ const lengthAdjustExpression = ref1;
5010
+ let children;
5011
+ if (typeof start === "object" && start != null && "type" in start && start.type === "Literal" && (typeof end === "object" && end != null && "type" in end && end.type === "Literal")) {
5012
+ let startValue = literalValue(start);
5013
+ let endValue = literalValue(end);
5014
+ if (typeof startValue === "string" && typeof endValue === "string") {
5015
+ if (!(startValue.length === 1 && 1 === endValue.length)) {
5016
+ throw new Error("String range start and end must be a single character");
5017
+ }
5018
+ let startCode = startValue.charCodeAt(0);
5019
+ let endCode = endValue.charCodeAt(0);
5020
+ const step = startCode <= endCode ? 1 : -1;
5021
+ const length = abs(endCode - startCode) + lengthAdjust;
5022
+ if (!range.left.inclusive) {
5023
+ startCode += step;
5024
+ }
5025
+ if (length <= 26) {
5026
+ children = [
5027
+ "[",
5028
+ Array.from({ length }, (_2, i) => {
5029
+ return JSON.stringify(String.fromCharCode(startCode + i * step));
5030
+ }).join(", "),
5031
+ "]"
5032
+ ];
5033
+ } else {
5034
+ children = [
5035
+ `Array.from({length: ${length.toString()}}, `,
5036
+ "(_, i) => String.fromCharCode(",
5037
+ startCode.toString(),
5038
+ step > 0 ? " + " : " - ",
5039
+ "i))"
5040
+ ];
5041
+ }
5042
+ if (range.error != null) {
5043
+ children.unshift(range.error);
5044
+ }
5045
+ } else if (typeof startValue === "number" && typeof endValue === "number") {
5046
+ const step = startValue <= endValue ? 1 : -1;
5047
+ const length = abs(endValue - startValue) + lengthAdjust;
5048
+ if (!range.left.inclusive) {
5049
+ startValue += step;
5050
+ }
5051
+ if (length <= 20) {
5052
+ children = [
5053
+ "[",
5054
+ Array.from({ length }, (_2, i) => startValue + i * step).join(", "),
5055
+ "]"
5056
+ ];
5057
+ if (range.error != null) {
5058
+ children.unshift(range.error);
5059
+ }
5060
+ }
5061
+ }
5062
+ }
5063
+ if (!(children != null)) {
5064
+ if (range.increasing != null) {
5065
+ const sign = range.increasing ? "+" : "-";
5066
+ end = makeLeftHandSideExpression(end);
5067
+ children = [
5068
+ "((s) => Array.from({length: ",
5069
+ range.increasing ? [ws2, end, " - s"] : ["s - ", ws2, end],
5070
+ lengthAdjustExpression,
5071
+ "}, (_, i) => s ",
5072
+ sign,
5073
+ " i))",
5074
+ "(",
5075
+ range.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
5076
+ ...ws1,
5077
+ ")"
5078
+ ];
5079
+ } else {
5080
+ children = [
5081
+ "((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)",
5082
+ lengthAdjustExpression,
5083
+ "}, (_, i) => s + i * step)})",
5084
+ "(",
5085
+ start,
5086
+ ...ws1,
5087
+ comma,
5088
+ ws2,
5089
+ end,
5090
+ ")"
5091
+ ];
5092
+ }
5093
+ }
5094
+ return {
5095
+ type: "RangeExpression",
5096
+ children,
5097
+ start,
5098
+ end,
5099
+ error: range.error,
5100
+ left: range.left,
5101
+ right: range.right,
5102
+ increasing: range.increasing
5103
+ };
5104
+ }
4920
5105
  function forRange(open, forDeclaration, range, stepExp, close) {
4921
- const { start, end, inclusive } = range;
5106
+ const { start, end, left, right, increasing } = range;
4922
5107
  const counterRef = makeRef("i");
4923
- const infinite = end.type === "Identifier" && end.name === "Infinity";
4924
- let stepRef;
5108
+ const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5109
+ let stepRef, asc;
4925
5110
  if (stepExp) {
4926
5111
  stepExp = insertTrimmingSpace(stepExp, "");
4927
5112
  stepRef = maybeRef(stepExp, "step");
4928
5113
  } else if (infinite) {
4929
5114
  stepExp = stepRef = "1";
5115
+ } else if (increasing != null) {
5116
+ if (increasing) {
5117
+ stepExp = stepRef = "1";
5118
+ asc = true;
5119
+ } else {
5120
+ stepExp = stepRef = "-1";
5121
+ asc = false;
5122
+ }
4930
5123
  }
4931
- let startRef = maybeRef(start, "start");
5124
+ let ref2;
5125
+ if (stepRef)
5126
+ ref2 = start;
5127
+ else
5128
+ ref2 = maybeRef(start, "start");
5129
+ let startRef = ref2;
4932
5130
  let endRef = maybeRef(end, "end");
4933
5131
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
4934
5132
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
4935
- let ascDec = [], ascRef, asc;
5133
+ if (!left.inclusive) {
5134
+ startRef = [
5135
+ makeLeftHandSideExpression(start),
5136
+ " + ",
5137
+ stepRef
5138
+ ];
5139
+ }
5140
+ let ascDec = [], ascRef;
4936
5141
  if (stepRef) {
4937
5142
  if (!(stepRef === stepExp)) {
4938
5143
  ascDec = [", ", stepRef, " = ", stepExp];
@@ -4967,12 +5172,12 @@ function forRange(open, forDeclaration, range, stepExp, close) {
4967
5172
  children: ["let ", ...startRefDec, ...endRefDec, counterRef, " = ", ...varLetAssign, startRef, ...varLet, ...ascDec],
4968
5173
  names: forDeclaration?.names
4969
5174
  };
4970
- const counterPart = inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
4971
- const condition = infinite ? [] : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : ascRef ? [ascRef, " ? ", ...counterPart] : asc ? counterPart.slice(0, 3) : counterPart.slice(4);
4972
- const increment = infinite ? [...varAssign, "++", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
5175
+ const counterPart = right.inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
5176
+ const condition = infinite ? [] : asc != null ? asc ? counterPart.slice(0, 3) : counterPart.slice(4) : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : [ascRef, " ? ", ...counterPart];
5177
+ const increment = stepRef === "1" ? [...varAssign, "++", counterRef] : stepRef === "-1" ? [...varAssign, "--", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
4973
5178
  return {
4974
5179
  declaration,
4975
- children: [open, declaration, "; ", ...condition, "; ", ...increment, close],
5180
+ children: [range.error, open, declaration, "; ", ...condition, "; ", ...increment, close],
4976
5181
  blockPrefix
4977
5182
  };
4978
5183
  }
@@ -5614,7 +5819,131 @@ function handleThisPrivateShorthands(value) {
5614
5819
  return [value, value.thisShorthand];
5615
5820
  }
5616
5821
  function processTryBlock($0) {
5617
- let [t, , b, c, e, f] = $0;
5822
+ let [t, , b, cs, e, f] = $0;
5823
+ let c;
5824
+ let m;
5825
+ if (cs.some(($) => (m = $.binding?.parameter, typeof m === "object" && m != null && "type" in m && m.type === "CatchPattern"))) {
5826
+ const ref = makeRef("e");
5827
+ const binding = {
5828
+ type: "CatchBinding",
5829
+ children: ["(", ref, ")"],
5830
+ parameter: ref
5831
+ };
5832
+ const condition = {
5833
+ type: "ParenthesizedExpression",
5834
+ children: ["(", ref, ")"],
5835
+ expression: ref
5836
+ };
5837
+ let defaultClause = false;
5838
+ const clauses = cs.map((clause) => {
5839
+ let ref1;
5840
+ if ((ref1 = clause.binding?.parameter) && typeof ref1 === "object" && "type" in ref1 && ref1.type === "CatchPattern" && "patterns" in ref1) {
5841
+ const { type, patterns } = ref1;
5842
+ return {
5843
+ type: "PatternClause",
5844
+ patterns,
5845
+ block: clause.block,
5846
+ children: [patterns, clause.block]
5847
+ };
5848
+ } else {
5849
+ defaultClause = true;
5850
+ const parameter = clause.binding?.parameter;
5851
+ if (parameter != null) {
5852
+ assert.equal(
5853
+ parameter.type,
5854
+ "CatchParameter",
5855
+ `Invalid catch parameter ${parameter.type}`
5856
+ );
5857
+ const { binding: pattern, typeSuffix } = parameter;
5858
+ const initializer = {
5859
+ type: "Initializer",
5860
+ expression: ref,
5861
+ children: ["", " = ", ref]
5862
+ };
5863
+ const bindings = [{
5864
+ type: "Binding",
5865
+ names: pattern.names,
5866
+ pattern,
5867
+ typeSuffix,
5868
+ initializer,
5869
+ children: [pattern, typeSuffix, initializer],
5870
+ splices: [],
5871
+ thisAssignments: []
5872
+ }];
5873
+ clause.block.expressions.unshift(["", {
5874
+ type: "Declaration",
5875
+ children: ["let", " ", bindings],
5876
+ bindings,
5877
+ names: bindings[0].names,
5878
+ decl: "let"
5879
+ }, ";"]);
5880
+ }
5881
+ return {
5882
+ type: "DefaultClause",
5883
+ block: clause.block,
5884
+ children: ["default: ", clause.block]
5885
+ };
5886
+ }
5887
+ });
5888
+ if (!defaultClause) {
5889
+ const expressions = [[
5890
+ "",
5891
+ {
5892
+ type: "ThrowStatement",
5893
+ children: ["throw", " ", ref]
5894
+ }
5895
+ ]];
5896
+ const block2 = {
5897
+ type: "BlockStatement",
5898
+ expressions,
5899
+ children: [" {", expressions, "}"],
5900
+ bare: false
5901
+ };
5902
+ clauses.push({
5903
+ type: "DefaultClause",
5904
+ block: block2,
5905
+ children: ["default: ", block2]
5906
+ });
5907
+ }
5908
+ const caseBlock = {
5909
+ type: "CaseBlock",
5910
+ clauses,
5911
+ children: [" {", clauses, "}"]
5912
+ };
5913
+ const patternSwitch = {
5914
+ type: "SwitchStatement",
5915
+ condition,
5916
+ caseBlock,
5917
+ children: ["switch", condition, caseBlock]
5918
+ };
5919
+ const block = {
5920
+ type: "BlockStatement",
5921
+ bare: false,
5922
+ expressions: [["", patternSwitch]],
5923
+ children: [" {", patternSwitch, "}"]
5924
+ };
5925
+ c = makeNode({
5926
+ type: "CatchClause",
5927
+ children: [
5928
+ cs[0].children[0],
5929
+ // whitespace
5930
+ cs[0].children[1],
5931
+ // catch token
5932
+ binding,
5933
+ block
5934
+ ],
5935
+ binding,
5936
+ block
5937
+ });
5938
+ } else {
5939
+ c = cs[0];
5940
+ if (cs.length > 1) {
5941
+ c = append(c, {
5942
+ type: "Error",
5943
+ message: "Only one catch clause allowed unless using pattern matching"
5944
+ });
5945
+ }
5946
+ }
5618
5947
  if (!c && (e || !f)) {
5619
5948
  const emptyCatchBlock = makeEmptyBlock();
5620
5949
  c = {
@@ -5713,8 +6042,9 @@ function processCallMemberExpression(node) {
5713
6042
  }
5714
6043
  }
5715
6044
  }
5716
- for (let i = 0; i < children.length; i++) {
5717
- const glob = children[i];
6045
+ for (let i3 = 0, len22 = children.length; i3 < len22; i3++) {
6046
+ const i = i3;
6047
+ const glob = children[i3];
5718
6048
  if (glob?.type === "PropertyGlob") {
5719
6049
  let prefix = children.slice(0, i);
5720
6050
  const parts = [];
@@ -5785,14 +6115,14 @@ function processCallMemberExpression(node) {
5785
6115
  });
5786
6116
  }
5787
6117
  }
5788
- let ref1;
6118
+ let ref2;
5789
6119
  let object = {
5790
6120
  type: "ObjectExpression",
5791
6121
  children: [
5792
6122
  glob.object.children[0],
5793
6123
  // {
5794
6124
  ...parts,
5795
- (ref1 = glob.object.children)[ref1.length - 1]
6125
+ (ref2 = glob.object.children)[ref2.length - 1]
5796
6126
  // whitespace and }
5797
6127
  ],
5798
6128
  properties: parts,
@@ -5834,6 +6164,33 @@ function processCallMemberExpression(node) {
5834
6164
  ...children.slice(i + 1)
5835
6165
  ]
5836
6166
  });
6167
+ } else if (typeof glob === "object" && glob != null && "type" in glob && glob.type === "SliceExpression" && "reversed" in glob && glob.reversed === true) {
6168
+ const args = [
6169
+ { ...node, children: node.children.slice(0, i) },
6170
+ { ...glob.children[0], token: ", " },
6171
+ ...glob.children.slice(1, -1)
6172
+ ];
6173
+ let ref3;
6174
+ return makeNode({
6175
+ ...node,
6176
+ children: [
6177
+ {
6178
+ type: "CallExpression",
6179
+ children: [
6180
+ getHelperRef("rslice"),
6181
+ makeNode({
6182
+ type: "Call",
6183
+ args,
6184
+ children: [
6185
+ "(",
6186
+ args,
6187
+ (ref3 = glob.children)[ref3.length - 1]
6188
+ ]
6189
+ })
6190
+ ]
6191
+ }
6192
+ ]
6193
+ });
5837
6194
  }
5838
6195
  }
5839
6196
  return node;
@@ -5844,9 +6201,9 @@ function replaceNode(node, newNode, parent) {
5844
6201
  throw new Error("replaceNode failed: node has no parent");
5845
6202
  }
5846
6203
  function recurse(children) {
5847
- for (let i3 = 0, len22 = children.length; i3 < len22; i3++) {
5848
- const i = i3;
5849
- const child = children[i3];
6204
+ for (let i4 = 0, len3 = children.length; i4 < len3; i4++) {
6205
+ const i = i4;
6206
+ const child = children[i4];
5850
6207
  if (child === node) {
5851
6208
  children[i] = newNode;
5852
6209
  return true;
@@ -5938,8 +6295,8 @@ function convertNamedImportsToObject(node, pattern) {
5938
6295
  return { type: "Error", message: "cannot use `type` in dynamic import" };
5939
6296
  } else {
5940
6297
  const { source, binding } = specifier;
5941
- let ref2;
5942
- const delim = (ref2 = specifier.children)[ref2.length - 1];
6298
+ let ref4;
6299
+ const delim = (ref4 = specifier.children)[ref4.length - 1];
5943
6300
  return {
5944
6301
  type: pattern ? "BindingProperty" : "Property",
5945
6302
  name: source,
@@ -5949,7 +6306,7 @@ function convertNamedImportsToObject(node, pattern) {
5949
6306
  };
5950
6307
  }
5951
6308
  });
5952
- let ref3;
6309
+ let ref5;
5953
6310
  return {
5954
6311
  type: pattern ? "ObjectBindingPattern" : "ObjectExpression",
5955
6312
  names: node.names,
@@ -5958,7 +6315,7 @@ function convertNamedImportsToObject(node, pattern) {
5958
6315
  node.children[0],
5959
6316
  // {
5960
6317
  properties,
5961
- (ref3 = node.children)[ref3.length - 1]
6318
+ (ref5 = node.children)[ref5.length - 1]
5962
6319
  // }
5963
6320
  ]
5964
6321
  };
@@ -6064,8 +6421,8 @@ function processAssignments(statements) {
6064
6421
  while (expr.type === "ParenthesizedExpression") {
6065
6422
  expr = expr.expression;
6066
6423
  }
6067
- let m;
6068
- if (m = expr.type, m === "AssignmentExpression" || m === "UpdateExpression") {
6424
+ let m1;
6425
+ if (m1 = expr.type, m1 === "AssignmentExpression" || m1 === "UpdateExpression") {
6069
6426
  if (expr.type === "UpdateExpression" && expr.children[0] === expr.assigned) {
6070
6427
  pre.push("(");
6071
6428
  post.push([", ", lhs, ")"]);
@@ -6079,15 +6436,15 @@ function processAssignments(statements) {
6079
6436
  return;
6080
6437
  }
6081
6438
  const pre = [], post = [];
6082
- let ref4;
6439
+ let ref6;
6083
6440
  switch (exp.type) {
6084
6441
  case "AssignmentExpression": {
6085
6442
  if (!exp.lhs)
6086
6443
  return;
6087
6444
  exp.lhs.forEach((lhsPart, i) => {
6088
- let ref5;
6089
- if (ref5 = extractAssignment(lhsPart[1])) {
6090
- const newLhs = ref5;
6445
+ let ref7;
6446
+ if (ref7 = extractAssignment(lhsPart[1])) {
6447
+ const newLhs = ref7;
6091
6448
  return lhsPart[1] = newLhs;
6092
6449
  }
6093
6450
  ;
@@ -6096,8 +6453,8 @@ function processAssignments(statements) {
6096
6453
  break;
6097
6454
  }
6098
6455
  case "UpdateExpression": {
6099
- if (ref4 = extractAssignment(exp.assigned)) {
6100
- const newLhs = ref4;
6456
+ if (ref6 = extractAssignment(exp.assigned)) {
6457
+ const newLhs = ref6;
6101
6458
  const i = exp.children.indexOf(exp.assigned);
6102
6459
  exp.assigned = exp.children[i] = newLhs;
6103
6460
  }
@@ -6113,7 +6470,7 @@ function processAssignments(statements) {
6113
6470
  const { assigned } = exp;
6114
6471
  const ref = makeRef();
6115
6472
  const newMemberExp = unchainOptionalMemberExpression(assigned, ref, (children) => {
6116
- return exp.children.map(($) => $ === assigned ? children : $);
6473
+ return exp.children.map(($3) => $3 === assigned ? children : $3);
6117
6474
  });
6118
6475
  if (newMemberExp !== assigned) {
6119
6476
  if (newMemberExp.usesRef) {
@@ -6137,23 +6494,23 @@ function processAssignments(statements) {
6137
6494
  (exp) => {
6138
6495
  let { lhs: $1, expression: $2 } = exp, tail = [], len3 = $1.length;
6139
6496
  let block;
6140
- let ref6;
6141
- if (exp.parent?.type === "BlockStatement" && !(ref6 = $1[$1.length - 1])?.[ref6.length - 1]?.special) {
6497
+ let ref8;
6498
+ if (exp.parent?.type === "BlockStatement" && !(ref8 = $1[$1.length - 1])?.[ref8.length - 1]?.special) {
6142
6499
  block = makeBlockFragment();
6143
- let ref7;
6144
- if (ref7 = prependStatementExpressionBlock(
6500
+ let ref9;
6501
+ if (ref9 = prependStatementExpressionBlock(
6145
6502
  { type: "Initializer", expression: $2, children: [void 0, void 0, $2] },
6146
6503
  block
6147
6504
  )) {
6148
- const ref = ref7;
6149
- exp.children = exp.children.map(($3) => $3 === $2 ? ref : $3);
6505
+ const ref = ref9;
6506
+ exp.children = exp.children.map(($4) => $4 === $2 ? ref : $4);
6150
6507
  $2 = ref;
6151
6508
  } else {
6152
6509
  block = void 0;
6153
6510
  }
6154
6511
  }
6155
- let ref8;
6156
- if ($1.some(($4) => (ref8 = $4)[ref8.length - 1].special)) {
6512
+ let ref10;
6513
+ if ($1.some(($5) => (ref10 = $5)[ref10.length - 1].special)) {
6157
6514
  if ($1.length !== 1)
6158
6515
  throw new Error("Only one assignment with id= is allowed");
6159
6516
  const [, lhs, , op] = $1[0];
@@ -6178,8 +6535,8 @@ function processAssignments(statements) {
6178
6535
  if (!(op.token === "=")) {
6179
6536
  continue;
6180
6537
  }
6181
- let m1;
6182
- if (m1 = lhs.type, m1 === "ObjectExpression" || m1 === "ObjectBindingPattern") {
6538
+ let m2;
6539
+ if (m2 = lhs.type, m2 === "ObjectExpression" || m2 === "ObjectBindingPattern") {
6183
6540
  if (!wrapped) {
6184
6541
  wrapped = true;
6185
6542
  lhs.children.splice(0, 0, "(");
@@ -6193,10 +6550,17 @@ function processAssignments(statements) {
6193
6550
  const lastAssignment = $1[i];
6194
6551
  if (lastAssignment[3].token === "=") {
6195
6552
  const lhs = lastAssignment[1];
6196
- let m2;
6553
+ let m3;
6197
6554
  if (lhs.type === "MemberExpression") {
6198
6555
  const members = lhs.children;
6199
6556
  const lastMember = members[members.length - 1];
6557
+ if (typeof lastMember === "object" && lastMember != null && "type" in lastMember && lastMember.type === "CallExpression" && "children" in lastMember && Array.isArray(lastMember.children) && lastMember.children.length >= 1 && lastMember.children[0] === peekHelperRef("rslice")) {
6558
+ lastMember.children.push({
6559
+ type: "Error",
6560
+ message: "Slice range cannot be decreasing in assignment"
6561
+ });
6562
+ break;
6563
+ }
6200
6564
  if (lastMember.type === "SliceExpression") {
6201
6565
  const { start, end, children: c } = lastMember;
6202
6566
  c[0].token = ".splice(";
@@ -6219,9 +6583,9 @@ function processAssignments(statements) {
6219
6583
  exp.names = [];
6220
6584
  break;
6221
6585
  }
6222
- } else if (m2 = lhs.type, m2 === "ObjectBindingPattern" || m2 === "ArrayBindingPattern") {
6586
+ } else if (m3 = lhs.type, m3 === "ObjectBindingPattern" || m3 === "ArrayBindingPattern") {
6223
6587
  processBindingPatternLHS(lhs, tail);
6224
- gatherRecursiveAll(lhs, ($5) => $5.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare));
6588
+ gatherRecursiveAll(lhs, ($6) => $6.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare));
6225
6589
  }
6226
6590
  }
6227
6591
  i--;
@@ -6254,7 +6618,7 @@ function processAssignments(statements) {
6254
6618
  }
6255
6619
  if (refsToDeclare.size) {
6256
6620
  if (exp.hoistDec) {
6257
- exp.hoistDec.children.push([...refsToDeclare].map(($6) => [",", $6]));
6621
+ exp.hoistDec.children.push([...refsToDeclare].map(($7) => [",", $7]));
6258
6622
  } else {
6259
6623
  exp.hoistDec = {
6260
6624
  type: "Declaration",
@@ -6328,9 +6692,9 @@ function unchainOptionalMemberExpression(exp, ref, innerExp) {
6328
6692
  }
6329
6693
  j++;
6330
6694
  }
6331
- let ref9;
6332
- if (ref9 = conditions.length) {
6333
- const l = ref9;
6695
+ let ref11;
6696
+ if (ref11 = conditions.length) {
6697
+ const l = ref11;
6334
6698
  const cs = flatJoin(conditions, " && ");
6335
6699
  return {
6336
6700
  ...exp,
@@ -6369,27 +6733,27 @@ function processTypes(node) {
6369
6733
  if (!unary.suffix.length) {
6370
6734
  return;
6371
6735
  }
6372
- let ref10;
6373
- let m3;
6374
- if (m3 = (ref10 = unary.suffix)[ref10.length - 1], typeof m3 === "object" && m3 != null && "token" in m3 && m3.token === "?") {
6375
- const { token } = m3;
6736
+ let ref12;
6737
+ let m4;
6738
+ if (m4 = (ref12 = unary.suffix)[ref12.length - 1], typeof m4 === "object" && m4 != null && "token" in m4 && m4.token === "?") {
6739
+ const { token } = m4;
6376
6740
  let last;
6377
6741
  let count = 0;
6378
- let ref11;
6379
- while (unary.suffix.length && (ref11 = unary.suffix)[ref11.length - 1]?.token === "?") {
6742
+ let ref13;
6743
+ while (unary.suffix.length && (ref13 = unary.suffix)[ref13.length - 1]?.token === "?") {
6380
6744
  last = unary.suffix.pop();
6381
6745
  count++;
6382
6746
  }
6383
- let ref12;
6384
- while (unary.suffix.length && (ref12 = unary.suffix)[ref12.length - 1]?.type === "NonNullAssertion") {
6747
+ let ref14;
6748
+ while (unary.suffix.length && (ref14 = unary.suffix)[ref14.length - 1]?.type === "NonNullAssertion") {
6385
6749
  unary.suffix.pop();
6386
6750
  }
6387
- let ref13;
6751
+ let ref15;
6388
6752
  if (unary.suffix.length || unary.prefix.length)
6389
- ref13 = unary;
6753
+ ref15 = unary;
6390
6754
  else
6391
- ref13 = unary.t;
6392
- const t = ref13;
6755
+ ref15 = unary.t;
6756
+ const t = ref15;
6393
6757
  if (unary.parent?.type === "TypeTuple") {
6394
6758
  if (count === 1) {
6395
6759
  unary.suffix.push(last);
@@ -6415,14 +6779,14 @@ function processTypes(node) {
6415
6779
  ]
6416
6780
  });
6417
6781
  }
6418
- } else if (typeof m3 === "object" && m3 != null && "type" in m3 && m3.type === "NonNullAssertion") {
6419
- const { type } = m3;
6420
- let ref14;
6421
- while (unary.suffix.length && (ref14 = unary.suffix)[ref14.length - 1]?.type === "NonNullAssertion") {
6782
+ } else if (typeof m4 === "object" && m4 != null && "type" in m4 && m4.type === "NonNullAssertion") {
6783
+ const { type } = m4;
6784
+ let ref16;
6785
+ while (unary.suffix.length && (ref16 = unary.suffix)[ref16.length - 1]?.type === "NonNullAssertion") {
6422
6786
  unary.suffix.pop();
6423
6787
  }
6424
- let ref15;
6425
- while (unary.suffix.length && (ref15 = unary.suffix)[ref15.length - 1]?.token === "?") {
6788
+ let ref17;
6789
+ while (unary.suffix.length && (ref17 = unary.suffix)[ref17.length - 1]?.token === "?") {
6426
6790
  unary.suffix.pop();
6427
6791
  }
6428
6792
  const t = trimFirstSpace(
@@ -6448,14 +6812,14 @@ function processTypes(node) {
6448
6812
  });
6449
6813
  }
6450
6814
  function processStatementExpressions(statements) {
6451
- gatherRecursiveAll(statements, ($7) => $7.type === "StatementExpression").forEach((_exp) => {
6815
+ gatherRecursiveAll(statements, ($8) => $8.type === "StatementExpression").forEach((_exp) => {
6452
6816
  const exp = _exp;
6453
6817
  const { statement } = exp;
6454
- let ref16;
6818
+ let ref18;
6455
6819
  switch (statement.type) {
6456
6820
  case "IfStatement": {
6457
- if (ref16 = expressionizeIfStatement(statement)) {
6458
- const expression = ref16;
6821
+ if (ref18 = expressionizeIfStatement(statement)) {
6822
+ const expression = ref18;
6459
6823
  return replaceNode(statement, expression, exp);
6460
6824
  } else {
6461
6825
  return replaceNode(statement, wrapIIFE([["", statement]]), exp);
@@ -6524,7 +6888,7 @@ function processProgram(root) {
6524
6888
  if (config2.iife || config2.repl) {
6525
6889
  rootIIFE = wrapIIFE(root.expressions, root.topLevelAwait);
6526
6890
  const newExpressions = [["", rootIIFE]];
6527
- root.children = root.children.map(($8) => $8 === root.expressions ? newExpressions : $8);
6891
+ root.children = root.children.map(($9) => $9 === root.expressions ? newExpressions : $9);
6528
6892
  root.expressions = newExpressions;
6529
6893
  }
6530
6894
  addParentPointers(root);
@@ -6564,17 +6928,17 @@ async function processProgramAsync(root) {
6564
6928
  await processComptime(statements);
6565
6929
  }
6566
6930
  function processRepl(root, rootIIFE) {
6567
- const topBlock = gatherRecursive(rootIIFE, ($9) => $9.type === "BlockStatement")[0];
6931
+ const topBlock = gatherRecursive(rootIIFE, ($10) => $10.type === "BlockStatement")[0];
6568
6932
  let i = 0;
6569
- for (let ref17 = gatherRecursiveWithinFunction(topBlock, ($10) => $10.type === "Declaration"), i4 = 0, len3 = ref17.length; i4 < len3; i4++) {
6570
- const decl = ref17[i4];
6933
+ for (let ref19 = gatherRecursiveWithinFunction(topBlock, ($11) => $11.type === "Declaration"), i5 = 0, len4 = ref19.length; i5 < len4; i5++) {
6934
+ const decl = ref19[i5];
6571
6935
  if (decl.parent === topBlock || decl.decl === "var") {
6572
6936
  decl.children.shift();
6573
6937
  root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")};`]);
6574
6938
  }
6575
6939
  }
6576
- for (let ref18 = gatherRecursive(topBlock, ($11) => $11.type === "FunctionExpression"), i5 = 0, len4 = ref18.length; i5 < len4; i5++) {
6577
- const func = ref18[i5];
6940
+ for (let ref20 = gatherRecursive(topBlock, ($12) => $12.type === "FunctionExpression"), i6 = 0, len5 = ref20.length; i6 < len5; i6++) {
6941
+ const func = ref20[i6];
6578
6942
  if (func.name && func.parent?.type === "BlockStatement") {
6579
6943
  if (func.parent === topBlock) {
6580
6944
  replaceNode(func, void 0);
@@ -6586,17 +6950,17 @@ function processRepl(root, rootIIFE) {
6586
6950
  }
6587
6951
  }
6588
6952
  }
6589
- for (let ref19 = gatherRecursiveWithinFunction(topBlock, ($12) => $12.type === "ClassExpression"), i6 = 0, len5 = ref19.length; i6 < len5; i6++) {
6590
- const classExp = ref19[i6];
6591
- let m4;
6592
- if (classExp.name && classExp.parent === topBlock || (m4 = classExp.parent, typeof m4 === "object" && m4 != null && "type" in m4 && m4.type === "ReturnStatement" && "parent" in m4 && m4.parent === topBlock)) {
6953
+ for (let ref21 = gatherRecursiveWithinFunction(topBlock, ($13) => $13.type === "ClassExpression"), i7 = 0, len6 = ref21.length; i7 < len6; i7++) {
6954
+ const classExp = ref21[i7];
6955
+ let m5;
6956
+ if (classExp.name && classExp.parent === topBlock || (m5 = classExp.parent, typeof m5 === "object" && m5 != null && "type" in m5 && m5.type === "ReturnStatement" && "parent" in m5 && m5.parent === topBlock)) {
6593
6957
  classExp.children.unshift(classExp.name, "=");
6594
6958
  root.expressions.splice(i++, 0, ["", `var ${classExp.name};`]);
6595
6959
  }
6596
6960
  }
6597
6961
  }
6598
6962
  function populateRefs(statements) {
6599
- const refNodes = gatherRecursive(statements, ($13) => $13.type === "Ref");
6963
+ const refNodes = gatherRecursive(statements, ($14) => $14.type === "Ref");
6600
6964
  if (refNodes.length) {
6601
6965
  const ids = gatherRecursive(statements, (s) => s.type === "Identifier");
6602
6966
  const names = new Set(ids.flatMap(({ names: names2 }) => names2 || []));
@@ -6619,11 +6983,11 @@ function populateRefs(statements) {
6619
6983
  function processPlaceholders(statements) {
6620
6984
  const placeholderMap = /* @__PURE__ */ new Map();
6621
6985
  const liftedIfs = /* @__PURE__ */ new Set();
6622
- gatherRecursiveAll(statements, ($14) => $14.type === "Placeholder").forEach((_exp) => {
6986
+ gatherRecursiveAll(statements, ($15) => $15.type === "Placeholder").forEach((_exp) => {
6623
6987
  const exp = _exp;
6624
6988
  let ancestor;
6625
6989
  if (exp.subtype === ".") {
6626
- ({ ancestor } = findAncestor(exp, ($15) => $15.type === "Call"));
6990
+ ({ ancestor } = findAncestor(exp, ($16) => $16.type === "Call"));
6627
6991
  ancestor = ancestor?.parent;
6628
6992
  while (ancestor?.parent?.type === "UnaryExpression" || ancestor?.parent?.type === "NewExpression") {
6629
6993
  ancestor = ancestor.parent;
@@ -6642,10 +7006,10 @@ function processPlaceholders(statements) {
6642
7006
  if (type === "IfStatement") {
6643
7007
  liftedIfs.add(ancestor2);
6644
7008
  }
6645
- let m5;
6646
7009
  let m6;
7010
+ let m7;
6647
7011
  return type === "Call" || // Block, except for if/else blocks when condition already lifted
6648
- type === "BlockStatement" && !((m5 = ancestor2.parent, typeof m5 === "object" && m5 != null && "type" in m5 && m5.type === "IfStatement") && liftedIfs.has(ancestor2.parent)) && !((m6 = ancestor2.parent, typeof m6 === "object" && m6 != null && "type" in m6 && m6.type === "ElseClause" && "parent" in m6 && typeof m6.parent === "object" && m6.parent != null && "type" in m6.parent && m6.parent.type === "IfStatement") && liftedIfs.has(ancestor2.parent.parent)) || type === "PipelineExpression" || // Declaration
7012
+ type === "BlockStatement" && !((m6 = ancestor2.parent, typeof m6 === "object" && m6 != null && "type" in m6 && m6.type === "IfStatement") && liftedIfs.has(ancestor2.parent)) && !((m7 = ancestor2.parent, typeof m7 === "object" && m7 != null && "type" in m7 && m7.type === "ElseClause" && "parent" in m7 && typeof m7.parent === "object" && m7.parent != null && "type" in m7.parent && m7.parent.type === "IfStatement") && liftedIfs.has(ancestor2.parent.parent)) || type === "PipelineExpression" || // Declaration
6649
7013
  type === "Initializer" || // Right-hand side of assignment
6650
7014
  type === "AssignmentExpression" && findChildIndex(ancestor2, child2) === ancestor2.children.indexOf(ancestor2.expression) || type === "ReturnStatement" || type === "YieldExpression";
6651
7015
  }));
@@ -6721,11 +7085,11 @@ function processPlaceholders(statements) {
6721
7085
  for (const [ancestor, placeholders] of placeholderMap) {
6722
7086
  let ref = makeRef("$");
6723
7087
  let typeSuffix;
6724
- for (let i7 = 0, len6 = placeholders.length; i7 < len6; i7++) {
6725
- const placeholder = placeholders[i7];
7088
+ for (let i8 = 0, len7 = placeholders.length; i8 < len7; i8++) {
7089
+ const placeholder = placeholders[i8];
6726
7090
  typeSuffix ??= placeholder.typeSuffix;
6727
- let ref20;
6728
- replaceNode((ref20 = placeholder.children)[ref20.length - 1], ref);
7091
+ let ref22;
7092
+ replaceNode((ref22 = placeholder.children)[ref22.length - 1], ref);
6729
7093
  }
6730
7094
  const { parent } = ancestor;
6731
7095
  const body = maybeUnwrap(ancestor);
@@ -6746,16 +7110,16 @@ function processPlaceholders(statements) {
6746
7110
  }
6747
7111
  case "PipelineExpression": {
6748
7112
  const i = findChildIndex(parent, ancestor);
6749
- let ref21;
7113
+ let ref23;
6750
7114
  if (i === 1) {
6751
- ref21 = ancestor === parent.children[i];
7115
+ ref23 = ancestor === parent.children[i];
6752
7116
  } else if (i === 2) {
6753
- ref21 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
7117
+ ref23 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
6754
7118
  } else {
6755
- ref21 = void 0;
7119
+ ref23 = void 0;
6756
7120
  }
6757
7121
  ;
6758
- outer = ref21;
7122
+ outer = ref23;
6759
7123
  break;
6760
7124
  }
6761
7125
  case "AssignmentExpression":
@@ -6770,9 +7134,9 @@ function processPlaceholders(statements) {
6770
7134
  fnExp = makeLeftHandSideExpression(fnExp);
6771
7135
  }
6772
7136
  replaceNode(ancestor, fnExp, parent);
6773
- let ref22;
6774
- if (ref22 = getTrimmingSpace(body)) {
6775
- const ws = ref22;
7137
+ let ref24;
7138
+ if (ref24 = getTrimmingSpace(body)) {
7139
+ const ws = ref24;
6776
7140
  inplaceInsertTrimmingSpace(body, "");
6777
7141
  inplacePrepend(ws, fnExp);
6778
7142
  }
@@ -6817,8 +7181,8 @@ function reorderBindingRestProperty(props) {
6817
7181
  }
6818
7182
  ];
6819
7183
  }
6820
- let ref23;
6821
- if (Array.isArray(rest.delim) && (ref23 = rest.delim)[ref23.length - 1]?.token === ",") {
7184
+ let ref25;
7185
+ if (Array.isArray(rest.delim) && (ref25 = rest.delim)[ref25.length - 1]?.token === ",") {
6822
7186
  rest.delim = rest.delim.slice(0, -1);
6823
7187
  rest.children = [...rest.children.slice(0, -1), rest.delim];
6824
7188
  }
@@ -6843,9 +7207,9 @@ function replaceNodes(root, predicate, replacer) {
6843
7207
  return root;
6844
7208
  }
6845
7209
  }
6846
- for (let i8 = 0, len7 = array.length; i8 < len7; i8++) {
6847
- const i = i8;
6848
- const node = array[i8];
7210
+ for (let i9 = 0, len8 = array.length; i9 < len8; i9++) {
7211
+ const i = i9;
7212
+ const node = array[i9];
6849
7213
  if (!(node != null)) {
6850
7214
  return;
6851
7215
  }
@@ -6869,9 +7233,9 @@ function replaceNodesRecursive(root, predicate, replacer) {
6869
7233
  return root;
6870
7234
  }
6871
7235
  }
6872
- for (let i9 = 0, len8 = array.length; i9 < len8; i9++) {
6873
- const i = i9;
6874
- const node = array[i9];
7236
+ for (let i10 = 0, len9 = array.length; i10 < len9; i10++) {
7237
+ const i = i10;
7238
+ const node = array[i10];
6875
7239
  if (!(node != null)) {
6876
7240
  continue;
6877
7241
  }
@@ -7171,6 +7535,8 @@ var grammar = {
7171
7535
  UpcomingAssignment,
7172
7536
  ArrayLiteral,
7173
7537
  _ArrayLiteral,
7538
+ RangeDots,
7539
+ RangeEnd,
7174
7540
  RangeExpression,
7175
7541
  ArrayLiteralContent,
7176
7542
  NestedElementList,
@@ -7287,7 +7653,7 @@ var grammar = {
7287
7653
  IgnoreColon,
7288
7654
  TryStatement,
7289
7655
  CatchClause,
7290
- CatchBind,
7656
+ CatchBinding,
7291
7657
  FinallyClause,
7292
7658
  CatchParameter,
7293
7659
  Condition,
@@ -7631,6 +7997,7 @@ var grammar = {
7631
7997
  TypeSuffix,
7632
7998
  MaybeNestedType,
7633
7999
  MaybeNestedTypePrimary,
8000
+ MaybeNestedTypeUnary,
7634
8001
  ReturnTypeSuffix,
7635
8002
  ReturnType,
7636
8003
  TypePredicate,
@@ -8018,86 +8385,87 @@ var $R16 = (0, import_lib4.$R)(new RegExp("(?=true|false|yes|no|on|off)", "suy")
8018
8385
  var $R17 = (0, import_lib4.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
8019
8386
  var $R18 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8020
8387
  var $R19 = (0, import_lib4.$R)(new RegExp("(?=\\[|\\s*[.\u2022])", "suy"));
8021
- var $R20 = (0, import_lib4.$R)(new RegExp("[ \\t]*", "suy"));
8022
- var $R21 = (0, import_lib4.$R)(new RegExp("[ \\t]+", "suy"));
8023
- var $R22 = (0, import_lib4.$R)(new RegExp("[!+-]?", "suy"));
8024
- var $R23 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8025
- var $R24 = (0, import_lib4.$R)(new RegExp("[=>]", "suy"));
8026
- var $R25 = (0, import_lib4.$R)(new RegExp("(?=\\p{ID_Start}|[_$^\u226A\u226B\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%\xF7<>\u29FA+-])", "suy"));
8027
- var $R26 = (0, import_lib4.$R)(new RegExp("!\\^\\^?", "suy"));
8028
- var $R27 = (0, import_lib4.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
8029
- var $R28 = (0, import_lib4.$R)(new RegExp("[:.]", "suy"));
8030
- var $R29 = (0, import_lib4.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
8031
- var $R30 = (0, import_lib4.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
8032
- var $R31 = (0, import_lib4.$R)(new RegExp('[^;"\\s]+', "suy"));
8033
- var $R32 = (0, import_lib4.$R)(new RegExp("(?=[0-9.])", "suy"));
8034
- var $R33 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
8035
- var $R34 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
8036
- var $R35 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
8037
- var $R36 = (0, import_lib4.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
8038
- var $R37 = (0, import_lib4.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
8039
- var $R38 = (0, import_lib4.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
8040
- var $R39 = (0, import_lib4.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
8041
- var $R40 = (0, import_lib4.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
8042
- var $R41 = (0, import_lib4.$R)(new RegExp("(?=[0-9])", "suy"));
8043
- var $R42 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
8044
- var $R43 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
8045
- var $R44 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
8046
- var $R45 = (0, import_lib4.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
8047
- var $R46 = (0, import_lib4.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
8048
- var $R47 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
8049
- var $R48 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
8050
- var $R49 = (0, import_lib4.$R)(new RegExp("(?:\\\\.)", "suy"));
8051
- var $R50 = (0, import_lib4.$R)(new RegExp("[\\s]+", "suy"));
8052
- var $R51 = (0, import_lib4.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
8053
- var $R52 = (0, import_lib4.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
8054
- var $R53 = (0, import_lib4.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
8055
- var $R54 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
8056
- var $R55 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8057
- var $R56 = (0, import_lib4.$R)(new RegExp("(?=[`'\"])", "suy"));
8058
- var $R57 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
8059
- var $R58 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
8060
- var $R59 = (0, import_lib4.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
8061
- var $R60 = (0, import_lib4.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
8062
- var $R61 = (0, import_lib4.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
8063
- var $R62 = (0, import_lib4.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
8064
- var $R63 = (0, import_lib4.$R)(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
8065
- var $R64 = (0, import_lib4.$R)(new RegExp("(?=\\/|#)", "suy"));
8066
- var $R65 = (0, import_lib4.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
8067
- var $R66 = (0, import_lib4.$R)(new RegExp(".", "suy"));
8068
- var $R67 = (0, import_lib4.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
8069
- var $R68 = (0, import_lib4.$R)(new RegExp("[^]*?###", "suy"));
8070
- var $R69 = (0, import_lib4.$R)(new RegExp("###(?!#)", "suy"));
8071
- var $R70 = (0, import_lib4.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
8072
- var $R71 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
8073
- var $R72 = (0, import_lib4.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
8074
- var $R73 = (0, import_lib4.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
8075
- var $R74 = (0, import_lib4.$R)(new RegExp("[=:]", "suy"));
8076
- var $R75 = (0, import_lib4.$R)(new RegExp("['\u2019]s", "suy"));
8077
- var $R76 = (0, import_lib4.$R)(new RegExp("\\s", "suy"));
8078
- var $R77 = (0, import_lib4.$R)(new RegExp("(?=[<])", "suy"));
8079
- var $R78 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8080
- var $R79 = (0, import_lib4.$R)(new RegExp("[!+-]", "suy"));
8081
- var $R80 = (0, import_lib4.$R)(new RegExp("[\\s>]|\\/>", "suy"));
8082
- var $R81 = (0, import_lib4.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
8083
- var $R82 = (0, import_lib4.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
8084
- var $R83 = (0, import_lib4.$R)(new RegExp("[<>]", "suy"));
8085
- var $R84 = (0, import_lib4.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
8086
- var $R85 = (0, import_lib4.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
8087
- var $R86 = (0, import_lib4.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
8088
- var $R87 = (0, import_lib4.$R)(new RegExp("[+-]?", "suy"));
8089
- var $R88 = (0, import_lib4.$R)(new RegExp("(?=if|unless)", "suy"));
8090
- var $R89 = (0, import_lib4.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
8091
- var $R90 = (0, import_lib4.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
8092
- var $R91 = (0, import_lib4.$R)(new RegExp("const|in|out", "suy"));
8093
- var $R92 = (0, import_lib4.$R)(new RegExp("#![^\\r\\n]*", "suy"));
8094
- var $R93 = (0, import_lib4.$R)(new RegExp("[\\t ]*", "suy"));
8095
- var $R94 = (0, import_lib4.$R)(new RegExp("[\\s]*", "suy"));
8096
- var $R95 = (0, import_lib4.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
8097
- var $R96 = (0, import_lib4.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
8098
- var $R97 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
8099
- var $R98 = (0, import_lib4.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
8100
- var $R99 = (0, import_lib4.$R)(new RegExp("[^]*", "suy"));
8388
+ var $R20 = (0, import_lib4.$R)(new RegExp("([<>])(=?)|([\u2264\u2265])", "suy"));
8389
+ var $R21 = (0, import_lib4.$R)(new RegExp("[ \\t]*", "suy"));
8390
+ var $R22 = (0, import_lib4.$R)(new RegExp("[ \\t]+", "suy"));
8391
+ var $R23 = (0, import_lib4.$R)(new RegExp("[!+-]?", "suy"));
8392
+ var $R24 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8393
+ var $R25 = (0, import_lib4.$R)(new RegExp("[=>]", "suy"));
8394
+ var $R26 = (0, import_lib4.$R)(new RegExp("(?=\\p{ID_Start}|[_$^\u226A\u226B\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%\xF7<>\u29FA+-])", "suy"));
8395
+ var $R27 = (0, import_lib4.$R)(new RegExp("!\\^\\^?", "suy"));
8396
+ var $R28 = (0, import_lib4.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
8397
+ var $R29 = (0, import_lib4.$R)(new RegExp("[:.]", "suy"));
8398
+ var $R30 = (0, import_lib4.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
8399
+ var $R31 = (0, import_lib4.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
8400
+ var $R32 = (0, import_lib4.$R)(new RegExp('[^;"\\s]+', "suy"));
8401
+ var $R33 = (0, import_lib4.$R)(new RegExp("(?=[0-9.])", "suy"));
8402
+ var $R34 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
8403
+ var $R35 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
8404
+ var $R36 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
8405
+ var $R37 = (0, import_lib4.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
8406
+ var $R38 = (0, import_lib4.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
8407
+ var $R39 = (0, import_lib4.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
8408
+ var $R40 = (0, import_lib4.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
8409
+ var $R41 = (0, import_lib4.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
8410
+ var $R42 = (0, import_lib4.$R)(new RegExp("(?=[0-9])", "suy"));
8411
+ var $R43 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
8412
+ var $R44 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
8413
+ var $R45 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
8414
+ var $R46 = (0, import_lib4.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
8415
+ var $R47 = (0, import_lib4.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
8416
+ var $R48 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
8417
+ var $R49 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
8418
+ var $R50 = (0, import_lib4.$R)(new RegExp("(?:\\\\.)", "suy"));
8419
+ var $R51 = (0, import_lib4.$R)(new RegExp("[\\s]+", "suy"));
8420
+ var $R52 = (0, import_lib4.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
8421
+ var $R53 = (0, import_lib4.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
8422
+ var $R54 = (0, import_lib4.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
8423
+ var $R55 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
8424
+ var $R56 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8425
+ var $R57 = (0, import_lib4.$R)(new RegExp("(?=[`'\"])", "suy"));
8426
+ var $R58 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
8427
+ var $R59 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
8428
+ var $R60 = (0, import_lib4.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
8429
+ var $R61 = (0, import_lib4.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
8430
+ var $R62 = (0, import_lib4.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
8431
+ var $R63 = (0, import_lib4.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
8432
+ var $R64 = (0, import_lib4.$R)(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
8433
+ var $R65 = (0, import_lib4.$R)(new RegExp("(?=\\/|#)", "suy"));
8434
+ var $R66 = (0, import_lib4.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
8435
+ var $R67 = (0, import_lib4.$R)(new RegExp(".", "suy"));
8436
+ var $R68 = (0, import_lib4.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
8437
+ var $R69 = (0, import_lib4.$R)(new RegExp("[^]*?###", "suy"));
8438
+ var $R70 = (0, import_lib4.$R)(new RegExp("###(?!#)", "suy"));
8439
+ var $R71 = (0, import_lib4.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
8440
+ var $R72 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
8441
+ var $R73 = (0, import_lib4.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
8442
+ var $R74 = (0, import_lib4.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
8443
+ var $R75 = (0, import_lib4.$R)(new RegExp("[=:]", "suy"));
8444
+ var $R76 = (0, import_lib4.$R)(new RegExp("['\u2019]s", "suy"));
8445
+ var $R77 = (0, import_lib4.$R)(new RegExp("\\s", "suy"));
8446
+ var $R78 = (0, import_lib4.$R)(new RegExp("(?=[<])", "suy"));
8447
+ var $R79 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8448
+ var $R80 = (0, import_lib4.$R)(new RegExp("[!+-]", "suy"));
8449
+ var $R81 = (0, import_lib4.$R)(new RegExp("[\\s>]|\\/>", "suy"));
8450
+ var $R82 = (0, import_lib4.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
8451
+ var $R83 = (0, import_lib4.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
8452
+ var $R84 = (0, import_lib4.$R)(new RegExp("[<>]", "suy"));
8453
+ var $R85 = (0, import_lib4.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
8454
+ var $R86 = (0, import_lib4.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
8455
+ var $R87 = (0, import_lib4.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
8456
+ var $R88 = (0, import_lib4.$R)(new RegExp("[+-]?", "suy"));
8457
+ var $R89 = (0, import_lib4.$R)(new RegExp("(?=if|unless)", "suy"));
8458
+ var $R90 = (0, import_lib4.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
8459
+ var $R91 = (0, import_lib4.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
8460
+ var $R92 = (0, import_lib4.$R)(new RegExp("const|in|out", "suy"));
8461
+ var $R93 = (0, import_lib4.$R)(new RegExp("#![^\\r\\n]*", "suy"));
8462
+ var $R94 = (0, import_lib4.$R)(new RegExp("[\\t ]*", "suy"));
8463
+ var $R95 = (0, import_lib4.$R)(new RegExp("[\\s]*", "suy"));
8464
+ var $R96 = (0, import_lib4.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
8465
+ var $R97 = (0, import_lib4.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
8466
+ var $R98 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
8467
+ var $R99 = (0, import_lib4.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
8468
+ var $R100 = (0, import_lib4.$R)(new RegExp("[^]*", "suy"));
8101
8469
  var Program$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Reset, Init, (0, import_lib4.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8102
8470
  var reset = $1;
8103
8471
  var init = $2;
@@ -8300,7 +8668,7 @@ var ExplicitArguments$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenParen, Al
8300
8668
  function ExplicitArguments(ctx, state2) {
8301
8669
  return (0, import_lib4.$EVENT)(ctx, state2, "ExplicitArguments", ExplicitArguments$0);
8302
8670
  }
8303
- var ApplicationStart$0 = (0, import_lib4.$S)(IndentedApplicationAllowed, (0, import_lib4.$Y)((0, import_lib4.$S)(IndentedFurther, (0, import_lib4.$N)(IdentifierBinaryOp))), (0, import_lib4.$N)(IndentedTrailingMemberExpression));
8671
+ var ApplicationStart$0 = (0, import_lib4.$S)(IndentedApplicationAllowed, (0, import_lib4.$Y)((0, import_lib4.$S)(IndentedFurther, (0, import_lib4.$N)(IdentifierBinaryOp), (0, import_lib4.$N)(ReservedBinary))), (0, import_lib4.$N)(IndentedTrailingMemberExpression));
8304
8672
  var ApplicationStart$1 = (0, import_lib4.$S)((0, import_lib4.$N)(EOS), (0, import_lib4.$Y)((0, import_lib4.$S)(_, (0, import_lib4.$C)(BracedApplicationAllowed, (0, import_lib4.$N)((0, import_lib4.$EXPECT)($L1, 'ApplicationStart "{"'))), (0, import_lib4.$N)(ForbiddenImplicitCalls))));
8305
8673
  var ApplicationStart$$ = [ApplicationStart$0, ApplicationStart$1];
8306
8674
  function ApplicationStart(ctx, state2) {
@@ -8469,11 +8837,15 @@ var BinaryOpExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(UnaryExpress
8469
8837
  function BinaryOpExpression(ctx, state2) {
8470
8838
  return (0, import_lib4.$EVENT)(ctx, state2, "BinaryOpExpression", BinaryOpExpression$0);
8471
8839
  }
8472
- var BinaryOpNotDedented$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$C)(NestedBinaryOpAllowed, (0, import_lib4.$N)(Nested)), NotDedented), function(value) {
8840
+ var BinaryOpNotDedented$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$N)(NewlineBinaryOpAllowed), (0, import_lib4.$E)(_)), function(value) {
8841
+ return value[1];
8842
+ });
8843
+ var BinaryOpNotDedented$1 = (0, import_lib4.$T)((0, import_lib4.$S)(NewlineBinaryOpAllowed, (0, import_lib4.$C)(NestedBinaryOpAllowed, (0, import_lib4.$N)(Nested)), NotDedented), function(value) {
8473
8844
  return value[1];
8474
8845
  });
8846
+ var BinaryOpNotDedented$$ = [BinaryOpNotDedented$0, BinaryOpNotDedented$1];
8475
8847
  function BinaryOpNotDedented(ctx, state2) {
8476
- return (0, import_lib4.$EVENT)(ctx, state2, "BinaryOpNotDedented", BinaryOpNotDedented$0);
8848
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "BinaryOpNotDedented", BinaryOpNotDedented$$);
8477
8849
  }
8478
8850
  var BinaryOpRHS$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(BinaryOpNotDedented, IsLike, (0, import_lib4.$E)(_), PatternExpressionList), function($skip, $loc, $0, $1, $2, $3, $4) {
8479
8851
  var ws1 = $1;
@@ -8614,8 +8986,15 @@ var TypePostfix$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(_, NWTypePostfix),
8614
8986
  var postfix = $2;
8615
8987
  return prepend(ws, postfix);
8616
8988
  });
8989
+ var TypePostfix$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$Y)(EOS), BinaryOpNotDedented, (0, import_lib4.$E)(_), NWTypePostfix), function($skip, $loc, $0, $1, $2, $3, $4) {
8990
+ var indent = $2;
8991
+ var ws = $3;
8992
+ var postfix = $4;
8993
+ return prepend(ws || " ", postfix);
8994
+ });
8995
+ var TypePostfix$$ = [TypePostfix$0, TypePostfix$1];
8617
8996
  function TypePostfix(ctx, state2) {
8618
- return (0, import_lib4.$EVENT)(ctx, state2, "TypePostfix", TypePostfix$0);
8997
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "TypePostfix", TypePostfix$$);
8619
8998
  }
8620
8999
  var Tuple$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L8, 'Tuple "tuple"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8621
9000
  return {
@@ -9677,11 +10056,12 @@ var MemberBracketContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenBracke
9677
10056
  var ws = $3;
9678
10057
  var close = $4;
9679
10058
  if (expression.type === "SliceParameters") {
9680
- const { start, end, children } = expression;
10059
+ const { start, end, reversed, children } = expression;
9681
10060
  return {
9682
10061
  type: "SliceExpression",
9683
10062
  start,
9684
10063
  end,
10064
+ reversed,
9685
10065
  children: [
9686
10066
  { ...open, token: ".slice(" },
9687
10067
  ...children,
@@ -9698,20 +10078,44 @@ var MemberBracketContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenBracke
9698
10078
  function MemberBracketContent(ctx, state2) {
9699
10079
  return (0, import_lib4.$EVENT)(ctx, state2, "MemberBracketContent", MemberBracketContent$0);
9700
10080
  }
9701
- var SliceParameters$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, (0, import_lib4.$C)(DotDotDot, DotDot), (0, import_lib4.$E)(Expression)), function($skip, $loc, $0, $1, $2, $3, $4) {
9702
- var start = $1;
9703
- var ws = $2;
9704
- var sep = $3;
9705
- var end = $4;
9706
- const inclusive = sep.token === "..";
10081
+ var SliceParameters$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Loc, (0, import_lib4.$E)(Expression), __, RangeDots, Loc, (0, import_lib4.$E)(Expression)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10082
+ var ls = $1;
10083
+ var start = $2;
10084
+ var ws = $3;
10085
+ var dots = $4;
10086
+ var le = $5;
10087
+ var end = $6;
10088
+ const reversed = dots.increasing === false;
10089
+ const sign = reversed ? "-" : "+";
9707
10090
  let children;
10091
+ start ??= {
10092
+ $loc: ls.$loc,
10093
+ token: reversed ? "-1" : "0"
10094
+ };
10095
+ if (!end) {
10096
+ if (reversed) {
10097
+ end = {
10098
+ $loc: le.$loc,
10099
+ token: "0"
10100
+ };
10101
+ } else if (!dots.right.inclusive && !dots.triple) {
10102
+ end = {
10103
+ $loc: le.$loc,
10104
+ token: "-1"
10105
+ };
10106
+ }
10107
+ }
10108
+ if (!dots.left.inclusive) {
10109
+ start = [makeLeftHandSideExpression(start), ` ${sign} 1`];
10110
+ }
9708
10111
  if (end) {
9709
10112
  const inc = [];
9710
- if (inclusive) {
9711
- end = ["1 + ", makeLeftHandSideExpression(end)];
9712
- inc.push(" || 1/0");
10113
+ if (dots.right.inclusive) {
10114
+ end = [makeLeftHandSideExpression(end), ` ${sign} 1`];
10115
+ if (!reversed)
10116
+ inc.push(" || 1/0");
9713
10117
  }
9714
- children = [start, [...ws, { ...sep, token: ", " }], [end, ...inc]];
10118
+ children = [start, [...ws, dots.children[0], { token: ", ", $loc: dots.$loc }], [dots.children[1], end, ...inc]];
9715
10119
  } else {
9716
10120
  children = [start, ws];
9717
10121
  }
@@ -9719,48 +10123,12 @@ var SliceParameters$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __,
9719
10123
  type: "SliceParameters",
9720
10124
  start,
9721
10125
  end,
10126
+ reversed,
9722
10127
  children
9723
10128
  };
9724
10129
  });
9725
- var SliceParameters$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(Loc, __, (0, import_lib4.$C)(DotDotDot, DotDot), Expression), function($skip, $loc, $0, $1, $2, $3, $4) {
9726
- var l = $1;
9727
- var ws = $2;
9728
- var sep = $3;
9729
- var end = $4;
9730
- const inclusive = sep.token === "..";
9731
- const inc = [];
9732
- if (inclusive) {
9733
- end = ["1 + ", end];
9734
- inc.push(" || 1/0");
9735
- }
9736
- const start = {
9737
- $loc: l.$loc,
9738
- token: "0"
9739
- };
9740
- return {
9741
- type: "SliceParameters",
9742
- start,
9743
- end,
9744
- children: [start, [...ws, { ...sep, token: ", " }], [end, ...inc]]
9745
- };
9746
- });
9747
- var SliceParameters$2 = (0, import_lib4.$TS)((0, import_lib4.$S)(Loc, __, (0, import_lib4.$C)(DotDot, DotDotDot), (0, import_lib4.$Y)((0, import_lib4.$S)(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
9748
- var l = $1;
9749
- var ws = $2;
9750
- const start = {
9751
- $loc: l.$loc,
9752
- token: "0"
9753
- };
9754
- return {
9755
- type: "SliceParameters",
9756
- start,
9757
- end: void 0,
9758
- children: [start, ws]
9759
- };
9760
- });
9761
- var SliceParameters$$ = [SliceParameters$0, SliceParameters$1, SliceParameters$2];
9762
10130
  function SliceParameters(ctx, state2) {
9763
- return (0, import_lib4.$EVENT_C)(ctx, state2, "SliceParameters", SliceParameters$$);
10131
+ return (0, import_lib4.$EVENT)(ctx, state2, "SliceParameters", SliceParameters$0);
9764
10132
  }
9765
10133
  var AccessStart$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(PropertyAccessModifier), Dot, (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R11, "AccessStart /[.\\s]/"))), function($skip, $loc, $0, $1, $2, $3) {
9766
10134
  var modifier = $1;
@@ -11223,10 +11591,7 @@ var SingleLineStatements$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(ForbidNewl
11223
11591
  if (last)
11224
11592
  expressions.push(last);
11225
11593
  const maybeComment = expressions.at(-1)?.[2]?.children?.[2]?.at(-1);
11226
- let hasTrailingComment = false;
11227
- if (maybeComment?.type === "Comment" && maybeComment.token.startsWith("//")) {
11228
- hasTrailingComment = true;
11229
- }
11594
+ const hasTrailingComment = maybeComment?.type === "Comment" && maybeComment.token.startsWith("//");
11230
11595
  const children = [expressions];
11231
11596
  if (hasTrailingComment)
11232
11597
  children.push("\n");
@@ -11425,70 +11790,83 @@ var _ArrayLiteral$$ = [_ArrayLiteral$0, _ArrayLiteral$1, _ArrayLiteral$2];
11425
11790
  function _ArrayLiteral(ctx, state2) {
11426
11791
  return (0, import_lib4.$EVENT_C)(ctx, state2, "_ArrayLiteral", _ArrayLiteral$$);
11427
11792
  }
11428
- var RangeExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, (0, import_lib4.$C)(DotDotDot, DotDot), Expression), function($skip, $loc, $0, $1, $2, $3, $4) {
11429
- var s = $1;
11430
- var ws = $2;
11431
- var range = $3;
11432
- var e = $4;
11433
- const inclusive = range.token === "..";
11434
- range.token = ",";
11435
- if (s.type === "Literal" && e.type === "Literal") {
11436
- const start = literalValue(s);
11437
- const end = literalValue(e);
11438
- if (typeof start !== typeof end) {
11439
- throw new Error("Range start and end must be of the same type");
11440
- }
11441
- if (typeof start === "string") {
11442
- if (start.length !== 1 || end.length !== 1) {
11443
- throw new Error("String range start and end must be a single character");
11444
- }
11445
- const startCode = start.charCodeAt(0);
11446
- const endCode = end.charCodeAt(0);
11447
- const step = startCode < endCode ? 1 : -1;
11448
- const length = Math.abs(endCode - startCode) + (inclusive ? 1 : 0);
11449
- if (length <= 26) {
11450
- return {
11451
- type: "RangeExpression",
11452
- children: ["[", Array.from({ length }, (_2, i) => JSON.stringify(String.fromCharCode(startCode + i * step))).join(", "), "]"],
11453
- inclusive,
11454
- start: s,
11455
- end: e
11456
- };
11457
- } else {
11458
- const inclusiveAdjust2 = inclusive ? " + 1" : "";
11459
- const children2 = ["((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)", inclusiveAdjust2, "}, (_, i) => String.fromCharCode(s + i * step))})(", startCode.toString(), ws, range, endCode.toString(), ")"];
11460
- return {
11461
- type: "RangeExpression",
11462
- children: children2,
11463
- inclusive,
11464
- start: s,
11465
- end: e
11466
- };
11467
- }
11468
- } else if (typeof start === "number") {
11469
- const step = end > start ? 1 : -1;
11470
- const length = Math.abs(end - start) + (inclusive ? 1 : 0);
11471
- if (length <= 20) {
11472
- return {
11473
- type: "RangeExpression",
11474
- children: ["[", Array.from({ length }, (_2, i) => start + i * step).join(", "), "]"],
11475
- inclusive,
11476
- start: s,
11477
- end: e
11478
- };
11479
- }
11793
+ var RangeDots$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(DotDotDot), function($skip, $loc, $0, $1) {
11794
+ return {
11795
+ ...$1,
11796
+ type: "RangeDots",
11797
+ left: { inclusive: true, raw: "" },
11798
+ right: { inclusive: false, raw: "." },
11799
+ increasing: void 0,
11800
+ triple: true,
11801
+ children: []
11802
+ };
11803
+ });
11804
+ var RangeDots$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(RangeEnd, (0, import_lib4.$E)(_), DotDot, (0, import_lib4.$E)(_), RangeEnd), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11805
+ var left = $1;
11806
+ var ws1 = $2;
11807
+ var dots = $3;
11808
+ var ws2 = $4;
11809
+ var right = $5;
11810
+ const increasing = left.increasing ?? right.increasing;
11811
+ if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
11812
+ const error = {
11813
+ type: "Error",
11814
+ message: `${left.raw}..${right.raw} uses inconsistent < vs. >`,
11815
+ $loc: dots.$loc
11816
+ };
11817
+ return {
11818
+ ...dots,
11819
+ left,
11820
+ right,
11821
+ increasing,
11822
+ error,
11823
+ type: "RangeDots",
11824
+ children: [error]
11825
+ };
11826
+ }
11827
+ return {
11828
+ ...dots,
11829
+ left,
11830
+ right,
11831
+ increasing,
11832
+ type: "RangeDots",
11833
+ children: [ws1, ws2]
11834
+ };
11835
+ });
11836
+ var RangeDots$$ = [RangeDots$0, RangeDots$1];
11837
+ function RangeDots(ctx, state2) {
11838
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "RangeDots", RangeDots$$);
11839
+ }
11840
+ var RangeEnd$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R20, "RangeEnd /([<>])(=?)|([\u2264\u2265])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11841
+ let dir = $1, equal = $2, unicode = $3;
11842
+ if (unicode) {
11843
+ equal = "=";
11844
+ if (unicode === "\u2264") {
11845
+ dir = "<";
11846
+ } else if (unicode === "\u2265") {
11847
+ dir = ">";
11480
11848
  }
11481
11849
  }
11482
- const inclusiveAdjust = inclusive ? " + 1" : "";
11483
- const children = ["((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)", inclusiveAdjust, "}, (_, i) => s + i * step)})(", s, ws, range, e, ")"];
11484
11850
  return {
11485
- type: "RangeExpression",
11486
- children,
11487
- inclusive,
11488
- start: s,
11489
- end: e
11851
+ increasing: dir === "<",
11852
+ inclusive: equal === "=",
11853
+ raw: $0
11490
11854
  };
11491
11855
  });
11856
+ var RangeEnd$1 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L0, 'RangeEnd ""'), function(value) {
11857
+ return { "increasing": void 0, "inclusive": true, "raw": "" };
11858
+ });
11859
+ var RangeEnd$$ = [RangeEnd$0, RangeEnd$1];
11860
+ function RangeEnd(ctx, state2) {
11861
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "RangeEnd", RangeEnd$$);
11862
+ }
11863
+ var RangeExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, RangeDots, Expression), function($skip, $loc, $0, $1, $2, $3, $4) {
11864
+ var start = $1;
11865
+ var ws = $2;
11866
+ var range = $3;
11867
+ var end = $4;
11868
+ return processRangeExpression(start, ws, range, end);
11869
+ });
11492
11870
  var RangeExpression$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, DotDot, (0, import_lib4.$Y)((0, import_lib4.$S)(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
11493
11871
  var s = $1;
11494
11872
  var ws = $2;
@@ -11503,7 +11881,10 @@ var RangeExpression$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __,
11503
11881
  type: "Identifier",
11504
11882
  name: "Infinity",
11505
11883
  children: ["Infinity"]
11506
- }
11884
+ },
11885
+ left: { inclusive: true, raw: "" },
11886
+ right: { inclusive: true, raw: "" },
11887
+ increasing: true
11507
11888
  };
11508
11889
  });
11509
11890
  var RangeExpression$$ = [RangeExpression$0, RangeExpression$1];
@@ -11717,7 +12098,7 @@ var ArrayBulletDelimiter$$ = [ArrayBulletDelimiter$0, ArrayBulletDelimiter$1];
11717
12098
  function ArrayBulletDelimiter(ctx, state2) {
11718
12099
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ArrayBulletDelimiter", ArrayBulletDelimiter$$);
11719
12100
  }
11720
- var BulletIndent$0 = (0, import_lib4.$TV)((0, import_lib4.$C)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L47, 'BulletIndent "\u2022"'), (0, import_lib4.$EXPECT)($R20, "BulletIndent /[ \\t]*/")), (0, import_lib4.$S)((0, import_lib4.$EXPECT)($L7, 'BulletIndent "."'), (0, import_lib4.$EXPECT)($R21, "BulletIndent /[ \\t]+/"))), function($skip, $loc, $0, $1) {
12101
+ var BulletIndent$0 = (0, import_lib4.$TV)((0, import_lib4.$C)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L47, 'BulletIndent "\u2022"'), (0, import_lib4.$EXPECT)($R21, "BulletIndent /[ \\t]*/")), (0, import_lib4.$S)((0, import_lib4.$EXPECT)($L7, 'BulletIndent "."'), (0, import_lib4.$EXPECT)($R22, "BulletIndent /[ \\t]+/"))), function($skip, $loc, $0, $1) {
11721
12102
  const [bullet, ws] = $1;
11722
12103
  const indent = {
11723
12104
  token: " " + ws,
@@ -11933,7 +12314,7 @@ var PropertyDefinition$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_l
11933
12314
  var prop = $2;
11934
12315
  return prepend(ws, prop);
11935
12316
  });
11936
- var PropertyDefinition$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R22, "PropertyDefinition /[!+-]?/")), PropertyName, (0, import_lib4.$Y)(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
12317
+ var PropertyDefinition$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R23, "PropertyDefinition /[!+-]?/")), PropertyName, (0, import_lib4.$Y)(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
11937
12318
  var ws = $1;
11938
12319
  var toggle = $2;
11939
12320
  var id = $3;
@@ -12084,7 +12465,7 @@ function SnugNamedProperty(ctx, state2) {
12084
12465
  var PropertyName$0 = NumericLiteral;
12085
12466
  var PropertyName$1 = ComputedPropertyName;
12086
12467
  var PropertyName$2 = StringLiteral;
12087
- var PropertyName$3 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$E)(IdentifierName), (0, import_lib4.$EXPECT)($L24, 'PropertyName "-"'), (0, import_lib4.$EXPECT)($R23, "PropertyName /(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"))), function($skip, $loc, $0, $1) {
12468
+ var PropertyName$3 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$E)(IdentifierName), (0, import_lib4.$EXPECT)($L24, 'PropertyName "-"'), (0, import_lib4.$EXPECT)($R24, "PropertyName /(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"))), function($skip, $loc, $0, $1) {
12088
12469
  return {
12089
12470
  token: `"${$1}"`,
12090
12471
  $loc
@@ -12483,7 +12864,7 @@ var AssignmentOpSymbol$22 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L71, '
12483
12864
  var AssignmentOpSymbol$23 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L72, 'AssignmentOpSymbol "?="'), function(value) {
12484
12865
  return "??=";
12485
12866
  });
12486
- var AssignmentOpSymbol$24 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L3, 'AssignmentOpSymbol "="'), (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R24, "AssignmentOpSymbol /[=>]/"))), function(value) {
12867
+ var AssignmentOpSymbol$24 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L3, 'AssignmentOpSymbol "="'), (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R25, "AssignmentOpSymbol /[=>]/"))), function(value) {
12487
12868
  return value[0];
12488
12869
  });
12489
12870
  var AssignmentOpSymbol$25 = (0, import_lib4.$T)((0, import_lib4.$S)(CoffeeWordAssignmentOp), function(value) {
@@ -12536,7 +12917,7 @@ var IdentifierBinaryOp$0 = (0, import_lib4.$TV)(Identifier, function($skip, $loc
12536
12917
  function IdentifierBinaryOp(ctx, state2) {
12537
12918
  return (0, import_lib4.$EVENT)(ctx, state2, "IdentifierBinaryOp", IdentifierBinaryOp$0);
12538
12919
  }
12539
- var BinaryOp$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R25, "BinaryOp /(?=\\p{ID_Start}|[_$^\u226A\u226B\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%\xF7<>\u29FA+-])/"), _BinaryOp), function(value) {
12920
+ var BinaryOp$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R26, "BinaryOp /(?=\\p{ID_Start}|[_$^\u226A\u226B\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%\xF7<>\u29FA+-])/"), _BinaryOp), function(value) {
12540
12921
  var op = value[1];
12541
12922
  return op;
12542
12923
  });
@@ -12681,7 +13062,7 @@ var BinaryOpSymbol$35 = (0, import_lib4.$TV)((0, import_lib4.$C)((0, import_lib4
12681
13062
  prec: "^^"
12682
13063
  };
12683
13064
  });
12684
- var BinaryOpSymbol$36 = (0, import_lib4.$TV)((0, import_lib4.$C)((0, import_lib4.$EXPECT)($R26, "BinaryOpSymbol /!\\^\\^?/"), (0, import_lib4.$S)((0, import_lib4.$EXPECT)($L109, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
13065
+ var BinaryOpSymbol$36 = (0, import_lib4.$TV)((0, import_lib4.$C)((0, import_lib4.$EXPECT)($R27, "BinaryOpSymbol /!\\^\\^?/"), (0, import_lib4.$S)((0, import_lib4.$EXPECT)($L109, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
12685
13066
  return {
12686
13067
  call: getHelperRef("xnor"),
12687
13068
  special: true,
@@ -12845,24 +13226,24 @@ var Xor$$ = [Xor$0, Xor$1];
12845
13226
  function Xor(ctx, state2) {
12846
13227
  return (0, import_lib4.$EVENT_C)(ctx, state2, "Xor", Xor$$);
12847
13228
  }
12848
- var Xnor$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R26, "Xnor /!\\^\\^?/"));
13229
+ var Xnor$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R27, "Xnor /!\\^\\^?/"));
12849
13230
  var Xnor$1 = (0, import_lib4.$EXPECT)($L109, 'Xnor "xnor"');
12850
13231
  var Xnor$$ = [Xnor$0, Xnor$1];
12851
13232
  function Xnor(ctx, state2) {
12852
13233
  return (0, import_lib4.$EVENT_C)(ctx, state2, "Xnor", Xnor$$);
12853
13234
  }
12854
- var UnaryOp$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R27, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13235
+ var UnaryOp$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R28, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12855
13236
  return { $loc, token: $0 };
12856
13237
  });
12857
13238
  var UnaryOp$1 = AwaitOp;
12858
- var UnaryOp$2 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(Delete, Void, Typeof), (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R28, "UnaryOp /[:.]/")), (0, import_lib4.$E)(_)), function($skip, $loc, $0, $1, $2, $3) {
13239
+ var UnaryOp$2 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(Delete, Void, Typeof), (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R29, "UnaryOp /[:.]/")), (0, import_lib4.$E)(_)), function($skip, $loc, $0, $1, $2, $3) {
12859
13240
  var op = $1;
12860
13241
  var ws = $3;
12861
13242
  if (!ws)
12862
13243
  return [op, [" "]];
12863
13244
  return [op, ws];
12864
13245
  });
12865
- var UnaryOp$3 = (0, import_lib4.$T)((0, import_lib4.$S)(Not, (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R28, "UnaryOp /[:.]/")), (0, import_lib4.$E)((0, import_lib4.$EXPECT)($L18, 'UnaryOp " "')), (0, import_lib4.$E)(_)), function(value) {
13246
+ var UnaryOp$3 = (0, import_lib4.$T)((0, import_lib4.$S)(Not, (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R29, "UnaryOp /[:.]/")), (0, import_lib4.$E)((0, import_lib4.$EXPECT)($L18, 'UnaryOp " "')), (0, import_lib4.$E)(_)), function(value) {
12866
13247
  return [value[0], value[3]];
12867
13248
  });
12868
13249
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -12949,7 +13330,7 @@ var PostfixedCommaExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Postfi
12949
13330
  function PostfixedCommaExpression(ctx, state2) {
12950
13331
  return (0, import_lib4.$EVENT)(ctx, state2, "PostfixedCommaExpression", PostfixedCommaExpression$0);
12951
13332
  }
12952
- var PostfixStatement$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R29, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
13333
+ var PostfixStatement$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R30, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
12953
13334
  return value[1];
12954
13335
  });
12955
13336
  function PostfixStatement(ctx, state2) {
@@ -12989,7 +13370,9 @@ function Statement(ctx, state2) {
12989
13370
  }
12990
13371
  var ShouldExpressionize$0 = AllowedTrailingCallExpressions;
12991
13372
  var ShouldExpressionize$1 = (0, import_lib4.$S)(NotDedented, Pipe);
12992
- var ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1];
13373
+ var ShouldExpressionize$2 = BinaryOpRHS;
13374
+ var ShouldExpressionize$3 = UnaryPostfix;
13375
+ var ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1, ShouldExpressionize$2, ShouldExpressionize$3];
12993
13376
  function ShouldExpressionize(ctx, state2) {
12994
13377
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ShouldExpressionize", ShouldExpressionize$$);
12995
13378
  }
@@ -13140,7 +13523,7 @@ var IfClause$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(If
13140
13523
  function IfClause(ctx, state2) {
13141
13524
  return (0, import_lib4.$EVENT)(ctx, state2, "IfClause", IfClause$0);
13142
13525
  }
13143
- var IterationStatement$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R30, "IterationStatement /(?=loop|comptime|do|for|until|while)/"), _IterationStatement), function(value) {
13526
+ var IterationStatement$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R31, "IterationStatement /(?=loop|comptime|do|for|until|while)/"), _IterationStatement), function(value) {
13144
13527
  return value[1];
13145
13528
  });
13146
13529
  function IterationStatement(ctx, state2) {
@@ -13692,12 +14075,14 @@ var CaseClause$3 = (0, import_lib4.$TS)((0, import_lib4.$S)(Default, ImpliedColo
13692
14075
  };
13693
14076
  });
13694
14077
  var CaseClause$4 = (0, import_lib4.$TS)((0, import_lib4.$S)(Else, ImpliedColon, (0, import_lib4.$C)(ThenClause, BracedBlock, EmptyBlock)), function($skip, $loc, $0, $1, $2, $3) {
14078
+ var e = $1;
14079
+ var colon = $2;
13695
14080
  var block = $3;
13696
- $1.token = "default";
14081
+ e = { ...e, token: "default" };
13697
14082
  return {
13698
14083
  type: "DefaultClause",
13699
14084
  block,
13700
- children: $0
14085
+ children: [e, colon, block]
13701
14086
  };
13702
14087
  });
13703
14088
  var CaseClause$$ = [CaseClause$0, CaseClause$1, CaseClause$2, CaseClause$3, CaseClause$4];
@@ -13768,36 +14153,56 @@ var IgnoreColon$0 = (0, import_lib4.$TV)((0, import_lib4.$E)((0, import_lib4.$S)
13768
14153
  function IgnoreColon(ctx, state2) {
13769
14154
  return (0, import_lib4.$EVENT)(ctx, state2, "IgnoreColon", IgnoreColon$0);
13770
14155
  }
13771
- var TryStatement$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Try, (0, import_lib4.$N)((0, import_lib4.$EXPECT)($L16, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, (0, import_lib4.$E)(CatchClause), (0, import_lib4.$E)(ElseClause), (0, import_lib4.$E)(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
14156
+ var TryStatement$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Try, (0, import_lib4.$N)((0, import_lib4.$EXPECT)($L16, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, (0, import_lib4.$Q)(CatchClause), (0, import_lib4.$E)(ElseClause), (0, import_lib4.$E)(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13772
14157
  return processTryBlock($0);
13773
14158
  });
13774
14159
  function TryStatement(ctx, state2) {
13775
14160
  return (0, import_lib4.$EVENT)(ctx, state2, "TryStatement", TryStatement$0);
13776
14161
  }
13777
- var CatchClause$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(Nested, _), Catch, (0, import_lib4.$E)(CatchBind), (0, import_lib4.$C)(BracedThenClause, BracedOrEmptyBlock)), function($skip, $loc, $0, $1, $2, $3, $4) {
14162
+ var CatchClause$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(Nested, _), Catch, (0, import_lib4.$E)(CatchBinding), (0, import_lib4.$C)(BracedThenClause, BracedOrEmptyBlock)), function($skip, $loc, $0, $1, $2, $3, $4) {
14163
+ var binding = $3;
13778
14164
  var block = $4;
13779
14165
  return {
13780
14166
  type: "CatchClause",
13781
14167
  children: $0,
13782
- block
14168
+ block,
14169
+ binding
13783
14170
  };
13784
14171
  });
13785
14172
  function CatchClause(ctx, state2) {
13786
14173
  return (0, import_lib4.$EVENT)(ctx, state2, "CatchClause", CatchClause$0);
13787
14174
  }
13788
- var CatchBind$0 = (0, import_lib4.$S)((0, import_lib4.$E)(_), OpenParen, __, CatchParameter, __, CloseParen);
13789
- var CatchBind$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(_, InsertOpenParen, (0, import_lib4.$N)(EOS), ForbidIndentedApplication, (0, import_lib4.$E)(CatchParameter), RestoreIndentedApplication, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
14175
+ var CatchBinding$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(_), OpenParen, __, AllowAll, (0, import_lib4.$E)(CatchParameter), RestoreAll, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
14176
+ var ws1 = $1;
14177
+ var open = $2;
14178
+ var ws2 = $3;
14179
+ var parameter = $5;
14180
+ var ws3 = $7;
14181
+ var close = $8;
14182
+ if (!parameter)
14183
+ return $skip;
14184
+ return {
14185
+ type: "CatchBinding",
14186
+ parameter,
14187
+ children: [ws1, open, ws2, parameter, ws3, close]
14188
+ };
14189
+ });
14190
+ var CatchBinding$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(_, InsertOpenParen, (0, import_lib4.$N)(EOS), ForbidIndentedApplication, (0, import_lib4.$E)(CatchParameter), RestoreIndentedApplication, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
13790
14191
  var ws = $1;
13791
14192
  var open = $2;
13792
- var param = $5;
14193
+ var parameter = $5;
13793
14194
  var close = $7;
13794
- if (!param)
14195
+ if (!parameter)
13795
14196
  return $skip;
13796
- return [ws, open, param, close];
14197
+ return {
14198
+ type: "CatchBinding",
14199
+ parameter,
14200
+ children: [ws, open, parameter, close]
14201
+ };
13797
14202
  });
13798
- var CatchBind$$ = [CatchBind$0, CatchBind$1];
13799
- function CatchBind(ctx, state2) {
13800
- return (0, import_lib4.$EVENT_C)(ctx, state2, "CatchBind", CatchBind$$);
14203
+ var CatchBinding$$ = [CatchBinding$0, CatchBinding$1];
14204
+ function CatchBinding(ctx, state2) {
14205
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "CatchBinding", CatchBinding$$);
13801
14206
  }
13802
14207
  var FinallyClause$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(Nested, _), Finally, (0, import_lib4.$C)(BracedThenClause, BracedOrEmptyBlock)), function($skip, $loc, $0, $1, $2, $3) {
13803
14208
  var block = $3;
@@ -13810,9 +14215,34 @@ var FinallyClause$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$
13810
14215
  function FinallyClause(ctx, state2) {
13811
14216
  return (0, import_lib4.$EVENT)(ctx, state2, "FinallyClause", FinallyClause$0);
13812
14217
  }
13813
- var CatchParameter$0 = (0, import_lib4.$S)(BindingIdentifier, (0, import_lib4.$E)(TypeSuffix));
13814
- var CatchParameter$1 = (0, import_lib4.$S)(BindingPattern, (0, import_lib4.$E)(TypeSuffix));
13815
- var CatchParameter$$ = [CatchParameter$0, CatchParameter$1];
14218
+ var CatchParameter$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(BindingIdentifier, (0, import_lib4.$E)(TypeSuffix)), function($skip, $loc, $0, $1, $2) {
14219
+ var binding = $1;
14220
+ var typeSuffix = $2;
14221
+ return {
14222
+ type: "CatchParameter",
14223
+ binding,
14224
+ typeSuffix,
14225
+ children: $0
14226
+ };
14227
+ });
14228
+ var CatchParameter$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(ObjectBindingPattern, ArrayBindingPattern), TypeSuffix), function($skip, $loc, $0, $1, $2) {
14229
+ var binding = $1;
14230
+ var typeSuffix = $2;
14231
+ return {
14232
+ type: "CatchParameter",
14233
+ binding,
14234
+ typeSuffix,
14235
+ children: [binding, typeSuffix]
14236
+ };
14237
+ });
14238
+ var CatchParameter$2 = (0, import_lib4.$TS)((0, import_lib4.$S)(PatternExpressionList), function($skip, $loc, $0, $1) {
14239
+ return {
14240
+ type: "CatchPattern",
14241
+ children: $0,
14242
+ patterns: $1
14243
+ };
14244
+ });
14245
+ var CatchParameter$$ = [CatchParameter$0, CatchParameter$1, CatchParameter$2];
13816
14246
  function CatchParameter(ctx, state2) {
13817
14247
  return (0, import_lib4.$EVENT_C)(ctx, state2, "CatchParameter", CatchParameter$$);
13818
14248
  }
@@ -14580,7 +15010,7 @@ var UnprocessedModuleSpecifier$$ = [UnprocessedModuleSpecifier$0, UnprocessedMod
14580
15010
  function UnprocessedModuleSpecifier(ctx, state2) {
14581
15011
  return (0, import_lib4.$EVENT_C)(ctx, state2, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
14582
15012
  }
14583
- var UnquotedSpecifier$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($R31, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
15013
+ var UnquotedSpecifier$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($R32, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
14584
15014
  var spec = $0;
14585
15015
  return { $loc, token: `"${spec}"` };
14586
15016
  });
@@ -14840,7 +15270,7 @@ var VariableDeclarationList$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Lexical
14840
15270
  function VariableDeclarationList(ctx, state2) {
14841
15271
  return (0, import_lib4.$EVENT)(ctx, state2, "VariableDeclarationList", VariableDeclarationList$0);
14842
15272
  }
14843
- var NumericLiteral$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R32, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
15273
+ var NumericLiteral$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R33, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
14844
15274
  var token = $2;
14845
15275
  return { type: "NumericLiteral", $loc, token };
14846
15276
  });
@@ -14856,36 +15286,36 @@ var NumericLiteralKind$$ = [NumericLiteralKind$0, NumericLiteralKind$1, NumericL
14856
15286
  function NumericLiteralKind(ctx, state2) {
14857
15287
  return (0, import_lib4.$EVENT_C)(ctx, state2, "NumericLiteralKind", NumericLiteralKind$$);
14858
15288
  }
14859
- var DecimalBigIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R33, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
15289
+ var DecimalBigIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R34, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
14860
15290
  function DecimalBigIntegerLiteral(ctx, state2) {
14861
15291
  return (0, import_lib4.$EVENT)(ctx, state2, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
14862
15292
  }
14863
- var DecimalLiteral$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R34, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
15293
+ var DecimalLiteral$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R35, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
14864
15294
  return $1 + ".";
14865
15295
  });
14866
- var DecimalLiteral$1 = (0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R35, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), (0, import_lib4.$E)(ExponentPart)));
14867
- var DecimalLiteral$2 = (0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R36, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), (0, import_lib4.$E)(ExponentPart)));
15296
+ var DecimalLiteral$1 = (0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R36, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), (0, import_lib4.$E)(ExponentPart)));
15297
+ var DecimalLiteral$2 = (0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R37, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), (0, import_lib4.$E)(ExponentPart)));
14868
15298
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
14869
15299
  function DecimalLiteral(ctx, state2) {
14870
15300
  return (0, import_lib4.$EVENT_C)(ctx, state2, "DecimalLiteral", DecimalLiteral$$);
14871
15301
  }
14872
- var ExponentPart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R37, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
15302
+ var ExponentPart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R38, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
14873
15303
  function ExponentPart(ctx, state2) {
14874
15304
  return (0, import_lib4.$EVENT)(ctx, state2, "ExponentPart", ExponentPart$0);
14875
15305
  }
14876
- var BinaryIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R38, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
15306
+ var BinaryIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R39, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
14877
15307
  function BinaryIntegerLiteral(ctx, state2) {
14878
15308
  return (0, import_lib4.$EVENT)(ctx, state2, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
14879
15309
  }
14880
- var OctalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R39, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
15310
+ var OctalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R40, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
14881
15311
  function OctalIntegerLiteral(ctx, state2) {
14882
15312
  return (0, import_lib4.$EVENT)(ctx, state2, "OctalIntegerLiteral", OctalIntegerLiteral$0);
14883
15313
  }
14884
- var HexIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R40, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
15314
+ var HexIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R41, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
14885
15315
  function HexIntegerLiteral(ctx, state2) {
14886
15316
  return (0, import_lib4.$EVENT)(ctx, state2, "HexIntegerLiteral", HexIntegerLiteral$0);
14887
15317
  }
14888
- var IntegerLiteral$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R41, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
15318
+ var IntegerLiteral$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R42, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
14889
15319
  var token = $2;
14890
15320
  return { $loc, token };
14891
15321
  });
@@ -14901,7 +15331,7 @@ var IntegerLiteralKind$$ = [IntegerLiteralKind$0, IntegerLiteralKind$1, IntegerL
14901
15331
  function IntegerLiteralKind(ctx, state2) {
14902
15332
  return (0, import_lib4.$EVENT_C)(ctx, state2, "IntegerLiteralKind", IntegerLiteralKind$$);
14903
15333
  }
14904
- var DecimalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R42, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
15334
+ var DecimalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R43, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
14905
15335
  function DecimalIntegerLiteral(ctx, state2) {
14906
15336
  return (0, import_lib4.$EVENT)(ctx, state2, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
14907
15337
  }
@@ -14925,25 +15355,25 @@ var StringLiteral$$ = [StringLiteral$0, StringLiteral$1];
14925
15355
  function StringLiteral(ctx, state2) {
14926
15356
  return (0, import_lib4.$EVENT_C)(ctx, state2, "StringLiteral", StringLiteral$$);
14927
15357
  }
14928
- var DoubleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R43, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15358
+ var DoubleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R44, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14929
15359
  return { $loc, token: $0 };
14930
15360
  });
14931
15361
  function DoubleStringCharacters(ctx, state2) {
14932
15362
  return (0, import_lib4.$EVENT)(ctx, state2, "DoubleStringCharacters", DoubleStringCharacters$0);
14933
15363
  }
14934
- var SingleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R44, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15364
+ var SingleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R45, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14935
15365
  return { $loc, token: $0 };
14936
15366
  });
14937
15367
  function SingleStringCharacters(ctx, state2) {
14938
15368
  return (0, import_lib4.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
14939
15369
  }
14940
- var TripleDoubleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R45, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15370
+ var TripleDoubleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R46, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14941
15371
  return { $loc, token: $0 };
14942
15372
  });
14943
15373
  function TripleDoubleStringCharacters(ctx, state2) {
14944
15374
  return (0, import_lib4.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
14945
15375
  }
14946
- var TripleSingleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R46, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15376
+ var TripleSingleStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R47, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14947
15377
  return { $loc, token: $0 };
14948
15378
  });
14949
15379
  function TripleSingleStringCharacters(ctx, state2) {
@@ -14966,7 +15396,7 @@ var CoffeeInterpolatedDoubleQuotedString$0 = (0, import_lib4.$TS)((0, import_lib
14966
15396
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
14967
15397
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
14968
15398
  }
14969
- var CoffeeDoubleQuotedStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R47, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15399
+ var CoffeeDoubleQuotedStringCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R48, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14970
15400
  return { $loc, token: $0 };
14971
15401
  });
14972
15402
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -14986,7 +15416,7 @@ var RegularExpressionClass$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, i
14986
15416
  function RegularExpressionClass(ctx, state2) {
14987
15417
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
14988
15418
  }
14989
- var RegularExpressionClassCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R48, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15419
+ var RegularExpressionClassCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R49, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14990
15420
  return { $loc, token: $0 };
14991
15421
  });
14992
15422
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -15043,7 +15473,7 @@ var HeregexPart$1 = (0, import_lib4.$T)((0, import_lib4.$S)(CoffeeStringSubstitu
15043
15473
  var HeregexPart$2 = (0, import_lib4.$T)((0, import_lib4.$S)(TemplateSubstitution), function(value) {
15044
15474
  return { "type": "Substitution", "children": value[0] };
15045
15475
  });
15046
- var HeregexPart$3 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R49, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15476
+ var HeregexPart$3 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R50, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15047
15477
  let token = $0;
15048
15478
  switch ($0[1]) {
15049
15479
  case "\n":
@@ -15061,13 +15491,13 @@ var HeregexPart$3 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R49, "Heregex
15061
15491
  var HeregexPart$4 = (0, import_lib4.$TS)((0, import_lib4.$S)(HeregexComment), function($skip, $loc, $0, $1) {
15062
15492
  return { $loc, token: "" };
15063
15493
  });
15064
- var HeregexPart$5 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R50, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15494
+ var HeregexPart$5 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R51, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15065
15495
  return { $loc, token: "" };
15066
15496
  });
15067
- var HeregexPart$6 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R51, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15497
+ var HeregexPart$6 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R52, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15068
15498
  return { $loc, token: "\\/" };
15069
15499
  });
15070
- var HeregexPart$7 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R52, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15500
+ var HeregexPart$7 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R53, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15071
15501
  return { $loc, token: $0 };
15072
15502
  });
15073
15503
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -15080,7 +15510,7 @@ var HeregexComment$$ = [HeregexComment$0, HeregexComment$1];
15080
15510
  function HeregexComment(ctx, state2) {
15081
15511
  return (0, import_lib4.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
15082
15512
  }
15083
- var RegularExpressionBody$0 = (0, import_lib4.$S)((0, import_lib4.$N)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R53, "RegularExpressionBody /[*\\/\\r\\n]/"))), (0, import_lib4.$Q)(RegExpPart));
15513
+ var RegularExpressionBody$0 = (0, import_lib4.$S)((0, import_lib4.$N)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R54, "RegularExpressionBody /[*\\/\\r\\n]/"))), (0, import_lib4.$Q)(RegExpPart));
15084
15514
  function RegularExpressionBody(ctx, state2) {
15085
15515
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
15086
15516
  }
@@ -15090,15 +15520,15 @@ var RegExpPart$$ = [RegExpPart$0, RegExpPart$1];
15090
15520
  function RegExpPart(ctx, state2) {
15091
15521
  return (0, import_lib4.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
15092
15522
  }
15093
- var RegExpCharacter$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R54, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
15523
+ var RegExpCharacter$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R55, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
15094
15524
  function RegExpCharacter(ctx, state2) {
15095
15525
  return (0, import_lib4.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
15096
15526
  }
15097
- var RegularExpressionFlags$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R55, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
15527
+ var RegularExpressionFlags$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R56, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
15098
15528
  function RegularExpressionFlags(ctx, state2) {
15099
15529
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
15100
15530
  }
15101
- var TemplateLiteral$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R56, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
15531
+ var TemplateLiteral$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R57, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
15102
15532
  return value[1];
15103
15533
  });
15104
15534
  function TemplateLiteral(ctx, state2) {
@@ -15138,28 +15568,28 @@ var TemplateSubstitution$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Substituti
15138
15568
  function TemplateSubstitution(ctx, state2) {
15139
15569
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
15140
15570
  }
15141
- var TemplateCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R57, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15571
+ var TemplateCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R58, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15142
15572
  return { $loc, token: $0 };
15143
15573
  });
15144
15574
  function TemplateCharacters(ctx, state2) {
15145
15575
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
15146
15576
  }
15147
- var TemplateBlockCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R58, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15577
+ var TemplateBlockCharacters$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R59, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15148
15578
  return { $loc, token: $0 };
15149
15579
  });
15150
15580
  function TemplateBlockCharacters(ctx, state2) {
15151
15581
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
15152
15582
  }
15153
- var ReservedWord$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R59, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
15154
- var ReservedWord$1 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R60, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
15155
- var ReservedWord$2 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R61, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
15156
- var ReservedWord$3 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R62, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
15157
- var ReservedWord$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R63, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
15583
+ var ReservedWord$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R60, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
15584
+ var ReservedWord$1 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R61, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
15585
+ var ReservedWord$2 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R62, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
15586
+ var ReservedWord$3 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R63, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
15587
+ var ReservedWord$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R64, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
15158
15588
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
15159
15589
  function ReservedWord(ctx, state2) {
15160
15590
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
15161
15591
  }
15162
- var Comment$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R64, "Comment /(?=\\/|#)/"), _Comment), function(value) {
15592
+ var Comment$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R65, "Comment /(?=\\/|#)/"), _Comment), function(value) {
15163
15593
  return value[1];
15164
15594
  });
15165
15595
  function Comment(ctx, state2) {
@@ -15177,7 +15607,7 @@ var SingleLineComment$$ = [SingleLineComment$0, SingleLineComment$1];
15177
15607
  function SingleLineComment(ctx, state2) {
15178
15608
  return (0, import_lib4.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
15179
15609
  }
15180
- var JSSingleLineComment$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R65, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15610
+ var JSSingleLineComment$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R66, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15181
15611
  return { type: "Comment", $loc, token: $0 };
15182
15612
  });
15183
15613
  function JSSingleLineComment(ctx, state2) {
@@ -15189,30 +15619,30 @@ var MultiLineComment$$ = [MultiLineComment$0, MultiLineComment$1];
15189
15619
  function MultiLineComment(ctx, state2) {
15190
15620
  return (0, import_lib4.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
15191
15621
  }
15192
- var JSMultiLineComment$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L130, 'JSMultiLineComment "/*"'), (0, import_lib4.$Q)((0, import_lib4.$S)((0, import_lib4.$N)((0, import_lib4.$EXPECT)($L131, 'JSMultiLineComment "*/"')), (0, import_lib4.$EXPECT)($R66, "JSMultiLineComment /./"))), (0, import_lib4.$EXPECT)($L131, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
15622
+ var JSMultiLineComment$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L130, 'JSMultiLineComment "/*"'), (0, import_lib4.$Q)((0, import_lib4.$S)((0, import_lib4.$N)((0, import_lib4.$EXPECT)($L131, 'JSMultiLineComment "*/"')), (0, import_lib4.$EXPECT)($R67, "JSMultiLineComment /./"))), (0, import_lib4.$EXPECT)($L131, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
15193
15623
  return { type: "Comment", $loc, token: $1 };
15194
15624
  });
15195
15625
  function JSMultiLineComment(ctx, state2) {
15196
15626
  return (0, import_lib4.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
15197
15627
  }
15198
- var CoffeeSingleLineComment$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R67, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15628
+ var CoffeeSingleLineComment$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R68, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15199
15629
  return { type: "Comment", $loc, token: `//${$1}` };
15200
15630
  });
15201
15631
  function CoffeeSingleLineComment(ctx, state2) {
15202
15632
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
15203
15633
  }
15204
- var CoffeeMultiLineComment$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(CoffeeHereCommentStart, (0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R68, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
15634
+ var CoffeeMultiLineComment$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(CoffeeHereCommentStart, (0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R69, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
15205
15635
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
15206
15636
  return { type: "Comment", $loc, token: `/*${$2}*/` };
15207
15637
  });
15208
15638
  function CoffeeMultiLineComment(ctx, state2) {
15209
15639
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
15210
15640
  }
15211
- var CoffeeHereCommentStart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R69, "CoffeeHereCommentStart /###(?!#)/"));
15641
+ var CoffeeHereCommentStart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R70, "CoffeeHereCommentStart /###(?!#)/"));
15212
15642
  function CoffeeHereCommentStart(ctx, state2) {
15213
15643
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
15214
15644
  }
15215
- var InlineComment$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R70, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15645
+ var InlineComment$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R71, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15216
15646
  return { $loc, token: $0 };
15217
15647
  });
15218
15648
  function InlineComment(ctx, state2) {
@@ -15226,13 +15656,13 @@ var TrailingComment$0 = (0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_l
15226
15656
  function TrailingComment(ctx, state2) {
15227
15657
  return (0, import_lib4.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
15228
15658
  }
15229
- var _$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R71, "_ /(?=[ \\t\\/\\\\])/"), (0, import_lib4.$P)((0, import_lib4.$C)(NonNewlineWhitespace, InlineComment))), function(value) {
15659
+ var _$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R72, "_ /(?=[ \\t\\/\\\\])/"), (0, import_lib4.$P)((0, import_lib4.$C)(NonNewlineWhitespace, InlineComment))), function(value) {
15230
15660
  return value[1];
15231
15661
  });
15232
15662
  function _(ctx, state2) {
15233
15663
  return (0, import_lib4.$EVENT)(ctx, state2, "_", _$0);
15234
15664
  }
15235
- var NonNewlineWhitespace$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R21, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15665
+ var NonNewlineWhitespace$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R22, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15236
15666
  return { $loc, token: $0 };
15237
15667
  });
15238
15668
  var NonNewlineWhitespace$1 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L132, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
@@ -15249,7 +15679,7 @@ var Trimmed_$0 = (0, import_lib4.$TV)(_, function($skip, $loc, $0, $1) {
15249
15679
  function Trimmed_(ctx, state2) {
15250
15680
  return (0, import_lib4.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
15251
15681
  }
15252
- var __$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R72, "__ /(?=\\s|\\/|#)/"), (0, import_lib4.$Q)((0, import_lib4.$C)(Whitespace, Comment))), function(value) {
15682
+ var __$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R73, "__ /(?=\\s|\\/|#)/"), (0, import_lib4.$Q)((0, import_lib4.$C)(Whitespace, Comment))), function(value) {
15253
15683
  return value[1];
15254
15684
  });
15255
15685
  var __$1 = (0, import_lib4.$EXPECT)($L0, '__ ""');
@@ -15257,7 +15687,7 @@ var __$$ = [__$0, __$1];
15257
15687
  function __(ctx, state2) {
15258
15688
  return (0, import_lib4.$EVENT_C)(ctx, state2, "__", __$$);
15259
15689
  }
15260
- var Whitespace$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R50, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15690
+ var Whitespace$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R51, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15261
15691
  return { $loc, token: $0 };
15262
15692
  });
15263
15693
  function Whitespace(ctx, state2) {
@@ -15295,7 +15725,7 @@ var SemicolonDelimiter$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_l
15295
15725
  function SemicolonDelimiter(ctx, state2) {
15296
15726
  return (0, import_lib4.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
15297
15727
  }
15298
- var NonIdContinue$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R73, "NonIdContinue /(?!\\p{ID_Continue})/"));
15728
+ var NonIdContinue$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R74, "NonIdContinue /(?!\\p{ID_Continue})/"));
15299
15729
  function NonIdContinue(ctx, state2) {
15300
15730
  return (0, import_lib4.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
15301
15731
  }
@@ -15413,7 +15843,7 @@ var CoffeeSubstitutionStart$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($L
15413
15843
  function CoffeeSubstitutionStart(ctx, state2) {
15414
15844
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
15415
15845
  }
15416
- var Colon$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L16, 'Colon ":"'), (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R74, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
15846
+ var Colon$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L16, 'Colon ":"'), (0, import_lib4.$N)((0, import_lib4.$EXPECT)($R75, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
15417
15847
  return { $loc, token: $1 };
15418
15848
  });
15419
15849
  function Colon(ctx, state2) {
@@ -15464,7 +15894,7 @@ function Do(ctx, state2) {
15464
15894
  var Dot$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
15465
15895
  return { $loc, token: $1 };
15466
15896
  });
15467
- var Dot$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R75, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
15897
+ var Dot$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R76, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
15468
15898
  var ws = $2;
15469
15899
  return [
15470
15900
  { $loc, token: "." },
@@ -15591,7 +16021,7 @@ var If$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$S)((0, i
15591
16021
  function If(ctx, state2) {
15592
16022
  return (0, import_lib4.$EVENT)(ctx, state2, "If", If$0);
15593
16023
  }
15594
- var Import$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L15, 'Import "import"'), (0, import_lib4.$Y)((0, import_lib4.$EXPECT)($R76, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
16024
+ var Import$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L15, 'Import "import"'), (0, import_lib4.$Y)((0, import_lib4.$EXPECT)($R77, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
15595
16025
  return { $loc, token: $1 };
15596
16026
  });
15597
16027
  function Import(ctx, state2) {
@@ -15949,7 +16379,7 @@ var JSXImplicitFragment$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(JSXTag, (0,
15949
16379
  function JSXImplicitFragment(ctx, state2) {
15950
16380
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
15951
16381
  }
15952
- var JSXTag$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R77, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
16382
+ var JSXTag$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R78, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
15953
16383
  return value[1];
15954
16384
  });
15955
16385
  function JSXTag(ctx, state2) {
@@ -16096,7 +16526,7 @@ var JSXElementName$$ = [JSXElementName$0, JSXElementName$1];
16096
16526
  function JSXElementName(ctx, state2) {
16097
16527
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
16098
16528
  }
16099
- var JSXIdentifierName$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R78, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
16529
+ var JSXIdentifierName$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R79, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
16100
16530
  function JSXIdentifierName(ctx, state2) {
16101
16531
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
16102
16532
  }
@@ -16275,7 +16705,7 @@ var JSXAttribute$6 = (0, import_lib4.$TS)((0, import_lib4.$S)(Dot, JSXShorthandS
16275
16705
  class: $2
16276
16706
  };
16277
16707
  });
16278
- var JSXAttribute$7 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R79, "JSXAttribute /[!+-]/")), JSXAttributeName, (0, import_lib4.$Y)(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
16708
+ var JSXAttribute$7 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$TEXT)((0, import_lib4.$EXPECT)($R80, "JSXAttribute /[!+-]/")), JSXAttributeName, (0, import_lib4.$Y)(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
16279
16709
  var toggle = $1;
16280
16710
  var id = $2;
16281
16711
  const value = toggle === "+" ? "true" : "false";
@@ -16285,11 +16715,11 @@ var JSXAttribute$$ = [JSXAttribute$0, JSXAttribute$1, JSXAttribute$2, JSXAttribu
16285
16715
  function JSXAttribute(ctx, state2) {
16286
16716
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
16287
16717
  }
16288
- var JSXAttributeSpace$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R80, "JSXAttributeSpace /[\\s>]|\\/>/"));
16718
+ var JSXAttributeSpace$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R81, "JSXAttributeSpace /[\\s>]|\\/>/"));
16289
16719
  function JSXAttributeSpace(ctx, state2) {
16290
16720
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
16291
16721
  }
16292
- var JSXShorthandString$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R81, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16722
+ var JSXShorthandString$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R82, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16293
16723
  return quoteString($0);
16294
16724
  });
16295
16725
  var JSXShorthandString$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -16336,7 +16766,7 @@ var JSXAttributeValue$3 = (0, import_lib4.$TS)((0, import_lib4.$S)(InsertInlineO
16336
16766
  }
16337
16767
  return [open, value, close];
16338
16768
  });
16339
- var JSXAttributeValue$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R82, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
16769
+ var JSXAttributeValue$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R83, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
16340
16770
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
16341
16771
  function JSXAttributeValue(ctx, state2) {
16342
16772
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -16349,7 +16779,7 @@ var InlineJSXAttributeValue$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(InlineJ
16349
16779
  function InlineJSXAttributeValue(ctx, state2) {
16350
16780
  return (0, import_lib4.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
16351
16781
  }
16352
- var InlineJSXBinaryOpRHS$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$N)((0, import_lib4.$EXPECT)($R83, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
16782
+ var InlineJSXBinaryOpRHS$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$N)((0, import_lib4.$EXPECT)($R84, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
16353
16783
  var op = $2;
16354
16784
  var rhs = $3;
16355
16785
  return [[], op, [], rhs];
@@ -16366,7 +16796,7 @@ var InlineJSXUnaryExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, im
16366
16796
  function InlineJSXUnaryExpression(ctx, state2) {
16367
16797
  return (0, import_lib4.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
16368
16798
  }
16369
- var InlineJSXUnaryOp$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R84, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16799
+ var InlineJSXUnaryOp$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R85, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16370
16800
  return { $loc, token: $0 };
16371
16801
  });
16372
16802
  function InlineJSXUnaryOp(ctx, state2) {
@@ -16617,13 +17047,13 @@ var JSXComment$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXP
16617
17047
  function JSXComment(ctx, state2) {
16618
17048
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
16619
17049
  }
16620
- var JSXCommentContent$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R85, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17050
+ var JSXCommentContent$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R86, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16621
17051
  return { $loc, token: $0.replace(/\*\//g, "* /") };
16622
17052
  });
16623
17053
  function JSXCommentContent(ctx, state2) {
16624
17054
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
16625
17055
  }
16626
- var JSXText$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R86, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17056
+ var JSXText$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R87, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16627
17057
  return {
16628
17058
  type: "JSXText",
16629
17059
  token: $0,
@@ -17157,7 +17587,7 @@ var TypeProperty$0 = (0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)
17157
17587
  function TypeProperty(ctx, state2) {
17158
17588
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
17159
17589
  }
17160
- var TypeIndexSignature$0 = (0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R87, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, (0, import_lib4.$E)((0, import_lib4.$S)(__, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R13, "TypeIndexSignature /[+-]/")), (0, import_lib4.$Y)((0, import_lib4.$S)((0, import_lib4.$E)(_), QuestionMark)))));
17590
+ var TypeIndexSignature$0 = (0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R88, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, (0, import_lib4.$E)((0, import_lib4.$S)(__, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R13, "TypeIndexSignature /[+-]/")), (0, import_lib4.$Y)((0, import_lib4.$S)((0, import_lib4.$E)(_), QuestionMark)))));
17161
17591
  function TypeIndexSignature(ctx, state2) {
17162
17592
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
17163
17593
  }
@@ -17218,6 +17648,19 @@ var MaybeNestedTypePrimary$$ = [MaybeNestedTypePrimary$0, MaybeNestedTypePrimary
17218
17648
  function MaybeNestedTypePrimary(ctx, state2) {
17219
17649
  return (0, import_lib4.$EVENT_C)(ctx, state2, "MaybeNestedTypePrimary", MaybeNestedTypePrimary$$);
17220
17650
  }
17651
+ var MaybeNestedTypeUnary$0 = NestedTypeBulletedTuple;
17652
+ var MaybeNestedTypeUnary$1 = NestedInterfaceBlock;
17653
+ var MaybeNestedTypeUnary$2 = NestedTypeBinaryChain;
17654
+ var MaybeNestedTypeUnary$3 = (0, import_lib4.$TS)((0, import_lib4.$S)(PushIndent, (0, import_lib4.$E)((0, import_lib4.$S)(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
17655
+ if (!$2)
17656
+ return $skip;
17657
+ return $2;
17658
+ });
17659
+ var MaybeNestedTypeUnary$4 = (0, import_lib4.$S)(NotDedented, TypeUnary);
17660
+ var MaybeNestedTypeUnary$$ = [MaybeNestedTypeUnary$0, MaybeNestedTypeUnary$1, MaybeNestedTypeUnary$2, MaybeNestedTypeUnary$3, MaybeNestedTypeUnary$4];
17661
+ function MaybeNestedTypeUnary(ctx, state2) {
17662
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "MaybeNestedTypeUnary", MaybeNestedTypeUnary$$);
17663
+ }
17221
17664
  var ReturnTypeSuffix$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_lib4.$E)(QuestionMark), (0, import_lib4.$E)(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17222
17665
  var optional = $2;
17223
17666
  var t = $5;
@@ -17272,7 +17715,7 @@ var Type$0 = TypeWithPostfix;
17272
17715
  function Type(ctx, state2) {
17273
17716
  return (0, import_lib4.$EVENT)(ctx, state2, "Type", Type$0);
17274
17717
  }
17275
- var TypeBinary$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)(NotDedented, TypeBinaryOp, __)), TypeUnary, (0, import_lib4.$Q)((0, import_lib4.$S)(NotDedented, TypeBinaryOp, __, TypeUnary))), function($skip, $loc, $0, $1, $2, $3) {
17718
+ var TypeBinary$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)(NotDedented, TypeBinaryOp, __)), TypeUnary, (0, import_lib4.$Q)((0, import_lib4.$S)(NotDedented, TypeBinaryOp, MaybeNestedTypeUnary))), function($skip, $loc, $0, $1, $2, $3) {
17276
17719
  var optionalPrefix = $1;
17277
17720
  var t = $2;
17278
17721
  var ops = $3;
@@ -17639,7 +18082,7 @@ var TypeWithPostfix$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(TypeConditional
17639
18082
  function TypeWithPostfix(ctx, state2) {
17640
18083
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
17641
18084
  }
17642
- var TypeConditional$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_lib4.$EXPECT)($R88, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
18085
+ var TypeConditional$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_lib4.$EXPECT)($R89, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
17643
18086
  return prepend($1, expressionizeTypeIf($3));
17644
18087
  });
17645
18088
  var TypeConditional$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(TypeCondition, NotDedented, QuestionMark, __, Type, __, Colon, __, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
@@ -17841,8 +18284,8 @@ function TypeApplicationStart(ctx, state2) {
17841
18284
  return (0, import_lib4.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
17842
18285
  }
17843
18286
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
17844
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R89, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
17845
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
18287
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
18288
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
17846
18289
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
17847
18290
  function ForbiddenImplicitTypeCalls(ctx, state2) {
17848
18291
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -17925,7 +18368,7 @@ var TypeParameters$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenAngleBracket
17925
18368
  function TypeParameters(ctx, state2) {
17926
18369
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
17927
18370
  }
17928
- var TypeParameter$0 = (0, import_lib4.$S)(__, (0, import_lib4.$Q)((0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R91, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib4.$E)(TypeConstraint), (0, import_lib4.$E)(TypeInitializer), TypeParameterDelimiter);
18371
+ var TypeParameter$0 = (0, import_lib4.$S)(__, (0, import_lib4.$Q)((0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R92, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib4.$E)(TypeConstraint), (0, import_lib4.$E)(TypeInitializer), TypeParameterDelimiter);
17929
18372
  function TypeParameter(ctx, state2) {
17930
18373
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
17931
18374
  }
@@ -17952,15 +18395,15 @@ var ThisType$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$E)(_),
17952
18395
  function ThisType(ctx, state2) {
17953
18396
  return (0, import_lib4.$EVENT)(ctx, state2, "ThisType", ThisType$0);
17954
18397
  }
17955
- var Shebang$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
18398
+ var Shebang$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R93, "Shebang /#![^\\r\\n]*/")), EOL);
17956
18399
  function Shebang(ctx, state2) {
17957
18400
  return (0, import_lib4.$EVENT)(ctx, state2, "Shebang", Shebang$0);
17958
18401
  }
17959
- var CivetPrologue$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib4.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib4.$C)(EOL, (0, import_lib4.$Y)(RestOfLine))), function(value) {
18402
+ var CivetPrologue$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R94, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib4.$EXPECT)($R21, "CivetPrologue /[ \\t]*/"), (0, import_lib4.$C)(EOL, (0, import_lib4.$Y)(RestOfLine))), function(value) {
17960
18403
  var content = value[2];
17961
18404
  return content;
17962
18405
  });
17963
- var CivetPrologue$1 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R93, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib4.$EXPECT)($R20, "CivetPrologue /[ \\t]*/"), (0, import_lib4.$C)(EOL, (0, import_lib4.$Y)(RestOfLine))), function(value) {
18406
+ var CivetPrologue$1 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R94, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib4.$EXPECT)($R21, "CivetPrologue /[ \\t]*/"), (0, import_lib4.$C)(EOL, (0, import_lib4.$Y)(RestOfLine))), function(value) {
17964
18407
  var content = value[2];
17965
18408
  return content;
17966
18409
  });
@@ -17968,7 +18411,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
17968
18411
  function CivetPrologue(ctx, state2) {
17969
18412
  return (0, import_lib4.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
17970
18413
  }
17971
- var CivetPrologueContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib4.$Q)(CivetOption), (0, import_lib4.$EXPECT)($R94, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
18414
+ var CivetPrologueContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L238, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib4.$Q)(CivetOption), (0, import_lib4.$EXPECT)($R95, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
17972
18415
  var options = $3;
17973
18416
  return {
17974
18417
  type: "CivetPrologue",
@@ -17979,7 +18422,7 @@ var CivetPrologueContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import
17979
18422
  function CivetPrologueContent(ctx, state2) {
17980
18423
  return (0, import_lib4.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
17981
18424
  }
17982
- var CivetOption$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R95, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18425
+ var CivetOption$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R96, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17983
18426
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
17984
18427
  if (l)
17985
18428
  return l.toUpperCase();
@@ -18001,11 +18444,11 @@ var CivetOption$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R95, "CivetOp
18001
18444
  function CivetOption(ctx, state2) {
18002
18445
  return (0, import_lib4.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
18003
18446
  }
18004
- var UnknownPrologue$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R93, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib4.$TEXT)(SimpleStatementDelimiter), EOS);
18447
+ var UnknownPrologue$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R94, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib4.$TEXT)(SimpleStatementDelimiter), EOS);
18005
18448
  function UnknownPrologue(ctx, state2) {
18006
18449
  return (0, import_lib4.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
18007
18450
  }
18008
- var TripleSlashDirective$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R96, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib4.$E)(EOS));
18451
+ var TripleSlashDirective$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R97, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib4.$E)(EOS));
18009
18452
  function TripleSlashDirective(ctx, state2) {
18010
18453
  return (0, import_lib4.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
18011
18454
  }
@@ -18021,13 +18464,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
18021
18464
  function PrologueString(ctx, state2) {
18022
18465
  return (0, import_lib4.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
18023
18466
  }
18024
- var EOS$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R97, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib4.$P)(RestOfLine)), function(value) {
18467
+ var EOS$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R98, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib4.$P)(RestOfLine)), function(value) {
18025
18468
  return value[1];
18026
18469
  });
18027
18470
  function EOS(ctx, state2) {
18028
18471
  return (0, import_lib4.$EVENT)(ctx, state2, "EOS", EOS$0);
18029
18472
  }
18030
- var EOL$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R98, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18473
+ var EOL$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R99, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18031
18474
  return { $loc, token: $0 };
18032
18475
  });
18033
18476
  function EOL(ctx, state2) {
@@ -18436,11 +18879,11 @@ var Prologue$0 = (0, import_lib4.$Q)((0, import_lib4.$C)(TripleSlashDirective, (
18436
18879
  function Prologue(ctx, state2) {
18437
18880
  return (0, import_lib4.$EVENT)(ctx, state2, "Prologue", Prologue$0);
18438
18881
  }
18439
- var ProloguePrefix$0 = (0, import_lib4.$S)(Prologue, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
18882
+ var ProloguePrefix$0 = (0, import_lib4.$S)(Prologue, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R100, "ProloguePrefix /[^]*/")));
18440
18883
  function ProloguePrefix(ctx, state2) {
18441
18884
  return (0, import_lib4.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
18442
18885
  }
18443
- var Indent$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R20, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18886
+ var Indent$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R21, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18444
18887
  const level = getIndentLevel($0, config.tab);
18445
18888
  return {
18446
18889
  $loc,