@danielx/civet 0.8.17 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -70,7 +70,7 @@ var Civet = (() => {
70
70
  $N: () => $N2,
71
71
  $P: () => $P2,
72
72
  $Q: () => $Q2,
73
- $R: () => $R102,
73
+ $R: () => $R104,
74
74
  $R$0: () => $R$02,
75
75
  $S: () => $S2,
76
76
  $T: () => $T2,
@@ -107,7 +107,7 @@ var Civet = (() => {
107
107
  return;
108
108
  };
109
109
  }
110
- function $R102(regExp) {
110
+ function $R104(regExp) {
111
111
  return function(_ctx, state2) {
112
112
  const { input, pos } = state2;
113
113
  regExp.lastIndex = state2.pos;
@@ -1621,10 +1621,7 @@ ${body}`;
1621
1621
  return;
1622
1622
  }
1623
1623
  if (Array.isArray(expression)) {
1624
- const nonempty = ((s, e) => {
1625
- let step = e > s ? 1 : -1;
1626
- return Array.from({ length: Math.abs(e - s) }, (_2, i) => s + i * step);
1627
- })(0, expression.length).filter((i) => !isWhitespaceOrEmpty(expression[i]));
1624
+ const nonempty = ((s) => Array.from({ length: expression.length - s }, (_2, i) => s + i))(0).filter((i) => !isWhitespaceOrEmpty(expression[i]));
1628
1625
  if (nonempty.length === 1) {
1629
1626
  let ref1;
1630
1627
  if (ref1 = needsRef(expression[nonempty[0]], base)) {
@@ -2951,7 +2948,7 @@ ${js}`
2951
2948
  return;
2952
2949
  }
2953
2950
  case "BlockStatement": {
2954
- if (node.expressions.some(isExit)) {
2951
+ if (exp.expressions.some(isExit)) {
2955
2952
  return;
2956
2953
  }
2957
2954
  assignResults(exp.expressions[exp.expressions.length - 1], collect);
@@ -2987,6 +2984,15 @@ ${js}`
2987
2984
  }
2988
2985
  return;
2989
2986
  }
2987
+ case "PipelineExpression": {
2988
+ const semi2 = exp.children.lastIndexOf(";");
2989
+ if (0 <= semi2 && semi2 < exp.children.length - 1) {
2990
+ exp.children.splice(semi2 + 1, 1 / 0, ...[collect(exp.children.slice(semi2 + 1))]);
2991
+ return;
2992
+ }
2993
+ ;
2994
+ break;
2995
+ }
2990
2996
  }
2991
2997
  if (node[node.length - 1]?.type === "SemicolonDelimiter") {
2992
2998
  return;
@@ -3144,6 +3150,15 @@ ${js}`
3144
3150
  }
3145
3151
  return;
3146
3152
  }
3153
+ case "PipelineExpression": {
3154
+ const semi2 = exp.children.lastIndexOf(";");
3155
+ if (0 <= semi2 && semi2 < exp.children.length - 1) {
3156
+ exp.children.splice(semi2 + 1, 1 / 0, ...[wrapWithReturn(exp.children.slice(semi2 + 1))]);
3157
+ return;
3158
+ }
3159
+ ;
3160
+ break;
3161
+ }
3147
3162
  }
3148
3163
  if (node[node.length - 1]?.type === "SemicolonDelimiter") {
3149
3164
  return;
@@ -3156,17 +3171,6 @@ ${js}`
3156
3171
  statement.block,
3157
3172
  ($3) => $3.type === "BreakStatement" || $3.type === "ContinueStatement"
3158
3173
  )) {
3159
- let controlName2 = function() {
3160
- switch (control.type) {
3161
- case "BreakStatement": {
3162
- return "break";
3163
- }
3164
- case "ContinueStatement": {
3165
- return "continue";
3166
- }
3167
- }
3168
- };
3169
- var controlName = controlName2;
3170
3174
  if (control.with) {
3171
3175
  if (control.label) {
3172
3176
  let m2;
@@ -3195,7 +3199,7 @@ ${js}`
3195
3199
  }
3196
3200
  const block = control.parent;
3197
3201
  if (!(block?.type === "BlockStatement")) {
3198
- throw new Error(`Expected parent of ${controlName2()} to be BlockStatement`);
3202
+ throw new Error(`Expected parent of ${control.type.toLowerCase().replace("statement", "")} to be BlockStatement`);
3199
3203
  }
3200
3204
  braceBlock(block);
3201
3205
  }
@@ -5516,8 +5520,10 @@ ${js}`
5516
5520
  gatherRecursiveAll(statements, (n) => n.type === "PipelineExpression").forEach((s) => {
5517
5521
  const [ws, , body] = s.children;
5518
5522
  let [, arg] = s.children;
5519
- let i = 0, l = body.length;
5523
+ let i = 0;
5524
+ const l = body.length;
5520
5525
  const children = [ws];
5526
+ const comma = blockContainingStatement(s) ? ";" : ",";
5521
5527
  let usingRef = null;
5522
5528
  for (let i1 = 0, len3 = body.length; i1 < len3; i1++) {
5523
5529
  const i2 = i1;
@@ -5541,7 +5547,7 @@ ${js}`
5541
5547
  usingRef = makeRef();
5542
5548
  initRef = {
5543
5549
  type: "AssignmentExpression",
5544
- children: [usingRef, " = ", arg, ","]
5550
+ children: [usingRef, " = ", arg, comma]
5545
5551
  };
5546
5552
  arg = {
5547
5553
  type: "MemberExpression",
@@ -5617,7 +5623,7 @@ ${js}`
5617
5623
  }
5618
5624
  if (returning) {
5619
5625
  arg = returning;
5620
- children.push(result, ",");
5626
+ children.push(result, comma);
5621
5627
  } else {
5622
5628
  arg = result;
5623
5629
  }
@@ -5770,7 +5776,7 @@ ${js}`
5770
5776
  };
5771
5777
  }
5772
5778
  function forRange(open, forDeclaration, range, stepExp, close) {
5773
- const { start, end, left, right, increasing } = range;
5779
+ let { start, end, left, right, increasing } = range;
5774
5780
  const counterRef = makeRef("i");
5775
5781
  const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5776
5782
  let stepRef, asc;
@@ -5812,28 +5818,36 @@ ${js}`
5812
5818
  let endRef = maybeRef(end, "end");
5813
5819
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
5814
5820
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
5815
- if (!left.inclusive) {
5816
- startRef = [
5817
- makeLeftHandSideExpression(start),
5818
- " + ",
5819
- stepRef
5820
- ];
5821
- }
5822
5821
  let ascDec = [], ascRef;
5823
5822
  if (stepExp) {
5824
5823
  if (!(stepRef === stepExp)) {
5825
5824
  ascDec = [", ", stepRef, " = ", stepExp];
5826
5825
  }
5827
- } else if (start?.type === "Literal" && "Literal" === end?.type) {
5826
+ }
5827
+ if (start?.type === "Literal" && "Literal" === end?.type) {
5828
5828
  asc = literalValue(start) <= literalValue(end);
5829
- if ("StringLiteral" === start.subtype && start.subtype === end.subtype) {
5830
- startRef = literalValue(start).charCodeAt(0).toString();
5829
+ let ref4;
5830
+ if ("StringLiteral" === (ref4 = start.subtype) && ref4 === end.subtype) {
5831
+ const startChar = literalValue(start).charCodeAt(0).toString();
5832
+ startRef = {
5833
+ type: "Literal",
5834
+ subtype: "NumericLiteral",
5835
+ raw: startChar,
5836
+ children: [startChar]
5837
+ };
5831
5838
  endRef = literalValue(end).charCodeAt(0).toString();
5832
5839
  }
5833
- } else {
5840
+ } else if (!stepExp) {
5834
5841
  ascRef = makeRef("asc");
5835
5842
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
5836
5843
  }
5844
+ if (!left.inclusive) {
5845
+ startRef = [
5846
+ makeLeftHandSideExpression(startRef),
5847
+ " + ",
5848
+ stepRef
5849
+ ];
5850
+ }
5837
5851
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
5838
5852
  let names = forDeclaration?.names ?? [];
5839
5853
  if (forDeclaration != null) {
@@ -5845,7 +5859,7 @@ ${js}`
5845
5859
  varAssign = [...trimFirstSpace(varName), " = "];
5846
5860
  varLet = [",", ...varName, " = ", counterRef];
5847
5861
  } else {
5848
- const value = "StringLiteral" === start.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5862
+ const value = "StringLiteral" === start?.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5849
5863
  blockPrefix = [
5850
5864
  ["", [forDeclaration, " = ", value], ";"]
5851
5865
  ];
@@ -5869,8 +5883,8 @@ ${js}`
5869
5883
  }
5870
5884
  function processForInOf($0) {
5871
5885
  let [awaits, eachOwn, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
5872
- for (let ref4 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref4.length; i1 < len3; i1++) {
5873
- const decl = ref4[i1];
5886
+ for (let ref5 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref5.length; i1 < len3; i1++) {
5887
+ const decl = ref5[i1];
5874
5888
  if (!(decl != null)) {
5875
5889
  continue;
5876
5890
  }
@@ -7269,8 +7283,7 @@ ${js}`
7269
7283
  block = void 0;
7270
7284
  }
7271
7285
  }
