@danielx/civet 0.6.60 → 0.6.62

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
@@ -495,6 +495,7 @@ ${input.slice(result.pos)}
495
495
  var require_lib = __commonJS({
496
496
  "source/lib.civet"(exports, module) {
497
497
  "use strict";
498
+ var xor = (a, b) => a ? !b && a : b;
498
499
  function addParentPointers(node, parent) {
499
500
  if (node == null)
500
501
  return;
@@ -902,6 +903,31 @@ ${input.slice(result.pos)}
902
903
  children
903
904
  };
904
905
  }
906
+ function expressionizeTypeIf([ws, ifOp, condition, t, e]) {
907
+ const children = [
908
+ ws,
909
+ "(",
910
+ insertTrimmingSpace(condition, ""),
911
+ "?"
912
+ ];
913
+ if (!xor(ifOp.negated, condition.negated)) {
914
+ children.push(t);
915
+ if (e) {
916
+ children.push(e[0], ":", ...e.slice(2));
917
+ } else {
918
+ children.push(":never");
919
+ }
920
+ } else {
921
+ if (e) {
922
+ children.push(...e.slice(2), e[0], ":");
923
+ } else {
924
+ children.push("never:");
925
+ }
926
+ children.push(t);
927
+ }
928
+ children.push(")");
929
+ return children;
930
+ }
905
931
  function expressionizeIteration(exp) {
906
932
  const { async, subtype, block, children, statement } = exp;
907
933
  const i = children.indexOf(statement);
@@ -974,10 +1000,13 @@ ${input.slice(result.pos)}
974
1000
  if (op.reversed) {
975
1001
  if (end !== i + 2)
976
1002
  b = makeLeftHandSideExpression(b);
1003
+ b = dotNumericLiteral(b);
977
1004
  children = [wsB, b, wsOp, ".", op.method, "(", a, ")"];
978
1005
  } else {
979
- if (start !== i - 2)
1006
+ if (start !== i - 2 || a.type === "NumericLiteral") {
980
1007
  a = makeLeftHandSideExpression(a);
1008
+ }
1009
+ a = dotNumericLiteral(a);
981
1010
  children = [a, wsOp, ".", op.method, "(", wsB, b, ")"];
982
1011
  }
983
1012
  } else if (op.token) {
@@ -1416,18 +1445,18 @@ ${input.slice(result.pos)}
1416
1445
  }
1417
1446
  function findChildIndex(parent, child) {
1418
1447
  const children = Array.isArray(parent) ? parent : parent.children;
1419
- const len = children.length;
1420
- for (let i = 0; i < len; i++) {
1421
- const c = children[i];
1448
+ for (let i4 = 0, len4 = children.length; i4 < len4; i4++) {
1449
+ const i = i4;
1450
+ const c = children[i4];
1422
1451
  if (c === child || Array.isArray(c) && arrayRecurse(c)) {
1423
1452
  return i;
1424
1453
  }
1425
1454
  }
1426
1455
  function arrayRecurse(array) {
1427
- const len2 = array.length;
1428
1456
  const results2 = [];
1429
- for (let i = 0; i < len2; i++) {
1430
- const c = array[i];
1457
+ for (let i5 = 0, len5 = array.length; i5 < len5; i5++) {
1458
+ const i = i5;
1459
+ const c = array[i5];
1431
1460
  if (c === child || Array.isArray(c) && arrayRecurse(c)) {
1432
1461
  return true;
1433
1462
  } else {
@@ -1439,6 +1468,32 @@ ${input.slice(result.pos)}
1439
1468
  }
1440
1469
  return -1;
1441
1470
  }
1471
+ function replaceNode(node, newNode) {
1472
+ if (!(node.parent != null)) {
1473
+ throw new Error("replaceNode failed: node has no parent");
1474
+ }
1475
+ function recurse(children) {
1476
+ for (let i6 = 0, len6 = children.length; i6 < len6; i6++) {
1477
+ const i = i6;
1478
+ const child = children[i6];
1479
+ if (child === node) {
1480
+ children[i] = newNode;
1481
+ return true;
1482
+ } else if (Array.isArray(child)) {
1483
+ if (recurse(child)) {
1484
+ return true;
1485
+ }
1486
+ }
1487
+ }
1488
+ return false;
1489
+ }
1490
+ if (!recurse(node.parent.children)) {
1491
+ throw new Error("replaceNode failed: didn't find child node in parent");
1492
+ }
1493
+ if (typeof newNode === "object" && !Array.isArray(newNode)) {
1494
+ newNode.parent = node.parent;
1495
+ }
1496
+ }
1442
1497
  function findAncestor(node, predicate, stopPredicate) {
1443
1498
  let { parent } = node;
1444
1499
  while (parent && !stopPredicate?.(parent, node)) {
@@ -2017,6 +2072,13 @@ ${input.slice(result.pos)}
2017
2072
  insertRestSplices(statements, splices, thisAssignments);
2018
2073
  return [splices, thisAssignments];
2019
2074
  }
2075
+ function dotNumericLiteral(literal) {
2076
+ if (literal?.type === "Literal" && /^[+-]?(?:0|[1-9](?:_[0-9]|[0-9])*)$/.test(literal.raw)) {
2077
+ literal.children.push(".");
2078
+ literal.raw += ".";
2079
+ }
2080
+ return literal;
2081
+ }
2020
2082
  function literalValue(literal) {
2021
2083
  let { raw } = literal;
2022
2084
  switch (raw) {
@@ -2125,6 +2187,20 @@ ${input.slice(result.pos)}
2125
2187
  return expression;
2126
2188
  }
2127
2189
  }
2190
+ var typeNeedsNoParens = /* @__PURE__ */ new Set([
2191
+ "IdentifierType",
2192
+ "ImportType",
2193
+ "LiteralType",
2194
+ "TupleType",
2195
+ "ParenthesizedType",
2196
+ "UnaryType"
2197
+ ]);
2198
+ function parenthesizeType(type) {
2199
+ if (typeNeedsNoParens.has(type.type)) {
2200
+ return type;
2201
+ }
2202
+ return ["(", type, ")"];
2203
+ }
2128
2204
  function modifyString(str) {
2129
2205
  return str.replace(/(^.?|[^\\]{2})(\\\\)*\n/g, "$1$2\\n");
2130
2206
  }
@@ -2176,6 +2252,25 @@ ${input.slice(result.pos)}
2176
2252
  block
2177
2253
  };
2178
2254
  }
2255
+ function convertOptionalType(suffix) {
2256
+ if (suffix.t.type === "AssertsType") {
2257
+ spliceChild(suffix, suffix.optional, 1, suffix.optional = {
2258
+ type: "Error",
2259
+ message: "Can't use optional ?: syntax with asserts type"
2260
+ });
2261
+ return;
2262
+ }
2263
+ spliceChild(suffix, suffix.optional, 1, suffix.optional = void 0);
2264
+ const wrap = suffix.type === "ReturnTypeAnnotation";
2265
+ spliceChild(suffix, suffix.t, 1, suffix.t = [
2266
+ getTrimmingSpace(suffix.t),
2267
+ wrap && "(",
2268
+ // TODO: avoid parens if unnecessary
2269
+ "undefined | ",
2270
+ parenthesizeType(insertTrimmingSpace(suffix.t, "")),
2271
+ wrap && ")"
2272
+ ]);
2273
+ }
2179
2274
  function convertObjectToJSXAttributes(obj) {
2180
2275
  const { properties } = obj;
2181
2276
  const parts = [];
@@ -2461,18 +2556,23 @@ ${input.slice(result.pos)}
2461
2556
  return n.type === "Declaration";
2462
2557
  }).forEach(({ bindings }) => {
2463
2558
  return bindings?.forEach((binding) => {
2464
- const { initializer } = binding;
2465
- if (!initializer) {
2466
- return;
2559
+ const suffix = binding.suffix;
2560
+ if (suffix && suffix.optional && suffix.t) {
2561
+ convertOptionalType(suffix);
2467
2562
  }
2468
- const exp = initializer[2];
2469
- if (exp?.type === "PipelineExpression") {
2470
- if (exp.children.at(-2) === ",") {
2471
- const { parent } = exp;
2472
- const parenthesizedExpression = makeLeftHandSideExpression(exp);
2473
- parenthesizedExpression.parent = parent;
2474
- exp.parent = parenthesizedExpression;
2475
- return initializer[2] = parenthesizedExpression;
2563
+ const { initializer } = binding;
2564
+ if (initializer) {
2565
+ const exp = initializer[2];
2566
+ if (exp?.type === "PipelineExpression") {
2567
+ if (exp.children.at(-2) === ",") {
2568
+ const { parent } = exp;
2569
+ const parenthesizedExpression = makeLeftHandSideExpression(exp);
2570
+ parenthesizedExpression.parent = parent;
2571
+ exp.parent = parenthesizedExpression;
2572
+ return initializer[2] = parenthesizedExpression;
2573
+ }
2574
+ ;
2575
+ return;
2476
2576
  }
2477
2577
  ;
2478
2578
  return;
@@ -2502,13 +2602,17 @@ ${input.slice(result.pos)}
2502
2602
  }
2503
2603
  }
2504
2604
  function processReturn(f, implicitReturns) {
2605
+ let { returnType } = f.signature;
2606
+ if (returnType && returnType.optional) {
2607
+ convertOptionalType(returnType);
2608
+ }
2505
2609
  if (!processReturnValue(f) && implicitReturns) {
2506
2610
  const { signature, block } = f;
2507
- const { modifier, name, returnType } = signature;
2611
+ const { modifier, name, returnType: returnType2 } = signature;
2508
2612
  const { async, generator, set } = modifier;
2509
2613
  const isMethod = f.type === "MethodDefinition";
2510
2614
  const isConstructor = isMethod && name === "constructor";
2511
- const isVoid = isVoidType(returnType?.t) || async && isPromiseVoidType(returnType?.t) || !async && generator && isGeneratorVoidType(returnType?.t);
2615
+ const isVoid = isVoidType(returnType2?.t) || async && isPromiseVoidType(returnType2?.t) || !async && generator && isGeneratorVoidType(returnType2?.t);
2512
2616
  const isBlock = block?.type === "BlockStatement";
2513
2617
  if (!isVoid && !set && !isConstructor && isBlock) {
2514
2618
  insertReturn(block);
@@ -2584,12 +2688,10 @@ ${input.slice(result.pos)}
2584
2688
  gatherRecursiveAll(statements, (n) => n.type === "AssignmentExpression" && n.names === null).forEach((exp) => {
2585
2689
  let { lhs: $1, exp: $2 } = exp, tail = [], i = 0, len = $1.length;
2586
2690
  if ($1.some((left) => left[left.length - 1].special)) {
2587
- if ($1.length !== 1) {
2691
+ if ($1.length !== 1)
2588
2692
  throw new Error("Only one assignment with id= is allowed");
2589
- }
2590
2693
  const [, lhs, , op] = $1[0];
2591
- const { call } = op;
2592
- op[op.length - 1] = "=";
2694
+ const { call, omitLhs } = op;
2593
2695
  const index2 = exp.children.indexOf($2);
2594
2696
  if (index2 < 0)
2595
2697
  throw new Error("Assertion error: exp not in AssignmentExpression");
@@ -2598,6 +2700,9 @@ ${input.slice(result.pos)}
2598
2700
  1,
2599
2701
  exp.exp = $2 = [call, "(", lhs, ", ", $2, ")"]
2600
2702
  );
2703
+ if (omitLhs) {
2704
+ replaceNode(exp, $2);
2705
+ }
2601
2706
  }
2602
2707
  let wrapped = false;
2603
2708
  while (i < len) {
@@ -2664,9 +2769,9 @@ ${input.slice(result.pos)}
2664
2769
  }
2665
2770
  function insertSemicolon(statements) {
2666
2771
  const l = statements.length;
2667
- for (let i4 = 0, len4 = statements.length; i4 < len4; i4++) {
2668
- const i = i4;
2669
- const s = statements[i4];
2772
+ for (let i7 = 0, len7 = statements.length; i7 < len7; i7++) {
2773
+ const i = i7;
2774
+ const s = statements[i7];
2670
2775
  if (i < l - 1) {
2671
2776
  if (needsPrecedingSemicolon(statements[i + 1])) {
2672
2777
  const delim = s[2];
@@ -3214,6 +3319,40 @@ ${input.slice(result.pos)}
3214
3319
  return addParentPointers(s, s.parent);
3215
3320
  });
3216
3321
  }
3322
+ function processTypes(node) {
3323
+ return gatherRecursiveAll(node, (n) => n.type === "UnaryType").forEach((unary) => {
3324
+ let last;
3325
+ let count = 0;
3326
+ while (unary.suffix.length && unary.suffix.at(-1)?.token === "?") {
3327
+ last = unary.suffix.pop();
3328
+ count++;
3329
+ }
3330
+ if (!count) {
3331
+ return;
3332
+ }
3333
+ if (unary.parent?.type === "TypeTuple") {
3334
+ if (count === 1) {
3335
+ unary.suffix.push(last);
3336
+ return;
3337
+ }
3338
+ replaceNode(unary, [
3339
+ getTrimmingSpace(unary),
3340
+ "(",
3341
+ parenthesizeType(insertTrimmingSpace(unary, "")),
3342
+ " | null)",
3343
+ last
3344
+ ]);
3345
+ } else {
3346
+ replaceNode(unary, [
3347
+ getTrimmingSpace(unary),
3348
+ "(",
3349
+ parenthesizeType(insertTrimmingSpace(unary, "")),
3350
+ count === 1 ? " | undefined" : " | undefined | null",
3351
+ ")"
3352
+ ]);
3353
+ }
3354
+ });
3355
+ }
3217
3356
  function processProgram(root, config, m, ReservedWord) {
3218
3357
  assert.equal(m.forbidBracedApplication.length, 1, "forbidBracedApplication");
3219
3358
  assert.equal(m.forbidClassImplicitCall.length, 1, "forbidClassImplicitCall");
@@ -3223,6 +3362,7 @@ ${input.slice(result.pos)}
3223
3362
  assert.equal(m.JSXTagStack.length, 1, "JSXTagStack");
3224
3363
  addParentPointers(root);
3225
3364
  const { expressions: statements } = root;
3365
+ processTypes(statements);
3226
3366
  processDeclarationConditions(statements);
3227
3367
  processPipelineExpressions(statements);
3228
3368
  processDeclarations(statements);
@@ -3621,9 +3761,9 @@ ${input.slice(result.pos)}
3621
3761
  return root;
3622
3762
  }
3623
3763
  }
3624
- for (let i5 = 0, len5 = array.length; i5 < len5; i5++) {
3625
- const i = i5;
3626
- const node = array[i5];
3764
+ for (let i8 = 0, len8 = array.length; i8 < len8; i8++) {
3765
+ const i = i8;
3766
+ const node = array[i8];
3627
3767
  if (!(node != null)) {
3628
3768
  return;
3629
3769
  }
@@ -3635,6 +3775,17 @@ ${input.slice(result.pos)}
3635
3775
  }
3636
3776
  return root;
3637
3777
  }
3778
+ function spliceChild(node, child, del, ...replacements) {
3779
+ const children = node?.children ?? node;
3780
+ if (!Array.isArray(children)) {
3781
+ throw new Error("spliceChild: non-array node has no children field");
3782
+ }
3783
+ const index = children.indexOf(child);
3784
+ if (index < 0) {
3785
+ throw new Error("spliceChild: child not found");
3786
+ }
3787
+ return children.splice(index, del, ...replacements);
3788
+ }
3638
3789
  function skipIfOnlyWS(target) {
3639
3790
  if (!target)
3640
3791
  return target;
@@ -3780,6 +3931,7 @@ ${input.slice(result.pos)}
3780
3931
  dedentBlockSubstitutions,
3781
3932
  deepCopy,
3782
3933
  expressionizeIfClause,
3934
+ expressionizeTypeIf,
3783
3935
  findAncestor,
3784
3936
  forRange,
3785
3937
  gatherBindingCode,
@@ -3907,6 +4059,7 @@ ${input.slice(result.pos)}
3907
4059
  UnaryBody,
3908
4060
  UnaryWithoutParenthesizedAssignmentBody,
3909
4061
  UnaryPostfix,
4062
+ TypePostfix,
3910
4063
  UpdateExpression,
3911
4064
  UpdateExpressionSymbol,
3912
4065
  AssignmentExpression,
@@ -3936,6 +4089,8 @@ ${input.slice(result.pos)}
3936
4089
  ExtendsClause,
3937
4090
  ExtendsToken,
3938
4091
  ExtendsShorthand,
4092
+ NotExtendsToken,
4093
+ OmittedNegation,
3939
4094
  ExtendsTarget,
3940
4095
  ImplementsClause,
3941
4096
  ImplementsToken,
@@ -4334,6 +4489,7 @@ ${input.slice(result.pos)}
4334
4489
  Each,
4335
4490
  Else,
4336
4491
  Equals,
4492
+ ExclamationPoint,
4337
4493
  Export,
4338
4494
  Extends,
4339
4495
  Finally,
@@ -4476,6 +4632,7 @@ ${input.slice(result.pos)}
4476
4632
  TypeIndexSignature,
4477
4633
  TypeIndex,
4478
4634
  TypeSuffix,
4635
+ MaybeIndentedType,
4479
4636
  ReturnTypeSuffix,
4480
4637
  ReturnType,
4481
4638
  TypePredicate,
@@ -4494,6 +4651,10 @@ ${input.slice(result.pos)}
4494
4651
  NestedTypeList,
4495
4652
  NestedType,
4496
4653
  TypeConditional,
4654
+ TypeCondition,
4655
+ TypeIfThenElse,
4656
+ TypeElse,
4657
+ TypeBlock,
4497
4658
  TypeTemplateSubstitution,
4498
4659
  TypeTemplateLiteral,
4499
4660
  CoffeeStringTypeSubstitution,
@@ -4581,296 +4742,299 @@ ${input.slice(result.pos)}
4581
4742
  var $L7 = $L(".");
4582
4743
  var $L8 = $L("++");
4583
4744
  var $L9 = $L("--");
4584
- var $L10 = $L("=>");
4585
- var $L11 = $L("\u21D2");
4586
- var $L12 = $L(":");
4587
- var $L13 = $L(" ");
4588
- var $L14 = $L("<");
4589
- var $L15 = $L("implements");
4590
- var $L16 = $L("<:");
4591
- var $L17 = $L("import");
4592
- var $L18 = $L("!");
4593
- var $L19 = $L("^");
4594
- var $L20 = $L("-");
4595
- var $L21 = $L("import.meta");
4596
- var $L22 = $L("return.value");
4597
- var $L23 = $L(",");
4598
- var $L24 = $L("(&)");
4599
- var $L25 = $L("->");
4600
- var $L26 = $L("\u2192");
4601
- var $L27 = $L("}");
4602
- var $L28 = $L("null");
4603
- var $L29 = $L("true");
4604
- var $L30 = $L("false");
4605
- var $L31 = $L("yes");
4606
- var $L32 = $L("on");
4607
- var $L33 = $L("no");
4608
- var $L34 = $L("off");
4609
- var $L35 = $L(">");
4610
- var $L36 = $L("]");
4611
- var $L37 = $L("**=");
4612
- var $L38 = $L("*=");
4613
- var $L39 = $L("/=");
4614
- var $L40 = $L("%=");
4615
- var $L41 = $L("+=");
4616
- var $L42 = $L("-=");
4617
- var $L43 = $L("<<=");
4618
- var $L44 = $L(">>>=");
4619
- var $L45 = $L(">>=");
4620
- var $L46 = $L("&&=");
4621
- var $L47 = $L("&=");
4622
- var $L48 = $L("^=");
4623
- var $L49 = $L("||=");
4624
- var $L50 = $L("|=");
4625
- var $L51 = $L("??=");
4626
- var $L52 = $L("?=");
4627
- var $L53 = $L("and=");
4628
- var $L54 = $L("or=");
4629
- var $L55 = $L("**");
4630
- var $L56 = $L("*");
4631
- var $L57 = $L("/");
4632
- var $L58 = $L("%%");
4633
- var $L59 = $L("%");
4634
- var $L60 = $L("+");
4635
- var $L61 = $L("<=");
4636
- var $L62 = $L("\u2264");
4637
- var $L63 = $L(">=");
4638
- var $L64 = $L("\u2265");
4639
- var $L65 = $L("<?");
4640
- var $L66 = $L("!<?");
4641
- var $L67 = $L("<<");
4642
- var $L68 = $L("\xAB");
4643
- var $L69 = $L(">>>");
4644
- var $L70 = $L("\u22D9");
4645
- var $L71 = $L(">>");
4646
- var $L72 = $L("\xBB");
4647
- var $L73 = $L("!==");
4648
- var $L74 = $L("\u2262");
4649
- var $L75 = $L("!=");
4650
- var $L76 = $L("\u2260");
4651
- var $L77 = $L("isnt");
4652
- var $L78 = $L("===");
4653
- var $L79 = $L("\u2263");
4654
- var $L80 = $L("\u2A76");
4655
- var $L81 = $L("==");
4656
- var $L82 = $L("\u2261");
4657
- var $L83 = $L("\u2A75");
4658
- var $L84 = $L("and");
4659
- var $L85 = $L("&&");
4660
- var $L86 = $L("or");
4661
- var $L87 = $L("||");
4662
- var $L88 = $L("\u2016");
4663
- var $L89 = $L("^^");
4664
- var $L90 = $L("xor");
4665
- var $L91 = $L("xnor");
4666
- var $L92 = $L("??");
4667
- var $L93 = $L("\u2047");
4668
- var $L94 = $L("instanceof");
4669
- var $L95 = $L("\u2208");
4670
- var $L96 = $L("\u220B");
4671
- var $L97 = $L("\u220C");
4672
- var $L98 = $L("\u2209");
4673
- var $L99 = $L("&");
4674
- var $L100 = $L("|");
4675
- var $L101 = $L(";");
4676
- var $L102 = $L("$:");
4677
- var $L103 = $L("break");
4678
- var $L104 = $L("continue");
4679
- var $L105 = $L("debugger");
4680
- var $L106 = $L("with");
4681
- var $L107 = $L("assert");
4682
- var $L108 = $L(":=");
4683
- var $L109 = $L("\u2254");
4684
- var $L110 = $L(".=");
4685
- var $L111 = $L("/*");
4686
- var $L112 = $L("*/");
4687
- var $L113 = $L("\\");
4688
- var $L114 = $L(")");
4689
- var $L115 = $L("abstract");
4690
- var $L116 = $L("as");
4691
- var $L117 = $L("@");
4692
- var $L118 = $L("@@");
4693
- var $L119 = $L("async");
4694
- var $L120 = $L("await");
4695
- var $L121 = $L("`");
4696
- var $L122 = $L("by");
4697
- var $L123 = $L("case");
4698
- var $L124 = $L("catch");
4699
- var $L125 = $L("class");
4700
- var $L126 = $L("#{");
4701
- var $L127 = $L("declare");
4702
- var $L128 = $L("default");
4703
- var $L129 = $L("delete");
4704
- var $L130 = $L("do");
4705
- var $L131 = $L("..");
4706
- var $L132 = $L("\u2025");
4707
- var $L133 = $L("...");
4708
- var $L134 = $L("\u2026");
4709
- var $L135 = $L("::");
4710
- var $L136 = $L('"');
4711
- var $L137 = $L("each");
4712
- var $L138 = $L("else");
4713
- var $L139 = $L("export");
4714
- var $L140 = $L("extends");
4715
- var $L141 = $L("finally");
4716
- var $L142 = $L("for");
4717
- var $L143 = $L("from");
4718
- var $L144 = $L("function");
4719
- var $L145 = $L("get");
4720
- var $L146 = $L("set");
4721
- var $L147 = $L("#");
4722
- var $L148 = $L("if");
4723
- var $L149 = $L("in");
4724
- var $L150 = $L("let");
4725
- var $L151 = $L("const");
4726
- var $L152 = $L("is");
4727
- var $L153 = $L("loop");
4728
- var $L154 = $L("new");
4729
- var $L155 = $L("not");
4730
- var $L156 = $L("of");
4731
- var $L157 = $L("[");
4732
- var $L158 = $L("operator");
4733
- var $L159 = $L("own");
4734
- var $L160 = $L("public");
4735
- var $L161 = $L("private");
4736
- var $L162 = $L("protected");
4737
- var $L163 = $L("||>");
4738
- var $L164 = $L("|\u25B7");
4739
- var $L165 = $L("|>=");
4740
- var $L166 = $L("\u25B7=");
4741
- var $L167 = $L("|>");
4742
- var $L168 = $L("\u25B7");
4743
- var $L169 = $L("readonly");
4744
- var $L170 = $L("return");
4745
- var $L171 = $L("satisfies");
4746
- var $L172 = $L("'");
4747
- var $L173 = $L("static");
4748
- var $L174 = $L("${");
4749
- var $L175 = $L("super");
4750
- var $L176 = $L("switch");
4751
- var $L177 = $L("target");
4752
- var $L178 = $L("then");
4753
- var $L179 = $L("this");
4754
- var $L180 = $L("throw");
4755
- var $L181 = $L('"""');
4756
- var $L182 = $L("'''");
4757
- var $L183 = $L("///");
4758
- var $L184 = $L("```");
4759
- var $L185 = $L("try");
4760
- var $L186 = $L("typeof");
4761
- var $L187 = $L("unless");
4762
- var $L188 = $L("until");
4763
- var $L189 = $L("using");
4764
- var $L190 = $L("var");
4765
- var $L191 = $L("void");
4766
- var $L192 = $L("when");
4767
- var $L193 = $L("while");
4768
- var $L194 = $L("yield");
4769
- var $L195 = $L("/>");
4770
- var $L196 = $L("</");
4771
- var $L197 = $L("<>");
4772
- var $L198 = $L("</>");
4773
- var $L199 = $L("<!--");
4774
- var $L200 = $L("-->");
4775
- var $L201 = $L("type");
4776
- var $L202 = $L("enum");
4777
- var $L203 = $L("interface");
4778
- var $L204 = $L("global");
4779
- var $L205 = $L("module");
4780
- var $L206 = $L("namespace");
4781
- var $L207 = $L("asserts");
4782
- var $L208 = $L("keyof");
4783
- var $L209 = $L("infer");
4784
- var $L210 = $L("???");
4785
- var $L211 = $L("[]");
4786
- var $L212 = $L("civet");
4745
+ var $L10 = $L("\u29FA");
4746
+ var $L11 = $L("=>");
4747
+ var $L12 = $L("\u21D2");
4748
+ var $L13 = $L(":");
4749
+ var $L14 = $L(" ");
4750
+ var $L15 = $L("<");
4751
+ var $L16 = $L("implements");
4752
+ var $L17 = $L("<:");
4753
+ var $L18 = $L("import");
4754
+ var $L19 = $L("!");
4755
+ var $L20 = $L("^");
4756
+ var $L21 = $L("-");
4757
+ var $L22 = $L("import.meta");
4758
+ var $L23 = $L("return.value");
4759
+ var $L24 = $L(",");
4760
+ var $L25 = $L("(&)");
4761
+ var $L26 = $L("->");
4762
+ var $L27 = $L("\u2192");
4763
+ var $L28 = $L("}");
4764
+ var $L29 = $L("null");
4765
+ var $L30 = $L("true");
4766
+ var $L31 = $L("false");
4767
+ var $L32 = $L("yes");
4768
+ var $L33 = $L("on");
4769
+ var $L34 = $L("no");
4770
+ var $L35 = $L("off");
4771
+ var $L36 = $L(">");
4772
+ var $L37 = $L("]");
4773
+ var $L38 = $L("**=");
4774
+ var $L39 = $L("*=");
4775
+ var $L40 = $L("/=");
4776
+ var $L41 = $L("%=");
4777
+ var $L42 = $L("+=");
4778
+ var $L43 = $L("-=");
4779
+ var $L44 = $L("<<=");
4780
+ var $L45 = $L(">>>=");
4781
+ var $L46 = $L(">>=");
4782
+ var $L47 = $L("&&=");
4783
+ var $L48 = $L("&=");
4784
+ var $L49 = $L("^=");
4785
+ var $L50 = $L("||=");
4786
+ var $L51 = $L("|=");
4787
+ var $L52 = $L("??=");
4788
+ var $L53 = $L("?=");
4789
+ var $L54 = $L("and=");
4790
+ var $L55 = $L("or=");
4791
+ var $L56 = $L("**");
4792
+ var $L57 = $L("*");
4793
+ var $L58 = $L("/");
4794
+ var $L59 = $L("%%");
4795
+ var $L60 = $L("%");
4796
+ var $L61 = $L("+");
4797
+ var $L62 = $L("<=");
4798
+ var $L63 = $L("\u2264");
4799
+ var $L64 = $L(">=");
4800
+ var $L65 = $L("\u2265");
4801
+ var $L66 = $L("<?");
4802
+ var $L67 = $L("!<?");
4803
+ var $L68 = $L("<<");
4804
+ var $L69 = $L("\xAB");
4805
+ var $L70 = $L(">>>");
4806
+ var $L71 = $L("\u22D9");
4807
+ var $L72 = $L(">>");
4808
+ var $L73 = $L("\xBB");
4809
+ var $L74 = $L("!==");
4810
+ var $L75 = $L("\u2262");
4811
+ var $L76 = $L("!=");
4812
+ var $L77 = $L("\u2260");
4813
+ var $L78 = $L("isnt");
4814
+ var $L79 = $L("===");
4815
+ var $L80 = $L("\u2263");
4816
+ var $L81 = $L("\u2A76");
4817
+ var $L82 = $L("==");
4818
+ var $L83 = $L("\u2261");
4819
+ var $L84 = $L("\u2A75");
4820
+ var $L85 = $L("and");
4821
+ var $L86 = $L("&&");
4822
+ var $L87 = $L("or");
4823
+ var $L88 = $L("||");
4824
+ var $L89 = $L("\u2016");
4825
+ var $L90 = $L("^^");
4826
+ var $L91 = $L("xor");
4827
+ var $L92 = $L("xnor");
4828
+ var $L93 = $L("??");
4829
+ var $L94 = $L("\u2047");
4830
+ var $L95 = $L("instanceof");
4831
+ var $L96 = $L("\u2208");
4832
+ var $L97 = $L("\u220B");
4833
+ var $L98 = $L("\u220C");
4834
+ var $L99 = $L("\u2209");
4835
+ var $L100 = $L("&");
4836
+ var $L101 = $L("|");
4837
+ var $L102 = $L(";");
4838
+ var $L103 = $L("$:");
4839
+ var $L104 = $L("break");
4840
+ var $L105 = $L("continue");
4841
+ var $L106 = $L("debugger");
4842
+ var $L107 = $L("with");
4843
+ var $L108 = $L("assert");
4844
+ var $L109 = $L(":=");
4845
+ var $L110 = $L("\u2254");
4846
+ var $L111 = $L(".=");
4847
+ var $L112 = $L("/*");
4848
+ var $L113 = $L("*/");
4849
+ var $L114 = $L("\\");
4850
+ var $L115 = $L(")");
4851
+ var $L116 = $L("abstract");
4852
+ var $L117 = $L("as");
4853
+ var $L118 = $L("@");
4854
+ var $L119 = $L("@@");
4855
+ var $L120 = $L("async");
4856
+ var $L121 = $L("await");
4857
+ var $L122 = $L("`");
4858
+ var $L123 = $L("by");
4859
+ var $L124 = $L("case");
4860
+ var $L125 = $L("catch");
4861
+ var $L126 = $L("class");
4862
+ var $L127 = $L("#{");
4863
+ var $L128 = $L("declare");
4864
+ var $L129 = $L("default");
4865
+ var $L130 = $L("delete");
4866
+ var $L131 = $L("do");
4867
+ var $L132 = $L("..");
4868
+ var $L133 = $L("\u2025");
4869
+ var $L134 = $L("...");
4870
+ var $L135 = $L("\u2026");
4871
+ var $L136 = $L("::");
4872
+ var $L137 = $L('"');
4873
+ var $L138 = $L("each");
4874
+ var $L139 = $L("else");
4875
+ var $L140 = $L("export");
4876
+ var $L141 = $L("extends");
4877
+ var $L142 = $L("finally");
4878
+ var $L143 = $L("for");
4879
+ var $L144 = $L("from");
4880
+ var $L145 = $L("function");
4881
+ var $L146 = $L("get");
4882
+ var $L147 = $L("set");
4883
+ var $L148 = $L("#");
4884
+ var $L149 = $L("if");
4885
+ var $L150 = $L("in");
4886
+ var $L151 = $L("let");
4887
+ var $L152 = $L("const");
4888
+ var $L153 = $L("is");
4889
+ var $L154 = $L("loop");
4890
+ var $L155 = $L("new");
4891
+ var $L156 = $L("not");
4892
+ var $L157 = $L("of");
4893
+ var $L158 = $L("[");
4894
+ var $L159 = $L("operator");
4895
+ var $L160 = $L("own");
4896
+ var $L161 = $L("public");
4897
+ var $L162 = $L("private");
4898
+ var $L163 = $L("protected");
4899
+ var $L164 = $L("||>");
4900
+ var $L165 = $L("|\u25B7");
4901
+ var $L166 = $L("|>=");
4902
+ var $L167 = $L("\u25B7=");
4903
+ var $L168 = $L("|>");
4904
+ var $L169 = $L("\u25B7");
4905
+ var $L170 = $L("readonly");
4906
+ var $L171 = $L("return");
4907
+ var $L172 = $L("satisfies");
4908
+ var $L173 = $L("'");
4909
+ var $L174 = $L("static");
4910
+ var $L175 = $L("${");
4911
+ var $L176 = $L("super");
4912
+ var $L177 = $L("switch");
4913
+ var $L178 = $L("target");
4914
+ var $L179 = $L("then");
4915
+ var $L180 = $L("this");
4916
+ var $L181 = $L("throw");
4917
+ var $L182 = $L('"""');
4918
+ var $L183 = $L("'''");
4919
+ var $L184 = $L("///");
4920
+ var $L185 = $L("```");
4921
+ var $L186 = $L("try");
4922
+ var $L187 = $L("typeof");
4923
+ var $L188 = $L("unless");
4924
+ var $L189 = $L("until");
4925
+ var $L190 = $L("using");
4926
+ var $L191 = $L("var");
4927
+ var $L192 = $L("void");
4928
+ var $L193 = $L("when");
4929
+ var $L194 = $L("while");
4930
+ var $L195 = $L("yield");
4931
+ var $L196 = $L("/>");
4932
+ var $L197 = $L("</");
4933
+ var $L198 = $L("<>");
4934
+ var $L199 = $L("</>");
4935
+ var $L200 = $L("<!--");
4936
+ var $L201 = $L("-->");
4937
+ var $L202 = $L("type");
4938
+ var $L203 = $L("enum");
4939
+ var $L204 = $L("interface");
4940
+ var $L205 = $L("global");
4941
+ var $L206 = $L("module");
4942
+ var $L207 = $L("namespace");
4943
+ var $L208 = $L("asserts");
4944
+ var $L209 = $L("keyof");
4945
+ var $L210 = $L("infer");
4946
+ var $L211 = $L("???");
4947
+ var $L212 = $L("[]");
4948
+ var $L213 = $L("civet");
4787
4949
  var $R0 = $R(new RegExp("(?=debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
4788
4950
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4789
4951
  var $R2 = $R(new RegExp("[0-9]", "suy"));
4790
- var $R3 = $R(new RegExp("[ \\t]", "suy"));
4791
- var $R4 = $R(new RegExp("(?=['\"`<])", "suy"));
4792
- var $R5 = $R(new RegExp("(?=[\\/?])", "suy"));
4793
- var $R6 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4794
- var $R7 = $R(new RegExp("[)}]", "suy"));
4795
- var $R8 = $R(new RegExp("[&]", "suy"));
4796
- var $R9 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
4797
- var $R10 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
4798
- var $R11 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
4799
- var $R12 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4800
- var $R13 = $R(new RegExp("(?=\\[)", "suy"));
4801
- var $R14 = $R(new RegExp("[!+-]", "suy"));
4802
- var $R15 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>+-])", "suy"));
4803
- var $R16 = $R(new RegExp("!\\^\\^?", "suy"));
4804
- var $R17 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
4805
- var $R18 = $R(new RegExp("[:.]", "suy"));
4806
- var $R19 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
4807
- var $R20 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
4808
- var $R21 = $R(new RegExp("(?=[\\s\\),])", "suy"));
4809
- var $R22 = $R(new RegExp('[^;"\\s]+', "suy"));
4810
- var $R23 = $R(new RegExp("(?=[0-9.])", "suy"));
4811
- var $R24 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
4812
- var $R25 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
4813
- var $R26 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
4814
- var $R27 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
4815
- var $R28 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
4816
- var $R29 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
4817
- var $R30 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
4818
- var $R31 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
4819
- var $R32 = $R(new RegExp("(?=[0-9])", "suy"));
4820
- var $R33 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
4821
- var $R34 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
4822
- var $R35 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
4823
- var $R36 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
4824
- var $R37 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
4825
- var $R38 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
4826
- var $R39 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
4827
- var $R40 = $R(new RegExp("(?:\\\\.)", "suy"));
4828
- var $R41 = $R(new RegExp("[\\s]+", "suy"));
4829
- var $R42 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
4830
- var $R43 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
4831
- var $R44 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
4832
- var $R45 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
4833
- var $R46 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4834
- var $R47 = $R(new RegExp("(?=[`'\"])", "suy"));
4835
- var $R48 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
4836
- var $R49 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
4837
- var $R50 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
4838
- var $R51 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
4839
- var $R52 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
4840
- var $R53 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
4841
- var $R54 = $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"));
4842
- var $R55 = $R(new RegExp("(?=\\/|#)", "suy"));
4843
- var $R56 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
4844
- var $R57 = $R(new RegExp(".", "suy"));
4845
- var $R58 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
4846
- var $R59 = $R(new RegExp("[^]*?###", "suy"));
4847
- var $R60 = $R(new RegExp("###(?!#)", "suy"));
4848
- var $R61 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
4849
- var $R62 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
4850
- var $R63 = $R(new RegExp("[ \\t]+", "suy"));
4851
- var $R64 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
4852
- var $R65 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
4853
- var $R66 = $R(new RegExp("['\u2019]s", "suy"));
4854
- var $R67 = $R(new RegExp("\\s", "suy"));
4855
- var $R68 = $R(new RegExp("(?=[<])", "suy"));
4856
- var $R69 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
4857
- var $R70 = $R(new RegExp("[\\s>]|\\/>", "suy"));
4858
- var $R71 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
4859
- var $R72 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
4860
- var $R73 = $R(new RegExp("[<>]", "suy"));
4861
- var $R74 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
4862
- var $R75 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
4863
- var $R76 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
4864
- var $R77 = $R(new RegExp("[+-]?", "suy"));
4865
- var $R78 = $R(new RegExp("[+-]", "suy"));
4866
- var $R79 = $R(new RegExp("#![^\\r\\n]*", "suy"));
4867
- var $R80 = $R(new RegExp("[\\t ]*", "suy"));
4868
- var $R81 = $R(new RegExp("[ \\t]*", "suy"));
4869
- var $R82 = $R(new RegExp("[\\s]*", "suy"));
4870
- var $R83 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
4871
- var $R84 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
4872
- var $R85 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
4873
- var $R86 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
4952
+ var $R3 = $R(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
4953
+ var $R4 = $R(new RegExp("[ \\t]", "suy"));
4954
+ var $R5 = $R(new RegExp("(?=['\"`<])", "suy"));
4955
+ var $R6 = $R(new RegExp("(?=[\\/?])", "suy"));
4956
+ var $R7 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4957
+ var $R8 = $R(new RegExp("[)}]", "suy"));
4958
+ var $R9 = $R(new RegExp("[&]", "suy"));
4959
+ var $R10 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
4960
+ var $R11 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
4961
+ var $R12 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
4962
+ var $R13 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4963
+ var $R14 = $R(new RegExp("(?=\\[)", "suy"));
4964
+ var $R15 = $R(new RegExp("[!+-]", "suy"));
4965
+ var $R16 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
4966
+ var $R17 = $R(new RegExp("!\\^\\^?", "suy"));
4967
+ var $R18 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
4968
+ var $R19 = $R(new RegExp("[:.]", "suy"));
4969
+ var $R20 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
4970
+ var $R21 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
4971
+ var $R22 = $R(new RegExp("(?=[\\s\\),])", "suy"));
4972
+ var $R23 = $R(new RegExp('[^;"\\s]+', "suy"));
4973
+ var $R24 = $R(new RegExp("(?=[0-9.])", "suy"));
4974
+ var $R25 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
4975
+ var $R26 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
4976
+ var $R27 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
4977
+ var $R28 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
4978
+ var $R29 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
4979
+ var $R30 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
4980
+ var $R31 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
4981
+ var $R32 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
4982
+ var $R33 = $R(new RegExp("(?=[0-9])", "suy"));
4983
+ var $R34 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
4984
+ var $R35 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
4985
+ var $R36 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
4986
+ var $R37 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
4987
+ var $R38 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
4988
+ var $R39 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
4989
+ var $R40 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
4990
+ var $R41 = $R(new RegExp("(?:\\\\.)", "suy"));
4991
+ var $R42 = $R(new RegExp("[\\s]+", "suy"));
4992
+ var $R43 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
4993
+ var $R44 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
4994
+ var $R45 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
4995
+ var $R46 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
4996
+ var $R47 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4997
+ var $R48 = $R(new RegExp("(?=[`'\"])", "suy"));
4998
+ var $R49 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
4999
+ var $R50 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
5000
+ var $R51 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
5001
+ var $R52 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
5002
+ var $R53 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
5003
+ var $R54 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
5004
+ var $R55 = $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"));
5005
+ var $R56 = $R(new RegExp("(?=\\/|#)", "suy"));
5006
+ var $R57 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
5007
+ var $R58 = $R(new RegExp(".", "suy"));
5008
+ var $R59 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
5009
+ var $R60 = $R(new RegExp("[^]*?###", "suy"));
5010
+ var $R61 = $R(new RegExp("###(?!#)", "suy"));
5011
+ var $R62 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
5012
+ var $R63 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
5013
+ var $R64 = $R(new RegExp("[ \\t]+", "suy"));
5014
+ var $R65 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
5015
+ var $R66 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
5016
+ var $R67 = $R(new RegExp("['\u2019]s", "suy"));
5017
+ var $R68 = $R(new RegExp("\\s", "suy"));
5018
+ var $R69 = $R(new RegExp("(?=[<])", "suy"));
5019
+ var $R70 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
5020
+ var $R71 = $R(new RegExp("[\\s>]|\\/>", "suy"));
5021
+ var $R72 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
5022
+ var $R73 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
5023
+ var $R74 = $R(new RegExp("[<>]", "suy"));
5024
+ var $R75 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
5025
+ var $R76 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
5026
+ var $R77 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
5027
+ var $R78 = $R(new RegExp("[+-]?", "suy"));
5028
+ var $R79 = $R(new RegExp("[+-]", "suy"));
5029
+ var $R80 = $R(new RegExp("(?=if|unless)", "suy"));
5030
+ var $R81 = $R(new RegExp("#![^\\r\\n]*", "suy"));
5031
+ var $R82 = $R(new RegExp("[\\t ]*", "suy"));
5032
+ var $R83 = $R(new RegExp("[ \\t]*", "suy"));
5033
+ var $R84 = $R(new RegExp("[\\s]*", "suy"));
5034
+ var $R85 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
5035
+ var $R86 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
5036
+ var $R87 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
5037
+ var $R88 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
4874
5038
  var Program$0 = $TS($S(Reset, Init, $E(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4875
5039
  var statements = $4;
4876
5040
  processProgram({
@@ -5290,13 +5454,28 @@ ${input.slice(result.pos)}
5290
5454
  return $EVENT_C(ctx, state, "UnaryWithoutParenthesizedAssignmentBody", UnaryWithoutParenthesizedAssignmentBody$$);
5291
5455
  }
5292
5456
  var UnaryPostfix$0 = QuestionMark;
5293
- var UnaryPostfix$1 = $T($P($S(__, $C(As, Satisfies), Type)), function(value) {
5457
+ var UnaryPostfix$1 = $T($P(TypePostfix), function(value) {
5294
5458
  return { "ts": true, "children": value };
5295
5459
  });
5296
5460
  var UnaryPostfix$$ = [UnaryPostfix$0, UnaryPostfix$1];
5297
5461
  function UnaryPostfix(ctx, state) {
5298
5462
  return $EVENT_C(ctx, state, "UnaryPostfix", UnaryPostfix$$);
5299
5463
  }
5464
+ var TypePostfix$0 = $TS($S(_, As, $E(ExclamationPoint), Type), function($skip, $loc, $0, $1, $2, $3, $4) {
5465
+ var ws = $1;
5466
+ var as = $2;
5467
+ var ex = $3;
5468
+ var type = $4;
5469
+ if (ex) {
5470
+ return [{ $loc: ex.$loc, token: " as unknown" }, ws, as, type];
5471
+ }
5472
+ return [ws, as, type];
5473
+ });
5474
+ var TypePostfix$1 = $S(_, Satisfies, Type);
5475
+ var TypePostfix$$ = [TypePostfix$0, TypePostfix$1];
5476
+ function TypePostfix(ctx, state) {
5477
+ return $EVENT_C(ctx, state, "TypePostfix", TypePostfix$$);
5478
+ }
5300
5479
  var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryWithoutParenthesizedAssignment), function($skip, $loc, $0, $1, $2) {
5301
5480
  return {
5302
5481
  type: "UpdateExpression",
@@ -5304,13 +5483,13 @@ ${input.slice(result.pos)}
5304
5483
  children: $0
5305
5484
  };
5306
5485
  });
5307
- var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E(UpdateExpressionSymbol)), function($skip, $loc, $0, $1, $2) {
5486
+ var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E($S(UpdateExpressionSymbol, $EXPECT($R3, "UpdateExpression /(?!\\p{ID_Start}|[_$0-9(\\[{])/")))), function($skip, $loc, $0, $1, $2) {
5308
5487
  if (!$2)
5309
5488
  return $1;
5310
5489
  return {
5311
5490
  type: "UpdateExpression",
5312
5491
  assigned: $1,
5313
- children: $0
5492
+ children: [$1, $2[0]]
5314
5493
  };
5315
5494
  });
5316
5495
  var UpdateExpression$$ = [UpdateExpression$0, UpdateExpression$1];
@@ -5320,8 +5499,12 @@ ${input.slice(result.pos)}
5320
5499
  var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L8, 'UpdateExpressionSymbol "++"'), $EXPECT($L9, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
5321
5500
  return { $loc, token: $1 };
5322
5501
  });
5502
+ var UpdateExpressionSymbol$1 = $TV($EXPECT($L10, 'UpdateExpressionSymbol "\u29FA"'), function($skip, $loc, $0, $1) {
5503
+ return { $loc, token: "++" };
5504
+ });
5505
+ var UpdateExpressionSymbol$$ = [UpdateExpressionSymbol$0, UpdateExpressionSymbol$1];
5323
5506
  function UpdateExpressionSymbol(ctx, state) {
5324
- return $EVENT(ctx, state, "UpdateExpressionSymbol", UpdateExpressionSymbol$0);
5507
+ return $EVENT_C(ctx, state, "UpdateExpressionSymbol", UpdateExpressionSymbol$$);
5325
5508
  }
5326
5509
  var AssignmentExpression$0 = PipelineExpression;
5327
5510
  var AssignmentExpression$1 = SingleLineAssignmentExpression;
@@ -5424,7 +5607,7 @@ ${input.slice(result.pos)}
5424
5607
  function ArrowFunction(ctx, state) {
5425
5608
  return $EVENT_C(ctx, state, "ArrowFunction", ArrowFunction$$);
5426
5609
  }
5427
- var FatArrow$0 = $TS($S($E(_), $C($EXPECT($L10, 'FatArrow "=>"'), $EXPECT($L11, 'FatArrow "\u21D2"'))), function($skip, $loc, $0, $1, $2) {
5610
+ var FatArrow$0 = $TS($S($E(_), $C($EXPECT($L11, 'FatArrow "=>"'), $EXPECT($L12, 'FatArrow "\u21D2"'))), function($skip, $loc, $0, $1, $2) {
5428
5611
  var ws = $1;
5429
5612
  if (!ws)
5430
5613
  return " =>";
@@ -5459,7 +5642,7 @@ ${input.slice(result.pos)}
5459
5642
  return $EVENT(ctx, state, "ConditionalExpression", ConditionalExpression$0);
5460
5643
  }
5461
5644
  var TernaryRest$0 = NestedTernaryRest;
5462
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($R3, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
5645
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($R4, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
5463
5646
  return $0.slice(2);
5464
5647
  });
5465
5648
  var TernaryRest$$ = [TernaryRest$0, TernaryRest$1];
@@ -5587,7 +5770,7 @@ ${input.slice(result.pos)}
5587
5770
  function ClassDeclaration(ctx, state) {
5588
5771
  return $EVENT(ctx, state, "ClassDeclaration", ClassDeclaration$0);
5589
5772
  }
5590
- var ClassExpression$0 = $S($E(Decorators), $E($S(Abstract, __)), Class, $N($EXPECT($L12, 'ClassExpression ":"')), $E(ClassBinding), $E(ClassHeritage), ClassBody);
5773
+ var ClassExpression$0 = $S($E(Decorators), $E($S(Abstract, __)), Class, $N($EXPECT($L13, 'ClassExpression ":"')), $E(ClassBinding), $E(ClassHeritage), ClassBody);
5591
5774
  function ClassExpression(ctx, state) {
5592
5775
  return $EVENT(ctx, state, "ClassExpression", ClassExpression$0);
5593
5776
  }
@@ -5607,27 +5790,67 @@ ${input.slice(result.pos)}
5607
5790
  function ExtendsClause(ctx, state) {
5608
5791
  return $EVENT(ctx, state, "ExtendsClause", ExtendsClause$0);
5609
5792
  }
5610
- var ExtendsToken$0 = $TS($S(Loc, __, ExtendsShorthand, $E($EXPECT($L13, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5793
+ var ExtendsToken$0 = $TS($S(Loc, $E(_), ExtendsShorthand, $E($EXPECT($L14, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5611
5794
  var l = $1;
5612
5795
  var ws = $2;
5613
5796
  var t = $3;
5614
- const children = [...ws, t];
5615
- if (!ws.length) {
5616
- children.unshift({ $loc: l.$loc, token: " " });
5617
- }
5618
- return { children };
5797
+ return {
5798
+ type: "Extends",
5799
+ children: [
5800
+ ws || { $loc: l.$loc, token: " " },
5801
+ t
5802
+ ]
5803
+ };
5804
+ });
5805
+ var ExtendsToken$1 = $TS($S($E(_), Extends), function($skip, $loc, $0, $1, $2) {
5806
+ return {
5807
+ type: "Extends",
5808
+ children: $0
5809
+ };
5619
5810
  });
5620
- var ExtendsToken$1 = $S(__, Extends);
5621
5811
  var ExtendsToken$$ = [ExtendsToken$0, ExtendsToken$1];
5622
5812
  function ExtendsToken(ctx, state) {
5623
5813
  return $EVENT_C(ctx, state, "ExtendsToken", ExtendsToken$$);
5624
5814
  }
5625
- var ExtendsShorthand$0 = $TV($EXPECT($L14, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
5815
+ var ExtendsShorthand$0 = $TV($EXPECT($L15, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
5626
5816
  return { $loc, token: "extends " };
5627
5817
  });
5628
5818
  function ExtendsShorthand(ctx, state) {
5629
5819
  return $EVENT(ctx, state, "ExtendsShorthand", ExtendsShorthand$0);
5630
5820
  }
5821
+ var NotExtendsToken$0 = $TS($S(Loc, $E(_), OmittedNegation, ExtendsShorthand, $E($EXPECT($L14, 'NotExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5822
+ var l = $1;
5823
+ var ws1 = $2;
5824
+ var ws2 = $3;
5825
+ var t = $4;
5826
+ const ws = ws1 && ws2 ? [ws1, ws2] : ws1 || ws2 || { $loc: l.$loc, token: " " };
5827
+ return {
5828
+ type: "Extends",
5829
+ negated: true,
5830
+ children: [ws, t]
5831
+ };
5832
+ });
5833
+ var NotExtendsToken$1 = $TS($S($E(_), OmittedNegation, Extends), function($skip, $loc, $0, $1, $2, $3) {
5834
+ return {
5835
+ type: "Extends",
5836
+ negated: true,
5837
+ children: $0
5838
+ };
5839
+ });
5840
+ var NotExtendsToken$$ = [NotExtendsToken$0, NotExtendsToken$1];
5841
+ function NotExtendsToken(ctx, state) {
5842
+ return $EVENT_C(ctx, state, "NotExtendsToken", NotExtendsToken$$);
5843
+ }
5844
+ var OmittedNegation$0 = $T($S(ExclamationPoint), function(value) {
5845
+ return "";
5846
+ });
5847
+ var OmittedNegation$1 = $T($S(Not, $E($EXPECT($L14, 'OmittedNegation " "')), $E(_)), function(value) {
5848
+ return value[2];
5849
+ });
5850
+ var OmittedNegation$$ = [OmittedNegation$0, OmittedNegation$1];
5851
+ function OmittedNegation(ctx, state) {
5852
+ return $EVENT_C(ctx, state, "OmittedNegation", OmittedNegation$$);
5853
+ }
5631
5854
  var ExtendsTarget$0 = $TS($S(LeftHandSideExpressionWithObjectApplicationForbidden, $E(TypeArguments)), function($skip, $loc, $0, $1, $2) {
5632
5855
  var exp = $1;
5633
5856
  var ta = $2;
@@ -5648,7 +5871,7 @@ ${input.slice(result.pos)}
5648
5871
  function ImplementsClause(ctx, state) {
5649
5872
  return $EVENT(ctx, state, "ImplementsClause", ImplementsClause$0);
5650
5873
  }
5651
- var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L13, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5874
+ var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L14, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5652
5875
  var l = $1;
5653
5876
  var ws = $2;
5654
5877
  var token = $3;
@@ -5658,7 +5881,7 @@ ${input.slice(result.pos)}
5658
5881
  }
5659
5882
  return { children };
5660
5883
  });
5661
- var ImplementsToken$1 = $TS($S(__, $EXPECT($L15, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
5884
+ var ImplementsToken$1 = $TS($S(__, $EXPECT($L16, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
5662
5885
  $2 = { $loc, token: $2 };
5663
5886
  return [$1, $2];
5664
5887
  });
@@ -5666,7 +5889,7 @@ ${input.slice(result.pos)}
5666
5889
  function ImplementsToken(ctx, state) {
5667
5890
  return $EVENT_C(ctx, state, "ImplementsToken", ImplementsToken$$);
5668
5891
  }
5669
- var ImplementsShorthand$0 = $TV($EXPECT($L16, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
5892
+ var ImplementsShorthand$0 = $TV($EXPECT($L17, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
5670
5893
  return { $loc, token: "implements " };
5671
5894
  });
5672
5895
  function ImplementsShorthand(ctx, state) {
@@ -5878,7 +6101,7 @@ ${input.slice(result.pos)}
5878
6101
  function AtThis(ctx, state) {
5879
6102
  return $EVENT(ctx, state, "AtThis", AtThis$0);
5880
6103
  }
5881
- var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L7, 'LeftHandSideExpression "."'), $EXPECT($L12, 'LeftHandSideExpression ":"'))), __)), CallExpression, $E(TypeArguments));
6104
+ var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L7, 'LeftHandSideExpression "."'), $EXPECT($L13, 'LeftHandSideExpression ":"'))), __)), CallExpression, $E(TypeArguments));
5882
6105
  var LeftHandSideExpression$1 = CallExpression;
5883
6106
  var LeftHandSideExpression$$ = [LeftHandSideExpression$0, LeftHandSideExpression$1];
5884
6107
  function LeftHandSideExpression(ctx, state) {
@@ -5891,7 +6114,7 @@ ${input.slice(result.pos)}
5891
6114
  children: [$1, ...$2, ...rest.flat()]
5892
6115
  });
5893
6116
  });
5894
- var CallExpression$1 = $TS($S($EXPECT($L17, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
6117
+ var CallExpression$1 = $TS($S($EXPECT($L18, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
5895
6118
  var rest = $3;
5896
6119
  return processCallMemberExpression({
5897
6120
  type: "CallExpression",
@@ -5916,7 +6139,7 @@ ${input.slice(result.pos)}
5916
6139
  return $EVENT_C(ctx, state, "CallExpression", CallExpression$$);
5917
6140
  }
5918
6141
  var CallExpressionRest$0 = MemberExpressionRest;
5919
- var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
6142
+ var CallExpressionRest$1 = $TS($S($EXPECT($R5, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
5920
6143
  var args = $2;
5921
6144
  var literal = $3;
5922
6145
  if (literal.type === "StringLiteral") {
@@ -5935,7 +6158,7 @@ ${input.slice(result.pos)}
5935
6158
  function CallExpressionRest(ctx, state) {
5936
6159
  return $EVENT_C(ctx, state, "CallExpressionRest", CallExpressionRest$$);
5937
6160
  }
5938
- var OptionalShorthand$0 = $TS($S($EXPECT($R5, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
6161
+ var OptionalShorthand$0 = $TS($S($EXPECT($R6, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
5939
6162
  return {
5940
6163
  type: "Optional",
5941
6164
  children: $0
@@ -5952,7 +6175,7 @@ ${input.slice(result.pos)}
5952
6175
  function OptionalDot(ctx, state) {
5953
6176
  return $EVENT_C(ctx, state, "OptionalDot", OptionalDot$$);
5954
6177
  }
5955
- var NonNullAssertion$0 = $T($S($EXPECT($L18, 'NonNullAssertion "!"'), $N($EXPECT($L19, 'NonNullAssertion "^"'))), function(value) {
6178
+ var NonNullAssertion$0 = $T($S($EXPECT($L19, 'NonNullAssertion "!"'), $N($EXPECT($L20, 'NonNullAssertion "^"'))), function(value) {
5956
6179
  return { "type": "NonNullAssertion", "ts": true, "children": value[0] };
5957
6180
  });
5958
6181
  function NonNullAssertion(ctx, state) {
@@ -5988,7 +6211,7 @@ ${input.slice(result.pos)}
5988
6211
  function MemberBase(ctx, state) {
5989
6212
  return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
5990
6213
  }
5991
- var MemberExpressionRest$0 = $TS($S($EXPECT($R6, "MemberExpressionRest /(?=[\\/\\[{?.!@'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
6214
+ var MemberExpressionRest$0 = $TS($S($EXPECT($R7, "MemberExpressionRest /(?=[\\/\\[{?.!@'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
5992
6215
  var comments = $2;
5993
6216
  var body = $3;
5994
6217
  if (Array.isArray(body))
@@ -6143,7 +6366,7 @@ ${input.slice(result.pos)}
6143
6366
  ]
6144
6367
  };
6145
6368
  });
6146
- var PropertyAccess$1 = $TS($S(AccessStart, $EXPECT($L20, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6369
+ var PropertyAccess$1 = $TS($S(AccessStart, $EXPECT($L21, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6147
6370
  var dot = $1;
6148
6371
  var neg = $2;
6149
6372
  var num = $3;
@@ -6219,7 +6442,7 @@ ${input.slice(result.pos)}
6219
6442
  return $EVENT_C(ctx, state, "SuperProperty", SuperProperty$$);
6220
6443
  }
6221
6444
  var MetaProperty$0 = $S(New, Dot, Target);
6222
- var MetaProperty$1 = $TS($S($EXPECT($L21, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6445
+ var MetaProperty$1 = $TS($S($EXPECT($L22, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6223
6446
  return { $loc, token: $1 };
6224
6447
  });
6225
6448
  var MetaProperty$2 = ReturnValue;
@@ -6227,7 +6450,7 @@ ${input.slice(result.pos)}
6227
6450
  function MetaProperty(ctx, state) {
6228
6451
  return $EVENT_C(ctx, state, "MetaProperty", MetaProperty$$);
6229
6452
  }
6230
- var ReturnValue$0 = $TV($C($S($EXPECT($L22, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6453
+ var ReturnValue$0 = $TV($C($S($EXPECT($L23, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6231
6454
  return { type: "ReturnValue", children: [$1[0]] };
6232
6455
  });
6233
6456
  function ReturnValue(ctx, state) {
@@ -6429,7 +6652,7 @@ ${input.slice(result.pos)}
6429
6652
  return $EVENT(ctx, state, "ParameterElement", ParameterElement$0);
6430
6653
  }
6431
6654
  var ParameterElementDelimiter$0 = $S($E(_), Comma);
6432
- var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R7, "ParameterElementDelimiter /[)}]/"))));
6655
+ var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R8, "ParameterElementDelimiter /[)}]/"))));
6433
6656
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
6434
6657
  return value[1];
6435
6658
  });
@@ -6740,7 +6963,7 @@ ${input.slice(result.pos)}
6740
6963
  children: [ws, binding]
6741
6964
  };
6742
6965
  });
6743
- var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L23, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
6966
+ var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L24, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
6744
6967
  return {
6745
6968
  children: [{
6746
6969
  type: "ElisionElement",
@@ -6864,7 +7087,7 @@ ${input.slice(result.pos)}
6864
7087
  block
6865
7088
  };
6866
7089
  });
6867
- var FunctionExpression$1 = $TV($EXPECT($L24, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
7090
+ var FunctionExpression$1 = $TV($EXPECT($L25, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
6868
7091
  const ref = makeRef("$"), body = [ref];
6869
7092
  const parameters = {
6870
7093
  type: "Parameters",
@@ -6879,7 +7102,7 @@ ${input.slice(result.pos)}
6879
7102
  signature: {
6880
7103
  modifier: {}
6881
7104
  },
6882
- children: [ref, " => ", body],
7105
+ children: [parameters, " => ", body],
6883
7106
  ref,
6884
7107
  body,
6885
7108
  ampersandBlock: true,
@@ -6887,8 +7110,38 @@ ${input.slice(result.pos)}
6887
7110
  parameters
6888
7111
  };
6889
7112
  });
6890
- var FunctionExpression$2 = AmpersandFunctionExpression;
6891
- var FunctionExpression$3 = $TS($S(Identifier, __, ConstAssignment, $Q(_), ThinArrowFunction), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7113
+ var FunctionExpression$2 = $TS($S(OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3) {
7114
+ var open = $1;
7115
+ var op = $2;
7116
+ var close = $3;
7117
+ if (op.special && op.call && !op.negated)
7118
+ return op.call;
7119
+ const refA = makeRef("a"), refB = makeRef("b"), body = processBinaryOpExpression([refA, [
7120
+ [[], op, [], refB]
7121
+ // BinaryOpRHS
7122
+ ]]);
7123
+ const parameters = {
7124
+ type: "Parameters",
7125
+ children: ["(", refA, ",", refB, ")"],
7126
+ names: []
7127
+ };
7128
+ const block = {
7129
+ expressions: [body]
7130
+ };
7131
+ return {
7132
+ type: "ArrowFunction",
7133
+ signature: {
7134
+ modifier: {}
7135
+ },
7136
+ children: [open, parameters, " => ", body, close],
7137
+ body,
7138
+ ampersandBlock: true,
7139
+ block,
7140
+ parameters
7141
+ };
7142
+ });
7143
+ var FunctionExpression$3 = AmpersandFunctionExpression;
7144
+ var FunctionExpression$4 = $TS($S(Identifier, __, ConstAssignment, $Q(_), ThinArrowFunction), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6892
7145
  var id = $1;
6893
7146
  var ws = $4;
6894
7147
  var fn = $5;
@@ -6903,7 +7156,7 @@ ${input.slice(result.pos)}
6903
7156
  ]
6904
7157
  };
6905
7158
  });
6906
- var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3];
7159
+ var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3, FunctionExpression$4];
6907
7160
  function FunctionExpression(ctx, state) {
6908
7161
  return $EVENT_C(ctx, state, "FunctionExpression", FunctionExpression$$);
6909
7162
  }
@@ -7034,7 +7287,7 @@ ${input.slice(result.pos)}
7034
7287
  function AmpersandBlockRHS(ctx, state) {
7035
7288
  return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
7036
7289
  }
7037
- var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
7290
+ var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R9, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
7038
7291
  var callExpRest = $1;
7039
7292
  var unaryPostfix = $2;
7040
7293
  var assign = $3;
@@ -7124,7 +7377,7 @@ ${input.slice(result.pos)}
7124
7377
  function ThinArrowFunction(ctx, state) {
7125
7378
  return $EVENT(ctx, state, "ThinArrowFunction", ThinArrowFunction$0);
7126
7379
  }
7127
- var Arrow$0 = $TV($C($EXPECT($L25, 'Arrow "->"'), $EXPECT($L26, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7380
+ var Arrow$0 = $TV($C($EXPECT($L26, 'Arrow "->"'), $EXPECT($L27, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7128
7381
  return { $loc, token: "->" };
7129
7382
  });
7130
7383
  function Arrow(ctx, state) {
@@ -7410,7 +7663,7 @@ ${input.slice(result.pos)}
7410
7663
  }
7411
7664
  var BracedContent$0 = NestedBlockStatements;
7412
7665
  var BracedContent$1 = SingleLineStatements;
7413
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L27, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
7666
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L28, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
7414
7667
  const expressions = [];
7415
7668
  return {
7416
7669
  type: "BlockStatement",
@@ -7460,7 +7713,7 @@ ${input.slice(result.pos)}
7460
7713
  function BlockStatementPart(ctx, state) {
7461
7714
  return $EVENT(ctx, state, "BlockStatementPart", BlockStatementPart$0);
7462
7715
  }
7463
- var Literal$0 = $TS($S($EXPECT($R9, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
7716
+ var Literal$0 = $TS($S($EXPECT($R10, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
7464
7717
  var literal = $2;
7465
7718
  return {
7466
7719
  type: "Literal",
@@ -7480,13 +7733,13 @@ ${input.slice(result.pos)}
7480
7733
  function LiteralContent(ctx, state) {
7481
7734
  return $EVENT_C(ctx, state, "LiteralContent", LiteralContent$$);
7482
7735
  }
7483
- var NullLiteral$0 = $TS($S($EXPECT($L28, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7736
+ var NullLiteral$0 = $TS($S($EXPECT($L29, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7484
7737
  return { $loc, token: $1 };
7485
7738
  });
7486
7739
  function NullLiteral(ctx, state) {
7487
7740
  return $EVENT(ctx, state, "NullLiteral", NullLiteral$0);
7488
7741
  }
7489
- var BooleanLiteral$0 = $T($S($EXPECT($R10, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
7742
+ var BooleanLiteral$0 = $T($S($EXPECT($R11, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
7490
7743
  return value[1];
7491
7744
  });
7492
7745
  function BooleanLiteral(ctx, state) {
@@ -7495,31 +7748,31 @@ ${input.slice(result.pos)}
7495
7748
  var _BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
7496
7749
  return value[1];
7497
7750
  });
7498
- var _BooleanLiteral$1 = $TS($S($C($EXPECT($L29, '_BooleanLiteral "true"'), $EXPECT($L30, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7751
+ var _BooleanLiteral$1 = $TS($S($C($EXPECT($L30, '_BooleanLiteral "true"'), $EXPECT($L31, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7499
7752
  return { $loc, token: $1 };
7500
7753
  });
7501
7754
  var _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
7502
7755
  function _BooleanLiteral(ctx, state) {
7503
7756
  return $EVENT_C(ctx, state, "_BooleanLiteral", _BooleanLiteral$$);
7504
7757
  }
7505
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L31, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L32, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7758
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L32, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L33, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7506
7759
  return { $loc, token: "true" };
7507
7760
  });
7508
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L33, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L34, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7761
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L34, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L35, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7509
7762
  return { $loc, token: "false" };
7510
7763
  });
7511
7764
  var CoffeeScriptBooleanLiteral$$ = [CoffeeScriptBooleanLiteral$0, CoffeeScriptBooleanLiteral$1];
7512
7765
  function CoffeeScriptBooleanLiteral(ctx, state) {
7513
7766
  return $EVENT_C(ctx, state, "CoffeeScriptBooleanLiteral", CoffeeScriptBooleanLiteral$$);
7514
7767
  }
7515
- var Identifier$0 = $T($S($EXPECT($R11, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
7768
+ var Identifier$0 = $T($S($EXPECT($R12, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
7516
7769
  var id = value[2];
7517
7770
  return id;
7518
7771
  });
7519
7772
  function Identifier(ctx, state) {
7520
7773
  return $EVENT(ctx, state, "Identifier", Identifier$0);
7521
7774
  }
7522
- var IdentifierName$0 = $TR($EXPECT($R12, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7775
+ var IdentifierName$0 = $TR($EXPECT($R13, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7523
7776
  return {
7524
7777
  type: "Identifier",
7525
7778
  name: $0,
@@ -7537,11 +7790,11 @@ ${input.slice(result.pos)}
7537
7790
  function IdentifierReference(ctx, state) {
7538
7791
  return $EVENT(ctx, state, "IdentifierReference", IdentifierReference$0);
7539
7792
  }
7540
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L35, 'UpcomingAssignment ">"')))));
7793
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L36, 'UpcomingAssignment ">"')))));
7541
7794
  function UpcomingAssignment(ctx, state) {
7542
7795
  return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
7543
7796
  }
7544
- var ArrayLiteral$0 = $T($S($EXPECT($R13, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
7797
+ var ArrayLiteral$0 = $T($S($EXPECT($R14, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
7545
7798
  return value[1];
7546
7799
  });
7547
7800
  function ArrayLiteral(ctx, state) {
@@ -7695,7 +7948,7 @@ ${input.slice(result.pos)}
7695
7948
  return $EVENT(ctx, state, "NestedElement", NestedElement$0);
7696
7949
  }
7697
7950
  var ArrayElementDelimiter$0 = $S(__, Comma);
7698
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L36, 'ArrayElementDelimiter "]"')));
7951
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L37, 'ArrayElementDelimiter "]"')));
7699
7952
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
7700
7953
  return value[1];
7701
7954
  });
@@ -7925,7 +8178,7 @@ ${input.slice(result.pos)}
7925
8178
  return $EVENT_C(ctx, state, "ImplicitInlineObjectPropertyDelimiter", ImplicitInlineObjectPropertyDelimiter$$);
7926
8179
  }
7927
8180
  var ObjectPropertyDelimiter$0 = $S($E(_), Comma);
7928
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L27, 'ObjectPropertyDelimiter "}"')));
8181
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L28, 'ObjectPropertyDelimiter "}"')));
7929
8182
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
7930
8183
  return value[1];
7931
8184
  });
@@ -7941,7 +8194,7 @@ ${input.slice(result.pos)}
7941
8194
  children: [ws, ...prop.children]
7942
8195
  };
7943
8196
  });
7944
- var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R14, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
8197
+ var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R15, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
7945
8198
  var ws = $1;
7946
8199
  var toggle = $2;
7947
8200
  var id = $3;
@@ -8108,7 +8361,7 @@ ${input.slice(result.pos)}
8108
8361
  implicit: true
8109
8362
  };
8110
8363
  });
8111
- var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L20, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
8364
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L21, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
8112
8365
  const expression = [$2, $3];
8113
8366
  return {
8114
8367
  type: "ComputedPropertyName",
@@ -8368,11 +8621,16 @@ ${input.slice(result.pos)}
8368
8621
  }
8369
8622
  var AssignmentOp$0 = $TS($S(AssignmentOpSymbol, $E(_)), function($skip, $loc, $0, $1, $2) {
8370
8623
  if ($2?.length) {
8624
+ if (typeof $1 !== "string") {
8625
+ return { ...$1, children: [...$1.children, $2] };
8626
+ }
8371
8627
  return {
8372
8628
  token: $1,
8373
8629
  children: [$1, ...$2]
8374
8630
  };
8375
8631
  }
8632
+ if (typeof $1 !== "string")
8633
+ return $1;
8376
8634
  return { $loc, token: $1 };
8377
8635
  });
8378
8636
  function AssignmentOp(ctx, state) {
@@ -8403,38 +8661,46 @@ ${input.slice(result.pos)}
8403
8661
  function OperatorAssignmentOp(ctx, state) {
8404
8662
  return $EVENT_C(ctx, state, "OperatorAssignmentOp", OperatorAssignmentOp$$);
8405
8663
  }
8406
- var AssignmentOpSymbol$0 = $EXPECT($L37, 'AssignmentOpSymbol "**="');
8407
- var AssignmentOpSymbol$1 = $EXPECT($L38, 'AssignmentOpSymbol "*="');
8408
- var AssignmentOpSymbol$2 = $EXPECT($L39, 'AssignmentOpSymbol "/="');
8409
- var AssignmentOpSymbol$3 = $EXPECT($L40, 'AssignmentOpSymbol "%="');
8410
- var AssignmentOpSymbol$4 = $EXPECT($L41, 'AssignmentOpSymbol "+="');
8411
- var AssignmentOpSymbol$5 = $EXPECT($L42, 'AssignmentOpSymbol "-="');
8412
- var AssignmentOpSymbol$6 = $EXPECT($L43, 'AssignmentOpSymbol "<<="');
8413
- var AssignmentOpSymbol$7 = $EXPECT($L44, 'AssignmentOpSymbol ">>>="');
8414
- var AssignmentOpSymbol$8 = $EXPECT($L45, 'AssignmentOpSymbol ">>="');
8415
- var AssignmentOpSymbol$9 = $EXPECT($L46, 'AssignmentOpSymbol "&&="');
8416
- var AssignmentOpSymbol$10 = $EXPECT($L47, 'AssignmentOpSymbol "&="');
8417
- var AssignmentOpSymbol$11 = $EXPECT($L48, 'AssignmentOpSymbol "^="');
8418
- var AssignmentOpSymbol$12 = $EXPECT($L49, 'AssignmentOpSymbol "||="');
8419
- var AssignmentOpSymbol$13 = $EXPECT($L50, 'AssignmentOpSymbol "|="');
8420
- var AssignmentOpSymbol$14 = $EXPECT($L51, 'AssignmentOpSymbol "??="');
8421
- var AssignmentOpSymbol$15 = $T($EXPECT($L52, 'AssignmentOpSymbol "?="'), function(value) {
8664
+ var AssignmentOpSymbol$0 = $EXPECT($L38, 'AssignmentOpSymbol "**="');
8665
+ var AssignmentOpSymbol$1 = $EXPECT($L39, 'AssignmentOpSymbol "*="');
8666
+ var AssignmentOpSymbol$2 = $EXPECT($L40, 'AssignmentOpSymbol "/="');
8667
+ var AssignmentOpSymbol$3 = $EXPECT($L41, 'AssignmentOpSymbol "%="');
8668
+ var AssignmentOpSymbol$4 = $TS($S($C($EXPECT($L8, 'AssignmentOpSymbol "++"'), $EXPECT($L10, 'AssignmentOpSymbol "\u29FA"')), Equals), function($skip, $loc, $0, $1, $2) {
8669
+ return {
8670
+ special: true,
8671
+ call: module.getRef("concatAssign"),
8672
+ omitLhs: true,
8673
+ children: [$2]
8674
+ };
8675
+ });
8676
+ var AssignmentOpSymbol$5 = $EXPECT($L42, 'AssignmentOpSymbol "+="');
8677
+ var AssignmentOpSymbol$6 = $EXPECT($L43, 'AssignmentOpSymbol "-="');
8678
+ var AssignmentOpSymbol$7 = $EXPECT($L44, 'AssignmentOpSymbol "<<="');
8679
+ var AssignmentOpSymbol$8 = $EXPECT($L45, 'AssignmentOpSymbol ">>>="');
8680
+ var AssignmentOpSymbol$9 = $EXPECT($L46, 'AssignmentOpSymbol ">>="');
8681
+ var AssignmentOpSymbol$10 = $EXPECT($L47, 'AssignmentOpSymbol "&&="');
8682
+ var AssignmentOpSymbol$11 = $EXPECT($L48, 'AssignmentOpSymbol "&="');
8683
+ var AssignmentOpSymbol$12 = $EXPECT($L49, 'AssignmentOpSymbol "^="');
8684
+ var AssignmentOpSymbol$13 = $EXPECT($L50, 'AssignmentOpSymbol "||="');
8685
+ var AssignmentOpSymbol$14 = $EXPECT($L51, 'AssignmentOpSymbol "|="');
8686
+ var AssignmentOpSymbol$15 = $EXPECT($L52, 'AssignmentOpSymbol "??="');
8687
+ var AssignmentOpSymbol$16 = $T($EXPECT($L53, 'AssignmentOpSymbol "?="'), function(value) {
8422
8688
  return "??=";
8423
8689
  });
8424
- var AssignmentOpSymbol$16 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
8690
+ var AssignmentOpSymbol$17 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
8425
8691
  return value[0];
8426
8692
  });
8427
- var AssignmentOpSymbol$17 = $T($S(CoffeeWordAssignmentOp), function(value) {
8693
+ var AssignmentOpSymbol$18 = $T($S(CoffeeWordAssignmentOp), function(value) {
8428
8694
  return value[0];
8429
8695
  });
8430
- var AssignmentOpSymbol$$ = [AssignmentOpSymbol$0, AssignmentOpSymbol$1, AssignmentOpSymbol$2, AssignmentOpSymbol$3, AssignmentOpSymbol$4, AssignmentOpSymbol$5, AssignmentOpSymbol$6, AssignmentOpSymbol$7, AssignmentOpSymbol$8, AssignmentOpSymbol$9, AssignmentOpSymbol$10, AssignmentOpSymbol$11, AssignmentOpSymbol$12, AssignmentOpSymbol$13, AssignmentOpSymbol$14, AssignmentOpSymbol$15, AssignmentOpSymbol$16, AssignmentOpSymbol$17];
8696
+ var AssignmentOpSymbol$$ = [AssignmentOpSymbol$0, AssignmentOpSymbol$1, AssignmentOpSymbol$2, AssignmentOpSymbol$3, AssignmentOpSymbol$4, AssignmentOpSymbol$5, AssignmentOpSymbol$6, AssignmentOpSymbol$7, AssignmentOpSymbol$8, AssignmentOpSymbol$9, AssignmentOpSymbol$10, AssignmentOpSymbol$11, AssignmentOpSymbol$12, AssignmentOpSymbol$13, AssignmentOpSymbol$14, AssignmentOpSymbol$15, AssignmentOpSymbol$16, AssignmentOpSymbol$17, AssignmentOpSymbol$18];
8431
8697
  function AssignmentOpSymbol(ctx, state) {
8432
8698
  return $EVENT_C(ctx, state, "AssignmentOpSymbol", AssignmentOpSymbol$$);
8433
8699
  }
8434
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L53, 'CoffeeWordAssignmentOp "and="'), function(value) {
8700
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L54, 'CoffeeWordAssignmentOp "and="'), function(value) {
8435
8701
  return "&&=";
8436
8702
  });
8437
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L54, 'CoffeeWordAssignmentOp "or="'), function(value) {
8703
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L55, 'CoffeeWordAssignmentOp "or="'), function(value) {
8438
8704
  return "||=";
8439
8705
  });
8440
8706
  var CoffeeWordAssignmentOp$$ = [CoffeeWordAssignmentOp$0, CoffeeWordAssignmentOp$1];
@@ -8468,7 +8734,7 @@ ${input.slice(result.pos)}
8468
8734
  function IdentifierBinaryOp(ctx, state) {
8469
8735
  return $EVENT(ctx, state, "IdentifierBinaryOp", IdentifierBinaryOp$0);
8470
8736
  }
8471
- var BinaryOp$0 = $T($S($EXPECT($R15, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>+-])/"), _BinaryOp), function(value) {
8737
+ var BinaryOp$0 = $T($S($EXPECT($R16, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
8472
8738
  var op = value[1];
8473
8739
  return op;
8474
8740
  });
@@ -8503,27 +8769,33 @@ ${input.slice(result.pos)}
8503
8769
  function _BinaryOp(ctx, state) {
8504
8770
  return $EVENT_C(ctx, state, "_BinaryOp", _BinaryOp$$);
8505
8771
  }
8506
- var BinaryOpSymbol$0 = $EXPECT($L55, 'BinaryOpSymbol "**"');
8507
- var BinaryOpSymbol$1 = $EXPECT($L56, 'BinaryOpSymbol "*"');
8508
- var BinaryOpSymbol$2 = $EXPECT($L57, 'BinaryOpSymbol "/"');
8509
- var BinaryOpSymbol$3 = $TV($EXPECT($L58, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
8772
+ var BinaryOpSymbol$0 = $EXPECT($L56, 'BinaryOpSymbol "**"');
8773
+ var BinaryOpSymbol$1 = $EXPECT($L57, 'BinaryOpSymbol "*"');
8774
+ var BinaryOpSymbol$2 = $EXPECT($L58, 'BinaryOpSymbol "/"');
8775
+ var BinaryOpSymbol$3 = $TV($EXPECT($L59, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
8510
8776
  return {
8511
8777
  call: module.getRef("modulo"),
8512
8778
  special: true
8513
8779
  };
8514
8780
  });
8515
- var BinaryOpSymbol$4 = $EXPECT($L59, 'BinaryOpSymbol "%"');
8516
- var BinaryOpSymbol$5 = $EXPECT($L60, 'BinaryOpSymbol "+"');
8517
- var BinaryOpSymbol$6 = $EXPECT($L20, 'BinaryOpSymbol "-"');
8518
- var BinaryOpSymbol$7 = $EXPECT($L61, 'BinaryOpSymbol "<="');
8519
- var BinaryOpSymbol$8 = $T($EXPECT($L62, 'BinaryOpSymbol "\u2264"'), function(value) {
8781
+ var BinaryOpSymbol$4 = $EXPECT($L60, 'BinaryOpSymbol "%"');
8782
+ var BinaryOpSymbol$5 = $TV($C($EXPECT($L8, 'BinaryOpSymbol "++"'), $EXPECT($L10, 'BinaryOpSymbol "\u29FA"')), function($skip, $loc, $0, $1) {
8783
+ return {
8784
+ method: "concat",
8785
+ special: true
8786
+ };
8787
+ });
8788
+ var BinaryOpSymbol$6 = $EXPECT($L61, 'BinaryOpSymbol "+"');
8789
+ var BinaryOpSymbol$7 = $EXPECT($L21, 'BinaryOpSymbol "-"');
8790
+ var BinaryOpSymbol$8 = $EXPECT($L62, 'BinaryOpSymbol "<="');
8791
+ var BinaryOpSymbol$9 = $T($EXPECT($L63, 'BinaryOpSymbol "\u2264"'), function(value) {
8520
8792
  return "<=";
8521
8793
  });
8522
- var BinaryOpSymbol$9 = $EXPECT($L63, 'BinaryOpSymbol ">="');
8523
- var BinaryOpSymbol$10 = $T($EXPECT($L64, 'BinaryOpSymbol "\u2265"'), function(value) {
8794
+ var BinaryOpSymbol$10 = $EXPECT($L64, 'BinaryOpSymbol ">="');
8795
+ var BinaryOpSymbol$11 = $T($EXPECT($L65, 'BinaryOpSymbol "\u2265"'), function(value) {
8524
8796
  return ">=";
8525
8797
  });
8526
- var BinaryOpSymbol$11 = $TV($EXPECT($L65, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
8798
+ var BinaryOpSymbol$12 = $TV($EXPECT($L66, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
8527
8799
  return {
8528
8800
  $loc,
8529
8801
  token: "instanceof",
@@ -8531,7 +8803,7 @@ ${input.slice(result.pos)}
8531
8803
  special: true
8532
8804
  };
8533
8805
  });
8534
- var BinaryOpSymbol$12 = $TV($EXPECT($L66, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
8806
+ var BinaryOpSymbol$13 = $TV($EXPECT($L67, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
8535
8807
  return {
8536
8808
  $loc,
8537
8809
  token: "instanceof",
@@ -8540,74 +8812,74 @@ ${input.slice(result.pos)}
8540
8812
  negated: true
8541
8813
  };
8542
8814
  });
8543
- var BinaryOpSymbol$13 = $EXPECT($L67, 'BinaryOpSymbol "<<"');
8544
- var BinaryOpSymbol$14 = $T($EXPECT($L68, 'BinaryOpSymbol "\xAB"'), function(value) {
8815
+ var BinaryOpSymbol$14 = $EXPECT($L68, 'BinaryOpSymbol "<<"');
8816
+ var BinaryOpSymbol$15 = $T($EXPECT($L69, 'BinaryOpSymbol "\xAB"'), function(value) {
8545
8817
  return "<<";
8546
8818
  });
8547
- var BinaryOpSymbol$15 = $EXPECT($L14, 'BinaryOpSymbol "<"');
8548
- var BinaryOpSymbol$16 = $EXPECT($L69, 'BinaryOpSymbol ">>>"');
8549
- var BinaryOpSymbol$17 = $T($EXPECT($L70, 'BinaryOpSymbol "\u22D9"'), function(value) {
8819
+ var BinaryOpSymbol$16 = $EXPECT($L15, 'BinaryOpSymbol "<"');
8820
+ var BinaryOpSymbol$17 = $EXPECT($L70, 'BinaryOpSymbol ">>>"');
8821
+ var BinaryOpSymbol$18 = $T($EXPECT($L71, 'BinaryOpSymbol "\u22D9"'), function(value) {
8550
8822
  return ">>>";
8551
8823
  });
8552
- var BinaryOpSymbol$18 = $EXPECT($L71, 'BinaryOpSymbol ">>"');
8553
- var BinaryOpSymbol$19 = $T($EXPECT($L72, 'BinaryOpSymbol "\xBB"'), function(value) {
8824
+ var BinaryOpSymbol$19 = $EXPECT($L72, 'BinaryOpSymbol ">>"');
8825
+ var BinaryOpSymbol$20 = $T($EXPECT($L73, 'BinaryOpSymbol "\xBB"'), function(value) {
8554
8826
  return ">>";
8555
8827
  });
8556
- var BinaryOpSymbol$20 = $EXPECT($L35, 'BinaryOpSymbol ">"');
8557
- var BinaryOpSymbol$21 = $EXPECT($L73, 'BinaryOpSymbol "!=="');
8558
- var BinaryOpSymbol$22 = $T($EXPECT($L74, 'BinaryOpSymbol "\u2262"'), function(value) {
8828
+ var BinaryOpSymbol$21 = $EXPECT($L36, 'BinaryOpSymbol ">"');
8829
+ var BinaryOpSymbol$22 = $EXPECT($L74, 'BinaryOpSymbol "!=="');
8830
+ var BinaryOpSymbol$23 = $T($EXPECT($L75, 'BinaryOpSymbol "\u2262"'), function(value) {
8559
8831
  return "!==";
8560
8832
  });
8561
- var BinaryOpSymbol$23 = $TV($C($EXPECT($L75, 'BinaryOpSymbol "!="'), $EXPECT($L76, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
8833
+ var BinaryOpSymbol$24 = $TV($C($EXPECT($L76, 'BinaryOpSymbol "!="'), $EXPECT($L77, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
8562
8834
  if (module.config.coffeeEq)
8563
8835
  return "!==";
8564
8836
  return "!=";
8565
8837
  });
8566
- var BinaryOpSymbol$24 = $TS($S($EXPECT($L77, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8838
+ var BinaryOpSymbol$25 = $TS($S($EXPECT($L78, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8567
8839
  if (module.config.coffeeIsnt)
8568
8840
  return "!==";
8569
8841
  return $skip;
8570
8842
  });
8571
- var BinaryOpSymbol$25 = $EXPECT($L78, 'BinaryOpSymbol "==="');
8572
- var BinaryOpSymbol$26 = $T($C($EXPECT($L79, 'BinaryOpSymbol "\u2263"'), $EXPECT($L80, 'BinaryOpSymbol "\u2A76"')), function(value) {
8843
+ var BinaryOpSymbol$26 = $EXPECT($L79, 'BinaryOpSymbol "==="');
8844
+ var BinaryOpSymbol$27 = $T($C($EXPECT($L80, 'BinaryOpSymbol "\u2263"'), $EXPECT($L81, 'BinaryOpSymbol "\u2A76"')), function(value) {
8573
8845
  return "===";
8574
8846
  });
8575
- var BinaryOpSymbol$27 = $TV($C($EXPECT($L81, 'BinaryOpSymbol "=="'), $EXPECT($L82, 'BinaryOpSymbol "\u2261"'), $EXPECT($L83, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
8847
+ var BinaryOpSymbol$28 = $TV($C($EXPECT($L82, 'BinaryOpSymbol "=="'), $EXPECT($L83, 'BinaryOpSymbol "\u2261"'), $EXPECT($L84, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
8576
8848
  if (module.config.coffeeEq)
8577
8849
  return "===";
8578
8850
  return "==";
8579
8851
  });
8580
- var BinaryOpSymbol$28 = $T($S($EXPECT($L84, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
8852
+ var BinaryOpSymbol$29 = $T($S($EXPECT($L85, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
8581
8853
  return "&&";
8582
8854
  });
8583
- var BinaryOpSymbol$29 = $EXPECT($L85, 'BinaryOpSymbol "&&"');
8584
- var BinaryOpSymbol$30 = $T($S($EXPECT($L86, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
8855
+ var BinaryOpSymbol$30 = $EXPECT($L86, 'BinaryOpSymbol "&&"');
8856
+ var BinaryOpSymbol$31 = $T($S($EXPECT($L87, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
8585
8857
  return "||";
8586
8858
  });
8587
- var BinaryOpSymbol$31 = $EXPECT($L87, 'BinaryOpSymbol "||"');
8588
- var BinaryOpSymbol$32 = $T($EXPECT($L88, 'BinaryOpSymbol "\u2016"'), function(value) {
8859
+ var BinaryOpSymbol$32 = $EXPECT($L88, 'BinaryOpSymbol "||"');
8860
+ var BinaryOpSymbol$33 = $T($EXPECT($L89, 'BinaryOpSymbol "\u2016"'), function(value) {
8589
8861
  return "||";
8590
8862
  });
8591
- var BinaryOpSymbol$33 = $TV($C($EXPECT($L89, 'BinaryOpSymbol "^^"'), $S($EXPECT($L90, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8863
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($L90, 'BinaryOpSymbol "^^"'), $S($EXPECT($L91, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8592
8864
  return {
8593
8865
  call: module.getRef("xor"),
8594
8866
  special: true
8595
8867
  };
8596
8868
  });
8597
- var BinaryOpSymbol$34 = $TV($C($EXPECT($R16, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L91, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8869
+ var BinaryOpSymbol$35 = $TV($C($EXPECT($R17, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L92, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8598
8870
  return {
8599
8871
  call: module.getRef("xnor"),
8600
8872
  special: true
8601
8873
  };
8602
8874
  });
8603
- var BinaryOpSymbol$35 = $EXPECT($L92, 'BinaryOpSymbol "??"');
8604
- var BinaryOpSymbol$36 = $T($EXPECT($L93, 'BinaryOpSymbol "\u2047"'), function(value) {
8875
+ var BinaryOpSymbol$36 = $EXPECT($L93, 'BinaryOpSymbol "??"');
8876
+ var BinaryOpSymbol$37 = $T($EXPECT($L94, 'BinaryOpSymbol "\u2047"'), function(value) {
8605
8877
  return "??";
8606
8878
  });
8607
- var BinaryOpSymbol$37 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
8879
+ var BinaryOpSymbol$38 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
8608
8880
  return "??";
8609
8881
  });
8610
- var BinaryOpSymbol$38 = $TS($S($EXPECT($L94, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8882
+ var BinaryOpSymbol$39 = $TS($S($EXPECT($L95, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8611
8883
  return {
8612
8884
  $loc,
8613
8885
  token: $1,
@@ -8616,15 +8888,15 @@ ${input.slice(result.pos)}
8616
8888
  // for typeof shorthand
8617
8889
  };
8618
8890
  });
8619
- var BinaryOpSymbol$39 = $T($S(CoffeeOfEnabled, CoffeeOfOp), function(value) {
8891
+ var BinaryOpSymbol$40 = $T($S(CoffeeOfEnabled, CoffeeOfOp), function(value) {
8620
8892
  var op = value[1];
8621
8893
  return op;
8622
8894
  });
8623
- var BinaryOpSymbol$40 = $TS($S(Not, __, NotOp), function($skip, $loc, $0, $1, $2, $3) {
8895
+ var BinaryOpSymbol$41 = $TS($S(Not, __, NotOp), function($skip, $loc, $0, $1, $2, $3) {
8624
8896
  var op = $3;
8625
8897
  return { ...op, $loc };
8626
8898
  });
8627
- var BinaryOpSymbol$41 = $TV($C($S(Is, __, In), $EXPECT($L95, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
8899
+ var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L96, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
8628
8900
  return {
8629
8901
  method: "includes",
8630
8902
  relational: true,
@@ -8632,14 +8904,14 @@ ${input.slice(result.pos)}
8632
8904
  special: true
8633
8905
  };
8634
8906
  });
8635
- var BinaryOpSymbol$42 = $TV($EXPECT($L96, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
8907
+ var BinaryOpSymbol$43 = $TV($EXPECT($L97, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
8636
8908
  return {
8637
8909
  method: "includes",
8638
8910
  relational: true,
8639
8911
  special: true
8640
8912
  };
8641
8913
  });
8642
- var BinaryOpSymbol$43 = $TV($EXPECT($L97, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
8914
+ var BinaryOpSymbol$44 = $TV($EXPECT($L98, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
8643
8915
  return {
8644
8916
  method: "includes",
8645
8917
  relational: true,
@@ -8647,7 +8919,7 @@ ${input.slice(result.pos)}
8647
8919
  negated: true
8648
8920
  };
8649
8921
  });
8650
- var BinaryOpSymbol$44 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L98, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
8922
+ var BinaryOpSymbol$45 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L99, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
8651
8923
  return {
8652
8924
  method: "includes",
8653
8925
  relational: true,
@@ -8656,7 +8928,7 @@ ${input.slice(result.pos)}
8656
8928
  negated: true
8657
8929
  };
8658
8930
  });
8659
- var BinaryOpSymbol$45 = $TS($S($N(CoffeeNotEnabled), Is, __, Not), function($skip, $loc, $0, $1, $2, $3, $4) {
8931
+ var BinaryOpSymbol$46 = $TS($S($N(CoffeeNotEnabled), Is, __, Not), function($skip, $loc, $0, $1, $2, $3, $4) {
8660
8932
  if (module.config.objectIs) {
8661
8933
  return {
8662
8934
  call: module.getRef("is"),
@@ -8668,7 +8940,7 @@ ${input.slice(result.pos)}
8668
8940
  }
8669
8941
  return "!==";
8670
8942
  });
8671
- var BinaryOpSymbol$46 = $TS($S(Is), function($skip, $loc, $0, $1) {
8943
+ var BinaryOpSymbol$47 = $TS($S(Is), function($skip, $loc, $0, $1) {
8672
8944
  if (module.config.objectIs) {
8673
8945
  return {
8674
8946
  call: module.getRef("is"),
@@ -8679,11 +8951,11 @@ ${input.slice(result.pos)}
8679
8951
  }
8680
8952
  return "===";
8681
8953
  });
8682
- var BinaryOpSymbol$47 = In;
8683
- var BinaryOpSymbol$48 = $EXPECT($L99, 'BinaryOpSymbol "&"');
8684
- var BinaryOpSymbol$49 = $EXPECT($L19, 'BinaryOpSymbol "^"');
8685
- var BinaryOpSymbol$50 = $EXPECT($L100, 'BinaryOpSymbol "|"');
8686
- var BinaryOpSymbol$$ = [BinaryOpSymbol$0, BinaryOpSymbol$1, BinaryOpSymbol$2, BinaryOpSymbol$3, BinaryOpSymbol$4, BinaryOpSymbol$5, BinaryOpSymbol$6, BinaryOpSymbol$7, BinaryOpSymbol$8, BinaryOpSymbol$9, BinaryOpSymbol$10, BinaryOpSymbol$11, BinaryOpSymbol$12, BinaryOpSymbol$13, BinaryOpSymbol$14, BinaryOpSymbol$15, BinaryOpSymbol$16, BinaryOpSymbol$17, BinaryOpSymbol$18, BinaryOpSymbol$19, BinaryOpSymbol$20, BinaryOpSymbol$21, BinaryOpSymbol$22, BinaryOpSymbol$23, BinaryOpSymbol$24, BinaryOpSymbol$25, BinaryOpSymbol$26, BinaryOpSymbol$27, BinaryOpSymbol$28, BinaryOpSymbol$29, BinaryOpSymbol$30, BinaryOpSymbol$31, BinaryOpSymbol$32, BinaryOpSymbol$33, BinaryOpSymbol$34, BinaryOpSymbol$35, BinaryOpSymbol$36, BinaryOpSymbol$37, BinaryOpSymbol$38, BinaryOpSymbol$39, BinaryOpSymbol$40, BinaryOpSymbol$41, BinaryOpSymbol$42, BinaryOpSymbol$43, BinaryOpSymbol$44, BinaryOpSymbol$45, BinaryOpSymbol$46, BinaryOpSymbol$47, BinaryOpSymbol$48, BinaryOpSymbol$49, BinaryOpSymbol$50];
8954
+ var BinaryOpSymbol$48 = In;
8955
+ var BinaryOpSymbol$49 = $EXPECT($L100, 'BinaryOpSymbol "&"');
8956
+ var BinaryOpSymbol$50 = $EXPECT($L20, 'BinaryOpSymbol "^"');
8957
+ var BinaryOpSymbol$51 = $EXPECT($L101, 'BinaryOpSymbol "|"');
8958
+ var BinaryOpSymbol$$ = [BinaryOpSymbol$0, BinaryOpSymbol$1, BinaryOpSymbol$2, BinaryOpSymbol$3, BinaryOpSymbol$4, BinaryOpSymbol$5, BinaryOpSymbol$6, BinaryOpSymbol$7, BinaryOpSymbol$8, BinaryOpSymbol$9, BinaryOpSymbol$10, BinaryOpSymbol$11, BinaryOpSymbol$12, BinaryOpSymbol$13, BinaryOpSymbol$14, BinaryOpSymbol$15, BinaryOpSymbol$16, BinaryOpSymbol$17, BinaryOpSymbol$18, BinaryOpSymbol$19, BinaryOpSymbol$20, BinaryOpSymbol$21, BinaryOpSymbol$22, BinaryOpSymbol$23, BinaryOpSymbol$24, BinaryOpSymbol$25, BinaryOpSymbol$26, BinaryOpSymbol$27, BinaryOpSymbol$28, BinaryOpSymbol$29, BinaryOpSymbol$30, BinaryOpSymbol$31, BinaryOpSymbol$32, BinaryOpSymbol$33, BinaryOpSymbol$34, BinaryOpSymbol$35, BinaryOpSymbol$36, BinaryOpSymbol$37, BinaryOpSymbol$38, BinaryOpSymbol$39, BinaryOpSymbol$40, BinaryOpSymbol$41, BinaryOpSymbol$42, BinaryOpSymbol$43, BinaryOpSymbol$44, BinaryOpSymbol$45, BinaryOpSymbol$46, BinaryOpSymbol$47, BinaryOpSymbol$48, BinaryOpSymbol$49, BinaryOpSymbol$50, BinaryOpSymbol$51];
8687
8959
  function BinaryOpSymbol(ctx, state) {
8688
8960
  return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
8689
8961
  }
@@ -8720,7 +8992,7 @@ ${input.slice(result.pos)}
8720
8992
  function CoffeeOfOp(ctx, state) {
8721
8993
  return $EVENT_C(ctx, state, "CoffeeOfOp", CoffeeOfOp$$);
8722
8994
  }
8723
- var NotOp$0 = $TS($S($EXPECT($L94, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8995
+ var NotOp$0 = $TS($S($EXPECT($L95, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8724
8996
  return {
8725
8997
  $loc,
8726
8998
  token: "instanceof",
@@ -8741,24 +9013,24 @@ ${input.slice(result.pos)}
8741
9013
  function NotOp(ctx, state) {
8742
9014
  return $EVENT_C(ctx, state, "NotOp", NotOp$$);
8743
9015
  }
8744
- var Xor$0 = $EXPECT($L89, 'Xor "^^"');
8745
- var Xor$1 = $S($EXPECT($L90, 'Xor "xor"'), NonIdContinue);
9016
+ var Xor$0 = $EXPECT($L90, 'Xor "^^"');
9017
+ var Xor$1 = $S($EXPECT($L91, 'Xor "xor"'), NonIdContinue);
8746
9018
  var Xor$$ = [Xor$0, Xor$1];
8747
9019
  function Xor(ctx, state) {
8748
9020
  return $EVENT_C(ctx, state, "Xor", Xor$$);
8749
9021
  }
8750
- var Xnor$0 = $R$0($EXPECT($R16, "Xnor /!\\^\\^?/"));
8751
- var Xnor$1 = $EXPECT($L91, 'Xnor "xnor"');
9022
+ var Xnor$0 = $R$0($EXPECT($R17, "Xnor /!\\^\\^?/"));
9023
+ var Xnor$1 = $EXPECT($L92, 'Xnor "xnor"');
8752
9024
  var Xnor$$ = [Xnor$0, Xnor$1];
8753
9025
  function Xnor(ctx, state) {
8754
9026
  return $EVENT_C(ctx, state, "Xnor", Xnor$$);
8755
9027
  }
8756
- var UnaryOp$0 = $TR($EXPECT($R17, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9028
+ var UnaryOp$0 = $TR($EXPECT($R18, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8757
9029
  return { $loc, token: $0 };
8758
9030
  });
8759
9031
  var UnaryOp$1 = AwaitOp;
8760
- var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($R$0($EXPECT($R18, "UnaryOp /[:.]/"))), $E(_));
8761
- var UnaryOp$3 = $T($S(Not, $N($EXPECT($R18, "UnaryOp /[:.]/")), $E($EXPECT($L13, 'UnaryOp " "')), $E(_)), function(value) {
9032
+ var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($R$0($EXPECT($R19, "UnaryOp /[:.]/"))), $E(_));
9033
+ var UnaryOp$3 = $T($S(Not, $N($EXPECT($R19, "UnaryOp /[:.]/")), $E($EXPECT($L14, 'UnaryOp " "')), $E(_)), function(value) {
8762
9034
  return [value[0], value[3]];
8763
9035
  });
8764
9036
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -8853,7 +9125,7 @@ ${input.slice(result.pos)}
8853
9125
  function NonPipelinePostfixedExpression(ctx, state) {
8854
9126
  return $EVENT(ctx, state, "NonPipelinePostfixedExpression", NonPipelinePostfixedExpression$0);
8855
9127
  }
8856
- var PostfixStatement$0 = $T($S($EXPECT($R19, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
9128
+ var PostfixStatement$0 = $T($S($EXPECT($R20, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
8857
9129
  return value[1];
8858
9130
  });
8859
9131
  function PostfixStatement(ctx, state) {
@@ -8896,7 +9168,7 @@ ${input.slice(result.pos)}
8896
9168
  function NoCommaStatement(ctx, state) {
8897
9169
  return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
8898
9170
  }
8899
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L101, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
9171
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L102, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
8900
9172
  return { type: "EmptyStatement", children: $1 || [] };
8901
9173
  });
8902
9174
  function EmptyStatement(ctx, state) {
@@ -8927,7 +9199,7 @@ ${input.slice(result.pos)}
8927
9199
  var w = $3;
8928
9200
  return [id, colon, w];
8929
9201
  });
8930
- var Label$1 = $S($EXPECT($L102, 'Label "$:"'), Whitespace);
9202
+ var Label$1 = $S($EXPECT($L103, 'Label "$:"'), Whitespace);
8931
9203
  var Label$$ = [Label$0, Label$1];
8932
9204
  function Label(ctx, state) {
8933
9205
  return $EVENT_C(ctx, state, "Label", Label$$);
@@ -9100,7 +9372,7 @@ ${input.slice(result.pos)}
9100
9372
  function BlockExpressionPart(ctx, state) {
9101
9373
  return $EVENT(ctx, state, "BlockExpressionPart", BlockExpressionPart$0);
9102
9374
  }
9103
- var IterationStatement$0 = $T($S($EXPECT($R20, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
9375
+ var IterationStatement$0 = $T($S($EXPECT($R21, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
9104
9376
  return value[1];
9105
9377
  });
9106
9378
  function IterationStatement(ctx, state) {
@@ -9453,7 +9725,7 @@ ${input.slice(result.pos)}
9453
9725
  names: binding.names
9454
9726
  };
9455
9727
  });
9456
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R21, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
9728
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R22, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
9457
9729
  var c = $1;
9458
9730
  var binding = $2;
9459
9731
  return {
@@ -9679,7 +9951,7 @@ ${input.slice(result.pos)}
9679
9951
  function IgnoreColon(ctx, state) {
9680
9952
  return $EVENT(ctx, state, "IgnoreColon", IgnoreColon$0);
9681
9953
  }
9682
- var TryStatement$0 = $TS($S(Try, $N($EXPECT($L12, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9954
+ var TryStatement$0 = $TS($S(Try, $N($EXPECT($L13, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9683
9955
  var t = $1;
9684
9956
  var b = $3;
9685
9957
  var c = $4;
@@ -10015,7 +10287,7 @@ ${input.slice(result.pos)}
10015
10287
  };
10016
10288
  });
10017
10289
  var KeywordStatement$2 = DebuggerStatement;
10018
- var KeywordStatement$3 = $T($S(Return, $N($C($EXPECT($L12, 'KeywordStatement ":"'), $EXPECT($L7, 'KeywordStatement "."'), AfterReturnShorthand)), $E(MaybeNestedExpression)), function(value) {
10290
+ var KeywordStatement$3 = $T($S(Return, $N($C($EXPECT($L13, 'KeywordStatement ":"'), $EXPECT($L7, 'KeywordStatement "."'), AfterReturnShorthand)), $E(MaybeNestedExpression)), function(value) {
10019
10291
  var expression = value[2];
10020
10292
  return { "type": "ReturnStatement", "expression": expression, "children": value };
10021
10293
  });
@@ -10036,19 +10308,19 @@ ${input.slice(result.pos)}
10036
10308
  function ThrowStatement(ctx, state) {
10037
10309
  return $EVENT(ctx, state, "ThrowStatement", ThrowStatement$0);
10038
10310
  }
10039
- var Break$0 = $TS($S($EXPECT($L103, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10311
+ var Break$0 = $TS($S($EXPECT($L104, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10040
10312
  return { $loc, token: $1 };
10041
10313
  });
10042
10314
  function Break(ctx, state) {
10043
10315
  return $EVENT(ctx, state, "Break", Break$0);
10044
10316
  }
10045
- var Continue$0 = $TS($S($EXPECT($L104, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10317
+ var Continue$0 = $TS($S($EXPECT($L105, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10046
10318
  return { $loc, token: $1 };
10047
10319
  });
10048
10320
  function Continue(ctx, state) {
10049
10321
  return $EVENT(ctx, state, "Continue", Continue$0);
10050
10322
  }
10051
- var Debugger$0 = $TS($S($EXPECT($L105, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10323
+ var Debugger$0 = $TS($S($EXPECT($L106, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10052
10324
  return { $loc, token: $1 };
10053
10325
  });
10054
10326
  function Debugger(ctx, state) {
@@ -10169,7 +10441,7 @@ ${input.slice(result.pos)}
10169
10441
  function FromClause(ctx, state) {
10170
10442
  return $EVENT(ctx, state, "FromClause", FromClause$0);
10171
10443
  }
10172
- var ImportAssertion$0 = $S($E(_), $C($EXPECT($L106, 'ImportAssertion "with"'), $EXPECT($L107, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10444
+ var ImportAssertion$0 = $S($E(_), $C($EXPECT($L107, 'ImportAssertion "with"'), $EXPECT($L108, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10173
10445
  function ImportAssertion(ctx, state) {
10174
10446
  return $EVENT(ctx, state, "ImportAssertion", ImportAssertion$0);
10175
10447
  }
@@ -10217,7 +10489,7 @@ ${input.slice(result.pos)}
10217
10489
  return $EVENT_C(ctx, state, "ImportSpecifier", ImportSpecifier$$);
10218
10490
  }
10219
10491
  var ImportAsToken$0 = $S(__, As);
10220
- var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L13, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
10492
+ var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L14, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
10221
10493
  var l = $1;
10222
10494
  var ws = $2;
10223
10495
  var c = $3;
@@ -10257,7 +10529,7 @@ ${input.slice(result.pos)}
10257
10529
  function UnprocessedModuleSpecifier(ctx, state) {
10258
10530
  return $EVENT_C(ctx, state, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
10259
10531
  }
10260
- var UnquotedSpecifier$0 = $TV($EXPECT($R22, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
10532
+ var UnquotedSpecifier$0 = $TV($EXPECT($R23, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
10261
10533
  var spec = $0;
10262
10534
  return { $loc, token: `"${spec}"` };
10263
10535
  });
@@ -10389,13 +10661,13 @@ ${input.slice(result.pos)}
10389
10661
  function LexicalDeclaration(ctx, state) {
10390
10662
  return $EVENT_C(ctx, state, "LexicalDeclaration", LexicalDeclaration$$);
10391
10663
  }
10392
- var ConstAssignment$0 = $TV($C($EXPECT($L108, 'ConstAssignment ":="'), $EXPECT($L109, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
10664
+ var ConstAssignment$0 = $TV($C($EXPECT($L109, 'ConstAssignment ":="'), $EXPECT($L110, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
10393
10665
  return { $loc, token: "=" };
10394
10666
  });
10395
10667
  function ConstAssignment(ctx, state) {
10396
10668
  return $EVENT(ctx, state, "ConstAssignment", ConstAssignment$0);
10397
10669
  }
10398
- var LetAssignment$0 = $TV($EXPECT($L110, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
10670
+ var LetAssignment$0 = $TV($EXPECT($L111, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
10399
10671
  return { $loc, token: "=" };
10400
10672
  });
10401
10673
  function LetAssignment(ctx, state) {
@@ -10463,7 +10735,7 @@ ${input.slice(result.pos)}
10463
10735
  function VariableDeclarationList(ctx, state) {
10464
10736
  return $EVENT(ctx, state, "VariableDeclarationList", VariableDeclarationList$0);
10465
10737
  }
10466
- var NumericLiteral$0 = $TS($S($EXPECT($R23, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
10738
+ var NumericLiteral$0 = $TS($S($EXPECT($R24, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
10467
10739
  var token = $2;
10468
10740
  return { type: "NumericLiteral", $loc, token };
10469
10741
  });
@@ -10479,36 +10751,36 @@ ${input.slice(result.pos)}
10479
10751
  function NumericLiteralKind(ctx, state) {
10480
10752
  return $EVENT_C(ctx, state, "NumericLiteralKind", NumericLiteralKind$$);
10481
10753
  }
10482
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R24, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
10754
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R25, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
10483
10755
  function DecimalBigIntegerLiteral(ctx, state) {
10484
10756
  return $EVENT(ctx, state, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
10485
10757
  }
10486
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R25, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
10758
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R26, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
10487
10759
  return $1 + ".";
10488
10760
  });
10489
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R26, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
10490
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R27, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
10761
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R27, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
10762
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R28, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
10491
10763
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
10492
10764
  function DecimalLiteral(ctx, state) {
10493
10765
  return $EVENT_C(ctx, state, "DecimalLiteral", DecimalLiteral$$);
10494
10766
  }
10495
- var ExponentPart$0 = $R$0($EXPECT($R28, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
10767
+ var ExponentPart$0 = $R$0($EXPECT($R29, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
10496
10768
  function ExponentPart(ctx, state) {
10497
10769
  return $EVENT(ctx, state, "ExponentPart", ExponentPart$0);
10498
10770
  }
10499
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R29, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
10771
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R30, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
10500
10772
  function BinaryIntegerLiteral(ctx, state) {
10501
10773
  return $EVENT(ctx, state, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
10502
10774
  }
10503
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R30, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
10775
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R31, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
10504
10776
  function OctalIntegerLiteral(ctx, state) {
10505
10777
  return $EVENT(ctx, state, "OctalIntegerLiteral", OctalIntegerLiteral$0);
10506
10778
  }
10507
- var HexIntegerLiteral$0 = $R$0($EXPECT($R31, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
10779
+ var HexIntegerLiteral$0 = $R$0($EXPECT($R32, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
10508
10780
  function HexIntegerLiteral(ctx, state) {
10509
10781
  return $EVENT(ctx, state, "HexIntegerLiteral", HexIntegerLiteral$0);
10510
10782
  }
10511
- var IntegerLiteral$0 = $TS($S($EXPECT($R32, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
10783
+ var IntegerLiteral$0 = $TS($S($EXPECT($R33, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
10512
10784
  var token = $2;
10513
10785
  return { $loc, token };
10514
10786
  });
@@ -10524,7 +10796,7 @@ ${input.slice(result.pos)}
10524
10796
  function IntegerLiteralKind(ctx, state) {
10525
10797
  return $EVENT_C(ctx, state, "IntegerLiteralKind", IntegerLiteralKind$$);
10526
10798
  }
10527
- var DecimalIntegerLiteral$0 = $R$0($EXPECT($R33, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
10799
+ var DecimalIntegerLiteral$0 = $R$0($EXPECT($R34, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
10528
10800
  function DecimalIntegerLiteral(ctx, state) {
10529
10801
  return $EVENT(ctx, state, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
10530
10802
  }
@@ -10548,25 +10820,25 @@ ${input.slice(result.pos)}
10548
10820
  function StringLiteral(ctx, state) {
10549
10821
  return $EVENT_C(ctx, state, "StringLiteral", StringLiteral$$);
10550
10822
  }
10551
- var DoubleStringCharacters$0 = $TR($EXPECT($R34, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10823
+ var DoubleStringCharacters$0 = $TR($EXPECT($R35, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10552
10824
  return { $loc, token: $0 };
10553
10825
  });
10554
10826
  function DoubleStringCharacters(ctx, state) {
10555
10827
  return $EVENT(ctx, state, "DoubleStringCharacters", DoubleStringCharacters$0);
10556
10828
  }
10557
- var SingleStringCharacters$0 = $TR($EXPECT($R35, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10829
+ var SingleStringCharacters$0 = $TR($EXPECT($R36, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10558
10830
  return { $loc, token: $0 };
10559
10831
  });
10560
10832
  function SingleStringCharacters(ctx, state) {
10561
10833
  return $EVENT(ctx, state, "SingleStringCharacters", SingleStringCharacters$0);
10562
10834
  }
10563
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R36, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10835
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R37, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10564
10836
  return { $loc, token: $0 };
10565
10837
  });
10566
10838
  function TripleDoubleStringCharacters(ctx, state) {
10567
10839
  return $EVENT(ctx, state, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
10568
10840
  }
10569
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R37, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10841
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R38, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10570
10842
  return { $loc, token: $0 };
10571
10843
  });
10572
10844
  function TripleSingleStringCharacters(ctx, state) {
@@ -10585,14 +10857,14 @@ ${input.slice(result.pos)}
10585
10857
  function CoffeeInterpolatedDoubleQuotedString(ctx, state) {
10586
10858
  return $EVENT(ctx, state, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
10587
10859
  }
10588
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R38, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10860
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R39, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10589
10861
  return { $loc, token: $0 };
10590
10862
  });
10591
10863
  function CoffeeDoubleQuotedStringCharacters(ctx, state) {
10592
10864
  return $EVENT(ctx, state, "CoffeeDoubleQuotedStringCharacters", CoffeeDoubleQuotedStringCharacters$0);
10593
10865
  }
10594
10866
  var RegularExpressionLiteral$0 = HeregexLiteral;
10595
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L57, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L57, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10867
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L58, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L58, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10596
10868
  return { type: "RegularExpressionLiteral", $loc, token: $1 };
10597
10869
  });
10598
10870
  var RegularExpressionLiteral$$ = [RegularExpressionLiteral$0, RegularExpressionLiteral$1];
@@ -10605,7 +10877,7 @@ ${input.slice(result.pos)}
10605
10877
  function RegularExpressionClass(ctx, state) {
10606
10878
  return $EVENT(ctx, state, "RegularExpressionClass", RegularExpressionClass$0);
10607
10879
  }
10608
- var RegularExpressionClassCharacters$0 = $TR($EXPECT($R39, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10880
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R40, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10609
10881
  return { $loc, token: $0 };
10610
10882
  });
10611
10883
  function RegularExpressionClassCharacters(ctx, state) {
@@ -10659,7 +10931,7 @@ ${input.slice(result.pos)}
10659
10931
  var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
10660
10932
  return { "type": "Substitution", "children": value[0] };
10661
10933
  });
10662
- var HeregexPart$3 = $TR($EXPECT($R40, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10934
+ var HeregexPart$3 = $TR($EXPECT($R41, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10663
10935
  let token = $0;
10664
10936
  switch ($0[1]) {
10665
10937
  case "\n":
@@ -10677,13 +10949,13 @@ ${input.slice(result.pos)}
10677
10949
  var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
10678
10950
  return { $loc, token: "" };
10679
10951
  });
10680
- var HeregexPart$5 = $TR($EXPECT($R41, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10952
+ var HeregexPart$5 = $TR($EXPECT($R42, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10681
10953
  return { $loc, token: "" };
10682
10954
  });
10683
- var HeregexPart$6 = $TR($EXPECT($R42, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10955
+ var HeregexPart$6 = $TR($EXPECT($R43, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10684
10956
  return { $loc, token: "\\/" };
10685
10957
  });
10686
- var HeregexPart$7 = $TR($EXPECT($R43, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10958
+ var HeregexPart$7 = $TR($EXPECT($R44, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10687
10959
  return { $loc, token: $0 };
10688
10960
  });
10689
10961
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -10696,7 +10968,7 @@ ${input.slice(result.pos)}
10696
10968
  function HeregexComment(ctx, state) {
10697
10969
  return $EVENT_C(ctx, state, "HeregexComment", HeregexComment$$);
10698
10970
  }
10699
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R44, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
10971
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R45, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
10700
10972
  function RegularExpressionBody(ctx, state) {
10701
10973
  return $EVENT(ctx, state, "RegularExpressionBody", RegularExpressionBody$0);
10702
10974
  }
@@ -10706,15 +10978,15 @@ ${input.slice(result.pos)}
10706
10978
  function RegExpPart(ctx, state) {
10707
10979
  return $EVENT_C(ctx, state, "RegExpPart", RegExpPart$$);
10708
10980
  }
10709
- var RegExpCharacter$0 = $R$0($EXPECT($R45, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
10981
+ var RegExpCharacter$0 = $R$0($EXPECT($R46, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
10710
10982
  function RegExpCharacter(ctx, state) {
10711
10983
  return $EVENT(ctx, state, "RegExpCharacter", RegExpCharacter$0);
10712
10984
  }
10713
- var RegularExpressionFlags$0 = $R$0($EXPECT($R46, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
10985
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R47, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
10714
10986
  function RegularExpressionFlags(ctx, state) {
10715
10987
  return $EVENT(ctx, state, "RegularExpressionFlags", RegularExpressionFlags$0);
10716
10988
  }
10717
- var TemplateLiteral$0 = $T($S($EXPECT($R47, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
10989
+ var TemplateLiteral$0 = $T($S($EXPECT($R48, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
10718
10990
  return value[1];
10719
10991
  });
10720
10992
  function TemplateLiteral(ctx, state) {
@@ -10750,28 +11022,28 @@ ${input.slice(result.pos)}
10750
11022
  function TemplateSubstitution(ctx, state) {
10751
11023
  return $EVENT(ctx, state, "TemplateSubstitution", TemplateSubstitution$0);
10752
11024
  }
10753
- var TemplateCharacters$0 = $TR($EXPECT($R48, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11025
+ var TemplateCharacters$0 = $TR($EXPECT($R49, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10754
11026
  return { $loc, token: $0 };
10755
11027
  });
10756
11028
  function TemplateCharacters(ctx, state) {
10757
11029
  return $EVENT(ctx, state, "TemplateCharacters", TemplateCharacters$0);
10758
11030
  }
10759
- var TemplateBlockCharacters$0 = $TR($EXPECT($R49, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11031
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R50, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10760
11032
  return { $loc, token: $0 };
10761
11033
  });
10762
11034
  function TemplateBlockCharacters(ctx, state) {
10763
11035
  return $EVENT(ctx, state, "TemplateBlockCharacters", TemplateBlockCharacters$0);
10764
11036
  }
10765
- var ReservedWord$0 = $S($R$0($EXPECT($R50, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
10766
- var ReservedWord$1 = $S($R$0($EXPECT($R51, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
10767
- var ReservedWord$2 = $S($R$0($EXPECT($R52, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
10768
- var ReservedWord$3 = $S($R$0($EXPECT($R53, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
10769
- var ReservedWord$4 = $R$0($EXPECT($R54, "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})/"));
11037
+ var ReservedWord$0 = $S($R$0($EXPECT($R51, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
11038
+ var ReservedWord$1 = $S($R$0($EXPECT($R52, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
11039
+ var ReservedWord$2 = $S($R$0($EXPECT($R53, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
11040
+ var ReservedWord$3 = $S($R$0($EXPECT($R54, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
11041
+ var ReservedWord$4 = $R$0($EXPECT($R55, "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})/"));
10770
11042
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
10771
11043
  function ReservedWord(ctx, state) {
10772
11044
  return $EVENT_C(ctx, state, "ReservedWord", ReservedWord$$);
10773
11045
  }
10774
- var Comment$0 = $T($S($EXPECT($R55, "Comment /(?=\\/|#)/"), _Comment), function(value) {
11046
+ var Comment$0 = $T($S($EXPECT($R56, "Comment /(?=\\/|#)/"), _Comment), function(value) {
10775
11047
  return value[1];
10776
11048
  });
10777
11049
  function Comment(ctx, state) {
@@ -10789,7 +11061,7 @@ ${input.slice(result.pos)}
10789
11061
  function SingleLineComment(ctx, state) {
10790
11062
  return $EVENT_C(ctx, state, "SingleLineComment", SingleLineComment$$);
10791
11063
  }
10792
- var JSSingleLineComment$0 = $TR($EXPECT($R56, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11064
+ var JSSingleLineComment$0 = $TR($EXPECT($R57, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10793
11065
  return { type: "Comment", $loc, token: $0 };
10794
11066
  });
10795
11067
  function JSSingleLineComment(ctx, state) {
@@ -10801,30 +11073,30 @@ ${input.slice(result.pos)}
10801
11073
  function MultiLineComment(ctx, state) {
10802
11074
  return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
10803
11075
  }
10804
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L111, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L112, 'JSMultiLineComment "*/"')), $EXPECT($R57, "JSMultiLineComment /./"))), $EXPECT($L112, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11076
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L112, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L113, 'JSMultiLineComment "*/"')), $EXPECT($R58, "JSMultiLineComment /./"))), $EXPECT($L113, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
10805
11077
  return { type: "Comment", $loc, token: $1 };
10806
11078
  });
10807
11079
  function JSMultiLineComment(ctx, state) {
10808
11080
  return $EVENT(ctx, state, "JSMultiLineComment", JSMultiLineComment$0);
10809
11081
  }
10810
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R58, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11082
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R59, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10811
11083
  return { type: "Comment", $loc, token: `//${$1}` };
10812
11084
  });
10813
11085
  function CoffeeSingleLineComment(ctx, state) {
10814
11086
  return $EVENT(ctx, state, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
10815
11087
  }
10816
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R59, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
11088
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R60, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
10817
11089
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
10818
11090
  return { type: "Comment", $loc, token: `/*${$2}*/` };
10819
11091
  });
10820
11092
  function CoffeeMultiLineComment(ctx, state) {
10821
11093
  return $EVENT(ctx, state, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
10822
11094
  }
10823
- var CoffeeHereCommentStart$0 = $R$0($EXPECT($R60, "CoffeeHereCommentStart /###(?!#)/"));
11095
+ var CoffeeHereCommentStart$0 = $R$0($EXPECT($R61, "CoffeeHereCommentStart /###(?!#)/"));
10824
11096
  function CoffeeHereCommentStart(ctx, state) {
10825
11097
  return $EVENT(ctx, state, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
10826
11098
  }
10827
- var InlineComment$0 = $TR($EXPECT($R61, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11099
+ var InlineComment$0 = $TR($EXPECT($R62, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10828
11100
  return { $loc, token: $0 };
10829
11101
  });
10830
11102
  function InlineComment(ctx, state) {
@@ -10838,16 +11110,16 @@ ${input.slice(result.pos)}
10838
11110
  function TrailingComment(ctx, state) {
10839
11111
  return $EVENT(ctx, state, "TrailingComment", TrailingComment$0);
10840
11112
  }
10841
- var _$0 = $T($S($EXPECT($R62, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
11113
+ var _$0 = $T($S($EXPECT($R63, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
10842
11114
  return value[1];
10843
11115
  });
10844
11116
  function _(ctx, state) {
10845
11117
  return $EVENT(ctx, state, "_", _$0);
10846
11118
  }
10847
- var NonNewlineWhitespace$0 = $TR($EXPECT($R63, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11119
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R64, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10848
11120
  return { $loc, token: $0 };
10849
11121
  });
10850
- var NonNewlineWhitespace$1 = $T($S($EXPECT($L113, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
11122
+ var NonNewlineWhitespace$1 = $T($S($EXPECT($L114, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
10851
11123
  return " ";
10852
11124
  });
10853
11125
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
@@ -10861,7 +11133,7 @@ ${input.slice(result.pos)}
10861
11133
  function Trimmed_(ctx, state) {
10862
11134
  return $EVENT(ctx, state, "Trimmed_", Trimmed_$0);
10863
11135
  }
10864
- var __$0 = $T($S($EXPECT($R64, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
11136
+ var __$0 = $T($S($EXPECT($R65, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
10865
11137
  return value[1];
10866
11138
  });
10867
11139
  var __$1 = $EXPECT($L0, '__ ""');
@@ -10869,7 +11141,7 @@ ${input.slice(result.pos)}
10869
11141
  function __(ctx, state) {
10870
11142
  return $EVENT_C(ctx, state, "__", __$$);
10871
11143
  }
10872
- var Whitespace$0 = $TR($EXPECT($R41, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11144
+ var Whitespace$0 = $TR($EXPECT($R42, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10873
11145
  return { $loc, token: $0 };
10874
11146
  });
10875
11147
  function Whitespace(ctx, state) {
@@ -10893,7 +11165,7 @@ ${input.slice(result.pos)}
10893
11165
  }
10894
11166
  var StatementDelimiter$0 = $Y(EOS);
10895
11167
  var StatementDelimiter$1 = SemicolonDelimiter;
10896
- var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L27, 'StatementDelimiter "}"'), $EXPECT($L114, 'StatementDelimiter ")"'), $EXPECT($L36, 'StatementDelimiter "]"'))));
11168
+ var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L28, 'StatementDelimiter "}"'), $EXPECT($L115, 'StatementDelimiter ")"'), $EXPECT($L37, 'StatementDelimiter "]"'))));
10897
11169
  var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2];
10898
11170
  function StatementDelimiter(ctx, state) {
10899
11171
  return $EVENT_C(ctx, state, "StatementDelimiter", StatementDelimiter$$);
@@ -10907,7 +11179,7 @@ ${input.slice(result.pos)}
10907
11179
  function SemicolonDelimiter(ctx, state) {
10908
11180
  return $EVENT(ctx, state, "SemicolonDelimiter", SemicolonDelimiter$0);
10909
11181
  }
10910
- var NonIdContinue$0 = $R$0($EXPECT($R65, "NonIdContinue /(?!\\p{ID_Continue})/"));
11182
+ var NonIdContinue$0 = $R$0($EXPECT($R66, "NonIdContinue /(?!\\p{ID_Continue})/"));
10911
11183
  function NonIdContinue(ctx, state) {
10912
11184
  return $EVENT(ctx, state, "NonIdContinue", NonIdContinue$0);
10913
11185
  }
@@ -10917,151 +11189,151 @@ ${input.slice(result.pos)}
10917
11189
  function Loc(ctx, state) {
10918
11190
  return $EVENT(ctx, state, "Loc", Loc$0);
10919
11191
  }
10920
- var Abstract$0 = $TV($TEXT($S($EXPECT($L115, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L13, 'Abstract " "')))), function($skip, $loc, $0, $1) {
11192
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L116, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L14, 'Abstract " "')))), function($skip, $loc, $0, $1) {
10921
11193
  return { $loc, token: $1, ts: true };
10922
11194
  });
10923
11195
  function Abstract(ctx, state) {
10924
11196
  return $EVENT(ctx, state, "Abstract", Abstract$0);
10925
11197
  }
10926
- var Ampersand$0 = $TV($EXPECT($L99, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11198
+ var Ampersand$0 = $TV($EXPECT($L100, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
10927
11199
  return { $loc, token: $1 };
10928
11200
  });
10929
11201
  function Ampersand(ctx, state) {
10930
11202
  return $EVENT(ctx, state, "Ampersand", Ampersand$0);
10931
11203
  }
10932
- var As$0 = $TS($S($EXPECT($L116, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11204
+ var As$0 = $TS($S($EXPECT($L117, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10933
11205
  return { $loc, token: $1 };
10934
11206
  });
10935
11207
  function As(ctx, state) {
10936
11208
  return $EVENT(ctx, state, "As", As$0);
10937
11209
  }
10938
- var At$0 = $TV($EXPECT($L117, 'At "@"'), function($skip, $loc, $0, $1) {
11210
+ var At$0 = $TV($EXPECT($L118, 'At "@"'), function($skip, $loc, $0, $1) {
10939
11211
  return { $loc, token: $1 };
10940
11212
  });
10941
11213
  function At(ctx, state) {
10942
11214
  return $EVENT(ctx, state, "At", At$0);
10943
11215
  }
10944
- var AtAt$0 = $TV($EXPECT($L118, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
11216
+ var AtAt$0 = $TV($EXPECT($L119, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
10945
11217
  return { $loc, token: "@" };
10946
11218
  });
10947
11219
  function AtAt(ctx, state) {
10948
11220
  return $EVENT(ctx, state, "AtAt", AtAt$0);
10949
11221
  }
10950
- var Async$0 = $TS($S($EXPECT($L119, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11222
+ var Async$0 = $TS($S($EXPECT($L120, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10951
11223
  return { $loc, token: $1, type: "Async" };
10952
11224
  });
10953
11225
  function Async(ctx, state) {
10954
11226
  return $EVENT(ctx, state, "Async", Async$0);
10955
11227
  }
10956
- var Await$0 = $TS($S($EXPECT($L120, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11228
+ var Await$0 = $TS($S($EXPECT($L121, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10957
11229
  return { $loc, token: $1, type: "Await" };
10958
11230
  });
10959
11231
  function Await(ctx, state) {
10960
11232
  return $EVENT(ctx, state, "Await", Await$0);
10961
11233
  }
10962
- var Backtick$0 = $TV($EXPECT($L121, 'Backtick "`"'), function($skip, $loc, $0, $1) {
11234
+ var Backtick$0 = $TV($EXPECT($L122, 'Backtick "`"'), function($skip, $loc, $0, $1) {
10963
11235
  return { $loc, token: $1 };
10964
11236
  });
10965
11237
  function Backtick(ctx, state) {
10966
11238
  return $EVENT(ctx, state, "Backtick", Backtick$0);
10967
11239
  }
10968
- var By$0 = $TS($S($EXPECT($L122, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11240
+ var By$0 = $TS($S($EXPECT($L123, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10969
11241
  return { $loc, token: $1 };
10970
11242
  });
10971
11243
  function By(ctx, state) {
10972
11244
  return $EVENT(ctx, state, "By", By$0);
10973
11245
  }
10974
- var Caret$0 = $TV($EXPECT($L19, 'Caret "^"'), function($skip, $loc, $0, $1) {
11246
+ var Caret$0 = $TV($EXPECT($L20, 'Caret "^"'), function($skip, $loc, $0, $1) {
10975
11247
  return { $loc, token: $1 };
10976
11248
  });
10977
11249
  function Caret(ctx, state) {
10978
11250
  return $EVENT(ctx, state, "Caret", Caret$0);
10979
11251
  }
10980
- var Case$0 = $TS($S($EXPECT($L123, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11252
+ var Case$0 = $TS($S($EXPECT($L124, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10981
11253
  return { $loc, token: $1 };
10982
11254
  });
10983
11255
  function Case(ctx, state) {
10984
11256
  return $EVENT(ctx, state, "Case", Case$0);
10985
11257
  }
10986
- var Catch$0 = $TS($S($EXPECT($L124, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11258
+ var Catch$0 = $TS($S($EXPECT($L125, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10987
11259
  return { $loc, token: $1 };
10988
11260
  });
10989
11261
  function Catch(ctx, state) {
10990
11262
  return $EVENT(ctx, state, "Catch", Catch$0);
10991
11263
  }
10992
- var Class$0 = $TS($S($EXPECT($L125, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11264
+ var Class$0 = $TS($S($EXPECT($L126, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10993
11265
  return { $loc, token: $1 };
10994
11266
  });
10995
11267
  function Class(ctx, state) {
10996
11268
  return $EVENT(ctx, state, "Class", Class$0);
10997
11269
  }
10998
- var CloseAngleBracket$0 = $TV($EXPECT($L35, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
11270
+ var CloseAngleBracket$0 = $TV($EXPECT($L36, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
10999
11271
  return { $loc, token: $1 };
11000
11272
  });
11001
11273
  function CloseAngleBracket(ctx, state) {
11002
11274
  return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
11003
11275
  }
11004
- var CloseBrace$0 = $TV($EXPECT($L27, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11276
+ var CloseBrace$0 = $TV($EXPECT($L28, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11005
11277
  return { $loc, token: $1 };
11006
11278
  });
11007
11279
  function CloseBrace(ctx, state) {
11008
11280
  return $EVENT(ctx, state, "CloseBrace", CloseBrace$0);
11009
11281
  }
11010
- var CloseBracket$0 = $TV($EXPECT($L36, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11282
+ var CloseBracket$0 = $TV($EXPECT($L37, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11011
11283
  return { $loc, token: $1 };
11012
11284
  });
11013
11285
  function CloseBracket(ctx, state) {
11014
11286
  return $EVENT(ctx, state, "CloseBracket", CloseBracket$0);
11015
11287
  }
11016
- var CloseParen$0 = $TV($EXPECT($L114, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11288
+ var CloseParen$0 = $TV($EXPECT($L115, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11017
11289
  return { $loc, token: $1 };
11018
11290
  });
11019
11291
  function CloseParen(ctx, state) {
11020
11292
  return $EVENT(ctx, state, "CloseParen", CloseParen$0);
11021
11293
  }
11022
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L126, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
11294
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L127, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
11023
11295
  return { $loc, token: "${" };
11024
11296
  });
11025
11297
  function CoffeeSubstitutionStart(ctx, state) {
11026
11298
  return $EVENT(ctx, state, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
11027
11299
  }
11028
- var Colon$0 = $TS($S($EXPECT($L12, 'Colon ":"'), $N($EXPECT($L3, 'Colon "="'))), function($skip, $loc, $0, $1, $2) {
11300
+ var Colon$0 = $TS($S($EXPECT($L13, 'Colon ":"'), $N($EXPECT($L3, 'Colon "="'))), function($skip, $loc, $0, $1, $2) {
11029
11301
  return { $loc, token: $1 };
11030
11302
  });
11031
11303
  function Colon(ctx, state) {
11032
11304
  return $EVENT(ctx, state, "Colon", Colon$0);
11033
11305
  }
11034
- var Comma$0 = $TV($EXPECT($L23, 'Comma ","'), function($skip, $loc, $0, $1) {
11306
+ var Comma$0 = $TV($EXPECT($L24, 'Comma ","'), function($skip, $loc, $0, $1) {
11035
11307
  return { $loc, token: $1 };
11036
11308
  });
11037
11309
  function Comma(ctx, state) {
11038
11310
  return $EVENT(ctx, state, "Comma", Comma$0);
11039
11311
  }
11040
- var ConstructorShorthand$0 = $TV($EXPECT($L117, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11312
+ var ConstructorShorthand$0 = $TV($EXPECT($L118, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11041
11313
  return { $loc, token: "constructor" };
11042
11314
  });
11043
11315
  function ConstructorShorthand(ctx, state) {
11044
11316
  return $EVENT(ctx, state, "ConstructorShorthand", ConstructorShorthand$0);
11045
11317
  }
11046
- var Declare$0 = $TS($S($EXPECT($L127, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11318
+ var Declare$0 = $TS($S($EXPECT($L128, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11047
11319
  return { $loc, token: $1 };
11048
11320
  });
11049
11321
  function Declare(ctx, state) {
11050
11322
  return $EVENT(ctx, state, "Declare", Declare$0);
11051
11323
  }
11052
- var Default$0 = $TS($S($EXPECT($L128, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11324
+ var Default$0 = $TS($S($EXPECT($L129, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11053
11325
  return { $loc, token: $1 };
11054
11326
  });
11055
11327
  function Default(ctx, state) {
11056
11328
  return $EVENT(ctx, state, "Default", Default$0);
11057
11329
  }
11058
- var Delete$0 = $TS($S($EXPECT($L129, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11330
+ var Delete$0 = $TS($S($EXPECT($L130, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11059
11331
  return { $loc, token: $1 };
11060
11332
  });
11061
11333
  function Delete(ctx, state) {
11062
11334
  return $EVENT(ctx, state, "Delete", Delete$0);
11063
11335
  }
11064
- var Do$0 = $TS($S($EXPECT($L130, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11336
+ var Do$0 = $TS($S($EXPECT($L131, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11065
11337
  return { $loc, token: $1 };
11066
11338
  });
11067
11339
  function Do(ctx, state) {
@@ -11070,7 +11342,7 @@ ${input.slice(result.pos)}
11070
11342
  var Dot$0 = $TV($EXPECT($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
11071
11343
  return { $loc, token: $1 };
11072
11344
  });
11073
- var Dot$1 = $TS($S($EXPECT($R66, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
11345
+ var Dot$1 = $TS($S($EXPECT($R67, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
11074
11346
  var ws = $2;
11075
11347
  return [
11076
11348
  { $loc, token: "." },
@@ -11081,45 +11353,45 @@ ${input.slice(result.pos)}
11081
11353
  function Dot(ctx, state) {
11082
11354
  return $EVENT_C(ctx, state, "Dot", Dot$$);
11083
11355
  }
11084
- var DotDot$0 = $TS($S($EXPECT($L131, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
11356
+ var DotDot$0 = $TS($S($EXPECT($L132, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
11085
11357
  return { $loc, token: $1 };
11086
11358
  });
11087
- var DotDot$1 = $TV($EXPECT($L132, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
11359
+ var DotDot$1 = $TV($EXPECT($L133, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
11088
11360
  return { $loc, token: ".." };
11089
11361
  });
11090
11362
  var DotDot$$ = [DotDot$0, DotDot$1];
11091
11363
  function DotDot(ctx, state) {
11092
11364
  return $EVENT_C(ctx, state, "DotDot", DotDot$$);
11093
11365
  }
11094
- var DotDotDot$0 = $TV($EXPECT($L133, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
11366
+ var DotDotDot$0 = $TV($EXPECT($L134, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
11095
11367
  return { $loc, token: $1 };
11096
11368
  });
11097
- var DotDotDot$1 = $TV($EXPECT($L134, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
11369
+ var DotDotDot$1 = $TV($EXPECT($L135, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
11098
11370
  return { $loc, token: "..." };
11099
11371
  });
11100
11372
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
11101
11373
  function DotDotDot(ctx, state) {
11102
11374
  return $EVENT_C(ctx, state, "DotDotDot", DotDotDot$$);
11103
11375
  }
11104
- var DoubleColon$0 = $TV($EXPECT($L135, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
11376
+ var DoubleColon$0 = $TV($EXPECT($L136, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
11105
11377
  return { $loc, token: $1 };
11106
11378
  });
11107
11379
  function DoubleColon(ctx, state) {
11108
11380
  return $EVENT(ctx, state, "DoubleColon", DoubleColon$0);
11109
11381
  }
11110
- var DoubleQuote$0 = $TV($EXPECT($L136, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
11382
+ var DoubleQuote$0 = $TV($EXPECT($L137, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
11111
11383
  return { $loc, token: $1 };
11112
11384
  });
11113
11385
  function DoubleQuote(ctx, state) {
11114
11386
  return $EVENT(ctx, state, "DoubleQuote", DoubleQuote$0);
11115
11387
  }
11116
- var Each$0 = $TS($S($EXPECT($L137, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11388
+ var Each$0 = $TS($S($EXPECT($L138, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11117
11389
  return { $loc, token: $1 };
11118
11390
  });
11119
11391
  function Each(ctx, state) {
11120
11392
  return $EVENT(ctx, state, "Each", Each$0);
11121
11393
  }
11122
- var Else$0 = $TS($S($EXPECT($L138, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11394
+ var Else$0 = $TS($S($EXPECT($L139, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11123
11395
  return { $loc, token: $1 };
11124
11396
  });
11125
11397
  function Else(ctx, state) {
@@ -11131,85 +11403,91 @@ ${input.slice(result.pos)}
11131
11403
  function Equals(ctx, state) {
11132
11404
  return $EVENT(ctx, state, "Equals", Equals$0);
11133
11405
  }
11134
- var Export$0 = $TS($S($EXPECT($L139, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11406
+ var ExclamationPoint$0 = $TV($EXPECT($L19, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
11407
+ return { $loc, token: $1 };
11408
+ });
11409
+ function ExclamationPoint(ctx, state) {
11410
+ return $EVENT(ctx, state, "ExclamationPoint", ExclamationPoint$0);
11411
+ }
11412
+ var Export$0 = $TS($S($EXPECT($L140, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11135
11413
  return { $loc, token: $1 };
11136
11414
  });
11137
11415
  function Export(ctx, state) {
11138
11416
  return $EVENT(ctx, state, "Export", Export$0);
11139
11417
  }
11140
- var Extends$0 = $TS($S($EXPECT($L140, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11418
+ var Extends$0 = $TS($S($EXPECT($L141, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11141
11419
  return { $loc, token: $1 };
11142
11420
  });
11143
11421
  function Extends(ctx, state) {
11144
11422
  return $EVENT(ctx, state, "Extends", Extends$0);
11145
11423
  }
11146
- var Finally$0 = $TS($S($EXPECT($L141, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11424
+ var Finally$0 = $TS($S($EXPECT($L142, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11147
11425
  return { $loc, token: $1 };
11148
11426
  });
11149
11427
  function Finally(ctx, state) {
11150
11428
  return $EVENT(ctx, state, "Finally", Finally$0);
11151
11429
  }
11152
- var For$0 = $TS($S($EXPECT($L142, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11430
+ var For$0 = $TS($S($EXPECT($L143, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11153
11431
  return { $loc, token: $1 };
11154
11432
  });
11155
11433
  function For(ctx, state) {
11156
11434
  return $EVENT(ctx, state, "For", For$0);
11157
11435
  }
11158
- var From$0 = $TS($S($EXPECT($L143, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11436
+ var From$0 = $TS($S($EXPECT($L144, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11159
11437
  return { $loc, token: $1 };
11160
11438
  });
11161
11439
  function From(ctx, state) {
11162
11440
  return $EVENT(ctx, state, "From", From$0);
11163
11441
  }
11164
- var Function$0 = $TS($S($EXPECT($L144, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11442
+ var Function$0 = $TS($S($EXPECT($L145, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11165
11443
  return { $loc, token: $1 };
11166
11444
  });
11167
11445
  function Function(ctx, state) {
11168
11446
  return $EVENT(ctx, state, "Function", Function$0);
11169
11447
  }
11170
- var GetOrSet$0 = $TS($S($C($EXPECT($L145, 'GetOrSet "get"'), $EXPECT($L146, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11448
+ var GetOrSet$0 = $TS($S($C($EXPECT($L146, 'GetOrSet "get"'), $EXPECT($L147, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11171
11449
  return { $loc, token: $1, type: "GetOrSet" };
11172
11450
  });
11173
11451
  function GetOrSet(ctx, state) {
11174
11452
  return $EVENT(ctx, state, "GetOrSet", GetOrSet$0);
11175
11453
  }
11176
- var Hash$0 = $TV($EXPECT($L147, 'Hash "#"'), function($skip, $loc, $0, $1) {
11454
+ var Hash$0 = $TV($EXPECT($L148, 'Hash "#"'), function($skip, $loc, $0, $1) {
11177
11455
  return { $loc, token: $1 };
11178
11456
  });
11179
11457
  function Hash(ctx, state) {
11180
11458
  return $EVENT(ctx, state, "Hash", Hash$0);
11181
11459
  }
11182
- var If$0 = $TV($TEXT($S($EXPECT($L148, 'If "if"'), NonIdContinue, $E($EXPECT($L13, 'If " "')))), function($skip, $loc, $0, $1) {
11460
+ var If$0 = $TV($TEXT($S($EXPECT($L149, 'If "if"'), NonIdContinue, $E($EXPECT($L14, 'If " "')))), function($skip, $loc, $0, $1) {
11183
11461
  return { $loc, token: $1 };
11184
11462
  });
11185
11463
  function If(ctx, state) {
11186
11464
  return $EVENT(ctx, state, "If", If$0);
11187
11465
  }
11188
- var Import$0 = $TS($S($EXPECT($L17, 'Import "import"'), $Y($EXPECT($R67, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
11466
+ var Import$0 = $TS($S($EXPECT($L18, 'Import "import"'), $Y($EXPECT($R68, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
11189
11467
  return { $loc, token: $1 };
11190
11468
  });
11191
11469
  function Import(ctx, state) {
11192
11470
  return $EVENT(ctx, state, "Import", Import$0);
11193
11471
  }
11194
- var In$0 = $TS($S($EXPECT($L149, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11472
+ var In$0 = $TS($S($EXPECT($L150, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11195
11473
  return { $loc, token: $1 };
11196
11474
  });
11197
11475
  function In(ctx, state) {
11198
11476
  return $EVENT(ctx, state, "In", In$0);
11199
11477
  }
11200
- var LetOrConst$0 = $TS($S($C($EXPECT($L150, 'LetOrConst "let"'), $EXPECT($L151, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11478
+ var LetOrConst$0 = $TS($S($C($EXPECT($L151, 'LetOrConst "let"'), $EXPECT($L152, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11201
11479
  return { $loc, token: $1 };
11202
11480
  });
11203
11481
  function LetOrConst(ctx, state) {
11204
11482
  return $EVENT(ctx, state, "LetOrConst", LetOrConst$0);
11205
11483
  }
11206
- var Const$0 = $TS($S($EXPECT($L151, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11484
+ var Const$0 = $TS($S($EXPECT($L152, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11207
11485
  return { $loc, token: $1 };
11208
11486
  });
11209
11487
  function Const(ctx, state) {
11210
11488
  return $EVENT(ctx, state, "Const", Const$0);
11211
11489
  }
11212
- var Is$0 = $TS($S($EXPECT($L152, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11490
+ var Is$0 = $TS($S($EXPECT($L153, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11213
11491
  return { $loc, token: $1 };
11214
11492
  });
11215
11493
  function Is(ctx, state) {
@@ -11221,31 +11499,31 @@ ${input.slice(result.pos)}
11221
11499
  function LetOrConstOrVar(ctx, state) {
11222
11500
  return $EVENT_C(ctx, state, "LetOrConstOrVar", LetOrConstOrVar$$);
11223
11501
  }
11224
- var Loop$0 = $TS($S($EXPECT($L153, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11502
+ var Loop$0 = $TS($S($EXPECT($L154, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11225
11503
  return { $loc, token: "while(true)" };
11226
11504
  });
11227
11505
  function Loop(ctx, state) {
11228
11506
  return $EVENT(ctx, state, "Loop", Loop$0);
11229
11507
  }
11230
- var New$0 = $TS($S($EXPECT($L154, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11508
+ var New$0 = $TS($S($EXPECT($L155, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11231
11509
  return { $loc, token: $1 };
11232
11510
  });
11233
11511
  function New(ctx, state) {
11234
11512
  return $EVENT(ctx, state, "New", New$0);
11235
11513
  }
11236
- var Not$0 = $TS($S($EXPECT($L155, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L12, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
11514
+ var Not$0 = $TS($S($EXPECT($L156, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L13, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
11237
11515
  return { $loc, token: "!" };
11238
11516
  });
11239
11517
  function Not(ctx, state) {
11240
11518
  return $EVENT(ctx, state, "Not", Not$0);
11241
11519
  }
11242
- var Of$0 = $TS($S($EXPECT($L156, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11520
+ var Of$0 = $TS($S($EXPECT($L157, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11243
11521
  return { $loc, token: $1 };
11244
11522
  });
11245
11523
  function Of(ctx, state) {
11246
11524
  return $EVENT(ctx, state, "Of", Of$0);
11247
11525
  }
11248
- var OpenAngleBracket$0 = $TV($EXPECT($L14, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
11526
+ var OpenAngleBracket$0 = $TV($EXPECT($L15, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
11249
11527
  return { $loc, token: $1 };
11250
11528
  });
11251
11529
  function OpenAngleBracket(ctx, state) {
@@ -11257,7 +11535,7 @@ ${input.slice(result.pos)}
11257
11535
  function OpenBrace(ctx, state) {
11258
11536
  return $EVENT(ctx, state, "OpenBrace", OpenBrace$0);
11259
11537
  }
11260
- var OpenBracket$0 = $TV($EXPECT($L157, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
11538
+ var OpenBracket$0 = $TV($EXPECT($L158, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
11261
11539
  return { $loc, token: $1 };
11262
11540
  });
11263
11541
  function OpenBracket(ctx, state) {
@@ -11269,43 +11547,43 @@ ${input.slice(result.pos)}
11269
11547
  function OpenParen(ctx, state) {
11270
11548
  return $EVENT(ctx, state, "OpenParen", OpenParen$0);
11271
11549
  }
11272
- var Operator$0 = $TS($S($EXPECT($L158, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11550
+ var Operator$0 = $TS($S($EXPECT($L159, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11273
11551
  return { $loc, token: $1 };
11274
11552
  });
11275
11553
  function Operator(ctx, state) {
11276
11554
  return $EVENT(ctx, state, "Operator", Operator$0);
11277
11555
  }
11278
- var Own$0 = $TS($S($EXPECT($L159, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11556
+ var Own$0 = $TS($S($EXPECT($L160, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11279
11557
  return { $loc, token: $1 };
11280
11558
  });
11281
11559
  function Own(ctx, state) {
11282
11560
  return $EVENT(ctx, state, "Own", Own$0);
11283
11561
  }
11284
- var Public$0 = $TS($S($EXPECT($L160, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11562
+ var Public$0 = $TS($S($EXPECT($L161, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11285
11563
  return { $loc, token: $1 };
11286
11564
  });
11287
11565
  function Public(ctx, state) {
11288
11566
  return $EVENT(ctx, state, "Public", Public$0);
11289
11567
  }
11290
- var Private$0 = $TS($S($EXPECT($L161, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11568
+ var Private$0 = $TS($S($EXPECT($L162, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11291
11569
  return { $loc, token: $1 };
11292
11570
  });
11293
11571
  function Private(ctx, state) {
11294
11572
  return $EVENT(ctx, state, "Private", Private$0);
11295
11573
  }
11296
- var Protected$0 = $TS($S($EXPECT($L162, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11574
+ var Protected$0 = $TS($S($EXPECT($L163, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11297
11575
  return { $loc, token: $1 };
11298
11576
  });
11299
11577
  function Protected(ctx, state) {
11300
11578
  return $EVENT(ctx, state, "Protected", Protected$0);
11301
11579
  }
11302
- var Pipe$0 = $TV($C($EXPECT($L163, 'Pipe "||>"'), $EXPECT($L164, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
11580
+ var Pipe$0 = $TV($C($EXPECT($L164, 'Pipe "||>"'), $EXPECT($L165, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
11303
11581
  return { $loc, token: "||>" };
11304
11582
  });
11305
- var Pipe$1 = $TV($C($EXPECT($L165, 'Pipe "|>="'), $EXPECT($L166, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
11583
+ var Pipe$1 = $TV($C($EXPECT($L166, 'Pipe "|>="'), $EXPECT($L167, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
11306
11584
  return { $loc, token: "|>=" };
11307
11585
  });
11308
- var Pipe$2 = $TV($C($EXPECT($L167, 'Pipe "|>"'), $EXPECT($L168, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
11586
+ var Pipe$2 = $TV($C($EXPECT($L168, 'Pipe "|>"'), $EXPECT($L169, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
11309
11587
  return { $loc, token: "|>" };
11310
11588
  });
11311
11589
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -11318,173 +11596,173 @@ ${input.slice(result.pos)}
11318
11596
  function QuestionMark(ctx, state) {
11319
11597
  return $EVENT(ctx, state, "QuestionMark", QuestionMark$0);
11320
11598
  }
11321
- var Readonly$0 = $TS($S($EXPECT($L169, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11599
+ var Readonly$0 = $TS($S($EXPECT($L170, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11322
11600
  return { $loc, token: $1, ts: true };
11323
11601
  });
11324
11602
  function Readonly(ctx, state) {
11325
11603
  return $EVENT(ctx, state, "Readonly", Readonly$0);
11326
11604
  }
11327
- var Return$0 = $TS($S($EXPECT($L170, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11605
+ var Return$0 = $TS($S($EXPECT($L171, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11328
11606
  return { $loc, token: $1 };
11329
11607
  });
11330
11608
  function Return(ctx, state) {
11331
11609
  return $EVENT(ctx, state, "Return", Return$0);
11332
11610
  }
11333
- var Satisfies$0 = $TS($S($EXPECT($L171, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11611
+ var Satisfies$0 = $TS($S($EXPECT($L172, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11334
11612
  return { $loc, token: $1 };
11335
11613
  });
11336
11614
  function Satisfies(ctx, state) {
11337
11615
  return $EVENT(ctx, state, "Satisfies", Satisfies$0);
11338
11616
  }
11339
- var Semicolon$0 = $TV($EXPECT($L101, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
11617
+ var Semicolon$0 = $TV($EXPECT($L102, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
11340
11618
  return { $loc, token: $1 };
11341
11619
  });
11342
11620
  function Semicolon(ctx, state) {
11343
11621
  return $EVENT(ctx, state, "Semicolon", Semicolon$0);
11344
11622
  }
11345
- var SingleQuote$0 = $TV($EXPECT($L172, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
11623
+ var SingleQuote$0 = $TV($EXPECT($L173, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
11346
11624
  return { $loc, token: $1 };
11347
11625
  });
11348
11626
  function SingleQuote(ctx, state) {
11349
11627
  return $EVENT(ctx, state, "SingleQuote", SingleQuote$0);
11350
11628
  }
11351
- var Star$0 = $TV($EXPECT($L56, 'Star "*"'), function($skip, $loc, $0, $1) {
11629
+ var Star$0 = $TV($EXPECT($L57, 'Star "*"'), function($skip, $loc, $0, $1) {
11352
11630
  return { $loc, token: $1 };
11353
11631
  });
11354
11632
  function Star(ctx, state) {
11355
11633
  return $EVENT(ctx, state, "Star", Star$0);
11356
11634
  }
11357
- var Static$0 = $TS($S($EXPECT($L173, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11635
+ var Static$0 = $TS($S($EXPECT($L174, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11358
11636
  return { $loc, token: $1 };
11359
11637
  });
11360
- var Static$1 = $TS($S($EXPECT($L117, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L117, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
11638
+ var Static$1 = $TS($S($EXPECT($L118, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L118, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
11361
11639
  return { $loc, token: "static " };
11362
11640
  });
11363
11641
  var Static$$ = [Static$0, Static$1];
11364
11642
  function Static(ctx, state) {
11365
11643
  return $EVENT_C(ctx, state, "Static", Static$$);
11366
11644
  }
11367
- var SubstitutionStart$0 = $TV($EXPECT($L174, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
11645
+ var SubstitutionStart$0 = $TV($EXPECT($L175, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
11368
11646
  return { $loc, token: $1 };
11369
11647
  });
11370
11648
  function SubstitutionStart(ctx, state) {
11371
11649
  return $EVENT(ctx, state, "SubstitutionStart", SubstitutionStart$0);
11372
11650
  }
11373
- var Super$0 = $TS($S($EXPECT($L175, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11651
+ var Super$0 = $TS($S($EXPECT($L176, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11374
11652
  return { $loc, token: $1 };
11375
11653
  });
11376
11654
  function Super(ctx, state) {
11377
11655
  return $EVENT(ctx, state, "Super", Super$0);
11378
11656
  }
11379
- var Switch$0 = $TS($S($EXPECT($L176, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11657
+ var Switch$0 = $TS($S($EXPECT($L177, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11380
11658
  return { $loc, token: $1 };
11381
11659
  });
11382
11660
  function Switch(ctx, state) {
11383
11661
  return $EVENT(ctx, state, "Switch", Switch$0);
11384
11662
  }
11385
- var Target$0 = $TS($S($EXPECT($L177, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11663
+ var Target$0 = $TS($S($EXPECT($L178, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11386
11664
  return { $loc, token: $1 };
11387
11665
  });
11388
11666
  function Target(ctx, state) {
11389
11667
  return $EVENT(ctx, state, "Target", Target$0);
11390
11668
  }
11391
- var Then$0 = $TS($S(__, $EXPECT($L178, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
11669
+ var Then$0 = $TS($S(__, $EXPECT($L179, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
11392
11670
  return { $loc, token: "" };
11393
11671
  });
11394
11672
  function Then(ctx, state) {
11395
11673
  return $EVENT(ctx, state, "Then", Then$0);
11396
11674
  }
11397
- var This$0 = $TS($S($EXPECT($L179, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11675
+ var This$0 = $TS($S($EXPECT($L180, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11398
11676
  return { $loc, token: $1 };
11399
11677
  });
11400
11678
  function This(ctx, state) {
11401
11679
  return $EVENT(ctx, state, "This", This$0);
11402
11680
  }
11403
- var Throw$0 = $TS($S($EXPECT($L180, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11681
+ var Throw$0 = $TS($S($EXPECT($L181, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11404
11682
  return { $loc, token: $1 };
11405
11683
  });
11406
11684
  function Throw(ctx, state) {
11407
11685
  return $EVENT(ctx, state, "Throw", Throw$0);
11408
11686
  }
11409
- var TripleDoubleQuote$0 = $TV($EXPECT($L181, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
11687
+ var TripleDoubleQuote$0 = $TV($EXPECT($L182, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
11410
11688
  return { $loc, token: "`" };
11411
11689
  });
11412
11690
  function TripleDoubleQuote(ctx, state) {
11413
11691
  return $EVENT(ctx, state, "TripleDoubleQuote", TripleDoubleQuote$0);
11414
11692
  }
11415
- var TripleSingleQuote$0 = $TV($EXPECT($L182, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
11693
+ var TripleSingleQuote$0 = $TV($EXPECT($L183, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
11416
11694
  return { $loc, token: "`" };
11417
11695
  });
11418
11696
  function TripleSingleQuote(ctx, state) {
11419
11697
  return $EVENT(ctx, state, "TripleSingleQuote", TripleSingleQuote$0);
11420
11698
  }
11421
- var TripleSlash$0 = $TV($EXPECT($L183, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
11699
+ var TripleSlash$0 = $TV($EXPECT($L184, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
11422
11700
  return { $loc, token: "/" };
11423
11701
  });
11424
11702
  function TripleSlash(ctx, state) {
11425
11703
  return $EVENT(ctx, state, "TripleSlash", TripleSlash$0);
11426
11704
  }
11427
- var TripleTick$0 = $TV($EXPECT($L184, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
11705
+ var TripleTick$0 = $TV($EXPECT($L185, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
11428
11706
  return { $loc, token: "`" };
11429
11707
  });
11430
11708
  function TripleTick(ctx, state) {
11431
11709
  return $EVENT(ctx, state, "TripleTick", TripleTick$0);
11432
11710
  }
11433
- var Try$0 = $TS($S($EXPECT($L185, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11711
+ var Try$0 = $TS($S($EXPECT($L186, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11434
11712
  return { $loc, token: $1 };
11435
11713
  });
11436
11714
  function Try(ctx, state) {
11437
11715
  return $EVENT(ctx, state, "Try", Try$0);
11438
11716
  }
11439
- var Typeof$0 = $TS($S($EXPECT($L186, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11717
+ var Typeof$0 = $TS($S($EXPECT($L187, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11440
11718
  return { $loc, token: $1 };
11441
11719
  });
11442
11720
  function Typeof(ctx, state) {
11443
11721
  return $EVENT(ctx, state, "Typeof", Typeof$0);
11444
11722
  }
11445
- var Unless$0 = $TS($S($EXPECT($L187, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11446
- return { $loc, token: $1 };
11723
+ var Unless$0 = $TS($S($EXPECT($L188, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11724
+ return { $loc, token: $1, negated: true };
11447
11725
  });
11448
11726
  function Unless(ctx, state) {
11449
11727
  return $EVENT(ctx, state, "Unless", Unless$0);
11450
11728
  }
11451
- var Until$0 = $TS($S($EXPECT($L188, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11729
+ var Until$0 = $TS($S($EXPECT($L189, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11452
11730
  return { $loc, token: $1 };
11453
11731
  });
11454
11732
  function Until(ctx, state) {
11455
11733
  return $EVENT(ctx, state, "Until", Until$0);
11456
11734
  }
11457
- var Using$0 = $TS($S($EXPECT($L189, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11735
+ var Using$0 = $TS($S($EXPECT($L190, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11458
11736
  return { $loc, token: $1 };
11459
11737
  });
11460
11738
  function Using(ctx, state) {
11461
11739
  return $EVENT(ctx, state, "Using", Using$0);
11462
11740
  }
11463
- var Var$0 = $TS($S($EXPECT($L190, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11741
+ var Var$0 = $TS($S($EXPECT($L191, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11464
11742
  return { $loc, token: $1 };
11465
11743
  });
11466
11744
  function Var(ctx, state) {
11467
11745
  return $EVENT(ctx, state, "Var", Var$0);
11468
11746
  }
11469
- var Void$0 = $TS($S($EXPECT($L191, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11747
+ var Void$0 = $TS($S($EXPECT($L192, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11470
11748
  return { $loc, token: $1 };
11471
11749
  });
11472
11750
  function Void(ctx, state) {
11473
11751
  return $EVENT(ctx, state, "Void", Void$0);
11474
11752
  }
11475
- var When$0 = $TS($S($EXPECT($L192, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11753
+ var When$0 = $TS($S($EXPECT($L193, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11476
11754
  return { $loc, token: "case" };
11477
11755
  });
11478
11756
  function When(ctx, state) {
11479
11757
  return $EVENT(ctx, state, "When", When$0);
11480
11758
  }
11481
- var While$0 = $TS($S($EXPECT($L193, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11759
+ var While$0 = $TS($S($EXPECT($L194, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11482
11760
  return { $loc, token: $1 };
11483
11761
  });
11484
11762
  function While(ctx, state) {
11485
11763
  return $EVENT(ctx, state, "While", While$0);
11486
11764
  }
11487
- var Yield$0 = $TS($S($EXPECT($L194, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11765
+ var Yield$0 = $TS($S($EXPECT($L195, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11488
11766
  return { $loc, token: $1, type: "Yield" };
11489
11767
  });
11490
11768
  function Yield(ctx, state) {
@@ -11513,7 +11791,7 @@ ${input.slice(result.pos)}
11513
11791
  function JSXImplicitFragment(ctx, state) {
11514
11792
  return $EVENT(ctx, state, "JSXImplicitFragment", JSXImplicitFragment$0);
11515
11793
  }
11516
- var JSXTag$0 = $T($S($EXPECT($R68, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
11794
+ var JSXTag$0 = $T($S($EXPECT($R69, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
11517
11795
  return value[1];
11518
11796
  });
11519
11797
  function JSXTag(ctx, state) {
@@ -11563,7 +11841,7 @@ ${input.slice(result.pos)}
11563
11841
  function JSXElement(ctx, state) {
11564
11842
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
11565
11843
  }
11566
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L14, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L195, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
11844
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L15, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L196, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
11567
11845
  return { type: "JSXElement", children: $0, tag: $2 };
11568
11846
  });
11569
11847
  function JSXSelfClosingElement(ctx, state) {
@@ -11582,7 +11860,7 @@ ${input.slice(result.pos)}
11582
11860
  function PopJSXStack(ctx, state) {
11583
11861
  return $EVENT(ctx, state, "PopJSXStack", PopJSXStack$0);
11584
11862
  }
11585
- var JSXOpeningElement$0 = $S($EXPECT($L14, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L35, 'JSXOpeningElement ">"'));
11863
+ var JSXOpeningElement$0 = $S($EXPECT($L15, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L36, 'JSXOpeningElement ">"'));
11586
11864
  function JSXOpeningElement(ctx, state) {
11587
11865
  return $EVENT(ctx, state, "JSXOpeningElement", JSXOpeningElement$0);
11588
11866
  }
@@ -11597,7 +11875,7 @@ ${input.slice(result.pos)}
11597
11875
  function JSXOptionalClosingElement(ctx, state) {
11598
11876
  return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
11599
11877
  }
11600
- var JSXClosingElement$0 = $S($EXPECT($L196, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L35, 'JSXClosingElement ">"'));
11878
+ var JSXClosingElement$0 = $S($EXPECT($L197, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L36, 'JSXClosingElement ">"'));
11601
11879
  function JSXClosingElement(ctx, state) {
11602
11880
  return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
11603
11881
  }
@@ -11618,7 +11896,7 @@ ${input.slice(result.pos)}
11618
11896
  ];
11619
11897
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
11620
11898
  });
11621
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L197, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11899
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L198, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11622
11900
  var children = $3;
11623
11901
  $0 = $0.slice(1);
11624
11902
  return {
@@ -11631,7 +11909,7 @@ ${input.slice(result.pos)}
11631
11909
  function JSXFragment(ctx, state) {
11632
11910
  return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
11633
11911
  }
11634
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L197, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
11912
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L198, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
11635
11913
  module.JSXTagStack.push("");
11636
11914
  return $1;
11637
11915
  });
@@ -11648,11 +11926,11 @@ ${input.slice(result.pos)}
11648
11926
  function JSXOptionalClosingFragment(ctx, state) {
11649
11927
  return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
11650
11928
  }
11651
- var JSXClosingFragment$0 = $EXPECT($L198, 'JSXClosingFragment "</>"');
11929
+ var JSXClosingFragment$0 = $EXPECT($L199, 'JSXClosingFragment "</>"');
11652
11930
  function JSXClosingFragment(ctx, state) {
11653
11931
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
11654
11932
  }
11655
- var JSXElementName$0 = $TV($Y($S($C($EXPECT($L147, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
11933
+ var JSXElementName$0 = $TV($Y($S($C($EXPECT($L148, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
11656
11934
  return module.config.defaultElement;
11657
11935
  });
11658
11936
  var JSXElementName$1 = $TEXT($S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName)))));
@@ -11660,7 +11938,7 @@ ${input.slice(result.pos)}
11660
11938
  function JSXElementName(ctx, state) {
11661
11939
  return $EVENT_C(ctx, state, "JSXElementName", JSXElementName$$);
11662
11940
  }
11663
- var JSXIdentifierName$0 = $R$0($EXPECT($R69, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
11941
+ var JSXIdentifierName$0 = $R$0($EXPECT($R70, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
11664
11942
  function JSXIdentifierName(ctx, state) {
11665
11943
  return $EVENT(ctx, state, "JSXIdentifierName", JSXIdentifierName$0);
11666
11944
  }
@@ -11824,7 +12102,7 @@ ${input.slice(result.pos)}
11824
12102
  }
11825
12103
  return $skip;
11826
12104
  });
11827
- var JSXAttribute$5 = $TS($S($EXPECT($L147, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
12105
+ var JSXAttribute$5 = $TS($S($EXPECT($L148, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
11828
12106
  return [" ", "id=", $2];
11829
12107
  });
11830
12108
  var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -11833,7 +12111,7 @@ ${input.slice(result.pos)}
11833
12111
  class: $2
11834
12112
  };
11835
12113
  });
11836
- var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R14, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
12114
+ var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R15, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
11837
12115
  var toggle = $1;
11838
12116
  var id = $2;
11839
12117
  const value = toggle === "+" ? "true" : "false";
@@ -11843,11 +12121,11 @@ ${input.slice(result.pos)}
11843
12121
  function JSXAttribute(ctx, state) {
11844
12122
  return $EVENT_C(ctx, state, "JSXAttribute", JSXAttribute$$);
11845
12123
  }
11846
- var JSXAttributeSpace$0 = $R$0($EXPECT($R70, "JSXAttributeSpace /[\\s>]|\\/>/"));
12124
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R71, "JSXAttributeSpace /[\\s>]|\\/>/"));
11847
12125
  function JSXAttributeSpace(ctx, state) {
11848
12126
  return $EVENT(ctx, state, "JSXAttributeSpace", JSXAttributeSpace$0);
11849
12127
  }
11850
- var JSXShorthandString$0 = $TR($EXPECT($R71, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12128
+ var JSXShorthandString$0 = $TR($EXPECT($R72, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11851
12129
  return quoteString($0);
11852
12130
  });
11853
12131
  var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -11881,7 +12159,7 @@ ${input.slice(result.pos)}
11881
12159
  }
11882
12160
  return [open, value, close];
11883
12161
  });
11884
- var JSXAttributeValue$4 = $R$0($EXPECT($R72, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
12162
+ var JSXAttributeValue$4 = $R$0($EXPECT($R73, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
11885
12163
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
11886
12164
  function JSXAttributeValue(ctx, state) {
11887
12165
  return $EVENT_C(ctx, state, "JSXAttributeValue", JSXAttributeValue$$);
@@ -11894,7 +12172,7 @@ ${input.slice(result.pos)}
11894
12172
  function InlineJSXAttributeValue(ctx, state) {
11895
12173
  return $EVENT(ctx, state, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
11896
12174
  }
11897
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R73, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
12175
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R74, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
11898
12176
  var op = $2;
11899
12177
  var rhs = $3;
11900
12178
  return [[], op, [], rhs];
@@ -11911,7 +12189,7 @@ ${input.slice(result.pos)}
11911
12189
  function InlineJSXUnaryExpression(ctx, state) {
11912
12190
  return $EVENT(ctx, state, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
11913
12191
  }
11914
- var InlineJSXUnaryOp$0 = $TR($EXPECT($R74, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12192
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R75, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11915
12193
  return { $loc, token: $0 };
11916
12194
  });
11917
12195
  function InlineJSXUnaryOp(ctx, state) {
@@ -11943,7 +12221,7 @@ ${input.slice(result.pos)}
11943
12221
  ]
11944
12222
  });
11945
12223
  });
11946
- var InlineJSXCallExpression$1 = $TS($S($EXPECT($L17, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
12224
+ var InlineJSXCallExpression$1 = $TS($S($EXPECT($L18, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
11947
12225
  var args = $2;
11948
12226
  var rest = $3;
11949
12227
  return processCallMemberExpression({
@@ -12062,7 +12340,7 @@ ${input.slice(result.pos)}
12062
12340
  }
12063
12341
  return $skip;
12064
12342
  });
12065
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L27, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12343
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L28, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12066
12344
  return { children: [], jsxChildren: [] };
12067
12345
  });
12068
12346
  var JSXNestedChildren$$ = [JSXNestedChildren$0, JSXNestedChildren$1];
@@ -12117,19 +12395,19 @@ ${input.slice(result.pos)}
12117
12395
  function JSXChild(ctx, state) {
12118
12396
  return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
12119
12397
  }
12120
- var JSXComment$0 = $TS($S($EXPECT($L199, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L200, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12398
+ var JSXComment$0 = $TS($S($EXPECT($L200, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L201, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12121
12399
  return ["{/*", $2, "*/}"];
12122
12400
  });
12123
12401
  function JSXComment(ctx, state) {
12124
12402
  return $EVENT(ctx, state, "JSXComment", JSXComment$0);
12125
12403
  }
12126
- var JSXCommentContent$0 = $TR($EXPECT($R75, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12404
+ var JSXCommentContent$0 = $TR($EXPECT($R76, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12127
12405
  return { $loc, token: $0.replace(/\*\//g, "* /") };
12128
12406
  });
12129
12407
  function JSXCommentContent(ctx, state) {
12130
12408
  return $EVENT(ctx, state, "JSXCommentContent", JSXCommentContent$0);
12131
12409
  }
12132
- var JSXText$0 = $TR($EXPECT($R76, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12410
+ var JSXText$0 = $TR($EXPECT($R77, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12133
12411
  return {
12134
12412
  type: "JSXText",
12135
12413
  token: $0,
@@ -12249,37 +12527,37 @@ ${input.slice(result.pos)}
12249
12527
  function InterfaceExtendsTarget(ctx, state) {
12250
12528
  return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
12251
12529
  }
12252
- var TypeKeyword$0 = $TS($S($EXPECT($L201, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12530
+ var TypeKeyword$0 = $TS($S($EXPECT($L202, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12253
12531
  return { $loc, token: $1 };
12254
12532
  });
12255
12533
  function TypeKeyword(ctx, state) {
12256
12534
  return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
12257
12535
  }
12258
- var Enum$0 = $TS($S($EXPECT($L202, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12536
+ var Enum$0 = $TS($S($EXPECT($L203, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12259
12537
  return { $loc, token: $1 };
12260
12538
  });
12261
12539
  function Enum(ctx, state) {
12262
12540
  return $EVENT(ctx, state, "Enum", Enum$0);
12263
12541
  }
12264
- var Interface$0 = $TS($S($EXPECT($L203, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12542
+ var Interface$0 = $TS($S($EXPECT($L204, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12265
12543
  return { $loc, token: $1 };
12266
12544
  });
12267
12545
  function Interface(ctx, state) {
12268
12546
  return $EVENT(ctx, state, "Interface", Interface$0);
12269
12547
  }
12270
- var Global$0 = $TS($S($EXPECT($L204, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12548
+ var Global$0 = $TS($S($EXPECT($L205, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12271
12549
  return { $loc, token: $1 };
12272
12550
  });
12273
12551
  function Global(ctx, state) {
12274
12552
  return $EVENT(ctx, state, "Global", Global$0);
12275
12553
  }
12276
- var Module$0 = $TS($S($EXPECT($L205, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12554
+ var Module$0 = $TS($S($EXPECT($L206, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12277
12555
  return { $loc, token: $1 };
12278
12556
  });
12279
12557
  function Module(ctx, state) {
12280
12558
  return $EVENT(ctx, state, "Module", Module$0);
12281
12559
  }
12282
- var Namespace$0 = $TS($S($EXPECT($L206, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12560
+ var Namespace$0 = $TS($S($EXPECT($L207, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12283
12561
  return { $loc, token: $1 };
12284
12562
  });
12285
12563
  function Namespace(ctx, state) {
@@ -12494,7 +12772,7 @@ ${input.slice(result.pos)}
12494
12772
  function TypeProperty(ctx, state) {
12495
12773
  return $EVENT(ctx, state, "TypeProperty", TypeProperty$0);
12496
12774
  }
12497
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R77, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R78, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
12775
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R78, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R79, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
12498
12776
  function TypeIndexSignature(ctx, state) {
12499
12777
  return $EVENT(ctx, state, "TypeIndexSignature", TypeIndexSignature$0);
12500
12778
  }
@@ -12504,27 +12782,53 @@ ${input.slice(result.pos)}
12504
12782
  function TypeIndex(ctx, state) {
12505
12783
  return $EVENT_C(ctx, state, "TypeIndex", TypeIndex$$);
12506
12784
  }
12507
- var TypeSuffix$0 = $T($S($E(QuestionMark), $E(_), Colon, Type), function(value) {
12508
- return { "type": "TypeSuffix", "ts": true, "children": value };
12785
+ var TypeSuffix$0 = $T($S($E(_), $E(QuestionMark), $E(_), Colon, MaybeIndentedType), function(value) {
12786
+ var optional = value[1];
12787
+ var t = value[4];
12788
+ return { "type": "TypeSuffix", "ts": true, "optional": optional, "t": t, "children": value };
12509
12789
  });
12510
- var TypeSuffix$1 = $T($S(QuestionMark, $E(_)), function(value) {
12511
- return { "type": "TypeSuffix", "ts": true, "children": value };
12790
+ var TypeSuffix$1 = $T($S($E(_), QuestionMark, $E(_)), function(value) {
12791
+ var optional = value[1];
12792
+ return { "type": "TypeSuffix", "ts": true, "optional": optional, "children": value };
12512
12793
  });
12513
- var TypeSuffix$2 = $T($S(NonNullAssertion, $E(_), $E($S(Colon, Type))), function(value) {
12514
- return { "type": "TypeSuffix", "ts": true, "children": value };
12794
+ var TypeSuffix$2 = $TS($S(NonNullAssertion, $E(_), $E($S(Colon, MaybeIndentedType))), function($skip, $loc, $0, $1, $2, $3) {
12795
+ var ct = $3;
12796
+ const [colon, t] = ct ?? [];
12797
+ return {
12798
+ type: "TypeSuffix",
12799
+ ts: true,
12800
+ t,
12801
+ children: [$1, $2, colon, t]
12802
+ };
12515
12803
  });
12516
12804
  var TypeSuffix$$ = [TypeSuffix$0, TypeSuffix$1, TypeSuffix$2];
12517
12805
  function TypeSuffix(ctx, state) {
12518
12806
  return $EVENT_C(ctx, state, "TypeSuffix", TypeSuffix$$);
12519
12807
  }
12520
- var ReturnTypeSuffix$0 = $TS($S($E(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3) {
12521
- var t = $3;
12522
- return { ...t, children: [$1, $2, ...t.children] };
12808
+ var MaybeIndentedType$0 = InterfaceBlock;
12809
+ var MaybeIndentedType$1 = $TS($S(PushIndent, $E($S(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
12810
+ if (!$2)
12811
+ return $skip;
12812
+ return $2;
12813
+ });
12814
+ var MaybeIndentedType$2 = Type;
12815
+ var MaybeIndentedType$$ = [MaybeIndentedType$0, MaybeIndentedType$1, MaybeIndentedType$2];
12816
+ function MaybeIndentedType(ctx, state) {
12817
+ return $EVENT_C(ctx, state, "MaybeIndentedType", MaybeIndentedType$$);
12818
+ }
12819
+ var ReturnTypeSuffix$0 = $TS($S($E(_), $E(QuestionMark), $E(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12820
+ var optional = $2;
12821
+ var t = $5;
12822
+ return {
12823
+ ...t,
12824
+ optional,
12825
+ children: [$1, optional, $3, $4, ...t.children]
12826
+ };
12523
12827
  });
12524
12828
  function ReturnTypeSuffix(ctx, state) {
12525
12829
  return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
12526
12830
  }
12527
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L207, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
12831
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L208, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
12528
12832
  var asserts = $1;
12529
12833
  var t = $2;
12530
12834
  if (asserts) {
@@ -12545,7 +12849,7 @@ ${input.slice(result.pos)}
12545
12849
  function ReturnType(ctx, state) {
12546
12850
  return $EVENT(ctx, state, "ReturnType", ReturnType$0);
12547
12851
  }
12548
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L152, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
12852
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L153, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
12549
12853
  var lhs = $1;
12550
12854
  var rhs = $2;
12551
12855
  if (!rhs)
@@ -12580,9 +12884,19 @@ ${input.slice(result.pos)}
12580
12884
  return $EVENT(ctx, state, "TypeBinary", TypeBinary$0);
12581
12885
  }
12582
12886
  var TypeUnary$0 = $TS($S($Q($S(__, TypeUnaryOp, NonIdContinue)), TypePrimary, $Q(TypeUnarySuffix)), function($skip, $loc, $0, $1, $2, $3) {
12583
- if (!$1.length && !$3.length)
12584
- return $2;
12585
- return [...$1, $2, ...$3];
12887
+ var prefix = $1;
12888
+ var t = $2;
12889
+ var suffix = $3;
12890
+ if (!prefix.length && !suffix.length)
12891
+ return t;
12892
+ return {
12893
+ type: "UnaryType",
12894
+ prefix,
12895
+ suffix,
12896
+ t,
12897
+ // omit empty prefix for trimming space
12898
+ children: prefix.length ? $0 : [t, suffix]
12899
+ };
12586
12900
  });
12587
12901
  function TypeUnary(ctx, state) {
12588
12902
  return $EVENT(ctx, state, "TypeUnary", TypeUnary$0);
@@ -12593,10 +12907,10 @@ ${input.slice(result.pos)}
12593
12907
  function TypeUnarySuffix(ctx, state) {
12594
12908
  return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
12595
12909
  }
12596
- var TypeUnaryOp$0 = $S($EXPECT($L208, 'TypeUnaryOp "keyof"'), NonIdContinue);
12597
- var TypeUnaryOp$1 = $S($EXPECT($L186, 'TypeUnaryOp "typeof"'), NonIdContinue);
12598
- var TypeUnaryOp$2 = $S($EXPECT($L209, 'TypeUnaryOp "infer"'), NonIdContinue);
12599
- var TypeUnaryOp$3 = $S($EXPECT($L169, 'TypeUnaryOp "readonly"'), NonIdContinue);
12910
+ var TypeUnaryOp$0 = $S($EXPECT($L209, 'TypeUnaryOp "keyof"'), NonIdContinue);
12911
+ var TypeUnaryOp$1 = $S($EXPECT($L187, 'TypeUnaryOp "typeof"'), NonIdContinue);
12912
+ var TypeUnaryOp$2 = $S($EXPECT($L210, 'TypeUnaryOp "infer"'), NonIdContinue);
12913
+ var TypeUnaryOp$3 = $S($EXPECT($L170, 'TypeUnaryOp "readonly"'), NonIdContinue);
12600
12914
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1, TypeUnaryOp$2, TypeUnaryOp$3];
12601
12915
  function TypeUnaryOp(ctx, state) {
12602
12916
  return $EVENT_C(ctx, state, "TypeUnaryOp", TypeUnaryOp$$);
@@ -12605,17 +12919,26 @@ ${input.slice(result.pos)}
12605
12919
  function TypeIndexedAccess(ctx, state) {
12606
12920
  return $EVENT(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$0);
12607
12921
  }
12608
- var UnknownAlias$0 = $TV($EXPECT($L210, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
12922
+ var UnknownAlias$0 = $TV($EXPECT($L211, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
12609
12923
  return { $loc, token: "unknown" };
12610
12924
  });
12611
12925
  function UnknownAlias(ctx, state) {
12612
12926
  return $EVENT(ctx, state, "UnknownAlias", UnknownAlias$0);
12613
12927
  }
12614
- var TypePrimary$0 = $S($E(_), TypeTuple);
12928
+ var TypePrimary$0 = $TS($S($E(_), TypeTuple), function($skip, $loc, $0, $1, $2) {
12929
+ return { ...$2, children: [$1, ...$2.children] };
12930
+ });
12615
12931
  var TypePrimary$1 = InterfaceBlock;
12616
12932
  var TypePrimary$2 = $S($E(_), FunctionType);
12617
12933
  var TypePrimary$3 = $S($E(_), InlineInterfaceLiteral);
12618
- var TypePrimary$4 = $S($E(_), ImportType);
12934
+ var TypePrimary$4 = $TS($S($E(_), ImportType), function($skip, $loc, $0, $1, $2) {
12935
+ var t = $2;
12936
+ return {
12937
+ type: "ImportType",
12938
+ t,
12939
+ children: $0
12940
+ };
12941
+ });
12619
12942
  var TypePrimary$5 = $TS($S($E(_), TypeLiteral), function($skip, $loc, $0, $1, $2) {
12620
12943
  var t = $2;
12621
12944
  return {
@@ -12641,22 +12964,30 @@ ${input.slice(result.pos)}
12641
12964
  args
12642
12965
  };
12643
12966
  });
12644
- var TypePrimary$8 = $S($E(_), OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen);
12967
+ var TypePrimary$8 = $TS($S($E(_), OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12968
+ return {
12969
+ type: "ParenthesizedType",
12970
+ children: $0
12971
+ };
12972
+ });
12645
12973
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8];
12646
12974
  function TypePrimary(ctx, state) {
12647
12975
  return $EVENT_C(ctx, state, "TypePrimary", TypePrimary$$);
12648
12976
  }
12649
- var ImportType$0 = $S($EXPECT($L17, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
12650
- var ImportType$1 = $S($EXPECT($L17, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
12977
+ var ImportType$0 = $S($EXPECT($L18, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
12978
+ var ImportType$1 = $S($EXPECT($L18, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
12651
12979
  var ImportType$$ = [ImportType$0, ImportType$1];
12652
12980
  function ImportType(ctx, state) {
12653
12981
  return $EVENT_C(ctx, state, "ImportType", ImportType$$);
12654
12982
  }
12655
- var TypeTuple$0 = $S(OpenBracket, NestedTypeList, __, CloseBracket);
12656
- var TypeTuple$1 = $S(OpenBracket, $E(TypeList), __, CloseBracket);
12657
- var TypeTuple$$ = [TypeTuple$0, TypeTuple$1];
12983
+ var TypeTuple$0 = $TS($S(OpenBracket, $C(NestedTypeList, $E(TypeList)), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
12984
+ return {
12985
+ type: "TypeTuple",
12986
+ children: $0
12987
+ };
12988
+ });
12658
12989
  function TypeTuple(ctx, state) {
12659
- return $EVENT_C(ctx, state, "TypeTuple", TypeTuple$$);
12990
+ return $EVENT(ctx, state, "TypeTuple", TypeTuple$0);
12660
12991
  }
12661
12992
  var TypeList$0 = $S(TypeElement, $Q($S(__, Comma, TypeElement)));
12662
12993
  function TypeList(ctx, state) {
@@ -12707,13 +13038,59 @@ ${input.slice(result.pos)}
12707
13038
  function NestedType(ctx, state) {
12708
13039
  return $EVENT(ctx, state, "NestedType", NestedType$0);
12709
13040
  }
12710
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L140, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
12711
- if ($2)
12712
- return $0;
12713
- return $1;
13041
+ var TypeConditional$0 = $TS($S($E(_), $EXPECT($R80, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
13042
+ return [$1, expressionizeTypeIf($3)];
13043
+ });
13044
+ var TypeConditional$1 = $TS($S(TypeCondition, NotDedented, QuestionMark, Type, __, Colon, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
13045
+ if ($1.negated)
13046
+ return [$1, $2, $3, $7, $5, $6, $4];
13047
+ return $0;
13048
+ });
13049
+ var TypeConditional$2 = $TS($S(TypeBinary, $E($S($E(IndentedFurther), ExtendsToken, Type))), function($skip, $loc, $0, $1, $2) {
13050
+ if (!$2)
13051
+ return $1;
13052
+ return $0;
12714
13053
  });
13054
+ var TypeConditional$$ = [TypeConditional$0, TypeConditional$1, TypeConditional$2];
12715
13055
  function TypeConditional(ctx, state) {
12716
- return $EVENT(ctx, state, "TypeConditional", TypeConditional$0);
13056
+ return $EVENT_C(ctx, state, "TypeConditional", TypeConditional$$);
13057
+ }
13058
+ var TypeCondition$0 = $TS($S(TypeBinary, $E(IndentedFurther), $C(ExtendsToken, NotExtendsToken), Type), function($skip, $loc, $0, $1, $2, $3, $4) {
13059
+ return {
13060
+ type: "TypeCondition",
13061
+ negated: $3.negated,
13062
+ children: $0
13063
+ };
13064
+ });
13065
+ function TypeCondition(ctx, state) {
13066
+ return $EVENT(ctx, state, "TypeCondition", TypeCondition$0);
13067
+ }
13068
+ var TypeIfThenElse$0 = $TS($S($E(_), $C(If, Unless), $S(OpenParen, TypeCondition, CloseParen), TypeBlock, $E(TypeElse)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13069
+ return [$1, $2, $3[1], $4, $5];
13070
+ });
13071
+ var TypeIfThenElse$1 = $S($E(_), $C(If, Unless), TypeCondition, TypeBlock, $E(TypeElse));
13072
+ var TypeIfThenElse$$ = [TypeIfThenElse$0, TypeIfThenElse$1];
13073
+ function TypeIfThenElse(ctx, state) {
13074
+ return $EVENT_C(ctx, state, "TypeIfThenElse", TypeIfThenElse$$);
13075
+ }
13076
+ var TypeElse$0 = $S(NotDedented, Else, TypeBlock);
13077
+ function TypeElse(ctx, state) {
13078
+ return $EVENT(ctx, state, "TypeElse", TypeElse$0);
13079
+ }
13080
+ var TypeBlock$0 = $T($S(Then, Type), function(value) {
13081
+ return value[1];
13082
+ });
13083
+ var TypeBlock$1 = $T($S($N(EOS), Type), function(value) {
13084
+ return value[1];
13085
+ });
13086
+ var TypeBlock$2 = $TS($S(PushIndent, $E($S(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13087
+ if (!$2)
13088
+ return $skip;
13089
+ return $2;
13090
+ });
13091
+ var TypeBlock$$ = [TypeBlock$0, TypeBlock$1, TypeBlock$2];
13092
+ function TypeBlock(ctx, state) {
13093
+ return $EVENT_C(ctx, state, "TypeBlock", TypeBlock$$);
12717
13094
  }
12718
13095
  var TypeTemplateSubstitution$0 = $S(SubstitutionStart, Type, __, CloseBrace);
12719
13096
  function TypeTemplateSubstitution(ctx, state) {
@@ -12745,10 +13122,10 @@ ${input.slice(result.pos)}
12745
13122
  }
12746
13123
  var TypeLiteral$0 = TypeTemplateLiteral;
12747
13124
  var TypeLiteral$1 = Literal;
12748
- var TypeLiteral$2 = $TS($S($EXPECT($L191, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13125
+ var TypeLiteral$2 = $TS($S($EXPECT($L192, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12749
13126
  return { type: "VoidType", $loc, token: $1 };
12750
13127
  });
12751
- var TypeLiteral$3 = $TV($EXPECT($L211, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
13128
+ var TypeLiteral$3 = $TV($EXPECT($L212, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
12752
13129
  return { $loc, token: "[]" };
12753
13130
  });
12754
13131
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3];
@@ -12767,16 +13144,16 @@ ${input.slice(result.pos)}
12767
13144
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
12768
13145
  return value[1];
12769
13146
  });
12770
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L12, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L114, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L36, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L27, 'InlineInterfacePropertyDelimiter "}"'))));
13147
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L13, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L115, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L37, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L28, 'InlineInterfacePropertyDelimiter "}"'))));
12771
13148
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
12772
13149
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
12773
13150
  function InlineInterfacePropertyDelimiter(ctx, state) {
12774
13151
  return $EVENT_C(ctx, state, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
12775
13152
  }
12776
- var TypeBinaryOp$0 = $TV($EXPECT($L100, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
13153
+ var TypeBinaryOp$0 = $TV($EXPECT($L101, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
12777
13154
  return { $loc, token: "|" };
12778
13155
  });
12779
- var TypeBinaryOp$1 = $TV($EXPECT($L99, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
13156
+ var TypeBinaryOp$1 = $TV($EXPECT($L100, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
12780
13157
  return { $loc, token: "&" };
12781
13158
  });
12782
13159
  var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
@@ -12793,7 +13170,7 @@ ${input.slice(result.pos)}
12793
13170
  function FunctionType(ctx, state) {
12794
13171
  return $EVENT(ctx, state, "FunctionType", FunctionType$0);
12795
13172
  }
12796
- var TypeArrowFunction$0 = $TV($C($EXPECT($L10, 'TypeArrowFunction "=>"'), $EXPECT($L11, 'TypeArrowFunction "\u21D2"'), $EXPECT($L25, 'TypeArrowFunction "->"'), $EXPECT($L26, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
13173
+ var TypeArrowFunction$0 = $TV($C($EXPECT($L11, 'TypeArrowFunction "=>"'), $EXPECT($L12, 'TypeArrowFunction "\u21D2"'), $EXPECT($L26, 'TypeArrowFunction "->"'), $EXPECT($L27, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
12797
13174
  return { $loc, token: "=>" };
12798
13175
  });
12799
13176
  function TypeArrowFunction(ctx, state) {
@@ -12831,11 +13208,11 @@ ${input.slice(result.pos)}
12831
13208
  function TypeParameters(ctx, state) {
12832
13209
  return $EVENT(ctx, state, "TypeParameters", TypeParameters$0);
12833
13210
  }
12834
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L151, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
13211
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L152, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
12835
13212
  function TypeParameter(ctx, state) {
12836
13213
  return $EVENT(ctx, state, "TypeParameter", TypeParameter$0);
12837
13214
  }
12838
- var TypeConstraint$0 = $S(__, $EXPECT($L140, 'TypeConstraint "extends"'), NonIdContinue, Type);
13215
+ var TypeConstraint$0 = $S(__, $EXPECT($L141, 'TypeConstraint "extends"'), NonIdContinue, Type);
12839
13216
  function TypeConstraint(ctx, state) {
12840
13217
  return $EVENT(ctx, state, "TypeConstraint", TypeConstraint$0);
12841
13218
  }
@@ -12844,7 +13221,7 @@ ${input.slice(result.pos)}
12844
13221
  return $EVENT(ctx, state, "TypeInitializer", TypeInitializer$0);
12845
13222
  }
12846
13223
  var TypeParameterDelimiter$0 = $S($E(_), Comma);
12847
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L35, 'TypeParameterDelimiter ">"')));
13224
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L36, 'TypeParameterDelimiter ">"')));
12848
13225
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
12849
13226
  return value[1];
12850
13227
  });
@@ -12858,15 +13235,15 @@ ${input.slice(result.pos)}
12858
13235
  function ThisType(ctx, state) {
12859
13236
  return $EVENT(ctx, state, "ThisType", ThisType$0);
12860
13237
  }
12861
- var Shebang$0 = $S($R$0($EXPECT($R79, "Shebang /#![^\\r\\n]*/")), EOL);
13238
+ var Shebang$0 = $S($R$0($EXPECT($R81, "Shebang /#![^\\r\\n]*/")), EOL);
12862
13239
  function Shebang(ctx, state) {
12863
13240
  return $EVENT(ctx, state, "Shebang", Shebang$0);
12864
13241
  }
12865
- var CivetPrologue$0 = $T($S($EXPECT($R80, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R81, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
13242
+ var CivetPrologue$0 = $T($S($EXPECT($R82, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R83, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
12866
13243
  var content = value[2];
12867
13244
  return content;
12868
13245
  });
12869
- var CivetPrologue$1 = $T($S($EXPECT($R80, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R81, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
13246
+ var CivetPrologue$1 = $T($S($EXPECT($R82, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R83, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
12870
13247
  var content = value[2];
12871
13248
  return content;
12872
13249
  });
@@ -12874,7 +13251,7 @@ ${input.slice(result.pos)}
12874
13251
  function CivetPrologue(ctx, state) {
12875
13252
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
12876
13253
  }
12877
- var CivetPrologueContent$0 = $TS($S($EXPECT($L212, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R82, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
13254
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L213, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R84, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
12878
13255
  var options = $3;
12879
13256
  return {
12880
13257
  type: "CivetPrologue",
@@ -12885,7 +13262,7 @@ ${input.slice(result.pos)}
12885
13262
  function CivetPrologueContent(ctx, state) {
12886
13263
  return $EVENT(ctx, state, "CivetPrologueContent", CivetPrologueContent$0);
12887
13264
  }
12888
- var CivetOption$0 = $TR($EXPECT($R83, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13265
+ var CivetOption$0 = $TR($EXPECT($R85, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12889
13266
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
12890
13267
  if (l)
12891
13268
  return l.toUpperCase();
@@ -12902,11 +13279,11 @@ ${input.slice(result.pos)}
12902
13279
  function CivetOption(ctx, state) {
12903
13280
  return $EVENT(ctx, state, "CivetOption", CivetOption$0);
12904
13281
  }
12905
- var UnknownPrologue$0 = $S($R$0($EXPECT($R80, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
13282
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R82, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
12906
13283
  function UnknownPrologue(ctx, state) {
12907
13284
  return $EVENT(ctx, state, "UnknownPrologue", UnknownPrologue$0);
12908
13285
  }
12909
- var TripleSlashDirective$0 = $S($R$0($EXPECT($R84, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
13286
+ var TripleSlashDirective$0 = $S($R$0($EXPECT($R86, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
12910
13287
  function TripleSlashDirective(ctx, state) {
12911
13288
  return $EVENT(ctx, state, "TripleSlashDirective", TripleSlashDirective$0);
12912
13289
  }
@@ -12920,13 +13297,13 @@ ${input.slice(result.pos)}
12920
13297
  function PrologueString(ctx, state) {
12921
13298
  return $EVENT_C(ctx, state, "PrologueString", PrologueString$$);
12922
13299
  }
12923
- var EOS$0 = $T($S($EXPECT($R85, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
13300
+ var EOS$0 = $T($S($EXPECT($R87, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
12924
13301
  return value[1];
12925
13302
  });
12926
13303
  function EOS(ctx, state) {
12927
13304
  return $EVENT(ctx, state, "EOS", EOS$0);
12928
13305
  }
12929
- var EOL$0 = $TR($EXPECT($R86, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13306
+ var EOL$0 = $TR($EXPECT($R88, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12930
13307
  return { $loc, token: $0 };
12931
13308
  });
12932
13309
  function EOL(ctx, state) {
@@ -13345,6 +13722,30 @@ ${input.slice(result.pos)}
13345
13722
  ]
13346
13723
  });
13347
13724
  },
13725
+ concatAssign(ref) {
13726
+ const typeSuffix = {
13727
+ ts: true,
13728
+ children: [
13729
+ ": <B, A extends {push: (this: A, b: B) => void} | (B extends unknown[] ? {push: (this: A, ...b: B) => void} : never)>(lhs: A, rhs: B) => A"
13730
+ ]
13731
+ };
13732
+ module.prelude.push({
13733
+ children: [
13734
+ preludeVar,
13735
+ ref,
13736
+ typeSuffix,
13737
+ " = (lhs, rhs) => ((rhs",
13738
+ asAny,
13739
+ ")?.[Symbol.isConcatSpreadable] ? (lhs",
13740
+ asAny,
13741
+ ").push.apply(lhs, rhs",
13742
+ asAny,
13743
+ ") : (lhs",
13744
+ asAny,
13745
+ ").push(rhs), lhs);\n"
13746
+ ]
13747
+ });
13748
+ },
13348
13749
  JSX(jsxRef) {
13349
13750
  module.prelude.push({
13350
13751
  ts: true,
@@ -13446,7 +13847,7 @@ ${input.slice(result.pos)}
13446
13847
  function Init(ctx, state) {
13447
13848
  return $EVENT(ctx, state, "Init", Init$0);
13448
13849
  }
13449
- var Indent$0 = $TR($EXPECT($R81, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13850
+ var Indent$0 = $TR($EXPECT($R83, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13450
13851
  const level = getIndentLevel($0, module.config.tab);
13451
13852
  return {
13452
13853
  $loc,
@@ -13600,6 +14001,7 @@ ${input.slice(result.pos)}
13600
14001
  exports.UnaryBody = UnaryBody;
13601
14002
  exports.UnaryWithoutParenthesizedAssignmentBody = UnaryWithoutParenthesizedAssignmentBody;
13602
14003
  exports.UnaryPostfix = UnaryPostfix;
14004
+ exports.TypePostfix = TypePostfix;
13603
14005
  exports.UpdateExpression = UpdateExpression;
13604
14006
  exports.UpdateExpressionSymbol = UpdateExpressionSymbol;
13605
14007
  exports.AssignmentExpression = AssignmentExpression;
@@ -13629,6 +14031,8 @@ ${input.slice(result.pos)}
13629
14031
  exports.ExtendsClause = ExtendsClause;
13630
14032
  exports.ExtendsToken = ExtendsToken;
13631
14033
  exports.ExtendsShorthand = ExtendsShorthand;
14034
+ exports.NotExtendsToken = NotExtendsToken;
14035
+ exports.OmittedNegation = OmittedNegation;
13632
14036
  exports.ExtendsTarget = ExtendsTarget;
13633
14037
  exports.ImplementsClause = ImplementsClause;
13634
14038
  exports.ImplementsToken = ImplementsToken;
@@ -14027,6 +14431,7 @@ ${input.slice(result.pos)}
14027
14431
  exports.Each = Each;
14028
14432
  exports.Else = Else;
14029
14433
  exports.Equals = Equals;
14434
+ exports.ExclamationPoint = ExclamationPoint;
14030
14435
  exports.Export = Export;
14031
14436
  exports.Extends = Extends;
14032
14437
  exports.Finally = Finally;
@@ -14169,6 +14574,7 @@ ${input.slice(result.pos)}
14169
14574
  exports.TypeIndexSignature = TypeIndexSignature;
14170
14575
  exports.TypeIndex = TypeIndex;
14171
14576
  exports.TypeSuffix = TypeSuffix;
14577
+ exports.MaybeIndentedType = MaybeIndentedType;
14172
14578
  exports.ReturnTypeSuffix = ReturnTypeSuffix;
14173
14579
  exports.ReturnType = ReturnType;
14174
14580
  exports.TypePredicate = TypePredicate;
@@ -14187,6 +14593,10 @@ ${input.slice(result.pos)}
14187
14593
  exports.NestedTypeList = NestedTypeList;
14188
14594
  exports.NestedType = NestedType;
14189
14595
  exports.TypeConditional = TypeConditional;
14596
+ exports.TypeCondition = TypeCondition;
14597
+ exports.TypeIfThenElse = TypeIfThenElse;
14598
+ exports.TypeElse = TypeElse;
14599
+ exports.TypeBlock = TypeBlock;
14190
14600
  exports.TypeTemplateSubstitution = TypeTemplateSubstitution;
14191
14601
  exports.TypeTemplateLiteral = TypeTemplateLiteral;
14192
14602
  exports.CoffeeStringTypeSubstitution = CoffeeStringTypeSubstitution;
@@ -14273,6 +14683,7 @@ ${input.slice(result.pos)}
14273
14683
  dedentBlockString,
14274
14684
  dedentBlockSubstitutions,
14275
14685
  expressionizeIfClause,
14686
+ expressionizeTypeIf,
14276
14687
  forRange,
14277
14688
  gatherBindingCode,
14278
14689
  getIndentLevel,