@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/browser.js CHANGED
@@ -38,9 +38,9 @@ var Civet = (() => {
38
38
  ));
39
39
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
40
40
 
41
- // node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js
41
+ // node_modules/@danielx/hera/dist/machine.js
42
42
  var require_machine = __commonJS({
43
- "node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js"(exports, module) {
43
+ "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
44
44
  "use strict";
45
45
  var __defProp2 = Object.defineProperty;
46
46
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -70,7 +70,7 @@ var Civet = (() => {
70
70
  $N: () => $N2,
71
71
  $P: () => $P2,
72
72
  $Q: () => $Q2,
73
- $R: () => $R100,
73
+ $R: () => $R101,
74
74
  $R$0: () => $R$02,
75
75
  $S: () => $S2,
76
76
  $T: () => $T2,
@@ -107,7 +107,7 @@ var Civet = (() => {
107
107
  return;
108
108
  };
109
109
  }
110
- function $R100(regExp) {
110
+ function $R101(regExp) {
111
111
  return function(_ctx, state2) {
112
112
  const { input, pos } = state2;
113
113
  regExp.lastIndex = state2.pos;
@@ -572,6 +572,7 @@ ${body}`;
572
572
  processForInOf: () => processForInOf,
573
573
  processProgram: () => processProgram,
574
574
  processProgramAsync: () => processProgramAsync,
575
+ processRangeExpression: () => processRangeExpression,
575
576
  processTryBlock: () => processTryBlock,
576
577
  processUnaryExpression: () => processUnaryExpression,
577
578
  processUnaryNestedExpression: () => processUnaryNestedExpression,
@@ -600,6 +601,13 @@ ${body}`;
600
601
  if (a === b) {
601
602
  throw new Error(`Assertion failed [${msg}]: ${a} === ${b}`);
602
603
  }
604
+ },
605
+ notNull(a, msg) {
606
+ if (!(a != null)) {
607
+ throw new Error(`Assertion failed [${msg}]: got null`);
608
+ }
609
+ ;
610
+ return;
603
611
  }
604
612
  };
605
613
  function addParentPointers(node, parent) {
@@ -1059,6 +1067,9 @@ ${body}`;
1059
1067
  expression = item;
1060
1068
  }
1061
1069
  if (isASTNodeObject(expression)) {
1070
+ if (expression.token) {
1071
+ return expression;
1072
+ }
1062
1073
  if (expression.parenthesized) {
1063
1074
  return expression;
1064
1075
  }
@@ -1581,86 +1592,90 @@ ${body}`;
1581
1592
  let count = 0;
1582
1593
  switch (pattern.type) {
1583
1594
  case "ArrayBindingPattern": {
1584
- const results = [];
1585
- for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1586
- const elem = ref2[i2];
1587
- let { typeSuffix } = elem;
1588
- typeSuffix ??= elem.binding?.typeSuffix;
1589
- if (typeSuffix) {
1590
- count++;
1591
- }
1592
- let typeElement = [typeSuffix?.t, elem.delim];
1593
- if (typeSuffix?.optional) {
1594
- typeElement[0] = parenthesizeType(typeElement[0]);
1595
- typeElement.unshift("undefined |");
1595
+ {
1596
+ const results = [];
1597
+ for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1598
+ const elem = ref2[i2];
1599
+ let { typeSuffix } = elem;
1600
+ typeSuffix ??= elem.binding?.typeSuffix;
1601
+ if (typeSuffix) {
1602
+ count++;
1603
+ }
1604
+ let typeElement = [typeSuffix?.t, elem.delim];
1605
+ if (typeSuffix?.optional) {
1606
+ typeElement[0] = parenthesizeType(typeElement[0]);
1607
+ typeElement.unshift("undefined |");
1608
+ }
1609
+ if (elem.type === "BindingRestElement") {
1610
+ typeElement[0] ??= "unknown[]";
1611
+ typeElement.unshift(elem.dots);
1612
+ } else {
1613
+ typeElement[0] ??= "unknown";
1614
+ }
1615
+ results.push(typeElement);
1596
1616
  }
1597
- if (elem.type === "BindingRestElement") {
1598
- typeElement[0] ??= "unknown[]";
1599
- typeElement.unshift(elem.dots);
1600
- } else {
1601
- typeElement[0] ??= "unknown";
1617
+ ;
1618
+ const types = results;
1619
+ if (count) {
1620
+ const t = [": [", types, "]"];
1621
+ pattern.typeSuffix = {
1622
+ type: "TypeSuffix",
1623
+ ts: true,
1624
+ t,
1625
+ children: [t]
1626
+ };
1602
1627
  }
1603
- results.push(typeElement);
1604
- }
1605
- ;
1606
- const types = results;
1607
- if (count) {
1608
- const t = [": [", types, "]"];
1609
- pattern.typeSuffix = {
1610
- type: "TypeSuffix",
1611
- ts: true,
1612
- t,
1613
- children: [t]
1614
- };
1615
1628
  }
1616
1629
  ;
1617
1630
  break;
1618
1631
  }
1619
1632
  case "ObjectBindingPattern": {
1620
- let restType;
1621
- const results1 = [];
1622
- for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1623
- const prop = ref3[i3];
1624
- let { typeSuffix } = prop;
1625
- typeSuffix ??= prop.value?.typeSuffix;
1626
- if (typeSuffix) {
1627
- count++;
1628
- }
1629
- typeSuffix ??= {
1630
- type: "TypeSuffix",
1631
- ts: true,
1632
- children: [": unknown"]
1633
- };
1634
- switch (prop.type) {
1635
- case "BindingProperty": {
1636
- const ws = prop.children.slice(0, prop.children.indexOf(prop.name));
1637
- results1.push([...ws, prop.name, typeSuffix, prop.delim]);
1638
- break;
1639
- }
1640
- case "AtBindingProperty": {
1641
- const ws = prop.children.slice(0, prop.children.indexOf(prop.binding));
1642
- results1.push([...ws, prop.ref.id, typeSuffix, prop.delim]);
1643
- break;
1633
+ {
1634
+ let restType;
1635
+ const results1 = [];
1636
+ for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1637
+ const prop = ref3[i3];
1638
+ let { typeSuffix } = prop;
1639
+ typeSuffix ??= prop.value?.typeSuffix;
1640
+ if (typeSuffix) {
1641
+ count++;
1644
1642
  }
1645
- case "BindingRestProperty": {
1646
- restType = prop.typeSuffix?.t;
1647
- continue;
1643
+ typeSuffix ??= {
1644
+ type: "TypeSuffix",
1645
+ ts: true,
1646
+ children: [": unknown"]
1647
+ };
1648
+ switch (prop.type) {
1649
+ case "BindingProperty": {
1650
+ const ws = prop.children.slice(0, prop.children.indexOf(prop.name));
1651
+ results1.push([...ws, prop.name, typeSuffix, prop.delim]);
1652
+ break;
1653
+ }
1654
+ case "AtBindingProperty": {
1655
+ const ws = prop.children.slice(0, prop.children.indexOf(prop.binding));
1656
+ results1.push([...ws, prop.ref.id, typeSuffix, prop.delim]);
1657
+ break;
1658
+ }
1659
+ case "BindingRestProperty": {
1660
+ restType = prop.typeSuffix?.t;
1661
+ continue;
1662
+ }
1648
1663
  }
1649
1664
  }
1650
- }
1651
- ;
1652
- const types = results1;
1653
- if (count) {
1654
- const t = ["{", types, "}"];
1655
- if (restType != null) {
1656
- t.push(" & ", parenthesizeType(trimFirstSpace(restType)));
1665
+ ;
1666
+ const types = results1;
1667
+ if (count) {
1668
+ const t = ["{", types, "}"];
1669
+ if (restType != null) {
1670
+ t.push(" & ", parenthesizeType(trimFirstSpace(restType)));
1671
+ }
1672
+ pattern.typeSuffix = {
1673
+ type: "TypeSuffix",
1674
+ ts: true,
1675
+ t,
1676
+ children: [": ", t]
1677
+ };
1657
1678
  }
1658
- pattern.typeSuffix = {
1659
- type: "TypeSuffix",
1660
- ts: true,
1661
- t,
1662
- children: [": ", t]
1663
- };
1664
1679
  }
1665
1680
  ;
1666
1681
  break;
@@ -1745,6 +1760,34 @@ ${body}`;
1745
1760
  "\n"
1746
1761
  ]]);
1747
1762
  },
1763
+ rslice(rsliceRef) {
1764
+ const RSliceable = makeRef("RSliceable");
1765
+ state.prelude.push(["", [
1766
+ ts(["type ", RSliceable, "<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}\n"]),
1767
+ preludeVar,
1768
+ rsliceRef,
1769
+ ts([": <R, T extends string | ", RSliceable, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceable, "<infer R> ? R : never"]),
1770
+ " = ((a, start, end) => {\n",
1771
+ " const l = a.length\n",
1772
+ " start = ",
1773
+ getHelperRef("modulo"),
1774
+ "(start ?? -1, l)\n",
1775
+ " end = ",
1776
+ getHelperRef("modulo"),
1777
+ "((end ?? -1) + 1, l)\n",
1778
+ " if (typeof a === 'string') {\n",
1779
+ ` let r = ""
1780
+ `,
1781
+ " for (let i = start; i >= end; --i) r += a[i]\n",
1782
+ " return r",
1783
+ asAny,
1784
+ "\n",
1785
+ " } else {\n",
1786
+ " return a.slice(end, start + 1).reverse()\n",
1787
+ " }\n",
1788
+ "});\n"
1789
+ ]]);
1790
+ },
1748
1791
  div(divRef) {
1749
1792
  state.prelude.push(["", [
1750
1793
  // [indent, statement]
@@ -1871,6 +1914,9 @@ ${body}`;
1871
1914
  declareHelper[base](ref);
1872
1915
  return state.helperRefs[base] = ref;
1873
1916
  }
1917
+ function peekHelperRef(base) {
1918
+ return state.helperRefs[base];
1919
+ }
1874
1920
  function extractPreludeFor(node) {
1875
1921
  let helpers = new Set(Object.values(state.helperRefs));
1876
1922
  helpers = new Set(gatherRecursive(node, helpers.has.bind(helpers)));
@@ -1914,6 +1960,9 @@ ${body}`;
1914
1960
  let ref;
1915
1961
  if (ref = options.sourceMap) {
1916
1962
  const sourceMap = ref;
1963
+ if (node.$loc != null) {
1964
+ sourceMap.updateSourceMap("", node.$loc.pos);
1965
+ }
1917
1966
  line = sourceMap.data.srcLine + 1;
1918
1967
  column = sourceMap.data.srcColumn + 1;
1919
1968
  offset = sourceMap.data.srcOffset;
@@ -2538,7 +2587,7 @@ ${js}`
2538
2587
  case "IterationStatement":
2539
2588
  case "DoStatement":
2540
2589
  case "ComptimeStatement": {
2541
- wrapIterationReturningResults(exp, outer, collect);
2590
+ wrapIterationReturningResults(exp, collect);
2542
2591
  return;
2543
2592
  }
2544
2593
  case "BlockStatement": {
@@ -2578,7 +2627,7 @@ ${js}`
2578
2627
  }
2579
2628
  node[1] = collect(node[1]);
2580
2629
  }
2581
- function insertReturn(node, outerNode = node) {
2630
+ function insertReturn(node) {
2582
2631
  if (!node)
2583
2632
  return;
2584
2633
  switch (node.type) {
@@ -2686,7 +2735,7 @@ ${js}`
2686
2735
  case "IterationStatement":
2687
2736
  case "DoStatement":
2688
2737
  case "ComptimeStatement": {
2689
- wrapIterationReturningResults(exp, outer);
2738
+ wrapIterationReturningResults(exp);
2690
2739
  return;
2691
2740
  }
2692
2741
  case "BlockStatement": {
@@ -2782,11 +2831,11 @@ ${js}`
2782
2831
  }
2783
2832
  return changed;
2784
2833
  }
2785
- function wrapIterationReturningResults(statement, outer, collect) {
2834
+ function wrapIterationReturningResults(statement, collect) {
2786
2835
  if (statement.type === "DoStatement" || statement.type === "ComptimeStatement") {
2787
2836
  let results;
2788
2837
  if (statement.type === "ComptimeStatement") {
2789
- insertReturn(statement.block, outer);
2838
+ insertReturn(statement.block);
2790
2839
  const expression = expressionizeComptime(statement);
2791
2840
  replaceNode(statement, expression);
2792
2841
  const parent = expression.parent;
@@ -2802,7 +2851,7 @@ ${js}`
2802
2851
  if (collect) {
2803
2852
  assignResults(results, collect);
2804
2853
  } else {
2805
- insertReturn(results, outer);
2854
+ insertReturn(results);
2806
2855
  }
2807
2856
  return;
2808
2857
  }
@@ -2812,6 +2861,27 @@ ${js}`
2812
2861
  "wrapIterationReturningResults should not be called twice on the same statement"
2813
2862
  );
2814
2863
  const resultsRef = statement.resultsRef = makeRef("results");
2864
+ const { declaration, breakWithOnly } = iterationDeclaration(statement);
2865
+ const { ancestor, child } = findAncestor(statement, ($4) => $4.type === "BlockStatement");
2866
+ assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
2867
+ const index = findChildIndex(ancestor.expressions, child);
2868
+ const iterationTuple = ancestor.expressions[index];
2869
+ ancestor.expressions.splice(index, 0, [iterationTuple[0], declaration, ";"]);
2870
+ iterationTuple[0] = "";
2871
+ braceBlock(ancestor);
2872
+ if (!breakWithOnly) {
2873
+ assignResults(statement.block, (node) => {
2874
+ return [resultsRef, ".push(", node, ")"];
2875
+ });
2876
+ }
2877
+ if (collect) {
2878
+ statement.children.push(collect(resultsRef));
2879
+ } else {
2880
+ statement.children.push(";return ", resultsRef, ";");
2881
+ }
2882
+ }
2883
+ function iterationDeclaration(statement) {
2884
+ const { resultsRef } = statement;
2815
2885
  let decl = "const";
2816
2886
  if (statement.type === "IterationStatement" || statement.type === "ForStatement") {
2817
2887
  if (processBreakContinueWith(statement)) {
@@ -2837,17 +2907,7 @@ ${js}`
2837
2907
  declaration.children.push(";", resultsRef, "=[]");
2838
2908
  }
2839
2909
  }
2840
- outer.children.unshift(["", declaration, ";"]);
2841
- if (!breakWithOnly) {
2842
- assignResults(statement.block, (node) => {
2843
- return [resultsRef, ".push(", node, ")"];
2844
- });
2845
- }
2846
- if (collect) {
2847
- statement.children.push(collect(resultsRef));
2848
- } else {
2849
- statement.children.push(";return ", resultsRef, ";");
2850
- }
2910
+ return { declaration, breakWithOnly };
2851
2911
  }
2852
2912
  function processParams(f) {
2853
2913
  const { type, parameters, block } = f;
@@ -2872,9 +2932,9 @@ ${js}`
2872
2932
  injectParamProps: isConstructor
2873
2933
  });
2874
2934
  if (isConstructor) {
2875
- const { ancestor } = findAncestor(f, ($4) => $4.type === "ClassExpression");
2935
+ const { ancestor } = findAncestor(f, ($5) => $5.type === "ClassExpression");
2876
2936
  if (ancestor != null) {
2877
- 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));
2937
+ 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));
2878
2938
  const classExpressions = ancestor.body.expressions;
2879
2939
  let index = findChildIndex(classExpressions, f);
2880
2940
  assert.notEqual(index, -1, "Could not find constructor in class");
@@ -2883,12 +2943,12 @@ ${js}`
2883
2943
  index--;
2884
2944
  }
2885
2945
  const fStatement = classExpressions[index];
2886
- for (let ref8 = gatherRecursive(parameters, ($8) => $8.type === "Parameter"), i1 = 0, len3 = ref8.length; i1 < len3; i1++) {
2946
+ for (let ref8 = gatherRecursive(parameters, ($9) => $9.type === "Parameter"), i1 = 0, len3 = ref8.length; i1 < len3; i1++) {
2887
2947
  const parameter = ref8[i1];
2888
2948
  if (!parameter.typeSuffix) {
2889
2949
  continue;
2890
2950
  }
2891
- for (let ref9 = gatherRecursive(parameter, ($9) => $9.type === "AtBinding"), i2 = 0, len1 = ref9.length; i2 < len1; i2++) {
2951
+ for (let ref9 = gatherRecursive(parameter, ($10) => $10.type === "AtBinding"), i2 = 0, len1 = ref9.length; i2 < len1; i2++) {
2892
2952
  const binding = ref9[i2];
2893
2953
  const typeSuffix = binding.parent?.typeSuffix;
2894
2954
  if (!typeSuffix) {
@@ -2900,7 +2960,6 @@ ${js}`
2900
2960
  }
2901
2961
  classExpressions.splice(index++, 0, [fStatement[0], {
2902
2962
  type: "FieldDefinition",
2903
- ts: true,
2904
2963
  id,
2905
2964
  typeSuffix,
2906
2965
  children: [id, typeSuffix]
@@ -2949,8 +3008,8 @@ ${js}`
2949
3008
  }
2950
3009
  if (hasYield(block) && !f.generator?.length) {
2951
3010
  if (f.type === "ArrowFunction") {
2952
- gatherRecursiveWithinFunction(block, ($10) => $10.type === "YieldExpression").forEach((y) => {
2953
- const i = y.children.findIndex(($11) => $11.type === "Yield");
3011
+ gatherRecursiveWithinFunction(block, ($11) => $11.type === "YieldExpression").forEach((y) => {
3012
+ const i = y.children.findIndex(($12) => $12.type === "Yield");
2954
3013
  return y.children.splice(i + 1, 0, {
2955
3014
  type: "Error",
2956
3015
  message: "Can't use yield inside of => arrow function"
@@ -2978,12 +3037,12 @@ ${js}`
2978
3037
  });
2979
3038
  }
2980
3039
  function expressionizeIteration(exp) {
2981
- const { async, generator, subtype, block, children, statement } = exp;
3040
+ let { async, generator, block, children, statement } = exp;
2982
3041
  const i = children.indexOf(statement);
2983
3042
  if (i < 0) {
2984
3043
  throw new Error("Could not find iteration statement in iteration expression");
2985
3044
  }
2986
- if (subtype === "DoStatement" || subtype === "ComptimeStatement") {
3045
+ if (statement.type === "DoStatement" || statement.type === "ComptimeStatement") {
2987
3046
  children.splice(i, 1, wrapIIFE([["", statement, void 0]], async, generator));
2988
3047
  updateParentPointers(exp);
2989
3048
  return;
@@ -2996,7 +3055,6 @@ ${js}`
2996
3055
  children: ["yield ", node]
2997
3056
  };
2998
3057
  });
2999
- braceBlock(block);
3000
3058
  children.splice(
3001
3059
  i,
3002
3060
  1,
@@ -3011,17 +3069,19 @@ ${js}`
3011
3069
  ], async, generator)
3012
3070
  );
3013
3071
  } else {
3014
- exp.resultsRef ??= makeRef("results");
3015
- const { resultsRef } = exp;
3016
- assignResults(block, (node) => {
3017
- return [resultsRef, ".push(", node, ")"];
3018
- });
3019
- braceBlock(block);
3072
+ const resultsRef = statement.resultsRef ??= makeRef("results");
3073
+ const { declaration, breakWithOnly } = iterationDeclaration(statement);
3074
+ if (!breakWithOnly) {
3075
+ assignResults(block, (node) => {
3076
+ return [resultsRef, ".push(", node, ")"];
3077
+ });
3078
+ braceBlock(block);
3079
+ }
3020
3080
  children.splice(
3021
3081
  i,
3022
3082
  1,
3023
3083
  wrapIIFE([
3024
- ["", ["const ", resultsRef, "=[]"], ";"],
3084
+ ["", declaration, ";"],
3025
3085
  ["", statement, void 0],
3026
3086
  ["", wrapWithReturn(resultsRef)]
3027
3087
  ], async)
@@ -3077,7 +3137,7 @@ ${js}`
3077
3137
  expression = {
3078
3138
  ...expression,
3079
3139
  parameters: newParameters,
3080
- children: expression.children.map(($12) => $12 === parameters ? newParameters : $12)
3140
+ children: expression.children.map(($13) => $13 === parameters ? newParameters : $13)
3081
3141
  };
3082
3142
  }
3083
3143
  return {
@@ -3099,7 +3159,7 @@ ${js}`
3099
3159
  ref = makeRef("$");
3100
3160
  inplacePrepend(ref, body);
3101
3161
  }
3102
- if (startsWithPredicate(body, ($13) => $13.type === "ObjectExpression")) {
3162
+ if (startsWithPredicate(body, ($14) => $14.type === "ObjectExpression")) {
3103
3163
  body = makeLeftHandSideExpression(body);
3104
3164
  }
3105
3165
  const parameters = makeNode({
@@ -4204,8 +4264,7 @@ ${js}`
4204
4264
  };
4205
4265
  pre.unshift(refDec);
4206
4266
  } else {
4207
- wrapIterationReturningResults(statement2, { children: blockStatement }, function() {
4208
- });
4267
+ wrapIterationReturningResults(statement2, () => void 0);
4209
4268
  ref = initializer.expression = initializer.children[2] = statement2.resultsRef;
4210
4269
  }
4211
4270
  } else {
@@ -4961,22 +5020,168 @@ ${js}`
4961
5020
  }
4962
5021
 
4963
5022
  // source/parser/for.civet
5023
+ function processRangeExpression(start, ws1, range, end) {
5024
+ ws1 = [ws1, range.children[0]];
5025
+ const ws2 = range.children[1];
5026
+ const comma = { $loc: range.$loc, token: "," };
5027
+ let ref;
5028
+ switch (range.increasing) {
5029
+ case true: {
5030
+ ref = ($) => $;
5031
+ break;
5032
+ }
5033
+ case false: {
5034
+ ref = ($1) => -$1;
5035
+ break;
5036
+ }
5037
+ default: {
5038
+ ref = Math.abs;
5039
+ }
5040
+ }
5041
+ ;
5042
+ const abs = ref;
5043
+ const lengthAdjust = 1 - Number(!range.left.inclusive) - Number(!range.right.inclusive);
5044
+ let ref1;
5045
+ if (lengthAdjust > 0)
5046
+ ref1 = ` + ${lengthAdjust}`;
5047
+ else if (lengthAdjust < 0)
5048
+ ref1 = ` - ${-lengthAdjust}`;
5049
+ else {
5050
+ ref1 = void 0;
5051
+ }
5052
+ ;
5053
+ const lengthAdjustExpression = ref1;
5054
+ let children;
5055
+ if (typeof start === "object" && start != null && "type" in start && start.type === "Literal" && (typeof end === "object" && end != null && "type" in end && end.type === "Literal")) {
5056
+ let startValue = literalValue(start);
5057
+ let endValue = literalValue(end);
5058
+ if (typeof startValue === "string" && typeof endValue === "string") {
5059
+ if (!(startValue.length === 1 && 1 === endValue.length)) {
5060
+ throw new Error("String range start and end must be a single character");
5061
+ }
5062
+ let startCode = startValue.charCodeAt(0);
5063
+ let endCode = endValue.charCodeAt(0);
5064
+ const step = startCode <= endCode ? 1 : -1;
5065
+ const length = abs(endCode - startCode) + lengthAdjust;
5066
+ if (!range.left.inclusive) {
5067
+ startCode += step;
5068
+ }
5069
+ if (length <= 26) {
5070
+ children = [
5071
+ "[",
5072
+ Array.from({ length }, (_2, i) => {
5073
+ return JSON.stringify(String.fromCharCode(startCode + i * step));
5074
+ }).join(", "),
5075
+ "]"
5076
+ ];
5077
+ } else {
5078
+ children = [
5079
+ `Array.from({length: ${length.toString()}}, `,
5080
+ "(_, i) => String.fromCharCode(",
5081
+ startCode.toString(),
5082
+ step > 0 ? " + " : " - ",
5083
+ "i))"
5084
+ ];
5085
+ }
5086
+ if (range.error != null) {
5087
+ children.unshift(range.error);
5088
+ }
5089
+ } else if (typeof startValue === "number" && typeof endValue === "number") {
5090
+ const step = startValue <= endValue ? 1 : -1;
5091
+ const length = abs(endValue - startValue) + lengthAdjust;
5092
+ if (!range.left.inclusive) {
5093
+ startValue += step;
5094
+ }
5095
+ if (length <= 20) {
5096
+ children = [
5097
+ "[",
5098
+ Array.from({ length }, (_2, i) => startValue + i * step).join(", "),
5099
+ "]"
5100
+ ];
5101
+ if (range.error != null) {
5102
+ children.unshift(range.error);
5103
+ }
5104
+ }
5105
+ }
5106
+ }
5107
+ if (!(children != null)) {
5108
+ if (range.increasing != null) {
5109
+ const sign = range.increasing ? "+" : "-";
5110
+ end = makeLeftHandSideExpression(end);
5111
+ children = [
5112
+ "((s) => Array.from({length: ",
5113
+ range.increasing ? [ws2, end, " - s"] : ["s - ", ws2, end],
5114
+ lengthAdjustExpression,
5115
+ "}, (_, i) => s ",
5116
+ sign,
5117
+ " i))",
5118
+ "(",
5119
+ range.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
5120
+ ...ws1,
5121
+ ")"
5122
+ ];
5123
+ } else {
5124
+ children = [
5125
+ "((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)",
5126
+ lengthAdjustExpression,
5127
+ "}, (_, i) => s + i * step)})",
5128
+ "(",
5129
+ start,
5130
+ ...ws1,
5131
+ comma,
5132
+ ws2,
5133
+ end,
5134
+ ")"
5135
+ ];
5136
+ }
5137
+ }
5138
+ return {
5139
+ type: "RangeExpression",
5140
+ children,
5141
+ start,
5142
+ end,
5143
+ error: range.error,
5144
+ left: range.left,
5145
+ right: range.right,
5146
+ increasing: range.increasing
5147
+ };
5148
+ }
4964
5149
  function forRange(open, forDeclaration, range, stepExp, close) {
4965
- const { start, end, inclusive } = range;
5150
+ const { start, end, left, right, increasing } = range;
4966
5151
  const counterRef = makeRef("i");
4967
- const infinite = end.type === "Identifier" && end.name === "Infinity";
4968
- let stepRef;
5152
+ const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5153
+ let stepRef, asc;
4969
5154
  if (stepExp) {
4970
5155
  stepExp = insertTrimmingSpace(stepExp, "");
4971
5156
  stepRef = maybeRef(stepExp, "step");
4972
5157
  } else if (infinite) {
4973
5158
  stepExp = stepRef = "1";
5159
+ } else if (increasing != null) {
5160
+ if (increasing) {
5161
+ stepExp = stepRef = "1";
5162
+ asc = true;
5163
+ } else {
5164
+ stepExp = stepRef = "-1";
5165
+ asc = false;
5166
+ }
4974
5167
  }
4975
- let startRef = maybeRef(start, "start");
5168
+ let ref2;
5169
+ if (stepRef)
5170
+ ref2 = start;
5171
+ else
5172
+ ref2 = maybeRef(start, "start");
5173
+ let startRef = ref2;
4976
5174
  let endRef = maybeRef(end, "end");
4977
5175
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
4978
5176
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
4979
- let ascDec = [], ascRef, asc;
5177
+ if (!left.inclusive) {
5178
+ startRef = [
5179
+ makeLeftHandSideExpression(start),
5180
+ " + ",
5181
+ stepRef
5182
+ ];
5183
+ }
5184
+ let ascDec = [], ascRef;
4980
5185
  if (stepRef) {
4981
5186
  if (!(stepRef === stepExp)) {
4982
5187
  ascDec = [", ", stepRef, " = ", stepExp];
@@ -5011,12 +5216,12 @@ ${js}`
5011
5216
  children: ["let ", ...startRefDec, ...endRefDec, counterRef, " = ", ...varLetAssign, startRef, ...varLet, ...ascDec],
5012
5217
  names: forDeclaration?.names
5013
5218
  };
5014
- const counterPart = inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
5015
- const condition = infinite ? [] : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : ascRef ? [ascRef, " ? ", ...counterPart] : asc ? counterPart.slice(0, 3) : counterPart.slice(4);
5016
- const increment = infinite ? [...varAssign, "++", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
5219
+ const counterPart = right.inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
5220
+ const condition = infinite ? [] : asc != null ? asc ? counterPart.slice(0, 3) : counterPart.slice(4) : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : [ascRef, " ? ", ...counterPart];
5221
+ const increment = stepRef === "1" ? [...varAssign, "++", counterRef] : stepRef === "-1" ? [...varAssign, "--", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
5017
5222
  return {
5018
5223
  declaration,
5019
- children: [open, declaration, "; ", ...condition, "; ", ...increment, close],
5224
+ children: [range.error, open, declaration, "; ", ...condition, "; ", ...increment, close],
5020
5225
  blockPrefix
5021
5226
  };
5022
5227
  }
@@ -5658,7 +5863,131 @@ ${js}`
5658
5863
  return [value, value.thisShorthand];
5659
5864
  }
5660
5865
  function processTryBlock($0) {
5661
- let [t, , b, c, e, f] = $0;
5866
+ let [t, , b, cs, e, f] = $0;
5867
+ let c;
5868
+ let m;
5869
+ if (cs.some(($) => (m = $.binding?.parameter, typeof m === "object" && m != null && "type" in m && m.type === "CatchPattern"))) {
5870
+ const ref = makeRef("e");
5871
+ const binding = {
5872
+ type: "CatchBinding",
5873
+ children: ["(", ref, ")"],
5874
+ parameter: ref
5875
+ };
5876
+ const condition = {
5877
+ type: "ParenthesizedExpression",
5878
+ children: ["(", ref, ")"],
5879
+ expression: ref
5880
+ };
5881
+ let defaultClause = false;
5882
+ const clauses = cs.map((clause) => {
5883
+ let ref1;
5884
+ if ((ref1 = clause.binding?.parameter) && typeof ref1 === "object" && "type" in ref1 && ref1.type === "CatchPattern" && "patterns" in ref1) {
5885
+ const { type, patterns } = ref1;
5886
+ return {
5887
+ type: "PatternClause",
5888
+ patterns,
5889
+ block: clause.block,
5890
+ children: [patterns, clause.block]
5891
+ };
5892
+ } else {
5893
+ defaultClause = true;
5894
+ const parameter = clause.binding?.parameter;
5895
+ if (parameter != null) {
5896
+ assert.equal(
5897
+ parameter.type,
5898
+ "CatchParameter",
5899
+ `Invalid catch parameter ${parameter.type}`
5900
+ );
5901
+ const { binding: pattern, typeSuffix } = parameter;
5902
+ const initializer = {
5903
+ type: "Initializer",
5904
+ expression: ref,
5905
+ children: ["", " = ", ref]
5906
+ };
5907
+ const bindings = [{
5908
+ type: "Binding",
5909
+ names: pattern.names,
5910
+ pattern,
5911
+ typeSuffix,
5912
+ initializer,
5913
+ children: [pattern, typeSuffix, initializer],
5914
+ splices: [],
5915
+ thisAssignments: []
5916
+ }];
5917
+ clause.block.expressions.unshift(["", {
5918
+ type: "Declaration",
5919
+ children: ["let", " ", bindings],
5920
+ bindings,
5921
+ names: bindings[0].names,
5922
+ decl: "let"
5923
+ }, ";"]);
5924
+ }
5925
+ return {
5926
+ type: "DefaultClause",
5927
+ block: clause.block,
5928
+ children: ["default: ", clause.block]
5929
+ };
5930
+ }
5931
+ });
5932
+ if (!defaultClause) {
5933
+ const expressions = [[
5934
+ "",
5935
+ {
5936
+ type: "ThrowStatement",
5937
+ children: ["throw", " ", ref]
5938
+ }
5939
+ ]];
5940
+ const block2 = {
5941
+ type: "BlockStatement",
5942
+ expressions,
5943
+ children: [" {", expressions, "}"],
5944
+ bare: false
5945
+ };
5946
+ clauses.push({
5947
+ type: "DefaultClause",
5948
+ block: block2,
5949
+ children: ["default: ", block2]
5950
+ });
5951
+ }
5952
+ const caseBlock = {
5953
+ type: "CaseBlock",
5954
+ clauses,
5955
+ children: [" {", clauses, "}"]
5956
+ };
5957
+ const patternSwitch = {
5958
+ type: "SwitchStatement",
5959
+ condition,
5960
+ caseBlock,
5961
+ children: ["switch", condition, caseBlock]
5962
+ };
5963
+ const block = {
5964
+ type: "BlockStatement",
5965
+ bare: false,
5966
+ expressions: [["", patternSwitch]],
5967
+ children: [" {", patternSwitch, "}"]
5968
+ };
5969
+ c = makeNode({
5970
+ type: "CatchClause",
5971
+ children: [
5972
+ cs[0].children[0],
5973
+ // whitespace
5974
+ cs[0].children[1],
5975
+ // catch token
5976
+ binding,
5977
+ block
5978
+ ],
5979
+ binding,
5980
+ block
5981
+ });
5982
+ } else {
5983
+ c = cs[0];
5984
+ if (cs.length > 1) {
5985
+ c = append(c, {
5986
+ type: "Error",
5987
+ message: "Only one catch clause allowed unless using pattern matching"
5988
+ });
5989
+ }
5990
+ }
5662
5991
  if (!c && (e || !f)) {
5663
5992
  const emptyCatchBlock = makeEmptyBlock();
5664
5993
  c = {
@@ -5757,8 +6086,9 @@ ${js}`
5757
6086
  }
5758
6087
  }
5759
6088
  }
5760
- for (let i = 0; i < children.length; i++) {
5761
- const glob = children[i];
6089
+ for (let i3 = 0, len22 = children.length; i3 < len22; i3++) {
6090
+ const i = i3;
6091
+ const glob = children[i3];
5762
6092
  if (glob?.type === "PropertyGlob") {
5763
6093
  let prefix = children.slice(0, i);
5764
6094
  const parts = [];
@@ -5829,14 +6159,14 @@ ${js}`
5829
6159
  });
5830
6160
  }
5831
6161
  }
5832
- let ref1;
6162
+ let ref2;
5833
6163
  let object = {
5834
6164
  type: "ObjectExpression",
5835
6165
  children: [
5836
6166
  glob.object.children[0],
5837
6167
  // {
5838
6168
  ...parts,
5839
- (ref1 = glob.object.children)[ref1.length - 1]
6169
+ (ref2 = glob.object.children)[ref2.length - 1]
5840
6170
  // whitespace and }
5841
6171
  ],
5842
6172
  properties: parts,
@@ -5878,6 +6208,33 @@ ${js}`
5878
6208
  ...children.slice(i + 1)
5879
6209
  ]
5880
6210
  });
6211
+ } else if (typeof glob === "object" && glob != null && "type" in glob && glob.type === "SliceExpression" && "reversed" in glob && glob.reversed === true) {
6212
+ const args = [
6213
+ { ...node, children: node.children.slice(0, i) },
6214
+ { ...glob.children[0], token: ", " },
6215
+ ...glob.children.slice(1, -1)
6216
+ ];
6217
+ let ref3;
6218
+ return makeNode({
6219
+ ...node,
6220
+ children: [
6221
+ {
6222
+ type: "CallExpression",
6223
+ children: [
6224
+ getHelperRef("rslice"),
6225
+ makeNode({
6226
+ type: "Call",
6227
+ args,
6228
+ children: [
6229
+ "(",
6230
+ args,
6231
+ (ref3 = glob.children)[ref3.length - 1]
6232
+ ]
6233
+ })
6234
+ ]
6235
+ }
6236
+ ]
6237
+ });
5881
6238
  }
5882
6239
  }
5883
6240
  return node;
@@ -5888,9 +6245,9 @@ ${js}`
5888
6245
  throw new Error("replaceNode failed: node has no parent");
5889
6246
  }
5890
6247
  function recurse(children) {
5891
- for (let i3 = 0, len22 = children.length; i3 < len22; i3++) {
5892
- const i = i3;
5893
- const child = children[i3];
6248
+ for (let i4 = 0, len3 = children.length; i4 < len3; i4++) {
6249
+ const i = i4;
6250
+ const child = children[i4];
5894
6251
  if (child === node) {
5895
6252
  children[i] = newNode;
5896
6253
  return true;
@@ -5982,8 +6339,8 @@ ${js}`
5982
6339
  return { type: "Error", message: "cannot use `type` in dynamic import" };
5983
6340
  } else {
5984
6341
  const { source, binding } = specifier;
5985
- let ref2;
5986
- const delim = (ref2 = specifier.children)[ref2.length - 1];
6342
+ let ref4;
6343
+ const delim = (ref4 = specifier.children)[ref4.length - 1];
5987
6344
  return {
5988
6345
  type: pattern ? "BindingProperty" : "Property",
5989
6346
  name: source,
@@ -5993,7 +6350,7 @@ ${js}`
5993
6350
  };
5994
6351
  }
5995
6352
  });
5996
- let ref3;
6353
+ let ref5;
5997
6354
  return {
5998
6355
  type: pattern ? "ObjectBindingPattern" : "ObjectExpression",
5999
6356
  names: node.names,
@@ -6002,7 +6359,7 @@ ${js}`
6002
6359
  node.children[0],
6003
6360
  // {
6004
6361
  properties,
6005
- (ref3 = node.children)[ref3.length - 1]
6362
+ (ref5 = node.children)[ref5.length - 1]
6006
6363
  // }
6007
6364
  ]
6008
6365
  };
@@ -6108,8 +6465,8 @@ ${js}`
6108
6465
  while (expr.type === "ParenthesizedExpression") {
6109
6466
  expr = expr.expression;
6110
6467
  }
6111
- let m;
6112
- if (m = expr.type, m === "AssignmentExpression" || m === "UpdateExpression") {
6468
+ let m1;
6469
+ if (m1 = expr.type, m1 === "AssignmentExpression" || m1 === "UpdateExpression") {
6113
6470
  if (expr.type === "UpdateExpression" && expr.children[0] === expr.assigned) {
6114
6471
  pre.push("(");
6115
6472
  post.push([", ", lhs, ")"]);
@@ -6123,15 +6480,15 @@ ${js}`
6123
6480
  return;
6124
6481
  }
6125
6482
  const pre = [], post = [];
6126
- let ref4;
6483
+ let ref6;
6127
6484
  switch (exp.type) {
6128
6485
  case "AssignmentExpression": {
6129
6486
  if (!exp.lhs)
6130
6487
  return;
6131
6488
  exp.lhs.forEach((lhsPart, i) => {
6132
- let ref5;
6133
- if (ref5 = extractAssignment(lhsPart[1])) {
6134
- const newLhs = ref5;
6489
+ let ref7;
6490
+ if (ref7 = extractAssignment(lhsPart[1])) {
6491
+ const newLhs = ref7;
6135
6492
  return lhsPart[1] = newLhs;
6136
6493
  }
6137
6494
  ;
@@ -6140,8 +6497,8 @@ ${js}`
6140
6497
  break;
6141
6498
  }
6142
6499
  case "UpdateExpression": {
6143
- if (ref4 = extractAssignment(exp.assigned)) {
6144
- const newLhs = ref4;
6500
+ if (ref6 = extractAssignment(exp.assigned)) {
6501
+ const newLhs = ref6;
6145
6502
  const i = exp.children.indexOf(exp.assigned);
6146
6503
  exp.assigned = exp.children[i] = newLhs;
6147
6504
  }
@@ -6157,7 +6514,7 @@ ${js}`
6157
6514
  const { assigned } = exp;
6158
6515
  const ref = makeRef();
6159
6516
  const newMemberExp = unchainOptionalMemberExpression(assigned, ref, (children) => {
6160
- return exp.children.map(($) => $ === assigned ? children : $);
6517
+ return exp.children.map(($3) => $3 === assigned ? children : $3);
6161
6518
  });
6162
6519
  if (newMemberExp !== assigned) {
6163
6520
  if (newMemberExp.usesRef) {
@@ -6181,23 +6538,23 @@ ${js}`
6181
6538
  (exp) => {
6182
6539
  let { lhs: $1, expression: $2 } = exp, tail = [], len3 = $1.length;
6183
6540
  let block;
6184
- let ref6;
6185
- if (exp.parent?.type === "BlockStatement" && !(ref6 = $1[$1.length - 1])?.[ref6.length - 1]?.special) {
6541
+ let ref8;
6542
+ if (exp.parent?.type === "BlockStatement" && !(ref8 = $1[$1.length - 1])?.[ref8.length - 1]?.special) {
6186
6543
  block = makeBlockFragment();
6187
- let ref7;
6188
- if (ref7 = prependStatementExpressionBlock(
6544
+ let ref9;
6545
+ if (ref9 = prependStatementExpressionBlock(
6189
6546
  { type: "Initializer", expression: $2, children: [void 0, void 0, $2] },
6190
6547
  block
6191
6548
  )) {
6192
- const ref = ref7;
6193
- exp.children = exp.children.map(($3) => $3 === $2 ? ref : $3);
6549
+ const ref = ref9;
6550
+ exp.children = exp.children.map(($4) => $4 === $2 ? ref : $4);
6194
6551
  $2 = ref;
6195
6552
  } else {
6196
6553
  block = void 0;
6197
6554
  }
6198
6555
  }
6199
- let ref8;
6200
- if ($1.some(($4) => (ref8 = $4)[ref8.length - 1].special)) {
6556
+ let ref10;
6557
+ if ($1.some(($5) => (ref10 = $5)[ref10.length - 1].special)) {
6201
6558
  if ($1.length !== 1)
6202
6559
  throw new Error("Only one assignment with id= is allowed");
6203
6560
  const [, lhs, , op] = $1[0];
@@ -6222,8 +6579,8 @@ ${js}`
6222
6579
  if (!(op.token === "=")) {
6223
6580
  continue;
6224
6581
  }
6225
- let m1;
6226
- if (m1 = lhs.type, m1 === "ObjectExpression" || m1 === "ObjectBindingPattern") {
6582
+ let m2;
6583
+ if (m2 = lhs.type, m2 === "ObjectExpression" || m2 === "ObjectBindingPattern") {
6227
6584
  if (!wrapped) {
6228
6585
  wrapped = true;
6229
6586
  lhs.children.splice(0, 0, "(");
@@ -6237,10 +6594,17 @@ ${js}`
6237
6594
  const lastAssignment = $1[i];
6238
6595
  if (lastAssignment[3].token === "=") {
6239
6596
  const lhs = lastAssignment[1];
6240
- let m2;
6597
+ let m3;
6241
6598
  if (lhs.type === "MemberExpression") {
6242
6599
  const members = lhs.children;
6243
6600
  const lastMember = members[members.length - 1];
6601
+ 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")) {
6602
+ lastMember.children.push({
6603
+ type: "Error",
6604
+ message: "Slice range cannot be decreasing in assignment"
6605
+ });
6606
+ break;
6607
+ }
6244
6608
  if (lastMember.type === "SliceExpression") {
6245
6609
  const { start, end, children: c } = lastMember;
6246
6610
  c[0].token = ".splice(";
@@ -6263,9 +6627,9 @@ ${js}`
6263
6627
  exp.names = [];
6264
6628
  break;
6265
6629
  }
6266
- } else if (m2 = lhs.type, m2 === "ObjectBindingPattern" || m2 === "ArrayBindingPattern") {
6630
+ } else if (m3 = lhs.type, m3 === "ObjectBindingPattern" || m3 === "ArrayBindingPattern") {
6267
6631
  processBindingPatternLHS(lhs, tail);
6268
- gatherRecursiveAll(lhs, ($5) => $5.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare));
6632
+ gatherRecursiveAll(lhs, ($6) => $6.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare));
6269
6633
  }
6270
6634
  }
6271
6635
  i--;
@@ -6298,7 +6662,7 @@ ${js}`
6298
6662
  }
6299
6663
  if (refsToDeclare.size) {
6300
6664
  if (exp.hoistDec) {
6301
- exp.hoistDec.children.push([...refsToDeclare].map(($6) => [",", $6]));
6665
+ exp.hoistDec.children.push([...refsToDeclare].map(($7) => [",", $7]));
6302
6666
  } else {
6303
6667
  exp.hoistDec = {
6304
6668
  type: "Declaration",
@@ -6372,9 +6736,9 @@ ${js}`
6372
6736
  }
6373
6737
  j++;
6374
6738
  }
6375
- let ref9;
6376
- if (ref9 = conditions.length) {
6377
- const l = ref9;
6739
+ let ref11;
6740
+ if (ref11 = conditions.length) {
6741
+ const l = ref11;
6378
6742
  const cs = flatJoin(conditions, " && ");
6379
6743
  return {
6380
6744
  ...exp,
@@ -6413,27 +6777,27 @@ ${js}`
6413
6777
  if (!unary.suffix.length) {
6414
6778
  return;
6415
6779
  }
6416
- let ref10;
6417
- let m3;
6418
- if (m3 = (ref10 = unary.suffix)[ref10.length - 1], typeof m3 === "object" && m3 != null && "token" in m3 && m3.token === "?") {
6419
- const { token } = m3;
6780
+ let ref12;
6781
+ let m4;
6782
+ if (m4 = (ref12 = unary.suffix)[ref12.length - 1], typeof m4 === "object" && m4 != null && "token" in m4 && m4.token === "?") {
6783
+ const { token } = m4;
6420
6784
  let last;
6421
6785
  let count = 0;
6422
- let ref11;
6423
- while (unary.suffix.length && (ref11 = unary.suffix)[ref11.length - 1]?.token === "?") {
6786
+ let ref13;
6787
+ while (unary.suffix.length && (ref13 = unary.suffix)[ref13.length - 1]?.token === "?") {
6424
6788
  last = unary.suffix.pop();
6425
6789
  count++;
6426
6790
  }
6427
- let ref12;
6428
- while (unary.suffix.length && (ref12 = unary.suffix)[ref12.length - 1]?.type === "NonNullAssertion") {
6791
+ let ref14;
6792
+ while (unary.suffix.length && (ref14 = unary.suffix)[ref14.length - 1]?.type === "NonNullAssertion") {
6429
6793
  unary.suffix.pop();
6430
6794
  }
6431
- let ref13;
6795
+ let ref15;
6432
6796
  if (unary.suffix.length || unary.prefix.length)
6433
- ref13 = unary;
6797
+ ref15 = unary;
6434
6798
  else
6435
- ref13 = unary.t;
6436
- const t = ref13;
6799
+ ref15 = unary.t;
6800
+ const t = ref15;
6437
6801
  if (unary.parent?.type === "TypeTuple") {
6438
6802
  if (count === 1) {
6439
6803
  unary.suffix.push(last);
@@ -6459,14 +6823,14 @@ ${js}`
6459
6823
  ]
6460
6824
  });
6461
6825
  }
6462
- } else if (typeof m3 === "object" && m3 != null && "type" in m3 && m3.type === "NonNullAssertion") {
6463
- const { type } = m3;
6464
- let ref14;
6465
- while (unary.suffix.length && (ref14 = unary.suffix)[ref14.length - 1]?.type === "NonNullAssertion") {
6826
+ } else if (typeof m4 === "object" && m4 != null && "type" in m4 && m4.type === "NonNullAssertion") {
6827
+ const { type } = m4;
6828
+ let ref16;
6829
+ while (unary.suffix.length && (ref16 = unary.suffix)[ref16.length - 1]?.type === "NonNullAssertion") {
6466
6830
  unary.suffix.pop();
6467
6831
  }
6468
- let ref15;
6469
- while (unary.suffix.length && (ref15 = unary.suffix)[ref15.length - 1]?.token === "?") {
6832
+ let ref17;
6833
+ while (unary.suffix.length && (ref17 = unary.suffix)[ref17.length - 1]?.token === "?") {
6470
6834
  unary.suffix.pop();
6471
6835
  }
6472
6836
  const t = trimFirstSpace(
@@ -6492,14 +6856,14 @@ ${js}`
6492
6856
  });
6493
6857
  }
6494
6858
  function processStatementExpressions(statements) {
6495
- gatherRecursiveAll(statements, ($7) => $7.type === "StatementExpression").forEach((_exp) => {
6859
+ gatherRecursiveAll(statements, ($8) => $8.type === "StatementExpression").forEach((_exp) => {
6496
6860
  const exp = _exp;
6497
6861
  const { statement } = exp;
6498
- let ref16;
6862
+ let ref18;
6499
6863
  switch (statement.type) {
6500
6864
  case "IfStatement": {
6501
- if (ref16 = expressionizeIfStatement(statement)) {
6502
- const expression = ref16;
6865
+ if (ref18 = expressionizeIfStatement(statement)) {
6866
+ const expression = ref18;
6503
6867
  return replaceNode(statement, expression, exp);
6504
6868
  } else {
6505
6869
  return replaceNode(statement, wrapIIFE([["", statement]]), exp);
@@ -6568,7 +6932,7 @@ ${js}`
6568
6932
  if (config2.iife || config2.repl) {
6569
6933
  rootIIFE = wrapIIFE(root.expressions, root.topLevelAwait);
6570
6934
  const newExpressions = [["", rootIIFE]];
6571
- root.children = root.children.map(($8) => $8 === root.expressions ? newExpressions : $8);
6935
+ root.children = root.children.map(($9) => $9 === root.expressions ? newExpressions : $9);
6572
6936
  root.expressions = newExpressions;
6573
6937
  }
6574
6938
  addParentPointers(root);
@@ -6608,17 +6972,17 @@ ${js}`
6608
6972
  await processComptime(statements);
6609
6973
  }
6610
6974
  function processRepl(root, rootIIFE) {
6611
- const topBlock = gatherRecursive(rootIIFE, ($9) => $9.type === "BlockStatement")[0];
6975
+ const topBlock = gatherRecursive(rootIIFE, ($10) => $10.type === "BlockStatement")[0];
6612
6976
  let i = 0;
6613
- for (let ref17 = gatherRecursiveWithinFunction(topBlock, ($10) => $10.type === "Declaration"), i4 = 0, len3 = ref17.length; i4 < len3; i4++) {
6614
- const decl = ref17[i4];
6977
+ for (let ref19 = gatherRecursiveWithinFunction(topBlock, ($11) => $11.type === "Declaration"), i5 = 0, len4 = ref19.length; i5 < len4; i5++) {
6978
+ const decl = ref19[i5];
6615
6979
  if (decl.parent === topBlock || decl.decl === "var") {
6616
6980
  decl.children.shift();
6617
6981
  root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")};`]);
6618
6982
  }
6619
6983
  }
6620
- for (let ref18 = gatherRecursive(topBlock, ($11) => $11.type === "FunctionExpression"), i5 = 0, len4 = ref18.length; i5 < len4; i5++) {
6621
- const func = ref18[i5];
6984
+ for (let ref20 = gatherRecursive(topBlock, ($12) => $12.type === "FunctionExpression"), i6 = 0, len5 = ref20.length; i6 < len5; i6++) {
6985
+ const func = ref20[i6];
6622
6986
  if (func.name && func.parent?.type === "BlockStatement") {
6623
6987
  if (func.parent === topBlock) {
6624
6988
  replaceNode(func, void 0);
@@ -6630,17 +6994,17 @@ ${js}`
6630
6994
  }
6631
6995
  }
6632
6996
  }
6633
- for (let ref19 = gatherRecursiveWithinFunction(topBlock, ($12) => $12.type === "ClassExpression"), i6 = 0, len5 = ref19.length; i6 < len5; i6++) {
6634
- const classExp = ref19[i6];
6635
- let m4;
6636
- 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)) {
6997
+ for (let ref21 = gatherRecursiveWithinFunction(topBlock, ($13) => $13.type === "ClassExpression"), i7 = 0, len6 = ref21.length; i7 < len6; i7++) {
6998
+ const classExp = ref21[i7];
6999
+ let m5;
7000
+ 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)) {
6637
7001
  classExp.children.unshift(classExp.name, "=");
6638
7002
  root.expressions.splice(i++, 0, ["", `var ${classExp.name};`]);
6639
7003
  }
6640
7004
  }
6641
7005
  }
6642
7006
  function populateRefs(statements) {
6643
- const refNodes = gatherRecursive(statements, ($13) => $13.type === "Ref");
7007
+ const refNodes = gatherRecursive(statements, ($14) => $14.type === "Ref");
6644
7008
  if (refNodes.length) {
6645
7009
  const ids = gatherRecursive(statements, (s) => s.type === "Identifier");
6646
7010
  const names = new Set(ids.flatMap(({ names: names2 }) => names2 || []));
@@ -6663,11 +7027,11 @@ ${js}`
6663
7027
  function processPlaceholders(statements) {
6664
7028
  const placeholderMap = /* @__PURE__ */ new Map();
6665
7029
  const liftedIfs = /* @__PURE__ */ new Set();
6666
- gatherRecursiveAll(statements, ($14) => $14.type === "Placeholder").forEach((_exp) => {
7030
+ gatherRecursiveAll(statements, ($15) => $15.type === "Placeholder").forEach((_exp) => {
6667
7031
  const exp = _exp;
6668
7032
  let ancestor;
6669
7033
  if (exp.subtype === ".") {
6670
- ({ ancestor } = findAncestor(exp, ($15) => $15.type === "Call"));
7034
+ ({ ancestor } = findAncestor(exp, ($16) => $16.type === "Call"));
6671
7035
  ancestor = ancestor?.parent;
6672
7036
  while (ancestor?.parent?.type === "UnaryExpression" || ancestor?.parent?.type === "NewExpression") {
6673
7037
  ancestor = ancestor.parent;
@@ -6686,10 +7050,10 @@ ${js}`
6686
7050
  if (type === "IfStatement") {
6687
7051
  liftedIfs.add(ancestor2);
6688
7052
  }
6689
- let m5;
6690
7053
  let m6;
7054
+ let m7;
6691
7055
  return type === "Call" || // Block, except for if/else blocks when condition already lifted
6692
- 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
7056
+ 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
6693
7057
  type === "Initializer" || // Right-hand side of assignment
6694
7058
  type === "AssignmentExpression" && findChildIndex(ancestor2, child2) === ancestor2.children.indexOf(ancestor2.expression) || type === "ReturnStatement" || type === "YieldExpression";
6695
7059
  }));
@@ -6765,11 +7129,11 @@ ${js}`
6765
7129
  for (const [ancestor, placeholders] of placeholderMap) {
6766
7130
  let ref = makeRef("$");
6767
7131
  let typeSuffix;
6768
- for (let i7 = 0, len6 = placeholders.length; i7 < len6; i7++) {
6769
- const placeholder = placeholders[i7];
7132
+ for (let i8 = 0, len7 = placeholders.length; i8 < len7; i8++) {
7133
+ const placeholder = placeholders[i8];
6770
7134
  typeSuffix ??= placeholder.typeSuffix;
6771
- let ref20;
6772
- replaceNode((ref20 = placeholder.children)[ref20.length - 1], ref);
7135
+ let ref22;
7136
+ replaceNode((ref22 = placeholder.children)[ref22.length - 1], ref);
6773
7137
  }
6774
7138
  const { parent } = ancestor;
6775
7139
  const body = maybeUnwrap(ancestor);
@@ -6790,16 +7154,16 @@ ${js}`
6790
7154
  }
6791
7155
  case "PipelineExpression": {
6792
7156
  const i = findChildIndex(parent, ancestor);
6793
- let ref21;
7157
+ let ref23;
6794
7158
  if (i === 1) {
6795
- ref21 = ancestor === parent.children[i];
7159
+ ref23 = ancestor === parent.children[i];
6796
7160
  } else if (i === 2) {
6797
- ref21 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
7161
+ ref23 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
6798
7162
  } else {
6799
- ref21 = void 0;
7163
+ ref23 = void 0;
6800
7164
  }
6801
7165
  ;
6802
- outer = ref21;
7166
+ outer = ref23;
6803
7167
  break;
6804
7168
  }
6805
7169
  case "AssignmentExpression":
@@ -6814,9 +7178,9 @@ ${js}`
6814
7178
  fnExp = makeLeftHandSideExpression(fnExp);
6815
7179
  }
6816
7180
  replaceNode(ancestor, fnExp, parent);
6817
- let ref22;
6818
- if (ref22 = getTrimmingSpace(body)) {
6819
- const ws = ref22;
7181
+ let ref24;
7182
+ if (ref24 = getTrimmingSpace(body)) {
7183
+ const ws = ref24;
6820
7184
  inplaceInsertTrimmingSpace(body, "");
6821
7185
  inplacePrepend(ws, fnExp);
6822
7186
  }
@@ -6861,8 +7225,8 @@ ${js}`
6861
7225
  }
6862
7226
  ];
6863
7227
  }
6864
- let ref23;
6865
- if (Array.isArray(rest.delim) && (ref23 = rest.delim)[ref23.length - 1]?.token === ",") {
7228
+ let ref25;
7229
+ if (Array.isArray(rest.delim) && (ref25 = rest.delim)[ref25.length - 1]?.token === ",") {
6866
7230
  rest.delim = rest.delim.slice(0, -1);
6867
7231
  rest.children = [...rest.children.slice(0, -1), rest.delim];
6868
7232
  }
@@ -6887,9 +7251,9 @@ ${js}`
6887
7251
  return root;
6888
7252
  }
6889
7253
  }
6890
- for (let i8 = 0, len7 = array.length; i8 < len7; i8++) {
6891
- const i = i8;
6892
- const node = array[i8];
7254
+ for (let i9 = 0, len8 = array.length; i9 < len8; i9++) {
7255
+ const i = i9;
7256
+ const node = array[i9];
6893
7257
  if (!(node != null)) {
6894
7258
  return;
6895
7259
  }
@@ -6913,9 +7277,9 @@ ${js}`
6913
7277
  return root;
6914
7278
  }
6915
7279
  }
6916
- for (let i9 = 0, len8 = array.length; i9 < len8; i9++) {
6917
- const i = i9;
6918
- const node = array[i9];
7280
+ for (let i10 = 0, len9 = array.length; i10 < len9; i10++) {
7281
+ const i = i10;
7282
+ const node = array[i10];
6919
7283
  if (!(node != null)) {
6920
7284
  continue;
6921
7285
  }
@@ -7215,6 +7579,8 @@ ${js}`
7215
7579
  UpcomingAssignment,
7216
7580
  ArrayLiteral,
7217
7581
  _ArrayLiteral,
7582
+ RangeDots,
7583
+ RangeEnd,
7218
7584
  RangeExpression,
7219
7585
  ArrayLiteralContent,
7220
7586
  NestedElementList,
@@ -7331,7 +7697,7 @@ ${js}`
7331
7697
  IgnoreColon,
7332
7698
  TryStatement,
7333
7699
  CatchClause,
7334
- CatchBind,
7700
+ CatchBinding,
7335
7701
  FinallyClause,
7336
7702
  CatchParameter,
7337
7703
  Condition,
@@ -7675,6 +8041,7 @@ ${js}`
7675
8041
  TypeSuffix,
7676
8042
  MaybeNestedType,
7677
8043
  MaybeNestedTypePrimary,
8044
+ MaybeNestedTypeUnary,
7678
8045
  ReturnTypeSuffix,
7679
8046
  ReturnType,
7680
8047
  TypePredicate,
@@ -8062,86 +8429,87 @@ ${js}`
8062
8429
  var $R17 = (0, import_lib4.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
8063
8430
  var $R18 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8064
8431
  var $R19 = (0, import_lib4.$R)(new RegExp("(?=\\[|\\s*[.\u2022])", "suy"));
8065
- var $R20 = (0, import_lib4.$R)(new RegExp("[ \\t]*", "suy"));
8066
- var $R21 = (0, import_lib4.$R)(new RegExp("[ \\t]+", "suy"));
8067
- var $R22 = (0, import_lib4.$R)(new RegExp("[!+-]?", "suy"));
8068
- var $R23 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8069
- var $R24 = (0, import_lib4.$R)(new RegExp("[=>]", "suy"));
8070
- 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"));
8071
- var $R26 = (0, import_lib4.$R)(new RegExp("!\\^\\^?", "suy"));
8072
- var $R27 = (0, import_lib4.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
8073
- var $R28 = (0, import_lib4.$R)(new RegExp("[:.]", "suy"));
8074
- var $R29 = (0, import_lib4.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
8075
- var $R30 = (0, import_lib4.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
8076
- var $R31 = (0, import_lib4.$R)(new RegExp('[^;"\\s]+', "suy"));
8077
- var $R32 = (0, import_lib4.$R)(new RegExp("(?=[0-9.])", "suy"));
8078
- var $R33 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
8079
- var $R34 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
8080
- var $R35 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
8081
- var $R36 = (0, import_lib4.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
8082
- var $R37 = (0, import_lib4.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
8083
- var $R38 = (0, import_lib4.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
8084
- var $R39 = (0, import_lib4.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
8085
- var $R40 = (0, import_lib4.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
8086
- var $R41 = (0, import_lib4.$R)(new RegExp("(?=[0-9])", "suy"));
8087
- var $R42 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
8088
- var $R43 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
8089
- var $R44 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
8090
- var $R45 = (0, import_lib4.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
8091
- var $R46 = (0, import_lib4.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
8092
- var $R47 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
8093
- var $R48 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
8094
- var $R49 = (0, import_lib4.$R)(new RegExp("(?:\\\\.)", "suy"));
8095
- var $R50 = (0, import_lib4.$R)(new RegExp("[\\s]+", "suy"));
8096
- var $R51 = (0, import_lib4.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
8097
- var $R52 = (0, import_lib4.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
8098
- var $R53 = (0, import_lib4.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
8099
- var $R54 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
8100
- var $R55 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8101
- var $R56 = (0, import_lib4.$R)(new RegExp("(?=[`'\"])", "suy"));
8102
- var $R57 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
8103
- var $R58 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
8104
- var $R59 = (0, import_lib4.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
8105
- var $R60 = (0, import_lib4.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
8106
- var $R61 = (0, import_lib4.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
8107
- var $R62 = (0, import_lib4.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
8108
- 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"));
8109
- var $R64 = (0, import_lib4.$R)(new RegExp("(?=\\/|#)", "suy"));
8110
- var $R65 = (0, import_lib4.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
8111
- var $R66 = (0, import_lib4.$R)(new RegExp(".", "suy"));
8112
- var $R67 = (0, import_lib4.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
8113
- var $R68 = (0, import_lib4.$R)(new RegExp("[^]*?###", "suy"));
8114
- var $R69 = (0, import_lib4.$R)(new RegExp("###(?!#)", "suy"));
8115
- var $R70 = (0, import_lib4.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
8116
- var $R71 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
8117
- var $R72 = (0, import_lib4.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
8118
- var $R73 = (0, import_lib4.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
8119
- var $R74 = (0, import_lib4.$R)(new RegExp("[=:]", "suy"));
8120
- var $R75 = (0, import_lib4.$R)(new RegExp("['\u2019]s", "suy"));
8121
- var $R76 = (0, import_lib4.$R)(new RegExp("\\s", "suy"));
8122
- var $R77 = (0, import_lib4.$R)(new RegExp("(?=[<])", "suy"));
8123
- var $R78 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8124
- var $R79 = (0, import_lib4.$R)(new RegExp("[!+-]", "suy"));
8125
- var $R80 = (0, import_lib4.$R)(new RegExp("[\\s>]|\\/>", "suy"));
8126
- var $R81 = (0, import_lib4.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
8127
- var $R82 = (0, import_lib4.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
8128
- var $R83 = (0, import_lib4.$R)(new RegExp("[<>]", "suy"));
8129
- var $R84 = (0, import_lib4.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
8130
- var $R85 = (0, import_lib4.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
8131
- var $R86 = (0, import_lib4.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
8132
- var $R87 = (0, import_lib4.$R)(new RegExp("[+-]?", "suy"));
8133
- var $R88 = (0, import_lib4.$R)(new RegExp("(?=if|unless)", "suy"));
8134
- var $R89 = (0, import_lib4.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
8135
- var $R90 = (0, import_lib4.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
8136
- var $R91 = (0, import_lib4.$R)(new RegExp("const|in|out", "suy"));
8137
- var $R92 = (0, import_lib4.$R)(new RegExp("#![^\\r\\n]*", "suy"));
8138
- var $R93 = (0, import_lib4.$R)(new RegExp("[\\t ]*", "suy"));
8139
- var $R94 = (0, import_lib4.$R)(new RegExp("[\\s]*", "suy"));
8140
- var $R95 = (0, import_lib4.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
8141
- var $R96 = (0, import_lib4.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
8142
- var $R97 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
8143
- var $R98 = (0, import_lib4.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
8144
- var $R99 = (0, import_lib4.$R)(new RegExp("[^]*", "suy"));
8432
+ var $R20 = (0, import_lib4.$R)(new RegExp("([<>])(=?)|([\u2264\u2265])", "suy"));
8433
+ var $R21 = (0, import_lib4.$R)(new RegExp("[ \\t]*", "suy"));
8434
+ var $R22 = (0, import_lib4.$R)(new RegExp("[ \\t]+", "suy"));
8435
+ var $R23 = (0, import_lib4.$R)(new RegExp("[!+-]?", "suy"));
8436
+ var $R24 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8437
+ var $R25 = (0, import_lib4.$R)(new RegExp("[=>]", "suy"));
8438
+ 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"));
8439
+ var $R27 = (0, import_lib4.$R)(new RegExp("!\\^\\^?", "suy"));
8440
+ var $R28 = (0, import_lib4.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
8441
+ var $R29 = (0, import_lib4.$R)(new RegExp("[:.]", "suy"));
8442
+ var $R30 = (0, import_lib4.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
8443
+ var $R31 = (0, import_lib4.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
8444
+ var $R32 = (0, import_lib4.$R)(new RegExp('[^;"\\s]+', "suy"));
8445
+ var $R33 = (0, import_lib4.$R)(new RegExp("(?=[0-9.])", "suy"));
8446
+ var $R34 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
8447
+ var $R35 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
8448
+ var $R36 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
8449
+ var $R37 = (0, import_lib4.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
8450
+ var $R38 = (0, import_lib4.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
8451
+ var $R39 = (0, import_lib4.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
8452
+ var $R40 = (0, import_lib4.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
8453
+ var $R41 = (0, import_lib4.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
8454
+ var $R42 = (0, import_lib4.$R)(new RegExp("(?=[0-9])", "suy"));
8455
+ var $R43 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
8456
+ var $R44 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
8457
+ var $R45 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
8458
+ var $R46 = (0, import_lib4.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
8459
+ var $R47 = (0, import_lib4.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
8460
+ var $R48 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
8461
+ var $R49 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
8462
+ var $R50 = (0, import_lib4.$R)(new RegExp("(?:\\\\.)", "suy"));
8463
+ var $R51 = (0, import_lib4.$R)(new RegExp("[\\s]+", "suy"));
8464
+ var $R52 = (0, import_lib4.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
8465
+ var $R53 = (0, import_lib4.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
8466
+ var $R54 = (0, import_lib4.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
8467
+ var $R55 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
8468
+ var $R56 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8469
+ var $R57 = (0, import_lib4.$R)(new RegExp("(?=[`'\"])", "suy"));
8470
+ var $R58 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
8471
+ var $R59 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
8472
+ var $R60 = (0, import_lib4.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
8473
+ var $R61 = (0, import_lib4.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
8474
+ var $R62 = (0, import_lib4.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
8475
+ var $R63 = (0, import_lib4.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
8476
+ 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"));
8477
+ var $R65 = (0, import_lib4.$R)(new RegExp("(?=\\/|#)", "suy"));
8478
+ var $R66 = (0, import_lib4.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
8479
+ var $R67 = (0, import_lib4.$R)(new RegExp(".", "suy"));
8480
+ var $R68 = (0, import_lib4.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
8481
+ var $R69 = (0, import_lib4.$R)(new RegExp("[^]*?###", "suy"));
8482
+ var $R70 = (0, import_lib4.$R)(new RegExp("###(?!#)", "suy"));
8483
+ var $R71 = (0, import_lib4.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
8484
+ var $R72 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
8485
+ var $R73 = (0, import_lib4.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
8486
+ var $R74 = (0, import_lib4.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
8487
+ var $R75 = (0, import_lib4.$R)(new RegExp("[=:]", "suy"));
8488
+ var $R76 = (0, import_lib4.$R)(new RegExp("['\u2019]s", "suy"));
8489
+ var $R77 = (0, import_lib4.$R)(new RegExp("\\s", "suy"));
8490
+ var $R78 = (0, import_lib4.$R)(new RegExp("(?=[<])", "suy"));
8491
+ var $R79 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8492
+ var $R80 = (0, import_lib4.$R)(new RegExp("[!+-]", "suy"));
8493
+ var $R81 = (0, import_lib4.$R)(new RegExp("[\\s>]|\\/>", "suy"));
8494
+ var $R82 = (0, import_lib4.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
8495
+ var $R83 = (0, import_lib4.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
8496
+ var $R84 = (0, import_lib4.$R)(new RegExp("[<>]", "suy"));
8497
+ var $R85 = (0, import_lib4.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
8498
+ var $R86 = (0, import_lib4.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
8499
+ var $R87 = (0, import_lib4.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
8500
+ var $R88 = (0, import_lib4.$R)(new RegExp("[+-]?", "suy"));
8501
+ var $R89 = (0, import_lib4.$R)(new RegExp("(?=if|unless)", "suy"));
8502
+ var $R90 = (0, import_lib4.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
8503
+ var $R91 = (0, import_lib4.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
8504
+ var $R92 = (0, import_lib4.$R)(new RegExp("const|in|out", "suy"));
8505
+ var $R93 = (0, import_lib4.$R)(new RegExp("#![^\\r\\n]*", "suy"));
8506
+ var $R94 = (0, import_lib4.$R)(new RegExp("[\\t ]*", "suy"));
8507
+ var $R95 = (0, import_lib4.$R)(new RegExp("[\\s]*", "suy"));
8508
+ var $R96 = (0, import_lib4.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
8509
+ var $R97 = (0, import_lib4.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
8510
+ var $R98 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
8511
+ var $R99 = (0, import_lib4.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
8512
+ var $R100 = (0, import_lib4.$R)(new RegExp("[^]*", "suy"));
8145
8513
  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) {
8146
8514
  var reset = $1;
8147
8515
  var init = $2;
@@ -8344,7 +8712,7 @@ ${js}`
8344
8712
  function ExplicitArguments(ctx, state2) {
8345
8713
  return (0, import_lib4.$EVENT)(ctx, state2, "ExplicitArguments", ExplicitArguments$0);
8346
8714
  }
8347
- 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));
8715
+ 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));
8348
8716
  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))));
8349
8717
  var ApplicationStart$$ = [ApplicationStart$0, ApplicationStart$1];
8350
8718
  function ApplicationStart(ctx, state2) {
@@ -8513,11 +8881,15 @@ ${js}`
8513
8881
  function BinaryOpExpression(ctx, state2) {
8514
8882
  return (0, import_lib4.$EVENT)(ctx, state2, "BinaryOpExpression", BinaryOpExpression$0);
8515
8883
  }
8516
- var BinaryOpNotDedented$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$C)(NestedBinaryOpAllowed, (0, import_lib4.$N)(Nested)), NotDedented), function(value) {
8884
+ var BinaryOpNotDedented$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$N)(NewlineBinaryOpAllowed), (0, import_lib4.$E)(_)), function(value) {
8885
+ return value[1];
8886
+ });
8887
+ 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) {
8517
8888
  return value[1];
8518
8889
  });
8890
+ var BinaryOpNotDedented$$ = [BinaryOpNotDedented$0, BinaryOpNotDedented$1];
8519
8891
  function BinaryOpNotDedented(ctx, state2) {
8520
- return (0, import_lib4.$EVENT)(ctx, state2, "BinaryOpNotDedented", BinaryOpNotDedented$0);
8892
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "BinaryOpNotDedented", BinaryOpNotDedented$$);
8521
8893
  }
8522
8894
  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) {
8523
8895
  var ws1 = $1;
@@ -8658,8 +9030,15 @@ ${js}`
8658
9030
  var postfix = $2;
8659
9031
  return prepend(ws, postfix);
8660
9032
  });
9033
+ 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) {
9034
+ var indent = $2;
9035
+ var ws = $3;
9036
+ var postfix = $4;
9037
+ return prepend(ws || " ", postfix);
9038
+ });
9039
+ var TypePostfix$$ = [TypePostfix$0, TypePostfix$1];
8661
9040
  function TypePostfix(ctx, state2) {
8662
- return (0, import_lib4.$EVENT)(ctx, state2, "TypePostfix", TypePostfix$0);
9041
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "TypePostfix", TypePostfix$$);
8663
9042
  }
8664
9043
  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) {
8665
9044
  return {
@@ -9721,11 +10100,12 @@ ${js}`
9721
10100
  var ws = $3;
9722
10101
  var close = $4;
9723
10102
  if (expression.type === "SliceParameters") {
9724
- const { start, end, children } = expression;
10103
+ const { start, end, reversed, children } = expression;
9725
10104
  return {
9726
10105
  type: "SliceExpression",
9727
10106
  start,
9728
10107
  end,
10108
+ reversed,
9729
10109
  children: [
9730
10110
  { ...open, token: ".slice(" },
9731
10111
  ...children,
@@ -9742,20 +10122,44 @@ ${js}`
9742
10122
  function MemberBracketContent(ctx, state2) {
9743
10123
  return (0, import_lib4.$EVENT)(ctx, state2, "MemberBracketContent", MemberBracketContent$0);
9744
10124
  }
9745
- 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) {
9746
- var start = $1;
9747
- var ws = $2;
9748
- var sep = $3;
9749
- var end = $4;
9750
- const inclusive = sep.token === "..";
10125
+ 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) {
10126
+ var ls = $1;
10127
+ var start = $2;
10128
+ var ws = $3;
10129
+ var dots = $4;
10130
+ var le = $5;
10131
+ var end = $6;
10132
+ const reversed = dots.increasing === false;
10133
+ const sign = reversed ? "-" : "+";
9751
10134
  let children;
10135
+ start ??= {
10136
+ $loc: ls.$loc,
10137
+ token: reversed ? "-1" : "0"
10138
+ };
10139
+ if (!end) {
10140
+ if (reversed) {
10141
+ end = {
10142
+ $loc: le.$loc,
10143
+ token: "0"
10144
+ };
10145
+ } else if (!dots.right.inclusive && !dots.triple) {
10146
+ end = {
10147
+ $loc: le.$loc,
10148
+ token: "-1"
10149
+ };
10150
+ }
10151
+ }
10152
+ if (!dots.left.inclusive) {
10153
+ start = [makeLeftHandSideExpression(start), ` ${sign} 1`];
10154
+ }
9752
10155
  if (end) {
9753
10156
  const inc = [];
9754
- if (inclusive) {
9755
- end = ["1 + ", makeLeftHandSideExpression(end)];
9756
- inc.push(" || 1/0");
10157
+ if (dots.right.inclusive) {
10158
+ end = [makeLeftHandSideExpression(end), ` ${sign} 1`];
10159
+ if (!reversed)
10160
+ inc.push(" || 1/0");
9757
10161
  }
9758
- children = [start, [...ws, { ...sep, token: ", " }], [end, ...inc]];
10162
+ children = [start, [...ws, dots.children[0], { token: ", ", $loc: dots.$loc }], [dots.children[1], end, ...inc]];
9759
10163
  } else {
9760
10164
  children = [start, ws];
9761
10165
  }
@@ -9763,48 +10167,12 @@ ${js}`
9763
10167
  type: "SliceParameters",
9764
10168
  start,
9765
10169
  end,
10170
+ reversed,
9766
10171
  children
9767
10172
  };
9768
10173
  });
9769
- 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) {
9770
- var l = $1;
9771
- var ws = $2;
9772
- var sep = $3;
9773
- var end = $4;
9774
- const inclusive = sep.token === "..";
9775
- const inc = [];
9776
- if (inclusive) {
9777
- end = ["1 + ", end];
9778
- inc.push(" || 1/0");
9779
- }
9780
- const start = {
9781
- $loc: l.$loc,
9782
- token: "0"
9783
- };
9784
- return {
9785
- type: "SliceParameters",
9786
- start,
9787
- end,
9788
- children: [start, [...ws, { ...sep, token: ", " }], [end, ...inc]]
9789
- };
9790
- });
9791
- 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) {
9792
- var l = $1;
9793
- var ws = $2;
9794
- const start = {
9795
- $loc: l.$loc,
9796
- token: "0"
9797
- };
9798
- return {
9799
- type: "SliceParameters",
9800
- start,
9801
- end: void 0,
9802
- children: [start, ws]
9803
- };
9804
- });
9805
- var SliceParameters$$ = [SliceParameters$0, SliceParameters$1, SliceParameters$2];
9806
10174
  function SliceParameters(ctx, state2) {
9807
- return (0, import_lib4.$EVENT_C)(ctx, state2, "SliceParameters", SliceParameters$$);
10175
+ return (0, import_lib4.$EVENT)(ctx, state2, "SliceParameters", SliceParameters$0);
9808
10176
  }
9809
10177
  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) {
9810
10178
  var modifier = $1;
@@ -11267,10 +11635,7 @@ ${js}`
11267
11635
  if (last)
11268
11636
  expressions.push(last);
11269
11637
  const maybeComment = expressions.at(-1)?.[2]?.children?.[2]?.at(-1);
11270
- let hasTrailingComment = false;
11271
- if (maybeComment?.type === "Comment" && maybeComment.token.startsWith("//")) {
11272
- hasTrailingComment = true;
11273
- }
11638
+ const hasTrailingComment = maybeComment?.type === "Comment" && maybeComment.token.startsWith("//");
11274
11639
  const children = [expressions];
11275
11640
  if (hasTrailingComment)
11276
11641
  children.push("\n");
@@ -11469,70 +11834,83 @@ ${js}`
11469
11834
  function _ArrayLiteral(ctx, state2) {
11470
11835
  return (0, import_lib4.$EVENT_C)(ctx, state2, "_ArrayLiteral", _ArrayLiteral$$);
11471
11836
  }
11472
- 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) {
11473
- var s = $1;
11474
- var ws = $2;
11475
- var range = $3;
11476
- var e = $4;
11477
- const inclusive = range.token === "..";
11478
- range.token = ",";
11479
- if (s.type === "Literal" && e.type === "Literal") {
11480
- const start = literalValue(s);
11481
- const end = literalValue(e);
11482
- if (typeof start !== typeof end) {
11483
- throw new Error("Range start and end must be of the same type");
11484
- }
11485
- if (typeof start === "string") {
11486
- if (start.length !== 1 || end.length !== 1) {
11487
- throw new Error("String range start and end must be a single character");
11488
- }
11489
- const startCode = start.charCodeAt(0);
11490
- const endCode = end.charCodeAt(0);
11491
- const step = startCode < endCode ? 1 : -1;
11492
- const length = Math.abs(endCode - startCode) + (inclusive ? 1 : 0);
11493
- if (length <= 26) {
11494
- return {
11495
- type: "RangeExpression",
11496
- children: ["[", Array.from({ length }, (_2, i) => JSON.stringify(String.fromCharCode(startCode + i * step))).join(", "), "]"],
11497
- inclusive,
11498
- start: s,
11499
- end: e
11500
- };
11501
- } else {
11502
- const inclusiveAdjust2 = inclusive ? " + 1" : "";
11503
- 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(), ")"];
11504
- return {
11505
- type: "RangeExpression",
11506
- children: children2,
11507
- inclusive,
11508
- start: s,
11509
- end: e
11510
- };
11511
- }
11512
- } else if (typeof start === "number") {
11513
- const step = end > start ? 1 : -1;
11514
- const length = Math.abs(end - start) + (inclusive ? 1 : 0);
11515
- if (length <= 20) {
11516
- return {
11517
- type: "RangeExpression",
11518
- children: ["[", Array.from({ length }, (_2, i) => start + i * step).join(", "), "]"],
11519
- inclusive,
11520
- start: s,
11521
- end: e
11522
- };
11523
- }
11837
+ var RangeDots$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(DotDotDot), function($skip, $loc, $0, $1) {
11838
+ return {
11839
+ ...$1,
11840
+ type: "RangeDots",
11841
+ left: { inclusive: true, raw: "" },
11842
+ right: { inclusive: false, raw: "." },
11843
+ increasing: void 0,
11844
+ triple: true,
11845
+ children: []
11846
+ };
11847
+ });
11848
+ 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) {
11849
+ var left = $1;
11850
+ var ws1 = $2;
11851
+ var dots = $3;
11852
+ var ws2 = $4;
11853
+ var right = $5;
11854
+ const increasing = left.increasing ?? right.increasing;
11855
+ if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
11856
+ const error = {
11857
+ type: "Error",
11858
+ message: `${left.raw}..${right.raw} uses inconsistent < vs. >`,
11859
+ $loc: dots.$loc
11860
+ };
11861
+ return {
11862
+ ...dots,
11863
+ left,
11864
+ right,
11865
+ increasing,
11866
+ error,
11867
+ type: "RangeDots",
11868
+ children: [error]
11869
+ };
11870
+ }
11871
+ return {
11872
+ ...dots,
11873
+ left,
11874
+ right,
11875
+ increasing,
11876
+ type: "RangeDots",
11877
+ children: [ws1, ws2]
11878
+ };
11879
+ });
11880
+ var RangeDots$$ = [RangeDots$0, RangeDots$1];
11881
+ function RangeDots(ctx, state2) {
11882
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "RangeDots", RangeDots$$);
11883
+ }
11884
+ 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) {
11885
+ let dir = $1, equal = $2, unicode = $3;
11886
+ if (unicode) {
11887
+ equal = "=";
11888
+ if (unicode === "\u2264") {
11889
+ dir = "<";
11890
+ } else if (unicode === "\u2265") {
11891
+ dir = ">";
11524
11892
  }
11525
11893
  }
11526
- const inclusiveAdjust = inclusive ? " + 1" : "";
11527
- 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, ")"];
11528
11894
  return {
11529
- type: "RangeExpression",
11530
- children,
11531
- inclusive,
11532
- start: s,
11533
- end: e
11895
+ increasing: dir === "<",
11896
+ inclusive: equal === "=",
11897
+ raw: $0
11534
11898
  };
11535
11899
  });
11900
+ var RangeEnd$1 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L0, 'RangeEnd ""'), function(value) {
11901
+ return { "increasing": void 0, "inclusive": true, "raw": "" };
11902
+ });
11903
+ var RangeEnd$$ = [RangeEnd$0, RangeEnd$1];
11904
+ function RangeEnd(ctx, state2) {
11905
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "RangeEnd", RangeEnd$$);
11906
+ }
11907
+ var RangeExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, RangeDots, Expression), function($skip, $loc, $0, $1, $2, $3, $4) {
11908
+ var start = $1;
11909
+ var ws = $2;
11910
+ var range = $3;
11911
+ var end = $4;
11912
+ return processRangeExpression(start, ws, range, end);
11913
+ });
11536
11914
  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) {
11537
11915
  var s = $1;
11538
11916
  var ws = $2;
@@ -11547,7 +11925,10 @@ ${js}`
11547
11925
  type: "Identifier",
11548
11926
  name: "Infinity",
11549
11927
  children: ["Infinity"]
11550
- }
11928
+ },
11929
+ left: { inclusive: true, raw: "" },
11930
+ right: { inclusive: true, raw: "" },
11931
+ increasing: true
11551
11932
  };
11552
11933
  });
11553
11934
  var RangeExpression$$ = [RangeExpression$0, RangeExpression$1];
@@ -11761,7 +12142,7 @@ ${js}`
11761
12142
  function ArrayBulletDelimiter(ctx, state2) {
11762
12143
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ArrayBulletDelimiter", ArrayBulletDelimiter$$);
11763
12144
  }
11764
- 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) {
12145
+ 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) {
11765
12146
  const [bullet, ws] = $1;
11766
12147
  const indent = {
11767
12148
  token: " " + ws,
@@ -11977,7 +12358,7 @@ ${js}`
11977
12358
  var prop = $2;
11978
12359
  return prepend(ws, prop);
11979
12360
  });
11980
- 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) {
12361
+ 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) {
11981
12362
  var ws = $1;
11982
12363
  var toggle = $2;
11983
12364
  var id = $3;
@@ -12128,7 +12509,7 @@ ${js}`
12128
12509
  var PropertyName$0 = NumericLiteral;
12129
12510
  var PropertyName$1 = ComputedPropertyName;
12130
12511
  var PropertyName$2 = StringLiteral;
12131
- 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) {
12512
+ 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) {
12132
12513
  return {
12133
12514
  token: `"${$1}"`,
12134
12515
  $loc
@@ -12527,7 +12908,7 @@ ${js}`
12527
12908
  var AssignmentOpSymbol$23 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L72, 'AssignmentOpSymbol "?="'), function(value) {
12528
12909
  return "??=";
12529
12910
  });
12530
- 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) {
12911
+ 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) {
12531
12912
  return value[0];
12532
12913
  });
12533
12914
  var AssignmentOpSymbol$25 = (0, import_lib4.$T)((0, import_lib4.$S)(CoffeeWordAssignmentOp), function(value) {
@@ -12580,7 +12961,7 @@ ${js}`
12580
12961
  function IdentifierBinaryOp(ctx, state2) {
12581
12962
  return (0, import_lib4.$EVENT)(ctx, state2, "IdentifierBinaryOp", IdentifierBinaryOp$0);
12582
12963
  }
12583
- 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) {
12964
+ 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) {
12584
12965
  var op = value[1];
12585
12966
  return op;
12586
12967
  });
@@ -12725,7 +13106,7 @@ ${js}`
12725
13106
  prec: "^^"
12726
13107
  };
12727
13108
  });
12728
- 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) {
13109
+ 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) {
12729
13110
  return {
12730
13111
  call: getHelperRef("xnor"),
12731
13112
  special: true,
@@ -12889,24 +13270,24 @@ ${js}`
12889
13270
  function Xor(ctx, state2) {
12890
13271
  return (0, import_lib4.$EVENT_C)(ctx, state2, "Xor", Xor$$);
12891
13272
  }
12892
- var Xnor$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R26, "Xnor /!\\^\\^?/"));
13273
+ var Xnor$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R27, "Xnor /!\\^\\^?/"));
12893
13274
  var Xnor$1 = (0, import_lib4.$EXPECT)($L109, 'Xnor "xnor"');
12894
13275
  var Xnor$$ = [Xnor$0, Xnor$1];
12895
13276
  function Xnor(ctx, state2) {
12896
13277
  return (0, import_lib4.$EVENT_C)(ctx, state2, "Xnor", Xnor$$);
12897
13278
  }
12898
- 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) {
13279
+ 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) {
12899
13280
  return { $loc, token: $0 };
12900
13281
  });
12901
13282
  var UnaryOp$1 = AwaitOp;
12902
- 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) {
13283
+ 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) {
12903
13284
  var op = $1;
12904
13285
  var ws = $3;
12905
13286
  if (!ws)
12906
13287
  return [op, [" "]];
12907
13288
  return [op, ws];
12908
13289
  });
12909
- 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) {
13290
+ 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) {
12910
13291
  return [value[0], value[3]];
12911
13292
  });
12912
13293
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -12993,7 +13374,7 @@ ${js}`
12993
13374
  function PostfixedCommaExpression(ctx, state2) {
12994
13375
  return (0, import_lib4.$EVENT)(ctx, state2, "PostfixedCommaExpression", PostfixedCommaExpression$0);
12995
13376
  }
12996
- 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) {
13377
+ 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) {
12997
13378
  return value[1];
12998
13379
  });
12999
13380
  function PostfixStatement(ctx, state2) {
@@ -13033,7 +13414,9 @@ ${js}`
13033
13414
  }
13034
13415
  var ShouldExpressionize$0 = AllowedTrailingCallExpressions;
13035
13416
  var ShouldExpressionize$1 = (0, import_lib4.$S)(NotDedented, Pipe);
13036
- var ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1];
13417
+ var ShouldExpressionize$2 = BinaryOpRHS;
13418
+ var ShouldExpressionize$3 = UnaryPostfix;
13419
+ var ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1, ShouldExpressionize$2, ShouldExpressionize$3];
13037
13420
  function ShouldExpressionize(ctx, state2) {
13038
13421
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ShouldExpressionize", ShouldExpressionize$$);
13039
13422
  }
@@ -13184,7 +13567,7 @@ ${js}`
13184
13567
  function IfClause(ctx, state2) {
13185
13568
  return (0, import_lib4.$EVENT)(ctx, state2, "IfClause", IfClause$0);
13186
13569
  }
13187
- 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) {
13570
+ 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) {
13188
13571
  return value[1];
13189
13572
  });
13190
13573
  function IterationStatement(ctx, state2) {
@@ -13736,12 +14119,14 @@ ${js}`
13736
14119
  };
13737
14120
  });
13738
14121
  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) {
14122
+ var e = $1;
14123
+ var colon = $2;
13739
14124
  var block = $3;
13740
- $1.token = "default";
14125
+ e = { ...e, token: "default" };
13741
14126
  return {
13742
14127
  type: "DefaultClause",
13743
14128
  block,
13744
- children: $0
14129
+ children: [e, colon, block]
13745
14130
  };
13746
14131
  });
13747
14132
  var CaseClause$$ = [CaseClause$0, CaseClause$1, CaseClause$2, CaseClause$3, CaseClause$4];
@@ -13812,36 +14197,56 @@ ${js}`
13812
14197
  function IgnoreColon(ctx, state2) {
13813
14198
  return (0, import_lib4.$EVENT)(ctx, state2, "IgnoreColon", IgnoreColon$0);
13814
14199
  }
13815
- 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) {
14200
+ 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) {
13816
14201
  return processTryBlock($0);
13817
14202
  });
13818
14203
  function TryStatement(ctx, state2) {
13819
14204
  return (0, import_lib4.$EVENT)(ctx, state2, "TryStatement", TryStatement$0);
13820
14205
  }
13821
- 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) {
14206
+ 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) {
14207
+ var binding = $3;
13822
14208
  var block = $4;
13823
14209
  return {
13824
14210
  type: "CatchClause",
13825
14211
  children: $0,
13826
- block
14212
+ block,
14213
+ binding
13827
14214
  };
13828
14215
  });
13829
14216
  function CatchClause(ctx, state2) {
13830
14217
  return (0, import_lib4.$EVENT)(ctx, state2, "CatchClause", CatchClause$0);
13831
14218
  }
13832
- var CatchBind$0 = (0, import_lib4.$S)((0, import_lib4.$E)(_), OpenParen, __, CatchParameter, __, CloseParen);
13833
- 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) {
14219
+ 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) {
14220
+ var ws1 = $1;
14221
+ var open = $2;
14222
+ var ws2 = $3;
14223
+ var parameter = $5;
14224
+ var ws3 = $7;
14225
+ var close = $8;
14226
+ if (!parameter)
14227
+ return $skip;
14228
+ return {
14229
+ type: "CatchBinding",
14230
+ parameter,
14231
+ children: [ws1, open, ws2, parameter, ws3, close]
14232
+ };
14233
+ });
14234
+ 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) {
13834
14235
  var ws = $1;
13835
14236
  var open = $2;
13836
- var param = $5;
14237
+ var parameter = $5;
13837
14238
  var close = $7;
13838
- if (!param)
14239
+ if (!parameter)
13839
14240
  return $skip;
13840
- return [ws, open, param, close];
14241
+ return {
14242
+ type: "CatchBinding",
14243
+ parameter,
14244
+ children: [ws, open, parameter, close]
14245
+ };
13841
14246
  });
13842
- var CatchBind$$ = [CatchBind$0, CatchBind$1];
13843
- function CatchBind(ctx, state2) {
13844
- return (0, import_lib4.$EVENT_C)(ctx, state2, "CatchBind", CatchBind$$);
14247
+ var CatchBinding$$ = [CatchBinding$0, CatchBinding$1];
14248
+ function CatchBinding(ctx, state2) {
14249
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "CatchBinding", CatchBinding$$);
13845
14250
  }
13846
14251
  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) {
13847
14252
  var block = $3;
@@ -13854,9 +14259,34 @@ ${js}`
13854
14259
  function FinallyClause(ctx, state2) {
13855
14260
  return (0, import_lib4.$EVENT)(ctx, state2, "FinallyClause", FinallyClause$0);
13856
14261
  }
13857
- var CatchParameter$0 = (0, import_lib4.$S)(BindingIdentifier, (0, import_lib4.$E)(TypeSuffix));
13858
- var CatchParameter$1 = (0, import_lib4.$S)(BindingPattern, (0, import_lib4.$E)(TypeSuffix));
13859
- var CatchParameter$$ = [CatchParameter$0, CatchParameter$1];
14262
+ var CatchParameter$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(BindingIdentifier, (0, import_lib4.$E)(TypeSuffix)), function($skip, $loc, $0, $1, $2) {
14263
+ var binding = $1;
14264
+ var typeSuffix = $2;
14265
+ return {
14266
+ type: "CatchParameter",
14267
+ binding,
14268
+ typeSuffix,
14269
+ children: $0
14270
+ };
14271
+ });
14272
+ var CatchParameter$1 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(ObjectBindingPattern, ArrayBindingPattern), TypeSuffix), function($skip, $loc, $0, $1, $2) {
14273
+ var binding = $1;
14274
+ var typeSuffix = $2;
14275
+ return {
14276
+ type: "CatchParameter",
14277
+ binding,
14278
+ typeSuffix,
14279
+ children: [binding, typeSuffix]
14280
+ };
14281
+ });
14282
+ var CatchParameter$2 = (0, import_lib4.$TS)((0, import_lib4.$S)(PatternExpressionList), function($skip, $loc, $0, $1) {
14283
+ return {
14284
+ type: "CatchPattern",
14285
+ children: $0,
14286
+ patterns: $1
14287
+ };
14288
+ });
14289
+ var CatchParameter$$ = [CatchParameter$0, CatchParameter$1, CatchParameter$2];
13860
14290
  function CatchParameter(ctx, state2) {
13861
14291
  return (0, import_lib4.$EVENT_C)(ctx, state2, "CatchParameter", CatchParameter$$);
13862
14292
  }
@@ -14624,7 +15054,7 @@ ${js}`
14624
15054
  function UnprocessedModuleSpecifier(ctx, state2) {
14625
15055
  return (0, import_lib4.$EVENT_C)(ctx, state2, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
14626
15056
  }
14627
- var UnquotedSpecifier$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($R31, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
15057
+ var UnquotedSpecifier$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($R32, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
14628
15058
  var spec = $0;
14629
15059
  return { $loc, token: `"${spec}"` };
14630
15060
  });
@@ -14884,7 +15314,7 @@ ${js}`
14884
15314
  function VariableDeclarationList(ctx, state2) {
14885
15315
  return (0, import_lib4.$EVENT)(ctx, state2, "VariableDeclarationList", VariableDeclarationList$0);
14886
15316
  }
14887
- 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) {
15317
+ 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) {
14888
15318
  var token = $2;
14889
15319
  return { type: "NumericLiteral", $loc, token };
14890
15320
  });
@@ -14900,36 +15330,36 @@ ${js}`
14900
15330
  function NumericLiteralKind(ctx, state2) {
14901
15331
  return (0, import_lib4.$EVENT_C)(ctx, state2, "NumericLiteralKind", NumericLiteralKind$$);
14902
15332
  }
14903
- var DecimalBigIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R33, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
15333
+ var DecimalBigIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R34, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
14904
15334
  function DecimalBigIntegerLiteral(ctx, state2) {
14905
15335
  return (0, import_lib4.$EVENT)(ctx, state2, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
14906
15336
  }
14907
- 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) {
15337
+ 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) {
14908
15338
  return $1 + ".";
14909
15339
  });
14910
- 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)));
14911
- 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)));
15340
+ 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)));
15341
+ 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)));
14912
15342
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
14913
15343
  function DecimalLiteral(ctx, state2) {
14914
15344
  return (0, import_lib4.$EVENT_C)(ctx, state2, "DecimalLiteral", DecimalLiteral$$);
14915
15345
  }
14916
- var ExponentPart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R37, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
15346
+ var ExponentPart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R38, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
14917
15347
  function ExponentPart(ctx, state2) {
14918
15348
  return (0, import_lib4.$EVENT)(ctx, state2, "ExponentPart", ExponentPart$0);
14919
15349
  }
14920
- var BinaryIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R38, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
15350
+ var BinaryIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R39, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
14921
15351
  function BinaryIntegerLiteral(ctx, state2) {
14922
15352
  return (0, import_lib4.$EVENT)(ctx, state2, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
14923
15353
  }
14924
- var OctalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R39, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
15354
+ var OctalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R40, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
14925
15355
  function OctalIntegerLiteral(ctx, state2) {
14926
15356
  return (0, import_lib4.$EVENT)(ctx, state2, "OctalIntegerLiteral", OctalIntegerLiteral$0);
14927
15357
  }
14928
- 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?/"));
15358
+ 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?/"));
14929
15359
  function HexIntegerLiteral(ctx, state2) {
14930
15360
  return (0, import_lib4.$EVENT)(ctx, state2, "HexIntegerLiteral", HexIntegerLiteral$0);
14931
15361
  }
14932
- 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) {
15362
+ 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) {
14933
15363
  var token = $2;
14934
15364
  return { $loc, token };
14935
15365
  });
@@ -14945,7 +15375,7 @@ ${js}`
14945
15375
  function IntegerLiteralKind(ctx, state2) {
14946
15376
  return (0, import_lib4.$EVENT_C)(ctx, state2, "IntegerLiteralKind", IntegerLiteralKind$$);
14947
15377
  }
14948
- var DecimalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R42, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
15378
+ var DecimalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R43, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
14949
15379
  function DecimalIntegerLiteral(ctx, state2) {
14950
15380
  return (0, import_lib4.$EVENT)(ctx, state2, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
14951
15381
  }
@@ -14969,25 +15399,25 @@ ${js}`
14969
15399
  function StringLiteral(ctx, state2) {
14970
15400
  return (0, import_lib4.$EVENT_C)(ctx, state2, "StringLiteral", StringLiteral$$);
14971
15401
  }
14972
- 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) {
15402
+ 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) {
14973
15403
  return { $loc, token: $0 };
14974
15404
  });
14975
15405
  function DoubleStringCharacters(ctx, state2) {
14976
15406
  return (0, import_lib4.$EVENT)(ctx, state2, "DoubleStringCharacters", DoubleStringCharacters$0);
14977
15407
  }
14978
- 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) {
15408
+ 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) {
14979
15409
  return { $loc, token: $0 };
14980
15410
  });
14981
15411
  function SingleStringCharacters(ctx, state2) {
14982
15412
  return (0, import_lib4.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
14983
15413
  }
14984
- 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) {
15414
+ 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) {
14985
15415
  return { $loc, token: $0 };
14986
15416
  });
14987
15417
  function TripleDoubleStringCharacters(ctx, state2) {
14988
15418
  return (0, import_lib4.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
14989
15419
  }
14990
- 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) {
15420
+ 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) {
14991
15421
  return { $loc, token: $0 };
14992
15422
  });
14993
15423
  function TripleSingleStringCharacters(ctx, state2) {
@@ -15010,7 +15440,7 @@ ${js}`
15010
15440
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
15011
15441
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
15012
15442
  }
15013
- 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) {
15443
+ 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) {
15014
15444
  return { $loc, token: $0 };
15015
15445
  });
15016
15446
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -15030,7 +15460,7 @@ ${js}`
15030
15460
  function RegularExpressionClass(ctx, state2) {
15031
15461
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
15032
15462
  }
15033
- 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) {
15463
+ 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) {
15034
15464
  return { $loc, token: $0 };
15035
15465
  });
15036
15466
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -15087,7 +15517,7 @@ ${js}`
15087
15517
  var HeregexPart$2 = (0, import_lib4.$T)((0, import_lib4.$S)(TemplateSubstitution), function(value) {
15088
15518
  return { "type": "Substitution", "children": value[0] };
15089
15519
  });
15090
- 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) {
15520
+ 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) {
15091
15521
  let token = $0;
15092
15522
  switch ($0[1]) {
15093
15523
  case "\n":
@@ -15105,13 +15535,13 @@ ${js}`
15105
15535
  var HeregexPart$4 = (0, import_lib4.$TS)((0, import_lib4.$S)(HeregexComment), function($skip, $loc, $0, $1) {
15106
15536
  return { $loc, token: "" };
15107
15537
  });
15108
- 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) {
15538
+ 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) {
15109
15539
  return { $loc, token: "" };
15110
15540
  });
15111
- 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) {
15541
+ 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) {
15112
15542
  return { $loc, token: "\\/" };
15113
15543
  });
15114
- 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) {
15544
+ 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) {
15115
15545
  return { $loc, token: $0 };
15116
15546
  });
15117
15547
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -15124,7 +15554,7 @@ ${js}`
15124
15554
  function HeregexComment(ctx, state2) {
15125
15555
  return (0, import_lib4.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
15126
15556
  }
15127
- 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));
15557
+ 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));
15128
15558
  function RegularExpressionBody(ctx, state2) {
15129
15559
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
15130
15560
  }
@@ -15134,15 +15564,15 @@ ${js}`
15134
15564
  function RegExpPart(ctx, state2) {
15135
15565
  return (0, import_lib4.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
15136
15566
  }
15137
- var RegExpCharacter$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R54, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
15567
+ var RegExpCharacter$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R55, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
15138
15568
  function RegExpCharacter(ctx, state2) {
15139
15569
  return (0, import_lib4.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
15140
15570
  }
15141
- var RegularExpressionFlags$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R55, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
15571
+ var RegularExpressionFlags$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R56, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
15142
15572
  function RegularExpressionFlags(ctx, state2) {
15143
15573
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
15144
15574
  }
15145
- var TemplateLiteral$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R56, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
15575
+ var TemplateLiteral$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R57, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
15146
15576
  return value[1];
15147
15577
  });
15148
15578
  function TemplateLiteral(ctx, state2) {
@@ -15182,28 +15612,28 @@ ${js}`
15182
15612
  function TemplateSubstitution(ctx, state2) {
15183
15613
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
15184
15614
  }
15185
- 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) {
15615
+ 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) {
15186
15616
  return { $loc, token: $0 };
15187
15617
  });
15188
15618
  function TemplateCharacters(ctx, state2) {
15189
15619
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
15190
15620
  }
15191
- 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) {
15621
+ 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) {
15192
15622
  return { $loc, token: $0 };
15193
15623
  });
15194
15624
  function TemplateBlockCharacters(ctx, state2) {
15195
15625
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
15196
15626
  }
15197
- 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);
15198
- var ReservedWord$1 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R60, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
15199
- var ReservedWord$2 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R61, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
15200
- var ReservedWord$3 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R62, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
15201
- 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})/"));
15627
+ 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);
15628
+ var ReservedWord$1 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R61, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
15629
+ var ReservedWord$2 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R62, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
15630
+ var ReservedWord$3 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R63, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
15631
+ 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})/"));
15202
15632
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
15203
15633
  function ReservedWord(ctx, state2) {
15204
15634
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
15205
15635
  }
15206
- var Comment$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R64, "Comment /(?=\\/|#)/"), _Comment), function(value) {
15636
+ var Comment$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R65, "Comment /(?=\\/|#)/"), _Comment), function(value) {
15207
15637
  return value[1];
15208
15638
  });
15209
15639
  function Comment(ctx, state2) {
@@ -15221,7 +15651,7 @@ ${js}`
15221
15651
  function SingleLineComment(ctx, state2) {
15222
15652
  return (0, import_lib4.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
15223
15653
  }
15224
- 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) {
15654
+ 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) {
15225
15655
  return { type: "Comment", $loc, token: $0 };
15226
15656
  });
15227
15657
  function JSSingleLineComment(ctx, state2) {
@@ -15233,30 +15663,30 @@ ${js}`
15233
15663
  function MultiLineComment(ctx, state2) {
15234
15664
  return (0, import_lib4.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
15235
15665
  }
15236
- 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) {
15666
+ 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) {
15237
15667
  return { type: "Comment", $loc, token: $1 };
15238
15668
  });
15239
15669
  function JSMultiLineComment(ctx, state2) {
15240
15670
  return (0, import_lib4.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
15241
15671
  }
15242
- 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) {
15672
+ 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) {
15243
15673
  return { type: "Comment", $loc, token: `//${$1}` };
15244
15674
  });
15245
15675
  function CoffeeSingleLineComment(ctx, state2) {
15246
15676
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
15247
15677
  }
15248
- 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) {
15678
+ 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) {
15249
15679
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
15250
15680
  return { type: "Comment", $loc, token: `/*${$2}*/` };
15251
15681
  });
15252
15682
  function CoffeeMultiLineComment(ctx, state2) {
15253
15683
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
15254
15684
  }
15255
- var CoffeeHereCommentStart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R69, "CoffeeHereCommentStart /###(?!#)/"));
15685
+ var CoffeeHereCommentStart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R70, "CoffeeHereCommentStart /###(?!#)/"));
15256
15686
  function CoffeeHereCommentStart(ctx, state2) {
15257
15687
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
15258
15688
  }
15259
- 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) {
15689
+ 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) {
15260
15690
  return { $loc, token: $0 };
15261
15691
  });
15262
15692
  function InlineComment(ctx, state2) {
@@ -15270,13 +15700,13 @@ ${js}`
15270
15700
  function TrailingComment(ctx, state2) {
15271
15701
  return (0, import_lib4.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
15272
15702
  }
15273
- 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) {
15703
+ 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) {
15274
15704
  return value[1];
15275
15705
  });
15276
15706
  function _(ctx, state2) {
15277
15707
  return (0, import_lib4.$EVENT)(ctx, state2, "_", _$0);
15278
15708
  }
15279
- 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) {
15709
+ 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) {
15280
15710
  return { $loc, token: $0 };
15281
15711
  });
15282
15712
  var NonNewlineWhitespace$1 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L132, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
@@ -15293,7 +15723,7 @@ ${js}`
15293
15723
  function Trimmed_(ctx, state2) {
15294
15724
  return (0, import_lib4.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
15295
15725
  }
15296
- 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) {
15726
+ 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) {
15297
15727
  return value[1];
15298
15728
  });
15299
15729
  var __$1 = (0, import_lib4.$EXPECT)($L0, '__ ""');
@@ -15301,7 +15731,7 @@ ${js}`
15301
15731
  function __(ctx, state2) {
15302
15732
  return (0, import_lib4.$EVENT_C)(ctx, state2, "__", __$$);
15303
15733
  }
15304
- 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) {
15734
+ 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) {
15305
15735
  return { $loc, token: $0 };
15306
15736
  });
15307
15737
  function Whitespace(ctx, state2) {
@@ -15339,7 +15769,7 @@ ${js}`
15339
15769
  function SemicolonDelimiter(ctx, state2) {
15340
15770
  return (0, import_lib4.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
15341
15771
  }
15342
- var NonIdContinue$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R73, "NonIdContinue /(?!\\p{ID_Continue})/"));
15772
+ var NonIdContinue$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R74, "NonIdContinue /(?!\\p{ID_Continue})/"));
15343
15773
  function NonIdContinue(ctx, state2) {
15344
15774
  return (0, import_lib4.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
15345
15775
  }
@@ -15457,7 +15887,7 @@ ${js}`
15457
15887
  function CoffeeSubstitutionStart(ctx, state2) {
15458
15888
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
15459
15889
  }
15460
- 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) {
15890
+ 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) {
15461
15891
  return { $loc, token: $1 };
15462
15892
  });
15463
15893
  function Colon(ctx, state2) {
@@ -15508,7 +15938,7 @@ ${js}`
15508
15938
  var Dot$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
15509
15939
  return { $loc, token: $1 };
15510
15940
  });
15511
- 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) {
15941
+ 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) {
15512
15942
  var ws = $2;
15513
15943
  return [
15514
15944
  { $loc, token: "." },
@@ -15635,7 +16065,7 @@ ${js}`
15635
16065
  function If(ctx, state2) {
15636
16066
  return (0, import_lib4.$EVENT)(ctx, state2, "If", If$0);
15637
16067
  }
15638
- 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) {
16068
+ 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) {
15639
16069
  return { $loc, token: $1 };
15640
16070
  });
15641
16071
  function Import(ctx, state2) {
@@ -15993,7 +16423,7 @@ ${js}`
15993
16423
  function JSXImplicitFragment(ctx, state2) {
15994
16424
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
15995
16425
  }
15996
- var JSXTag$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R77, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
16426
+ var JSXTag$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R78, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
15997
16427
  return value[1];
15998
16428
  });