7272
- let ref14;
7273
- if ($1.some(($8) => (ref14 = $8)[ref14.length - 1].special)) {
7286
+ if ($1.some(($8) => $8[$8.length - 1].special)) {
7274
7287
  if ($1.length !== 1)
7275
7288
  throw new Error("Only one assignment with id= is allowed");
7276
7289
  const [, lhs, , op] = $1[0];
@@ -7448,9 +7461,9 @@ ${js}`
7448
7461
  }
7449
7462
  j++;
7450
7463
  }
7451
- let ref15;
7452
- if (ref15 = conditions.length) {
7453
- const l = ref15;
7464
+ let ref14;
7465
+ if (ref14 = conditions.length) {
7466
+ const l = ref14;
7454
7467
  const cs = flatJoin(conditions, " && ");
7455
7468
  return {
7456
7469
  ...exp,
@@ -7486,8 +7499,8 @@ ${js}`
7486
7499
  }
7487
7500
  function processTypes(node) {
7488
7501
  const results1 = [];
7489
- for (let ref16 = gatherRecursiveAll(node, ($11) => $11.type === "TypeUnary"), i8 = 0, len6 = ref16.length; i8 < len6; i8++) {
7490
- const unary = ref16[i8];
7502
+ for (let ref15 = gatherRecursiveAll(node, ($11) => $11.type === "TypeUnary"), i8 = 0, len6 = ref15.length; i8 < len6; i8++) {
7503
+ const unary = ref15[i8];
7491
7504
  let suffixIndex = unary.suffix.length - 1;
7492
7505
  const results2 = [];
7493
7506
  while (suffixIndex >= 0) {
@@ -7566,12 +7579,12 @@ ${js}`
7566
7579
  const outer = unary.suffix.splice(suffixIndex + 1, Infinity);
7567
7580
  const space = getTrimmingSpace(unary);
7568
7581
  inplaceInsertTrimmingSpace(unary, "");
7569
- let ref17;
7582
+ let ref16;
7570
7583
  if (unary.suffix.length)
7571
- ref17 = unary;
7584
+ ref16 = unary;
7572
7585
  else
7573
- ref17 = unary.t;
7574
- const t = ref17;
7586
+ ref16 = unary.t;
7587
+ const t = ref16;
7575
7588
  const arg = makeNode({
7576
7589
  type: "TypeArgument",
7577
7590
  ts: true,
@@ -7616,18 +7629,18 @@ ${js}`
7616
7629
  return results1;
7617
7630
  }
7618
7631
  function processStatementExpressions(statements) {
7619
- for (let ref18 = gatherRecursiveAll(statements, ($12) => $12.type === "StatementExpression"), i9 = 0, len7 = ref18.length; i9 < len7; i9++) {
7620
- const exp = ref18[i9];
7632
+ for (let ref17 = gatherRecursiveAll(statements, ($12) => $12.type === "StatementExpression"), i9 = 0, len7 = ref17.length; i9 < len7; i9++) {
7633
+ const exp = ref17[i9];
7621
7634
  const { maybe, statement } = exp;
7622
7635
  if ((maybe || statement.type === "ThrowStatement") && blockContainingStatement(exp)) {
7623
7636
  replaceNode(exp, statement);
7624
7637
  continue;
7625
7638
  }
7626
- let ref19;
7639
+ let ref18;
7627
7640
  switch (statement.type) {
7628
7641
  case "IfStatement": {
7629
- if (ref19 = expressionizeIfStatement(statement)) {
7630
- const expression = ref19;
7642
+ if (ref18 = expressionizeIfStatement(statement)) {
7643
+ const expression = ref18;
7631
7644
  replaceNode(statement, expression, exp);
7632
7645
  } else {
7633
7646
  replaceNode(statement, wrapIIFE([["", statement]]), exp);
@@ -7685,13 +7698,13 @@ ${js}`
7685
7698
  });
7686
7699
  }
7687
7700
  function processFinallyClauses(statements) {
7688
- for (let ref20 = gatherRecursiveAll(statements, ($) => $.type === "FinallyClause" && $.parent?.type !== "TryStatement"), i10 = 0, len8 = ref20.length; i10 < len8; i10++) {
7689
- let f = ref20[i10];
7690
- let ref21;
7691
- if (!((ref21 = blockContainingStatement(f)) && typeof ref21 === "object" && "block" in ref21 && "index" in ref21)) {
7701
+ for (let ref19 = gatherRecursiveAll(statements, ($) => $.type === "FinallyClause" && $.parent?.type !== "TryStatement"), i10 = 0, len8 = ref19.length; i10 < len8; i10++) {
7702
+ let f = ref19[i10];
7703
+ let ref20;
7704
+ if (!((ref20 = blockContainingStatement(f)) && typeof ref20 === "object" && "block" in ref20 && "index" in ref20)) {
7692
7705
  throw new Error("finally clause must be inside try statement or block");
7693
7706
  }
7694
- const { block, index } = ref21;
7707
+ const { block, index } = ref20;
7695
7708
  const indent = block.expressions[index][0];
7696
7709
  const expressions = block.expressions.slice(index + 1);
7697
7710
  const t = makeNode({
@@ -7714,6 +7727,54 @@ ${js}`
7714
7727
  block.expressions.splice(index, 1 / 0, ...[tuple]);
7715
7728
  }
7716
7729
  }
7730
+ function processBreaksContinues(statements) {
7731
+ for (const control of gatherRecursive(
7732
+ statements,
7733
+ ($) => Boolean(
7734
+ ($.type === "BreakStatement" || $.type === "ContinueStatement") && $.label?.special
7735
+ )
7736
+ )) {
7737
+ const label = control.label;
7738
+ const special = label.special;
7739
+ const { ancestor } = findAncestor(
7740
+ control,
7741
+ ($) => {
7742
+ return special === "for" ? $.type === "ForStatement" : $.type === "IterationStatement" && $.subtype.startsWith(special);
7743
+ },
7744
+ // in particular, special = "do" matches "do-while" and "do-until"
7745
+ isFunction
7746
+ );
7747
+ if (!(ancestor != null)) {
7748
+ control.children.push({
7749
+ type: "Error",
7750
+ message: `No matching '${special}' iteration found above '${control.type.toLowerCase().replace("statement", "")} ${special}'`
7751
+ });
7752
+ continue;
7753
+ }
7754
+ let { parent } = ancestor;
7755
+ if (!(parent?.type === "LabelledStatement")) {
7756
+ const ref = makeRef(`_${special.replace("-", "_")}`);
7757
+ const label2 = makeNode({
7758
+ type: "Label",
7759
+ name: ref,
7760
+ children: [ref, ":"]
7761
+ });
7762
+ replaceNode(
7763
+ ancestor,
7764
+ makeNode({
7765
+ type: "LabelledStatement",
7766
+ label: label2,
7767
+ statement: ancestor,
7768
+ children: [label2, " ", ancestor]
7769
+ }),
7770
+ parent
7771
+ );
7772
+ parent = ancestor.parent;
7773
+ }
7774
+ label.children.push(label.name = parent.label.name);
7775
+ delete label.special;
7776
+ }
7777
+ }
7717
7778
  function processProgram(root) {
7718
7779
  const state2 = getState();
7719
7780
  const config2 = getConfig();
@@ -7744,6 +7805,7 @@ ${js}`
7744
7805
  processPatternMatching(statements);
7745
7806
  processIterationExpressions(statements);
7746
7807
  processFinallyClauses(statements);
7808
+ processBreaksContinues(statements);
7747
7809
  hoistRefDecs(statements);
7748
7810
  processFunctions(statements, config2);
7749
7811
  statements.unshift(...state2.prelude);
@@ -7771,8 +7833,8 @@ ${js}`
7771
7833
  function processRepl(root, rootIIFE) {
7772
7834
  const topBlock = gatherRecursive(rootIIFE, ($14) => $14.type === "BlockStatement")[0];
7773
7835
  let i = 0;
7774
- for (let ref22 = gatherRecursiveWithinFunction(topBlock, ($15) => $15.type === "Declaration"), i11 = 0, len9 = ref22.length; i11 < len9; i11++) {
7775
- const decl = ref22[i11];
7836
+ for (let ref21 = gatherRecursiveWithinFunction(topBlock, ($15) => $15.type === "Declaration"), i11 = 0, len9 = ref21.length; i11 < len9; i11++) {
7837
+ const decl = ref21[i11];
7776
7838
  if (!decl.names?.length) {
7777
7839
  continue;
7778
7840
  }
@@ -7785,8 +7847,8 @@ ${js}`
7785
7847
  root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")}`, ";"]);
7786
7848
  }
7787
7849
  }
7788
- for (let ref23 = gatherRecursive(topBlock, ($16) => $16.type === "FunctionExpression"), i12 = 0, len10 = ref23.length; i12 < len10; i12++) {
7789
- const func = ref23[i12];
7850
+ for (let ref22 = gatherRecursive(topBlock, ($16) => $16.type === "FunctionExpression"), i12 = 0, len10 = ref22.length; i12 < len10; i12++) {
7851
+ const func = ref22[i12];
7790
7852
  if (func.name && func.parent?.type === "BlockStatement") {
7791
7853
  if (func.parent === topBlock) {
7792
7854
  replaceNode(func, void 0);
@@ -7798,8 +7860,8 @@ ${js}`
7798
7860
  }
7799
7861
  }
7800
7862
  }
7801
- for (let ref24 = gatherRecursiveWithinFunction(topBlock, ($17) => $17.type === "ClassExpression"), i13 = 0, len11 = ref24.length; i13 < len11; i13++) {
7802
- const classExp = ref24[i13];
7863
+ for (let ref23 = gatherRecursiveWithinFunction(topBlock, ($17) => $17.type === "ClassExpression"), i13 = 0, len11 = ref23.length; i13 < len11; i13++) {
7864
+ const classExp = ref23[i13];
7803
7865
  let m8;
7804
7866
  if (classExp.name && classExp.parent === topBlock || (m8 = classExp.parent, typeof m8 === "object" && m8 != null && "type" in m8 && m8.type === "ReturnStatement" && "parent" in m8 && m8.parent === topBlock)) {
7805
7867
  classExp.children.unshift(classExp.name, "=");
@@ -7831,8 +7893,8 @@ ${js}`
7831
7893
  function processPlaceholders(statements) {
7832
7894
  const placeholderMap = /* @__PURE__ */ new Map();
7833
7895
  const liftedIfs = /* @__PURE__ */ new Set();
7834
- for (let ref25 = gatherRecursiveAll(statements, ($19) => $19.type === "Placeholder"), i14 = 0, len12 = ref25.length; i14 < len12; i14++) {
7835
- const exp = ref25[i14];
7896
+ for (let ref24 = gatherRecursiveAll(statements, ($19) => $19.type === "Placeholder"), i14 = 0, len12 = ref24.length; i14 < len12; i14++) {
7897
+ const exp = ref24[i14];
7836
7898
  let ancestor;
7837
7899
  if (exp.subtype === ".") {
7838
7900
  ({ ancestor } = findAncestor(
@@ -7944,8 +8006,8 @@ ${js}`
7944
8006
  for (let i15 = 0, len13 = placeholders.length; i15 < len13; i15++) {
7945
8007
  const placeholder = placeholders[i15];
7946
8008
  typeSuffix ??= placeholder.typeSuffix;
7947
- let ref26;
7948
- (ref26 = placeholder.children)[ref26.length - 1] = ref;
8009
+ let ref25;
8010
+ (ref25 = placeholder.children)[ref25.length - 1] = ref;
7949
8011
  }
7950
8012
  const { parent } = ancestor;
7951
8013
  const body = maybeUnwrap(ancestor);
@@ -7966,16 +8028,16 @@ ${js}`
7966
8028
  }
7967
8029
  case "PipelineExpression": {
7968
8030
  const i = findChildIndex(parent, ancestor);
7969
- let ref27;
8031
+ let ref26;
7970
8032
  if (i === 1) {
7971
- ref27 = ancestor === parent.children[i];
8033
+ ref26 = ancestor === parent.children[i];
7972
8034
  } else if (i === 2) {
7973
- ref27 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
8035
+ ref26 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
7974
8036
  } else {
7975
- ref27 = void 0;
8037
+ ref26 = void 0;
7976
8038
  }
7977
8039
  ;
7978
- outer = ref27;
8040
+ outer = ref26;
7979
8041
  break;
7980
8042
  }
7981
8043
  case "AssignmentExpression":
@@ -7990,9 +8052,9 @@ ${js}`
7990
8052
  fnExp = makeLeftHandSideExpression(fnExp);
7991
8053
  }
7992
8054
  replaceNode(ancestor, fnExp, parent);
7993
- let ref28;
7994
- if (ref28 = getTrimmingSpace(body)) {
7995
- const ws = ref28;
8055
+ let ref27;
8056
+ if (ref27 = getTrimmingSpace(body)) {
8057
+ const ws = ref27;
7996
8058
  inplaceInsertTrimmingSpace(body, "");
7997
8059
  inplacePrepend(ws, fnExp);
7998
8060
  }
@@ -8037,8 +8099,8 @@ ${js}`
8037
8099
  }
8038
8100
  ];
8039
8101
  }
8040
- let ref29;
8041
- if (Array.isArray(rest.delim) && (ref29 = rest.delim)[ref29.length - 1]?.token === ",") {
8102
+ let ref28;
8103
+ if (Array.isArray(rest.delim) && (ref28 = rest.delim)[ref28.length - 1]?.token === ",") {
8042
8104
  rest.delim = rest.delim.slice(0, -1);
8043
8105
  rest.children = [...rest.children.slice(0, -1), rest.delim];
8044
8106
  }
@@ -8572,6 +8634,8 @@ ${js}`
8572
8634
  StringLiteral,
8573
8635
  DoubleStringCharacters,
8574
8636
  SingleStringCharacters,
8637
+ TripleDoubleStringContents,
8638
+ CoffeeTripleDoubleStringCharacters,
8575
8639
  TripleDoubleStringCharacters,
8576
8640
  TripleSingleStringCharacters,
8577
8641
  CoffeeStringSubstitution,
@@ -9226,76 +9290,78 @@ ${js}`
9226
9290
  var $R29 = (0, import_lib2.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
9227
9291
  var $R30 = (0, import_lib2.$R)(new RegExp("[:.]", "suy"));
9228
9292
  var $R31 = (0, import_lib2.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
9229
- var $R32 = (0, import_lib2.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
9230
- var $R33 = (0, import_lib2.$R)(new RegExp('[^;"\\s=>]+', "suy"));
9231
- var $R34 = (0, import_lib2.$R)(new RegExp("(?=[0-9.])", "suy"));
9232
- var $R35 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
9233
- var $R36 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
9234
- var $R37 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
9235
- var $R38 = (0, import_lib2.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
9236
- var $R39 = (0, import_lib2.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
9237
- var $R40 = (0, import_lib2.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
9238
- var $R41 = (0, import_lib2.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
9239
- var $R42 = (0, import_lib2.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
9240
- var $R43 = (0, import_lib2.$R)(new RegExp("(?=[0-9])", "suy"));
9241
- var $R44 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
9242
- var $R45 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
9243
- var $R46 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
9244
- var $R47 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
9245
- var $R48 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9246
- var $R49 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9247
- var $R50 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9248
- var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9249
- var $R52 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9250
- var $R53 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9251
- var $R54 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
9252
- var $R55 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9253
- var $R56 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9254
- var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9255
- var $R58 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9256
- var $R59 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9257
- var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9258
- var $R61 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9259
- var $R62 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9260
- var $R63 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9261
- var $R64 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9262
- var $R65 = (0, import_lib2.$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"));
9263
- var $R66 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9264
- var $R67 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9265
- var $R68 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9266
- var $R69 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9267
- var $R70 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9268
- var $R71 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9269
- var $R72 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9270
- var $R73 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9271
- var $R74 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9272
- var $R75 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9273
- var $R76 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9274
- var $R77 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9275
- var $R78 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9276
- var $R79 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9277
- var $R80 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9278
- var $R81 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9279
- var $R82 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9280
- var $R83 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9281
- var $R84 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9282
- var $R85 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9283
- var $R86 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9284
- var $R87 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9285
- var $R88 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9286
- var $R89 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9287
- var $R90 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9288
- var $R91 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9289
- var $R92 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9290
- var $R93 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9291
- var $R94 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9292
- var $R95 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9293
- var $R96 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9294
- var $R97 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9295
- var $R98 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9296
- var $R99 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9297
- var $R100 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9298
- var $R101 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9293
+ var $R32 = (0, import_lib2.$R)(new RegExp("(?:loop|while|until|for|do)(?!\\p{ID_Continue})", "suy"));
9294
+ var $R33 = (0, import_lib2.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy"));
9295
+ var $R34 = (0, import_lib2.$R)(new RegExp('[^;"\\s=>]+', "suy"));
9296
+ var $R35 = (0, import_lib2.$R)(new RegExp("(?=[0-9.])", "suy"));
9297
+ var $R36 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
9298
+ var $R37 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
9299
+ var $R38 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
9300
+ var $R39 = (0, import_lib2.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
9301
+ var $R40 = (0, import_lib2.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
9302
+ var $R41 = (0, import_lib2.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
9303
+ var $R42 = (0, import_lib2.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
9304
+ var $R43 = (0, import_lib2.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
9305
+ var $R44 = (0, import_lib2.$R)(new RegExp("(?=[0-9])", "suy"));
9306
+ var $R45 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
9307
+ var $R46 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
9308
+ var $R47 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
9309
+ var $R48 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
9310
+ var $R49 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy"));
9311
+ var $R50 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9312
+ var $R51 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9313
+ var $R52 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9314
+ var $R53 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9315
+ var $R54 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9316
+ var $R55 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9317
+ var $R56 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#$\\\\]+|[#$]", "suy"));
9318
+ var $R57 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9319
+ var $R58 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9320
+ var $R59 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9321
+ var $R60 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9322
+ var $R61 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9323
+ var $R62 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9324
+ var $R63 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9325
+ var $R64 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9326
+ var $R65 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9327
+ var $R66 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9328
+ var $R67 = (0, import_lib2.$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"));
9329
+ var $R68 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9330
+ var $R69 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9331
+ var $R70 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9332
+ var $R71 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9333
+ var $R72 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9334
+ var $R73 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9335
+ var $R74 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9336
+ var $R75 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9337
+ var $R76 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9338
+ var $R77 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9339
+ var $R78 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9340
+ var $R79 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9341
+ var $R80 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9342
+ var $R81 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9343
+ var $R82 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9344
+ var $R83 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9345
+ var $R84 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9346
+ var $R85 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9347
+ var $R86 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9348
+ var $R87 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9349
+ var $R88 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9350
+ var $R89 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9351
+ var $R90 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9352
+ var $R91 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9353
+ var $R92 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9354
+ var $R93 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9355
+ var $R94 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9356
+ var $R95 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9357
+ var $R96 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9358
+ var $R97 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9359
+ var $R98 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9360
+ var $R99 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9361
+ var $R100 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9362
+ var $R101 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9363
+ var $R102 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9364
+ var $R103 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9299
9365
  var Program$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Reset, Init, (0, import_lib2.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9300
9366
  var reset = $1;
9301
9367
  var init = $2;
@@ -12805,7 +12871,8 @@ ${js}`
12805
12871
  type: "RangeDots",
12806
12872
  left: { inclusive: true, raw: "" },
12807
12873
  right: { inclusive: false, raw: "." },
12808
- increasing: void 0,
12874
+ // Ranges are increasing by default, but adaptive in coffeeCompat mode
12875
+ increasing: config.coffeeRange ? void 0 : true,
12809
12876
  triple: true,
12810
12877
  children: []
12811
12878
  };
@@ -12816,7 +12883,7 @@ ${js}`
12816
12883
  var dots = $3;
12817
12884
  var ws2 = $4;
12818
12885
  var right = $5;
12819
- const increasing = left.increasing ?? right.increasing;
12886
+ const increasing = left.increasing ?? right.increasing ?? (config.coffeeRange ? void 0 : true);
12820
12887
  if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
12821
12888
  const error = {
12822
12889
  type: "Error",
@@ -14482,10 +14549,12 @@ ${js}`
14482
14549
  function LabelledStatement(ctx, state2) {
14483
14550
  return (0, import_lib2.$EVENT)(ctx, state2, "LabelledStatement", LabelledStatement$0);
14484
14551
  }
14485
- var Label$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Colon, Identifier, Whitespace), function($skip, $loc, $0, $1, $2, $3) {
14552
+ var Label$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Colon, IdentifierName, Whitespace), function($skip, $loc, $0, $1, $2, $3) {
14486
14553
  var colon = $1;
14487
14554
  var id = $2;
14488
14555
  var w = $3;
14556
+ if (id.name === "void")
14557
+ return $skip;
14489
14558
  return {
14490
14559
  type: "Label",
14491
14560
  name: id.name,
@@ -14495,12 +14564,34 @@ ${js}`
14495
14564
  function Label(ctx, state2) {
14496
14565
  return (0, import_lib2.$EVENT)(ctx, state2, "Label", Label$0);
14497
14566
  }
14498
- var LabelIdentifier$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$E)(Colon), Identifier), function(value) {
14499
- var id = value[1];
14500
- return id;
14567
+ var LabelIdentifier$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Colon, IdentifierName), function($skip, $loc, $0, $1, $2) {
14568
+ var id = $2;
14569
+ return {
14570
+ type: "Label",
14571
+ name: id.name,
14572
+ children: [id]
14573
+ };
14574
+ });
14575
+ var LabelIdentifier$1 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R32, "LabelIdentifier /(?:loop|while|until|for|do)(?!\\p{ID_Continue})/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14576
+ return {
14577
+ type: "Label",
14578
+ special: $0,
14579
+ name: "",
14580
+ // to be filled in
14581
+ children: []
14582
+ };
14501
14583
  });
14584
+ var LabelIdentifier$2 = (0, import_lib2.$TV)(Identifier, function($skip, $loc, $0, $1) {
14585
+ var id = $0;
14586
+ return {
14587
+ type: "Label",
14588
+ name: id.name,
14589
+ children: [id]
14590
+ };
14591
+ });
14592
+ var LabelIdentifier$$ = [LabelIdentifier$0, LabelIdentifier$1, LabelIdentifier$2];
14502
14593
  function LabelIdentifier(ctx, state2) {
14503
- return (0, import_lib2.$EVENT)(ctx, state2, "LabelIdentifier", LabelIdentifier$0);
14594
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "LabelIdentifier", LabelIdentifier$$);
14504
14595
  }
14505
14596
  var LabelledItem$0 = Statement;
14506
14597
  var LabelledItem$1 = FunctionDeclaration;
@@ -14584,7 +14675,7 @@ ${js}`
14584
14675
  function IfClause(ctx, state2) {
14585
14676
  return (0, import_lib2.$EVENT)(ctx, state2, "IfClause", IfClause$0);
14586
14677
  }
14587
- var IterationStatement$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R32, "IterationStatement /(?=loop|comptime|do|for|until|while)/"), _IterationStatement), function(value) {
14678
+ var IterationStatement$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R33, "IterationStatement /(?=loop|comptime|do|for|until|while)/"), _IterationStatement), function(value) {
14588
14679
  return value[1];
14589
14680
  });
14590
14681
  function IterationStatement(ctx, state2) {
@@ -14625,7 +14716,7 @@ ${js}`
14625
14716
  var block = $2;
14626
14717
  return {
14627
14718
  ...clause,
14628
- type: "IterationStatement",
14719
+ //type: "IterationStatement", [from LoopClause]
14629
14720
  children: [...clause.children, block],
14630
14721
  block
14631
14722
  };
@@ -14648,7 +14739,7 @@ ${js}`
14648
14739
  };
14649
14740
  return {
14650
14741
  type: "IterationStatement",
14651
- subtype: kind.token,
14742
+ subtype: "loop",
14652
14743
  children: [kind, condition],
14653
14744
  condition,
14654
14745
  generator
@@ -14665,8 +14756,8 @@ ${js}`
14665
14756
  var clause = $5;
14666
14757
  return {
14667
14758
  ...clause,
14668
- type: "IterationStatement",
14669
- subtype: "do-while",
14759
+ //type: "IterationStatement", [from WhileClause]
14760
+ subtype: `do-${clause.subtype}`,
14670
14761
  children: [d, block, ws, clause],
14671
14762
  block,
14672
14763
  generator
@@ -14724,13 +14815,14 @@ ${js}`
14724
14815
  var generator = $2;
14725
14816
  var ws = $3;
14726
14817
  var condition = $4;
14818
+ const subtype = kind.token;
14727
14819
  if (kind.negated) {
14728
14820
  kind = { ...kind, token: "while" };
14729
14821
  condition = negateCondition(condition);
14730
14822
  }
14731
14823
  return {
14732
14824
  type: "IterationStatement",
14733
- subtype: kind.token,
14825
+ subtype,
14734
14826
  children: [kind, ws, condition],
14735
14827
  condition,
14736
14828
  generator,
@@ -16187,7 +16279,7 @@ ${js}`
16187
16279
  function UnprocessedModuleSpecifier(ctx, state2) {
16188
16280
  return (0, import_lib2.$EVENT_C)(ctx, state2, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
16189
16281
  }
16190
- var UnquotedSpecifier$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($R33, 'UnquotedSpecifier /[^;"\\s=>]+/'), function($skip, $loc, $0, $1) {
16282
+ var UnquotedSpecifier$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($R34, 'UnquotedSpecifier /[^;"\\s=>]+/'), function($skip, $loc, $0, $1) {
16191
16283
  var spec = $0;
16192
16284
  return { $loc, token: `"${spec}"` };
16193
16285
  });
@@ -16460,7 +16552,7 @@ ${js}`
16460
16552
  function VariableDeclarationList(ctx, state2) {
16461
16553
  return (0, import_lib2.$EVENT)(ctx, state2, "VariableDeclarationList", VariableDeclarationList$0);
16462
16554
  }
16463
- var NumericLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R34, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
16555
+ var NumericLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R35, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
16464
16556
  var token = $2;
16465
16557
  return { type: "NumericLiteral", $loc, token };
16466
16558
  });
@@ -16476,36 +16568,36 @@ ${js}`
16476
16568
  function NumericLiteralKind(ctx, state2) {
16477
16569
  return (0, import_lib2.$EVENT_C)(ctx, state2, "NumericLiteralKind", NumericLiteralKind$$);
16478
16570
  }
16479
- var DecimalBigIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R35, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
16571
+ var DecimalBigIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R36, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
16480
16572
  function DecimalBigIntegerLiteral(ctx, state2) {
16481
16573
  return (0, import_lib2.$EVENT)(ctx, state2, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
16482
16574
  }
16483
- var DecimalLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R36, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L7, 'DecimalLiteral "."'), ExponentPart))), function($skip, $loc, $0, $1, $2) {
16575
+ var DecimalLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R37, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L7, 'DecimalLiteral "."'), ExponentPart))), function($skip, $loc, $0, $1, $2) {
16484
16576
  return $1 + ".";
16485
16577
  });
16486
- var DecimalLiteral$1 = (0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R37, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), (0, import_lib2.$E)(ExponentPart)));
16487
- var DecimalLiteral$2 = (0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R38, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), (0, import_lib2.$E)(ExponentPart)));
16578
+ var DecimalLiteral$1 = (0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R38, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), (0, import_lib2.$E)(ExponentPart)));
16579
+ var DecimalLiteral$2 = (0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R39, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), (0, import_lib2.$E)(ExponentPart)));
16488
16580
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
16489
16581
  function DecimalLiteral(ctx, state2) {
16490
16582
  return (0, import_lib2.$EVENT_C)(ctx, state2, "DecimalLiteral", DecimalLiteral$$);
16491
16583
  }
16492
- var ExponentPart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R39, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
16584
+ var ExponentPart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R40, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
16493
16585
  function ExponentPart(ctx, state2) {
16494
16586
  return (0, import_lib2.$EVENT)(ctx, state2, "ExponentPart", ExponentPart$0);
16495
16587
  }
16496
- var BinaryIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R40, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
16588
+ var BinaryIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R41, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
16497
16589
  function BinaryIntegerLiteral(ctx, state2) {
16498
16590
  return (0, import_lib2.$EVENT)(ctx, state2, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
16499
16591
  }
16500
- var OctalIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R41, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
16592
+ var OctalIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R42, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
16501
16593
  function OctalIntegerLiteral(ctx, state2) {
16502
16594
  return (0, import_lib2.$EVENT)(ctx, state2, "OctalIntegerLiteral", OctalIntegerLiteral$0);
16503
16595
  }
16504
- var HexIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R42, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
16596
+ var HexIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R43, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
16505
16597
  function HexIntegerLiteral(ctx, state2) {
16506
16598
  return (0, import_lib2.$EVENT)(ctx, state2, "HexIntegerLiteral", HexIntegerLiteral$0);
16507
16599
  }
16508
- var IntegerLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R43, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
16600
+ var IntegerLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R44, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
16509
16601
  var token = $2;
16510
16602
  return { $loc, token };
16511
16603
  });
@@ -16521,7 +16613,7 @@ ${js}`
16521
16613
  function IntegerLiteralKind(ctx, state2) {
16522
16614
  return (0, import_lib2.$EVENT_C)(ctx, state2, "IntegerLiteralKind", IntegerLiteralKind$$);
16523
16615
  }
16524
- var DecimalIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R44, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
16616
+ var DecimalIntegerLiteral$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R45, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
16525
16617
  function DecimalIntegerLiteral(ctx, state2) {
16526
16618
  return (0, import_lib2.$EVENT)(ctx, state2, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
16527
16619
  }
@@ -16545,25 +16637,41 @@ ${js}`
16545
16637
  function StringLiteral(ctx, state2) {
16546
16638
  return (0, import_lib2.$EVENT_C)(ctx, state2, "StringLiteral", StringLiteral$$);
16547
16639
  }
16548
- var DoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R45, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16640
+ var DoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R46, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16549
16641
  return { $loc, token: $0 };
16550
16642
  });
16551
16643
  function DoubleStringCharacters(ctx, state2) {
16552
16644
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleStringCharacters", DoubleStringCharacters$0);
16553
16645
  }
16554
- var SingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R46, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16646
+ var SingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R47, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16555
16647
  return { $loc, token: $0 };
16556
16648
  });
16557
16649
  function SingleStringCharacters(ctx, state2) {
16558
16650
  return (0, import_lib2.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
16559
16651
  }
16560
- var TripleDoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R47, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16652
+ var TripleDoubleStringContents$0 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, (0, import_lib2.$Q)((0, import_lib2.$C)(CoffeeTripleDoubleStringCharacters, CoffeeStringSubstitution))), function(value) {
16653
+ return value[1];
16654
+ });
16655
+ var TripleDoubleStringContents$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$N)(CoffeeInterpolationEnabled), TripleDoubleStringCharacters), function(value) {
16656
+ return [value[1]];
16657
+ });
16658
+ var TripleDoubleStringContents$$ = [TripleDoubleStringContents$0, TripleDoubleStringContents$1];
16659
+ function TripleDoubleStringContents(ctx, state2) {
16660
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "TripleDoubleStringContents", TripleDoubleStringContents$$);
16661
+ }
16662
+ var CoffeeTripleDoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R48, 'CoffeeTripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16663
+ return { $loc, token: $0 };
16664
+ });
16665
+ function CoffeeTripleDoubleStringCharacters(ctx, state2) {
16666
+ return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeTripleDoubleStringCharacters", CoffeeTripleDoubleStringCharacters$0);
16667
+ }
16668
+ var TripleDoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R49, 'TripleDoubleStringCharacters /(?:"(?!"")|\\\\.|[^"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16561
16669
  return { $loc, token: $0 };
16562
16670
  });
16563
16671
  function TripleDoubleStringCharacters(ctx, state2) {
16564
16672
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
16565
16673
  }
16566
- var TripleSingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R48, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16674
+ var TripleSingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R50, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16567
16675
  return { $loc, token: $0 };
16568
16676
  });
