@danielx/civet 0.6.76 → 0.6.77

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
@@ -91,7 +91,7 @@ var Civet = (() => {
91
91
  }
92
92
  function isFunction(node) {
93
93
  const { type } = node;
94
- return type === "FunctionExpression" || type === "ArrowFunction" || type === "MethodDefinition" || node.async;
94
+ return type === "FunctionExpression" || type === "ArrowFunction" || type === "MethodDefinition" || !!node.async;
95
95
  }
96
96
  function isWhitespaceOrEmpty(node) {
97
97
  if (!node)
@@ -1767,18 +1767,86 @@ var Civet = (() => {
1767
1767
  while (i < expandedOps.length) {
1768
1768
  let op = expandedOps[i];
1769
1769
  if (op.special) {
1770
+ let advanceLeft2 = function(allowEqual) {
1771
+ while (start >= 4) {
1772
+ const prevPrec = getPrecedence(expandedOps[start - 2]);
1773
+ if (!(prevPrec > prec || allowEqual && prevPrec === prec)) {
1774
+ return prevPrec === prec;
1775
+ }
1776
+ start -= 4;
1777
+ }
1778
+ return false;
1779
+ }, advanceRight2 = function(allowEqual) {
1780
+ while (end + 4 < expandedOps.length) {
1781
+ const nextPrec = getPrecedence(expandedOps[end + 2]);
1782
+ if (!(nextPrec > prec || allowEqual && nextPrec === prec)) {
1783
+ return nextPrec === prec;
1784
+ }
1785
+ end += 4;
1786
+ }
1787
+ return false;
1788
+ };
1789
+ var advanceLeft = advanceLeft2, advanceRight = advanceRight2;
1770
1790
  let start = i - 2, end = i + 2;
1771
1791
  const prec = getPrecedence(op);
1772
- while (start >= 4 && getPrecedence(expandedOps[start - 2]) >= prec) {
1773
- start -= 4;
1774
- }
1775
- while (end + 4 < expandedOps.length && getPrecedence(expandedOps[end + 2]) > prec) {
1776
- end += 4;
1792
+ let error;
1793
+ switch (op.assoc) {
1794
+ case "left":
1795
+ case void 0: {
1796
+ advanceLeft2(true);
1797
+ advanceRight2(false);
1798
+ break;
1799
+ }
1800
+ case "right": {
1801
+ advanceLeft2(false);
1802
+ advanceRight2(true);
1803
+ break;
1804
+ }
1805
+ case "non": {
1806
+ if (advanceLeft2(false) || advanceRight2(false)) {
1807
+ error = {
1808
+ type: "Error",
1809
+ message: `non-associative operator ${op.token} used at same precedence level without parenthesization`
1810
+ };
1811
+ }
1812
+ ;
1813
+ break;
1814
+ }
1815
+ case "arguments": {
1816
+ if (advanceLeft2(false)) {
1817
+ error = {
1818
+ type: "Error",
1819
+ message: `arguments operator ${op.token} used at same precedence level as ${expandedOps[start - 2].token} to the left`
1820
+ };
1821
+ }
1822
+ advanceRight2(true);
1823
+ break;
1824
+ }
1825
+ default: {
1826
+ throw new Error(`Unsupported associativity: ${op.assoc}`);
1827
+ }
1777
1828
  }
1778
1829
  let a = start === i - 2 ? expandedOps[start] : expandedOps.slice(start, i - 1);
1779
1830
  let wsOp = expandedOps[i - 1];
1780
1831
  let wsB = expandedOps[i + 1];
1781
- let b = end === i + 2 ? expandedOps[i + 2] : recurse(expandedOps.slice(i + 2, end + 1));
1832
+ let b = end === i + 2 ? expandedOps[i + 2] : expandedOps.slice(i + 2, end + 1);
1833
+ if (op.assoc === "arguments") {
1834
+ let i2 = 2;
1835
+ while (i2 < b.length) {
1836
+ if (prec === getPrecedence(b[i2])) {
1837
+ if (!(b[i2].token === op.token)) {
1838
+ error ??= {
1839
+ type: "Error",
1840
+ message: `arguments operator ${op.token} used at same precedence level as ${b[i2].token} to the right`
1841
+ };
1842
+ }
1843
+ b[i2] = ",";
1844
+ }
1845
+ i2 += 4;
1846
+ }
1847
+ } else {
1848
+ b = recurse(b);
1849
+ }
1782
1850
  if (op.token === "instanceof" && b.type === "Literal" && b.children?.[0]?.type === "StringLiteral") {
1783
1851
  a = ["typeof ", makeLeftHandSideExpression(a)];
1784
1852
  if (op.negated) {
@@ -1824,6 +1892,9 @@ var Civet = (() => {
1824
1892
  }
1825
1893
  if (op.negated)
1826
1894
  children.unshift("!");
1895
+ if (error != null) {
1896
+ children.push(error);
1897
+ }
1827
1898
  expandedOps.splice(start, end - start + 1, {
1828
1899
  children
1829
1900
  });
@@ -1954,6 +2025,8 @@ var Civet = (() => {
1954
2025
  "in",
1955
2026
  "instanceof"
1956
2027
  ],
2028
+ // NOTE: Extra in-between level for default custom operators
2029
+ ["custom"],
1957
2030
  ["<<", ">>", ">>>"],
1958
2031
  ["+", "-"],
1959
2032
  ["*", "/", "%"],
@@ -1970,7 +2043,7 @@ var Civet = (() => {
1970
2043
  }
1971
2044
  precedenceStep = 1 / 64;
1972
2045
  precedenceRelational = precedenceMap.get("==");
1973
- precedenceCustomDefault = precedenceStep + precedenceMap.get("==");
2046
+ precedenceCustomDefault = precedenceMap.get("custom");
1974
2047
  asConst = {
1975
2048
  ts: true,
1976
2049
  children: [" as const"]
@@ -2534,7 +2607,9 @@ var Civet = (() => {
2534
2607
 
2535
2608
  // source/parser/auto-dec.civet
2536
2609
  function findDecs(statements) {
2537
- const declarationNames = gatherNodes(statements, ({ type }) => type === "Declaration").flatMap((d) => d.names);
2610
+ const predicate = ($) => $.type === "Declaration";
2611
+ const declarations = gatherNodes(statements, predicate);
2612
+ const declarationNames = declarations.flatMap((d) => d.names);
2538
2613
  return new Set(declarationNames);
2539
2614
  }
2540
2615
  function createConstLetDecs(statements, scopes, letOrConst) {
@@ -2638,7 +2713,7 @@ var Civet = (() => {
2638
2713
  scopes.push(decs);
2639
2714
  const varIds = [];
2640
2715
  const assignmentStatements = findAssignments(statements, scopes);
2641
- const undeclaredIdentifiers = assignmentStatements.flatMap(($) => $?.names || []);
2716
+ const undeclaredIdentifiers = assignmentStatements.flatMap(($1) => $1?.names || []);
2642
2717
  undeclaredIdentifiers.filter((x, i, a) => {
2643
2718
  if (!hasDec(x))
2644
2719
  return a.indexOf(x) === i;
@@ -2673,7 +2748,7 @@ var Civet = (() => {
2673
2748
  children: ["var ", varIds.join(", ")]
2674
2749
  }, delimiter]);
2675
2750
  }
2676
- return scopes.pop();
2751
+ scopes.pop();
2677
2752
  }
2678
2753
  var init_auto_dec = __esm({
2679
2754
  "source/parser/auto-dec.civet"() {
@@ -4390,7 +4465,9 @@ ${input.slice(result.pos)}
4390
4465
  AmpersandFunctionExpression,
4391
4466
  OperatorDeclaration,
4392
4467
  OperatorSignature,
4468
+ OperatorBehavior,
4393
4469
  OperatorPrecedence,
4470
+ OperatorAssociativity,
4394
4471
  AmpersandBlockRHS,
4395
4472
  AmpersandTypeSuffix,
4396
4473
  AmpersandBlockRHSBody,
@@ -4599,6 +4676,7 @@ ${input.slice(result.pos)}
4599
4676
  ImportAssertion,
4600
4677
  TypeAndImportSpecifier,
4601
4678
  ImportSpecifier,
4679
+ OperatorImportSpecifier,
4602
4680
  ImportAsToken,
4603
4681
  ModuleExportName,
4604
4682
  ModuleSpecifier,
@@ -4991,197 +5069,202 @@ ${input.slice(result.pos)}
4991
5069
  var $L26 = $L("tighter");
4992
5070
  var $L27 = $L("looser");
4993
5071
  var $L28 = $L("same");
4994
- var $L29 = $L("->");
4995
- var $L30 = $L("\u2192");
4996
- var $L31 = $L("}");
4997
- var $L32 = $L("null");
4998
- var $L33 = $L("true");
4999
- var $L34 = $L("false");
5000
- var $L35 = $L("yes");
5001
- var $L36 = $L("on");
5002
- var $L37 = $L("no");
5003
- var $L38 = $L("off");
5004
- var $L39 = $L(">");
5005
- var $L40 = $L("]");
5006
- var $L41 = $L("**=");
5007
- var $L42 = $L("*=");
5008
- var $L43 = $L("/=");
5009
- var $L44 = $L("%=");
5010
- var $L45 = $L("+=");
5011
- var $L46 = $L("-=");
5012
- var $L47 = $L("<<=");
5013
- var $L48 = $L(">>>=");
5014
- var $L49 = $L(">>=");
5015
- var $L50 = $L("&&=");
5016
- var $L51 = $L("&=");
5017
- var $L52 = $L("^=");
5018
- var $L53 = $L("||=");
5019
- var $L54 = $L("|=");
5020
- var $L55 = $L("??=");
5021
- var $L56 = $L("?=");
5022
- var $L57 = $L("and=");
5023
- var $L58 = $L("or=");
5024
- var $L59 = $L("**");
5025
- var $L60 = $L("*");
5026
- var $L61 = $L("/");
5027
- var $L62 = $L("%%");
5028
- var $L63 = $L("%");
5029
- var $L64 = $L("+");
5030
- var $L65 = $L("<=");
5031
- var $L66 = $L("\u2264");
5032
- var $L67 = $L(">=");
5033
- var $L68 = $L("\u2265");
5034
- var $L69 = $L("<?");
5035
- var $L70 = $L("!<?");
5036
- var $L71 = $L("<<");
5037
- var $L72 = $L("\xAB");
5038
- var $L73 = $L(">>>");
5039
- var $L74 = $L("\u22D9");
5040
- var $L75 = $L(">>");
5041
- var $L76 = $L("\xBB");
5042
- var $L77 = $L("!==");
5043
- var $L78 = $L("\u2262");
5044
- var $L79 = $L("!=");
5045
- var $L80 = $L("\u2260");
5046
- var $L81 = $L("isnt");
5047
- var $L82 = $L("===");
5048
- var $L83 = $L("\u2263");
5049
- var $L84 = $L("\u2A76");
5050
- var $L85 = $L("==");
5051
- var $L86 = $L("\u2261");
5052
- var $L87 = $L("\u2A75");
5053
- var $L88 = $L("and");
5054
- var $L89 = $L("&&");
5055
- var $L90 = $L("or");
5056
- var $L91 = $L("||");
5057
- var $L92 = $L("\u2016");
5058
- var $L93 = $L("^^");
5059
- var $L94 = $L("xor");
5060
- var $L95 = $L("xnor");
5061
- var $L96 = $L("??");
5062
- var $L97 = $L("\u2047");
5063
- var $L98 = $L("instanceof");
5064
- var $L99 = $L("\u2208");
5065
- var $L100 = $L("\u220B");
5066
- var $L101 = $L("\u220C");
5067
- var $L102 = $L("\u2209");
5068
- var $L103 = $L("&");
5069
- var $L104 = $L("|");
5070
- var $L105 = $L("$:");
5071
- var $L106 = $L(";");
5072
- var $L107 = $L("break");
5073
- var $L108 = $L("continue");
5074
- var $L109 = $L("debugger");
5075
- var $L110 = $L("require");
5076
- var $L111 = $L("with");
5077
- var $L112 = $L("assert");
5078
- var $L113 = $L(":=");
5079
- var $L114 = $L("\u2254");
5080
- var $L115 = $L(".=");
5081
- var $L116 = $L("::=");
5082
- var $L117 = $L("/*");
5083
- var $L118 = $L("*/");
5084
- var $L119 = $L("\\");
5085
- var $L120 = $L(")");
5086
- var $L121 = $L("abstract");
5087
- var $L122 = $L("as");
5088
- var $L123 = $L("@");
5089
- var $L124 = $L("@@");
5090
- var $L125 = $L("async");
5091
- var $L126 = $L("await");
5092
- var $L127 = $L("`");
5093
- var $L128 = $L("by");
5094
- var $L129 = $L("case");
5095
- var $L130 = $L("catch");
5096
- var $L131 = $L("class");
5097
- var $L132 = $L("#{");
5098
- var $L133 = $L("declare");
5099
- var $L134 = $L("default");
5100
- var $L135 = $L("delete");
5101
- var $L136 = $L("do");
5102
- var $L137 = $L("..");
5103
- var $L138 = $L("\u2025");
5104
- var $L139 = $L("...");
5105
- var $L140 = $L("\u2026");
5106
- var $L141 = $L("::");
5107
- var $L142 = $L('"');
5108
- var $L143 = $L("each");
5109
- var $L144 = $L("else");
5110
- var $L145 = $L("!");
5111
- var $L146 = $L("export");
5112
- var $L147 = $L("extends");
5113
- var $L148 = $L("finally");
5114
- var $L149 = $L("for");
5115
- var $L150 = $L("from");
5116
- var $L151 = $L("function");
5117
- var $L152 = $L("get");
5118
- var $L153 = $L("set");
5119
- var $L154 = $L("#");
5120
- var $L155 = $L("if");
5121
- var $L156 = $L("in");
5122
- var $L157 = $L("infer");
5123
- var $L158 = $L("let");
5124
- var $L159 = $L("const");
5125
- var $L160 = $L("is");
5126
- var $L161 = $L("loop");
5127
- var $L162 = $L("new");
5128
- var $L163 = $L("not");
5129
- var $L164 = $L("of");
5130
- var $L165 = $L("[");
5131
- var $L166 = $L("operator");
5132
- var $L167 = $L("own");
5133
- var $L168 = $L("public");
5134
- var $L169 = $L("private");
5135
- var $L170 = $L("protected");
5136
- var $L171 = $L("||>");
5137
- var $L172 = $L("|\u25B7");
5138
- var $L173 = $L("|>=");
5139
- var $L174 = $L("\u25B7=");
5140
- var $L175 = $L("|>");
5141
- var $L176 = $L("\u25B7");
5142
- var $L177 = $L("readonly");
5143
- var $L178 = $L("return");
5144
- var $L179 = $L("satisfies");
5145
- var $L180 = $L("'");
5146
- var $L181 = $L("static");
5147
- var $L182 = $L("${");
5148
- var $L183 = $L("super");
5149
- var $L184 = $L("switch");
5150
- var $L185 = $L("target");
5151
- var $L186 = $L("then");
5152
- var $L187 = $L("this");
5153
- var $L188 = $L("throw");
5154
- var $L189 = $L('"""');
5155
- var $L190 = $L("'''");
5156
- var $L191 = $L("///");
5157
- var $L192 = $L("```");
5158
- var $L193 = $L("try");
5159
- var $L194 = $L("typeof");
5160
- var $L195 = $L("unless");
5161
- var $L196 = $L("until");
5162
- var $L197 = $L("using");
5163
- var $L198 = $L("var");
5164
- var $L199 = $L("void");
5165
- var $L200 = $L("when");
5166
- var $L201 = $L("while");
5167
- var $L202 = $L("yield");
5168
- var $L203 = $L("/>");
5169
- var $L204 = $L("</");
5170
- var $L205 = $L("<>");
5171
- var $L206 = $L("</>");
5172
- var $L207 = $L("<!--");
5173
- var $L208 = $L("-->");
5174
- var $L209 = $L("type");
5175
- var $L210 = $L("enum");
5176
- var $L211 = $L("interface");
5177
- var $L212 = $L("global");
5178
- var $L213 = $L("module");
5179
- var $L214 = $L("namespace");
5180
- var $L215 = $L("asserts");
5181
- var $L216 = $L("keyof");
5182
- var $L217 = $L("???");
5183
- var $L218 = $L("[]");
5184
- var $L219 = $L("civet");
5072
+ var $L29 = $L("left");
5073
+ var $L30 = $L("right");
5074
+ var $L31 = $L("non");
5075
+ var $L32 = $L("relational");
5076
+ var $L33 = $L("arguments");
5077
+ var $L34 = $L("->");
5078
+ var $L35 = $L("\u2192");
5079
+ var $L36 = $L("}");
5080
+ var $L37 = $L("null");
5081
+ var $L38 = $L("true");
5082
+ var $L39 = $L("false");
5083
+ var $L40 = $L("yes");
5084
+ var $L41 = $L("on");
5085
+ var $L42 = $L("no");
5086
+ var $L43 = $L("off");
5087
+ var $L44 = $L(">");
5088
+ var $L45 = $L("]");
5089
+ var $L46 = $L("**=");
5090
+ var $L47 = $L("*=");
5091
+ var $L48 = $L("/=");
5092
+ var $L49 = $L("%=");
5093
+ var $L50 = $L("+=");
5094
+ var $L51 = $L("-=");
5095
+ var $L52 = $L("<<=");
5096
+ var $L53 = $L(">>>=");
5097
+ var $L54 = $L(">>=");
5098
+ var $L55 = $L("&&=");
5099
+ var $L56 = $L("&=");
5100
+ var $L57 = $L("^=");
5101
+ var $L58 = $L("||=");
5102
+ var $L59 = $L("|=");
5103
+ var $L60 = $L("??=");
5104
+ var $L61 = $L("?=");
5105
+ var $L62 = $L("and=");
5106
+ var $L63 = $L("or=");
5107
+ var $L64 = $L("**");
5108
+ var $L65 = $L("*");
5109
+ var $L66 = $L("/");
5110
+ var $L67 = $L("%%");
5111
+ var $L68 = $L("%");
5112
+ var $L69 = $L("+");
5113
+ var $L70 = $L("<=");
5114
+ var $L71 = $L("\u2264");
5115
+ var $L72 = $L(">=");
5116
+ var $L73 = $L("\u2265");
5117
+ var $L74 = $L("<?");
5118
+ var $L75 = $L("!<?");
5119
+ var $L76 = $L("<<");
5120
+ var $L77 = $L("\xAB");
5121
+ var $L78 = $L(">>>");
5122
+ var $L79 = $L("\u22D9");
5123
+ var $L80 = $L(">>");
5124
+ var $L81 = $L("\xBB");
5125
+ var $L82 = $L("!==");
5126
+ var $L83 = $L("\u2262");
5127
+ var $L84 = $L("!=");
5128
+ var $L85 = $L("\u2260");
5129
+ var $L86 = $L("isnt");
5130
+ var $L87 = $L("===");
5131
+ var $L88 = $L("\u2263");
5132
+ var $L89 = $L("\u2A76");
5133
+ var $L90 = $L("==");
5134
+ var $L91 = $L("\u2261");
5135
+ var $L92 = $L("\u2A75");
5136
+ var $L93 = $L("and");
5137
+ var $L94 = $L("&&");
5138
+ var $L95 = $L("or");
5139
+ var $L96 = $L("||");
5140
+ var $L97 = $L("\u2016");
5141
+ var $L98 = $L("^^");
5142
+ var $L99 = $L("xor");
5143
+ var $L100 = $L("xnor");
5144
+ var $L101 = $L("??");
5145
+ var $L102 = $L("\u2047");
5146
+ var $L103 = $L("instanceof");
5147
+ var $L104 = $L("\u2208");
5148
+ var $L105 = $L("\u220B");
5149
+ var $L106 = $L("\u220C");
5150
+ var $L107 = $L("\u2209");
5151
+ var $L108 = $L("&");
5152
+ var $L109 = $L("|");
5153
+ var $L110 = $L("$:");
5154
+ var $L111 = $L(";");
5155
+ var $L112 = $L("break");
5156
+ var $L113 = $L("continue");
5157
+ var $L114 = $L("debugger");
5158
+ var $L115 = $L("require");
5159
+ var $L116 = $L("with");
5160
+ var $L117 = $L("assert");
5161
+ var $L118 = $L(":=");
5162
+ var $L119 = $L("\u2254");
5163
+ var $L120 = $L(".=");
5164
+ var $L121 = $L("::=");
5165
+ var $L122 = $L("/*");
5166
+ var $L123 = $L("*/");
5167
+ var $L124 = $L("\\");
5168
+ var $L125 = $L(")");
5169
+ var $L126 = $L("abstract");
5170
+ var $L127 = $L("as");
5171
+ var $L128 = $L("@");
5172
+ var $L129 = $L("@@");
5173
+ var $L130 = $L("async");
5174
+ var $L131 = $L("await");
5175
+ var $L132 = $L("`");
5176
+ var $L133 = $L("by");
5177
+ var $L134 = $L("case");
5178
+ var $L135 = $L("catch");
5179
+ var $L136 = $L("class");
5180
+ var $L137 = $L("#{");
5181
+ var $L138 = $L("declare");
5182
+ var $L139 = $L("default");
5183
+ var $L140 = $L("delete");
5184
+ var $L141 = $L("do");
5185
+ var $L142 = $L("..");
5186
+ var $L143 = $L("\u2025");
5187
+ var $L144 = $L("...");
5188
+ var $L145 = $L("\u2026");
5189
+ var $L146 = $L("::");
5190
+ var $L147 = $L('"');
5191
+ var $L148 = $L("each");
5192
+ var $L149 = $L("else");
5193
+ var $L150 = $L("!");
5194
+ var $L151 = $L("export");
5195
+ var $L152 = $L("extends");
5196
+ var $L153 = $L("finally");
5197
+ var $L154 = $L("for");
5198
+ var $L155 = $L("from");
5199
+ var $L156 = $L("function");
5200
+ var $L157 = $L("get");
5201
+ var $L158 = $L("set");
5202
+ var $L159 = $L("#");
5203
+ var $L160 = $L("if");
5204
+ var $L161 = $L("in");
5205
+ var $L162 = $L("infer");
5206
+ var $L163 = $L("let");
5207
+ var $L164 = $L("const");
5208
+ var $L165 = $L("is");
5209
+ var $L166 = $L("loop");
5210
+ var $L167 = $L("new");
5211
+ var $L168 = $L("not");
5212
+ var $L169 = $L("of");
5213
+ var $L170 = $L("[");
5214
+ var $L171 = $L("operator");
5215
+ var $L172 = $L("own");
5216
+ var $L173 = $L("public");
5217
+ var $L174 = $L("private");
5218
+ var $L175 = $L("protected");
5219
+ var $L176 = $L("||>");
5220
+ var $L177 = $L("|\u25B7");
5221
+ var $L178 = $L("|>=");
5222
+ var $L179 = $L("\u25B7=");
5223
+ var $L180 = $L("|>");
5224
+ var $L181 = $L("\u25B7");
5225
+ var $L182 = $L("readonly");
5226
+ var $L183 = $L("return");
5227
+ var $L184 = $L("satisfies");
5228
+ var $L185 = $L("'");
5229
+ var $L186 = $L("static");
5230
+ var $L187 = $L("${");
5231
+ var $L188 = $L("super");
5232
+ var $L189 = $L("switch");
5233
+ var $L190 = $L("target");
5234
+ var $L191 = $L("then");
5235
+ var $L192 = $L("this");
5236
+ var $L193 = $L("throw");
5237
+ var $L194 = $L('"""');
5238
+ var $L195 = $L("'''");
5239
+ var $L196 = $L("///");
5240
+ var $L197 = $L("```");
5241
+ var $L198 = $L("try");
5242
+ var $L199 = $L("typeof");
5243
+ var $L200 = $L("unless");
5244
+ var $L201 = $L("until");
5245
+ var $L202 = $L("using");
5246
+ var $L203 = $L("var");
5247
+ var $L204 = $L("void");
5248
+ var $L205 = $L("when");
5249
+ var $L206 = $L("while");
5250
+ var $L207 = $L("yield");
5251
+ var $L208 = $L("/>");
5252
+ var $L209 = $L("</");
5253
+ var $L210 = $L("<>");
5254
+ var $L211 = $L("</>");
5255
+ var $L212 = $L("<!--");
5256
+ var $L213 = $L("-->");
5257
+ var $L214 = $L("type");
5258
+ var $L215 = $L("enum");
5259
+ var $L216 = $L("interface");
5260
+ var $L217 = $L("global");
5261
+ var $L218 = $L("module");
5262
+ var $L219 = $L("namespace");
5263
+ var $L220 = $L("asserts");
5264
+ var $L221 = $L("keyof");
5265
+ var $L222 = $L("???");
5266
+ var $L223 = $L("[]");
5267
+ var $L224 = $L("civet");
5185
5268
  var $R0 = $R(new RegExp("(?=debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
5186
5269
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
5187
5270
  var $R2 = $R(new RegExp("[0-9]", "suy"));
@@ -7570,12 +7653,12 @@ ${input.slice(result.pos)}
7570
7653
  function AmpersandFunctionExpression(ctx, state) {
7571
7654
  return $EVENT(ctx, state, "AmpersandFunctionExpression", AmpersandFunctionExpression$0);
7572
7655
  }
7573
- var OperatorDeclaration$0 = $TS($S(Operator, $E(OperatorPrecedence), _, LexicalDeclaration), function($skip, $loc, $0, $1, $2, $3, $4) {
7656
+ var OperatorDeclaration$0 = $TS($S(Operator, $E(OperatorBehavior), _, LexicalDeclaration), function($skip, $loc, $0, $1, $2, $3, $4) {
7574
7657
  var op = $1;
7575
- var prec = $2;
7658
+ var behavior = $2;
7576
7659
  var w = $3;
7577
7660
  var decl = $4;
7578
- decl.names.forEach((name) => module.operators.set(name, prec));
7661
+ decl.names.forEach((name) => module.operators.set(name, behavior));
7579
7662
  return {
7580
7663
  ...decl,
7581
7664
  children: [insertTrimmingSpace(w, ""), ...decl.children]
@@ -7584,7 +7667,7 @@ ${input.slice(result.pos)}
7584
7667
  var OperatorDeclaration$1 = $TS($S(OperatorSignature, BracedBlock), function($skip, $loc, $0, $1, $2) {
7585
7668
  var signature = $1;
7586
7669
  var block = $2;
7587
- module.operators.set(signature.id.name, signature.prec);
7670
+ module.operators.set(signature.id.name, signature.behavior);
7588
7671
  return {
7589
7672
  ...signature,
7590
7673
  type: "FunctionExpression",
@@ -7594,15 +7677,14 @@ ${input.slice(result.pos)}
7594
7677
  operator: true
7595
7678
  };
7596
7679
  });
7597
- var OperatorDeclaration$2 = $TS($S(Operator, $E(OperatorPrecedence), _, Identifier, $E(OperatorPrecedence), $Q($S(CommaDelimiter, $E(_), Identifier, $E(OperatorPrecedence)))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7680
+ var OperatorDeclaration$2 = $TS($S(Operator, _, Identifier, $E(OperatorBehavior), $Q($S(CommaDelimiter, $E(_), Identifier, $E(OperatorBehavior)))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7598
7681
  var op = $1;
7599
- var defaultPrec = $2;
7600
- var w1 = $3;
7601
- var id = $4;
7602
- var prec = $5;
7603
- var ids = $6;
7604
- module.operators.set(id.name, prec ?? defaultPrec);
7605
- ids.forEach(([, , id2, prec2]) => module.operators.set(id2.name, prec2 ?? defaultPrec));
7682
+ var w1 = $2;
7683
+ var id = $3;
7684
+ var behavior = $4;
7685
+ var ids = $5;
7686
+ module.operators.set(id.name, behavior);
7687
+ ids.forEach(([, , id2, behavior2]) => module.operators.set(id2.name, behavior2));
7606
7688
  return {
7607
7689
  id,
7608
7690
  children: []
@@ -7612,16 +7694,15 @@ ${input.slice(result.pos)}
7612
7694
  function OperatorDeclaration(ctx, state) {
7613
7695
  return $EVENT_C(ctx, state, "OperatorDeclaration", OperatorDeclaration$$);
7614
7696
  }
7615
- var OperatorSignature$0 = $TS($S(Operator, $E(OperatorPrecedence), $E($S(_, Function)), _, Identifier, $E(OperatorPrecedence), $E(_), NonEmptyParameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7697
+ var OperatorSignature$0 = $TS($S(Operator, $E($S(_, Function)), _, Identifier, $E(OperatorBehavior), $E(_), NonEmptyParameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
7616
7698
  var op = $1;
7617
- var prec1 = $2;
7618
- var func = $3;
7619
- var w1 = $4;
7620
- var id = $5;
7621
- var prec2 = $6;
7622
- var w2 = $7;
7623
- var parameters = $8;
7624
- var suffix = $9;
7699
+ var func = $2;
7700
+ var w1 = $3;
7701
+ var id = $4;
7702
+ var behavior = $5;
7703
+ var w2 = $6;
7704
+ var parameters = $7;
7705
+ var suffix = $8;
7625
7706
  if (!func) {
7626
7707
  func = { $loc: op.$loc, token: "function" };
7627
7708
  } else {
@@ -7636,16 +7717,26 @@ ${input.slice(result.pos)}
7636
7717
  ts: false,
7637
7718
  block: null,
7638
7719
  children: [func, w1, id, w2, parameters, suffix],
7639
- prec: prec2 ?? prec1
7720
+ behavior
7640
7721
  };
7641
7722
  });
7642
7723
  function OperatorSignature(ctx, state) {
7643
7724
  return $EVENT(ctx, state, "OperatorSignature", OperatorSignature$0);
7644
7725
  }
7726
+ var OperatorBehavior$0 = $TS($S(OperatorPrecedence, $E(OperatorAssociativity)), function($skip, $loc, $0, $1, $2) {
7727
+ return { ...$1, ...$2 };
7728
+ });
7729
+ var OperatorBehavior$1 = $TS($S(OperatorAssociativity, $E(OperatorPrecedence)), function($skip, $loc, $0, $1, $2) {
7730
+ return { ...$1, ...$2 };
7731
+ });
7732
+ var OperatorBehavior$$ = [OperatorBehavior$0, OperatorBehavior$1];
7733
+ function OperatorBehavior(ctx, state) {
7734
+ return $EVENT_C(ctx, state, "OperatorBehavior", OperatorBehavior$$);
7735
+ }
7645
7736
  var OperatorPrecedence$0 = $TS($S($E(_), $C($EXPECT($L26, 'OperatorPrecedence "tighter"'), $EXPECT($L27, 'OperatorPrecedence "looser"'), $EXPECT($L28, 'OperatorPrecedence "same"')), NonIdContinue, $E(_), $C(Identifier, $S(OpenParen, BinaryOp, CloseParen))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7646
7737
  var mod = $2;
7647
7738
  var op = $5;
7648
- let prec = op.type === "Identifier" ? module.operators.get(op.name) : getPrecedence(op[1]);
7739
+ let prec = op.type === "Identifier" ? module.operators.get(op.name).prec : getPrecedence(op[1]);
7649
7740
  switch (mod) {
7650
7741
  case "tighter":
7651
7742
  prec += 1 / 64;
@@ -7654,11 +7745,21 @@ ${input.slice(result.pos)}
7654
7745
  prec -= 1 / 64;
7655
7746
  break;
7656
7747
  }
7657
- return prec;
7748
+ return { prec };
7658
7749
  });
7659
7750
  function OperatorPrecedence(ctx, state) {
7660
7751
  return $EVENT(ctx, state, "OperatorPrecedence", OperatorPrecedence$0);
7661
7752
  }
7753
+ var OperatorAssociativity$0 = $TS($S($E(_), $C($EXPECT($L29, 'OperatorAssociativity "left"'), $EXPECT($L30, 'OperatorAssociativity "right"'), $EXPECT($L31, 'OperatorAssociativity "non"'), $EXPECT($L32, 'OperatorAssociativity "relational"'), $EXPECT($L33, 'OperatorAssociativity "arguments"')), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
7754
+ var assoc = $2;
7755
+ if (assoc === "relational") {
7756
+ return { relational: true, assoc: "non" };
7757
+ }
7758
+ return { assoc };
7759
+ });
7760
+ function OperatorAssociativity(ctx, state) {
7761
+ return $EVENT(ctx, state, "OperatorAssociativity", OperatorAssociativity$0);
7762
+ }
7662
7763
  var AmpersandBlockRHS$0 = $TS($S(ForbidTrailingMemberProperty, $E(AmpersandBlockRHSBody), RestoreTrailingMemberProperty), function($skip, $loc, $0, $1, $2, $3) {
7663
7764
  if (!$2)
7664
7765
  return $skip;
@@ -7764,7 +7865,7 @@ ${input.slice(result.pos)}
7764
7865
  function ThinArrowFunction(ctx, state) {
7765
7866
  return $EVENT(ctx, state, "ThinArrowFunction", ThinArrowFunction$0);
7766
7867
  }
7767
- var Arrow$0 = $TV($C($EXPECT($L29, 'Arrow "->"'), $EXPECT($L30, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7868
+ var Arrow$0 = $TV($C($EXPECT($L34, 'Arrow "->"'), $EXPECT($L35, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7768
7869
  return { $loc, token: "->" };
7769
7870
  });
7770
7871
  function Arrow(ctx, state) {
@@ -8064,7 +8165,7 @@ ${input.slice(result.pos)}
8064
8165
  }
8065
8166
  var BracedContent$0 = NestedBlockStatements;
8066
8167
  var BracedContent$1 = SingleLineStatements;
8067
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L31, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
8168
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L36, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
8068
8169
  const expressions = [];
8069
8170
  return {
8070
8171
  type: "BlockStatement",
@@ -8134,7 +8235,7 @@ ${input.slice(result.pos)}
8134
8235
  function LiteralContent(ctx, state) {
8135
8236
  return $EVENT_C(ctx, state, "LiteralContent", LiteralContent$$);
8136
8237
  }
8137
- var NullLiteral$0 = $TS($S($EXPECT($L32, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8238
+ var NullLiteral$0 = $TS($S($EXPECT($L37, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8138
8239
  return { $loc, token: $1 };
8139
8240
  });
8140
8241
  function NullLiteral(ctx, state) {
@@ -8149,17 +8250,17 @@ ${input.slice(result.pos)}
8149
8250
  var _BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
8150
8251
  return value[1];
8151
8252
  });
8152
- var _BooleanLiteral$1 = $TS($S($C($EXPECT($L33, '_BooleanLiteral "true"'), $EXPECT($L34, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8253
+ var _BooleanLiteral$1 = $TS($S($C($EXPECT($L38, '_BooleanLiteral "true"'), $EXPECT($L39, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8153
8254
  return { $loc, token: $1 };
8154
8255
  });
8155
8256
  var _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
8156
8257
  function _BooleanLiteral(ctx, state) {
8157
8258
  return $EVENT_C(ctx, state, "_BooleanLiteral", _BooleanLiteral$$);
8158
8259
  }
8159
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L35, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L36, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8260
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L40, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L41, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8160
8261
  return { $loc, token: "true" };
8161
8262
  });
8162
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L37, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L38, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8263
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L42, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L43, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8163
8264
  return { $loc, token: "false" };
8164
8265
  });
8165
8266
  var CoffeeScriptBooleanLiteral$$ = [CoffeeScriptBooleanLiteral$0, CoffeeScriptBooleanLiteral$1];
@@ -8191,7 +8292,7 @@ ${input.slice(result.pos)}
8191
8292
  function IdentifierReference(ctx, state) {
8192
8293
  return $EVENT(ctx, state, "IdentifierReference", IdentifierReference$0);
8193
8294
  }
8194
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L39, 'UpcomingAssignment ">"')))));
8295
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L44, 'UpcomingAssignment ">"')))));
8195
8296
  function UpcomingAssignment(ctx, state) {
8196
8297
  return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
8197
8298
  }
@@ -8349,7 +8450,7 @@ ${input.slice(result.pos)}
8349
8450
  return $EVENT(ctx, state, "NestedElement", NestedElement$0);
8350
8451
  }
8351
8452
  var ArrayElementDelimiter$0 = $S(__, Comma);
8352
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L40, 'ArrayElementDelimiter "]"')));
8453
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L45, 'ArrayElementDelimiter "]"')));
8353
8454
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
8354
8455
  return value[1];
8355
8456
  });
@@ -8603,7 +8704,7 @@ ${input.slice(result.pos)}
8603
8704
  return $EVENT(ctx, state, "InlineObjectPropertyDelimiter", InlineObjectPropertyDelimiter$0);
8604
8705
  }
8605
8706
  var ObjectPropertyDelimiter$0 = $S($E(_), Comma);
8606
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L31, 'ObjectPropertyDelimiter "}"')));
8707
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L36, 'ObjectPropertyDelimiter "}"')));
8607
8708
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
8608
8709
  return value[1];
8609
8710
  });
@@ -9100,10 +9201,10 @@ ${input.slice(result.pos)}
9100
9201
  function OperatorAssignmentOp(ctx, state) {
9101
9202
  return $EVENT_C(ctx, state, "OperatorAssignmentOp", OperatorAssignmentOp$$);
9102
9203
  }
9103
- var AssignmentOpSymbol$0 = $EXPECT($L41, 'AssignmentOpSymbol "**="');
9104
- var AssignmentOpSymbol$1 = $EXPECT($L42, 'AssignmentOpSymbol "*="');
9105
- var AssignmentOpSymbol$2 = $EXPECT($L43, 'AssignmentOpSymbol "/="');
9106
- var AssignmentOpSymbol$3 = $EXPECT($L44, 'AssignmentOpSymbol "%="');
9204
+ var AssignmentOpSymbol$0 = $EXPECT($L46, 'AssignmentOpSymbol "**="');
9205
+ var AssignmentOpSymbol$1 = $EXPECT($L47, 'AssignmentOpSymbol "*="');
9206
+ var AssignmentOpSymbol$2 = $EXPECT($L48, 'AssignmentOpSymbol "/="');
9207
+ var AssignmentOpSymbol$3 = $EXPECT($L49, 'AssignmentOpSymbol "%="');
9107
9208
  var AssignmentOpSymbol$4 = $TS($S($C($EXPECT($L8, 'AssignmentOpSymbol "++"'), $EXPECT($L10, 'AssignmentOpSymbol "\u29FA"')), Equals), function($skip, $loc, $0, $1, $2) {
9108
9209
  return {
9109
9210
  special: true,
@@ -9112,18 +9213,18 @@ ${input.slice(result.pos)}
9112
9213
  children: [$2]
9113
9214
  };
9114
9215
  });
9115
- var AssignmentOpSymbol$5 = $EXPECT($L45, 'AssignmentOpSymbol "+="');
9116
- var AssignmentOpSymbol$6 = $EXPECT($L46, 'AssignmentOpSymbol "-="');
9117
- var AssignmentOpSymbol$7 = $EXPECT($L47, 'AssignmentOpSymbol "<<="');
9118
- var AssignmentOpSymbol$8 = $EXPECT($L48, 'AssignmentOpSymbol ">>>="');
9119
- var AssignmentOpSymbol$9 = $EXPECT($L49, 'AssignmentOpSymbol ">>="');
9120
- var AssignmentOpSymbol$10 = $EXPECT($L50, 'AssignmentOpSymbol "&&="');
9121
- var AssignmentOpSymbol$11 = $EXPECT($L51, 'AssignmentOpSymbol "&="');
9122
- var AssignmentOpSymbol$12 = $EXPECT($L52, 'AssignmentOpSymbol "^="');
9123
- var AssignmentOpSymbol$13 = $EXPECT($L53, 'AssignmentOpSymbol "||="');
9124
- var AssignmentOpSymbol$14 = $EXPECT($L54, 'AssignmentOpSymbol "|="');
9125
- var AssignmentOpSymbol$15 = $EXPECT($L55, 'AssignmentOpSymbol "??="');
9126
- var AssignmentOpSymbol$16 = $T($EXPECT($L56, 'AssignmentOpSymbol "?="'), function(value) {
9216
+ var AssignmentOpSymbol$5 = $EXPECT($L50, 'AssignmentOpSymbol "+="');
9217
+ var AssignmentOpSymbol$6 = $EXPECT($L51, 'AssignmentOpSymbol "-="');
9218
+ var AssignmentOpSymbol$7 = $EXPECT($L52, 'AssignmentOpSymbol "<<="');
9219
+ var AssignmentOpSymbol$8 = $EXPECT($L53, 'AssignmentOpSymbol ">>>="');
9220
+ var AssignmentOpSymbol$9 = $EXPECT($L54, 'AssignmentOpSymbol ">>="');
9221
+ var AssignmentOpSymbol$10 = $EXPECT($L55, 'AssignmentOpSymbol "&&="');
9222
+ var AssignmentOpSymbol$11 = $EXPECT($L56, 'AssignmentOpSymbol "&="');
9223
+ var AssignmentOpSymbol$12 = $EXPECT($L57, 'AssignmentOpSymbol "^="');
9224
+ var AssignmentOpSymbol$13 = $EXPECT($L58, 'AssignmentOpSymbol "||="');
9225
+ var AssignmentOpSymbol$14 = $EXPECT($L59, 'AssignmentOpSymbol "|="');
9226
+ var AssignmentOpSymbol$15 = $EXPECT($L60, 'AssignmentOpSymbol "??="');
9227
+ var AssignmentOpSymbol$16 = $T($EXPECT($L61, 'AssignmentOpSymbol "?="'), function(value) {
9127
9228
  return "??=";
9128
9229
  });
9129
9230
  var AssignmentOpSymbol$17 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
@@ -9136,10 +9237,10 @@ ${input.slice(result.pos)}
9136
9237
  function AssignmentOpSymbol(ctx, state) {
9137
9238
  return $EVENT_C(ctx, state, "AssignmentOpSymbol", AssignmentOpSymbol$$);
9138
9239
  }
9139
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L57, 'CoffeeWordAssignmentOp "and="'), function(value) {
9240
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L62, 'CoffeeWordAssignmentOp "and="'), function(value) {
9140
9241
  return "&&=";
9141
9242
  });
9142
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L58, 'CoffeeWordAssignmentOp "or="'), function(value) {
9243
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L63, 'CoffeeWordAssignmentOp "or="'), function(value) {
9143
9244
  return "||=";
9144
9245
  });
9145
9246
  var CoffeeWordAssignmentOp$$ = [CoffeeWordAssignmentOp$0, CoffeeWordAssignmentOp$1];
@@ -9192,7 +9293,7 @@ ${input.slice(result.pos)}
9192
9293
  return {
9193
9294
  call: id,
9194
9295
  special: true,
9195
- prec: module.operators.get(id.name)
9296
+ ...module.operators.get(id.name)
9196
9297
  };
9197
9298
  });
9198
9299
  var _BinaryOp$2 = $TS($S(OmittedNegation, __, Identifier), function($skip, $loc, $0, $1, $2, $3) {
@@ -9203,40 +9304,40 @@ ${input.slice(result.pos)}
9203
9304
  call: id,
9204
9305
  special: true,
9205
9306
  negated: true,
9206
- prec: module.operators.get(id.name)
9307
+ ...module.operators.get(id.name)
9207
9308
  };
9208
9309
  });
9209
9310
  var _BinaryOp$$ = [_BinaryOp$0, _BinaryOp$1, _BinaryOp$2];
9210
9311
  function _BinaryOp(ctx, state) {
9211
9312
  return $EVENT_C(ctx, state, "_BinaryOp", _BinaryOp$$);
9212
9313
  }
9213
- var BinaryOpSymbol$0 = $EXPECT($L59, 'BinaryOpSymbol "**"');
9214
- var BinaryOpSymbol$1 = $EXPECT($L60, 'BinaryOpSymbol "*"');
9215
- var BinaryOpSymbol$2 = $EXPECT($L61, 'BinaryOpSymbol "/"');
9216
- var BinaryOpSymbol$3 = $TV($EXPECT($L62, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
9314
+ var BinaryOpSymbol$0 = $EXPECT($L64, 'BinaryOpSymbol "**"');
9315
+ var BinaryOpSymbol$1 = $EXPECT($L65, 'BinaryOpSymbol "*"');
9316
+ var BinaryOpSymbol$2 = $EXPECT($L66, 'BinaryOpSymbol "/"');
9317
+ var BinaryOpSymbol$3 = $TV($EXPECT($L67, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
9217
9318
  return {
9218
9319
  call: module.getRef("modulo"),
9219
9320
  special: true
9220
9321
  };
9221
9322
  });
9222
- var BinaryOpSymbol$4 = $EXPECT($L63, 'BinaryOpSymbol "%"');
9323
+ var BinaryOpSymbol$4 = $EXPECT($L68, 'BinaryOpSymbol "%"');
9223
9324
  var BinaryOpSymbol$5 = $TV($C($EXPECT($L8, 'BinaryOpSymbol "++"'), $EXPECT($L10, 'BinaryOpSymbol "\u29FA"')), function($skip, $loc, $0, $1) {
9224
9325
  return {
9225
9326
  method: "concat",
9226
9327
  special: true
9227
9328
  };
9228
9329
  });
9229
- var BinaryOpSymbol$6 = $EXPECT($L64, 'BinaryOpSymbol "+"');
9330
+ var BinaryOpSymbol$6 = $EXPECT($L69, 'BinaryOpSymbol "+"');
9230
9331
  var BinaryOpSymbol$7 = $EXPECT($L21, 'BinaryOpSymbol "-"');
9231
- var BinaryOpSymbol$8 = $EXPECT($L65, 'BinaryOpSymbol "<="');
9232
- var BinaryOpSymbol$9 = $T($EXPECT($L66, 'BinaryOpSymbol "\u2264"'), function(value) {
9332
+ var BinaryOpSymbol$8 = $EXPECT($L70, 'BinaryOpSymbol "<="');
9333
+ var BinaryOpSymbol$9 = $T($EXPECT($L71, 'BinaryOpSymbol "\u2264"'), function(value) {
9233
9334
  return "<=";
9234
9335
  });
9235
- var BinaryOpSymbol$10 = $EXPECT($L67, 'BinaryOpSymbol ">="');
9236
- var BinaryOpSymbol$11 = $T($EXPECT($L68, 'BinaryOpSymbol "\u2265"'), function(value) {
9336
+ var BinaryOpSymbol$10 = $EXPECT($L72, 'BinaryOpSymbol ">="');
9337
+ var BinaryOpSymbol$11 = $T($EXPECT($L73, 'BinaryOpSymbol "\u2265"'), function(value) {
9237
9338
  return ">=";
9238
9339
  });
9239
- var BinaryOpSymbol$12 = $TV($EXPECT($L69, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
9340
+ var BinaryOpSymbol$12 = $TV($EXPECT($L74, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
9240
9341
  return {
9241
9342
  $loc,
9242
9343
  token: "instanceof",
@@ -9244,7 +9345,7 @@ ${input.slice(result.pos)}
9244
9345
  special: true
9245
9346
  };
9246
9347
  });
9247
- var BinaryOpSymbol$13 = $TV($EXPECT($L70, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
9348
+ var BinaryOpSymbol$13 = $TV($EXPECT($L75, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
9248
9349
  return {
9249
9350
  $loc,
9250
9351
  token: "instanceof",
@@ -9253,76 +9354,76 @@ ${input.slice(result.pos)}
9253
9354
  negated: true
9254
9355
  };
9255
9356
  });
9256
- var BinaryOpSymbol$14 = $EXPECT($L71, 'BinaryOpSymbol "<<"');
9257
- var BinaryOpSymbol$15 = $T($EXPECT($L72, 'BinaryOpSymbol "\xAB"'), function(value) {
9357
+ var BinaryOpSymbol$14 = $EXPECT($L76, 'BinaryOpSymbol "<<"');
9358
+ var BinaryOpSymbol$15 = $T($EXPECT($L77, 'BinaryOpSymbol "\xAB"'), function(value) {
9258
9359
  return "<<";
9259
9360
  });
9260
9361
  var BinaryOpSymbol$16 = $EXPECT($L16, 'BinaryOpSymbol "<"');
9261
- var BinaryOpSymbol$17 = $EXPECT($L73, 'BinaryOpSymbol ">>>"');
9262
- var BinaryOpSymbol$18 = $T($EXPECT($L74, 'BinaryOpSymbol "\u22D9"'), function(value) {
9362
+ var BinaryOpSymbol$17 = $EXPECT($L78, 'BinaryOpSymbol ">>>"');
9363
+ var BinaryOpSymbol$18 = $T($EXPECT($L79, 'BinaryOpSymbol "\u22D9"'), function(value) {
9263
9364
  return ">>>";
9264
9365
  });
9265
- var BinaryOpSymbol$19 = $EXPECT($L75, 'BinaryOpSymbol ">>"');
9266
- var BinaryOpSymbol$20 = $T($EXPECT($L76, 'BinaryOpSymbol "\xBB"'), function(value) {
9366
+ var BinaryOpSymbol$19 = $EXPECT($L80, 'BinaryOpSymbol ">>"');
9367
+ var BinaryOpSymbol$20 = $T($EXPECT($L81, 'BinaryOpSymbol "\xBB"'), function(value) {
9267
9368
  return ">>";
9268
9369
  });
9269
- var BinaryOpSymbol$21 = $EXPECT($L39, 'BinaryOpSymbol ">"');
9270
- var BinaryOpSymbol$22 = $EXPECT($L77, 'BinaryOpSymbol "!=="');
9271
- var BinaryOpSymbol$23 = $T($EXPECT($L78, 'BinaryOpSymbol "\u2262"'), function(value) {
9370
+ var BinaryOpSymbol$21 = $EXPECT($L44, 'BinaryOpSymbol ">"');
9371
+ var BinaryOpSymbol$22 = $EXPECT($L82, 'BinaryOpSymbol "!=="');
9372
+ var BinaryOpSymbol$23 = $T($EXPECT($L83, 'BinaryOpSymbol "\u2262"'), function(value) {
9272
9373
  return "!==";
9273
9374
  });
9274
- var BinaryOpSymbol$24 = $TV($C($EXPECT($L79, 'BinaryOpSymbol "!="'), $EXPECT($L80, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
9375
+ var BinaryOpSymbol$24 = $TV($C($EXPECT($L84, 'BinaryOpSymbol "!="'), $EXPECT($L85, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
9275
9376
  if (module.config.coffeeEq)
9276
9377
  return "!==";
9277
9378
  return "!=";
9278
9379
  });
9279
- var BinaryOpSymbol$25 = $TS($S($EXPECT($L81, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9380
+ var BinaryOpSymbol$25 = $TS($S($EXPECT($L86, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9280
9381
  if (module.config.coffeeIsnt)
9281
9382
  return "!==";
9282
9383
  return $skip;
9283
9384
  });
9284
- var BinaryOpSymbol$26 = $EXPECT($L82, 'BinaryOpSymbol "==="');
9285
- var BinaryOpSymbol$27 = $T($C($EXPECT($L83, 'BinaryOpSymbol "\u2263"'), $EXPECT($L84, 'BinaryOpSymbol "\u2A76"')), function(value) {
9385
+ var BinaryOpSymbol$26 = $EXPECT($L87, 'BinaryOpSymbol "==="');
9386
+ var BinaryOpSymbol$27 = $T($C($EXPECT($L88, 'BinaryOpSymbol "\u2263"'), $EXPECT($L89, 'BinaryOpSymbol "\u2A76"')), function(value) {
9286
9387
  return "===";
9287
9388
  });
9288
- var BinaryOpSymbol$28 = $TV($C($EXPECT($L85, 'BinaryOpSymbol "=="'), $EXPECT($L86, 'BinaryOpSymbol "\u2261"'), $EXPECT($L87, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
9389
+ var BinaryOpSymbol$28 = $TV($C($EXPECT($L90, 'BinaryOpSymbol "=="'), $EXPECT($L91, 'BinaryOpSymbol "\u2261"'), $EXPECT($L92, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
9289
9390
  if (module.config.coffeeEq)
9290
9391
  return "===";
9291
9392
  return "==";
9292
9393
  });
9293
- var BinaryOpSymbol$29 = $T($S($EXPECT($L88, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
9394
+ var BinaryOpSymbol$29 = $T($S($EXPECT($L93, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
9294
9395
  return "&&";
9295
9396
  });
9296
- var BinaryOpSymbol$30 = $EXPECT($L89, 'BinaryOpSymbol "&&"');
9297
- var BinaryOpSymbol$31 = $T($S($EXPECT($L90, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
9397
+ var BinaryOpSymbol$30 = $EXPECT($L94, 'BinaryOpSymbol "&&"');
9398
+ var BinaryOpSymbol$31 = $T($S($EXPECT($L95, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
9298
9399
  return "||";
9299
9400
  });
9300
- var BinaryOpSymbol$32 = $EXPECT($L91, 'BinaryOpSymbol "||"');
9301
- var BinaryOpSymbol$33 = $T($EXPECT($L92, 'BinaryOpSymbol "\u2016"'), function(value) {
9401
+ var BinaryOpSymbol$32 = $EXPECT($L96, 'BinaryOpSymbol "||"');
9402
+ var BinaryOpSymbol$33 = $T($EXPECT($L97, 'BinaryOpSymbol "\u2016"'), function(value) {
9302
9403
  return "||";
9303
9404
  });
9304
- var BinaryOpSymbol$34 = $TV($C($EXPECT($L93, 'BinaryOpSymbol "^^"'), $S($EXPECT($L94, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9405
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($L98, 'BinaryOpSymbol "^^"'), $S($EXPECT($L99, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9305
9406
  return {
9306
9407
  call: module.getRef("xor"),
9307
9408
  special: true,
9308
9409
  prec: "^^"
9309
9410
  };
9310
9411
  });
9311
- var BinaryOpSymbol$35 = $TV($C($EXPECT($R19, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L95, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9412
+ var BinaryOpSymbol$35 = $TV($C($EXPECT($R19, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L100, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9312
9413
  return {
9313
9414
  call: module.getRef("xnor"),
9314
9415
  special: true,
9315
9416
  prec: "^^"
9316
9417
  };
9317
9418
  });
9318
- var BinaryOpSymbol$36 = $EXPECT($L96, 'BinaryOpSymbol "??"');
9319
- var BinaryOpSymbol$37 = $T($EXPECT($L97, 'BinaryOpSymbol "\u2047"'), function(value) {
9419
+ var BinaryOpSymbol$36 = $EXPECT($L101, 'BinaryOpSymbol "??"');
9420
+ var BinaryOpSymbol$37 = $T($EXPECT($L102, 'BinaryOpSymbol "\u2047"'), function(value) {
9320
9421
  return "??";
9321
9422
  });
9322
9423
  var BinaryOpSymbol$38 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
9323
9424
  return "??";
9324
9425
  });
9325
- var BinaryOpSymbol$39 = $TS($S($EXPECT($L98, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9426
+ var BinaryOpSymbol$39 = $TS($S($EXPECT($L103, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9326
9427
  return {
9327
9428
  $loc,
9328
9429
  token: $1,
@@ -9339,7 +9440,7 @@ ${input.slice(result.pos)}
9339
9440
  var op = $3;
9340
9441
  return { ...op, $loc };
9341
9442
  });
9342
- var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L99, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
9443
+ var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L104, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
9343
9444
  return {
9344
9445
  method: "includes",
9345
9446
  relational: true,
@@ -9347,14 +9448,14 @@ ${input.slice(result.pos)}
9347
9448
  special: true
9348
9449
  };
9349
9450
  });
9350
- var BinaryOpSymbol$43 = $TV($EXPECT($L100, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
9451
+ var BinaryOpSymbol$43 = $TV($EXPECT($L105, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
9351
9452
  return {
9352
9453
  method: "includes",
9353
9454
  relational: true,
9354
9455
  special: true
9355
9456
  };
9356
9457
  });
9357
- var BinaryOpSymbol$44 = $TV($EXPECT($L101, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
9458
+ var BinaryOpSymbol$44 = $TV($EXPECT($L106, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
9358
9459
  return {
9359
9460
  method: "includes",
9360
9461
  relational: true,
@@ -9362,7 +9463,7 @@ ${input.slice(result.pos)}
9362
9463
  negated: true
9363
9464
  };
9364
9465
  });
9365
- var BinaryOpSymbol$45 = $TV($C($S(Is, __, OmittedNegation, __, In), $EXPECT($L102, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
9466
+ var BinaryOpSymbol$45 = $TV($C($S(Is, __, OmittedNegation, __, In), $EXPECT($L107, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
9366
9467
  return {
9367
9468
  method: "includes",
9368
9469
  relational: true,
@@ -9395,9 +9496,9 @@ ${input.slice(result.pos)}
9395
9496
  return "===";
9396
9497
  });
9397
9498
  var BinaryOpSymbol$48 = In;
9398
- var BinaryOpSymbol$49 = $EXPECT($L103, 'BinaryOpSymbol "&"');
9499
+ var BinaryOpSymbol$49 = $EXPECT($L108, 'BinaryOpSymbol "&"');
9399
9500
  var BinaryOpSymbol$50 = $EXPECT($L20, 'BinaryOpSymbol "^"');
9400
- var BinaryOpSymbol$51 = $EXPECT($L104, 'BinaryOpSymbol "|"');
9501
+ var BinaryOpSymbol$51 = $EXPECT($L109, 'BinaryOpSymbol "|"');
9401
9502
  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];
9402
9503
  function BinaryOpSymbol(ctx, state) {
9403
9504
  return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
@@ -9435,7 +9536,7 @@ ${input.slice(result.pos)}
9435
9536
  function CoffeeOfOp(ctx, state) {
9436
9537
  return $EVENT_C(ctx, state, "CoffeeOfOp", CoffeeOfOp$$);
9437
9538
  }
9438
- var NotOp$0 = $TS($S($EXPECT($L98, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9539
+ var NotOp$0 = $TS($S($EXPECT($L103, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9439
9540
  return {
9440
9541
  $loc,
9441
9542
  token: "instanceof",
@@ -9456,14 +9557,14 @@ ${input.slice(result.pos)}
9456
9557
  function NotOp(ctx, state) {
9457
9558
  return $EVENT_C(ctx, state, "NotOp", NotOp$$);
9458
9559
  }
9459
- var Xor$0 = $EXPECT($L93, 'Xor "^^"');
9460
- var Xor$1 = $S($EXPECT($L94, 'Xor "xor"'), NonIdContinue);
9560
+ var Xor$0 = $EXPECT($L98, 'Xor "^^"');
9561
+ var Xor$1 = $S($EXPECT($L99, 'Xor "xor"'), NonIdContinue);
9461
9562
  var Xor$$ = [Xor$0, Xor$1];
9462
9563
  function Xor(ctx, state) {
9463
9564
  return $EVENT_C(ctx, state, "Xor", Xor$$);
9464
9565
  }
9465
9566
  var Xnor$0 = $R$0($EXPECT($R19, "Xnor /!\\^\\^?/"));
9466
- var Xnor$1 = $EXPECT($L95, 'Xnor "xnor"');
9567
+ var Xnor$1 = $EXPECT($L100, 'Xnor "xnor"');
9467
9568
  var Xnor$$ = [Xnor$0, Xnor$1];
9468
9569
  function Xnor(ctx, state) {
9469
9570
  return $EVENT_C(ctx, state, "Xnor", Xnor$$);
@@ -9504,7 +9605,7 @@ ${input.slice(result.pos)}
9504
9605
  return $EVENT_C(ctx, state, "ModuleItem", ModuleItem$$);
9505
9606
  }
9506
9607
  var StatementListItem$0 = Declaration;
9507
- var StatementListItem$1 = $TS($S($N($EXPECT($L105, 'StatementListItem "$:"')), ImplicitObjectLiteral), function($skip, $loc, $0, $1, $2) {
9608
+ var StatementListItem$1 = $TS($S($N($EXPECT($L110, 'StatementListItem "$:"')), ImplicitObjectLiteral), function($skip, $loc, $0, $1, $2) {
9508
9609
  return makeLeftHandSideExpression($2);
9509
9610
  });
9510
9611
  var StatementListItem$2 = PostfixedStatement;
@@ -9614,7 +9715,7 @@ ${input.slice(result.pos)}
9614
9715
  function NoCommaStatement(ctx, state) {
9615
9716
  return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
9616
9717
  }
9617
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L106, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
9718
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L111, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
9618
9719
  return { type: "EmptyStatement", children: $1 || [] };
9619
9720
  });
9620
9721
  function EmptyStatement(ctx, state) {
@@ -9645,7 +9746,7 @@ ${input.slice(result.pos)}
9645
9746
  var w = $3;
9646
9747
  return [id, colon, w];
9647
9748
  });
9648
- var Label$1 = $S($EXPECT($L105, 'Label "$:"'), Whitespace);
9749
+ var Label$1 = $S($EXPECT($L110, 'Label "$:"'), Whitespace);
9649
9750
  var Label$$ = [Label$0, Label$1];
9650
9751
  function Label(ctx, state) {
9651
9752
  return $EVENT_C(ctx, state, "Label", Label$$);
@@ -10754,19 +10855,19 @@ ${input.slice(result.pos)}
10754
10855
  function ThrowStatement(ctx, state) {
10755
10856
  return $EVENT(ctx, state, "ThrowStatement", ThrowStatement$0);
10756
10857
  }
10757
- var Break$0 = $TS($S($EXPECT($L107, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10858
+ var Break$0 = $TS($S($EXPECT($L112, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10758
10859
  return { $loc, token: $1 };
10759
10860
  });
10760
10861
  function Break(ctx, state) {
10761
10862
  return $EVENT(ctx, state, "Break", Break$0);
10762
10863
  }
10763
- var Continue$0 = $TS($S($EXPECT($L108, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10864
+ var Continue$0 = $TS($S($EXPECT($L113, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10764
10865
  return { $loc, token: $1 };
10765
10866
  });
10766
10867
  function Continue(ctx, state) {
10767
10868
  return $EVENT(ctx, state, "Continue", Continue$0);
10768
10869
  }
10769
- var Debugger$0 = $TS($S($EXPECT($L109, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10870
+ var Debugger$0 = $TS($S($EXPECT($L114, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10770
10871
  return { $loc, token: $1 };
10771
10872
  });
10772
10873
  function Debugger(ctx, state) {
@@ -10803,7 +10904,7 @@ ${input.slice(result.pos)}
10803
10904
  function MaybeNestedExpression(ctx, state) {
10804
10905
  return $EVENT_C(ctx, state, "MaybeNestedExpression", MaybeNestedExpression$$);
10805
10906
  }
10806
- var ImportDeclaration$0 = $TS($S(Import, _, Identifier, $E(_), Equals, __, $EXPECT($L110, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10907
+ var ImportDeclaration$0 = $TS($S(Import, _, Identifier, $E(_), Equals, __, $EXPECT($L115, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10807
10908
  const imp = [
10808
10909
  { ...$1, ts: true },
10809
10910
  { ...$1, token: "const", js: true }
@@ -10897,7 +10998,7 @@ ${input.slice(result.pos)}
10897
10998
  function FromClause(ctx, state) {
10898
10999
  return $EVENT(ctx, state, "FromClause", FromClause$0);
10899
11000
  }
10900
- var ImportAssertion$0 = $S($E(_), $C($EXPECT($L111, 'ImportAssertion "with"'), $EXPECT($L112, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
11001
+ var ImportAssertion$0 = $S($E(_), $C($EXPECT($L116, 'ImportAssertion "with"'), $EXPECT($L117, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10901
11002
  function ImportAssertion(ctx, state) {
10902
11003
  return $EVENT(ctx, state, "ImportAssertion", ImportAssertion$0);
10903
11004
  }
@@ -10906,13 +11007,13 @@ ${input.slice(result.pos)}
10906
11007
  return $2;
10907
11008
  return { ts: true, children: $0, binding: $2.binding };
10908
11009
  });
10909
- var TypeAndImportSpecifier$1 = $TS($S(__, Operator, ImportSpecifier), function($skip, $loc, $0, $1, $2, $3) {
11010
+ var TypeAndImportSpecifier$1 = $TS($S(__, Operator, OperatorImportSpecifier), function($skip, $loc, $0, $1, $2, $3) {
10910
11011
  var ws = $1;
10911
11012
  var spec = $3;
10912
11013
  if (spec.binding.type !== "Identifier") {
10913
11014
  throw new Error("Expected identifier after `operator`");
10914
11015
  }
10915
- module.operators.set(spec.binding.name);
11016
+ module.operators.set(spec.binding.name, spec.behavior);
10916
11017
  return {
10917
11018
  ...spec,
10918
11019
  children: [
@@ -10944,6 +11045,28 @@ ${input.slice(result.pos)}
10944
11045
  function ImportSpecifier(ctx, state) {
10945
11046
  return $EVENT_C(ctx, state, "ImportSpecifier", ImportSpecifier$$);
10946
11047
  }
11048
+ var OperatorImportSpecifier$0 = $TS($S(__, ModuleExportName, $E(OperatorBehavior), ImportAsToken, __, ImportedBinding, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
11049
+ var behavior = $3;
11050
+ var binding = $6;
11051
+ return {
11052
+ binding,
11053
+ behavior,
11054
+ children: [$1, $2, $4, $5, $6, $7]
11055
+ };
11056
+ });
11057
+ var OperatorImportSpecifier$1 = $TS($S(__, ImportedBinding, $E(OperatorBehavior), ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
11058
+ var binding = $2;
11059
+ var behavior = $3;
11060
+ return {
11061
+ binding,
11062
+ behavior,
11063
+ children: [$1, $2, $4]
11064
+ };
11065
+ });
11066
+ var OperatorImportSpecifier$$ = [OperatorImportSpecifier$0, OperatorImportSpecifier$1];
11067
+ function OperatorImportSpecifier(ctx, state) {
11068
+ return $EVENT_C(ctx, state, "OperatorImportSpecifier", OperatorImportSpecifier$$);
11069
+ }
10947
11070
  var ImportAsToken$0 = $S(__, As);
10948
11071
  var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L15, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
10949
11072
  var l = $1;
@@ -11155,19 +11278,19 @@ ${input.slice(result.pos)}
11155
11278
  function LexicalDeclaration(ctx, state) {
11156
11279
  return $EVENT_C(ctx, state, "LexicalDeclaration", LexicalDeclaration$$);
11157
11280
  }
11158
- var ConstAssignment$0 = $TV($C($EXPECT($L113, 'ConstAssignment ":="'), $EXPECT($L114, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
11281
+ var ConstAssignment$0 = $TV($C($EXPECT($L118, 'ConstAssignment ":="'), $EXPECT($L119, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
11159
11282
  return { $loc, token: "=" };
11160
11283
  });
11161
11284
  function ConstAssignment(ctx, state) {
11162
11285
  return $EVENT(ctx, state, "ConstAssignment", ConstAssignment$0);
11163
11286
  }
11164
- var LetAssignment$0 = $TV($EXPECT($L115, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
11287
+ var LetAssignment$0 = $TV($EXPECT($L120, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
11165
11288
  return { $loc, token: "=" };
11166
11289
  });
11167
11290
  function LetAssignment(ctx, state) {
11168
11291
  return $EVENT(ctx, state, "LetAssignment", LetAssignment$0);
11169
11292
  }
11170
- var TypeAssignment$0 = $TV($EXPECT($L116, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
11293
+ var TypeAssignment$0 = $TV($EXPECT($L121, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
11171
11294
  return { $loc, token: "=" };
11172
11295
  });
11173
11296
  function TypeAssignment(ctx, state) {
@@ -11365,7 +11488,7 @@ ${input.slice(result.pos)}
11365
11488
  return $EVENT(ctx, state, "CoffeeDoubleQuotedStringCharacters", CoffeeDoubleQuotedStringCharacters$0);
11366
11489
  }
11367
11490
  var RegularExpressionLiteral$0 = HeregexLiteral;
11368
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L61, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L61, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
11491
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L66, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L66, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
11369
11492
  return { type: "RegularExpressionLiteral", $loc, token: $1 };
11370
11493
  });
11371
11494
  var RegularExpressionLiteral$$ = [RegularExpressionLiteral$0, RegularExpressionLiteral$1];
@@ -11577,7 +11700,7 @@ ${input.slice(result.pos)}
11577
11700
  function MultiLineComment(ctx, state) {
11578
11701
  return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
11579
11702
  }
11580
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L117, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L118, 'JSMultiLineComment "*/"')), $EXPECT($R60, "JSMultiLineComment /./"))), $EXPECT($L118, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11703
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L122, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L123, 'JSMultiLineComment "*/"')), $EXPECT($R60, "JSMultiLineComment /./"))), $EXPECT($L123, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11581
11704
  return { type: "Comment", $loc, token: $1 };
11582
11705
  });
11583
11706
  function JSMultiLineComment(ctx, state) {
@@ -11623,7 +11746,7 @@ ${input.slice(result.pos)}
11623
11746
  var NonNewlineWhitespace$0 = $TR($EXPECT($R66, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11624
11747
  return { $loc, token: $0 };
11625
11748
  });
11626
- var NonNewlineWhitespace$1 = $T($S($EXPECT($L119, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
11749
+ var NonNewlineWhitespace$1 = $T($S($EXPECT($L124, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
11627
11750
  return " ";
11628
11751
  });
11629
11752
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
@@ -11669,7 +11792,7 @@ ${input.slice(result.pos)}
11669
11792
  }
11670
11793
  var StatementDelimiter$0 = $Y(EOS);
11671
11794
  var StatementDelimiter$1 = SemicolonDelimiter;
11672
- var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L31, 'StatementDelimiter "}"'), $EXPECT($L120, 'StatementDelimiter ")"'), $EXPECT($L40, 'StatementDelimiter "]"'))));
11795
+ var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L36, 'StatementDelimiter "}"'), $EXPECT($L125, 'StatementDelimiter ")"'), $EXPECT($L45, 'StatementDelimiter "]"'))));
11673
11796
  var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2];
11674
11797
  function StatementDelimiter(ctx, state) {
11675
11798
  return $EVENT_C(ctx, state, "StatementDelimiter", StatementDelimiter$$);
@@ -11693,55 +11816,55 @@ ${input.slice(result.pos)}
11693
11816
  function Loc(ctx, state) {
11694
11817
  return $EVENT(ctx, state, "Loc", Loc$0);
11695
11818
  }
11696
- var Abstract$0 = $TV($TEXT($S($EXPECT($L121, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L15, 'Abstract " "')))), function($skip, $loc, $0, $1) {
11819
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L126, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L15, 'Abstract " "')))), function($skip, $loc, $0, $1) {
11697
11820
  return { $loc, token: $1, ts: true };
11698
11821
  });
11699
11822
  function Abstract(ctx, state) {
11700
11823
  return $EVENT(ctx, state, "Abstract", Abstract$0);
11701
11824
  }
11702
- var Ampersand$0 = $TV($EXPECT($L103, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11825
+ var Ampersand$0 = $TV($EXPECT($L108, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11703
11826
  return { $loc, token: $1 };
11704
11827
  });
11705
11828
  function Ampersand(ctx, state) {
11706
11829
  return $EVENT(ctx, state, "Ampersand", Ampersand$0);
11707
11830
  }
11708
- var As$0 = $TS($S($EXPECT($L122, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11831
+ var As$0 = $TS($S($EXPECT($L127, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11709
11832
  return { $loc, token: $1 };
11710
11833
  });
11711
11834
  function As(ctx, state) {
11712
11835
  return $EVENT(ctx, state, "As", As$0);
11713
11836
  }
11714
- var At$0 = $TV($EXPECT($L123, 'At "@"'), function($skip, $loc, $0, $1) {
11837
+ var At$0 = $TV($EXPECT($L128, 'At "@"'), function($skip, $loc, $0, $1) {
11715
11838
  return { $loc, token: $1 };
11716
11839
  });
11717
11840
  function At(ctx, state) {
11718
11841
  return $EVENT(ctx, state, "At", At$0);
11719
11842
  }
11720
- var AtAt$0 = $TV($EXPECT($L124, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
11843
+ var AtAt$0 = $TV($EXPECT($L129, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
11721
11844
  return { $loc, token: "@" };
11722
11845
  });
11723
11846
  function AtAt(ctx, state) {
11724
11847
  return $EVENT(ctx, state, "AtAt", AtAt$0);
11725
11848
  }
11726
- var Async$0 = $TS($S($EXPECT($L125, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11849
+ var Async$0 = $TS($S($EXPECT($L130, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11727
11850
  return { $loc, token: $1, type: "Async" };
11728
11851
  });
11729
11852
  function Async(ctx, state) {
11730
11853
  return $EVENT(ctx, state, "Async", Async$0);
11731
11854
  }
11732
- var Await$0 = $TS($S($EXPECT($L126, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11855
+ var Await$0 = $TS($S($EXPECT($L131, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11733
11856
  return { $loc, token: $1, type: "Await" };
11734
11857
  });
11735
11858
  function Await(ctx, state) {
11736
11859
  return $EVENT(ctx, state, "Await", Await$0);
11737
11860
  }
11738
- var Backtick$0 = $TV($EXPECT($L127, 'Backtick "`"'), function($skip, $loc, $0, $1) {
11861
+ var Backtick$0 = $TV($EXPECT($L132, 'Backtick "`"'), function($skip, $loc, $0, $1) {
11739
11862
  return { $loc, token: $1 };
11740
11863
  });
11741
11864
  function Backtick(ctx, state) {
11742
11865
  return $EVENT(ctx, state, "Backtick", Backtick$0);
11743
11866
  }
11744
- var By$0 = $TS($S($EXPECT($L128, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11867
+ var By$0 = $TS($S($EXPECT($L133, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11745
11868
  return { $loc, token: $1 };
11746
11869
  });
11747
11870
  function By(ctx, state) {
@@ -11753,49 +11876,49 @@ ${input.slice(result.pos)}
11753
11876
  function Caret(ctx, state) {
11754
11877
  return $EVENT(ctx, state, "Caret", Caret$0);
11755
11878
  }
11756
- var Case$0 = $TS($S($EXPECT($L129, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11879
+ var Case$0 = $TS($S($EXPECT($L134, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11757
11880
  return { $loc, token: $1 };
11758
11881
  });
11759
11882
  function Case(ctx, state) {
11760
11883
  return $EVENT(ctx, state, "Case", Case$0);
11761
11884
  }
11762
- var Catch$0 = $TS($S($EXPECT($L130, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11885
+ var Catch$0 = $TS($S($EXPECT($L135, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11763
11886
  return { $loc, token: $1 };
11764
11887
  });
11765
11888
  function Catch(ctx, state) {
11766
11889
  return $EVENT(ctx, state, "Catch", Catch$0);
11767
11890
  }
11768
- var Class$0 = $TS($S($EXPECT($L131, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11891
+ var Class$0 = $TS($S($EXPECT($L136, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11769
11892
  return { $loc, token: $1 };
11770
11893
  });
11771
11894
  function Class(ctx, state) {
11772
11895
  return $EVENT(ctx, state, "Class", Class$0);
11773
11896
  }
11774
- var CloseAngleBracket$0 = $TV($EXPECT($L39, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
11897
+ var CloseAngleBracket$0 = $TV($EXPECT($L44, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
11775
11898
  return { $loc, token: $1 };
11776
11899
  });
11777
11900
  function CloseAngleBracket(ctx, state) {
11778
11901
  return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
11779
11902
  }
11780
- var CloseBrace$0 = $TV($EXPECT($L31, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11903
+ var CloseBrace$0 = $TV($EXPECT($L36, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11781
11904
  return { $loc, token: $1 };
11782
11905
  });
11783
11906
  function CloseBrace(ctx, state) {
11784
11907
  return $EVENT(ctx, state, "CloseBrace", CloseBrace$0);
11785
11908
  }
11786
- var CloseBracket$0 = $TV($EXPECT($L40, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11909
+ var CloseBracket$0 = $TV($EXPECT($L45, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11787
11910
  return { $loc, token: $1 };
11788
11911
  });
11789
11912
  function CloseBracket(ctx, state) {
11790
11913
  return $EVENT(ctx, state, "CloseBracket", CloseBracket$0);
11791
11914
  }
11792
- var CloseParen$0 = $TV($EXPECT($L120, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11915
+ var CloseParen$0 = $TV($EXPECT($L125, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11793
11916
  return { $loc, token: $1 };
11794
11917
  });
11795
11918
  function CloseParen(ctx, state) {
11796
11919
  return $EVENT(ctx, state, "CloseParen", CloseParen$0);
11797
11920
  }
11798
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L132, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
11921
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L137, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
11799
11922
  return { $loc, token: "${" };
11800
11923
  });
11801
11924
  function CoffeeSubstitutionStart(ctx, state) {
@@ -11813,31 +11936,31 @@ ${input.slice(result.pos)}
11813
11936
  function Comma(ctx, state) {
11814
11937
  return $EVENT(ctx, state, "Comma", Comma$0);
11815
11938
  }
11816
- var ConstructorShorthand$0 = $TV($EXPECT($L123, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11939
+ var ConstructorShorthand$0 = $TV($EXPECT($L128, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11817
11940
  return { $loc, token: "constructor" };
11818
11941
  });
11819
11942
  function ConstructorShorthand(ctx, state) {
11820
11943
  return $EVENT(ctx, state, "ConstructorShorthand", ConstructorShorthand$0);
11821
11944
  }
11822
- var Declare$0 = $TS($S($EXPECT($L133, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11945
+ var Declare$0 = $TS($S($EXPECT($L138, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11823
11946
  return { $loc, token: $1 };
11824
11947
  });
11825
11948
  function Declare(ctx, state) {
11826
11949
  return $EVENT(ctx, state, "Declare", Declare$0);
11827
11950
  }
11828
- var Default$0 = $TS($S($EXPECT($L134, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11951
+ var Default$0 = $TS($S($EXPECT($L139, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11829
11952
  return { $loc, token: $1 };
11830
11953
  });
11831
11954
  function Default(ctx, state) {
11832
11955
  return $EVENT(ctx, state, "Default", Default$0);
11833
11956
  }
11834
- var Delete$0 = $TS($S($EXPECT($L135, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11957
+ var Delete$0 = $TS($S($EXPECT($L140, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11835
11958
  return { $loc, token: $1 };
11836
11959
  });
11837
11960
  function Delete(ctx, state) {
11838
11961
  return $EVENT(ctx, state, "Delete", Delete$0);
11839
11962
  }
11840
- var Do$0 = $TS($S($EXPECT($L136, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11963
+ var Do$0 = $TS($S($EXPECT($L141, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11841
11964
  return { $loc, token: $1 };
11842
11965
  });
11843
11966
  function Do(ctx, state) {
@@ -11857,45 +11980,45 @@ ${input.slice(result.pos)}
11857
11980
  function Dot(ctx, state) {
11858
11981
  return $EVENT_C(ctx, state, "Dot", Dot$$);
11859
11982
  }
11860
- var DotDot$0 = $TS($S($EXPECT($L137, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
11983
+ var DotDot$0 = $TS($S($EXPECT($L142, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
11861
11984
  return { $loc, token: $1 };
11862
11985
  });
11863
- var DotDot$1 = $TV($EXPECT($L138, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
11986
+ var DotDot$1 = $TV($EXPECT($L143, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
11864
11987
  return { $loc, token: ".." };
11865
11988
  });
11866
11989
  var DotDot$$ = [DotDot$0, DotDot$1];
11867
11990
  function DotDot(ctx, state) {
11868
11991
  return $EVENT_C(ctx, state, "DotDot", DotDot$$);
11869
11992
  }
11870
- var DotDotDot$0 = $TV($EXPECT($L139, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
11993
+ var DotDotDot$0 = $TV($EXPECT($L144, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
11871
11994
  return { $loc, token: $1 };
11872
11995
  });
11873
- var DotDotDot$1 = $TV($EXPECT($L140, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
11996
+ var DotDotDot$1 = $TV($EXPECT($L145, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
11874
11997
  return { $loc, token: "..." };
11875
11998
  });
11876
11999
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
11877
12000
  function DotDotDot(ctx, state) {
11878
12001
  return $EVENT_C(ctx, state, "DotDotDot", DotDotDot$$);
11879
12002
  }
11880
- var DoubleColon$0 = $TV($EXPECT($L141, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12003
+ var DoubleColon$0 = $TV($EXPECT($L146, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
11881
12004
  return { $loc, token: $1 };
11882
12005
  });
11883
12006
  function DoubleColon(ctx, state) {
11884
12007
  return $EVENT(ctx, state, "DoubleColon", DoubleColon$0);
11885
12008
  }
11886
- var DoubleQuote$0 = $TV($EXPECT($L142, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12009
+ var DoubleQuote$0 = $TV($EXPECT($L147, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
11887
12010
  return { $loc, token: $1 };
11888
12011
  });
11889
12012
  function DoubleQuote(ctx, state) {
11890
12013
  return $EVENT(ctx, state, "DoubleQuote", DoubleQuote$0);
11891
12014
  }
11892
- var Each$0 = $TS($S($EXPECT($L143, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12015
+ var Each$0 = $TS($S($EXPECT($L148, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11893
12016
  return { $loc, token: $1 };
11894
12017
  });
11895
12018
  function Each(ctx, state) {
11896
12019
  return $EVENT(ctx, state, "Each", Each$0);
11897
12020
  }
11898
- var Else$0 = $TS($S($EXPECT($L144, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12021
+ var Else$0 = $TS($S($EXPECT($L149, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11899
12022
  return { $loc, token: $1 };
11900
12023
  });
11901
12024
  function Else(ctx, state) {
@@ -11907,61 +12030,61 @@ ${input.slice(result.pos)}
11907
12030
  function Equals(ctx, state) {
11908
12031
  return $EVENT(ctx, state, "Equals", Equals$0);
11909
12032
  }
11910
- var ExclamationPoint$0 = $TV($EXPECT($L145, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
12033
+ var ExclamationPoint$0 = $TV($EXPECT($L150, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
11911
12034
  return { $loc, token: $1 };
11912
12035
  });
11913
12036
  function ExclamationPoint(ctx, state) {
11914
12037
  return $EVENT(ctx, state, "ExclamationPoint", ExclamationPoint$0);
11915
12038
  }
11916
- var Export$0 = $TS($S($EXPECT($L146, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12039
+ var Export$0 = $TS($S($EXPECT($L151, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11917
12040
  return { $loc, token: $1 };
11918
12041
  });
11919
12042
  function Export(ctx, state) {
11920
12043
  return $EVENT(ctx, state, "Export", Export$0);
11921
12044
  }
11922
- var Extends$0 = $TS($S($EXPECT($L147, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12045
+ var Extends$0 = $TS($S($EXPECT($L152, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11923
12046
  return { $loc, token: $1 };
11924
12047
  });
11925
12048
  function Extends(ctx, state) {
11926
12049
  return $EVENT(ctx, state, "Extends", Extends$0);
11927
12050
  }
11928
- var Finally$0 = $TS($S($EXPECT($L148, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12051
+ var Finally$0 = $TS($S($EXPECT($L153, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11929
12052
  return { $loc, token: $1 };
11930
12053
  });
11931
12054
  function Finally(ctx, state) {
11932
12055
  return $EVENT(ctx, state, "Finally", Finally$0);
11933
12056
  }
11934
- var For$0 = $TS($S($EXPECT($L149, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12057
+ var For$0 = $TS($S($EXPECT($L154, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11935
12058
  return { $loc, token: $1 };
11936
12059
  });
11937
12060
  function For(ctx, state) {
11938
12061
  return $EVENT(ctx, state, "For", For$0);
11939
12062
  }
11940
- var From$0 = $TS($S($EXPECT($L150, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12063
+ var From$0 = $TS($S($EXPECT($L155, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11941
12064
  return { $loc, token: $1 };
11942
12065
  });
11943
12066
  function From(ctx, state) {
11944
12067
  return $EVENT(ctx, state, "From", From$0);
11945
12068
  }
11946
- var Function$0 = $TS($S($EXPECT($L151, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12069
+ var Function$0 = $TS($S($EXPECT($L156, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11947
12070
  return { $loc, token: $1 };
11948
12071
  });
11949
12072
  function Function(ctx, state) {
11950
12073
  return $EVENT(ctx, state, "Function", Function$0);
11951
12074
  }
11952
- var GetOrSet$0 = $TS($S($C($EXPECT($L152, 'GetOrSet "get"'), $EXPECT($L153, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12075
+ var GetOrSet$0 = $TS($S($C($EXPECT($L157, 'GetOrSet "get"'), $EXPECT($L158, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11953
12076
  return { $loc, token: $1, type: "GetOrSet" };
11954
12077
  });
11955
12078
  function GetOrSet(ctx, state) {
11956
12079
  return $EVENT(ctx, state, "GetOrSet", GetOrSet$0);
11957
12080
  }
11958
- var Hash$0 = $TV($EXPECT($L154, 'Hash "#"'), function($skip, $loc, $0, $1) {
12081
+ var Hash$0 = $TV($EXPECT($L159, 'Hash "#"'), function($skip, $loc, $0, $1) {
11959
12082
  return { $loc, token: $1 };
11960
12083
  });
11961
12084
  function Hash(ctx, state) {
11962
12085
  return $EVENT(ctx, state, "Hash", Hash$0);
11963
12086
  }
11964
- var If$0 = $TV($TEXT($S($EXPECT($L155, 'If "if"'), NonIdContinue, $E($EXPECT($L15, 'If " "')))), function($skip, $loc, $0, $1) {
12087
+ var If$0 = $TV($TEXT($S($EXPECT($L160, 'If "if"'), NonIdContinue, $E($EXPECT($L15, 'If " "')))), function($skip, $loc, $0, $1) {
11965
12088
  return { $loc, token: $1 };
11966
12089
  });
11967
12090
  function If(ctx, state) {
@@ -11973,31 +12096,31 @@ ${input.slice(result.pos)}
11973
12096
  function Import(ctx, state) {
11974
12097
  return $EVENT(ctx, state, "Import", Import$0);
11975
12098
  }
11976
- var In$0 = $TS($S($EXPECT($L156, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12099
+ var In$0 = $TS($S($EXPECT($L161, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11977
12100
  return { $loc, token: $1 };
11978
12101
  });
11979
12102
  function In(ctx, state) {
11980
12103
  return $EVENT(ctx, state, "In", In$0);
11981
12104
  }
11982
- var Infer$0 = $TS($S($EXPECT($L157, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12105
+ var Infer$0 = $TS($S($EXPECT($L162, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11983
12106
  return { $loc, token: $1 };
11984
12107
  });
11985
12108
  function Infer(ctx, state) {
11986
12109
  return $EVENT(ctx, state, "Infer", Infer$0);
11987
12110
  }
11988
- var LetOrConst$0 = $TS($S($C($EXPECT($L158, 'LetOrConst "let"'), $EXPECT($L159, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12111
+ var LetOrConst$0 = $TS($S($C($EXPECT($L163, 'LetOrConst "let"'), $EXPECT($L164, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11989
12112
  return { $loc, token: $1 };
11990
12113
  });
11991
12114
  function LetOrConst(ctx, state) {
11992
12115
  return $EVENT(ctx, state, "LetOrConst", LetOrConst$0);
11993
12116
  }
11994
- var Const$0 = $TS($S($EXPECT($L159, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12117
+ var Const$0 = $TS($S($EXPECT($L164, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11995
12118
  return { $loc, token: $1 };
11996
12119
  });
11997
12120
  function Const(ctx, state) {
11998
12121
  return $EVENT(ctx, state, "Const", Const$0);
11999
12122
  }
12000
- var Is$0 = $TS($S($EXPECT($L160, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12123
+ var Is$0 = $TS($S($EXPECT($L165, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12001
12124
  return { $loc, token: $1 };
12002
12125
  });
12003
12126
  function Is(ctx, state) {
@@ -12009,25 +12132,25 @@ ${input.slice(result.pos)}
12009
12132
  function LetOrConstOrVar(ctx, state) {
12010
12133
  return $EVENT_C(ctx, state, "LetOrConstOrVar", LetOrConstOrVar$$);
12011
12134
  }
12012
- var Loop$0 = $TS($S($EXPECT($L161, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12135
+ var Loop$0 = $TS($S($EXPECT($L166, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12013
12136
  return { $loc, token: "while(true)" };
12014
12137
  });
12015
12138
  function Loop(ctx, state) {
12016
12139
  return $EVENT(ctx, state, "Loop", Loop$0);
12017
12140
  }
12018
- var New$0 = $TS($S($EXPECT($L162, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12141
+ var New$0 = $TS($S($EXPECT($L167, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12019
12142
  return { $loc, token: $1 };
12020
12143
  });
12021
12144
  function New(ctx, state) {
12022
12145
  return $EVENT(ctx, state, "New", New$0);
12023
12146
  }
12024
- var Not$0 = $TS($S($EXPECT($L163, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L14, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
12147
+ var Not$0 = $TS($S($EXPECT($L168, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L14, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
12025
12148
  return { $loc, token: "!" };
12026
12149
  });
12027
12150
  function Not(ctx, state) {
12028
12151
  return $EVENT(ctx, state, "Not", Not$0);
12029
12152
  }
12030
- var Of$0 = $TS($S($EXPECT($L164, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12153
+ var Of$0 = $TS($S($EXPECT($L169, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12031
12154
  return { $loc, token: $1 };
12032
12155
  });
12033
12156
  function Of(ctx, state) {
@@ -12045,7 +12168,7 @@ ${input.slice(result.pos)}
12045
12168
  function OpenBrace(ctx, state) {
12046
12169
  return $EVENT(ctx, state, "OpenBrace", OpenBrace$0);
12047
12170
  }
12048
- var OpenBracket$0 = $TV($EXPECT($L165, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
12171
+ var OpenBracket$0 = $TV($EXPECT($L170, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
12049
12172
  return { $loc, token: $1 };
12050
12173
  });
12051
12174
  function OpenBracket(ctx, state) {
@@ -12057,43 +12180,43 @@ ${input.slice(result.pos)}
12057
12180
  function OpenParen(ctx, state) {
12058
12181
  return $EVENT(ctx, state, "OpenParen", OpenParen$0);
12059
12182
  }
12060
- var Operator$0 = $TS($S($EXPECT($L166, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12183
+ var Operator$0 = $TS($S($EXPECT($L171, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12061
12184
  return { $loc, token: $1 };
12062
12185
  });
12063
12186
  function Operator(ctx, state) {
12064
12187
  return $EVENT(ctx, state, "Operator", Operator$0);
12065
12188
  }
12066
- var Own$0 = $TS($S($EXPECT($L167, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12189
+ var Own$0 = $TS($S($EXPECT($L172, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12067
12190
  return { $loc, token: $1 };
12068
12191
  });
12069
12192
  function Own(ctx, state) {
12070
12193
  return $EVENT(ctx, state, "Own", Own$0);
12071
12194
  }
12072
- var Public$0 = $TS($S($EXPECT($L168, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12195
+ var Public$0 = $TS($S($EXPECT($L173, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12073
12196
  return { $loc, token: $1 };
12074
12197
  });
12075
12198
  function Public(ctx, state) {
12076
12199
  return $EVENT(ctx, state, "Public", Public$0);
12077
12200
  }
12078
- var Private$0 = $TS($S($EXPECT($L169, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12201
+ var Private$0 = $TS($S($EXPECT($L174, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12079
12202
  return { $loc, token: $1 };
12080
12203
  });
12081
12204
  function Private(ctx, state) {
12082
12205
  return $EVENT(ctx, state, "Private", Private$0);
12083
12206
  }
12084
- var Protected$0 = $TS($S($EXPECT($L170, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12207
+ var Protected$0 = $TS($S($EXPECT($L175, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12085
12208
  return { $loc, token: $1 };
12086
12209
  });
12087
12210
  function Protected(ctx, state) {
12088
12211
  return $EVENT(ctx, state, "Protected", Protected$0);
12089
12212
  }
12090
- var Pipe$0 = $TV($C($EXPECT($L171, 'Pipe "||>"'), $EXPECT($L172, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
12213
+ var Pipe$0 = $TV($C($EXPECT($L176, 'Pipe "||>"'), $EXPECT($L177, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
12091
12214
  return { $loc, token: "||>" };
12092
12215
  });
12093
- var Pipe$1 = $TV($C($EXPECT($L173, 'Pipe "|>="'), $EXPECT($L174, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
12216
+ var Pipe$1 = $TV($C($EXPECT($L178, 'Pipe "|>="'), $EXPECT($L179, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
12094
12217
  return { $loc, token: "|>=" };
12095
12218
  });
12096
- var Pipe$2 = $TV($C($EXPECT($L175, 'Pipe "|>"'), $EXPECT($L176, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
12219
+ var Pipe$2 = $TV($C($EXPECT($L180, 'Pipe "|>"'), $EXPECT($L181, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
12097
12220
  return { $loc, token: "|>" };
12098
12221
  });
12099
12222
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -12106,173 +12229,173 @@ ${input.slice(result.pos)}
12106
12229
  function QuestionMark(ctx, state) {
12107
12230
  return $EVENT(ctx, state, "QuestionMark", QuestionMark$0);
12108
12231
  }
12109
- var Readonly$0 = $TS($S($EXPECT($L177, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12232
+ var Readonly$0 = $TS($S($EXPECT($L182, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12110
12233
  return { $loc, token: $1, ts: true };
12111
12234
  });
12112
12235
  function Readonly(ctx, state) {
12113
12236
  return $EVENT(ctx, state, "Readonly", Readonly$0);
12114
12237
  }
12115
- var Return$0 = $TS($S($EXPECT($L178, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12238
+ var Return$0 = $TS($S($EXPECT($L183, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12116
12239
  return { $loc, token: $1 };
12117
12240
  });
12118
12241
  function Return(ctx, state) {
12119
12242
  return $EVENT(ctx, state, "Return", Return$0);
12120
12243
  }
12121
- var Satisfies$0 = $TS($S($EXPECT($L179, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12244
+ var Satisfies$0 = $TS($S($EXPECT($L184, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12122
12245
  return { $loc, token: $1 };
12123
12246
  });
12124
12247
  function Satisfies(ctx, state) {
12125
12248
  return $EVENT(ctx, state, "Satisfies", Satisfies$0);
12126
12249
  }
12127
- var Semicolon$0 = $TV($EXPECT($L106, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
12250
+ var Semicolon$0 = $TV($EXPECT($L111, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
12128
12251
  return { $loc, token: $1 };
12129
12252
  });
12130
12253
  function Semicolon(ctx, state) {
12131
12254
  return $EVENT(ctx, state, "Semicolon", Semicolon$0);
12132
12255
  }
12133
- var SingleQuote$0 = $TV($EXPECT($L180, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
12256
+ var SingleQuote$0 = $TV($EXPECT($L185, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
12134
12257
  return { $loc, token: $1 };
12135
12258
  });
12136
12259
  function SingleQuote(ctx, state) {
12137
12260
  return $EVENT(ctx, state, "SingleQuote", SingleQuote$0);
12138
12261
  }
12139
- var Star$0 = $TV($EXPECT($L60, 'Star "*"'), function($skip, $loc, $0, $1) {
12262
+ var Star$0 = $TV($EXPECT($L65, 'Star "*"'), function($skip, $loc, $0, $1) {
12140
12263
  return { $loc, token: $1 };
12141
12264
  });
12142
12265
  function Star(ctx, state) {
12143
12266
  return $EVENT(ctx, state, "Star", Star$0);
12144
12267
  }
12145
- var Static$0 = $TS($S($EXPECT($L181, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12268
+ var Static$0 = $TS($S($EXPECT($L186, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12146
12269
  return { $loc, token: $1 };
12147
12270
  });
12148
- var Static$1 = $TS($S($EXPECT($L123, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L123, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
12271
+ var Static$1 = $TS($S($EXPECT($L128, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L128, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
12149
12272
  return { $loc, token: "static " };
12150
12273
  });
12151
12274
  var Static$$ = [Static$0, Static$1];
12152
12275
  function Static(ctx, state) {
12153
12276
  return $EVENT_C(ctx, state, "Static", Static$$);
12154
12277
  }
12155
- var SubstitutionStart$0 = $TV($EXPECT($L182, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
12278
+ var SubstitutionStart$0 = $TV($EXPECT($L187, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
12156
12279
  return { $loc, token: $1 };
12157
12280
  });
12158
12281
  function SubstitutionStart(ctx, state) {
12159
12282
  return $EVENT(ctx, state, "SubstitutionStart", SubstitutionStart$0);
12160
12283
  }
12161
- var Super$0 = $TS($S($EXPECT($L183, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12284
+ var Super$0 = $TS($S($EXPECT($L188, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12162
12285
  return { $loc, token: $1 };
12163
12286
  });
12164
12287
  function Super(ctx, state) {
12165
12288
  return $EVENT(ctx, state, "Super", Super$0);
12166
12289
  }
12167
- var Switch$0 = $TS($S($EXPECT($L184, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12290
+ var Switch$0 = $TS($S($EXPECT($L189, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12168
12291
  return { $loc, token: $1 };
12169
12292
  });
12170
12293
  function Switch(ctx, state) {
12171
12294
  return $EVENT(ctx, state, "Switch", Switch$0);
12172
12295
  }
12173
- var Target$0 = $TS($S($EXPECT($L185, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12296
+ var Target$0 = $TS($S($EXPECT($L190, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12174
12297
  return { $loc, token: $1 };
12175
12298
  });
12176
12299
  function Target(ctx, state) {
12177
12300
  return $EVENT(ctx, state, "Target", Target$0);
12178
12301
  }
12179
- var Then$0 = $TS($S(__, $EXPECT($L186, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
12302
+ var Then$0 = $TS($S(__, $EXPECT($L191, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
12180
12303
  return { $loc, token: "" };
12181
12304
  });
12182
12305
  function Then(ctx, state) {
12183
12306
  return $EVENT(ctx, state, "Then", Then$0);
12184
12307
  }
12185
- var This$0 = $TS($S($EXPECT($L187, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12308
+ var This$0 = $TS($S($EXPECT($L192, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12186
12309
  return { $loc, token: $1 };
12187
12310
  });
12188
12311
  function This(ctx, state) {
12189
12312
  return $EVENT(ctx, state, "This", This$0);
12190
12313
  }
12191
- var Throw$0 = $TS($S($EXPECT($L188, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12314
+ var Throw$0 = $TS($S($EXPECT($L193, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12192
12315
  return { $loc, token: $1 };
12193
12316
  });
12194
12317
  function Throw(ctx, state) {
12195
12318
  return $EVENT(ctx, state, "Throw", Throw$0);
12196
12319
  }
12197
- var TripleDoubleQuote$0 = $TV($EXPECT($L189, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
12320
+ var TripleDoubleQuote$0 = $TV($EXPECT($L194, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
12198
12321
  return { $loc, token: "`" };
12199
12322
  });
12200
12323
  function TripleDoubleQuote(ctx, state) {
12201
12324
  return $EVENT(ctx, state, "TripleDoubleQuote", TripleDoubleQuote$0);
12202
12325
  }
12203
- var TripleSingleQuote$0 = $TV($EXPECT($L190, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
12326
+ var TripleSingleQuote$0 = $TV($EXPECT($L195, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
12204
12327
  return { $loc, token: "`" };
12205
12328
  });
12206
12329
  function TripleSingleQuote(ctx, state) {
12207
12330
  return $EVENT(ctx, state, "TripleSingleQuote", TripleSingleQuote$0);
12208
12331
  }
12209
- var TripleSlash$0 = $TV($EXPECT($L191, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
12332
+ var TripleSlash$0 = $TV($EXPECT($L196, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
12210
12333
  return { $loc, token: "/" };
12211
12334
  });
12212
12335
  function TripleSlash(ctx, state) {
12213
12336
  return $EVENT(ctx, state, "TripleSlash", TripleSlash$0);
12214
12337
  }
12215
- var TripleTick$0 = $TV($EXPECT($L192, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
12338
+ var TripleTick$0 = $TV($EXPECT($L197, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
12216
12339
  return { $loc, token: "`" };
12217
12340
  });
12218
12341
  function TripleTick(ctx, state) {
12219
12342
  return $EVENT(ctx, state, "TripleTick", TripleTick$0);
12220
12343
  }
12221
- var Try$0 = $TS($S($EXPECT($L193, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12344
+ var Try$0 = $TS($S($EXPECT($L198, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12222
12345
  return { $loc, token: $1 };
12223
12346
  });
12224
12347
  function Try(ctx, state) {
12225
12348
  return $EVENT(ctx, state, "Try", Try$0);
12226
12349
  }
12227
- var Typeof$0 = $TS($S($EXPECT($L194, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12350
+ var Typeof$0 = $TS($S($EXPECT($L199, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12228
12351
  return { $loc, token: $1 };
12229
12352
  });
12230
12353
  function Typeof(ctx, state) {
12231
12354
  return $EVENT(ctx, state, "Typeof", Typeof$0);
12232
12355
  }
12233
- var Unless$0 = $TS($S($EXPECT($L195, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12356
+ var Unless$0 = $TS($S($EXPECT($L200, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12234
12357
  return { $loc, token: $1, negated: true };
12235
12358
  });
12236
12359
  function Unless(ctx, state) {
12237
12360
  return $EVENT(ctx, state, "Unless", Unless$0);
12238
12361
  }
12239
- var Until$0 = $TS($S($EXPECT($L196, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12362
+ var Until$0 = $TS($S($EXPECT($L201, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12240
12363
  return { $loc, token: $1 };
12241
12364
  });
12242
12365
  function Until(ctx, state) {
12243
12366
  return $EVENT(ctx, state, "Until", Until$0);
12244
12367
  }
12245
- var Using$0 = $TS($S($EXPECT($L197, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12368
+ var Using$0 = $TS($S($EXPECT($L202, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12246
12369
  return { $loc, token: $1 };
12247
12370
  });
12248
12371
  function Using(ctx, state) {
12249
12372
  return $EVENT(ctx, state, "Using", Using$0);
12250
12373
  }
12251
- var Var$0 = $TS($S($EXPECT($L198, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12374
+ var Var$0 = $TS($S($EXPECT($L203, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12252
12375
  return { $loc, token: $1 };
12253
12376
  });
12254
12377
  function Var(ctx, state) {
12255
12378
  return $EVENT(ctx, state, "Var", Var$0);
12256
12379
  }
12257
- var Void$0 = $TS($S($EXPECT($L199, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12380
+ var Void$0 = $TS($S($EXPECT($L204, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12258
12381
  return { $loc, token: $1 };
12259
12382
  });
12260
12383
  function Void(ctx, state) {
12261
12384
  return $EVENT(ctx, state, "Void", Void$0);
12262
12385
  }
12263
- var When$0 = $TS($S($EXPECT($L200, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12386
+ var When$0 = $TS($S($EXPECT($L205, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12264
12387
  return { $loc, token: "case" };
12265
12388
  });
12266
12389
  function When(ctx, state) {
12267
12390
  return $EVENT(ctx, state, "When", When$0);
12268
12391
  }
12269
- var While$0 = $TS($S($EXPECT($L201, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12392
+ var While$0 = $TS($S($EXPECT($L206, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12270
12393
  return { $loc, token: $1 };
12271
12394
  });
12272
12395
  function While(ctx, state) {
12273
12396
  return $EVENT(ctx, state, "While", While$0);
12274
12397
  }
12275
- var Yield$0 = $TS($S($EXPECT($L202, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12398
+ var Yield$0 = $TS($S($EXPECT($L207, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12276
12399
  return { $loc, token: $1, type: "Yield" };
12277
12400
  });
12278
12401
  function Yield(ctx, state) {
@@ -12351,7 +12474,7 @@ ${input.slice(result.pos)}
12351
12474
  function JSXElement(ctx, state) {
12352
12475
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
12353
12476
  }
12354
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L16, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L203, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12477
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L16, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L208, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12355
12478
  return { type: "JSXElement", children: $0, tag: $2 };
12356
12479
  });
12357
12480
  function JSXSelfClosingElement(ctx, state) {
@@ -12370,7 +12493,7 @@ ${input.slice(result.pos)}
12370
12493
  function PopJSXStack(ctx, state) {
12371
12494
  return $EVENT(ctx, state, "PopJSXStack", PopJSXStack$0);
12372
12495
  }
12373
- var JSXOpeningElement$0 = $S($EXPECT($L16, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L39, 'JSXOpeningElement ">"'));
12496
+ var JSXOpeningElement$0 = $S($EXPECT($L16, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L44, 'JSXOpeningElement ">"'));
12374
12497
  function JSXOpeningElement(ctx, state) {
12375
12498
  return $EVENT(ctx, state, "JSXOpeningElement", JSXOpeningElement$0);
12376
12499
  }
@@ -12385,7 +12508,7 @@ ${input.slice(result.pos)}
12385
12508
  function JSXOptionalClosingElement(ctx, state) {
12386
12509
  return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
12387
12510
  }
12388
- var JSXClosingElement$0 = $S($EXPECT($L204, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L39, 'JSXClosingElement ">"'));
12511
+ var JSXClosingElement$0 = $S($EXPECT($L209, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L44, 'JSXClosingElement ">"'));
12389
12512
  function JSXClosingElement(ctx, state) {
12390
12513
  return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
12391
12514
  }
@@ -12406,7 +12529,7 @@ ${input.slice(result.pos)}
12406
12529
  ];
12407
12530
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
12408
12531
  });
12409
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L205, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12532
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L210, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12410
12533
  var children = $3;
12411
12534
  $0 = $0.slice(1);
12412
12535
  return {
@@ -12419,7 +12542,7 @@ ${input.slice(result.pos)}
12419
12542
  function JSXFragment(ctx, state) {
12420
12543
  return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
12421
12544
  }
12422
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L205, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
12545
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L210, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
12423
12546
  module.JSXTagStack.push("");
12424
12547
  return $1;
12425
12548
  });
@@ -12436,11 +12559,11 @@ ${input.slice(result.pos)}
12436
12559
  function JSXOptionalClosingFragment(ctx, state) {
12437
12560
  return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
12438
12561
  }
12439
- var JSXClosingFragment$0 = $EXPECT($L206, 'JSXClosingFragment "</>"');
12562
+ var JSXClosingFragment$0 = $EXPECT($L211, 'JSXClosingFragment "</>"');
12440
12563
  function JSXClosingFragment(ctx, state) {
12441
12564
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
12442
12565
  }
12443
- var JSXElementName$0 = $TV($Y($S($C($EXPECT($L154, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
12566
+ var JSXElementName$0 = $TV($Y($S($C($EXPECT($L159, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
12444
12567
  return module.config.defaultElement;
12445
12568
  });
12446
12569
  var JSXElementName$1 = $TEXT($S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName)))));
@@ -12618,7 +12741,7 @@ ${input.slice(result.pos)}
12618
12741
  }
12619
12742
  return $skip;
12620
12743
  });
12621
- var JSXAttribute$5 = $TS($S($EXPECT($L154, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
12744
+ var JSXAttribute$5 = $TS($S($EXPECT($L159, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
12622
12745
  return [" ", "id=", $2];
12623
12746
  });
12624
12747
  var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -12860,7 +12983,7 @@ ${input.slice(result.pos)}
12860
12983
  }
12861
12984
  return $skip;
12862
12985
  });
12863
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L31, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12986
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L36, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12864
12987
  return { children: [], jsxChildren: [] };
12865
12988
  });
12866
12989
  var JSXNestedChildren$$ = [JSXNestedChildren$0, JSXNestedChildren$1];
@@ -12915,7 +13038,7 @@ ${input.slice(result.pos)}
12915
13038
  function JSXChild(ctx, state) {
12916
13039
  return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
12917
13040
  }
12918
- var JSXComment$0 = $TS($S($EXPECT($L207, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L208, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
13041
+ var JSXComment$0 = $TS($S($EXPECT($L212, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L213, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12919
13042
  return ["{/*", $2, "*/}"];
12920
13043
  });
12921
13044
  function JSXComment(ctx, state) {
@@ -13102,37 +13225,37 @@ ${input.slice(result.pos)}
13102
13225
  function InterfaceExtendsTarget(ctx, state) {
13103
13226
  return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
13104
13227
  }
13105
- var TypeKeyword$0 = $TS($S($EXPECT($L209, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13228
+ var TypeKeyword$0 = $TS($S($EXPECT($L214, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13106
13229
  return { $loc, token: $1 };
13107
13230
  });
13108
13231
  function TypeKeyword(ctx, state) {
13109
13232
  return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
13110
13233
  }
13111
- var Enum$0 = $TS($S($EXPECT($L210, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13234
+ var Enum$0 = $TS($S($EXPECT($L215, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13112
13235
  return { $loc, token: $1 };
13113
13236
  });
13114
13237
  function Enum(ctx, state) {
13115
13238
  return $EVENT(ctx, state, "Enum", Enum$0);
13116
13239
  }
13117
- var Interface$0 = $TS($S($EXPECT($L211, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13240
+ var Interface$0 = $TS($S($EXPECT($L216, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13118
13241
  return { $loc, token: $1 };
13119
13242
  });
13120
13243
  function Interface(ctx, state) {
13121
13244
  return $EVENT(ctx, state, "Interface", Interface$0);
13122
13245
  }
13123
- var Global$0 = $TS($S($EXPECT($L212, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13246
+ var Global$0 = $TS($S($EXPECT($L217, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13124
13247
  return { $loc, token: $1 };
13125
13248
  });
13126
13249
  function Global(ctx, state) {
13127
13250
  return $EVENT(ctx, state, "Global", Global$0);
13128
13251
  }
13129
- var Module$0 = $TS($S($EXPECT($L213, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13252
+ var Module$0 = $TS($S($EXPECT($L218, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13130
13253
  return { $loc, token: $1 };
13131
13254
  });
13132
13255
  function Module(ctx, state) {
13133
13256
  return $EVENT(ctx, state, "Module", Module$0);
13134
13257
  }
13135
- var Namespace$0 = $TS($S($EXPECT($L214, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13258
+ var Namespace$0 = $TS($S($EXPECT($L219, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13136
13259
  return { $loc, token: $1 };
13137
13260
  });
13138
13261
  function Namespace(ctx, state) {
@@ -13406,7 +13529,7 @@ ${input.slice(result.pos)}
13406
13529
  function ReturnTypeSuffix(ctx, state) {
13407
13530
  return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
13408
13531
  }
13409
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L215, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
13532
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L220, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
13410
13533
  var asserts = $1;
13411
13534
  var t = $2;
13412
13535
  if (asserts) {
@@ -13427,7 +13550,7 @@ ${input.slice(result.pos)}
13427
13550
  function ReturnType(ctx, state) {
13428
13551
  return $EVENT(ctx, state, "ReturnType", ReturnType$0);
13429
13552
  }
13430
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L160, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
13553
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L165, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
13431
13554
  var lhs = $1;
13432
13555
  var rhs = $2;
13433
13556
  if (!rhs)
@@ -13485,8 +13608,8 @@ ${input.slice(result.pos)}
13485
13608
  function TypeUnarySuffix(ctx, state) {
13486
13609
  return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
13487
13610
  }
13488
- var TypeUnaryOp$0 = $S($EXPECT($L216, 'TypeUnaryOp "keyof"'), NonIdContinue);
13489
- var TypeUnaryOp$1 = $S($EXPECT($L177, 'TypeUnaryOp "readonly"'), NonIdContinue);
13611
+ var TypeUnaryOp$0 = $S($EXPECT($L221, 'TypeUnaryOp "keyof"'), NonIdContinue);
13612
+ var TypeUnaryOp$1 = $S($EXPECT($L182, 'TypeUnaryOp "readonly"'), NonIdContinue);
13490
13613
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
13491
13614
  function TypeUnaryOp(ctx, state) {
13492
13615
  return $EVENT_C(ctx, state, "TypeUnaryOp", TypeUnaryOp$$);
@@ -13516,7 +13639,7 @@ ${input.slice(result.pos)}
13516
13639
  function TypeIndexedAccess(ctx, state) {
13517
13640
  return $EVENT_C(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$$);
13518
13641
  }
13519
- var UnknownAlias$0 = $TV($EXPECT($L217, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
13642
+ var UnknownAlias$0 = $TV($EXPECT($L222, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
13520
13643
  return { $loc, token: "unknown" };
13521
13644
  });
13522
13645
  function UnknownAlias(ctx, state) {
@@ -13722,10 +13845,10 @@ ${input.slice(result.pos)}
13722
13845
  }
13723
13846
  var TypeLiteral$0 = TypeTemplateLiteral;
13724
13847
  var TypeLiteral$1 = Literal;
13725
- var TypeLiteral$2 = $TS($S($EXPECT($L199, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13848
+ var TypeLiteral$2 = $TS($S($EXPECT($L204, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13726
13849
  return { type: "VoidType", $loc, token: $1 };
13727
13850
  });
13728
- var TypeLiteral$3 = $TV($EXPECT($L218, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
13851
+ var TypeLiteral$3 = $TV($EXPECT($L223, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
13729
13852
  return { $loc, token: "[]" };
13730
13853
  });
13731
13854
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3];
@@ -13744,16 +13867,16 @@ ${input.slice(result.pos)}
13744
13867
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
13745
13868
  return value[1];
13746
13869
  });
13747
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L14, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L120, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L40, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L31, 'InlineInterfacePropertyDelimiter "}"'))));
13870
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L14, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L125, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L45, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L36, 'InlineInterfacePropertyDelimiter "}"'))));
13748
13871
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
13749
13872
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
13750
13873
  function InlineInterfacePropertyDelimiter(ctx, state) {
13751
13874
  return $EVENT_C(ctx, state, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
13752
13875
  }
13753
- var TypeBinaryOp$0 = $TV($EXPECT($L104, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
13876
+ var TypeBinaryOp$0 = $TV($EXPECT($L109, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
13754
13877
  return { $loc, token: "|" };
13755
13878
  });
13756
- var TypeBinaryOp$1 = $TV($EXPECT($L103, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
13879
+ var TypeBinaryOp$1 = $TV($EXPECT($L108, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
13757
13880
  return { $loc, token: "&" };
13758
13881
  });
13759
13882
  var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
@@ -13770,7 +13893,7 @@ ${input.slice(result.pos)}
13770
13893
  function TypeFunction(ctx, state) {
13771
13894
  return $EVENT(ctx, state, "TypeFunction", TypeFunction$0);
13772
13895
  }
13773
- var TypeArrowFunction$0 = $TV($C($EXPECT($L12, 'TypeArrowFunction "=>"'), $EXPECT($L13, 'TypeArrowFunction "\u21D2"'), $EXPECT($L29, 'TypeArrowFunction "->"'), $EXPECT($L30, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
13896
+ var TypeArrowFunction$0 = $TV($C($EXPECT($L12, 'TypeArrowFunction "=>"'), $EXPECT($L13, 'TypeArrowFunction "\u21D2"'), $EXPECT($L34, 'TypeArrowFunction "->"'), $EXPECT($L35, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
13774
13897
  return { $loc, token: "=>" };
13775
13898
  });
13776
13899
  function TypeArrowFunction(ctx, state) {
@@ -13808,7 +13931,7 @@ ${input.slice(result.pos)}
13808
13931
  function TypeParameters(ctx, state) {
13809
13932
  return $EVENT(ctx, state, "TypeParameters", TypeParameters$0);
13810
13933
  }
13811
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L159, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
13934
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L164, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
13812
13935
  function TypeParameter(ctx, state) {
13813
13936
  return $EVENT(ctx, state, "TypeParameter", TypeParameter$0);
13814
13937
  }
@@ -13821,7 +13944,7 @@ ${input.slice(result.pos)}
13821
13944
  return $EVENT(ctx, state, "TypeInitializer", TypeInitializer$0);
13822
13945
  }
13823
13946
  var TypeParameterDelimiter$0 = $S($E(_), Comma);
13824
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L39, 'TypeParameterDelimiter ">"')));
13947
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L44, 'TypeParameterDelimiter ">"')));
13825
13948
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
13826
13949
  return value[1];
13827
13950
  });
@@ -13851,7 +13974,7 @@ ${input.slice(result.pos)}
13851
13974
  function CivetPrologue(ctx, state) {
13852
13975
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
13853
13976
  }
13854
- var CivetPrologueContent$0 = $TS($S($EXPECT($L219, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R85, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
13977
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L224, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R85, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
13855
13978
  var options = $3;
13856
13979
  return {
13857
13980
  type: "CivetPrologue",
@@ -14726,7 +14849,9 @@ ${input.slice(result.pos)}
14726
14849
  exports.AmpersandFunctionExpression = AmpersandFunctionExpression;
14727
14850
  exports.OperatorDeclaration = OperatorDeclaration;
14728
14851
  exports.OperatorSignature = OperatorSignature;
14852
+ exports.OperatorBehavior = OperatorBehavior;
14729
14853
  exports.OperatorPrecedence = OperatorPrecedence;
14854
+ exports.OperatorAssociativity = OperatorAssociativity;
14730
14855
  exports.AmpersandBlockRHS = AmpersandBlockRHS;
14731
14856
  exports.AmpersandTypeSuffix = AmpersandTypeSuffix;
14732
14857
  exports.AmpersandBlockRHSBody = AmpersandBlockRHSBody;
@@ -14935,6 +15060,7 @@ ${input.slice(result.pos)}
14935
15060
  exports.ImportAssertion = ImportAssertion;
14936
15061
  exports.TypeAndImportSpecifier = TypeAndImportSpecifier;
14937
15062
  exports.ImportSpecifier = ImportSpecifier;
15063
+ exports.OperatorImportSpecifier = OperatorImportSpecifier;
14938
15064
  exports.ImportAsToken = ImportAsToken;
14939
15065
  exports.ModuleExportName = ModuleExportName;
14940
15066
  exports.ModuleSpecifier = ModuleSpecifier;