15999
16429
  function JSXTag(ctx, state2) {
@@ -16140,7 +16570,7 @@ ${js}`
16140
16570
  function JSXElementName(ctx, state2) {
16141
16571
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
16142
16572
  }
16143
- var JSXIdentifierName$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R78, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
16573
+ var JSXIdentifierName$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R79, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
16144
16574
  function JSXIdentifierName(ctx, state2) {
16145
16575
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
16146
16576
  }
@@ -16319,7 +16749,7 @@ ${js}`
16319
16749
  class: $2
16320
16750
  };
16321
16751
  });
16322
- 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) {
16752
+ 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) {
16323
16753
  var toggle = $1;
16324
16754
  var id = $2;
16325
16755
  const value = toggle === "+" ? "true" : "false";
@@ -16329,11 +16759,11 @@ ${js}`
16329
16759
  function JSXAttribute(ctx, state2) {
16330
16760
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
16331
16761
  }
16332
- var JSXAttributeSpace$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R80, "JSXAttributeSpace /[\\s>]|\\/>/"));
16762
+ var JSXAttributeSpace$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R81, "JSXAttributeSpace /[\\s>]|\\/>/"));
16333
16763
  function JSXAttributeSpace(ctx, state2) {
16334
16764
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
16335
16765
  }
16336
- 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) {
16766
+ 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) {
16337
16767
  return quoteString($0);
16338
16768
  });
16339
16769
  var JSXShorthandString$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -16380,7 +16810,7 @@ ${js}`
16380
16810
  }