16569
16677
  function TripleSingleStringCharacters(ctx, state2) {
@@ -16586,7 +16694,7 @@ ${js}`
16586
16694
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
16587
16695
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
16588
16696
  }
16589
- var CoffeeDoubleQuotedStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R49, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16697
+ var CoffeeDoubleQuotedStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R51, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16590
16698
  return { $loc, token: $0 };
16591
16699
  });
16592
16700
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -16606,7 +16714,7 @@ ${js}`
16606
16714
  function RegularExpressionClass(ctx, state2) {
16607
16715
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
16608
16716
  }
16609
- var RegularExpressionClassCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R50, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16717
+ var RegularExpressionClassCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R52, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16610
16718
  return { $loc, token: $0 };
16611
16719
  });
16612
16720
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -16657,13 +16765,13 @@ ${js}`
16657
16765
  return (0, import_lib2.$EVENT)(ctx, state2, "HeregexBody", HeregexBody$0);
16658
16766
  }
16659
16767
  var HeregexPart$0 = RegularExpressionClass;
16660
- var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeStringSubstitution), function(value) {
16661
- return { "type": "Substitution", "children": value[0] };
16768
+ var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, CoffeeStringSubstitution), function(value) {
16769
+ return { "type": "Substitution", "children": value[1] };
16662
16770
  });
16663
16771
  var HeregexPart$2 = (0, import_lib2.$T)((0, import_lib2.$S)(TemplateSubstitution), function(value) {
16664
16772
  return { "type": "Substitution", "children": value[0] };
16665
16773
  });
16666
- var HeregexPart$3 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R51, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16774
+ var HeregexPart$3 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R53, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16667
16775
  let token = $0;
16668
16776
  switch ($0[1]) {
16669
16777
  case "\n":
@@ -16681,26 +16789,28 @@ ${js}`
16681
16789
  var HeregexPart$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(HeregexComment), function($skip, $loc, $0, $1) {
16682
16790
  return { $loc, token: "" };
16683
16791
  });
