@danielx/civet 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.mjs CHANGED
@@ -28,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  mod
29
29
  ));
30
30
 
31
- // node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js
31
+ // node_modules/@danielx/hera/dist/machine.js
32
32
  var require_machine = __commonJS({
33
- "node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js"(exports, module) {
33
+ "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
34
34
  "use strict";
35
35
  var __defProp2 = Object.defineProperty;
36
36
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -60,7 +60,7 @@ var require_machine = __commonJS({
60
60
  $N: () => $N2,
61
61
  $P: () => $P2,
62
62
  $Q: () => $Q2,
63
- $R: () => $R100,
63
+ $R: () => $R101,
64
64
  $R$0: () => $R$02,
65
65
  $S: () => $S2,
66
66
  $T: () => $T2,
@@ -97,7 +97,7 @@ var require_machine = __commonJS({
97
97
  return;
98
98
  };
99
99
  }
100
- function $R100(regExp) {
100
+ function $R101(regExp) {
101
101
  return function(_ctx, state2) {
102
102
  const { input, pos } = state2;
103
103
  regExp.lastIndex = state2.pos;
@@ -543,6 +543,7 @@ __export(lib_exports, {
543
543
  processForInOf: () => processForInOf,
544
544
  processProgram: () => processProgram,
545
545
  processProgramAsync: () => processProgramAsync,
546
+ processRangeExpression: () => processRangeExpression,
546
547
  processTryBlock: () => processTryBlock,
547
548
  processUnaryExpression: () => processUnaryExpression,
548
549
  processUnaryNestedExpression: () => processUnaryNestedExpression,
@@ -571,6 +572,13 @@ var assert = {
571
572
  if (a === b) {
572
573
  throw new Error(`Assertion failed [${msg}]: ${a} === ${b}`);
573
574
  }
575
+ },
576
+ notNull(a, msg) {
577
+ if (!(a != null)) {
578
+ throw new Error(`Assertion failed [${msg}]: got null`);
579
+ }
580
+ ;
581
+ return;
574
582
  }
575
583
  };
576
584
  function addParentPointers(node, parent) {
@@ -1870,6 +1878,9 @@ function gen(root, options) {
1870
1878
  let ref;
1871
1879
  if (ref = options.sourceMap) {
1872
1880
  const sourceMap = ref;
1881
+ if (node.$loc != null) {
1882
+ sourceMap.updateSourceMap("", node.$loc.pos);
1883
+ }
1873
1884
  line = sourceMap.data.srcLine + 1;
1874
1885
  column = sourceMap.data.srcColumn + 1;
1875
1886
  offset = sourceMap.data.srcOffset;
@@ -2494,7 +2505,7 @@ function assignResults(node, collect) {
2494
2505
  case "IterationStatement":
2495
2506
  case "DoStatement":
2496
2507
  case "ComptimeStatement": {
2497
- wrapIterationReturningResults(exp, outer, collect);
2508
+ wrapIterationReturningResults(exp, collect);
2498
2509
  return;
2499
2510
  }
2500
2511
  case "BlockStatement": {
@@ -2534,7 +2545,7 @@ function assignResults(node, collect) {
2534
2545
  }
2535
2546
  node[1] = collect(node[1]);
2536
2547
  }
2537
- function insertReturn(node, outerNode = node) {
2548
+ function insertReturn(node) {
2538
2549
  if (!node)
2539
2550
  return;
2540
2551
  switch (node.type) {
@@ -2642,7 +2653,7 @@ function insertReturn(node, outerNode = node) {
2642
2653
  case "IterationStatement":
2643
2654
  case "DoStatement":
2644
2655
  case "ComptimeStatement": {
2645
- wrapIterationReturningResults(exp, outer);
2656
+ wrapIterationReturningResults(exp);
2646
2657
  return;
2647
2658
  }
2648
2659
  case "BlockStatement": {
@@ -2738,11 +2749,11 @@ function processBreakContinueWith(statement) {
2738
2749
  }
2739
2750
  return changed;
2740
2751
  }
2741
- function wrapIterationReturningResults(statement, outer, collect) {
2752
+ function wrapIterationReturningResults(statement, collect) {
2742
2753
  if (statement.type === "DoStatement" || statement.type === "ComptimeStatement") {
2743
2754
  let results;
2744
2755
  if (statement.type === "ComptimeStatement") {
2745
- insertReturn(statement.block, outer);
2756
+ insertReturn(statement.block);
2746
2757
  const expression = expressionizeComptime(statement);
2747
2758
  replaceNode(statement, expression);
2748
2759
  const parent = expression.parent;
@@ -2758,7 +2769,7 @@ function wrapIterationReturningResults(statement, outer, collect) {
2758
2769
  if (collect) {
2759
2770
  assignResults(results, collect);
2760
2771
  } else {
2761
- insertReturn(results, outer);
2772
+ insertReturn(results);
2762
2773
  }
2763
2774
  return;
2764
2775
  }
@@ -2768,6 +2779,27 @@ function wrapIterationReturningResults(statement, outer, collect) {
2768
2779
  "wrapIterationReturningResults should not be called twice on the same statement"
2769
2780
  );
2770
2781
  const resultsRef = statement.resultsRef = makeRef("results");
2782
+ const { declaration, breakWithOnly } = iterationDeclaration(statement);
2783
+ const { ancestor, child } = findAncestor(statement, ($4) => $4.type === "BlockStatement");
2784
+ assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
2785
+ const index = findChildIndex(ancestor.expressions, child);
2786
+ const iterationTuple = ancestor.expressions[index];
2787
+ ancestor.expressions.splice(index, 0, [iterationTuple[0], declaration, ";"]);
2788
+ iterationTuple[0] = "";
2789
+ braceBlock(ancestor);
2790
+ if (!breakWithOnly) {
2791
+ assignResults(statement.block, (node) => {
2792
+ return [resultsRef, ".push(", node, ")"];
2793
+ });
2794
+ }
2795
+ if (collect) {
2796
+ statement.children.push(collect(resultsRef));
2797
+ } else {
2798
+ statement.children.push(";return ", resultsRef, ";");
2799
+ }
2800
+ }
2801
+ function iterationDeclaration(statement) {
2802
+ const { resultsRef } = statement;
2771
2803
  let decl = "const";
2772
2804
  if (statement.type === "IterationStatement" || statement.type === "ForStatement") {
2773
2805
  if (processBreakContinueWith(statement)) {
@@ -2793,17 +2825,7 @@ function wrapIterationReturningResults(statement, outer, collect) {
2793
2825
  declaration.children.push(";", resultsRef, "=[]");
2794
2826
  }
2795
2827
  }
2796
- outer.children.unshift(["", declaration, ";"]);
2797
- if (!breakWithOnly) {
2798
- assignResults(statement.block, (node) => {
2799
- return [resultsRef, ".push(", node, ")"];
2800
- });
2801
- }
2802
- if (collect) {
2803
- statement.children.push(collect(resultsRef));
2804
- } else {
2805
- statement.children.push(";return ", resultsRef, ";");
2806
- }
2828
+ return { declaration, breakWithOnly };
2807
2829
  }
2808
2830
  function processParams(f) {
2809
2831
  const { type, parameters, block } = f;
@@ -2811,12 +2833,13 @@ function processParams(f) {
2811
2833
  if (type === "ArrowFunction" && parameters && parameters.tp && parameters.tp.parameters.length === 1) {
2812
2834
  parameters.tp.parameters.push(",");
2813
2835
  }
2814
- if (!block)
2836
+ if (!block) {
2815
2837
  return;
2838
+ }
2816
2839
  const { expressions } = block;
2817
- if (!expressions)
2840
+ if (!expressions) {
2818
2841
  return;
2819
- const { blockPrefix } = parameters;
2842
+ }
2820
2843
  let indent;
2821
2844
  if (!expressions.length) {
2822
2845
  indent = "";
@@ -2826,6 +2849,44 @@ function processParams(f) {
2826
2849
  const [splices, thisAssignments] = gatherBindingCode(parameters, {
2827
2850
  injectParamProps: isConstructor
2828
2851
  });
2852
+ if (isConstructor) {
2853
+ const { ancestor } = findAncestor(f, ($5) => $5.type === "ClassExpression");
2854
+ if (ancestor != null) {
2855
+ 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));
2856
+ const classExpressions = ancestor.body.expressions;
2857
+ let index = findChildIndex(classExpressions, f);
2858
+ assert.notEqual(index, -1, "Could not find constructor in class");
2859
+ let m2;
2860
+ while (m2 = classExpressions[index - 1]?.[1], typeof m2 === "object" && m2 != null && "type" in m2 && m2.type === "MethodDefinition" && "name" in m2 && m2.name === "constructor") {
2861
+ index--;
2862
+ }
2863
+ const fStatement = classExpressions[index];
2864
+ for (let ref8 = gatherRecursive(parameters, ($9) => $9.type === "Parameter"), i1 = 0, len3 = ref8.length; i1 < len3; i1++) {
2865
+ const parameter = ref8[i1];
2866
+ if (!parameter.typeSuffix) {
2867
+ continue;
2868
+ }
2869
+ for (let ref9 = gatherRecursive(parameter, ($10) => $10.type === "AtBinding"), i2 = 0, len1 = ref9.length; i2 < len1; i2++) {
2870
+ const binding = ref9[i2];
2871
+ const typeSuffix = binding.parent?.typeSuffix;
2872
+ if (!typeSuffix) {
2873
+ continue;
2874
+ }
2875
+ const id = binding.ref.id;
2876
+ if (fields.has(id)) {
2877
+ continue;
2878
+ }
2879
+ classExpressions.splice(index++, 0, [fStatement[0], {
2880
+ type: "FieldDefinition",
2881
+ id,
2882
+ typeSuffix,
2883
+ children: [id, typeSuffix]
2884
+ }, ";"]);
2885
+ fStatement[0] = "";
2886
+ }
2887
+ }
2888
+ }
2889
+ }
2829
2890
  const delimiter = {
2830
2891
  type: "SemicolonDelimiter",
2831
2892
  children: [";"]
@@ -2837,15 +2898,16 @@ function processParams(f) {
2837
2898
  children: [indent, ...s.children, delimiter]
2838
2899
  } : [indent, s, delimiter]
2839
2900
  );
2840
- if (!prefix.length)
2901
+ if (!prefix.length) {
2841
2902
  return;
2903
+ }
2842
2904
  if (isConstructor) {
2843
2905
  const superCalls = gatherNodes(
2844
2906
  expressions,
2845
- (a) => typeof a === "object" && a != null && "type" in a && a.type === "CallExpression" && "children" in a && Array.isArray(a.children) && a.children.length >= 1 && typeof a.children[0] === "object" && a.children[0] != null && "token" in a.children[0] && a.children[0].token === "super"
2907
+ (a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "CallExpression" && "children" in a1 && Array.isArray(a1.children) && a1.children.length >= 1 && typeof a1.children[0] === "object" && a1.children[0] != null && "token" in a1.children[0] && a1.children[0].token === "super"
2846
2908
  );
2847
2909
  if (superCalls.length) {
2848
- const { child } = findAncestor(superCalls[0], (a1) => a1 === block);
2910
+ const { child } = findAncestor(superCalls[0], (a2) => a2 === block);
2849
2911
  const index = findChildIndex(expressions, child);
2850
2912
  if (index < 0) {
2851
2913
  throw new Error("Could not find super call within top-level expressions");
@@ -2864,8 +2926,8 @@ function processSignature(f) {
2864
2926
  }
2865
2927
  if (hasYield(block) && !f.generator?.length) {
2866
2928
  if (f.type === "ArrowFunction") {
2867
- gatherRecursiveWithinFunction(block, ($4) => $4.type === "YieldExpression").forEach((y) => {
2868
- const i = y.children.findIndex(($5) => $5.type === "Yield");
2929
+ gatherRecursiveWithinFunction(block, ($11) => $11.type === "YieldExpression").forEach((y) => {
2930
+ const i = y.children.findIndex(($12) => $12.type === "Yield");
2869
2931
  return y.children.splice(i + 1, 0, {
2870
2932
  type: "Error",
2871
2933
  message: "Can't use yield inside of => arrow function"
@@ -2893,12 +2955,12 @@ function processFunctions(statements, config2) {
2893
2955
  });
2894
2956
  }
2895
2957
  function expressionizeIteration(exp) {
2896
- const { async, generator, subtype, block, children, statement } = exp;
2958
+ let { async, generator, block, children, statement } = exp;
2897
2959
  const i = children.indexOf(statement);
2898
2960
  if (i < 0) {
2899
2961
  throw new Error("Could not find iteration statement in iteration expression");
2900
2962
  }
2901
- if (subtype === "DoStatement" || subtype === "ComptimeStatement") {
2963
+ if (statement.type === "DoStatement" || statement.type === "ComptimeStatement") {
2902
2964
  children.splice(i, 1, wrapIIFE([["", statement, void 0]], async, generator));
2903
2965
  updateParentPointers(exp);
2904
2966
  return;
@@ -2911,7 +2973,6 @@ function expressionizeIteration(exp) {
2911
2973
  children: ["yield ", node]
2912
2974
  };
2913
2975
  });
2914
- braceBlock(block);
2915
2976
  children.splice(
2916
2977
  i,
2917
2978
  1,
@@ -2926,17 +2987,19 @@ function expressionizeIteration(exp) {
2926
2987
  ], async, generator)
2927
2988
  );
2928
2989
  } else {
2929
- exp.resultsRef ??= makeRef("results");
2930
- const { resultsRef } = exp;
2931
- assignResults(block, (node) => {
2932
- return [resultsRef, ".push(", node, ")"];
2933
- });
2934
- braceBlock(block);
2990
+ const resultsRef = statement.resultsRef ??= makeRef("results");
2991
+ const { declaration, breakWithOnly } = iterationDeclaration(statement);
2992
+ if (!breakWithOnly) {
2993
+ assignResults(block, (node) => {
2994
+ return [resultsRef, ".push(", node, ")"];
2995
+ });
2996
+ braceBlock(block);
2997
+ }
2935
2998
  children.splice(
2936
2999
  i,
2937
3000
  1,
2938
3001
  wrapIIFE([
2939
- ["", ["const ", resultsRef, "=[]"], ";"],
3002
+ ["", declaration, ";"],
2940
3003
  ["", statement, void 0],
2941
3004
  ["", wrapWithReturn(resultsRef)]
2942
3005
  ], async)
@@ -2966,21 +3029,21 @@ function processCoffeeDo(ws, expression) {
2966
3029
  ...parameters,
2967
3030
  children: (() => {
2968
3031
  const results1 = [];
2969
- for (let ref8 = parameters.children, i1 = 0, len3 = ref8.length; i1 < len3; i1++) {
2970
- let parameter = ref8[i1];
3032
+ for (let ref10 = parameters.children, i3 = 0, len22 = ref10.length; i3 < len22; i3++) {
3033
+ let parameter = ref10[i3];
2971
3034
  if (typeof parameter === "object" && parameter != null && "type" in parameter && parameter.type === "Parameter") {
2972
- let ref9;
2973
- if (ref9 = parameter.initializer) {
2974
- const initializer = ref9;
3035
+ let ref11;
3036
+ if (ref11 = parameter.initializer) {
3037
+ const initializer = ref11;
2975
3038
  args.push(initializer.expression, parameter.delim);
2976
3039
  parameter = {
2977
3040
  ...parameter,
2978
3041
  initializer: void 0,
2979
- children: parameter.children.filter((a2) => a2 !== initializer)
3042
+ children: parameter.children.filter((a3) => a3 !== initializer)
2980
3043
  };
2981
3044
  } else {
2982
3045
  args.push(parameter.children.filter(
2983
- (a3) => a3 !== parameter.typeSuffix
3046
+ (a4) => a4 !== parameter.typeSuffix
2984
3047
  ));
2985
3048
  }
2986
3049
  }
@@ -2992,7 +3055,7 @@ function processCoffeeDo(ws, expression) {
2992
3055
  expression = {
2993
3056
  ...expression,
2994
3057
  parameters: newParameters,
2995
- children: expression.children.map(($6) => $6 === parameters ? newParameters : $6)
3058
+ children: expression.children.map(($13) => $13 === parameters ? newParameters : $13)
2996
3059
  };
2997
3060
  }
2998
3061
  return {
@@ -3014,7 +3077,7 @@ function makeAmpersandFunction(rhs) {
3014
3077
  ref = makeRef("$");
3015
3078
  inplacePrepend(ref, body);
3016
3079
  }
3017
- if (startsWithPredicate(body, ($7) => $7.type === "ObjectExpression")) {
3080
+ if (startsWithPredicate(body, ($14) => $14.type === "ObjectExpression")) {
3018
3081
  body = makeLeftHandSideExpression(body);
3019
3082
  }
3020
3083
  const parameters = makeNode({
@@ -3053,7 +3116,7 @@ function makeAmpersandFunction(rhs) {
3053
3116
  }
3054
3117
  if (gatherRecursiveWithinFunction(
3055
3118
  block,
3056
- (a4) => a4 === ref
3119
+ (a5) => a5 === ref
3057
3120
  ).length > 1) {
3058
3121
  fn.ampersandBlock = false;
3059
3122
  }
@@ -4119,8 +4182,7 @@ function prependStatementExpressionBlock(initializer, statement) {
4119
4182
  };
4120
4183
  pre.unshift(refDec);
4121
4184
  } else {
4122
- wrapIterationReturningResults(statement2, { children: blockStatement }, function() {
4123
- });
4185
+ wrapIterationReturningResults(statement2, () => void 0);
4124
4186
  ref = initializer.expression = initializer.children[2] = statement2.resultsRef;
4125
4187
  }
4126
4188
  } else {
@@ -4876,22 +4938,168 @@ function processPipelineExpressions(statements) {
4876
4938
  }
4877
4939
 
4878
4940
  // source/parser/for.civet
4941
+ function processRangeExpression(start, ws1, range, end) {
4942
+ ws1 = [ws1, range.children[0]];
4943
+ const ws2 = range.children[1];
4944
+ const comma = { $loc: range.$loc, token: "," };
4945
+ let ref;
4946
+ switch (range.increasing) {
4947
+ case true: {
4948
+ ref = ($) => $;
4949
+ break;
4950
+ }
4951
+ case false: {
4952
+ ref = ($1) => -$1;
4953
+ break;
4954
+ }
4955
+ default: {
4956
+ ref = Math.abs;
4957
+ }
4958
+ }
4959
+ ;
4960
+ const abs = ref;
4961
+ const lengthAdjust = 1 - Number(!range.left.inclusive) - Number(!range.right.inclusive);
4962
+ let ref1;
4963
+ if (lengthAdjust > 0)
4964
+ ref1 = ` + ${lengthAdjust}`;
4965
+ else if (lengthAdjust < 0)
4966
+ ref1 = ` - ${-lengthAdjust}`;
4967
+ else {
4968
+ ref1 = void 0;
4969
+ }
4970
+ ;
4971
+ const lengthAdjustExpression = ref1;
4972
+ let children;
4973
+ if (typeof start === "object" && start != null && "type" in start && start.type === "Literal" && (typeof end === "object" && end != null && "type" in end && end.type === "Literal")) {
4974
+ let startValue = literalValue(start);
4975
+ let endValue = literalValue(end);
4976
+ if (typeof startValue === "string" && typeof endValue === "string") {
4977
+ if (!(startValue.length === 1 && 1 === endValue.length)) {
4978
+ throw new Error("String range start and end must be a single character");
4979
+ }
4980
+ let startCode = startValue.charCodeAt(0);
4981
+ let endCode = endValue.charCodeAt(0);
4982
+ const step = startCode <= endCode ? 1 : -1;
4983
+ const length = abs(endCode - startCode) + lengthAdjust;
4984
+ if (!range.left.inclusive) {
4985
+ startCode += step;
4986
+ }
4987
+ if (length <= 26) {
4988
+ children = [
4989
+ "[",
4990
+ Array.from({ length }, (_2, i) => {
4991
+ return JSON.stringify(String.fromCharCode(startCode + i * step));
4992
+ }).join(", "),
4993
+ "]"
4994
+ ];
4995
+ } else {
4996
+ children = [
4997
+ `Array.from({length: ${length.toString()}}, `,
4998
+ "(_, i) => String.fromCharCode(",
4999
+ startCode.toString(),
5000
+ step > 0 ? " + " : " - ",
5001
+ "i))"
5002
+ ];
5003
+ }
5004
+ if (range.error != null) {
5005
+ children.unshift(range.error);
5006
+ }
5007
+ } else if (typeof startValue === "number" && typeof endValue === "number") {
5008
+ const step = startValue <= endValue ? 1 : -1;
5009
+ const length = abs(endValue - startValue) + lengthAdjust;
5010
+ if (!range.left.inclusive) {
5011
+ startValue += step;
5012
+ }
5013
+ if (length <= 20) {
5014
+ children = [
5015
+ "[",
5016
+ Array.from({ length }, (_2, i) => startValue + i * step).join(", "),
5017
+ "]"
5018
+ ];
5019
+ if (range.error != null) {
5020
+ children.unshift(range.error);
5021
+ }
5022
+ }
5023
+ }
5024
+ }
5025
+ if (!(children != null)) {
5026
+ if (range.increasing != null) {
5027
+ const sign = range.increasing ? "+" : "-";
5028
+ end = makeLeftHandSideExpression(end);
5029
+ children = [
5030
+ "((s) => Array.from({length: ",
5031
+ range.increasing ? [ws2, end, " - s"] : ["s - ", ws2, end],
5032
+ lengthAdjustExpression,
5033
+ "}, (_, i) => s ",
5034
+ sign,
5035
+ " i))",
5036
+ "(",
5037
+ range.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
5038
+ ...ws1,
5039
+ ")"
5040
+ ];
5041
+ } else {
5042
+ children = [
5043
+ "((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)",
5044
+ lengthAdjustExpression,
5045
+ "}, (_, i) => s + i * step)})",
5046
+ "(",
5047
+ start,
5048
+ ...ws1,
5049
+ comma,
5050
+ ws2,
5051
+ end,
5052
+ ")"
5053
+ ];
5054
+ }
5055
+ }
5056
+ return {
5057
+ type: "RangeExpression",
5058
+ children,
5059
+ start,
5060
+ end,
5061
+ error: range.error,
5062
+ left: range.left,
5063
+ right: range.right,
5064
+ increasing: range.increasing
5065
+ };
5066
+ }
4879
5067
  function forRange(open, forDeclaration, range, stepExp, close) {
4880
- const { start, end, inclusive } = range;
5068
+ const { start, end, left, right, increasing } = range;
4881
5069
  const counterRef = makeRef("i");
4882
- const infinite = end.type === "Identifier" && end.name === "Infinity";
4883
- let stepRef;
5070
+ const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5071
+ let stepRef, asc;
4884
5072
  if (stepExp) {
4885
5073
  stepExp = insertTrimmingSpace(stepExp, "");
4886
5074
  stepRef = maybeRef(stepExp, "step");
4887
5075
  } else if (infinite) {
4888
5076
  stepExp = stepRef = "1";
5077
+ } else if (increasing != null) {
5078
+ if (increasing) {
5079
+ stepExp = stepRef = "1";
5080
+ asc = true;
5081
+ } else {
5082
+ stepExp = stepRef = "-1";
5083
+ asc = false;
5084
+ }
4889
5085
  }
4890
- let startRef = maybeRef(start, "start");
5086
+ let ref2;
5087
+ if (stepRef)
5088
+ ref2 = start;
5089
+ else
5090
+ ref2 = maybeRef(start, "start");
5091
+ let startRef = ref2;
4891
5092
  let endRef = maybeRef(end, "end");
4892
5093
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
4893
5094
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
4894
- let ascDec = [], ascRef, asc;
5095
+ if (!left.inclusive) {
5096
+ startRef = [
5097
+ makeLeftHandSideExpression(start),
5098
+ " + ",
5099
+ stepRef
5100
+ ];
5101
+ }
5102
+ let ascDec = [], ascRef;
4895
5103
  if (stepRef) {
4896
5104
  if (!(stepRef === stepExp)) {
4897
5105
  ascDec = [", ", stepRef, " = ", stepExp];
@@ -4926,12 +5134,12 @@ function forRange(open, forDeclaration, range, stepExp, close) {
4926
5134
  children: ["let ", ...startRefDec, ...endRefDec, counterRef, " = ", ...varLetAssign, startRef, ...varLet, ...ascDec],
4927
5135
  names: forDeclaration?.names
4928
5136
  };
4929
- const counterPart = inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
4930
- const condition = infinite ? [] : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : ascRef ? [ascRef, " ? ", ...counterPart] : asc ? counterPart.slice(0, 3) : counterPart.slice(4);
4931
- const increment = infinite ? [...varAssign, "++", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
5137
+ const counterPart = right.inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
5138
+ const condition = infinite ? [] : asc != null ? asc ? counterPart.slice(0, 3) : counterPart.slice(4) : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : [ascRef, " ? ", ...counterPart];
5139
+ const increment = stepRef === "1" ? [...varAssign, "++", counterRef] : stepRef === "-1" ? [...varAssign, "--", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
4932
5140
  return {
4933
5141
  declaration,
4934
- children: [open, declaration, "; ", ...condition, "; ", ...increment, close],
5142
+ children: [range.error, open, declaration, "; ", ...condition, "; ", ...increment, close],
4935
5143
  blockPrefix
4936
5144
  };
4937
5145
  }
@@ -7130,6 +7338,8 @@ var grammar = {
7130
7338
  UpcomingAssignment,
7131
7339
  ArrayLiteral,
7132
7340
  _ArrayLiteral,
7341
+ RangeDots,
7342
+ RangeEnd,
7133
7343
  RangeExpression,
7134
7344
  ArrayLiteralContent,
7135
7345
  NestedElementList,
@@ -7977,86 +8187,87 @@ var $R16 = (0, import_lib4.$R)(new RegExp("(?=true|false|yes|no|on|off)", "suy")
7977
8187
  var $R17 = (0, import_lib4.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
7978
8188
  var $R18 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
7979
8189
  var $R19 = (0, import_lib4.$R)(new RegExp("(?=\\[|\\s*[.\u2022])", "suy"));
7980
- var $R20 = (0, import_lib4.$R)(new RegExp("[ \\t]*", "suy"));
7981
- var $R21 = (0, import_lib4.$R)(new RegExp("[ \\t]+", "suy"));
7982
- var $R22 = (0, import_lib4.$R)(new RegExp("[!+-]?", "suy"));
7983
- var $R23 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
7984
- var $R24 = (0, import_lib4.$R)(new RegExp("[=>]", "suy"));
7985
- 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"));
7986
- var $R26 = (0, import_lib4.$R)(new RegExp("!\\^\\^?", "suy"));
7987
- var $R27 = (0, import_lib4.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
7988
- var $R28 = (0, import_lib4.$R)(new RegExp("[:.]", "suy"));
7989
- var $R29 = (0, import_lib4.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
7990
- var $R30 = (0, import_lib4.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
7991
- var $R31 = (0, import_lib4.$R)(new RegExp('[^;"\\s]+', "suy"));
7992
- var $R32 = (0, import_lib4.$R)(new RegExp("(?=[0-9.])", "suy"));
7993
- var $R33 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
7994
- var $R34 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
7995
- var $R35 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
7996
- var $R36 = (0, import_lib4.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
7997
- var $R37 = (0, import_lib4.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
7998
- var $R38 = (0, import_lib4.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
7999
- var $R39 = (0, import_lib4.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
8000
- var $R40 = (0, import_lib4.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
8001
- var $R41 = (0, import_lib4.$R)(new RegExp("(?=[0-9])", "suy"));
8002
- var $R42 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
8003
- var $R43 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
8004
- var $R44 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
8005
- var $R45 = (0, import_lib4.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
8006
- var $R46 = (0, import_lib4.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
8007
- var $R47 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
8008
- var $R48 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
8009
- var $R49 = (0, import_lib4.$R)(new RegExp("(?:\\\\.)", "suy"));
8010
- var $R50 = (0, import_lib4.$R)(new RegExp("[\\s]+", "suy"));
8011
- var $R51 = (0, import_lib4.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
8012
- var $R52 = (0, import_lib4.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
8013
- var $R53 = (0, import_lib4.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
8014
- var $R54 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
8015
- var $R55 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8016
- var $R56 = (0, import_lib4.$R)(new RegExp("(?=[`'\"])", "suy"));
8017
- var $R57 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
8018
- var $R58 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
8019
- var $R59 = (0, import_lib4.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
8020
- var $R60 = (0, import_lib4.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
8021
- var $R61 = (0, import_lib4.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
8022
- var $R62 = (0, import_lib4.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
8023
- 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"));
8024
- var $R64 = (0, import_lib4.$R)(new RegExp("(?=\\/|#)", "suy"));
8025
- var $R65 = (0, import_lib4.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
8026
- var $R66 = (0, import_lib4.$R)(new RegExp(".", "suy"));
8027
- var $R67 = (0, import_lib4.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
8028
- var $R68 = (0, import_lib4.$R)(new RegExp("[^]*?###", "suy"));
8029
- var $R69 = (0, import_lib4.$R)(new RegExp("###(?!#)", "suy"));
8030
- var $R70 = (0, import_lib4.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
8031
- var $R71 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
8032
- var $R72 = (0, import_lib4.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
8033
- var $R73 = (0, import_lib4.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
8034
- var $R74 = (0, import_lib4.$R)(new RegExp("[=:]", "suy"));
8035
- var $R75 = (0, import_lib4.$R)(new RegExp("['\u2019]s", "suy"));
8036
- var $R76 = (0, import_lib4.$R)(new RegExp("\\s", "suy"));
8037
- var $R77 = (0, import_lib4.$R)(new RegExp("(?=[<])", "suy"));
8038
- var $R78 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8039
- var $R79 = (0, import_lib4.$R)(new RegExp("[!+-]", "suy"));
8040
- var $R80 = (0, import_lib4.$R)(new RegExp("[\\s>]|\\/>", "suy"));
8041
- var $R81 = (0, import_lib4.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
8042
- var $R82 = (0, import_lib4.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
8043
- var $R83 = (0, import_lib4.$R)(new RegExp("[<>]", "suy"));
8044
- var $R84 = (0, import_lib4.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
8045
- var $R85 = (0, import_lib4.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
8046
- var $R86 = (0, import_lib4.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
8047
- var $R87 = (0, import_lib4.$R)(new RegExp("[+-]?", "suy"));
8048
- var $R88 = (0, import_lib4.$R)(new RegExp("(?=if|unless)", "suy"));
8049
- var $R89 = (0, import_lib4.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
8050
- var $R90 = (0, import_lib4.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
8051
- var $R91 = (0, import_lib4.$R)(new RegExp("const|in|out", "suy"));
8052
- var $R92 = (0, import_lib4.$R)(new RegExp("#![^\\r\\n]*", "suy"));
8053
- var $R93 = (0, import_lib4.$R)(new RegExp("[\\t ]*", "suy"));
8054
- var $R94 = (0, import_lib4.$R)(new RegExp("[\\s]*", "suy"));
8055
- var $R95 = (0, import_lib4.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
8056
- var $R96 = (0, import_lib4.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
8057
- var $R97 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
8058
- var $R98 = (0, import_lib4.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
8059
- var $R99 = (0, import_lib4.$R)(new RegExp("[^]*", "suy"));
8190
+ var $R20 = (0, import_lib4.$R)(new RegExp("([<>])(=?)|([\u2264\u2265])", "suy"));
8191
+ var $R21 = (0, import_lib4.$R)(new RegExp("[ \\t]*", "suy"));
8192
+ var $R22 = (0, import_lib4.$R)(new RegExp("[ \\t]+", "suy"));
8193
+ var $R23 = (0, import_lib4.$R)(new RegExp("[!+-]?", "suy"));
8194
+ var $R24 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8195
+ var $R25 = (0, import_lib4.$R)(new RegExp("[=>]", "suy"));
8196
+ 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"));
8197
+ var $R27 = (0, import_lib4.$R)(new RegExp("!\\^\\^?", "suy"));
8198
+ var $R28 = (0, import_lib4.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
8199
+ var $R29 = (0, import_lib4.$R)(new RegExp("[:.]", "suy"));
8200
+ var $R30 = (0, import_lib4.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
8201
+ var $R31 = (0, import_lib4.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
8202
+ var $R32 = (0, import_lib4.$R)(new RegExp('[^;"\\s]+', "suy"));
8203
+ var $R33 = (0, import_lib4.$R)(new RegExp("(?=[0-9.])", "suy"));
8204
+ var $R34 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
8205
+ var $R35 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
8206
+ var $R36 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
8207
+ var $R37 = (0, import_lib4.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
8208
+ var $R38 = (0, import_lib4.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
8209
+ var $R39 = (0, import_lib4.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
8210
+ var $R40 = (0, import_lib4.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
8211
+ var $R41 = (0, import_lib4.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
8212
+ var $R42 = (0, import_lib4.$R)(new RegExp("(?=[0-9])", "suy"));
8213
+ var $R43 = (0, import_lib4.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
8214
+ var $R44 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
8215
+ var $R45 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
8216
+ var $R46 = (0, import_lib4.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
8217
+ var $R47 = (0, import_lib4.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
8218
+ var $R48 = (0, import_lib4.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
8219
+ var $R49 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
8220
+ var $R50 = (0, import_lib4.$R)(new RegExp("(?:\\\\.)", "suy"));
8221
+ var $R51 = (0, import_lib4.$R)(new RegExp("[\\s]+", "suy"));
8222
+ var $R52 = (0, import_lib4.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
8223
+ var $R53 = (0, import_lib4.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
8224
+ var $R54 = (0, import_lib4.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
8225
+ var $R55 = (0, import_lib4.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
8226
+ var $R56 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
8227
+ var $R57 = (0, import_lib4.$R)(new RegExp("(?=[`'\"])", "suy"));
8228
+ var $R58 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
8229
+ var $R59 = (0, import_lib4.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
8230
+ var $R60 = (0, import_lib4.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
8231
+ var $R61 = (0, import_lib4.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
8232
+ var $R62 = (0, import_lib4.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
8233
+ var $R63 = (0, import_lib4.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
8234
+ 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"));
8235
+ var $R65 = (0, import_lib4.$R)(new RegExp("(?=\\/|#)", "suy"));
8236
+ var $R66 = (0, import_lib4.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
8237
+ var $R67 = (0, import_lib4.$R)(new RegExp(".", "suy"));
8238
+ var $R68 = (0, import_lib4.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
8239
+ var $R69 = (0, import_lib4.$R)(new RegExp("[^]*?###", "suy"));
8240
+ var $R70 = (0, import_lib4.$R)(new RegExp("###(?!#)", "suy"));
8241
+ var $R71 = (0, import_lib4.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
8242
+ var $R72 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
8243
+ var $R73 = (0, import_lib4.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
8244
+ var $R74 = (0, import_lib4.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
8245
+ var $R75 = (0, import_lib4.$R)(new RegExp("[=:]", "suy"));
8246
+ var $R76 = (0, import_lib4.$R)(new RegExp("['\u2019]s", "suy"));
8247
+ var $R77 = (0, import_lib4.$R)(new RegExp("\\s", "suy"));
8248
+ var $R78 = (0, import_lib4.$R)(new RegExp("(?=[<])", "suy"));
8249
+ var $R79 = (0, import_lib4.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
8250
+ var $R80 = (0, import_lib4.$R)(new RegExp("[!+-]", "suy"));
8251
+ var $R81 = (0, import_lib4.$R)(new RegExp("[\\s>]|\\/>", "suy"));
8252
+ var $R82 = (0, import_lib4.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
8253
+ var $R83 = (0, import_lib4.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
8254
+ var $R84 = (0, import_lib4.$R)(new RegExp("[<>]", "suy"));
8255
+ var $R85 = (0, import_lib4.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
8256
+ var $R86 = (0, import_lib4.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
8257
+ var $R87 = (0, import_lib4.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
8258
+ var $R88 = (0, import_lib4.$R)(new RegExp("[+-]?", "suy"));
8259
+ var $R89 = (0, import_lib4.$R)(new RegExp("(?=if|unless)", "suy"));
8260
+ var $R90 = (0, import_lib4.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
8261
+ var $R91 = (0, import_lib4.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
8262
+ var $R92 = (0, import_lib4.$R)(new RegExp("const|in|out", "suy"));
8263
+ var $R93 = (0, import_lib4.$R)(new RegExp("#![^\\r\\n]*", "suy"));
8264
+ var $R94 = (0, import_lib4.$R)(new RegExp("[\\t ]*", "suy"));
8265
+ var $R95 = (0, import_lib4.$R)(new RegExp("[\\s]*", "suy"));
8266
+ var $R96 = (0, import_lib4.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
8267
+ var $R97 = (0, import_lib4.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
8268
+ var $R98 = (0, import_lib4.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
8269
+ var $R99 = (0, import_lib4.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
8270
+ var $R100 = (0, import_lib4.$R)(new RegExp("[^]*", "suy"));
8060
8271
  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) {
8061
8272
  var reset = $1;
8062
8273
  var init = $2;
@@ -8259,7 +8470,7 @@ var ExplicitArguments$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenParen, Al
8259
8470
  function ExplicitArguments(ctx, state2) {
8260
8471
  return (0, import_lib4.$EVENT)(ctx, state2, "ExplicitArguments", ExplicitArguments$0);
8261
8472
  }
8262
- 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));
8473
+ 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));
8263
8474
  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))));
8264
8475
  var ApplicationStart$$ = [ApplicationStart$0, ApplicationStart$1];
8265
8476
  function ApplicationStart(ctx, state2) {
@@ -8428,11 +8639,15 @@ var BinaryOpExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(UnaryExpress
8428
8639
  function BinaryOpExpression(ctx, state2) {
8429
8640
  return (0, import_lib4.$EVENT)(ctx, state2, "BinaryOpExpression", BinaryOpExpression$0);
8430
8641
  }
8431
- var BinaryOpNotDedented$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$C)(NestedBinaryOpAllowed, (0, import_lib4.$N)(Nested)), NotDedented), function(value) {
8642
+ var BinaryOpNotDedented$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$N)(NewlineBinaryOpAllowed), (0, import_lib4.$E)(_)), function(value) {
8643
+ return value[1];
8644
+ });
8645
+ 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) {
8432
8646
  return value[1];
8433
8647
  });
8648
+ var BinaryOpNotDedented$$ = [BinaryOpNotDedented$0, BinaryOpNotDedented$1];
8434
8649
  function BinaryOpNotDedented(ctx, state2) {
8435
- return (0, import_lib4.$EVENT)(ctx, state2, "BinaryOpNotDedented", BinaryOpNotDedented$0);
8650
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "BinaryOpNotDedented", BinaryOpNotDedented$$);
8436
8651
  }
8437
8652
  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) {
8438
8653
  var ws1 = $1;
@@ -8573,8 +8788,15 @@ var TypePostfix$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(_, NWTypePostfix),
8573
8788
  var postfix = $2;
8574
8789
  return prepend(ws, postfix);
8575
8790
  });
8791
+ 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) {
8792
+ var indent = $2;
8793
+ var ws = $3;
8794
+ var postfix = $4;
8795
+ return prepend(ws || " ", postfix);
8796
+ });
8797
+ var TypePostfix$$ = [TypePostfix$0, TypePostfix$1];
8576
8798
  function TypePostfix(ctx, state2) {
8577
- return (0, import_lib4.$EVENT)(ctx, state2, "TypePostfix", TypePostfix$0);
8799
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "TypePostfix", TypePostfix$$);
8578
8800
  }
8579
8801
  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) {
8580
8802
  return {
@@ -9342,12 +9564,15 @@ var FieldDefinition$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(CoffeeClassesEn
9342
9564
  default:
9343
9565
  return {
9344
9566
  type: "FieldDefinition",
9567
+ id,
9345
9568
  children: [id, " = ", exp]
9346
9569
  };
9347
9570
  }
9348
9571
  });
9349
9572
  var FieldDefinition$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(InsertReadonly, ClassElementName, (0, import_lib4.$E)(TypeSuffix), __, ConstAssignment, MaybeNestedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
9350
9573
  var r = $1;
9574
+ var id = $2;
9575
+ var typeSuffix = $3;
9351
9576
  var ca = $5;
9352
9577
  r.children[0].$loc = {
9353
9578
  pos: ca.$loc.pos - 1,
@@ -9355,15 +9580,20 @@ var FieldDefinition$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(InsertReadonly,
9355
9580
  };
9356
9581
  return {
9357
9582
  type: "FieldDefinition",
9583
+ id,
9584
+ typeSuffix,
9358
9585
  children: $0
9359
9586
  };
9360
9587
  });
9361
9588
  var FieldDefinition$2 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)(Abstract, (0, import_lib4.$E)(_))), (0, import_lib4.$E)((0, import_lib4.$S)(Readonly, (0, import_lib4.$E)(_))), ClassElementName, (0, import_lib4.$E)(TypeSuffix), (0, import_lib4.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9362
- if ($1)
9363
- return { children: $0, ts: true };
9589
+ var id = $3;
9590
+ var typeSuffix = $4;
9364
9591
  return {
9365
9592
  type: "FieldDefinition",
9366
- children: $0
9593
+ children: $0,
9594
+ ts: $1 ? true : void 0,
9595
+ id,
9596
+ typeSuffix
9367
9597
  };
9368
9598
  });
9369
9599
  var FieldDefinition$$ = [FieldDefinition$0, FieldDefinition$1, FieldDefinition$2];
@@ -9649,23 +9879,32 @@ var MemberBracketContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenBracke
9649
9879
  function MemberBracketContent(ctx, state2) {
9650
9880
  return (0, import_lib4.$EVENT)(ctx, state2, "MemberBracketContent", MemberBracketContent$0);
9651
9881
  }
9652
- 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) {
9882
+ var SliceParameters$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, RangeDots, (0, import_lib4.$E)(Expression)), function($skip, $loc, $0, $1, $2, $3, $4) {
9653
9883
  var start = $1;
9654
9884
  var ws = $2;
9655
- var sep = $3;
9885
+ var dots = $3;
9656
9886
  var end = $4;
9657
- const inclusive = sep.token === "..";
9658
9887
  let children;
9888
+ if (!dots.left.inclusive) {
9889
+ start = ["1 + ", makeLeftHandSideExpression(start)];
9890
+ }
9659
9891
  if (end) {
9660
9892
  const inc = [];
9661
- if (inclusive) {
9893
+ if (dots.right.inclusive) {
9662
9894
  end = ["1 + ", makeLeftHandSideExpression(end)];
9663
9895
  inc.push(" || 1/0");
9664
9896
  }
9665
- children = [start, [...ws, { ...sep, token: ", " }], [end, ...inc]];
9897
+ children = [start, [...ws, dots.children[0], { token: ", ", $loc: dots.$loc }], [dots.children[1], end, ...inc]];
9666
9898
  } else {
9667
9899
  children = [start, ws];
9668
9900
  }
9901
+ if (dots.increasing === false) {
9902
+ children.push({
9903
+ type: "Error",
9904
+ message: "Slice range cannot be decreasing",
9905
+ $loc: dots.$loc
9906
+ });
9907
+ }
9669
9908
  return {
9670
9909
  type: "SliceParameters",
9671
9910
  start,
@@ -10098,7 +10337,8 @@ var ParameterElement$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib
10098
10337
  typeSuffix,
10099
10338
  accessModifier,
10100
10339
  initializer,
10101
- delim
10340
+ delim,
10341
+ binding
10102
10342
  };
10103
10343
  });
10104
10344
  function ParameterElement(ctx, state2) {
@@ -11173,10 +11413,7 @@ var SingleLineStatements$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(ForbidNewl
11173
11413
  if (last)
11174
11414
  expressions.push(last);
11175
11415
  const maybeComment = expressions.at(-1)?.[2]?.children?.[2]?.at(-1);
11176
- let hasTrailingComment = false;
11177
- if (maybeComment?.type === "Comment" && maybeComment.token.startsWith("//")) {
11178
- hasTrailingComment = true;
11179
- }
11416
+ const hasTrailingComment = maybeComment?.type === "Comment" && maybeComment.token.startsWith("//");
11180
11417
  const children = [expressions];
11181
11418
  if (hasTrailingComment)
11182
11419
  children.push("\n");
@@ -11375,70 +11612,82 @@ var _ArrayLiteral$$ = [_ArrayLiteral$0, _ArrayLiteral$1, _ArrayLiteral$2];
11375
11612
  function _ArrayLiteral(ctx, state2) {
11376
11613
  return (0, import_lib4.$EVENT_C)(ctx, state2, "_ArrayLiteral", _ArrayLiteral$$);
11377
11614
  }
11378
- 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) {
11379
- var s = $1;
11380
- var ws = $2;
11381
- var range = $3;
11382
- var e = $4;
11383
- const inclusive = range.token === "..";
11384
- range.token = ",";
11385
- if (s.type === "Literal" && e.type === "Literal") {
11386
- const start = literalValue(s);
11387
- const end = literalValue(e);
11388
- if (typeof start !== typeof end) {
11389
- throw new Error("Range start and end must be of the same type");
11390
- }
11391
- if (typeof start === "string") {
11392
- if (start.length !== 1 || end.length !== 1) {
11393
- throw new Error("String range start and end must be a single character");
11394
- }
11395
- const startCode = start.charCodeAt(0);
11396
- const endCode = end.charCodeAt(0);
11397
- const step = startCode < endCode ? 1 : -1;
11398
- const length = Math.abs(endCode - startCode) + (inclusive ? 1 : 0);
11399
- if (length <= 26) {
11400
- return {
11401
- type: "RangeExpression",
11402
- children: ["[", Array.from({ length }, (_2, i) => JSON.stringify(String.fromCharCode(startCode + i * step))).join(", "), "]"],
11403
- inclusive,
11404
- start: s,
11405
- end: e
11406
- };
11407
- } else {
11408
- const inclusiveAdjust2 = inclusive ? " + 1" : "";
11409
- 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(), ")"];
11410
- return {
11411
- type: "RangeExpression",
11412
- children: children2,
11413
- inclusive,
11414
- start: s,
11415
- end: e
11416
- };
11417
- }
11418
- } else if (typeof start === "number") {
11419
- const step = end > start ? 1 : -1;
11420
- const length = Math.abs(end - start) + (inclusive ? 1 : 0);
11421
- if (length <= 20) {
11422
- return {
11423
- type: "RangeExpression",
11424
- children: ["[", Array.from({ length }, (_2, i) => start + i * step).join(", "), "]"],
11425
- inclusive,
11426
- start: s,
11427
- end: e
11428
- };
11429
- }
11615
+ var RangeDots$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(DotDotDot), function($skip, $loc, $0, $1) {
11616
+ return {
11617
+ ...$1,
11618
+ type: "RangeDots",
11619
+ left: { inclusive: true, raw: "" },
11620
+ right: { inclusive: false, raw: "." },
11621
+ increasing: void 0,
11622
+ children: []
11623
+ };
11624
+ });
11625
+ 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) {
11626
+ var left = $1;
11627
+ var ws1 = $2;
11628
+ var dots = $3;
11629
+ var ws2 = $4;
11630
+ var right = $5;
11631
+ const increasing = left.increasing ?? right.increasing;
11632
+ if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
11633
+ const error = {
11634
+ type: "Error",
11635
+ message: `${left.raw}..${right.raw} uses inconsistent < vs. >`,
11636
+ $loc: dots.$loc
11637
+ };
11638
+ return {
11639
+ ...dots,
11640
+ left,
11641
+ right,
11642
+ increasing,
11643
+ error,
11644
+ type: "RangeDots",
11645
+ children: [error]
11646
+ };
11647
+ }
11648
+ return {
11649
+ ...dots,
11650
+ left,
11651
+ right,
11652
+ increasing,
11653
+ type: "RangeDots",
11654
+ children: [ws1, ws2]
11655
+ };
11656
+ });
11657
+ var RangeDots$$ = [RangeDots$0, RangeDots$1];
11658
+ function RangeDots(ctx, state2) {
11659
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "RangeDots", RangeDots$$);
11660
+ }
11661
+ 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) {
11662
+ let dir = $1, equal = $2, unicode = $3;
11663
+ if (unicode) {
11664
+ equal = "=";
11665
+ if (unicode === "\u2264") {
11666
+ dir = "<";
11667
+ } else if (unicode === "\u2265") {
11668
+ dir = ">";
11430
11669
  }
11431
11670
  }
11432
- const inclusiveAdjust = inclusive ? " + 1" : "";
11433
- 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, ")"];
11434
11671
  return {
11435
- type: "RangeExpression",
11436
- children,
11437
- inclusive,
11438
- start: s,
11439
- end: e
11672
+ increasing: dir === "<",
11673
+ inclusive: equal === "=",
11674
+ raw: $0
11440
11675
  };
11441
11676
  });
11677
+ var RangeEnd$1 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L0, 'RangeEnd ""'), function(value) {
11678
+ return { "increasing": void 0, "inclusive": true, "raw": "" };
11679
+ });
11680
+ var RangeEnd$$ = [RangeEnd$0, RangeEnd$1];
11681
+ function RangeEnd(ctx, state2) {
11682
+ return (0, import_lib4.$EVENT_C)(ctx, state2, "RangeEnd", RangeEnd$$);
11683
+ }
11684
+ var RangeExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __, RangeDots, Expression), function($skip, $loc, $0, $1, $2, $3, $4) {
11685
+ var start = $1;
11686
+ var ws = $2;
11687
+ var range = $3;
11688
+ var end = $4;
11689
+ return processRangeExpression(start, ws, range, end);
11690
+ });
11442
11691
  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) {
11443
11692
  var s = $1;
11444
11693
  var ws = $2;
@@ -11453,7 +11702,10 @@ var RangeExpression$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(Expression, __,
11453
11702
  type: "Identifier",
11454
11703
  name: "Infinity",
11455
11704
  children: ["Infinity"]
11456
- }
11705
+ },
11706
+ left: { inclusive: true, raw: "" },
11707
+ right: { inclusive: true, raw: "" },
11708
+ increasing: true
11457
11709
  };
11458
11710
  });
11459
11711
  var RangeExpression$$ = [RangeExpression$0, RangeExpression$1];
@@ -11667,7 +11919,7 @@ var ArrayBulletDelimiter$$ = [ArrayBulletDelimiter$0, ArrayBulletDelimiter$1];
11667
11919
  function ArrayBulletDelimiter(ctx, state2) {
11668
11920
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ArrayBulletDelimiter", ArrayBulletDelimiter$$);
11669
11921
  }
11670
- 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) {
11922
+ 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) {
11671
11923
  const [bullet, ws] = $1;
11672
11924
  const indent = {
11673
11925
  token: " " + ws,
@@ -11883,7 +12135,7 @@ var PropertyDefinition$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_l
11883
12135
  var prop = $2;
11884
12136
  return prepend(ws, prop);
11885
12137
  });
11886
- 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) {
12138
+ 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) {
11887
12139
  var ws = $1;
11888
12140
  var toggle = $2;
11889
12141
  var id = $3;
@@ -12034,7 +12286,7 @@ function SnugNamedProperty(ctx, state2) {
12034
12286
  var PropertyName$0 = NumericLiteral;
12035
12287
  var PropertyName$1 = ComputedPropertyName;
12036
12288
  var PropertyName$2 = StringLiteral;
12037
- 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) {
12289
+ 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) {
12038
12290
  return {
12039
12291
  token: `"${$1}"`,
12040
12292
  $loc
@@ -12433,7 +12685,7 @@ var AssignmentOpSymbol$22 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L71, '
12433
12685
  var AssignmentOpSymbol$23 = (0, import_lib4.$T)((0, import_lib4.$EXPECT)($L72, 'AssignmentOpSymbol "?="'), function(value) {
12434
12686
  return "??=";
12435
12687
  });
12436
- 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) {
12688
+ 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) {
12437
12689
  return value[0];
12438
12690
  });
12439
12691
  var AssignmentOpSymbol$25 = (0, import_lib4.$T)((0, import_lib4.$S)(CoffeeWordAssignmentOp), function(value) {
@@ -12486,7 +12738,7 @@ var IdentifierBinaryOp$0 = (0, import_lib4.$TV)(Identifier, function($skip, $loc
12486
12738
  function IdentifierBinaryOp(ctx, state2) {
12487
12739
  return (0, import_lib4.$EVENT)(ctx, state2, "IdentifierBinaryOp", IdentifierBinaryOp$0);
12488
12740
  }
12489
- 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) {
12741
+ 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) {
12490
12742
  var op = value[1];
12491
12743
  return op;
12492
12744
  });
@@ -12631,7 +12883,7 @@ var BinaryOpSymbol$35 = (0, import_lib4.$TV)((0, import_lib4.$C)((0, import_lib4
12631
12883
  prec: "^^"
12632
12884
  };
12633
12885
  });
12634
- 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) {
12886
+ 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) {
12635
12887
  return {
12636
12888
  call: getHelperRef("xnor"),
12637
12889
  special: true,
@@ -12795,24 +13047,24 @@ var Xor$$ = [Xor$0, Xor$1];
12795
13047
  function Xor(ctx, state2) {
12796
13048
  return (0, import_lib4.$EVENT_C)(ctx, state2, "Xor", Xor$$);
12797
13049
  }
12798
- var Xnor$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R26, "Xnor /!\\^\\^?/"));
13050
+ var Xnor$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R27, "Xnor /!\\^\\^?/"));
12799
13051
  var Xnor$1 = (0, import_lib4.$EXPECT)($L109, 'Xnor "xnor"');
12800
13052
  var Xnor$$ = [Xnor$0, Xnor$1];
12801
13053
  function Xnor(ctx, state2) {
12802
13054
  return (0, import_lib4.$EVENT_C)(ctx, state2, "Xnor", Xnor$$);
12803
13055
  }
12804
- 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) {
13056
+ 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) {
12805
13057
  return { $loc, token: $0 };
12806
13058
  });
12807
13059
  var UnaryOp$1 = AwaitOp;
12808
- 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) {
13060
+ 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) {
12809
13061
  var op = $1;
12810
13062
  var ws = $3;
12811
13063
  if (!ws)
12812
13064
  return [op, [" "]];
12813
13065
  return [op, ws];
12814
13066
  });
12815
- 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) {
13067
+ 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) {
12816
13068
  return [value[0], value[3]];
12817
13069
  });
12818
13070
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -12899,7 +13151,7 @@ var PostfixedCommaExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Postfi
12899
13151
  function PostfixedCommaExpression(ctx, state2) {
12900
13152
  return (0, import_lib4.$EVENT)(ctx, state2, "PostfixedCommaExpression", PostfixedCommaExpression$0);
12901
13153
  }
12902
- 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) {
13154
+ 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) {
12903
13155
  return value[1];
12904
13156
  });
12905
13157
  function PostfixStatement(ctx, state2) {
@@ -12939,7 +13191,9 @@ function Statement(ctx, state2) {
12939
13191
  }
12940
13192
  var ShouldExpressionize$0 = AllowedTrailingCallExpressions;
12941
13193
  var ShouldExpressionize$1 = (0, import_lib4.$S)(NotDedented, Pipe);
12942
- var ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1];
13194
+ var ShouldExpressionize$2 = BinaryOpRHS;
13195
+ var ShouldExpressionize$3 = UnaryPostfix;
13196
+ var ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1, ShouldExpressionize$2, ShouldExpressionize$3];
12943
13197
  function ShouldExpressionize(ctx, state2) {
12944
13198
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ShouldExpressionize", ShouldExpressionize$$);
12945
13199
  }
@@ -13090,7 +13344,7 @@ var IfClause$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$C)(If
13090
13344
  function IfClause(ctx, state2) {
13091
13345
  return (0, import_lib4.$EVENT)(ctx, state2, "IfClause", IfClause$0);
13092
13346
  }
13093
- 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) {
13347
+ 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) {
13094
13348
  return value[1];
13095
13349
  });
13096
13350
  function IterationStatement(ctx, state2) {
@@ -14530,7 +14784,7 @@ var UnprocessedModuleSpecifier$$ = [UnprocessedModuleSpecifier$0, UnprocessedMod
14530
14784
  function UnprocessedModuleSpecifier(ctx, state2) {
14531
14785
  return (0, import_lib4.$EVENT_C)(ctx, state2, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
14532
14786
  }
14533
- var UnquotedSpecifier$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($R31, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
14787
+ var UnquotedSpecifier$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($R32, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
14534
14788
  var spec = $0;
14535
14789
  return { $loc, token: `"${spec}"` };
14536
14790
  });
@@ -14790,7 +15044,7 @@ var VariableDeclarationList$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Lexical
14790
15044
  function VariableDeclarationList(ctx, state2) {
14791
15045
  return (0, import_lib4.$EVENT)(ctx, state2, "VariableDeclarationList", VariableDeclarationList$0);
14792
15046
  }
14793
- 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) {
15047
+ 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) {
14794
15048
  var token = $2;
14795
15049
  return { type: "NumericLiteral", $loc, token };
14796
15050
  });
@@ -14806,36 +15060,36 @@ var NumericLiteralKind$$ = [NumericLiteralKind$0, NumericLiteralKind$1, NumericL
14806
15060
  function NumericLiteralKind(ctx, state2) {
14807
15061
  return (0, import_lib4.$EVENT_C)(ctx, state2, "NumericLiteralKind", NumericLiteralKind$$);
14808
15062
  }
14809
- var DecimalBigIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R33, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
15063
+ var DecimalBigIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R34, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
14810
15064
  function DecimalBigIntegerLiteral(ctx, state2) {
14811
15065
  return (0, import_lib4.$EVENT)(ctx, state2, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
14812
15066
  }
14813
- 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) {
15067
+ 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) {
14814
15068
  return $1 + ".";
14815
15069
  });
14816
- 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)));
14817
- 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)));
15070
+ 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)));
15071
+ 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)));
14818
15072
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
14819
15073
  function DecimalLiteral(ctx, state2) {
14820
15074
  return (0, import_lib4.$EVENT_C)(ctx, state2, "DecimalLiteral", DecimalLiteral$$);
14821
15075
  }
14822
- var ExponentPart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R37, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
15076
+ var ExponentPart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R38, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
14823
15077
  function ExponentPart(ctx, state2) {
14824
15078
  return (0, import_lib4.$EVENT)(ctx, state2, "ExponentPart", ExponentPart$0);
14825
15079
  }
14826
- var BinaryIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R38, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
15080
+ var BinaryIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R39, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
14827
15081
  function BinaryIntegerLiteral(ctx, state2) {
14828
15082
  return (0, import_lib4.$EVENT)(ctx, state2, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
14829
15083
  }
14830
- var OctalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R39, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
15084
+ var OctalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R40, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
14831
15085
  function OctalIntegerLiteral(ctx, state2) {
14832
15086
  return (0, import_lib4.$EVENT)(ctx, state2, "OctalIntegerLiteral", OctalIntegerLiteral$0);
14833
15087
  }
14834
- 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?/"));
15088
+ 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?/"));
14835
15089
  function HexIntegerLiteral(ctx, state2) {
14836
15090
  return (0, import_lib4.$EVENT)(ctx, state2, "HexIntegerLiteral", HexIntegerLiteral$0);
14837
15091
  }
14838
- 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) {
15092
+ 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) {
14839
15093
  var token = $2;
14840
15094
  return { $loc, token };
14841
15095
  });
@@ -14851,7 +15105,7 @@ var IntegerLiteralKind$$ = [IntegerLiteralKind$0, IntegerLiteralKind$1, IntegerL
14851
15105
  function IntegerLiteralKind(ctx, state2) {
14852
15106
  return (0, import_lib4.$EVENT_C)(ctx, state2, "IntegerLiteralKind", IntegerLiteralKind$$);
14853
15107
  }
14854
- var DecimalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R42, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
15108
+ var DecimalIntegerLiteral$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R43, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
14855
15109
  function DecimalIntegerLiteral(ctx, state2) {
14856
15110
  return (0, import_lib4.$EVENT)(ctx, state2, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
14857
15111
  }
@@ -14875,25 +15129,25 @@ var StringLiteral$$ = [StringLiteral$0, StringLiteral$1];
14875
15129
  function StringLiteral(ctx, state2) {
14876
15130
  return (0, import_lib4.$EVENT_C)(ctx, state2, "StringLiteral", StringLiteral$$);
14877
15131
  }
14878
- 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) {
15132
+ 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) {
14879
15133
  return { $loc, token: $0 };
14880
15134
  });
14881
15135
  function DoubleStringCharacters(ctx, state2) {
14882
15136
  return (0, import_lib4.$EVENT)(ctx, state2, "DoubleStringCharacters", DoubleStringCharacters$0);
14883
15137
  }
14884
- 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) {
15138
+ 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) {
14885
15139
  return { $loc, token: $0 };
14886
15140
  });
14887
15141
  function SingleStringCharacters(ctx, state2) {
14888
15142
  return (0, import_lib4.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
14889
15143
  }
14890
- 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) {
15144
+ 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) {
14891
15145
  return { $loc, token: $0 };
14892
15146
  });
14893
15147
  function TripleDoubleStringCharacters(ctx, state2) {
14894
15148
  return (0, import_lib4.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
14895
15149
  }
14896
- 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) {
15150
+ 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) {
14897
15151
  return { $loc, token: $0 };
14898
15152
  });
14899
15153
  function TripleSingleStringCharacters(ctx, state2) {
@@ -14916,7 +15170,7 @@ var CoffeeInterpolatedDoubleQuotedString$0 = (0, import_lib4.$TS)((0, import_lib
14916
15170
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
14917
15171
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
14918
15172
  }
14919
- 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) {
15173
+ 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) {
14920
15174
  return { $loc, token: $0 };
14921
15175
  });
14922
15176
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -14936,7 +15190,7 @@ var RegularExpressionClass$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, i
14936
15190
  function RegularExpressionClass(ctx, state2) {
14937
15191
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
14938
15192
  }
14939
- 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) {
15193
+ 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) {
14940
15194
  return { $loc, token: $0 };
14941
15195
  });
14942
15196
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -14993,7 +15247,7 @@ var HeregexPart$1 = (0, import_lib4.$T)((0, import_lib4.$S)(CoffeeStringSubstitu
14993
15247
  var HeregexPart$2 = (0, import_lib4.$T)((0, import_lib4.$S)(TemplateSubstitution), function(value) {
14994
15248
  return { "type": "Substitution", "children": value[0] };
14995
15249
  });
14996
- 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) {
15250
+ 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) {
14997
15251
  let token = $0;
14998
15252
  switch ($0[1]) {
14999
15253
  case "\n":
@@ -15011,13 +15265,13 @@ var HeregexPart$3 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R49, "Heregex
15011
15265
  var HeregexPart$4 = (0, import_lib4.$TS)((0, import_lib4.$S)(HeregexComment), function($skip, $loc, $0, $1) {
15012
15266
  return { $loc, token: "" };
15013
15267
  });
15014
- 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) {
15268
+ 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) {
15015
15269
  return { $loc, token: "" };
15016
15270
  });
15017
- 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) {
15271
+ 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) {
15018
15272
  return { $loc, token: "\\/" };
15019
15273
  });
15020
- 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) {
15274
+ 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) {
15021
15275
  return { $loc, token: $0 };
15022
15276
  });
15023
15277
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -15030,7 +15284,7 @@ var HeregexComment$$ = [HeregexComment$0, HeregexComment$1];
15030
15284
  function HeregexComment(ctx, state2) {
15031
15285
  return (0, import_lib4.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
15032
15286
  }
15033
- 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));
15287
+ 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));
15034
15288
  function RegularExpressionBody(ctx, state2) {
15035
15289
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
15036
15290
  }
@@ -15040,15 +15294,15 @@ var RegExpPart$$ = [RegExpPart$0, RegExpPart$1];
15040
15294
  function RegExpPart(ctx, state2) {
15041
15295
  return (0, import_lib4.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
15042
15296
  }
15043
- var RegExpCharacter$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R54, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
15297
+ var RegExpCharacter$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R55, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
15044
15298
  function RegExpCharacter(ctx, state2) {
15045
15299
  return (0, import_lib4.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
15046
15300
  }
15047
- var RegularExpressionFlags$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R55, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
15301
+ var RegularExpressionFlags$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R56, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
15048
15302
  function RegularExpressionFlags(ctx, state2) {
15049
15303
  return (0, import_lib4.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
15050
15304
  }
15051
- var TemplateLiteral$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R56, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
15305
+ var TemplateLiteral$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R57, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
15052
15306
  return value[1];
15053
15307
  });
15054
15308
  function TemplateLiteral(ctx, state2) {
@@ -15088,28 +15342,28 @@ var TemplateSubstitution$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(Substituti
15088
15342
  function TemplateSubstitution(ctx, state2) {
15089
15343
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
15090
15344
  }
15091
- 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) {
15345
+ 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) {
15092
15346
  return { $loc, token: $0 };
15093
15347
  });
15094
15348
  function TemplateCharacters(ctx, state2) {
15095
15349
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
15096
15350
  }
15097
- 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) {
15351
+ 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) {
15098
15352
  return { $loc, token: $0 };
15099
15353
  });
15100
15354
  function TemplateBlockCharacters(ctx, state2) {
15101
15355
  return (0, import_lib4.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
15102
15356
  }
15103
- 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);
15104
- var ReservedWord$1 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R60, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
15105
- var ReservedWord$2 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R61, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
15106
- var ReservedWord$3 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R62, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
15107
- 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})/"));
15357
+ 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);
15358
+ var ReservedWord$1 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R61, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
15359
+ var ReservedWord$2 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R62, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
15360
+ var ReservedWord$3 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R63, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
15361
+ 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})/"));
15108
15362
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
15109
15363
  function ReservedWord(ctx, state2) {
15110
15364
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
15111
15365
  }
15112
- var Comment$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R64, "Comment /(?=\\/|#)/"), _Comment), function(value) {
15366
+ var Comment$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R65, "Comment /(?=\\/|#)/"), _Comment), function(value) {
15113
15367
  return value[1];
15114
15368
  });
15115
15369
  function Comment(ctx, state2) {
@@ -15127,7 +15381,7 @@ var SingleLineComment$$ = [SingleLineComment$0, SingleLineComment$1];
15127
15381
  function SingleLineComment(ctx, state2) {
15128
15382
  return (0, import_lib4.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
15129
15383
  }
15130
- 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) {
15384
+ 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) {
15131
15385
  return { type: "Comment", $loc, token: $0 };
15132
15386
  });
15133
15387
  function JSSingleLineComment(ctx, state2) {
@@ -15139,30 +15393,30 @@ var MultiLineComment$$ = [MultiLineComment$0, MultiLineComment$1];
15139
15393
  function MultiLineComment(ctx, state2) {
15140
15394
  return (0, import_lib4.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
15141
15395
  }
15142
- 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) {
15396
+ 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) {
15143
15397
  return { type: "Comment", $loc, token: $1 };
15144
15398
  });
15145
15399
  function JSMultiLineComment(ctx, state2) {
15146
15400
  return (0, import_lib4.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
15147
15401
  }
15148
- 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) {
15402
+ 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) {
15149
15403
  return { type: "Comment", $loc, token: `//${$1}` };
15150
15404
  });
15151
15405
  function CoffeeSingleLineComment(ctx, state2) {
15152
15406
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
15153
15407
  }
15154
- 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) {
15408
+ 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) {
15155
15409
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
15156
15410
  return { type: "Comment", $loc, token: `/*${$2}*/` };
15157
15411
  });
15158
15412
  function CoffeeMultiLineComment(ctx, state2) {
15159
15413
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
15160
15414
  }
15161
- var CoffeeHereCommentStart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R69, "CoffeeHereCommentStart /###(?!#)/"));
15415
+ var CoffeeHereCommentStart$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R70, "CoffeeHereCommentStart /###(?!#)/"));
15162
15416
  function CoffeeHereCommentStart(ctx, state2) {
15163
15417
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
15164
15418
  }
15165
- 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) {
15419
+ 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) {
15166
15420
  return { $loc, token: $0 };
15167
15421
  });
15168
15422
  function InlineComment(ctx, state2) {
@@ -15176,13 +15430,13 @@ var TrailingComment$0 = (0, import_lib4.$S)((0, import_lib4.$E)(_), (0, import_l
15176
15430
  function TrailingComment(ctx, state2) {
15177
15431
  return (0, import_lib4.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
15178
15432
  }
15179
- 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) {
15433
+ 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) {
15180
15434
  return value[1];
15181
15435
  });
15182
15436
  function _(ctx, state2) {
15183
15437
  return (0, import_lib4.$EVENT)(ctx, state2, "_", _$0);
15184
15438
  }
15185
- 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) {
15439
+ 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) {
15186
15440
  return { $loc, token: $0 };
15187
15441
  });
15188
15442
  var NonNewlineWhitespace$1 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($L132, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
@@ -15199,7 +15453,7 @@ var Trimmed_$0 = (0, import_lib4.$TV)(_, function($skip, $loc, $0, $1) {
15199
15453
  function Trimmed_(ctx, state2) {
15200
15454
  return (0, import_lib4.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
15201
15455
  }
15202
- 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) {
15456
+ 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) {
15203
15457
  return value[1];
15204
15458
  });
15205
15459
  var __$1 = (0, import_lib4.$EXPECT)($L0, '__ ""');
@@ -15207,7 +15461,7 @@ var __$$ = [__$0, __$1];
15207
15461
  function __(ctx, state2) {
15208
15462
  return (0, import_lib4.$EVENT_C)(ctx, state2, "__", __$$);
15209
15463
  }
15210
- 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) {
15464
+ 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) {
15211
15465
  return { $loc, token: $0 };
15212
15466
  });
15213
15467
  function Whitespace(ctx, state2) {
@@ -15245,7 +15499,7 @@ var SemicolonDelimiter$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_l
15245
15499
  function SemicolonDelimiter(ctx, state2) {
15246
15500
  return (0, import_lib4.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
15247
15501
  }
15248
- var NonIdContinue$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R73, "NonIdContinue /(?!\\p{ID_Continue})/"));
15502
+ var NonIdContinue$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R74, "NonIdContinue /(?!\\p{ID_Continue})/"));
15249
15503
  function NonIdContinue(ctx, state2) {
15250
15504
  return (0, import_lib4.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
15251
15505
  }
@@ -15363,7 +15617,7 @@ var CoffeeSubstitutionStart$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($L
15363
15617
  function CoffeeSubstitutionStart(ctx, state2) {
15364
15618
  return (0, import_lib4.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
15365
15619
  }
15366
- 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) {
15620
+ 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) {
15367
15621
  return { $loc, token: $1 };
15368
15622
  });
15369
15623
  function Colon(ctx, state2) {
@@ -15414,7 +15668,7 @@ function Do(ctx, state2) {
15414
15668
  var Dot$0 = (0, import_lib4.$TV)((0, import_lib4.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
15415
15669
  return { $loc, token: $1 };
15416
15670
  });
15417
- 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) {
15671
+ 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) {
15418
15672
  var ws = $2;
15419
15673
  return [
15420
15674
  { $loc, token: "." },
@@ -15541,7 +15795,7 @@ var If$0 = (0, import_lib4.$TV)((0, import_lib4.$TEXT)((0, import_lib4.$S)((0, i
15541
15795
  function If(ctx, state2) {
15542
15796
  return (0, import_lib4.$EVENT)(ctx, state2, "If", If$0);
15543
15797
  }
15544
- 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) {
15798
+ 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) {
15545
15799
  return { $loc, token: $1 };
15546
15800
  });
15547
15801
  function Import(ctx, state2) {
@@ -15899,7 +16153,7 @@ var JSXImplicitFragment$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(JSXTag, (0,
15899
16153
  function JSXImplicitFragment(ctx, state2) {
15900
16154
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
15901
16155
  }
15902
- var JSXTag$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R77, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
16156
+ var JSXTag$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$EXPECT)($R78, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
15903
16157
  return value[1];
15904
16158
  });
15905
16159
  function JSXTag(ctx, state2) {
@@ -16046,7 +16300,7 @@ var JSXElementName$$ = [JSXElementName$0, JSXElementName$1];
16046
16300
  function JSXElementName(ctx, state2) {
16047
16301
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
16048
16302
  }
16049
- var JSXIdentifierName$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R78, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
16303
+ var JSXIdentifierName$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R79, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
16050
16304
  function JSXIdentifierName(ctx, state2) {
16051
16305
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
16052
16306
  }
@@ -16225,7 +16479,7 @@ var JSXAttribute$6 = (0, import_lib4.$TS)((0, import_lib4.$S)(Dot, JSXShorthandS
16225
16479
  class: $2
16226
16480
  };
16227
16481
  });
16228
- 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) {
16482
+ 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) {
16229
16483
  var toggle = $1;
16230
16484
  var id = $2;
16231
16485
  const value = toggle === "+" ? "true" : "false";
@@ -16235,11 +16489,11 @@ var JSXAttribute$$ = [JSXAttribute$0, JSXAttribute$1, JSXAttribute$2, JSXAttribu
16235
16489
  function JSXAttribute(ctx, state2) {
16236
16490
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
16237
16491
  }
16238
- var JSXAttributeSpace$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R80, "JSXAttributeSpace /[\\s>]|\\/>/"));
16492
+ var JSXAttributeSpace$0 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R81, "JSXAttributeSpace /[\\s>]|\\/>/"));
16239
16493
  function JSXAttributeSpace(ctx, state2) {
16240
16494
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
16241
16495
  }
16242
- 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) {
16496
+ 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) {
16243
16497
  return quoteString($0);
16244
16498
  });
16245
16499
  var JSXShorthandString$1 = (0, import_lib4.$TS)((0, import_lib4.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -16286,7 +16540,7 @@ var JSXAttributeValue$3 = (0, import_lib4.$TS)((0, import_lib4.$S)(InsertInlineO
16286
16540
  }
16287
16541
  return [open, value, close];
16288
16542
  });
16289
- var JSXAttributeValue$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R82, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
16543
+ var JSXAttributeValue$4 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R83, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
16290
16544
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
16291
16545
  function JSXAttributeValue(ctx, state2) {
16292
16546
  return (0, import_lib4.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -16299,7 +16553,7 @@ var InlineJSXAttributeValue$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(InlineJ
16299
16553
  function InlineJSXAttributeValue(ctx, state2) {
16300
16554
  return (0, import_lib4.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
16301
16555
  }
16302
- 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) {
16556
+ 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) {
16303
16557
  var op = $2;
16304
16558
  var rhs = $3;
16305
16559
  return [[], op, [], rhs];
@@ -16316,7 +16570,7 @@ var InlineJSXUnaryExpression$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, im
16316
16570
  function InlineJSXUnaryExpression(ctx, state2) {
16317
16571
  return (0, import_lib4.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
16318
16572
  }
16319
- 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) {
16573
+ 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) {
16320
16574
  return { $loc, token: $0 };
16321
16575
  });
16322
16576
  function InlineJSXUnaryOp(ctx, state2) {
@@ -16567,13 +16821,13 @@ var JSXComment$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import_lib4.$EXP
16567
16821
  function JSXComment(ctx, state2) {
16568
16822
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
16569
16823
  }
16570
- 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) {
16824
+ 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) {
16571
16825
  return { $loc, token: $0.replace(/\*\//g, "* /") };
16572
16826
  });
16573
16827
  function JSXCommentContent(ctx, state2) {
16574
16828
  return (0, import_lib4.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
16575
16829
  }
16576
- 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) {
16830
+ 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) {
16577
16831
  return {
16578
16832
  type: "JSXText",
16579
16833
  token: $0,
@@ -17107,7 +17361,7 @@ var TypeProperty$0 = (0, import_lib4.$S)((0, import_lib4.$E)((0, import_lib4.$S)
17107
17361
  function TypeProperty(ctx, state2) {
17108
17362
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
17109
17363
  }
17110
- 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)))));
17364
+ 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)))));
17111
17365
  function TypeIndexSignature(ctx, state2) {
17112
17366
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
17113
17367
  }
@@ -17589,7 +17843,7 @@ var TypeWithPostfix$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(TypeConditional
17589
17843
  function TypeWithPostfix(ctx, state2) {
17590
17844
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
17591
17845
  }
17592
- 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) {
17846
+ 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) {
17593
17847
  return prepend($1, expressionizeTypeIf($3));
17594
17848
  });
17595
17849
  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) {
@@ -17791,8 +18045,8 @@ function TypeApplicationStart(ctx, state2) {
17791
18045
  return (0, import_lib4.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
17792
18046
  }
17793
18047
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
17794
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R89, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
17795
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
18048
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R90, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
18049
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
17796
18050
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
17797
18051
  function ForbiddenImplicitTypeCalls(ctx, state2) {
17798
18052
  return (0, import_lib4.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -17875,7 +18129,7 @@ var TypeParameters$0 = (0, import_lib4.$TS)((0, import_lib4.$S)(OpenAngleBracket
17875
18129
  function TypeParameters(ctx, state2) {
17876
18130
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
17877
18131
  }
17878
- 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);
18132
+ 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);
17879
18133
  function TypeParameter(ctx, state2) {
17880
18134
  return (0, import_lib4.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
17881
18135
  }
@@ -17902,15 +18156,15 @@ var ThisType$0 = (0, import_lib4.$T)((0, import_lib4.$S)((0, import_lib4.$E)(_),
17902
18156
  function ThisType(ctx, state2) {
17903
18157
  return (0, import_lib4.$EVENT)(ctx, state2, "ThisType", ThisType$0);
17904
18158
  }
17905
- var Shebang$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R92, "Shebang /#![^\\r\\n]*/")), EOL);
18159
+ var Shebang$0 = (0, import_lib4.$S)((0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R93, "Shebang /#![^\\r\\n]*/")), EOL);
17906
18160
  function Shebang(ctx, state2) {
17907
18161
  return (0, import_lib4.$EVENT)(ctx, state2, "Shebang", Shebang$0);
17908
18162
  }
17909
- 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) {
18163
+ 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) {
17910
18164
  var content = value[2];
17911
18165
  return content;
17912
18166
  });
17913
- 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) {
18167
+ 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) {
17914
18168
  var content = value[2];
17915
18169
  return content;
17916
18170
  });
@@ -17918,7 +18172,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
17918
18172
  function CivetPrologue(ctx, state2) {
17919
18173
  return (0, import_lib4.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
17920
18174
  }
17921
- 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) {
18175
+ 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) {
17922
18176
  var options = $3;
17923
18177
  return {
17924
18178
  type: "CivetPrologue",
@@ -17929,7 +18183,7 @@ var CivetPrologueContent$0 = (0, import_lib4.$TS)((0, import_lib4.$S)((0, import
17929
18183
  function CivetPrologueContent(ctx, state2) {
17930
18184
  return (0, import_lib4.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
17931
18185
  }
17932
- 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) {
18186
+ 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) {
17933
18187
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
17934
18188
  if (l)
17935
18189
  return l.toUpperCase();
@@ -17951,11 +18205,11 @@ var CivetOption$0 = (0, import_lib4.$TR)((0, import_lib4.$EXPECT)($R95, "CivetOp
17951
18205
  function CivetOption(ctx, state2) {
17952
18206
  return (0, import_lib4.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
17953
18207
  }
17954
- 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);
18208
+ 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);
17955
18209
  function UnknownPrologue(ctx, state2) {
17956
18210
  return (0, import_lib4.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
17957
18211
  }
17958
- 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));
18212
+ 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));
17959
18213
  function TripleSlashDirective(ctx, state2) {
17960
18214
  return (0, import_lib4.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
17961
18215
  }
@@ -17971,13 +18225,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
17971
18225
  function PrologueString(ctx, state2) {
17972
18226
  return (0, import_lib4.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
17973
18227
  }
17974
- 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) {
18228
+ 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) {
17975
18229
  return value[1];
17976
18230
  });
17977
18231
  function EOS(ctx, state2) {
17978
18232
  return (0, import_lib4.$EVENT)(ctx, state2, "EOS", EOS$0);
17979
18233
  }
17980
- 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) {
18234
+ 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) {
17981
18235
  return { $loc, token: $0 };
17982
18236
  });
17983
18237
  function EOL(ctx, state2) {
@@ -18386,11 +18640,11 @@ var Prologue$0 = (0, import_lib4.$Q)((0, import_lib4.$C)(TripleSlashDirective, (
18386
18640
  function Prologue(ctx, state2) {
18387
18641
  return (0, import_lib4.$EVENT)(ctx, state2, "Prologue", Prologue$0);
18388
18642
  }
18389
- var ProloguePrefix$0 = (0, import_lib4.$S)(Prologue, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R99, "ProloguePrefix /[^]*/")));
18643
+ var ProloguePrefix$0 = (0, import_lib4.$S)(Prologue, (0, import_lib4.$R$0)((0, import_lib4.$EXPECT)($R100, "ProloguePrefix /[^]*/")));
18390
18644
  function ProloguePrefix(ctx, state2) {
18391
18645
  return (0, import_lib4.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
18392
18646
  }
18393
- 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) {
18647
+ 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) {
18394
18648
  const level = getIndentLevel($0, config.tab);
18395
18649
  return {
18396
18650
  $loc,