16381
16811
  return [open, value, close];
16382
16812
  });
16383
- var JSXAttributeValue$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R82, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
16813
+ var JSXAttributeValue$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R83, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
16384
16814
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
16385
16815
  function JSXAttributeValue(ctx, state2) {
16386
16816
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -16393,7 +16823,7 @@ ${js}`
16393
16823
  function InlineJSXAttributeValue(ctx, state2) {
16394
16824
  return (0, import_lib4.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
16395
16825
  }
16396
- 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) {
16826
+ 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) {
16397
16827
  var op = $2;
16398
16828
  var rhs = $3;
16399
16829
  return [[], op, [], rhs];
@@ -16410,7 +16840,7 @@ ${js}`
16410
16840
  function InlineJSXUnaryExpression(ctx, state2) {
16411
16841
  return (0, import_lib4.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
16412
16842
  }
16413
- 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) {
16843
+ 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) {
16414
16844
  return { $loc, token: $0 };
16415
16845
  });
16416
16846
  function InlineJSXUnaryOp(ctx, state2) {
@@ -16661,13 +17091,13 @@ ${js}`
16661
17091
  function JSXComment(ctx, state2) {
16662
17092
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
16663
17093
  }
16664
- 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) {
17094
+ 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) {
16665
17095
  return { $loc, token: $0.replace(/\*\//g, "* /") };
16666
17096
  });
16667
17097
  function JSXCommentContent(ctx, state2) {
16668
17098
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
16669
17099
  }
16670
- 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) {
17100
+ 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) {
16671
17101
  return {
16672
17102
  type: "JSXText",
16673
17103
  token: $0,
@@ -17201,7 +17631,7 @@ ${js}`
17201
17631
  function TypeProperty(ctx, state2) {
17202
17632
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
17203
17633
  }
17204
- 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)))));
17634
+ 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)))));
17205
17635
  function TypeIndexSignature(ctx, state2) {
17206
17636
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
17207
17637
  }