16684
- var HeregexPart$5 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R52, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16792
+ var HeregexPart$5 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R54, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16685
16793
  return { $loc, token: "" };
16686
16794
  });
16687
- var HeregexPart$6 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R53, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16795
+ var HeregexPart$6 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R55, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16688
16796
  return { $loc, token: "\\/" };
16689
16797
  });
16690
- var HeregexPart$7 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R54, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16798
+ var HeregexPart$7 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R56, "HeregexPart /[^[\\/\\s#$\\\\]+|[#$]/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16691
16799
  return { $loc, token: $0 };
16692
16800
  });
16693
16801
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
16694
16802
  function HeregexPart(ctx, state2) {
16695
16803
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexPart", HeregexPart$$);
16696
16804
  }
16697
- var HeregexComment$0 = JSSingleLineComment;
16698
- var HeregexComment$1 = CoffeeSingleLineComment;
16805
+ var HeregexComment$0 = (0, import_lib2.$S)((0, import_lib2.$N)(CoffeeDivEnabled), JSSingleLineComment);
16806
+ var HeregexComment$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeCommentEnabled, CoffeeSingleLineComment), function(value) {
16807
+ return value[1];
16808
+ });
16699
16809
  var HeregexComment$$ = [HeregexComment$0, HeregexComment$1];
16700
16810
  function HeregexComment(ctx, state2) {
16701
16811
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
16702
16812
  }
16703
- var RegularExpressionBody$0 = (0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R55, "RegularExpressionBody /[*\\/\\r\\n]/"))), (0, import_lib2.$Q)(RegExpPart));
16813
+ var RegularExpressionBody$0 = (0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegularExpressionBody /[*\\/\\r\\n]/"))), (0, import_lib2.$Q)(RegExpPart));
16704
16814
  function RegularExpressionBody(ctx, state2) {
16705
16815
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
16706
16816
  }
@@ -16710,15 +16820,15 @@ ${js}`
16710
16820
  function RegExpPart(ctx, state2) {
16711
16821
  return (0, import_lib2.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
16712
16822
  }
16713
- var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R56, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16823
+ var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R58, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16714
16824
  function RegExpCharacter(ctx, state2) {
16715
16825
  return (0, import_lib2.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
16716
16826
  }
16717
- var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16827
+ var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R59, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16718
16828
  function RegularExpressionFlags(ctx, state2) {
16719
16829
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
16720
16830
  }
16721
- var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R58, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16831
+ var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R60, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16722
16832
  return value[1];
16723
16833
  });
16724
16834
  function TemplateLiteral(ctx, state2) {
@@ -16733,7 +16843,7 @@ ${js}`
16733
16843
  children: $0
16734
16844
  };