@@ -17262,6 +17692,19 @@ ${js}`
17262
17692
  function MaybeNestedTypePrimary(ctx, state2) {
17263
17693
  return (0, import_lib4.$EVENT_C)(ctx, state2, "MaybeNestedTypePrimary", MaybeNestedTypePrimary$$);
17264
17694
  }
17695
+ var MaybeNestedTypeUnary$0 = NestedTypeBulletedTuple;
17696
+ var MaybeNestedTypeUnary$1 = NestedInterfaceBlock;
17697
+ var MaybeNestedTypeUnary$2 = NestedTypeBinaryChain;
17698
+ 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) {
17699
+ if (!$2)
17700
+ return $skip;
17701
+ return $2;
17702
+ });
17703
+ var MaybeNestedTypeUnary$4 = (0, import_lib4.$S)(NotDedented, TypeUnary);
17704
+ var MaybeNestedTypeUnary$$ = [MaybeNestedTypeUnary$0, MaybeNestedTypeUnary$1, MaybeNestedTypeUnary$2, MaybeNestedTypeUnary$3, MaybeNestedTypeUnary$4];
17705
+ function MaybeNestedTypeUnary(ctx, state2) {
17706
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "MaybeNestedTypeUnary", MaybeNestedTypeUnary$$);
17707
+ }
17265
17708
  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) {
17266
17709
  var optional = $2;
17267
17710
  var t = $5;
@@ -17316,7 +17759,7 @@ ${js}`
17316
17759
  function Type(ctx, state2) {
17317
17760
  return (0, import_lib4.$EVENT)(ctx, state2, "Type", Type$0);
17318
17761
  }