16735
16845
  });
16736
- var _TemplateLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleDoubleQuote, (0, import_lib2.$Q)((0, import_lib2.$C)(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
16846
+ var _TemplateLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleDoubleQuote, TripleDoubleStringContents, TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
16737
16847
  return dedentBlockSubstitutions($0, config.tab);
16738
16848
  });
16739
16849
  var _TemplateLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
@@ -16758,28 +16868,28 @@ ${js}`
16758
16868
  function TemplateSubstitution(ctx, state2) {
16759
16869
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
16760
16870
  }
16761
- var TemplateCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R59, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16871
+ var TemplateCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R61, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16762
16872
  return { $loc, token: $0 };
16763
16873
  });
16764
16874
  function TemplateCharacters(ctx, state2) {
16765
16875
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
16766
16876
  }
16767
- var TemplateBlockCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R60, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16877
+ var TemplateBlockCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R62, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16768
16878
  return { $loc, token: $0 };
16769
16879
  });
16770
16880
  function TemplateBlockCharacters(ctx, state2) {
16771
16881
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
16772
16882
  }
16773
- var ReservedWord$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R61, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
16774
- var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R62, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16775
- var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16776
- var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16777
- var ReservedWord$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R65, "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})/"));
16883
+ var ReservedWord$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
16884
+ var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16885
+ var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R65, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16886
+ var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R66, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16887
+ var ReservedWord$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R67, "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})/"));
16778
16888
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
16779
16889
  function ReservedWord(ctx, state2) {
16780
16890
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
16781
16891
  }
16782
- var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R66, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16892
+ var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R68, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16783
16893
  return value[1];
16784
16894
  });
16785
16895
  function Comment(ctx, state2) {
@@ -16797,7 +16907,7 @@ ${js}`
16797
16907
  function SingleLineComment(ctx, state2) {
16798
16908
  return (0, import_lib2.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
16799
16909
  }
16800
- var JSSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R67, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16910
+ var JSSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R69, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16801
16911
  return { type: "Comment", $loc, token: $0 };
16802
16912
  });
16803
16913
  function JSSingleLineComment(ctx, state2) {
@@ -16809,30 +16919,30 @@ ${js}`
16809
16919
  function MultiLineComment(ctx, state2) {
16810
16920
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
16811
16921
  }
16812
- var JSMultiLineComment$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L138, 'JSMultiLineComment "/*"'), (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"')), (0, import_lib2.$EXPECT)($R68, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16922
+ var JSMultiLineComment$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L138, 'JSMultiLineComment "/*"'), (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"')), (0, import_lib2.$EXPECT)($R70, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16813
16923
  return { type: "Comment", $loc, token: $1 };
16814
16924
  });
16815
16925
  function JSMultiLineComment(ctx, state2) {
16816
16926
  return (0, import_lib2.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
16817
16927
  }
16818
- var CoffeeSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R69, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16928
+ var CoffeeSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R71, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16819
16929
  return { type: "Comment", $loc, token: `//${$1}` };
16820
16930
  });
16821
16931
  function CoffeeSingleLineComment(ctx, state2) {
16822
16932
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
16823
16933
  }
16824
- var CoffeeMultiLineComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeHereCommentStart, (0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R70, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
16934
+ var CoffeeMultiLineComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeHereCommentStart, (0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R72, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
16825
16935
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
16826
16936
  return { type: "Comment", $loc, token: `/*${$2}*/` };
16827
16937
  });
16828
16938
  function CoffeeMultiLineComment(ctx, state2) {
16829
16939
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
16830
16940
  }
16831
- var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R71, "CoffeeHereCommentStart /###(?!#)/"));
16941
+ var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R73, "CoffeeHereCommentStart /###(?!#)/"));
16832
16942
  function CoffeeHereCommentStart(ctx, state2) {
16833
16943
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
16834
16944
  }
16835
- var InlineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R72, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16945
+ var InlineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R74, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16836
16946
  return { $loc, token: $0 };
16837
16947
  });
16838
16948
  function InlineComment(ctx, state2) {
@@ -16846,7 +16956,7 @@ ${js}`
16846
16956
  function TrailingComment(ctx, state2) {
16847
16957
  return (0, import_lib2.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
16848
16958
  }
16849
- var _$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R73, "_ /(?=[ \\t\\/\\\\])/"), (0, import_lib2.$P)((0, import_lib2.$C)(NonNewlineWhitespace, InlineComment))), function(value) {
16959
+ var _$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R75, "_ /(?=[ \\t\\/\\\\])/"), (0, import_lib2.$P)((0, import_lib2.$C)(NonNewlineWhitespace, InlineComment))), function(value) {
16850
16960
  return value[1];
16851
16961
  });
16852
16962
  function _(ctx, state2) {
@@ -16869,7 +16979,7 @@ ${js}`
16869
16979
  function Trimmed_(ctx, state2) {
16870
16980
  return (0, import_lib2.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
16871
16981
  }
16872
- var __$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R74, "__ /(?=\\s|\\/|#)/"), (0, import_lib2.$Q)((0, import_lib2.$C)(Whitespace, Comment))), function(value) {
16982
+ var __$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R76, "__ /(?=\\s|\\/|#)/"), (0, import_lib2.$Q)((0, import_lib2.$C)(Whitespace, Comment))), function(value) {
16873
16983
  return value[1];
16874
16984
  });
16875
16985
  var __$1 = (0, import_lib2.$EXPECT)($L0, '__ ""');
@@ -16877,7 +16987,7 @@ ${js}`
16877
16987
  function __(ctx, state2) {
16878
16988
  return (0, import_lib2.$EVENT_C)(ctx, state2, "__", __$$);
16879
16989
  }
16880
- var Whitespace$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R52, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16990
+ var Whitespace$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R54, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16881
16991
  return { $loc, token: $0 };
16882
16992
  });
16883
16993
  function Whitespace(ctx, state2) {
@@ -16919,7 +17029,7 @@ ${js}`
16919
17029
  function SemicolonDelimiter(ctx, state2) {
16920
17030
  return (0, import_lib2.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
16921
17031
  }
16922
- var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R75, "NonIdContinue /(?!\\p{ID_Continue})/"));
17032
+ var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R77, "NonIdContinue /(?!\\p{ID_Continue})/"));
16923
17033
  function NonIdContinue(ctx, state2) {
16924
17034
  return (0, import_lib2.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
16925
17035
  }
@@ -17037,7 +17147,7 @@ ${js}`
17037
17147
  function CoffeeSubstitutionStart(ctx, state2) {
17038
17148
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
17039
17149
  }
17040
- var Colon$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L16, 'Colon ":"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R76, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
17150
+ var Colon$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L16, 'Colon ":"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R78, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
17041
17151
  return { $loc, token: $1 };
17042
17152
  });
17043
17153
  function Colon(ctx, state2) {
@@ -17088,7 +17198,7 @@ ${js}`
17088
17198
  var Dot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
17089
17199
  return { $loc, token: $1 };
17090
17200
  });
17091
- var Dot$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R77, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
17201
+ var Dot$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R79, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
17092
17202
  var ws = $2;
17093
17203
  return [
17094
17204
  { $loc, token: "." },
@@ -17221,7 +17331,7 @@ ${js}`
17221
17331
  function If(ctx, state2) {
17222
17332
  return (0, import_lib2.$EVENT)(ctx, state2, "If", If$0);
17223
17333
  }
17224
- var Import$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L15, 'Import "import"'), (0, import_lib2.$Y)((0, import_lib2.$EXPECT)($R78, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
17334
+ var Import$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L15, 'Import "import"'), (0, import_lib2.$Y)((0, import_lib2.$EXPECT)($R80, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
17225
17335
  return { $loc, token: $1 };
17226
17336
  });
17227
17337
  function Import(ctx, state2) {
@@ -17579,7 +17689,7 @@ ${js}`
17579
17689
  function JSXImplicitFragment(ctx, state2) {
17580
17690
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
17581
17691
  }
17582
- var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R79, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17692
+ var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R81, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17583
17693
  return value[1];
17584
17694
  });
17585
17695
  function JSXTag(ctx, state2) {
@@ -17726,7 +17836,7 @@ ${js}`
17726
17836
  function JSXElementName(ctx, state2) {
17727
17837
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
17728
17838
  }
17729
- var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R80, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17839
+ var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R82, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17730
17840
  function JSXIdentifierName(ctx, state2) {
17731
17841
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
17732
17842
  }
@@ -17908,7 +18018,7 @@ ${js}`
17908
18018
  class: $2
17909
18019
  };
17910
18020
  });
17911
- var JSXAttribute$7 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R81, "JSXAttribute /[!+-]/")), JSXAttributeName, (0, import_lib2.$Y)(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
18021
+ var JSXAttribute$7 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R83, "JSXAttribute /[!+-]/")), JSXAttributeName, (0, import_lib2.$Y)(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
17912
18022
  var toggle = $1;
17913
18023
  var id = $2;
17914
18024
  const value = toggle === "+" ? "true" : "false";
@@ -17918,11 +18028,11 @@ ${js}`
17918
18028
  function JSXAttribute(ctx, state2) {
17919
18029
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
17920
18030
  }
17921
- var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R82, "JSXAttributeSpace /[\\s>]|\\/>/"));
18031
+ var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R84, "JSXAttributeSpace /[\\s>]|\\/>/"));
17922
18032
  function JSXAttributeSpace(ctx, state2) {
17923
18033
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
17924
18034
  }
17925
- var JSXShorthandString$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R83, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18035
+ var JSXShorthandString$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R85, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17926
18036
  return quoteString($0);
17927
18037
  });
17928
18038
  var JSXShorthandString$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -17965,7 +18075,7 @@ ${js}`
17965
18075
  }
17966
18076
  return [open, value, close];
17967
18077
  });