17319
- 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) {
17762
+ 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) {
17320
17763
  var optionalPrefix = $1;
17321
17764
  var t = $2;
17322
17765
  var ops = $3;
@@ -17683,7 +18126,7 @@ ${js}`
17683
18126
  function TypeWithPostfix(ctx, state2) {
17684
18127
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
17685
18128
  }
17686
- 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) {
18129
+ 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) {
17687
18130
  return prepend($1, expressionizeTypeIf($3));
17688
18131
  });
17689
18132
  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) {
@@ -17885,8 +18328,8 @@ ${js}`
17885
18328
  return (0, import_lib4.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
17886
18329
  }
17887
18330
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
17888
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R89, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
17889
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
18331
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
18332
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
17890
18333
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
17891
18334
  function ForbiddenImplicitTypeCalls(ctx, state2) {
17892
18335
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -17969,7 +18412,7 @@ ${js}`
17969
18412
  function TypeParameters(ctx, state2) {
17970
18413
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
17971
18414
  }
17972
- 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);
18415
+ 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);
17973
18416
  function TypeParameter(ctx, state2) {
17974
18417
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
17975
18418
  }
@@ -17996,15 +18439,15 @@ ${js}`
17996
18439
  function ThisType(ctx, state2) {
17997
18440
  return (0, import_lib4.$EVENT)(ctx, state2, "ThisType", ThisType$0);
17998
18441
  }
17999
- var Shebang$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
18442
+ var Shebang$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R93, "Shebang /#![^\\r\\n]*/")), EOL);
18000
18443
  function Shebang(ctx, state2) {
18001
18444
  return (0, import_lib4.$EVENT)(ctx, state2, "Shebang", Shebang$0);
18002
18445
  }
18003
- 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) {
18446
+ 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) {
18004
18447
  var content = value[2];
18005
18448
  return content;
18006
18449
  });
18007
- 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) {
18450
+ 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) {
18008
18451
  var content = value[2];
18009
18452
  return content;
18010
18453
  });
@@ -18012,7 +18455,7 @@ ${js}`
18012
18455
  function CivetPrologue(ctx, state2) {
18013
18456
  return (0, import_lib4.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
18014
18457
  }
18015
- 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) {
18458
+ 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) {
18016
18459
  var options = $3;
18017
18460
  return {
18018
18461
  type: "CivetPrologue",
@@ -18023,7 +18466,7 @@ ${js}`
18023
18466
  function CivetPrologueContent(ctx, state2) {
18024
18467
  return (0, import_lib4.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
18025
18468
  }
18026
- 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) {
18469
+ 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) {
18027
18470
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
18028
18471
  if (l)
18029
18472
  return l.toUpperCase();
@@ -18045,11 +18488,11 @@ ${js}`
18045
18488
  function CivetOption(ctx, state2) {
18046
18489
  return (0, import_lib4.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
18047
18490
  }
18048
- 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);
18491
+ 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);
18049
18492
  function UnknownPrologue(ctx, state2) {
18050
18493
  return (0, import_lib4.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
18051
18494
  }
18052
- 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));
18495
+ 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));
18053
18496
  function TripleSlashDirective(ctx, state2) {
18054
18497
  return (0, import_lib4.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
18055
18498
  }
@@ -18065,13 +18508,13 @@ ${js}`
18065
18508
  function PrologueString(ctx, state2) {
18066
18509
  return (0, import_lib4.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
18067
18510
  }
18068
- 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) {
18511
+ 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) {
18069
18512
  return value[1];
18070
18513
  });
18071
18514
  function EOS(ctx, state2) {
18072
18515
  return (0, import_lib4.$EVENT)(ctx, state2, "EOS", EOS$0);
18073
18516
  }
18074
- 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) {
18517
+ 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) {
18075
18518
  return { $loc, token: $0 };
18076
18519
  });
18077
18520
  function EOL(ctx, state2) {
@@ -18480,11 +18923,11 @@ ${js}`
18480
18923
  function Prologue(ctx, state2) {
18481
18924
  return (0, import_lib4.$EVENT)(ctx, state2, "Prologue", Prologue$0);
18482
18925
  }
18483
- var ProloguePrefix$0 = (0, import_lib4.$S)(Prologue, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
18926
+ var ProloguePrefix$0 = (0, import_lib4.$S)(Prologue, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R100, "ProloguePrefix /[^]*/")));
18484
18927
  function ProloguePrefix(ctx, state2) {
18485
18928
  return (0, import_lib4.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
18486
18929
  }
18487
- 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) {
18930
+ 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) {
18488
18931
  const level = getIndentLevel($0, config.tab);
18489
18932
  return {
18490
18933
  $loc,