17968
- var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R84, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
18078
+ var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R86, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17969
18079
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
17970
18080
  function JSXAttributeValue(ctx, state2) {
17971
18081
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -17978,7 +18088,7 @@ ${js}`
17978
18088
  function InlineJSXAttributeValue(ctx, state2) {
17979
18089
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
17980
18090
  }
17981
- var InlineJSXBinaryOpRHS$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($R85, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
18091
+ var InlineJSXBinaryOpRHS$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($R87, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
17982
18092
  var op = $2;
17983
18093
  var rhs = $3;
17984
18094
  return [[], op, [], rhs];
@@ -17995,7 +18105,7 @@ ${js}`
17995
18105
  function InlineJSXUnaryExpression(ctx, state2) {
17996
18106
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
17997
18107
  }
17998
- var InlineJSXUnaryOp$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R86, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18108
+ var InlineJSXUnaryOp$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R88, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17999
18109
  return { $loc, token: $0 };
18000
18110
  });
18001
18111
  function InlineJSXUnaryOp(ctx, state2) {
@@ -18246,13 +18356,13 @@ ${js}`
18246
18356
  function JSXComment(ctx, state2) {
18247
18357
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
18248
18358
  }
18249
- var JSXCommentContent$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R87, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18359
+ var JSXCommentContent$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R89, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18250
18360
  return { $loc, token: $0.replace(/\*\//g, "* /") };
18251
18361
  });
18252
18362
  function JSXCommentContent(ctx, state2) {
18253
18363
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
18254
18364
  }
18255
- var JSXText$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R88, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18365
+ var JSXText$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R90, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18256
18366
  return {
18257
18367
  type: "JSXText",
18258
18368
  token: $0,
@@ -18786,7 +18896,7 @@ ${js}`
18786
18896
  function TypeProperty(ctx, state2) {
18787
18897
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
18788
18898
  }
18789
- var TypeIndexSignature$0 = (0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R89, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, (0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R14, "TypeIndexSignature /[+-]/")), (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), QuestionMark)))));
18899
+ var TypeIndexSignature$0 = (0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R91, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, (0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R14, "TypeIndexSignature /[+-]/")), (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), QuestionMark)))));
18790
18900
  function TypeIndexSignature(ctx, state2) {
18791
18901
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
18792
18902
  }
@@ -19295,7 +19405,7 @@ ${js}`
19295
19405
  function TypeWithPostfix(ctx, state2) {
19296
19406
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
19297
19407
  }
19298
- var TypeConditional$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($R90, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
19408
+ var TypeConditional$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($R92, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
19299
19409
  return prepend($1, expressionizeTypeIf($3));
19300
19410
  });
19301
19411
  var TypeConditional$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(TypeCondition, NotDedented, QuestionMark, __, Type, __, Colon, __, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
@@ -19529,8 +19639,8 @@ ${js}`
19529
19639
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
19530
19640
  }
19531
19641
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
19532
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19533
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19642
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R93, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19643
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R94, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19534
19644
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
19535
19645
  function ForbiddenImplicitTypeCalls(ctx, state2) {
19536
19646
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -19621,7 +19731,7 @@ ${js}`
19621
19731
  function TypeParameters(ctx, state2) {
19622
19732
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
19623
19733
  }
19624
- var TypeParameter$0 = (0, import_lib2.$S)(__, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R93, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib2.$E)(TypeConstraint), (0, import_lib2.$E)(TypeInitializer), TypeParameterDelimiter);
19734
+ var TypeParameter$0 = (0, import_lib2.$S)(__, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R95, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib2.$E)(TypeConstraint), (0, import_lib2.$E)(TypeInitializer), TypeParameterDelimiter);
19625
19735
  function TypeParameter(ctx, state2) {
19626
19736
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
19627
19737
  }
@@ -19648,15 +19758,15 @@ ${js}`
19648
19758
  function ThisType(ctx, state2) {
19649
19759
  return (0, import_lib2.$EVENT)(ctx, state2, "ThisType", ThisType$0);
19650
19760
  }
19651
- var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R94, "Shebang /#![^\\r\\n]*/")), EOL);
19761
+ var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R96, "Shebang /#![^\\r\\n]*/")), EOL);
19652
19762
  function Shebang(ctx, state2) {
19653
19763
  return (0, import_lib2.$EVENT)(ctx, state2, "Shebang", Shebang$0);
19654
19764
  }
19655
- var CivetPrologue$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R95, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19765
+ var CivetPrologue$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R97, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19656
19766
  var content = value[2];
19657
19767
  return content;
19658
19768
  });
19659
- var CivetPrologue$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R95, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19769
+ var CivetPrologue$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R97, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19660
19770
  var content = value[2];
19661
19771
  return content;
19662
19772
  });
@@ -19664,7 +19774,7 @@ ${js}`
19664
19774
  function CivetPrologue(ctx, state2) {
19665
19775
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
19666
19776
  }
19667
- var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L246, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib2.$Q)(CivetOption), (0, import_lib2.$EXPECT)($R96, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
19777
+ var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L246, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib2.$Q)(CivetOption), (0, import_lib2.$EXPECT)($R98, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
19668
19778
  var options = $3;
19669
19779
  return {
19670
19780
  type: "CivetPrologue",
@@ -19675,7 +19785,7 @@ ${js}`
19675
19785
  function CivetPrologueContent(ctx, state2) {
19676
19786
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
19677
19787
  }
19678
- var CivetOption$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R97, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19788
+ var CivetOption$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R99, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19679
19789
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
19680
19790
  if (l)
19681
19791
  return l.toUpperCase();
@@ -19698,11 +19808,11 @@ ${js}`
19698
19808
  function CivetOption(ctx, state2) {
19699
19809
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
19700
19810
  }
19701
- var UnknownPrologue$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R95, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib2.$TEXT)(SimpleStatementDelimiter), EOS);
19811
+ var UnknownPrologue$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R97, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib2.$TEXT)(SimpleStatementDelimiter), EOS);
19702
19812
  function UnknownPrologue(ctx, state2) {
19703
19813
  return (0, import_lib2.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
19704
19814
  }
19705
- var TripleSlashDirective$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R98, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib2.$E)(EOS));
19815
+ var TripleSlashDirective$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R100, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib2.$E)(EOS));
19706
19816
  function TripleSlashDirective(ctx, state2) {
19707
19817
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
19708
19818
  }
@@ -19718,13 +19828,13 @@ ${js}`
19718
19828
  function PrologueString(ctx, state2) {
19719
19829
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
19720
19830
  }
19721
- var EOS$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R99, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib2.$P)(RestOfLine)), function(value) {
19831
+ var EOS$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R101, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib2.$P)(RestOfLine)), function(value) {
19722
19832
  return value[1];
19723
19833
  });
19724
19834
  function EOS(ctx, state2) {
19725
19835
  return (0, import_lib2.$EVENT)(ctx, state2, "EOS", EOS$0);
19726
19836
  }
19727
- var EOL$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R100, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19837
+ var EOL$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R102, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19728
19838
  return { $loc, token: $0 };
19729
19839
  });
19730
19840
  function EOL(ctx, state2) {
@@ -20052,6 +20162,7 @@ ${js}`
20052
20162
  coffeeNot: false,
20053
20163
  coffeeOf: false,
20054
20164
  coffeePrototype: false,
20165
+ coffeeRange: false,
20055
20166
  defaultElement: "div",
20056
20167
  globals: [],
20057
20168
  iife: false,
@@ -20095,7 +20206,8 @@ ${js}`
20095
20206
  "coffeeLineContinuation",
20096
20207
  "coffeeNot",
20097
20208
  "coffeeOf",
20098
- "coffeePrototype"
20209
+ "coffeePrototype",
20210
+ "coffeeRange"
20099
20211
  ]) {
20100
20212
  config[option] = b;
20101
20213
  }
@@ -20138,7 +20250,7 @@ ${js}`
20138
20250
  function Prologue(ctx, state2) {
20139
20251
  return (0, import_lib2.$EVENT)(ctx, state2, "Prologue", Prologue$0);
20140
20252
  }
20141
- var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R101, "ProloguePrefix /[^]*/")));
20253
+ var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R103, "ProloguePrefix /[^]*/")));
20142
20254
  function ProloguePrefix(ctx, state2) {
20143
20255
  return (0, import_lib2.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
20144
20256
  }