@danielx/civet 0.6.89 → 0.6.91
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/README.md +1 -2
- package/dist/astro.d.mts +15 -0
- package/dist/astro.d.ts +15 -0
- package/dist/astro.js +452 -0
- package/dist/astro.mjs +22 -0
- package/dist/browser.js +1263 -1097
- package/dist/main.js +1263 -1097
- package/dist/main.mjs +1263 -1097
- package/package.json +5 -1
package/dist/browser.js
CHANGED
|
@@ -41,213 +41,596 @@ var Civet = (() => {
|
|
|
41
41
|
));
|
|
42
42
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
43
43
|
|
|
44
|
-
// source/parser/
|
|
45
|
-
function
|
|
46
|
-
if (
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return;
|
|
44
|
+
// source/parser/op.civet
|
|
45
|
+
function getPrecedence(op) {
|
|
46
|
+
if (typeof op === "string") {
|
|
47
|
+
return precedenceMap.get(op) ?? (() => {
|
|
48
|
+
throw new Error(`Unknown operator: ${op}`);
|
|
49
|
+
})();
|
|
50
|
+
} else if (typeof op.prec === "number") {
|
|
51
|
+
return op.prec;
|
|
52
|
+
} else {
|
|
53
|
+
return precedenceMap.get(op.prec ?? op.token) ?? (op.relational ? precedenceRelational : precedenceCustomDefault);
|
|
55
54
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
}
|
|
56
|
+
function processBinaryOpExpression($0) {
|
|
57
|
+
return recurse(expandChainedComparisons($0));
|
|
58
|
+
function recurse(expandedOps) {
|
|
59
|
+
let i = 2;
|
|
60
|
+
while (i < expandedOps.length) {
|
|
61
|
+
let op = expandedOps[i];
|
|
62
|
+
if (op.special) {
|
|
63
|
+
let advanceLeft2 = function(allowEqual) {
|
|
64
|
+
while (start >= 4) {
|
|
65
|
+
const prevPrec = getPrecedence(expandedOps[start - 2]);
|
|
66
|
+
if (!(prevPrec > prec || allowEqual && prevPrec === prec)) {
|
|
67
|
+
return prevPrec === prec;
|
|
68
|
+
}
|
|
69
|
+
start -= 4;
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}, advanceRight2 = function(allowEqual) {
|
|
73
|
+
while (end + 4 < expandedOps.length) {
|
|
74
|
+
const nextPrec = getPrecedence(expandedOps[end + 2]);
|
|
75
|
+
if (!(nextPrec > prec || allowEqual && nextPrec === prec)) {
|
|
76
|
+
return nextPrec === prec;
|
|
77
|
+
}
|
|
78
|
+
end += 4;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
};
|
|
82
|
+
var advanceLeft = advanceLeft2, advanceRight = advanceRight2;
|
|
83
|
+
let start = i - 2, end = i + 2;
|
|
84
|
+
const prec = getPrecedence(op);
|
|
85
|
+
let error;
|
|
86
|
+
switch (op.assoc) {
|
|
87
|
+
case "left":
|
|
88
|
+
case void 0: {
|
|
89
|
+
advanceLeft2(true);
|
|
90
|
+
advanceRight2(false);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case "right": {
|
|
94
|
+
advanceLeft2(false);
|
|
95
|
+
advanceRight2(true);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case "non": {
|
|
99
|
+
if (advanceLeft2(false) || advanceRight2(false)) {
|
|
100
|
+
error = {
|
|
101
|
+
type: "Error",
|
|
102
|
+
message: `non-associative operator ${op.token} used at same precedence level without parenthesization`
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case "arguments": {
|
|
109
|
+
if (advanceLeft2(false)) {
|
|
110
|
+
error = {
|
|
111
|
+
type: "Error",
|
|
112
|
+
message: `arguments operator ${op.token} used at same precedence level as ${expandedOps[start - 2].token} to the left`
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
advanceRight2(true);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
default: {
|
|
119
|
+
throw new Error(`Unsupported associativity: ${op.assoc}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
let a = start === i - 2 ? expandedOps[start] : expandedOps.slice(start, i - 1);
|
|
123
|
+
let wsOp = expandedOps[i - 1];
|
|
124
|
+
let wsB = expandedOps[i + 1];
|
|
125
|
+
let b = end === i + 2 ? expandedOps[i + 2] : expandedOps.slice(i + 2, end + 1);
|
|
126
|
+
if (op.assoc === "arguments") {
|
|
127
|
+
let i2 = 2;
|
|
128
|
+
while (i2 < b.length) {
|
|
129
|
+
if (prec === getPrecedence(b[i2])) {
|
|
130
|
+
if (!(b[i2].token === op.token)) {
|
|
131
|
+
error ??= {
|
|
132
|
+
type: "Error",
|
|
133
|
+
message: `arguments operator ${op.token} used at same precedence level as ${b[i2].token} to the right`
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
b[i2] = ",";
|
|
137
|
+
}
|
|
138
|
+
i2 += 4;
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
b = recurse(b);
|
|
142
|
+
}
|
|
143
|
+
if (op.token === "instanceof" && b.type === "Literal" && b.children?.[0]?.type === "StringLiteral") {
|
|
144
|
+
a = ["typeof ", makeLeftHandSideExpression(a)];
|
|
145
|
+
if (op.negated) {
|
|
146
|
+
op = { ...op, token: "!==", negated: false };
|
|
147
|
+
} else {
|
|
148
|
+
op = { ...op, token: "===" };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (op.asConst) {
|
|
152
|
+
a = makeAsConst(a);
|
|
153
|
+
b = makeAsConst(b);
|
|
154
|
+
}
|
|
155
|
+
let children;
|
|
156
|
+
if (op.call) {
|
|
157
|
+
wsOp = insertTrimmingSpace(wsOp, "");
|
|
158
|
+
if (op.reversed) {
|
|
159
|
+
wsB = insertTrimmingSpace(wsB, "");
|
|
160
|
+
children = [wsOp, op.call, "(", wsB, b, ", ", a, ")", op.suffix];
|
|
161
|
+
} else {
|
|
162
|
+
children = [wsOp, op.call, "(", a, ",", wsB, b, ")", op.suffix];
|
|
163
|
+
}
|
|
164
|
+
} else if (op.method) {
|
|
165
|
+
wsOp = insertTrimmingSpace(wsOp, "");
|
|
166
|
+
wsB = insertTrimmingSpace(wsB, "");
|
|
167
|
+
if (op.reversed) {
|
|
168
|
+
if (end !== i + 2)
|
|
169
|
+
b = makeLeftHandSideExpression(b);
|
|
170
|
+
b = dotNumericLiteral(b);
|
|
171
|
+
children = [wsB, b, wsOp, ".", op.method, "(", a, ")"];
|
|
172
|
+
} else {
|
|
173
|
+
if (start !== i - 2 || a.type === "NumericLiteral") {
|
|
174
|
+
a = makeLeftHandSideExpression(a);
|
|
175
|
+
}
|
|
176
|
+
a = dotNumericLiteral(a);
|
|
177
|
+
children = [a, wsOp, ".", op.method, "(", wsB, b, ")"];
|
|
178
|
+
}
|
|
179
|
+
} else if (op.token) {
|
|
180
|
+
children = [a, wsOp, op, wsB, b];
|
|
181
|
+
if (op.negated)
|
|
182
|
+
children = ["(", ...children, ")"];
|
|
183
|
+
} else {
|
|
184
|
+
throw new Error("Unknown operator: " + JSON.stringify(op));
|
|
185
|
+
}
|
|
186
|
+
if (op.negated)
|
|
187
|
+
children.unshift("!");
|
|
188
|
+
if (error != null) {
|
|
189
|
+
children.push(error);
|
|
190
|
+
}
|
|
191
|
+
expandedOps.splice(start, end - start + 1, {
|
|
192
|
+
children
|
|
193
|
+
});
|
|
194
|
+
i = start + 2;
|
|
195
|
+
} else {
|
|
196
|
+
i += 4;
|
|
197
|
+
}
|
|
61
198
|
}
|
|
199
|
+
return expandedOps;
|
|
62
200
|
}
|
|
201
|
+
;
|
|
202
|
+
return recurse;
|
|
63
203
|
}
|
|
64
|
-
function
|
|
65
|
-
|
|
66
|
-
|
|
204
|
+
function dotNumericLiteral(literal) {
|
|
205
|
+
if (literal?.type === "Literal" && /^[+-]?(?:0|[1-9](?:_[0-9]|[0-9])*)$/.test(literal.raw)) {
|
|
206
|
+
literal.children.push(".");
|
|
207
|
+
literal.raw += ".";
|
|
208
|
+
}
|
|
209
|
+
return literal;
|
|
67
210
|
}
|
|
68
|
-
function
|
|
69
|
-
if (node
|
|
70
|
-
|
|
71
|
-
if (typeof node !== "object")
|
|
72
|
-
return;
|
|
73
|
-
if (Array.isArray(node)) {
|
|
74
|
-
for (const child of node) {
|
|
75
|
-
removeParentPointers(child);
|
|
76
|
-
}
|
|
77
|
-
return;
|
|
211
|
+
function makeAsConst(node) {
|
|
212
|
+
if (Array.isArray(node) && node.length === 1) {
|
|
213
|
+
node = node[0];
|
|
78
214
|
}
|
|
79
|
-
node.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
215
|
+
if (node.type === "Literal" && node.raw !== "null" || node.type === "ArrayExpression" || node.type === "ObjectExpression") {
|
|
216
|
+
return { ...node, children: [...node.children, asConst] };
|
|
217
|
+
} else {
|
|
218
|
+
return node;
|
|
84
219
|
}
|
|
85
220
|
}
|
|
86
|
-
function
|
|
87
|
-
if (
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
function isFunction(node) {
|
|
93
|
-
const { type } = node;
|
|
94
|
-
return type === "FunctionExpression" || type === "ArrowFunction" || type === "MethodDefinition" || !!node.async;
|
|
95
|
-
}
|
|
96
|
-
function isWhitespaceOrEmpty(node) {
|
|
97
|
-
if (!node)
|
|
98
|
-
return true;
|
|
99
|
-
if (node.type === "Ref")
|
|
100
|
-
return false;
|
|
101
|
-
if (node.token)
|
|
102
|
-
return node.token.match(/^\s*$/);
|
|
103
|
-
if (node.children)
|
|
104
|
-
node = node.children;
|
|
105
|
-
if (!node.length)
|
|
106
|
-
return true;
|
|
107
|
-
if (typeof node === "string")
|
|
108
|
-
return node.match(/^\s*$/);
|
|
109
|
-
if (Array.isArray(node))
|
|
110
|
-
return node.every(isWhitespaceOrEmpty);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
function isExit(node) {
|
|
114
|
-
return [
|
|
115
|
-
"ReturnStatement",
|
|
116
|
-
"ThrowStatement",
|
|
117
|
-
"BreakStatement",
|
|
118
|
-
"ContinueStatement"
|
|
119
|
-
].includes(node?.type);
|
|
120
|
-
}
|
|
121
|
-
function isComma(node) {
|
|
122
|
-
if (node?.token === ",") {
|
|
123
|
-
return node;
|
|
124
|
-
} else if (Array.isArray(node) && node.at(-1)?.token === ",") {
|
|
125
|
-
return node.at(-1);
|
|
221
|
+
function isExistence(exp) {
|
|
222
|
+
if (exp?.type === "ParenthesizedExpression" && exp.implicit) {
|
|
223
|
+
exp = exp.expression;
|
|
224
|
+
}
|
|
225
|
+
if (exp?.type === "Existence") {
|
|
226
|
+
return exp;
|
|
126
227
|
}
|
|
127
228
|
;
|
|
128
229
|
return;
|
|
129
230
|
}
|
|
130
|
-
function
|
|
131
|
-
|
|
132
|
-
|
|
231
|
+
function isRelationalOp(op) {
|
|
232
|
+
return op.relational || getPrecedence(op) === precedenceRelational;
|
|
233
|
+
}
|
|
234
|
+
function expandChainedComparisons([first, binops]) {
|
|
235
|
+
if (!binops.length) {
|
|
236
|
+
return [first];
|
|
133
237
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
238
|
+
const results = [];
|
|
239
|
+
let start = 0;
|
|
240
|
+
const chains = [];
|
|
241
|
+
var i = 0;
|
|
242
|
+
for (let i3 = 0, len2 = binops.length; i3 < len2; i3++) {
|
|
243
|
+
var i = i3;
|
|
244
|
+
var [, op] = binops[i3];
|
|
245
|
+
if (isRelationalOp(op)) {
|
|
246
|
+
chains.push(i);
|
|
247
|
+
} else if (getPrecedence(op) < precedenceRelational) {
|
|
248
|
+
processChains();
|
|
249
|
+
first = results.pop();
|
|
137
250
|
}
|
|
138
|
-
return target.map((e, i) => {
|
|
139
|
-
if (i === 0) {
|
|
140
|
-
return insertTrimmingSpace(e, c);
|
|
141
|
-
}
|
|
142
|
-
return e;
|
|
143
|
-
});
|
|
144
251
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
252
|
+
processChains();
|
|
253
|
+
return results;
|
|
254
|
+
function processChains() {
|
|
255
|
+
if (chains.length > 0) {
|
|
256
|
+
first = expandExistence(first);
|
|
257
|
+
for (let i4 = 0, len3 = chains.length; i4 < len3; i4++) {
|
|
258
|
+
const k = i4;
|
|
259
|
+
const index = chains[i4];
|
|
260
|
+
if (k > 0) {
|
|
261
|
+
results.push(" ", "&&", " ");
|
|
262
|
+
}
|
|
263
|
+
const binop = binops[index];
|
|
264
|
+
const exp = binop[3] = expandExistence(binop[3]);
|
|
265
|
+
results.push(first);
|
|
266
|
+
const endIndex = chains[k + 1] ?? i + 1;
|
|
267
|
+
results.push(...binops.slice(start, endIndex).flat());
|
|
268
|
+
first = [exp].concat(binops.slice(index + 1, endIndex));
|
|
269
|
+
start = endIndex;
|
|
270
|
+
}
|
|
271
|
+
} else {
|
|
272
|
+
results.push(first);
|
|
273
|
+
results.push(...binops.slice(start, i + 1).flat());
|
|
274
|
+
start = i + 1;
|
|
275
|
+
}
|
|
276
|
+
chains.length = 0;
|
|
150
277
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
278
|
+
function expandExistence(exp) {
|
|
279
|
+
let ref;
|
|
280
|
+
if (ref = isExistence(exp)) {
|
|
281
|
+
const existence = ref;
|
|
282
|
+
results.push(existence, " ", "&&", " ");
|
|
283
|
+
return existence.expression;
|
|
284
|
+
} else {
|
|
285
|
+
return exp;
|
|
286
|
+
}
|
|
156
287
|
}
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
function getTrimmingSpace(target) {
|
|
160
|
-
if (!target)
|
|
161
|
-
return;
|
|
162
|
-
if (Array.isArray(target))
|
|
163
|
-
return getTrimmingSpace(target[0]);
|
|
164
|
-
if (target.children)
|
|
165
|
-
return getTrimmingSpace(target.children[0]);
|
|
166
|
-
if (target.token)
|
|
167
|
-
return target.token.match(/^ ?/)[0];
|
|
168
|
-
return;
|
|
288
|
+
;
|
|
169
289
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
290
|
+
var precedenceOrder, precedenceMap, precedenceStep, precedenceRelational, precedenceCustomDefault, asConst;
|
|
291
|
+
var init_op = __esm({
|
|
292
|
+
"source/parser/op.civet"() {
|
|
293
|
+
"use strict";
|
|
294
|
+
init_util();
|
|
295
|
+
precedenceOrder = [
|
|
296
|
+
["||", "??"],
|
|
297
|
+
["^^"],
|
|
298
|
+
["&&"],
|
|
299
|
+
["|"],
|
|
300
|
+
["^"],
|
|
301
|
+
["&"],
|
|
302
|
+
// NOTE: Equality and inequality merged because of relational chaining
|
|
303
|
+
[
|
|
304
|
+
"==",
|
|
305
|
+
"!=",
|
|
306
|
+
"===",
|
|
307
|
+
"!==",
|
|
308
|
+
"<",
|
|
309
|
+
"<=",
|
|
310
|
+
">",
|
|
311
|
+
">=",
|
|
312
|
+
"in",
|
|
313
|
+
"instanceof"
|
|
314
|
+
],
|
|
315
|
+
// NOTE: Extra in-between level for default custom operators
|
|
316
|
+
["custom"],
|
|
317
|
+
["<<", ">>", ">>>"],
|
|
318
|
+
["+", "-"],
|
|
319
|
+
["*", "/", "%"],
|
|
320
|
+
["**"]
|
|
321
|
+
];
|
|
322
|
+
precedenceMap = /* @__PURE__ */ new Map();
|
|
323
|
+
for (let i1 = 0, len = precedenceOrder.length; i1 < len; i1++) {
|
|
324
|
+
const prec = i1;
|
|
325
|
+
const ops = precedenceOrder[i1];
|
|
326
|
+
for (let i2 = 0, len1 = ops.length; i2 < len1; i2++) {
|
|
327
|
+
const op = ops[i2];
|
|
328
|
+
precedenceMap.set(op, prec);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
precedenceStep = 1 / 64;
|
|
332
|
+
precedenceRelational = precedenceMap.get("==");
|
|
333
|
+
precedenceCustomDefault = precedenceMap.get("custom");
|
|
334
|
+
asConst = {
|
|
335
|
+
ts: true,
|
|
336
|
+
children: [" as const"]
|
|
337
|
+
};
|
|
182
338
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
// source/parser/unary.civet
|
|
342
|
+
function processUnaryExpression(pre, exp, post) {
|
|
343
|
+
if (!(pre.length || post))
|
|
344
|
+
return exp;
|
|
345
|
+
if (post?.token === "?") {
|
|
346
|
+
post = {
|
|
347
|
+
$loc: post.$loc,
|
|
348
|
+
token: " != null"
|
|
349
|
+
};
|
|
350
|
+
if (pre.length) {
|
|
351
|
+
const lastPre = pre.at(-1);
|
|
352
|
+
if (lastPre.token === "!") {
|
|
353
|
+
post.token = " == null";
|
|
354
|
+
pre = pre.slice(0, -1);
|
|
355
|
+
} else if (lastPre.length === 2 && lastPre[0].token === "!") {
|
|
356
|
+
post.token = " == null";
|
|
357
|
+
pre = pre.slice(0, -1);
|
|
201
358
|
}
|
|
202
359
|
}
|
|
203
|
-
|
|
360
|
+
const existence = {
|
|
361
|
+
type: "Existence",
|
|
362
|
+
expression: exp,
|
|
363
|
+
children: [exp, post],
|
|
364
|
+
parent: void 0
|
|
365
|
+
};
|
|
366
|
+
exp = makeLeftHandSideExpression(existence);
|
|
367
|
+
if (pre.length) {
|
|
368
|
+
return {
|
|
369
|
+
type: "UnaryExpression",
|
|
370
|
+
children: [...pre, exp]
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
return exp;
|
|
204
374
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
375
|
+
if (exp.type === "Literal") {
|
|
376
|
+
if (pre.length === 1) {
|
|
377
|
+
const { token } = pre[0];
|
|
378
|
+
if (token === "-" || token === "+") {
|
|
379
|
+
const children = [pre[0], ...exp.children];
|
|
380
|
+
if (post)
|
|
381
|
+
exp.children.push(post);
|
|
382
|
+
return {
|
|
383
|
+
type: "Literal",
|
|
384
|
+
children,
|
|
385
|
+
raw: `${token}${exp.raw}`
|
|
386
|
+
};
|
|
217
387
|
}
|
|
218
|
-
i++;
|
|
219
388
|
}
|
|
220
|
-
|
|
221
|
-
|
|
389
|
+
}
|
|
390
|
+
let ref;
|
|
391
|
+
while (ref = pre.length) {
|
|
392
|
+
const l = ref;
|
|
393
|
+
const last = pre[l - 1];
|
|
394
|
+
if (last.type === "Await") {
|
|
395
|
+
if (last.op) {
|
|
396
|
+
if (exp.type !== "ParenthesizedExpression") {
|
|
397
|
+
exp = ["(", exp, ")"];
|
|
398
|
+
}
|
|
399
|
+
exp = {
|
|
400
|
+
type: "CallExpression",
|
|
401
|
+
children: [...last.children, "Promise", last.op, exp]
|
|
402
|
+
};
|
|
403
|
+
pre = pre.slice(0, -1);
|
|
404
|
+
} else {
|
|
405
|
+
exp = {
|
|
406
|
+
type: "AwaitExpression",
|
|
407
|
+
children: [...last.children, exp]
|
|
408
|
+
};
|
|
409
|
+
pre = pre.slice(0, -1);
|
|
410
|
+
}
|
|
411
|
+
} else {
|
|
412
|
+
break;
|
|
222
413
|
}
|
|
223
414
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
if (typeof target === "string")
|
|
229
|
-
return value.test(target);
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
function hasAwait(exp) {
|
|
233
|
-
return gatherRecursiveWithinFunction(exp, ({ type }) => type === "Await").length > 0;
|
|
234
|
-
}
|
|
235
|
-
function hasYield(exp) {
|
|
236
|
-
return gatherRecursiveWithinFunction(exp, ({ type }) => type === "Yield").length > 0;
|
|
237
|
-
}
|
|
238
|
-
function hasImportDeclaration(exp) {
|
|
239
|
-
return gatherRecursiveWithinFunction(exp, ({ type }) => type === "ImportDeclaration").length > 0;
|
|
415
|
+
return {
|
|
416
|
+
type: "UnaryExpression",
|
|
417
|
+
children: [...pre, exp, post]
|
|
418
|
+
};
|
|
240
419
|
}
|
|
241
|
-
|
|
420
|
+
var init_unary = __esm({
|
|
421
|
+
"source/parser/unary.civet"() {
|
|
422
|
+
"use strict";
|
|
423
|
+
init_util();
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
// source/parser/util.civet
|
|
428
|
+
function addParentPointers(node, parent) {
|
|
242
429
|
if (node == null)
|
|
243
|
-
return
|
|
430
|
+
return;
|
|
244
431
|
if (typeof node !== "object")
|
|
245
|
-
return
|
|
432
|
+
return;
|
|
246
433
|
if (Array.isArray(node)) {
|
|
247
|
-
|
|
434
|
+
for (const child of node) {
|
|
435
|
+
addParentPointers(child, parent);
|
|
436
|
+
}
|
|
437
|
+
return;
|
|
248
438
|
}
|
|
249
|
-
|
|
250
|
-
|
|
439
|
+
node = node;
|
|
440
|
+
node.parent = parent;
|
|
441
|
+
if (node.children) {
|
|
442
|
+
for (const child of node.children) {
|
|
443
|
+
addParentPointers(child, node);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
function clone(node) {
|
|
448
|
+
removeParentPointers(node);
|
|
449
|
+
return deepCopy(node);
|
|
450
|
+
}
|
|
451
|
+
function removeParentPointers(node) {
|
|
452
|
+
if (node == null)
|
|
453
|
+
return;
|
|
454
|
+
if (typeof node !== "object")
|
|
455
|
+
return;
|
|
456
|
+
if (Array.isArray(node)) {
|
|
457
|
+
for (const child of node) {
|
|
458
|
+
removeParentPointers(child);
|
|
459
|
+
}
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
node.parent = null;
|
|
463
|
+
if (node.children) {
|
|
464
|
+
for (const child of node.children) {
|
|
465
|
+
removeParentPointers(child);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
function isEmptyBareBlock(node) {
|
|
470
|
+
if (node?.type !== "BlockStatement")
|
|
471
|
+
return false;
|
|
472
|
+
const { bare, expressions } = node;
|
|
473
|
+
return bare && (expressions.length === 0 || expressions.length === 1 && expressions[0][1]?.type === "EmptyStatement");
|
|
474
|
+
}
|
|
475
|
+
function isFunction(node) {
|
|
476
|
+
const { type } = node;
|
|
477
|
+
return type === "FunctionExpression" || type === "ArrowFunction" || type === "MethodDefinition" || !!node.async;
|
|
478
|
+
}
|
|
479
|
+
function isWhitespaceOrEmpty(node) {
|
|
480
|
+
if (!node)
|
|
481
|
+
return true;
|
|
482
|
+
if (node.type === "Ref")
|
|
483
|
+
return false;
|
|
484
|
+
if (node.token)
|
|
485
|
+
return node.token.match(/^\s*$/);
|
|
486
|
+
if (node.children)
|
|
487
|
+
node = node.children;
|
|
488
|
+
if (!node.length)
|
|
489
|
+
return true;
|
|
490
|
+
if (typeof node === "string")
|
|
491
|
+
return node.match(/^\s*$/);
|
|
492
|
+
if (Array.isArray(node))
|
|
493
|
+
return node.every(isWhitespaceOrEmpty);
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
function isExit(node) {
|
|
497
|
+
return [
|
|
498
|
+
"ReturnStatement",
|
|
499
|
+
"ThrowStatement",
|
|
500
|
+
"BreakStatement",
|
|
501
|
+
"ContinueStatement"
|
|
502
|
+
].includes(node?.type);
|
|
503
|
+
}
|
|
504
|
+
function isComma(node) {
|
|
505
|
+
if (node?.token === ",") {
|
|
506
|
+
return node;
|
|
507
|
+
} else if (Array.isArray(node) && node.at(-1)?.token === ",") {
|
|
508
|
+
return node.at(-1);
|
|
509
|
+
}
|
|
510
|
+
;
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
function insertTrimmingSpace(target, c) {
|
|
514
|
+
if (!target) {
|
|
515
|
+
return target;
|
|
516
|
+
}
|
|
517
|
+
if (Array.isArray(target)) {
|
|
518
|
+
if (target.length === 0) {
|
|
519
|
+
return c;
|
|
520
|
+
}
|
|
521
|
+
return target.map((e, i) => {
|
|
522
|
+
if (i === 0) {
|
|
523
|
+
return insertTrimmingSpace(e, c);
|
|
524
|
+
}
|
|
525
|
+
return e;
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
if (target.children) {
|
|
529
|
+
return {
|
|
530
|
+
...target,
|
|
531
|
+
children: insertTrimmingSpace(target.children, c)
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
if (target.token) {
|
|
535
|
+
return {
|
|
536
|
+
...target,
|
|
537
|
+
token: target.token.replace(/^ ?/, c)
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
return target;
|
|
541
|
+
}
|
|
542
|
+
function getTrimmingSpace(target) {
|
|
543
|
+
if (!target)
|
|
544
|
+
return;
|
|
545
|
+
if (Array.isArray(target))
|
|
546
|
+
return getTrimmingSpace(target[0]);
|
|
547
|
+
if (target.children)
|
|
548
|
+
return getTrimmingSpace(target.children[0]);
|
|
549
|
+
if (target.token)
|
|
550
|
+
return target.token.match(/^ ?/)[0];
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
function literalValue(literal) {
|
|
554
|
+
let { raw } = literal;
|
|
555
|
+
switch (raw) {
|
|
556
|
+
case "null":
|
|
557
|
+
return null;
|
|
558
|
+
case "true":
|
|
559
|
+
return true;
|
|
560
|
+
case "false":
|
|
561
|
+
return false;
|
|
562
|
+
}
|
|
563
|
+
if (raw.startsWith('"') && raw.endsWith('"') || raw.startsWith("'") && raw.endsWith("'")) {
|
|
564
|
+
return raw.slice(1, -1);
|
|
565
|
+
}
|
|
566
|
+
const numeric = literal.children.find(
|
|
567
|
+
(child) => child.type === "NumericLiteral"
|
|
568
|
+
);
|
|
569
|
+
if (numeric) {
|
|
570
|
+
raw = raw.replace(/_/g, "");
|
|
571
|
+
const { token } = numeric;
|
|
572
|
+
if (token.endsWith("n")) {
|
|
573
|
+
return BigInt(raw.slice(0, -1));
|
|
574
|
+
} else if (token.match(/[\.eE]/)) {
|
|
575
|
+
return parseFloat(raw);
|
|
576
|
+
} else if (token.startsWith("0")) {
|
|
577
|
+
switch (token.charAt(1).toLowerCase()) {
|
|
578
|
+
case "x":
|
|
579
|
+
return parseInt(raw.replace(/0[xX]/, ""), 16);
|
|
580
|
+
case "b":
|
|
581
|
+
return parseInt(raw.replace(/0[bB]/, ""), 2);
|
|
582
|
+
case "o":
|
|
583
|
+
return parseInt(raw.replace(/0[oO]/, ""), 8);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
return parseInt(raw, 10);
|
|
587
|
+
}
|
|
588
|
+
throw new Error("Unrecognized literal " + JSON.stringify(literal));
|
|
589
|
+
}
|
|
590
|
+
function startsWith(target, value) {
|
|
591
|
+
if (!target)
|
|
592
|
+
return;
|
|
593
|
+
if (Array.isArray(target)) {
|
|
594
|
+
let i = 0;
|
|
595
|
+
let l = target.length;
|
|
596
|
+
while (i < l) {
|
|
597
|
+
const t = target[i];
|
|
598
|
+
if (t && (t.length || t.token || t.children)) {
|
|
599
|
+
break;
|
|
600
|
+
}
|
|
601
|
+
i++;
|
|
602
|
+
}
|
|
603
|
+
if (i < l) {
|
|
604
|
+
return startsWith(target[i], value);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
if (target.children)
|
|
608
|
+
return startsWith(target.children, value);
|
|
609
|
+
if (target.token)
|
|
610
|
+
return value.test(target.token);
|
|
611
|
+
if (typeof target === "string")
|
|
612
|
+
return value.test(target);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
function hasAwait(exp) {
|
|
616
|
+
return gatherRecursiveWithinFunction(exp, ({ type }) => type === "Await").length > 0;
|
|
617
|
+
}
|
|
618
|
+
function hasYield(exp) {
|
|
619
|
+
return gatherRecursiveWithinFunction(exp, ({ type }) => type === "Yield").length > 0;
|
|
620
|
+
}
|
|
621
|
+
function hasImportDeclaration(exp) {
|
|
622
|
+
return gatherRecursiveWithinFunction(exp, ({ type }) => type === "ImportDeclaration").length > 0;
|
|
623
|
+
}
|
|
624
|
+
function deepCopy(node) {
|
|
625
|
+
if (node == null)
|
|
626
|
+
return node;
|
|
627
|
+
if (typeof node !== "object")
|
|
628
|
+
return node;
|
|
629
|
+
if (Array.isArray(node)) {
|
|
630
|
+
return node.map(deepCopy);
|
|
631
|
+
}
|
|
632
|
+
return Object.fromEntries(
|
|
633
|
+
Object.entries(node).map(([key, value]) => {
|
|
251
634
|
return [key, deepCopy(value)];
|
|
252
635
|
})
|
|
253
636
|
);
|
|
@@ -276,6 +659,92 @@ var Civet = (() => {
|
|
|
276
659
|
parameters
|
|
277
660
|
};
|
|
278
661
|
}
|
|
662
|
+
function makeAmpersandFunctionExpression(prefix, rhs) {
|
|
663
|
+
let ref, body, typeSuffix;
|
|
664
|
+
if (!rhs) {
|
|
665
|
+
body = ref = makeRef("$");
|
|
666
|
+
} else {
|
|
667
|
+
({ ref, typeSuffix } = rhs);
|
|
668
|
+
if (!ref) {
|
|
669
|
+
throw new Error("Could not find ref in ampersand shorthand block");
|
|
670
|
+
}
|
|
671
|
+
body = rhs;
|
|
672
|
+
}
|
|
673
|
+
if (prefix.length) {
|
|
674
|
+
body = {
|
|
675
|
+
type: "UnaryExpression",
|
|
676
|
+
children: [processUnaryExpression(prefix, body, void 0)]
|
|
677
|
+
};
|
|
678
|
+
}
|
|
679
|
+
const parameters = {
|
|
680
|
+
type: "Parameters",
|
|
681
|
+
children: typeSuffix ? ["(", ref, typeSuffix, ")"] : [ref],
|
|
682
|
+
names: []
|
|
683
|
+
};
|
|
684
|
+
const expressions = [body];
|
|
685
|
+
const block = {
|
|
686
|
+
bare: true,
|
|
687
|
+
expressions,
|
|
688
|
+
children: [expressions]
|
|
689
|
+
};
|
|
690
|
+
const children = [parameters, " => ", block];
|
|
691
|
+
const async = hasAwait(body);
|
|
692
|
+
if (async) {
|
|
693
|
+
children.unshift("async ");
|
|
694
|
+
}
|
|
695
|
+
return {
|
|
696
|
+
type: "ArrowFunction",
|
|
697
|
+
signature: {
|
|
698
|
+
modifier: {
|
|
699
|
+
async
|
|
700
|
+
}
|
|
701
|
+
},
|
|
702
|
+
children,
|
|
703
|
+
ref,
|
|
704
|
+
body,
|
|
705
|
+
ampersandBlock: true,
|
|
706
|
+
block,
|
|
707
|
+
parameters
|
|
708
|
+
};
|
|
709
|
+
}
|
|
710
|
+
function makeAmpersandBlockRHSBody(typeSuffix, callExpRest, unaryPostfix, assign, binopRHS) {
|
|
711
|
+
const ref = makeRef("$");
|
|
712
|
+
let exp = {
|
|
713
|
+
type: "AmpersandRef",
|
|
714
|
+
children: [ref],
|
|
715
|
+
names: [],
|
|
716
|
+
ref
|
|
717
|
+
};
|
|
718
|
+
if (callExpRest) {
|
|
719
|
+
exp.children.push(...callExpRest[1]);
|
|
720
|
+
}
|
|
721
|
+
if (unaryPostfix) {
|
|
722
|
+
exp = processUnaryExpression([], exp, unaryPostfix);
|
|
723
|
+
}
|
|
724
|
+
if (assign) {
|
|
725
|
+
const [op1, more, rhs] = assign;
|
|
726
|
+
const lhs = [
|
|
727
|
+
[void 0, exp, ...op1],
|
|
728
|
+
...more.map((x) => [x[0], x[1], ...x[2]])
|
|
729
|
+
];
|
|
730
|
+
exp = {
|
|
731
|
+
type: "AssignmentExpression",
|
|
732
|
+
children: [lhs, rhs],
|
|
733
|
+
names: null,
|
|
734
|
+
lhs,
|
|
735
|
+
assigned: exp,
|
|
736
|
+
exp: rhs
|
|
737
|
+
};
|
|
738
|
+
}
|
|
739
|
+
if (binopRHS) {
|
|
740
|
+
exp = {
|
|
741
|
+
children: processBinaryOpExpression([exp, binopRHS[1]])
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
exp.ref = ref;
|
|
745
|
+
exp.typeSuffix = typeSuffix;
|
|
746
|
+
return exp;
|
|
747
|
+
}
|
|
279
748
|
function makeLeftHandSideExpression(expression) {
|
|
280
749
|
if (expression.parenthesized) {
|
|
281
750
|
return expression;
|
|
@@ -453,7 +922,9 @@ var Civet = (() => {
|
|
|
453
922
|
const children = expression ? ["return ", expression] : ["return"];
|
|
454
923
|
return makeNode({
|
|
455
924
|
type: "ReturnStatement",
|
|
456
|
-
children
|
|
925
|
+
children,
|
|
926
|
+
expression,
|
|
927
|
+
parent: expression?.parent
|
|
457
928
|
});
|
|
458
929
|
}
|
|
459
930
|
var assert, typeNeedsNoParens;
|
|
@@ -461,6 +932,8 @@ var Civet = (() => {
|
|
|
461
932
|
"source/parser/util.civet"() {
|
|
462
933
|
"use strict";
|
|
463
934
|
init_traversal();
|
|
935
|
+
init_op();
|
|
936
|
+
init_unary();
|
|
464
937
|
assert = {
|
|
465
938
|
equal(a, b, msg) {
|
|
466
939
|
if (a !== b) {
|
|
@@ -694,503 +1167,200 @@ var Civet = (() => {
|
|
|
694
1167
|
const index = expressions.findIndex((exp) => {
|
|
695
1168
|
return exp === node || Array.isArray(exp) && exp[1] === node;
|
|
696
1169
|
});
|
|
697
|
-
if (index < 0) {
|
|
698
|
-
throw new Error("Couldn't find expression in block for hoistable declaration.");
|
|
699
|
-
}
|
|
700
|
-
const statement = [expressions[index][0], dec, ";"];
|
|
701
|
-
expressions[index][0] = "";
|
|
702
|
-
expressions.splice(index, 0, statement);
|
|
703
|
-
addParentPointers(dec, block);
|
|
704
|
-
}
|
|
705
|
-
function processBlocks(statements) {
|
|
706
|
-
insertSemicolon(statements);
|
|
707
|
-
gatherRecursive(statements, ($) => $.type === "BlockStatement").forEach(function({ expressions }) {
|
|
708
|
-
return processBlocks(expressions);
|
|
709
|
-
});
|
|
710
|
-
}
|
|
711
|
-
function insertSemicolon(statements) {
|
|
712
|
-
const l = statements.length;
|
|
713
|
-
for (let i1 = 0, len = statements.length; i1 < len; i1++) {
|
|
714
|
-
const i = i1;
|
|
715
|
-
const s = statements[i1];
|
|
716
|
-
if (i < l - 1) {
|
|
717
|
-
if (needsPrecedingSemicolon(statements[i + 1])) {
|
|
718
|
-
const delim = s[2];
|
|
719
|
-
if (!delim) {
|
|
720
|
-
s[2] = ";";
|
|
721
|
-
} else if (typeof delim === "string" && !delim.match(/;/)) {
|
|
722
|
-
s[2] = `;${delim}`;
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
}
|
|
727
|
-
}
|
|
728
|
-
function needsPrecedingSemicolon(exp) {
|
|
729
|
-
let following;
|
|
730
|
-
if (Array.isArray(exp)) {
|
|
731
|
-
[, following] = exp;
|
|
732
|
-
} else {
|
|
733
|
-
following = exp;
|
|
734
|
-
}
|
|
735
|
-
if (!following) {
|
|
736
|
-
return false;
|
|
737
|
-
}
|
|
738
|
-
if (Array.isArray(following)) {
|
|
739
|
-
return needsPrecedingSemicolon(following[0]);
|
|
740
|
-
}
|
|
741
|
-
switch (following.type) {
|
|
742
|
-
case "ParenthesizedExpression":
|
|
743
|
-
case "ArrayExpression":
|
|
744
|
-
case "ArrowFunction":
|
|
745
|
-
case "TemplateLiteral":
|
|
746
|
-
case "RegularExpressionLiteral":
|
|
747
|
-
case "RangeExpression": {
|
|
748
|
-
return true;
|
|
749
|
-
}
|
|
750
|
-
case "AssignmentExpression": {
|
|
751
|
-
return startsWith(following, /^(\[|\()/);
|
|
752
|
-
}
|
|
753
|
-
case "Literal": {
|
|
754
|
-
return following.raw?.startsWith("-") || following.raw?.startsWith("+");
|
|
755
|
-
}
|
|
756
|
-
case "PipelineExpression":
|
|
757
|
-
case "UnwrappedExpression": {
|
|
758
|
-
return needsPrecedingSemicolon(following.children[1]);
|
|
759
|
-
}
|
|
760
|
-
default: {
|
|
761
|
-
if (following.children) {
|
|
762
|
-
return needsPrecedingSemicolon(following.children[0]);
|
|
763
|
-
}
|
|
764
|
-
;
|
|
765
|
-
return;
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
}
|
|
769
|
-
var init_block = __esm({
|
|
770
|
-
"source/parser/block.civet"() {
|
|
771
|
-
"use strict";
|
|
772
|
-
init_util();
|
|
773
|
-
init_traversal();
|
|
774
|
-
}
|
|
775
|
-
});
|
|
776
|
-
|
|
777
|
-
// source/parser/binding.civet
|
|
778
|
-
function adjustAtBindings(statements, asThis = false) {
|
|
779
|
-
gatherRecursiveAll(statements, (n) => n.type === "AtBindingProperty").forEach((binding) => {
|
|
780
|
-
const { ref } = binding;
|
|
781
|
-
if (asThis) {
|
|
782
|
-
const atBinding = binding.binding;
|
|
783
|
-
atBinding.children.pop();
|
|
784
|
-
atBinding.type = void 0;
|
|
785
|
-
binding.children.unshift(ref.id, ": this.", ref.base);
|
|
786
|
-
binding.type = "Property";
|
|
787
|
-
binding.ref = void 0;
|
|
788
|
-
return;
|
|
789
|
-
}
|
|
790
|
-
if (ref.names[0] !== ref.base) {
|
|
791
|
-
return binding.children.unshift(ref.base, ": ");
|
|
792
|
-
}
|
|
793
|
-
;
|
|
794
|
-
return;
|
|
795
|
-
});
|
|
796
|
-
}
|
|
797
|
-
function adjustBindingElements(elements) {
|
|
798
|
-
const names = elements.flatMap((p) => p.names || []), { length } = elements;
|
|
799
|
-
let blockPrefix, restIndex = -1, restCount = 0;
|
|
800
|
-
elements.forEach(({ type }, i) => {
|
|
801
|
-
if (type === "BindingRestElement") {
|
|
802
|
-
if (restIndex < 0)
|
|
803
|
-
restIndex = i;
|
|
804
|
-
return restCount++;
|
|
805
|
-
}
|
|
806
|
-
;
|
|
807
|
-
return;
|
|
808
|
-
});
|
|
809
|
-
if (restCount === 0) {
|
|
810
|
-
return {
|
|
811
|
-
children: elements,
|
|
812
|
-
names,
|
|
813
|
-
blockPrefix,
|
|
814
|
-
length
|
|
815
|
-
};
|
|
816
|
-
} else if (restCount === 1) {
|
|
817
|
-
const rest = elements[restIndex];
|
|
818
|
-
const after = elements.slice(restIndex + 1);
|
|
819
|
-
const restIdentifier = rest.binding.ref || rest.binding;
|
|
820
|
-
names.push(...rest.names || []);
|
|
821
|
-
let l = after.length;
|
|
822
|
-
if (l) {
|
|
823
|
-
if (arrayElementHasTrailingComma(after[l - 1]))
|
|
824
|
-
l++;
|
|
825
|
-
blockPrefix = {
|
|
826
|
-
type: "PostRestBindingElements",
|
|
827
|
-
children: ["[", insertTrimmingSpace(after, ""), "] = ", restIdentifier, ".splice(-", l.toString(), ")"],
|
|
828
|
-
names: after.flatMap((p) => p.names)
|
|
829
|
-
};
|
|
830
|
-
}
|
|
831
|
-
return {
|
|
832
|
-
names,
|
|
833
|
-
children: [...elements.slice(0, restIndex), {
|
|
834
|
-
...rest,
|
|
835
|
-
children: rest.children.slice(0, -1)
|
|
836
|
-
// remove trailing comma
|
|
837
|
-
}],
|
|
838
|
-
blockPrefix,
|
|
839
|
-
length
|
|
840
|
-
};
|
|
841
|
-
}
|
|
842
|
-
const err = {
|
|
843
|
-
type: "Error",
|
|
844
|
-
children: ["Multiple rest elements in array pattern"]
|
|
845
|
-
};
|
|
846
|
-
return {
|
|
847
|
-
names,
|
|
848
|
-
children: [...elements, err],
|
|
849
|
-
blockPrefix,
|
|
850
|
-
length
|
|
851
|
-
};
|
|
852
|
-
}
|
|
853
|
-
function gatherBindingCode(statements, opts) {
|
|
854
|
-
const thisAssignments = [];
|
|
855
|
-
const splices = [];
|
|
856
|
-
function insertRestSplices(s, p, thisAssignments2) {
|
|
857
|
-
gatherRecursiveAll(s, (n) => n.blockPrefix || opts?.injectParamProps && n.accessModifier || n.type === "AtBinding").forEach((n) => {
|
|
858
|
-
if (n.type === "AtBinding") {
|
|
859
|
-
const { ref } = n;
|
|
860
|
-
const { id } = ref;
|
|
861
|
-
thisAssignments2.push([`this.${id} = `, ref]);
|
|
862
|
-
return;
|
|
863
|
-
}
|
|
864
|
-
if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
|
|
865
|
-
n.names.forEach((id) => ({
|
|
866
|
-
push: thisAssignments2.push({
|
|
867
|
-
type: "AssignmentExpression",
|
|
868
|
-
children: [`this.${id} = `, id],
|
|
869
|
-
js: true
|
|
870
|
-
})
|
|
871
|
-
}));
|
|
872
|
-
return;
|
|
873
|
-
}
|
|
874
|
-
const { blockPrefix } = n;
|
|
875
|
-
p.push(blockPrefix);
|
|
876
|
-
return insertRestSplices(blockPrefix, p, thisAssignments2);
|
|
877
|
-
});
|
|
878
|
-
}
|
|
879
|
-
insertRestSplices(statements, splices, thisAssignments);
|
|
880
|
-
return [splices, thisAssignments];
|
|
881
|
-
}
|
|
882
|
-
function arrayElementHasTrailingComma(elementNode) {
|
|
883
|
-
const lastChild = elementNode.children.at(-1);
|
|
884
|
-
return lastChild && lastChild[lastChild.length - 1]?.token === ",";
|
|
885
|
-
}
|
|
886
|
-
var init_binding = __esm({
|
|
887
|
-
"source/parser/binding.civet"() {
|
|
888
|
-
"use strict";
|
|
889
|
-
init_traversal();
|
|
890
|
-
init_util();
|
|
891
|
-
}
|
|
892
|
-
});
|
|
893
|
-
|
|
894
|
-
// source/parser/op.civet
|
|
895
|
-
function getPrecedence(op) {
|
|
896
|
-
if (typeof op === "string") {
|
|
897
|
-
return precedenceMap.get(op) ?? (() => {
|
|
898
|
-
throw new Error(`Unknown operator: ${op}`);
|
|
899
|
-
})();
|
|
900
|
-
} else if (typeof op.prec === "number") {
|
|
901
|
-
return op.prec;
|
|
902
|
-
} else {
|
|
903
|
-
return precedenceMap.get(op.prec ?? op.token) ?? (op.relational ? precedenceRelational : precedenceCustomDefault);
|
|
904
|
-
}
|
|
905
|
-
}
|
|
906
|
-
function processBinaryOpExpression($0) {
|
|
907
|
-
return recurse(expandChainedComparisons($0));
|
|
908
|
-
function recurse(expandedOps) {
|
|
909
|
-
let i = 2;
|
|
910
|
-
while (i < expandedOps.length) {
|
|
911
|
-
let op = expandedOps[i];
|
|
912
|
-
if (op.special) {
|
|
913
|
-
let advanceLeft2 = function(allowEqual) {
|
|
914
|
-
while (start >= 4) {
|
|
915
|
-
const prevPrec = getPrecedence(expandedOps[start - 2]);
|
|
916
|
-
if (!(prevPrec > prec || allowEqual && prevPrec === prec)) {
|
|
917
|
-
return prevPrec === prec;
|
|
918
|
-
}
|
|
919
|
-
start -= 4;
|
|
920
|
-
}
|
|
921
|
-
return false;
|
|
922
|
-
}, advanceRight2 = function(allowEqual) {
|
|
923
|
-
while (end + 4 < expandedOps.length) {
|
|
924
|
-
const nextPrec = getPrecedence(expandedOps[end + 2]);
|
|
925
|
-
if (!(nextPrec > prec || allowEqual && nextPrec === prec)) {
|
|
926
|
-
return nextPrec === prec;
|
|
927
|
-
}
|
|
928
|
-
end += 4;
|
|
929
|
-
}
|
|
930
|
-
return false;
|
|
931
|
-
};
|
|
932
|
-
var advanceLeft = advanceLeft2, advanceRight = advanceRight2;
|
|
933
|
-
let start = i - 2, end = i + 2;
|
|
934
|
-
const prec = getPrecedence(op);
|
|
935
|
-
let error;
|
|
936
|
-
switch (op.assoc) {
|
|
937
|
-
case "left":
|
|
938
|
-
case void 0: {
|
|
939
|
-
advanceLeft2(true);
|
|
940
|
-
advanceRight2(false);
|
|
941
|
-
break;
|
|
942
|
-
}
|
|
943
|
-
case "right": {
|
|
944
|
-
advanceLeft2(false);
|
|
945
|
-
advanceRight2(true);
|
|
946
|
-
break;
|
|
947
|
-
}
|
|
948
|
-
case "non": {
|
|
949
|
-
if (advanceLeft2(false) || advanceRight2(false)) {
|
|
950
|
-
error = {
|
|
951
|
-
type: "Error",
|
|
952
|
-
message: `non-associative operator ${op.token} used at same precedence level without parenthesization`
|
|
953
|
-
};
|
|
954
|
-
}
|
|
955
|
-
;
|
|
956
|
-
break;
|
|
957
|
-
}
|
|
958
|
-
case "arguments": {
|
|
959
|
-
if (advanceLeft2(false)) {
|
|
960
|
-
error = {
|
|
961
|
-
type: "Error",
|
|
962
|
-
message: `arguments operator ${op.token} used at same precedence level as ${expandedOps[start - 2].token} to the left`
|
|
963
|
-
};
|
|
964
|
-
}
|
|
965
|
-
advanceRight2(true);
|
|
966
|
-
break;
|
|
967
|
-
}
|
|
968
|
-
default: {
|
|
969
|
-
throw new Error(`Unsupported associativity: ${op.assoc}`);
|
|
970
|
-
}
|
|
971
|
-
}
|
|
972
|
-
let a = start === i - 2 ? expandedOps[start] : expandedOps.slice(start, i - 1);
|
|
973
|
-
let wsOp = expandedOps[i - 1];
|
|
974
|
-
let wsB = expandedOps[i + 1];
|
|
975
|
-
let b = end === i + 2 ? expandedOps[i + 2] : expandedOps.slice(i + 2, end + 1);
|
|
976
|
-
if (op.assoc === "arguments") {
|
|
977
|
-
let i2 = 2;
|
|
978
|
-
while (i2 < b.length) {
|
|
979
|
-
if (prec === getPrecedence(b[i2])) {
|
|
980
|
-
if (!(b[i2].token === op.token)) {
|
|
981
|
-
error ??= {
|
|
982
|
-
type: "Error",
|
|
983
|
-
message: `arguments operator ${op.token} used at same precedence level as ${b[i2].token} to the right`
|
|
984
|
-
};
|
|
985
|
-
}
|
|
986
|
-
b[i2] = ",";
|
|
987
|
-
}
|
|
988
|
-
i2 += 4;
|
|
989
|
-
}
|
|
990
|
-
} else {
|
|
991
|
-
b = recurse(b);
|
|
992
|
-
}
|
|
993
|
-
if (op.token === "instanceof" && b.type === "Literal" && b.children?.[0]?.type === "StringLiteral") {
|
|
994
|
-
a = ["typeof ", makeLeftHandSideExpression(a)];
|
|
995
|
-
if (op.negated) {
|
|
996
|
-
op = { ...op, token: "!==", negated: false };
|
|
997
|
-
} else {
|
|
998
|
-
op = { ...op, token: "===" };
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
if (op.asConst) {
|
|
1002
|
-
a = makeAsConst(a);
|
|
1003
|
-
b = makeAsConst(b);
|
|
1004
|
-
}
|
|
1005
|
-
let children;
|
|
1006
|
-
if (op.call) {
|
|
1007
|
-
wsOp = insertTrimmingSpace(wsOp, "");
|
|
1008
|
-
if (op.reversed) {
|
|
1009
|
-
wsB = insertTrimmingSpace(wsB, "");
|
|
1010
|
-
children = [wsOp, op.call, "(", wsB, b, ", ", a, ")", op.suffix];
|
|
1011
|
-
} else {
|
|
1012
|
-
children = [wsOp, op.call, "(", a, ",", wsB, b, ")", op.suffix];
|
|
1013
|
-
}
|
|
1014
|
-
} else if (op.method) {
|
|
1015
|
-
wsOp = insertTrimmingSpace(wsOp, "");
|
|
1016
|
-
wsB = insertTrimmingSpace(wsB, "");
|
|
1017
|
-
if (op.reversed) {
|
|
1018
|
-
if (end !== i + 2)
|
|
1019
|
-
b = makeLeftHandSideExpression(b);
|
|
1020
|
-
b = dotNumericLiteral(b);
|
|
1021
|
-
children = [wsB, b, wsOp, ".", op.method, "(", a, ")"];
|
|
1022
|
-
} else {
|
|
1023
|
-
if (start !== i - 2 || a.type === "NumericLiteral") {
|
|
1024
|
-
a = makeLeftHandSideExpression(a);
|
|
1025
|
-
}
|
|
1026
|
-
a = dotNumericLiteral(a);
|
|
1027
|
-
children = [a, wsOp, ".", op.method, "(", wsB, b, ")"];
|
|
1028
|
-
}
|
|
1029
|
-
} else if (op.token) {
|
|
1030
|
-
children = [a, wsOp, op, wsB, b];
|
|
1031
|
-
if (op.negated)
|
|
1032
|
-
children = ["(", ...children, ")"];
|
|
1033
|
-
} else {
|
|
1034
|
-
throw new Error("Unknown operator: " + JSON.stringify(op));
|
|
1035
|
-
}
|
|
1036
|
-
if (op.negated)
|
|
1037
|
-
children.unshift("!");
|
|
1038
|
-
if (error != null) {
|
|
1039
|
-
children.push(error);
|
|
1170
|
+
if (index < 0) {
|
|
1171
|
+
throw new Error("Couldn't find expression in block for hoistable declaration.");
|
|
1172
|
+
}
|
|
1173
|
+
const statement = [expressions[index][0], dec, ";"];
|
|
1174
|
+
expressions[index][0] = "";
|
|
1175
|
+
expressions.splice(index, 0, statement);
|
|
1176
|
+
addParentPointers(dec, block);
|
|
1177
|
+
}
|
|
1178
|
+
function processBlocks(statements) {
|
|
1179
|
+
insertSemicolon(statements);
|
|
1180
|
+
gatherRecursive(statements, ($) => $.type === "BlockStatement").forEach(function({ expressions }) {
|
|
1181
|
+
return processBlocks(expressions);
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1184
|
+
function insertSemicolon(statements) {
|
|
1185
|
+
const l = statements.length;
|
|
1186
|
+
for (let i1 = 0, len = statements.length; i1 < len; i1++) {
|
|
1187
|
+
const i = i1;
|
|
1188
|
+
const s = statements[i1];
|
|
1189
|
+
if (i < l - 1) {
|
|
1190
|
+
if (needsPrecedingSemicolon(statements[i + 1])) {
|
|
1191
|
+
const delim = s[2];
|
|
1192
|
+
if (!delim) {
|
|
1193
|
+
s[2] = ";";
|
|
1194
|
+
} else if (typeof delim === "string" && !delim.match(/;/)) {
|
|
1195
|
+
s[2] = `;${delim}`;
|
|
1040
1196
|
}
|
|
1041
|
-
expandedOps.splice(start, end - start + 1, {
|
|
1042
|
-
children
|
|
1043
|
-
});
|
|
1044
|
-
i = start + 2;
|
|
1045
|
-
} else {
|
|
1046
|
-
i += 4;
|
|
1047
1197
|
}
|
|
1048
1198
|
}
|
|
1049
|
-
return expandedOps;
|
|
1050
|
-
}
|
|
1051
|
-
;
|
|
1052
|
-
return recurse;
|
|
1053
|
-
}
|
|
1054
|
-
function dotNumericLiteral(literal) {
|
|
1055
|
-
if (literal?.type === "Literal" && /^[+-]?(?:0|[1-9](?:_[0-9]|[0-9])*)$/.test(literal.raw)) {
|
|
1056
|
-
literal.children.push(".");
|
|
1057
|
-
literal.raw += ".";
|
|
1058
1199
|
}
|
|
1059
|
-
return literal;
|
|
1060
1200
|
}
|
|
1061
|
-
function
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
if (node.type === "Literal" && node.raw !== "null" || node.type === "ArrayExpression" || node.type === "ObjectExpression") {
|
|
1066
|
-
return { ...node, children: [...node.children, asConst] };
|
|
1201
|
+
function needsPrecedingSemicolon(exp) {
|
|
1202
|
+
let following;
|
|
1203
|
+
if (Array.isArray(exp)) {
|
|
1204
|
+
[, following] = exp;
|
|
1067
1205
|
} else {
|
|
1068
|
-
|
|
1206
|
+
following = exp;
|
|
1069
1207
|
}
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
if (exp.type === "ParenthesizedExpression" && exp.implicit) {
|
|
1073
|
-
exp = exp.expression;
|
|
1208
|
+
if (!following) {
|
|
1209
|
+
return false;
|
|
1074
1210
|
}
|
|
1075
|
-
if (
|
|
1076
|
-
return
|
|
1211
|
+
if (Array.isArray(following)) {
|
|
1212
|
+
return needsPrecedingSemicolon(following[0]);
|
|
1077
1213
|
}
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
let i = 0;
|
|
1087
|
-
const l = binops.length;
|
|
1088
|
-
let start = 0;
|
|
1089
|
-
let chains = [];
|
|
1090
|
-
let op;
|
|
1091
|
-
while (i < l) {
|
|
1092
|
-
[, op] = binops[i];
|
|
1093
|
-
if (isRelationalOp(op)) {
|
|
1094
|
-
chains.push(i);
|
|
1095
|
-
} else if (getPrecedence(op) < precedenceRelational) {
|
|
1096
|
-
processChains(op);
|
|
1097
|
-
first = void 0;
|
|
1214
|
+
switch (following.type) {
|
|
1215
|
+
case "ParenthesizedExpression":
|
|
1216
|
+
case "ArrayExpression":
|
|
1217
|
+
case "ArrowFunction":
|
|
1218
|
+
case "TemplateLiteral":
|
|
1219
|
+
case "RegularExpressionLiteral":
|
|
1220
|
+
case "RangeExpression": {
|
|
1221
|
+
return true;
|
|
1098
1222
|
}
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
if (op != null) {
|
|
1102
|
-
processChains(op);
|
|
1103
|
-
}
|
|
1104
|
-
return results;
|
|
1105
|
-
function processChains(op2) {
|
|
1106
|
-
if (first && isRelationalOp(op2)) {
|
|
1107
|
-
first = expandExistence(first);
|
|
1223
|
+
case "AssignmentExpression": {
|
|
1224
|
+
return startsWith(following, /^(\[|\()/);
|
|
1108
1225
|
}
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
if (k > 0) {
|
|
1112
|
-
results.push(" ", "&&", " ");
|
|
1113
|
-
}
|
|
1114
|
-
const binop = binops[index];
|
|
1115
|
-
let [, , , exp] = binop;
|
|
1116
|
-
exp = binop[3] = expandExistence(exp);
|
|
1117
|
-
let endIndex;
|
|
1118
|
-
if (k < chains.length - 1) {
|
|
1119
|
-
endIndex = chains[k + 1];
|
|
1120
|
-
} else {
|
|
1121
|
-
endIndex = i + 1;
|
|
1122
|
-
}
|
|
1123
|
-
results.push(first, ...binops.slice(start, endIndex).flat());
|
|
1124
|
-
first = [exp].concat(binops.slice(index + 1, endIndex));
|
|
1125
|
-
return start = endIndex;
|
|
1126
|
-
});
|
|
1127
|
-
} else {
|
|
1128
|
-
if (first) {
|
|
1129
|
-
results.push(first);
|
|
1130
|
-
}
|
|
1131
|
-
results.push(...binops.slice(start, i + 1).flat());
|
|
1132
|
-
start = i + 1;
|
|
1226
|
+
case "Literal": {
|
|
1227
|
+
return following.raw?.startsWith("-") || following.raw?.startsWith("+");
|
|
1133
1228
|
}
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1229
|
+
case "PipelineExpression":
|
|
1230
|
+
case "UnwrappedExpression": {
|
|
1231
|
+
return needsPrecedingSemicolon(following.children[1]);
|
|
1232
|
+
}
|
|
1233
|
+
default: {
|
|
1234
|
+
if (following.children) {
|
|
1235
|
+
return needsPrecedingSemicolon(following.children[0]);
|
|
1236
|
+
}
|
|
1237
|
+
;
|
|
1238
|
+
return;
|
|
1141
1239
|
}
|
|
1142
|
-
return exp;
|
|
1143
1240
|
}
|
|
1144
|
-
;
|
|
1145
1241
|
}
|
|
1146
|
-
var
|
|
1147
|
-
|
|
1148
|
-
"source/parser/op.civet"() {
|
|
1242
|
+
var init_block = __esm({
|
|
1243
|
+
"source/parser/block.civet"() {
|
|
1149
1244
|
"use strict";
|
|
1150
1245
|
init_util();
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1246
|
+
init_traversal();
|
|
1247
|
+
}
|
|
1248
|
+
});
|
|
1249
|
+
|
|
1250
|
+
// source/parser/binding.civet
|
|
1251
|
+
function adjustAtBindings(statements, asThis = false) {
|
|
1252
|
+
gatherRecursiveAll(statements, (n) => n.type === "AtBindingProperty").forEach((binding) => {
|
|
1253
|
+
const { ref } = binding;
|
|
1254
|
+
if (asThis) {
|
|
1255
|
+
const atBinding = binding.binding;
|
|
1256
|
+
atBinding.children.pop();
|
|
1257
|
+
atBinding.type = void 0;
|
|
1258
|
+
binding.children.unshift(ref.id, ": this.", ref.base);
|
|
1259
|
+
binding.type = "Property";
|
|
1260
|
+
binding.ref = void 0;
|
|
1261
|
+
return;
|
|
1262
|
+
}
|
|
1263
|
+
if (ref.names[0] !== ref.base) {
|
|
1264
|
+
return binding.children.unshift(ref.base, ": ");
|
|
1265
|
+
}
|
|
1266
|
+
;
|
|
1267
|
+
return;
|
|
1268
|
+
});
|
|
1269
|
+
}
|
|
1270
|
+
function adjustBindingElements(elements) {
|
|
1271
|
+
const names = elements.flatMap((p) => p.names || []), { length } = elements;
|
|
1272
|
+
let blockPrefix, restIndex = -1, restCount = 0;
|
|
1273
|
+
elements.forEach(({ type }, i) => {
|
|
1274
|
+
if (type === "BindingRestElement") {
|
|
1275
|
+
if (restIndex < 0)
|
|
1276
|
+
restIndex = i;
|
|
1277
|
+
return restCount++;
|
|
1278
|
+
}
|
|
1279
|
+
;
|
|
1280
|
+
return;
|
|
1281
|
+
});
|
|
1282
|
+
if (restCount === 0) {
|
|
1283
|
+
return {
|
|
1284
|
+
children: elements,
|
|
1285
|
+
names,
|
|
1286
|
+
blockPrefix,
|
|
1287
|
+
length
|
|
1288
|
+
};
|
|
1289
|
+
} else if (restCount === 1) {
|
|
1290
|
+
const rest = elements[restIndex];
|
|
1291
|
+
const after = elements.slice(restIndex + 1);
|
|
1292
|
+
const restIdentifier = rest.binding.ref || rest.binding;
|
|
1293
|
+
names.push(...rest.names || []);
|
|
1294
|
+
let l = after.length;
|
|
1295
|
+
if (l) {
|
|
1296
|
+
if (arrayElementHasTrailingComma(after[l - 1]))
|
|
1297
|
+
l++;
|
|
1298
|
+
blockPrefix = {
|
|
1299
|
+
type: "PostRestBindingElements",
|
|
1300
|
+
children: ["[", insertTrimmingSpace(after, ""), "] = ", restIdentifier, ".splice(-", l.toString(), ")"],
|
|
1301
|
+
names: after.flatMap((p) => p.names)
|
|
1302
|
+
};
|
|
1303
|
+
}
|
|
1304
|
+
return {
|
|
1305
|
+
names,
|
|
1306
|
+
children: [...elements.slice(0, restIndex), {
|
|
1307
|
+
...rest,
|
|
1308
|
+
children: rest.children.slice(0, -1)
|
|
1309
|
+
// remove trailing comma
|
|
1310
|
+
}],
|
|
1311
|
+
blockPrefix,
|
|
1312
|
+
length
|
|
1313
|
+
};
|
|
1314
|
+
}
|
|
1315
|
+
const err = {
|
|
1316
|
+
type: "Error",
|
|
1317
|
+
children: ["Multiple rest elements in array pattern"]
|
|
1318
|
+
};
|
|
1319
|
+
return {
|
|
1320
|
+
names,
|
|
1321
|
+
children: [...elements, err],
|
|
1322
|
+
blockPrefix,
|
|
1323
|
+
length
|
|
1324
|
+
};
|
|
1325
|
+
}
|
|
1326
|
+
function gatherBindingCode(statements, opts) {
|
|
1327
|
+
const thisAssignments = [];
|
|
1328
|
+
const splices = [];
|
|
1329
|
+
function insertRestSplices(s, p, thisAssignments2) {
|
|
1330
|
+
gatherRecursiveAll(s, (n) => n.blockPrefix || opts?.injectParamProps && n.accessModifier || n.type === "AtBinding").forEach((n) => {
|
|
1331
|
+
if (n.type === "AtBinding") {
|
|
1332
|
+
const { ref } = n;
|
|
1333
|
+
const { id } = ref;
|
|
1334
|
+
thisAssignments2.push([`this.${id} = `, ref]);
|
|
1335
|
+
return;
|
|
1336
|
+
}
|
|
1337
|
+
if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
|
|
1338
|
+
n.names.forEach((id) => ({
|
|
1339
|
+
push: thisAssignments2.push({
|
|
1340
|
+
type: "AssignmentExpression",
|
|
1341
|
+
children: [`this.${id} = `, id],
|
|
1342
|
+
js: true
|
|
1343
|
+
})
|
|
1344
|
+
}));
|
|
1345
|
+
return;
|
|
1185
1346
|
}
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1347
|
+
const { blockPrefix } = n;
|
|
1348
|
+
p.push(blockPrefix);
|
|
1349
|
+
return insertRestSplices(blockPrefix, p, thisAssignments2);
|
|
1350
|
+
});
|
|
1351
|
+
}
|
|
1352
|
+
insertRestSplices(statements, splices, thisAssignments);
|
|
1353
|
+
return [splices, thisAssignments];
|
|
1354
|
+
}
|
|
1355
|
+
function arrayElementHasTrailingComma(elementNode) {
|
|
1356
|
+
const lastChild = elementNode.children.at(-1);
|
|
1357
|
+
return lastChild && lastChild[lastChild.length - 1]?.token === ",";
|
|
1358
|
+
}
|
|
1359
|
+
var init_binding = __esm({
|
|
1360
|
+
"source/parser/binding.civet"() {
|
|
1361
|
+
"use strict";
|
|
1362
|
+
init_traversal();
|
|
1363
|
+
init_util();
|
|
1194
1364
|
}
|
|
1195
1365
|
});
|
|
1196
1366
|
|
|
@@ -1900,7 +2070,7 @@ var Civet = (() => {
|
|
|
1900
2070
|
return;
|
|
1901
2071
|
case "IfStatement":
|
|
1902
2072
|
insertReturn(exp.then);
|
|
1903
|
-
if (exp.else)
|
|
2073
|
+
if (exp.else && exp.else.length !== 0)
|
|
1904
2074
|
insertReturn(exp.else[2]);
|
|
1905
2075
|
else
|
|
1906
2076
|
exp.children.push(["", {
|
|
@@ -2193,7 +2363,8 @@ var Civet = (() => {
|
|
|
2193
2363
|
}
|
|
2194
2364
|
const { decl, bindings } = condition.declaration;
|
|
2195
2365
|
const binding = bindings[0];
|
|
2196
|
-
|
|
2366
|
+
let { pattern, suffix, initializer, splices, thisAssignments } = binding;
|
|
2367
|
+
const nullCheck = suffix?.optional && !suffix.t && !suffix.nonnull;
|
|
2197
2368
|
let ref = prependStatementExpressionBlock(initializer, parent);
|
|
2198
2369
|
if (ref) {
|
|
2199
2370
|
Object.assign(condition, {
|
|
@@ -2207,11 +2378,16 @@ var Civet = (() => {
|
|
|
2207
2378
|
ref = makeRef();
|
|
2208
2379
|
const grandparent = condition.parent?.parent;
|
|
2209
2380
|
const children = (
|
|
2210
|
-
//
|
|
2381
|
+
// Wrap declaration that is a plain assignment (no pattern-matching) and the immediate grandchild of an `if` or `while`
|
|
2382
|
+
// to satisfy eslint's no-cond-assign rule
|
|
2211
2383
|
// More complex conditions (triggered by pattern matching or `until`/`unless`) don't need double parens
|
|
2212
|
-
|
|
2213
|
-
pattern.type === "Identifier" && (grandparent?.type === "IfStatement" || grandparent?.type === "WhileStatement") ? ["(", ref, initializer, ")"] : [ref, initializer]
|
|
2384
|
+
pattern.type === "Identifier" && (grandparent?.type === "IfStatement" || grandparent?.type === "IterationStatement") && !nullCheck ? ["(", ref, initializer, ")"] : [ref, initializer]
|
|
2214
2385
|
);
|
|
2386
|
+
if (nullCheck) {
|
|
2387
|
+
children.unshift("(");
|
|
2388
|
+
children.push(") != null");
|
|
2389
|
+
suffix = void 0;
|
|
2390
|
+
}
|
|
2215
2391
|
Object.assign(condition, {
|
|
2216
2392
|
type: "AssignmentExpression",
|
|
2217
2393
|
children,
|
|
@@ -2450,91 +2626,6 @@ var Civet = (() => {
|
|
|
2450
2626
|
}
|
|
2451
2627
|
});
|
|
2452
2628
|
|
|
2453
|
-
// source/parser/unary.civet
|
|
2454
|
-
function processUnaryExpression(pre, exp, post) {
|
|
2455
|
-
if (!(pre.length || post))
|
|
2456
|
-
return exp;
|
|
2457
|
-
if (post?.token === "?") {
|
|
2458
|
-
post = {
|
|
2459
|
-
$loc: post.$loc,
|
|
2460
|
-
token: " != null"
|
|
2461
|
-
};
|
|
2462
|
-
if (pre.length) {
|
|
2463
|
-
const lastPre = pre[pre.length - 1];
|
|
2464
|
-
if (lastPre.token === "!") {
|
|
2465
|
-
post.token = " == null";
|
|
2466
|
-
pre = pre.slice(0, -1);
|
|
2467
|
-
} else if (lastPre.length === 2 && lastPre[0].token === "!") {
|
|
2468
|
-
post.token = " == null";
|
|
2469
|
-
pre = pre.slice(0, -1);
|
|
2470
|
-
}
|
|
2471
|
-
}
|
|
2472
|
-
const existence = {
|
|
2473
|
-
type: "Existence",
|
|
2474
|
-
expression: exp,
|
|
2475
|
-
children: [exp, post]
|
|
2476
|
-
};
|
|
2477
|
-
exp = makeLeftHandSideExpression(existence);
|
|
2478
|
-
if (pre.length) {
|
|
2479
|
-
return {
|
|
2480
|
-
type: "UnaryExpression",
|
|
2481
|
-
children: [...pre, exp]
|
|
2482
|
-
};
|
|
2483
|
-
}
|
|
2484
|
-
return exp;
|
|
2485
|
-
}
|
|
2486
|
-
if (exp.type === "Literal") {
|
|
2487
|
-
if (pre.length === 1) {
|
|
2488
|
-
const { token } = pre[0];
|
|
2489
|
-
if (token === "-" || token === "+") {
|
|
2490
|
-
const children = [pre[0], ...exp.children];
|
|
2491
|
-
if (post)
|
|
2492
|
-
exp.children.push(post);
|
|
2493
|
-
return {
|
|
2494
|
-
type: "Literal",
|
|
2495
|
-
children,
|
|
2496
|
-
raw: `${token}${exp.raw}`
|
|
2497
|
-
};
|
|
2498
|
-
}
|
|
2499
|
-
}
|
|
2500
|
-
}
|
|
2501
|
-
let ref;
|
|
2502
|
-
while (ref = pre.length) {
|
|
2503
|
-
const l = ref;
|
|
2504
|
-
const last = pre[l - 1];
|
|
2505
|
-
if (last.type === "Await") {
|
|
2506
|
-
if (last.op) {
|
|
2507
|
-
if (exp.type !== "ParenthesizedExpression") {
|
|
2508
|
-
exp = ["(", exp, ")"];
|
|
2509
|
-
}
|
|
2510
|
-
exp = {
|
|
2511
|
-
type: "CallExpression",
|
|
2512
|
-
children: [...last.children, "Promise", last.op, exp]
|
|
2513
|
-
};
|
|
2514
|
-
pre = pre.slice(0, -1);
|
|
2515
|
-
} else {
|
|
2516
|
-
exp = {
|
|
2517
|
-
type: "AwaitExpression",
|
|
2518
|
-
children: [...last.children, exp]
|
|
2519
|
-
};
|
|
2520
|
-
pre = pre.slice(0, -1);
|
|
2521
|
-
}
|
|
2522
|
-
} else {
|
|
2523
|
-
break;
|
|
2524
|
-
}
|
|
2525
|
-
}
|
|
2526
|
-
return {
|
|
2527
|
-
type: "UnaryExpression",
|
|
2528
|
-
children: [...pre, exp, post]
|
|
2529
|
-
};
|
|
2530
|
-
}
|
|
2531
|
-
var init_unary = __esm({
|
|
2532
|
-
"source/parser/unary.civet"() {
|
|
2533
|
-
"use strict";
|
|
2534
|
-
init_util();
|
|
2535
|
-
}
|
|
2536
|
-
});
|
|
2537
|
-
|
|
2538
2629
|
// source/parser/pipe.civet
|
|
2539
2630
|
function constructInvocation(fn, arg) {
|
|
2540
2631
|
const fnArr = [fn.leadingComment, fn.expr, fn.trailingComment];
|
|
@@ -2751,10 +2842,13 @@ var Civet = (() => {
|
|
|
2751
2842
|
function forRange(open, forDeclaration, range, stepExp, close) {
|
|
2752
2843
|
const { start, end, inclusive } = range;
|
|
2753
2844
|
const counterRef = makeRef("i");
|
|
2845
|
+
const infinite = end.type === "Identifier" && end.name === "Infinity";
|
|
2754
2846
|
let stepRef;
|
|
2755
2847
|
if (stepExp) {
|
|
2756
2848
|
stepExp = insertTrimmingSpace(stepExp, "");
|
|
2757
2849
|
stepRef = maybeRef(stepExp, "step");
|
|
2850
|
+
} else if (infinite) {
|
|
2851
|
+
stepExp = stepRef = "1";
|
|
2758
2852
|
}
|
|
2759
2853
|
let startRef = maybeRef(start, "start");
|
|
2760
2854
|
let endRef = maybeRef(end, "end");
|
|
@@ -2784,7 +2878,7 @@ var Civet = (() => {
|
|
|
2784
2878
|
} else {
|
|
2785
2879
|
const value = "StringLiteral" === start.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
|
|
2786
2880
|
blockPrefix = [
|
|
2787
|
-
["", forDeclaration, " = ", value, ";"]
|
|
2881
|
+
["", [forDeclaration, " = ", value], ";"]
|
|
2788
2882
|
];
|
|
2789
2883
|
}
|
|
2790
2884
|
} else if (forDeclaration) {
|
|
@@ -2796,8 +2890,8 @@ var Civet = (() => {
|
|
|
2796
2890
|
names: forDeclaration?.names
|
|
2797
2891
|
};
|
|
2798
2892
|
const counterPart = inclusive ? [counterRef, " <= ", endRef, " : ", counterRef, " >= ", endRef] : [counterRef, " < ", endRef, " : ", counterRef, " > ", endRef];
|
|
2799
|
-
const condition = stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : ascRef ? [ascRef, " ? ", ...counterPart] : asc ? counterPart.slice(0, 3) : counterPart.slice(4);
|
|
2800
|
-
const increment = stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
|
|
2893
|
+
const condition = infinite ? [] : stepRef ? [stepRef, " !== 0 && (", stepRef, " > 0 ? ", ...counterPart, ")"] : ascRef ? [ascRef, " ? ", ...counterPart] : asc ? counterPart.slice(0, 3) : counterPart.slice(4);
|
|
2894
|
+
const increment = infinite ? [...varAssign, "++", counterRef] : stepRef ? [...varAssign, counterRef, " += ", stepRef] : ascRef ? [...varAssign, ascRef, " ? ++", counterRef, " : --", counterRef] : [...varAssign, asc ? "++" : "--", counterRef];
|
|
2801
2895
|
return {
|
|
2802
2896
|
declaration,
|
|
2803
2897
|
children: [open, declaration, "; ", ...condition, "; ", ...increment, close],
|
|
@@ -3288,7 +3382,9 @@ var Civet = (() => {
|
|
|
3288
3382
|
isWhitespaceOrEmpty: () => isWhitespaceOrEmpty,
|
|
3289
3383
|
lastAccessInCallExpression: () => lastAccessInCallExpression,
|
|
3290
3384
|
literalValue: () => literalValue,
|
|
3385
|
+
makeAmpersandBlockRHSBody: () => makeAmpersandBlockRHSBody,
|
|
3291
3386
|
makeAmpersandFunction: () => makeAmpersandFunction,
|
|
3387
|
+
makeAmpersandFunctionExpression: () => makeAmpersandFunctionExpression,
|
|
3292
3388
|
makeEmptyBlock: () => makeEmptyBlock,
|
|
3293
3389
|
makeExpressionStatement: () => makeExpressionStatement,
|
|
3294
3390
|
makeGetterMethod: () => makeGetterMethod,
|
|
@@ -4251,6 +4347,7 @@ var Civet = (() => {
|
|
|
4251
4347
|
assert.equal(m.JSXTagStack.length, 1, "JSXTagStack");
|
|
4252
4348
|
addParentPointers(root);
|
|
4253
4349
|
const { expressions: statements } = root;
|
|
4350
|
+
processPartialPlaceholders(statements);
|
|
4254
4351
|
processNegativeIndexAccess(statements);
|
|
4255
4352
|
processTypes(statements);
|
|
4256
4353
|
processDeclarationConditions(statements, m.getRef);
|
|
@@ -4295,6 +4392,43 @@ var Civet = (() => {
|
|
|
4295
4392
|
});
|
|
4296
4393
|
}
|
|
4297
4394
|
}
|
|
4395
|
+
function processPartialPlaceholders(statements) {
|
|
4396
|
+
const partialMap = /* @__PURE__ */ new Map();
|
|
4397
|
+
gatherRecursiveAll(statements, ($3) => $3.type === "PartialPlaceholder").forEach((_exp) => {
|
|
4398
|
+
const exp = _exp;
|
|
4399
|
+
let { ancestor } = findAncestor(exp, ($4) => $4?.type === "Call");
|
|
4400
|
+
ancestor = ancestor?.parent;
|
|
4401
|
+
while (ancestor?.parent?.type === "UnaryExpression") {
|
|
4402
|
+
ancestor = ancestor.parent;
|
|
4403
|
+
}
|
|
4404
|
+
if (ancestor) {
|
|
4405
|
+
if (partialMap.has(ancestor)) {
|
|
4406
|
+
return partialMap.get(ancestor).push(exp);
|
|
4407
|
+
} else {
|
|
4408
|
+
return partialMap.set(ancestor, [exp]);
|
|
4409
|
+
}
|
|
4410
|
+
} else {
|
|
4411
|
+
return replaceNode(exp, {
|
|
4412
|
+
type: "Error",
|
|
4413
|
+
message: "Partial placeholder outside of call expression",
|
|
4414
|
+
parent: exp.parent
|
|
4415
|
+
});
|
|
4416
|
+
}
|
|
4417
|
+
});
|
|
4418
|
+
for (const [ancestor, placeholders] of partialMap) {
|
|
4419
|
+
let ref = makeRef("$");
|
|
4420
|
+
placeholders.forEach((exp) => {
|
|
4421
|
+
return replaceNode(exp.children.at(-1), ref);
|
|
4422
|
+
});
|
|
4423
|
+
const rhs = {
|
|
4424
|
+
ref,
|
|
4425
|
+
children: [ancestor]
|
|
4426
|
+
};
|
|
4427
|
+
const fnExp = makeAmpersandFunctionExpression([], rhs);
|
|
4428
|
+
replaceNode(ancestor, fnExp);
|
|
4429
|
+
}
|
|
4430
|
+
return;
|
|
4431
|
+
}
|
|
4298
4432
|
function reorderBindingRestProperty(props) {
|
|
4299
4433
|
const names = props.flatMap((p) => p.names);
|
|
4300
4434
|
let restIndex = -1;
|
|
@@ -5005,11 +5139,11 @@ ${input.slice(result.pos)}
|
|
|
5005
5139
|
WRHS,
|
|
5006
5140
|
SingleLineBinaryOpRHS,
|
|
5007
5141
|
RHS,
|
|
5008
|
-
ParenthesizedAssignment,
|
|
5009
5142
|
UnaryExpression,
|
|
5010
5143
|
UnaryWithoutParenthesizedAssignment,
|
|
5011
5144
|
UnaryBody,
|
|
5012
5145
|
UnaryWithoutParenthesizedAssignmentBody,
|
|
5146
|
+
ParenthesizedAssignment,
|
|
5013
5147
|
UnaryPostfix,
|
|
5014
5148
|
TypePostfix,
|
|
5015
5149
|
Tuple,
|
|
@@ -5037,6 +5171,7 @@ ${input.slice(result.pos)}
|
|
|
5037
5171
|
PipelineTailItem,
|
|
5038
5172
|
PrimaryExpression,
|
|
5039
5173
|
ParenthesizedExpression,
|
|
5174
|
+
PartialPlaceholder,
|
|
5040
5175
|
ClassDeclaration,
|
|
5041
5176
|
ClassExpression,
|
|
5042
5177
|
ClassBinding,
|
|
@@ -5081,6 +5216,7 @@ ${input.slice(result.pos)}
|
|
|
5081
5216
|
MemberBracketContent,
|
|
5082
5217
|
SliceParameters,
|
|
5083
5218
|
AccessStart,
|
|
5219
|
+
ImplicitAccessStart,
|
|
5084
5220
|
PropertyAccessModifier,
|
|
5085
5221
|
PropertyAccess,
|
|
5086
5222
|
PropertyGlob,
|
|
@@ -5215,6 +5351,7 @@ ${input.slice(result.pos)}
|
|
|
5215
5351
|
BinaryOp,
|
|
5216
5352
|
_BinaryOp,
|
|
5217
5353
|
BinaryOpSymbol,
|
|
5354
|
+
ActualIn,
|
|
5218
5355
|
CoffeeOfOp,
|
|
5219
5356
|
NotOp,
|
|
5220
5357
|
Xor,
|
|
@@ -5495,6 +5632,7 @@ ${input.slice(result.pos)}
|
|
|
5495
5632
|
TripleTick,
|
|
5496
5633
|
Try,
|
|
5497
5634
|
Typeof,
|
|
5635
|
+
Undefined,
|
|
5498
5636
|
Unless,
|
|
5499
5637
|
Until,
|
|
5500
5638
|
Using,
|
|
@@ -5895,123 +6033,126 @@ ${input.slice(result.pos)}
|
|
|
5895
6033
|
var $L199 = $L("```");
|
|
5896
6034
|
var $L200 = $L("try");
|
|
5897
6035
|
var $L201 = $L("typeof");
|
|
5898
|
-
var $L202 = $L("
|
|
5899
|
-
var $L203 = $L("
|
|
5900
|
-
var $L204 = $L("
|
|
5901
|
-
var $L205 = $L("
|
|
5902
|
-
var $L206 = $L("
|
|
5903
|
-
var $L207 = $L("
|
|
5904
|
-
var $L208 = $L("
|
|
5905
|
-
var $L209 = $L("
|
|
5906
|
-
var $L210 = $L("
|
|
5907
|
-
var $L211 = $L("
|
|
5908
|
-
var $L212 = $L("
|
|
5909
|
-
var $L213 = $L("
|
|
5910
|
-
var $L214 = $L("
|
|
5911
|
-
var $L215 = $L("
|
|
5912
|
-
var $L216 = $L("
|
|
5913
|
-
var $L217 = $L("
|
|
5914
|
-
var $L218 = $L("
|
|
5915
|
-
var $L219 = $L("
|
|
5916
|
-
var $L220 = $L("
|
|
5917
|
-
var $L221 = $L("
|
|
5918
|
-
var $L222 = $L("
|
|
5919
|
-
var $L223 = $L("
|
|
5920
|
-
var $L224 = $L("
|
|
5921
|
-
var $L225 = $L("
|
|
5922
|
-
var $L226 = $L("
|
|
6036
|
+
var $L202 = $L("undefined");
|
|
6037
|
+
var $L203 = $L("unless");
|
|
6038
|
+
var $L204 = $L("until");
|
|
6039
|
+
var $L205 = $L("using");
|
|
6040
|
+
var $L206 = $L("var");
|
|
6041
|
+
var $L207 = $L("void");
|
|
6042
|
+
var $L208 = $L("when");
|
|
6043
|
+
var $L209 = $L("while");
|
|
6044
|
+
var $L210 = $L("yield");
|
|
6045
|
+
var $L211 = $L("/>");
|
|
6046
|
+
var $L212 = $L("</");
|
|
6047
|
+
var $L213 = $L("<>");
|
|
6048
|
+
var $L214 = $L("</>");
|
|
6049
|
+
var $L215 = $L("<!--");
|
|
6050
|
+
var $L216 = $L("-->");
|
|
6051
|
+
var $L217 = $L("type");
|
|
6052
|
+
var $L218 = $L("enum");
|
|
6053
|
+
var $L219 = $L("interface");
|
|
6054
|
+
var $L220 = $L("global");
|
|
6055
|
+
var $L221 = $L("module");
|
|
6056
|
+
var $L222 = $L("namespace");
|
|
6057
|
+
var $L223 = $L("asserts");
|
|
6058
|
+
var $L224 = $L("keyof");
|
|
6059
|
+
var $L225 = $L("???");
|
|
6060
|
+
var $L226 = $L("[]");
|
|
6061
|
+
var $L227 = $L("civet");
|
|
5923
6062
|
var $R0 = $R(new RegExp("(?=async|debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
|
|
5924
6063
|
var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
|
|
5925
6064
|
var $R2 = $R(new RegExp("[0-9]", "suy"));
|
|
5926
6065
|
var $R3 = $R(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
|
|
5927
6066
|
var $R4 = $R(new RegExp("[ \\t]", "suy"));
|
|
5928
|
-
var $R5 = $R(new RegExp("(
|
|
5929
|
-
var $R6 = $R(new RegExp("(?=[
|
|
5930
|
-
var $R7 = $R(new RegExp("(?=[
|
|
5931
|
-
var $R8 = $R(new RegExp("[)
|
|
5932
|
-
var $R9 = $R(new RegExp("
|
|
5933
|
-
var $R10 = $R(new RegExp("[
|
|
5934
|
-
var $R11 = $R(new RegExp(
|
|
5935
|
-
var $R12 = $R(new RegExp("
|
|
5936
|
-
var $R13 = $R(new RegExp(
|
|
5937
|
-
var $R14 = $R(new RegExp("(
|
|
5938
|
-
var $R15 = $R(new RegExp("(?=\\[)", "suy"));
|
|
5939
|
-
var $R16 = $R(new RegExp("[
|
|
5940
|
-
var $R17 = $R(new RegExp("[
|
|
5941
|
-
var $R18 = $R(new RegExp("
|
|
5942
|
-
var $R19 = $R(new RegExp("
|
|
5943
|
-
var $R20 = $R(new RegExp("
|
|
5944
|
-
var $R21 = $R(new RegExp("[
|
|
5945
|
-
var $R22 = $R(new RegExp("
|
|
5946
|
-
var $R23 = $R(new RegExp("(?=loop|
|
|
5947
|
-
var $R24 = $R(new RegExp("(?=
|
|
5948
|
-
var $R25 = $R(new RegExp(
|
|
5949
|
-
var $R26 = $R(new RegExp("
|
|
5950
|
-
var $R27 = $R(new RegExp("(
|
|
5951
|
-
var $R28 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)
|
|
5952
|
-
var $R29 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(
|
|
5953
|
-
var $R30 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
|
|
5954
|
-
var $R31 = $R(new RegExp("(
|
|
5955
|
-
var $R32 = $R(new RegExp("
|
|
5956
|
-
var $R33 = $R(new RegExp("0[
|
|
5957
|
-
var $R34 = $R(new RegExp("0[
|
|
5958
|
-
var $R35 = $R(new RegExp("(
|
|
5959
|
-
var $R36 = $R(new RegExp("(
|
|
5960
|
-
var $R37 = $R(new RegExp(
|
|
5961
|
-
var $R38 = $R(new RegExp(
|
|
5962
|
-
var $R39 = $R(new RegExp(
|
|
5963
|
-
var $R40 = $R(new RegExp(
|
|
5964
|
-
var $R41 = $R(new RegExp('(
|
|
5965
|
-
var $R42 = $R(new RegExp(
|
|
5966
|
-
var $R43 = $R(new RegExp("(
|
|
5967
|
-
var $R44 = $R(new RegExp("
|
|
5968
|
-
var $R45 = $R(new RegExp("
|
|
5969
|
-
var $R46 = $R(new RegExp("
|
|
5970
|
-
var $R47 = $R(new RegExp("[
|
|
5971
|
-
var $R48 = $R(new RegExp("
|
|
5972
|
-
var $R49 = $R(new RegExp("(
|
|
5973
|
-
var $R50 = $R(new RegExp("(
|
|
5974
|
-
var $R51 = $R(new RegExp("(
|
|
5975
|
-
var $R52 = $R(new RegExp("(?:\\$(?!\\{)
|
|
5976
|
-
var $R53 = $R(new RegExp("(
|
|
5977
|
-
var $R54 = $R(new RegExp("(?:
|
|
5978
|
-
var $R55 = $R(new RegExp("(?:
|
|
5979
|
-
var $R56 = $R(new RegExp("(?:
|
|
5980
|
-
var $R57 = $R(new RegExp("(?:
|
|
5981
|
-
var $R58 = $R(new RegExp("(
|
|
5982
|
-
var $R59 = $R(new RegExp("
|
|
5983
|
-
var $R60 = $R(new RegExp("
|
|
5984
|
-
var $R61 = $R(new RegExp("
|
|
5985
|
-
var $R62 = $R(new RegExp("[
|
|
5986
|
-
var $R63 = $R(new RegExp("
|
|
5987
|
-
var $R64 = $R(new RegExp("
|
|
5988
|
-
var $R65 = $R(new RegExp("(
|
|
5989
|
-
var $R66 = $R(new RegExp("[ \\t]
|
|
5990
|
-
var $R67 = $R(new RegExp("
|
|
5991
|
-
var $R68 = $R(new RegExp("(
|
|
5992
|
-
var $R69 = $R(new RegExp("
|
|
5993
|
-
var $R70 = $R(new RegExp("
|
|
5994
|
-
var $R71 = $R(new RegExp("
|
|
5995
|
-
var $R72 = $R(new RegExp("
|
|
5996
|
-
var $R73 = $R(new RegExp("[
|
|
5997
|
-
var $R74 = $R(new RegExp("[\\
|
|
5998
|
-
var $R75 = $R(new RegExp("
|
|
5999
|
-
var $R76 = $R(new RegExp(
|
|
6000
|
-
var $R77 = $R(new RegExp("[
|
|
6001
|
-
var $R78 = $R(new RegExp("[
|
|
6002
|
-
var $R79 = $R(new RegExp("
|
|
6003
|
-
var $R80 = $R(new RegExp("[
|
|
6004
|
-
var $R81 = $R(new RegExp("[
|
|
6005
|
-
var $R82 = $R(new RegExp("
|
|
6006
|
-
var $R83 = $R(new RegExp("
|
|
6007
|
-
var $R84 = $R(new RegExp("
|
|
6008
|
-
var $R85 = $R(new RegExp("[
|
|
6009
|
-
var $R86 = $R(new RegExp("[\\
|
|
6010
|
-
var $R87 = $R(new RegExp("
|
|
6011
|
-
var $R88 = $R(new RegExp("
|
|
6012
|
-
var $R89 = $R(new RegExp("(
|
|
6013
|
-
var $R90 = $R(new RegExp("
|
|
6014
|
-
var $R91 = $R(new RegExp("[
|
|
6067
|
+
var $R5 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$.])", "suy"));
|
|
6068
|
+
var $R6 = $R(new RegExp("(?=['\"`])", "suy"));
|
|
6069
|
+
var $R7 = $R(new RegExp("(?=[\\/?])", "suy"));
|
|
6070
|
+
var $R8 = $R(new RegExp("(?=[\\/\\[{?.!@#'\u2019:])", "suy"));
|
|
6071
|
+
var $R9 = $R(new RegExp("[)}]", "suy"));
|
|
6072
|
+
var $R10 = $R(new RegExp("[+-]", "suy"));
|
|
6073
|
+
var $R11 = $R(new RegExp("\\+\\+|--|[\\+-]\\S", "suy"));
|
|
6074
|
+
var $R12 = $R(new RegExp("[&]", "suy"));
|
|
6075
|
+
var $R13 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
|
|
6076
|
+
var $R14 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
|
|
6077
|
+
var $R15 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
|
|
6078
|
+
var $R16 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
|
|
6079
|
+
var $R17 = $R(new RegExp("(?=\\[)", "suy"));
|
|
6080
|
+
var $R18 = $R(new RegExp("[!+-]?", "suy"));
|
|
6081
|
+
var $R19 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
|
|
6082
|
+
var $R20 = $R(new RegExp("!\\^\\^?", "suy"));
|
|
6083
|
+
var $R21 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
|
|
6084
|
+
var $R22 = $R(new RegExp("[:.]", "suy"));
|
|
6085
|
+
var $R23 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
|
|
6086
|
+
var $R24 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
|
|
6087
|
+
var $R25 = $R(new RegExp("(?=[\\s\\),])", "suy"));
|
|
6088
|
+
var $R26 = $R(new RegExp('[^;"\\s]+', "suy"));
|
|
6089
|
+
var $R27 = $R(new RegExp("(?=[0-9.])", "suy"));
|
|
6090
|
+
var $R28 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
|
|
6091
|
+
var $R29 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
|
|
6092
|
+
var $R30 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
|
|
6093
|
+
var $R31 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
|
|
6094
|
+
var $R32 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
|
|
6095
|
+
var $R33 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
|
|
6096
|
+
var $R34 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
|
|
6097
|
+
var $R35 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
|
|
6098
|
+
var $R36 = $R(new RegExp("(?=[0-9])", "suy"));
|
|
6099
|
+
var $R37 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
|
|
6100
|
+
var $R38 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
|
|
6101
|
+
var $R39 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
|
|
6102
|
+
var $R40 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
|
|
6103
|
+
var $R41 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
|
|
6104
|
+
var $R42 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
|
|
6105
|
+
var $R43 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
|
|
6106
|
+
var $R44 = $R(new RegExp("(?:\\\\.)", "suy"));
|
|
6107
|
+
var $R45 = $R(new RegExp("[\\s]+", "suy"));
|
|
6108
|
+
var $R46 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
|
|
6109
|
+
var $R47 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
|
|
6110
|
+
var $R48 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
|
|
6111
|
+
var $R49 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
|
|
6112
|
+
var $R50 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
|
|
6113
|
+
var $R51 = $R(new RegExp("(?=[`'\"])", "suy"));
|
|
6114
|
+
var $R52 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
|
|
6115
|
+
var $R53 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
|
|
6116
|
+
var $R54 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
|
|
6117
|
+
var $R55 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
|
|
6118
|
+
var $R56 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
|
|
6119
|
+
var $R57 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
|
|
6120
|
+
var $R58 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
|
|
6121
|
+
var $R59 = $R(new RegExp("(?=\\/|#)", "suy"));
|
|
6122
|
+
var $R60 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
|
|
6123
|
+
var $R61 = $R(new RegExp(".", "suy"));
|
|
6124
|
+
var $R62 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
|
|
6125
|
+
var $R63 = $R(new RegExp("[^]*?###", "suy"));
|
|
6126
|
+
var $R64 = $R(new RegExp("###(?!#)", "suy"));
|
|
6127
|
+
var $R65 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
|
|
6128
|
+
var $R66 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
|
|
6129
|
+
var $R67 = $R(new RegExp("[ \\t]+", "suy"));
|
|
6130
|
+
var $R68 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
|
|
6131
|
+
var $R69 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
|
|
6132
|
+
var $R70 = $R(new RegExp("[=:]", "suy"));
|
|
6133
|
+
var $R71 = $R(new RegExp("['\u2019]s", "suy"));
|
|
6134
|
+
var $R72 = $R(new RegExp("\\s", "suy"));
|
|
6135
|
+
var $R73 = $R(new RegExp("(?=[<])", "suy"));
|
|
6136
|
+
var $R74 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
|
|
6137
|
+
var $R75 = $R(new RegExp("[!+-]", "suy"));
|
|
6138
|
+
var $R76 = $R(new RegExp("[\\s>]|\\/>", "suy"));
|
|
6139
|
+
var $R77 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
|
|
6140
|
+
var $R78 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
|
|
6141
|
+
var $R79 = $R(new RegExp("[<>]", "suy"));
|
|
6142
|
+
var $R80 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
|
|
6143
|
+
var $R81 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
|
|
6144
|
+
var $R82 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
|
|
6145
|
+
var $R83 = $R(new RegExp("[+-]?", "suy"));
|
|
6146
|
+
var $R84 = $R(new RegExp("(?=if|unless)", "suy"));
|
|
6147
|
+
var $R85 = $R(new RegExp("#![^\\r\\n]*", "suy"));
|
|
6148
|
+
var $R86 = $R(new RegExp("[\\t ]*", "suy"));
|
|
6149
|
+
var $R87 = $R(new RegExp("[ \\t]*", "suy"));
|
|
6150
|
+
var $R88 = $R(new RegExp("[\\s]*", "suy"));
|
|
6151
|
+
var $R89 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
|
|
6152
|
+
var $R90 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
|
|
6153
|
+
var $R91 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
|
|
6154
|
+
var $R92 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
|
|
6155
|
+
var $R93 = $R(new RegExp("[^]*", "suy"));
|
|
6015
6156
|
var Program$0 = $TS($S(Reset, Init, $E(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
|
|
6016
6157
|
var statements = $4;
|
|
6017
6158
|
processProgram({
|
|
@@ -6424,17 +6565,12 @@ ${input.slice(result.pos)}
|
|
|
6424
6565
|
function SingleLineBinaryOpRHS(ctx, state) {
|
|
6425
6566
|
return $EVENT(ctx, state, "SingleLineBinaryOpRHS", SingleLineBinaryOpRHS$0);
|
|
6426
6567
|
}
|
|
6427
|
-
var RHS$0 =
|
|
6428
|
-
var RHS$1 =
|
|
6429
|
-
var RHS
|
|
6430
|
-
var RHS$$ = [RHS$0, RHS$1, RHS$2];
|
|
6568
|
+
var RHS$0 = UnaryExpression;
|
|
6569
|
+
var RHS$1 = ExpressionizedStatementWithTrailingCallExpressions;
|
|
6570
|
+
var RHS$$ = [RHS$0, RHS$1];
|
|
6431
6571
|
function RHS(ctx, state) {
|
|
6432
6572
|
return $EVENT_C(ctx, state, "RHS", RHS$$);
|
|
6433
6573
|
}
|
|
6434
|
-
var ParenthesizedAssignment$0 = $S(InsertOpenParen, ActualAssignment, InsertCloseParen);
|
|
6435
|
-
function ParenthesizedAssignment(ctx, state) {
|
|
6436
|
-
return $EVENT(ctx, state, "ParenthesizedAssignment", ParenthesizedAssignment$0);
|
|
6437
|
-
}
|
|
6438
6574
|
var UnaryExpression$0 = AmpersandFunctionExpression;
|
|
6439
6575
|
var UnaryExpression$1 = $TS($S($Q(UnaryOp), UnaryBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
|
|
6440
6576
|
var pre = $1;
|
|
@@ -6476,6 +6612,10 @@ ${input.slice(result.pos)}
|
|
|
6476
6612
|
function UnaryWithoutParenthesizedAssignmentBody(ctx, state) {
|
|
6477
6613
|
return $EVENT_C(ctx, state, "UnaryWithoutParenthesizedAssignmentBody", UnaryWithoutParenthesizedAssignmentBody$$);
|
|
6478
6614
|
}
|
|
6615
|
+
var ParenthesizedAssignment$0 = $S(InsertOpenParen, $C(ActualAssignment, ArrowFunction), InsertCloseParen);
|
|
6616
|
+
function ParenthesizedAssignment(ctx, state) {
|
|
6617
|
+
return $EVENT(ctx, state, "ParenthesizedAssignment", ParenthesizedAssignment$0);
|
|
6618
|
+
}
|
|
6479
6619
|
var UnaryPostfix$0 = QuestionMark;
|
|
6480
6620
|
var UnaryPostfix$1 = $P(TypePostfix);
|
|
6481
6621
|
var UnaryPostfix$$ = [UnaryPostfix$0, UnaryPostfix$1];
|
|
@@ -6788,8 +6928,9 @@ ${input.slice(result.pos)}
|
|
|
6788
6928
|
var PrimaryExpression$7 = ClassExpression;
|
|
6789
6929
|
var PrimaryExpression$8 = RegularExpressionLiteral;
|
|
6790
6930
|
var PrimaryExpression$9 = ParenthesizedExpression;
|
|
6791
|
-
var PrimaryExpression$10 =
|
|
6792
|
-
var PrimaryExpression
|
|
6931
|
+
var PrimaryExpression$10 = PartialPlaceholder;
|
|
6932
|
+
var PrimaryExpression$11 = JSXImplicitFragment;
|
|
6933
|
+
var PrimaryExpression$$ = [PrimaryExpression$0, PrimaryExpression$1, PrimaryExpression$2, PrimaryExpression$3, PrimaryExpression$4, PrimaryExpression$5, PrimaryExpression$6, PrimaryExpression$7, PrimaryExpression$8, PrimaryExpression$9, PrimaryExpression$10, PrimaryExpression$11];
|
|
6793
6934
|
function PrimaryExpression(ctx, state) {
|
|
6794
6935
|
return $EVENT_C(ctx, state, "PrimaryExpression", PrimaryExpression$$);
|
|
6795
6936
|
}
|
|
@@ -6823,6 +6964,16 @@ ${input.slice(result.pos)}
|
|
|
6823
6964
|
function ParenthesizedExpression(ctx, state) {
|
|
6824
6965
|
return $EVENT(ctx, state, "ParenthesizedExpression", ParenthesizedExpression$0);
|
|
6825
6966
|
}
|
|
6967
|
+
var PartialPlaceholder$0 = $TS($S(Dot, $N($EXPECT($R5, "PartialPlaceholder /(?:\\p{ID_Continue}|[\\u200C\\u200D$.])/"))), function($skip, $loc, $0, $1, $2) {
|
|
6968
|
+
var dot = $1;
|
|
6969
|
+
return {
|
|
6970
|
+
type: "PartialPlaceholder",
|
|
6971
|
+
children: [dot]
|
|
6972
|
+
};
|
|
6973
|
+
});
|
|
6974
|
+
function PartialPlaceholder(ctx, state) {
|
|
6975
|
+
return $EVENT(ctx, state, "PartialPlaceholder", PartialPlaceholder$0);
|
|
6976
|
+
}
|
|
6826
6977
|
var ClassDeclaration$0 = $TS($S(ClassExpression), function($skip, $loc, $0, $1) {
|
|
6827
6978
|
if ($1.id)
|
|
6828
6979
|
return $1;
|
|
@@ -7127,7 +7278,8 @@ ${input.slice(result.pos)}
|
|
|
7127
7278
|
return $EVENT_C(ctx, state, "FieldDefinition", FieldDefinition$$);
|
|
7128
7279
|
}
|
|
7129
7280
|
var ThisLiteral$0 = This;
|
|
7130
|
-
var ThisLiteral$1 =
|
|
7281
|
+
var ThisLiteral$1 = HashThis;
|
|
7282
|
+
var ThisLiteral$2 = $TS($S(AtThis, $TEXT($S($E(Hash), IdentifierName))), function($skip, $loc, $0, $1, $2) {
|
|
7131
7283
|
var at = $1;
|
|
7132
7284
|
var id = $2;
|
|
7133
7285
|
return {
|
|
@@ -7140,20 +7292,20 @@ ${input.slice(result.pos)}
|
|
|
7140
7292
|
thisShorthand: true
|
|
7141
7293
|
};
|
|
7142
7294
|
});
|
|
7143
|
-
var ThisLiteral$
|
|
7144
|
-
var ThisLiteral$3 = HashThis;
|
|
7295
|
+
var ThisLiteral$3 = AtThis;
|
|
7145
7296
|
var ThisLiteral$$ = [ThisLiteral$0, ThisLiteral$1, ThisLiteral$2, ThisLiteral$3];
|
|
7146
7297
|
function ThisLiteral(ctx, state) {
|
|
7147
7298
|
return $EVENT_C(ctx, state, "ThisLiteral", ThisLiteral$$);
|
|
7148
7299
|
}
|
|
7149
|
-
var HashThis$0 = $TS($S(LengthShorthand, $E($S($Y($S(
|
|
7150
|
-
var
|
|
7151
|
-
var
|
|
7152
|
-
|
|
7300
|
+
var HashThis$0 = $TS($S($E(AtThis), LengthShorthand, $E($S($Y($S(_, $E($S(Not, __)), ActualIn)), $EXPECT($L0, 'HashThis ""')))), function($skip, $loc, $0, $1, $2, $3) {
|
|
7301
|
+
var at = $1;
|
|
7302
|
+
var id = $2;
|
|
7303
|
+
var beforeIn = $3;
|
|
7304
|
+
if (beforeIn != null && at == null)
|
|
7153
7305
|
return ['"', id.name, '"'];
|
|
7154
7306
|
return {
|
|
7155
7307
|
type: "MemberExpression",
|
|
7156
|
-
children: ["this", {
|
|
7308
|
+
children: [at ?? "this", {
|
|
7157
7309
|
type: "PropertyAccess",
|
|
7158
7310
|
name: id.name,
|
|
7159
7311
|
children: [".", id]
|
|
@@ -7161,7 +7313,7 @@ ${input.slice(result.pos)}
|
|
|
7161
7313
|
thisShorthand: true
|
|
7162
7314
|
};
|
|
7163
7315
|
});
|
|
7164
|
-
var HashThis$1 = $TS($S(PrivateIdentifier, $Y($S(
|
|
7316
|
+
var HashThis$1 = $TS($S(PrivateIdentifier, $Y($S(_, $E($S(Not, __)), ActualIn))), function($skip, $loc, $0, $1, $2) {
|
|
7165
7317
|
var id = $1;
|
|
7166
7318
|
return id;
|
|
7167
7319
|
});
|
|
@@ -7255,7 +7407,7 @@ ${input.slice(result.pos)}
|
|
|
7255
7407
|
var CallExpressionRest$1 = $T($S(TypeArguments, $N($C(IdentifierName, NumericLiteral))), function(value) {
|
|
7256
7408
|
return value[0];
|
|
7257
7409
|
});
|
|
7258
|
-
var CallExpressionRest$2 = $TS($S($EXPECT($
|
|
7410
|
+
var CallExpressionRest$2 = $TS($S($EXPECT($R6, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
|
|
7259
7411
|
var literal = $2;
|
|
7260
7412
|
if (literal.type === "StringLiteral") {
|
|
7261
7413
|
literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
|
|
@@ -7278,7 +7430,7 @@ ${input.slice(result.pos)}
|
|
|
7278
7430
|
function CallExpressionRest(ctx, state) {
|
|
7279
7431
|
return $EVENT_C(ctx, state, "CallExpressionRest", CallExpressionRest$$);
|
|
7280
7432
|
}
|
|
7281
|
-
var OptionalShorthand$0 = $TS($S($EXPECT($
|
|
7433
|
+
var OptionalShorthand$0 = $TS($S($EXPECT($R7, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
7282
7434
|
var comments = $2;
|
|
7283
7435
|
var q = $3;
|
|
7284
7436
|
var d = $4;
|
|
@@ -7332,7 +7484,7 @@ ${input.slice(result.pos)}
|
|
|
7332
7484
|
function MemberBase(ctx, state) {
|
|
7333
7485
|
return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
|
|
7334
7486
|
}
|
|
7335
|
-
var MemberExpressionRest$0 = $TS($S($EXPECT($
|
|
7487
|
+
var MemberExpressionRest$0 = $TS($S($EXPECT($R8, "MemberExpressionRest /(?=[\\/\\[{?.!@#'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
|
|
7336
7488
|
var comments = $2;
|
|
7337
7489
|
var body = $3;
|
|
7338
7490
|
if (Array.isArray(body))
|
|
@@ -7465,16 +7617,27 @@ ${input.slice(result.pos)}
|
|
|
7465
7617
|
var AccessStart$0 = $TS($S($E(PropertyAccessModifier), Dot, $N(Dot)), function($skip, $loc, $0, $1, $2, $3) {
|
|
7466
7618
|
var modifier = $1;
|
|
7467
7619
|
var dot = $2;
|
|
7468
|
-
let children = modifier ? [modifier, dot] : [dot];
|
|
7469
7620
|
return {
|
|
7470
7621
|
type: "AccessStart",
|
|
7471
|
-
children,
|
|
7622
|
+
children: modifier ? [modifier, dot] : [dot],
|
|
7472
7623
|
optional: modifier?.token === "?"
|
|
7473
7624
|
};
|
|
7474
7625
|
});
|
|
7475
7626
|
function AccessStart(ctx, state) {
|
|
7476
7627
|
return $EVENT(ctx, state, "AccessStart", AccessStart$0);
|
|
7477
7628
|
}
|
|
7629
|
+
var ImplicitAccessStart$0 = $TS($S($E(PropertyAccessModifier), InsertDot, $N(Dot)), function($skip, $loc, $0, $1, $2, $3) {
|
|
7630
|
+
var modifier = $1;
|
|
7631
|
+
var dot = $2;
|
|
7632
|
+
return {
|
|
7633
|
+
type: "AccessStart",
|
|
7634
|
+
children: modifier ? [modifier, dot] : [dot],
|
|
7635
|
+
optional: modifier?.token === "?"
|
|
7636
|
+
};
|
|
7637
|
+
});
|
|
7638
|
+
function ImplicitAccessStart(ctx, state) {
|
|
7639
|
+
return $EVENT(ctx, state, "ImplicitAccessStart", ImplicitAccessStart$0);
|
|
7640
|
+
}
|
|
7478
7641
|
var PropertyAccessModifier$0 = QuestionMark;
|
|
7479
7642
|
var PropertyAccessModifier$1 = NonNullAssertion;
|
|
7480
7643
|
var PropertyAccessModifier$$ = [PropertyAccessModifier$0, PropertyAccessModifier$1];
|
|
@@ -7516,15 +7679,24 @@ ${input.slice(result.pos)}
|
|
|
7516
7679
|
var dot = $1;
|
|
7517
7680
|
var comments = $2;
|
|
7518
7681
|
var id = $3;
|
|
7519
|
-
const children = [dot, ...comments, ...id.children];
|
|
7520
7682
|
return {
|
|
7521
7683
|
type: "PropertyAccess",
|
|
7522
7684
|
name: id.name,
|
|
7523
7685
|
dot,
|
|
7524
|
-
children
|
|
7686
|
+
children: [dot, ...comments, ...id.children]
|
|
7687
|
+
};
|
|
7688
|
+
});
|
|
7689
|
+
var PropertyAccess$3 = $TS($S(ImplicitAccessStart, $C(PrivateIdentifier, LengthShorthand)), function($skip, $loc, $0, $1, $2) {
|
|
7690
|
+
var dot = $1;
|
|
7691
|
+
var id = $2;
|
|
7692
|
+
return {
|
|
7693
|
+
type: "PropertyAccess",
|
|
7694
|
+
name: id.name,
|
|
7695
|
+
dot,
|
|
7696
|
+
children: [dot, ...id.children]
|
|
7525
7697
|
};
|
|
7526
7698
|
});
|
|
7527
|
-
var PropertyAccess$
|
|
7699
|
+
var PropertyAccess$4 = $TS($S(CoffeePrototypeEnabled, DoubleColon, $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
|
|
7528
7700
|
var p = $2;
|
|
7529
7701
|
var id = $3;
|
|
7530
7702
|
if (id) {
|
|
@@ -7545,7 +7717,7 @@ ${input.slice(result.pos)}
|
|
|
7545
7717
|
};
|
|
7546
7718
|
}
|
|
7547
7719
|
});
|
|
7548
|
-
var PropertyAccess$$ = [PropertyAccess$0, PropertyAccess$1, PropertyAccess$2, PropertyAccess$3];
|
|
7720
|
+
var PropertyAccess$$ = [PropertyAccess$0, PropertyAccess$1, PropertyAccess$2, PropertyAccess$3, PropertyAccess$4];
|
|
7549
7721
|
function PropertyAccess(ctx, state) {
|
|
7550
7722
|
return $EVENT_C(ctx, state, "PropertyAccess", PropertyAccess$$);
|
|
7551
7723
|
}
|
|
@@ -7796,7 +7968,7 @@ ${input.slice(result.pos)}
|
|
|
7796
7968
|
return $EVENT(ctx, state, "ParameterElement", ParameterElement$0);
|
|
7797
7969
|
}
|
|
7798
7970
|
var ParameterElementDelimiter$0 = $S($E(_), Comma);
|
|
7799
|
-
var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($
|
|
7971
|
+
var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R9, "ParameterElementDelimiter /[)}]/"))));
|
|
7800
7972
|
var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
|
|
7801
7973
|
return value[1];
|
|
7802
7974
|
});
|
|
@@ -7865,7 +8037,23 @@ ${input.slice(result.pos)}
|
|
|
7865
8037
|
expression
|
|
7866
8038
|
};
|
|
7867
8039
|
});
|
|
7868
|
-
var PinPattern
|
|
8040
|
+
var PinPattern$2 = $TV($S($EXPECT($R10, "PinPattern /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1) {
|
|
8041
|
+
var expression = $0;
|
|
8042
|
+
return {
|
|
8043
|
+
type: "PinPattern",
|
|
8044
|
+
children: [expression],
|
|
8045
|
+
expression
|
|
8046
|
+
};
|
|
8047
|
+
});
|
|
8048
|
+
var PinPattern$3 = $TV(Undefined, function($skip, $loc, $0, $1) {
|
|
8049
|
+
var expression = $0;
|
|
8050
|
+
return {
|
|
8051
|
+
type: "PinPattern",
|
|
8052
|
+
children: [expression],
|
|
8053
|
+
expression
|
|
8054
|
+
};
|
|
8055
|
+
});
|
|
8056
|
+
var PinPattern$$ = [PinPattern$0, PinPattern$1, PinPattern$2, PinPattern$3];
|
|
7869
8057
|
function PinPattern(ctx, state) {
|
|
7870
8058
|
return $EVENT_C(ctx, state, "PinPattern", PinPattern$$);
|
|
7871
8059
|
}
|
|
@@ -8300,7 +8488,7 @@ ${input.slice(result.pos)}
|
|
|
8300
8488
|
parameters
|
|
8301
8489
|
};
|
|
8302
8490
|
});
|
|
8303
|
-
var FunctionExpression$4 = $TS($S(OpenParen, __, $N($EXPECT($
|
|
8491
|
+
var FunctionExpression$4 = $TS($S(OpenParen, __, $N($EXPECT($R11, "FunctionExpression /\\+\\+|--|[\\+-]\\S/")), BinaryOp, __, NonPipelineAssignmentExpression, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
|
|
8304
8492
|
var open = $1;
|
|
8305
8493
|
var ws1 = $2;
|
|
8306
8494
|
var op = $4;
|
|
@@ -8343,52 +8531,7 @@ ${input.slice(result.pos)}
|
|
|
8343
8531
|
var rhs = $3;
|
|
8344
8532
|
if (!prefix.length && !rhs)
|
|
8345
8533
|
return $skip;
|
|
8346
|
-
|
|
8347
|
-
if (!rhs) {
|
|
8348
|
-
body = ref = makeRef("$");
|
|
8349
|
-
} else {
|
|
8350
|
-
({ ref, typeSuffix } = rhs);
|
|
8351
|
-
if (!ref) {
|
|
8352
|
-
throw new Error("Could not find ref in ampersand shorthand block");
|
|
8353
|
-
}
|
|
8354
|
-
body = rhs;
|
|
8355
|
-
}
|
|
8356
|
-
if (prefix.length) {
|
|
8357
|
-
body = {
|
|
8358
|
-
type: "UnaryExpression",
|
|
8359
|
-
children: [processUnaryExpression(prefix, body, void 0)]
|
|
8360
|
-
};
|
|
8361
|
-
}
|
|
8362
|
-
const parameters = {
|
|
8363
|
-
type: "Parameters",
|
|
8364
|
-
children: typeSuffix ? ["(", ref, typeSuffix, ")"] : [ref],
|
|
8365
|
-
names: []
|
|
8366
|
-
};
|
|
8367
|
-
const expressions = [body];
|
|
8368
|
-
const block = {
|
|
8369
|
-
bare: true,
|
|
8370
|
-
expressions,
|
|
8371
|
-
children: [expressions]
|
|
8372
|
-
};
|
|
8373
|
-
const children = [parameters, " => ", block];
|
|
8374
|
-
const async = hasAwait(body);
|
|
8375
|
-
if (async) {
|
|
8376
|
-
children.unshift("async ");
|
|
8377
|
-
}
|
|
8378
|
-
return {
|
|
8379
|
-
type: "ArrowFunction",
|
|
8380
|
-
signature: {
|
|
8381
|
-
modifier: {
|
|
8382
|
-
async
|
|
8383
|
-
}
|
|
8384
|
-
},
|
|
8385
|
-
children,
|
|
8386
|
-
ref,
|
|
8387
|
-
body,
|
|
8388
|
-
ampersandBlock: true,
|
|
8389
|
-
block,
|
|
8390
|
-
parameters
|
|
8391
|
-
};
|
|
8534
|
+
return makeAmpersandFunctionExpression(prefix, rhs);
|
|
8392
8535
|
});
|
|
8393
8536
|
function AmpersandFunctionExpression(ctx, state) {
|
|
8394
8537
|
return $EVENT(ctx, state, "AmpersandFunctionExpression", AmpersandFunctionExpression$0);
|
|
@@ -8514,7 +8657,7 @@ ${input.slice(result.pos)}
|
|
|
8514
8657
|
function AmpersandTypeSuffix(ctx, state) {
|
|
8515
8658
|
return $EVENT(ctx, state, "AmpersandTypeSuffix", AmpersandTypeSuffix$0);
|
|
8516
8659
|
}
|
|
8517
|
-
var AmpersandBlockRHSBody$0 = $TS($S($E(AmpersandTypeSuffix), $E($S($N(_), $P(CallExpressionRest))), $E(UnaryPostfix), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($
|
|
8660
|
+
var AmpersandBlockRHSBody$0 = $TS($S($E(AmpersandTypeSuffix), $E($S($N(_), $P(CallExpressionRest))), $E(UnaryPostfix), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R12, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
|
|
8518
8661
|
var typeSuffix = $1;
|
|
8519
8662
|
var callExpRest = $2;
|
|
8520
8663
|
var unaryPostfix = $3;
|
|
@@ -8522,42 +8665,7 @@ ${input.slice(result.pos)}
|
|
|
8522
8665
|
var binopRHS = $5;
|
|
8523
8666
|
if (!typeSuffix && !callExpRest && !binopRHS && !unaryPostfix)
|
|
8524
8667
|
return $skip;
|
|
8525
|
-
|
|
8526
|
-
let exp = {
|
|
8527
|
-
type: "AmpersandRef",
|
|
8528
|
-
children: [ref],
|
|
8529
|
-
names: [],
|
|
8530
|
-
ref
|
|
8531
|
-
};
|
|
8532
|
-
if (callExpRest) {
|
|
8533
|
-
exp.children.push(...callExpRest[1]);
|
|
8534
|
-
}
|
|
8535
|
-
if (unaryPostfix) {
|
|
8536
|
-
exp = processUnaryExpression([], exp, unaryPostfix);
|
|
8537
|
-
}
|
|
8538
|
-
if (assign) {
|
|
8539
|
-
const [op1, more, rhs] = assign;
|
|
8540
|
-
const lhs = [
|
|
8541
|
-
[void 0, exp, ...op1],
|
|
8542
|
-
...more.map((x) => [x[0], x[1], ...x[2]])
|
|
8543
|
-
];
|
|
8544
|
-
exp = {
|
|
8545
|
-
type: "AssignmentExpression",
|
|
8546
|
-
children: [lhs, rhs],
|
|
8547
|
-
names: null,
|
|
8548
|
-
lhs,
|
|
8549
|
-
assigned: exp,
|
|
8550
|
-
exp: rhs
|
|
8551
|
-
};
|
|
8552
|
-
}
|
|
8553
|
-
if (binopRHS) {
|
|
8554
|
-
exp = {
|
|
8555
|
-
children: processBinaryOpExpression([exp, binopRHS[1]])
|
|
8556
|
-
};
|
|
8557
|
-
}
|
|
8558
|
-
exp.ref = ref;
|
|
8559
|
-
exp.typeSuffix = typeSuffix;
|
|
8560
|
-
return exp;
|
|
8668
|
+
return makeAmpersandBlockRHSBody(typeSuffix, callExpRest, unaryPostfix, assign, binopRHS);
|
|
8561
8669
|
});
|
|
8562
8670
|
function AmpersandBlockRHSBody(ctx, state) {
|
|
8563
8671
|
return $EVENT(ctx, state, "AmpersandBlockRHSBody", AmpersandBlockRHSBody$0);
|
|
@@ -8958,7 +9066,7 @@ ${input.slice(result.pos)}
|
|
|
8958
9066
|
function BlockStatementPart(ctx, state) {
|
|
8959
9067
|
return $EVENT(ctx, state, "BlockStatementPart", BlockStatementPart$0);
|
|
8960
9068
|
}
|
|
8961
|
-
var Literal$0 = $TS($S($EXPECT($
|
|
9069
|
+
var Literal$0 = $TS($S($EXPECT($R13, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
|
|
8962
9070
|
var literal = $2;
|
|
8963
9071
|
return {
|
|
8964
9072
|
type: "Literal",
|
|
@@ -8984,7 +9092,7 @@ ${input.slice(result.pos)}
|
|
|
8984
9092
|
function NullLiteral(ctx, state) {
|
|
8985
9093
|
return $EVENT(ctx, state, "NullLiteral", NullLiteral$0);
|
|
8986
9094
|
}
|
|
8987
|
-
var BooleanLiteral$0 = $T($S($EXPECT($
|
|
9095
|
+
var BooleanLiteral$0 = $T($S($EXPECT($R14, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
|
|
8988
9096
|
return value[1];
|
|
8989
9097
|
});
|
|
8990
9098
|
function BooleanLiteral(ctx, state) {
|
|
@@ -9010,14 +9118,14 @@ ${input.slice(result.pos)}
|
|
|
9010
9118
|
function CoffeeScriptBooleanLiteral(ctx, state) {
|
|
9011
9119
|
return $EVENT_C(ctx, state, "CoffeeScriptBooleanLiteral", CoffeeScriptBooleanLiteral$$);
|
|
9012
9120
|
}
|
|
9013
|
-
var Identifier$0 = $T($S($EXPECT($
|
|
9121
|
+
var Identifier$0 = $T($S($EXPECT($R15, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
|
|
9014
9122
|
var id = value[2];
|
|
9015
9123
|
return id;
|
|
9016
9124
|
});
|
|
9017
9125
|
function Identifier(ctx, state) {
|
|
9018
9126
|
return $EVENT(ctx, state, "Identifier", Identifier$0);
|
|
9019
9127
|
}
|
|
9020
|
-
var IdentifierName$0 = $TR($EXPECT($
|
|
9128
|
+
var IdentifierName$0 = $TR($EXPECT($R16, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
9021
9129
|
return {
|
|
9022
9130
|
type: "Identifier",
|
|
9023
9131
|
name: $0,
|
|
@@ -9039,7 +9147,7 @@ ${input.slice(result.pos)}
|
|
|
9039
9147
|
function UpcomingAssignment(ctx, state) {
|
|
9040
9148
|
return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
|
|
9041
9149
|
}
|
|
9042
|
-
var ArrayLiteral$0 = $T($S($EXPECT($
|
|
9150
|
+
var ArrayLiteral$0 = $T($S($EXPECT($R17, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
|
|
9043
9151
|
return value[1];
|
|
9044
9152
|
});
|
|
9045
9153
|
function ArrayLiteral(ctx, state) {
|
|
@@ -9140,8 +9248,26 @@ ${input.slice(result.pos)}
|
|
|
9140
9248
|
end: e
|
|
9141
9249
|
};
|
|
9142
9250
|
});
|
|
9251
|
+
var RangeExpression$1 = $TS($S(ExtendedExpression, __, DotDot, $Y($S(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
9252
|
+
var s = $1;
|
|
9253
|
+
var ws = $2;
|
|
9254
|
+
return {
|
|
9255
|
+
type: "RangeExpression",
|
|
9256
|
+
children: ["[]", {
|
|
9257
|
+
type: "Error",
|
|
9258
|
+
message: "Infinite range [x..] is only valid in for loops"
|
|
9259
|
+
}],
|
|
9260
|
+
start: s,
|
|
9261
|
+
end: {
|
|
9262
|
+
type: "Identifier",
|
|
9263
|
+
name: "Infinity",
|
|
9264
|
+
children: ["Infinity"]
|
|
9265
|
+
}
|
|
9266
|
+
};
|
|
9267
|
+
});
|
|
9268
|
+
var RangeExpression$$ = [RangeExpression$0, RangeExpression$1];
|
|
9143
9269
|
function RangeExpression(ctx, state) {
|
|
9144
|
-
return $
|
|
9270
|
+
return $EVENT_C(ctx, state, "RangeExpression", RangeExpression$$);
|
|
9145
9271
|
}
|
|
9146
9272
|
var ArrayLiteralContent$0 = RangeExpression;
|
|
9147
9273
|
var ArrayLiteralContent$1 = $S(NestedElementList, $Y($S(__, CloseBracket)));
|
|
@@ -9237,7 +9363,7 @@ ${input.slice(result.pos)}
|
|
|
9237
9363
|
var ArrayElementExpression$1 = $T($S(ImplicitObjectLiteral, $Y(ArrayElementDelimiter)), function(value) {
|
|
9238
9364
|
return value[0];
|
|
9239
9365
|
});
|
|
9240
|
-
var ArrayElementExpression$2 = $TS($S($E(
|
|
9366
|
+
var ArrayElementExpression$2 = $TS($S(ExtendedExpression, $E(_), DotDotDot, $Y(ArrayElementDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
9241
9367
|
var exp = $1;
|
|
9242
9368
|
var ws = $2;
|
|
9243
9369
|
var dots = $3;
|
|
@@ -9246,7 +9372,7 @@ ${input.slice(result.pos)}
|
|
|
9246
9372
|
}
|
|
9247
9373
|
return {
|
|
9248
9374
|
type: "SpreadElement",
|
|
9249
|
-
children: [
|
|
9375
|
+
children: [ws, dots, exp],
|
|
9250
9376
|
names: exp.names
|
|
9251
9377
|
};
|
|
9252
9378
|
});
|
|
@@ -9463,7 +9589,7 @@ ${input.slice(result.pos)}
|
|
|
9463
9589
|
children: [ws, ...prop.children]
|
|
9464
9590
|
};
|
|
9465
9591
|
});
|
|
9466
|
-
var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($
|
|
9592
|
+
var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R18, "PropertyDefinition /[!+-]?/")), PropertyName, $Y(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
9467
9593
|
var ws = $1;
|
|
9468
9594
|
var toggle = $2;
|
|
9469
9595
|
var id = $3;
|
|
@@ -9648,7 +9774,7 @@ ${input.slice(result.pos)}
|
|
|
9648
9774
|
implicit: true
|
|
9649
9775
|
};
|
|
9650
9776
|
});
|
|
9651
|
-
var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($
|
|
9777
|
+
var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($R10, "ComputedPropertyName /[+-]/"), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
9652
9778
|
const expression = [$2, $3];
|
|
9653
9779
|
return {
|
|
9654
9780
|
type: "ComputedPropertyName",
|
|
@@ -9657,7 +9783,18 @@ ${input.slice(result.pos)}
|
|
|
9657
9783
|
implicit: true
|
|
9658
9784
|
};
|
|
9659
9785
|
});
|
|
9660
|
-
var ComputedPropertyName
|
|
9786
|
+
var ComputedPropertyName$3 = $TS($S(InsertOpenBracket, PartialPlaceholder, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3) {
|
|
9787
|
+
var open = $1;
|
|
9788
|
+
var expression = $2;
|
|
9789
|
+
var close = $3;
|
|
9790
|
+
return {
|
|
9791
|
+
type: "ComputedPropertyName",
|
|
9792
|
+
expression,
|
|
9793
|
+
children: [open, expression, close],
|
|
9794
|
+
implicit: true
|
|
9795
|
+
};
|
|
9796
|
+
});
|
|
9797
|
+
var ComputedPropertyName$$ = [ComputedPropertyName$0, ComputedPropertyName$1, ComputedPropertyName$2, ComputedPropertyName$3];
|
|
9661
9798
|
function ComputedPropertyName(ctx, state) {
|
|
9662
9799
|
return $EVENT_C(ctx, state, "ComputedPropertyName", ComputedPropertyName$$);
|
|
9663
9800
|
}
|
|
@@ -10027,7 +10164,7 @@ ${input.slice(result.pos)}
|
|
|
10027
10164
|
function IdentifierBinaryOp(ctx, state) {
|
|
10028
10165
|
return $EVENT(ctx, state, "IdentifierBinaryOp", IdentifierBinaryOp$0);
|
|
10029
10166
|
}
|
|
10030
|
-
var BinaryOp$0 = $T($S($EXPECT($
|
|
10167
|
+
var BinaryOp$0 = $T($S($EXPECT($R19, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
|
|
10031
10168
|
var op = value[1];
|
|
10032
10169
|
return op;
|
|
10033
10170
|
});
|
|
@@ -10162,7 +10299,7 @@ ${input.slice(result.pos)}
|
|
|
10162
10299
|
prec: "^^"
|
|
10163
10300
|
};
|
|
10164
10301
|
});
|
|
10165
|
-
var BinaryOpSymbol$35 = $TV($C($EXPECT($
|
|
10302
|
+
var BinaryOpSymbol$35 = $TV($C($EXPECT($R20, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L101, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
|
|
10166
10303
|
return {
|
|
10167
10304
|
call: module.getRef("xnor"),
|
|
10168
10305
|
special: true,
|
|
@@ -10256,6 +10393,16 @@ ${input.slice(result.pos)}
|
|
|
10256
10393
|
function BinaryOpSymbol(ctx, state) {
|
|
10257
10394
|
return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
|
|
10258
10395
|
}
|
|
10396
|
+
var ActualIn$0 = $T($S(CoffeeOfEnabled, Of), function(value) {
|
|
10397
|
+
return value[1];
|
|
10398
|
+
});
|
|
10399
|
+
var ActualIn$1 = $T($S($N(CoffeeOfEnabled), In), function(value) {
|
|
10400
|
+
return value[1];
|
|
10401
|
+
});
|
|
10402
|
+
var ActualIn$$ = [ActualIn$0, ActualIn$1];
|
|
10403
|
+
function ActualIn(ctx, state) {
|
|
10404
|
+
return $EVENT_C(ctx, state, "ActualIn", ActualIn$$);
|
|
10405
|
+
}
|
|
10259
10406
|
var CoffeeOfOp$0 = $T($S(Of), function(value) {
|
|
10260
10407
|
return "in";
|
|
10261
10408
|
});
|
|
@@ -10316,24 +10463,24 @@ ${input.slice(result.pos)}
|
|
|
10316
10463
|
function Xor(ctx, state) {
|
|
10317
10464
|
return $EVENT_C(ctx, state, "Xor", Xor$$);
|
|
10318
10465
|
}
|
|
10319
|
-
var Xnor$0 = $R$0($EXPECT($
|
|
10466
|
+
var Xnor$0 = $R$0($EXPECT($R20, "Xnor /!\\^\\^?/"));
|
|
10320
10467
|
var Xnor$1 = $EXPECT($L101, 'Xnor "xnor"');
|
|
10321
10468
|
var Xnor$$ = [Xnor$0, Xnor$1];
|
|
10322
10469
|
function Xnor(ctx, state) {
|
|
10323
10470
|
return $EVENT_C(ctx, state, "Xnor", Xnor$$);
|
|
10324
10471
|
}
|
|
10325
|
-
var UnaryOp$0 = $TR($EXPECT($
|
|
10472
|
+
var UnaryOp$0 = $TR($EXPECT($R21, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
10326
10473
|
return { $loc, token: $0 };
|
|
10327
10474
|
});
|
|
10328
10475
|
var UnaryOp$1 = AwaitOp;
|
|
10329
|
-
var UnaryOp$2 = $TS($S($C(Delete, Void, Typeof), $N($EXPECT($
|
|
10476
|
+
var UnaryOp$2 = $TS($S($C(Delete, Void, Typeof), $N($EXPECT($R22, "UnaryOp /[:.]/")), $E(_)), function($skip, $loc, $0, $1, $2, $3) {
|
|
10330
10477
|
var op = $1;
|
|
10331
10478
|
var ws = $3;
|
|
10332
10479
|
if (!ws)
|
|
10333
10480
|
return [op, [" "]];
|
|
10334
10481
|
return [op, ws];
|
|
10335
10482
|
});
|
|
10336
|
-
var UnaryOp$3 = $T($S(Not, $N($EXPECT($
|
|
10483
|
+
var UnaryOp$3 = $T($S(Not, $N($EXPECT($R22, "UnaryOp /[:.]/")), $E($EXPECT($L16, 'UnaryOp " "')), $E(_)), function(value) {
|
|
10337
10484
|
return [value[0], value[3]];
|
|
10338
10485
|
});
|
|
10339
10486
|
var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
|
|
@@ -10428,7 +10575,7 @@ ${input.slice(result.pos)}
|
|
|
10428
10575
|
function NonPipelinePostfixedExpression(ctx, state) {
|
|
10429
10576
|
return $EVENT(ctx, state, "NonPipelinePostfixedExpression", NonPipelinePostfixedExpression$0);
|
|
10430
10577
|
}
|
|
10431
|
-
var PostfixStatement$0 = $T($S($EXPECT($
|
|
10578
|
+
var PostfixStatement$0 = $T($S($EXPECT($R23, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
|
|
10432
10579
|
return value[1];
|
|
10433
10580
|
});
|
|
10434
10581
|
function PostfixStatement(ctx, state) {
|
|
@@ -10561,7 +10708,7 @@ ${input.slice(result.pos)}
|
|
|
10561
10708
|
function UnlessClause(ctx, state) {
|
|
10562
10709
|
return $EVENT(ctx, state, "UnlessClause", UnlessClause$0);
|
|
10563
10710
|
}
|
|
10564
|
-
var IterationStatement$0 = $T($S($EXPECT($
|
|
10711
|
+
var IterationStatement$0 = $T($S($EXPECT($R24, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
|
|
10565
10712
|
return value[1];
|
|
10566
10713
|
});
|
|
10567
10714
|
function IterationStatement(ctx, state) {
|
|
@@ -10914,7 +11061,7 @@ ${input.slice(result.pos)}
|
|
|
10914
11061
|
names: binding.names
|
|
10915
11062
|
};
|
|
10916
11063
|
});
|
|
10917
|
-
var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($
|
|
11064
|
+
var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R25, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
|
|
10918
11065
|
var c = $1;
|
|
10919
11066
|
var binding = $2;
|
|
10920
11067
|
return {
|
|
@@ -11743,7 +11890,7 @@ ${input.slice(result.pos)}
|
|
|
11743
11890
|
function UnprocessedModuleSpecifier(ctx, state) {
|
|
11744
11891
|
return $EVENT_C(ctx, state, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
|
|
11745
11892
|
}
|
|
11746
|
-
var UnquotedSpecifier$0 = $TV($EXPECT($
|
|
11893
|
+
var UnquotedSpecifier$0 = $TV($EXPECT($R26, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
|
|
11747
11894
|
var spec = $0;
|
|
11748
11895
|
return { $loc, token: `"${spec}"` };
|
|
11749
11896
|
});
|
|
@@ -11996,7 +12143,7 @@ ${input.slice(result.pos)}
|
|
|
11996
12143
|
function VariableDeclarationList(ctx, state) {
|
|
11997
12144
|
return $EVENT(ctx, state, "VariableDeclarationList", VariableDeclarationList$0);
|
|
11998
12145
|
}
|
|
11999
|
-
var NumericLiteral$0 = $TS($S($EXPECT($
|
|
12146
|
+
var NumericLiteral$0 = $TS($S($EXPECT($R27, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
|
|
12000
12147
|
var token = $2;
|
|
12001
12148
|
return { type: "NumericLiteral", $loc, token };
|
|
12002
12149
|
});
|
|
@@ -12012,36 +12159,36 @@ ${input.slice(result.pos)}
|
|
|
12012
12159
|
function NumericLiteralKind(ctx, state) {
|
|
12013
12160
|
return $EVENT_C(ctx, state, "NumericLiteralKind", NumericLiteralKind$$);
|
|
12014
12161
|
}
|
|
12015
|
-
var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($
|
|
12162
|
+
var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R28, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
|
|
12016
12163
|
function DecimalBigIntegerLiteral(ctx, state) {
|
|
12017
12164
|
return $EVENT(ctx, state, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
|
|
12018
12165
|
}
|
|
12019
|
-
var DecimalLiteral$0 = $TV($TEXT($EXPECT($
|
|
12166
|
+
var DecimalLiteral$0 = $TV($TEXT($EXPECT($R29, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
|
|
12020
12167
|
return $1 + ".";
|
|
12021
12168
|
});
|
|
12022
|
-
var DecimalLiteral$1 = $TEXT($S($EXPECT($
|
|
12023
|
-
var DecimalLiteral$2 = $TEXT($S($EXPECT($
|
|
12169
|
+
var DecimalLiteral$1 = $TEXT($S($EXPECT($R30, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
|
|
12170
|
+
var DecimalLiteral$2 = $TEXT($S($EXPECT($R31, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
|
|
12024
12171
|
var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
|
|
12025
12172
|
function DecimalLiteral(ctx, state) {
|
|
12026
12173
|
return $EVENT_C(ctx, state, "DecimalLiteral", DecimalLiteral$$);
|
|
12027
12174
|
}
|
|
12028
|
-
var ExponentPart$0 = $R$0($EXPECT($
|
|
12175
|
+
var ExponentPart$0 = $R$0($EXPECT($R32, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
|
|
12029
12176
|
function ExponentPart(ctx, state) {
|
|
12030
12177
|
return $EVENT(ctx, state, "ExponentPart", ExponentPart$0);
|
|
12031
12178
|
}
|
|
12032
|
-
var BinaryIntegerLiteral$0 = $R$0($EXPECT($
|
|
12179
|
+
var BinaryIntegerLiteral$0 = $R$0($EXPECT($R33, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
|
|
12033
12180
|
function BinaryIntegerLiteral(ctx, state) {
|
|
12034
12181
|
return $EVENT(ctx, state, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
|
|
12035
12182
|
}
|
|
12036
|
-
var OctalIntegerLiteral$0 = $R$0($EXPECT($
|
|
12183
|
+
var OctalIntegerLiteral$0 = $R$0($EXPECT($R34, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
|
|
12037
12184
|
function OctalIntegerLiteral(ctx, state) {
|
|
12038
12185
|
return $EVENT(ctx, state, "OctalIntegerLiteral", OctalIntegerLiteral$0);
|
|
12039
12186
|
}
|
|
12040
|
-
var HexIntegerLiteral$0 = $R$0($EXPECT($
|
|
12187
|
+
var HexIntegerLiteral$0 = $R$0($EXPECT($R35, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
|
|
12041
12188
|
function HexIntegerLiteral(ctx, state) {
|
|
12042
12189
|
return $EVENT(ctx, state, "HexIntegerLiteral", HexIntegerLiteral$0);
|
|
12043
12190
|
}
|
|
12044
|
-
var IntegerLiteral$0 = $TS($S($EXPECT($
|
|
12191
|
+
var IntegerLiteral$0 = $TS($S($EXPECT($R36, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
|
|
12045
12192
|
var token = $2;
|
|
12046
12193
|
return { $loc, token };
|
|
12047
12194
|
});
|
|
@@ -12057,7 +12204,7 @@ ${input.slice(result.pos)}
|
|
|
12057
12204
|
function IntegerLiteralKind(ctx, state) {
|
|
12058
12205
|
return $EVENT_C(ctx, state, "IntegerLiteralKind", IntegerLiteralKind$$);
|
|
12059
12206
|
}
|
|
12060
|
-
var DecimalIntegerLiteral$0 = $R$0($EXPECT($
|
|
12207
|
+
var DecimalIntegerLiteral$0 = $R$0($EXPECT($R37, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
|
|
12061
12208
|
function DecimalIntegerLiteral(ctx, state) {
|
|
12062
12209
|
return $EVENT(ctx, state, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
|
|
12063
12210
|
}
|
|
@@ -12081,25 +12228,25 @@ ${input.slice(result.pos)}
|
|
|
12081
12228
|
function StringLiteral(ctx, state) {
|
|
12082
12229
|
return $EVENT_C(ctx, state, "StringLiteral", StringLiteral$$);
|
|
12083
12230
|
}
|
|
12084
|
-
var DoubleStringCharacters$0 = $TR($EXPECT($
|
|
12231
|
+
var DoubleStringCharacters$0 = $TR($EXPECT($R38, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12085
12232
|
return { $loc, token: $0 };
|
|
12086
12233
|
});
|
|
12087
12234
|
function DoubleStringCharacters(ctx, state) {
|
|
12088
12235
|
return $EVENT(ctx, state, "DoubleStringCharacters", DoubleStringCharacters$0);
|
|
12089
12236
|
}
|
|
12090
|
-
var SingleStringCharacters$0 = $TR($EXPECT($
|
|
12237
|
+
var SingleStringCharacters$0 = $TR($EXPECT($R39, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12091
12238
|
return { $loc, token: $0 };
|
|
12092
12239
|
});
|
|
12093
12240
|
function SingleStringCharacters(ctx, state) {
|
|
12094
12241
|
return $EVENT(ctx, state, "SingleStringCharacters", SingleStringCharacters$0);
|
|
12095
12242
|
}
|
|
12096
|
-
var TripleDoubleStringCharacters$0 = $TR($EXPECT($
|
|
12243
|
+
var TripleDoubleStringCharacters$0 = $TR($EXPECT($R40, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12097
12244
|
return { $loc, token: $0 };
|
|
12098
12245
|
});
|
|
12099
12246
|
function TripleDoubleStringCharacters(ctx, state) {
|
|
12100
12247
|
return $EVENT(ctx, state, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
|
|
12101
12248
|
}
|
|
12102
|
-
var TripleSingleStringCharacters$0 = $TR($EXPECT($
|
|
12249
|
+
var TripleSingleStringCharacters$0 = $TR($EXPECT($R41, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12103
12250
|
return { $loc, token: $0 };
|
|
12104
12251
|
});
|
|
12105
12252
|
function TripleSingleStringCharacters(ctx, state) {
|
|
@@ -12122,7 +12269,7 @@ ${input.slice(result.pos)}
|
|
|
12122
12269
|
function CoffeeInterpolatedDoubleQuotedString(ctx, state) {
|
|
12123
12270
|
return $EVENT(ctx, state, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
|
|
12124
12271
|
}
|
|
12125
|
-
var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($
|
|
12272
|
+
var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R42, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12126
12273
|
return { $loc, token: $0 };
|
|
12127
12274
|
});
|
|
12128
12275
|
function CoffeeDoubleQuotedStringCharacters(ctx, state) {
|
|
@@ -12142,7 +12289,7 @@ ${input.slice(result.pos)}
|
|
|
12142
12289
|
function RegularExpressionClass(ctx, state) {
|
|
12143
12290
|
return $EVENT(ctx, state, "RegularExpressionClass", RegularExpressionClass$0);
|
|
12144
12291
|
}
|
|
12145
|
-
var RegularExpressionClassCharacters$0 = $TR($EXPECT($
|
|
12292
|
+
var RegularExpressionClassCharacters$0 = $TR($EXPECT($R43, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12146
12293
|
return { $loc, token: $0 };
|
|
12147
12294
|
});
|
|
12148
12295
|
function RegularExpressionClassCharacters(ctx, state) {
|
|
@@ -12199,7 +12346,7 @@ ${input.slice(result.pos)}
|
|
|
12199
12346
|
var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
|
|
12200
12347
|
return { "type": "Substitution", "children": value[0] };
|
|
12201
12348
|
});
|
|
12202
|
-
var HeregexPart$3 = $TR($EXPECT($
|
|
12349
|
+
var HeregexPart$3 = $TR($EXPECT($R44, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12203
12350
|
let token = $0;
|
|
12204
12351
|
switch ($0[1]) {
|
|
12205
12352
|
case "\n":
|
|
@@ -12217,13 +12364,13 @@ ${input.slice(result.pos)}
|
|
|
12217
12364
|
var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
|
|
12218
12365
|
return { $loc, token: "" };
|
|
12219
12366
|
});
|
|
12220
|
-
var HeregexPart$5 = $TR($EXPECT($
|
|
12367
|
+
var HeregexPart$5 = $TR($EXPECT($R45, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12221
12368
|
return { $loc, token: "" };
|
|
12222
12369
|
});
|
|
12223
|
-
var HeregexPart$6 = $TR($EXPECT($
|
|
12370
|
+
var HeregexPart$6 = $TR($EXPECT($R46, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12224
12371
|
return { $loc, token: "\\/" };
|
|
12225
12372
|
});
|
|
12226
|
-
var HeregexPart$7 = $TR($EXPECT($
|
|
12373
|
+
var HeregexPart$7 = $TR($EXPECT($R47, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12227
12374
|
return { $loc, token: $0 };
|
|
12228
12375
|
});
|
|
12229
12376
|
var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
|
|
@@ -12236,7 +12383,7 @@ ${input.slice(result.pos)}
|
|
|
12236
12383
|
function HeregexComment(ctx, state) {
|
|
12237
12384
|
return $EVENT_C(ctx, state, "HeregexComment", HeregexComment$$);
|
|
12238
12385
|
}
|
|
12239
|
-
var RegularExpressionBody$0 = $S($N($R$0($EXPECT($
|
|
12386
|
+
var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R48, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
|
|
12240
12387
|
function RegularExpressionBody(ctx, state) {
|
|
12241
12388
|
return $EVENT(ctx, state, "RegularExpressionBody", RegularExpressionBody$0);
|
|
12242
12389
|
}
|
|
@@ -12246,15 +12393,15 @@ ${input.slice(result.pos)}
|
|
|
12246
12393
|
function RegExpPart(ctx, state) {
|
|
12247
12394
|
return $EVENT_C(ctx, state, "RegExpPart", RegExpPart$$);
|
|
12248
12395
|
}
|
|
12249
|
-
var RegExpCharacter$0 = $R$0($EXPECT($
|
|
12396
|
+
var RegExpCharacter$0 = $R$0($EXPECT($R49, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
|
|
12250
12397
|
function RegExpCharacter(ctx, state) {
|
|
12251
12398
|
return $EVENT(ctx, state, "RegExpCharacter", RegExpCharacter$0);
|
|
12252
12399
|
}
|
|
12253
|
-
var RegularExpressionFlags$0 = $R$0($EXPECT($
|
|
12400
|
+
var RegularExpressionFlags$0 = $R$0($EXPECT($R50, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
|
|
12254
12401
|
function RegularExpressionFlags(ctx, state) {
|
|
12255
12402
|
return $EVENT(ctx, state, "RegularExpressionFlags", RegularExpressionFlags$0);
|
|
12256
12403
|
}
|
|
12257
|
-
var TemplateLiteral$0 = $T($S($EXPECT($
|
|
12404
|
+
var TemplateLiteral$0 = $T($S($EXPECT($R51, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
|
|
12258
12405
|
return value[1];
|
|
12259
12406
|
});
|
|
12260
12407
|
function TemplateLiteral(ctx, state) {
|
|
@@ -12294,28 +12441,28 @@ ${input.slice(result.pos)}
|
|
|
12294
12441
|
function TemplateSubstitution(ctx, state) {
|
|
12295
12442
|
return $EVENT(ctx, state, "TemplateSubstitution", TemplateSubstitution$0);
|
|
12296
12443
|
}
|
|
12297
|
-
var TemplateCharacters$0 = $TR($EXPECT($
|
|
12444
|
+
var TemplateCharacters$0 = $TR($EXPECT($R52, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12298
12445
|
return { $loc, token: $0 };
|
|
12299
12446
|
});
|
|
12300
12447
|
function TemplateCharacters(ctx, state) {
|
|
12301
12448
|
return $EVENT(ctx, state, "TemplateCharacters", TemplateCharacters$0);
|
|
12302
12449
|
}
|
|
12303
|
-
var TemplateBlockCharacters$0 = $TR($EXPECT($
|
|
12450
|
+
var TemplateBlockCharacters$0 = $TR($EXPECT($R53, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12304
12451
|
return { $loc, token: $0 };
|
|
12305
12452
|
});
|
|
12306
12453
|
function TemplateBlockCharacters(ctx, state) {
|
|
12307
12454
|
return $EVENT(ctx, state, "TemplateBlockCharacters", TemplateBlockCharacters$0);
|
|
12308
12455
|
}
|
|
12309
|
-
var ReservedWord$0 = $S($R$0($EXPECT($
|
|
12310
|
-
var ReservedWord$1 = $S($R$0($EXPECT($
|
|
12311
|
-
var ReservedWord$2 = $S($R$0($EXPECT($
|
|
12312
|
-
var ReservedWord$3 = $S($R$0($EXPECT($
|
|
12313
|
-
var ReservedWord$4 = $R$0($EXPECT($
|
|
12456
|
+
var ReservedWord$0 = $S($R$0($EXPECT($R54, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
|
|
12457
|
+
var ReservedWord$1 = $S($R$0($EXPECT($R55, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
|
|
12458
|
+
var ReservedWord$2 = $S($R$0($EXPECT($R56, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
|
|
12459
|
+
var ReservedWord$3 = $S($R$0($EXPECT($R57, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
|
|
12460
|
+
var ReservedWord$4 = $R$0($EXPECT($R58, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
|
|
12314
12461
|
var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
|
|
12315
12462
|
function ReservedWord(ctx, state) {
|
|
12316
12463
|
return $EVENT_C(ctx, state, "ReservedWord", ReservedWord$$);
|
|
12317
12464
|
}
|
|
12318
|
-
var Comment$0 = $T($S($EXPECT($
|
|
12465
|
+
var Comment$0 = $T($S($EXPECT($R59, "Comment /(?=\\/|#)/"), _Comment), function(value) {
|
|
12319
12466
|
return value[1];
|
|
12320
12467
|
});
|
|
12321
12468
|
function Comment(ctx, state) {
|
|
@@ -12333,7 +12480,7 @@ ${input.slice(result.pos)}
|
|
|
12333
12480
|
function SingleLineComment(ctx, state) {
|
|
12334
12481
|
return $EVENT_C(ctx, state, "SingleLineComment", SingleLineComment$$);
|
|
12335
12482
|
}
|
|
12336
|
-
var JSSingleLineComment$0 = $TR($EXPECT($
|
|
12483
|
+
var JSSingleLineComment$0 = $TR($EXPECT($R60, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12337
12484
|
return { type: "Comment", $loc, token: $0 };
|
|
12338
12485
|
});
|
|
12339
12486
|
function JSSingleLineComment(ctx, state) {
|
|
@@ -12345,30 +12492,30 @@ ${input.slice(result.pos)}
|
|
|
12345
12492
|
function MultiLineComment(ctx, state) {
|
|
12346
12493
|
return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
|
|
12347
12494
|
}
|
|
12348
|
-
var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L123, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L124, 'JSMultiLineComment "*/"')), $EXPECT($
|
|
12495
|
+
var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L123, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L124, 'JSMultiLineComment "*/"')), $EXPECT($R61, "JSMultiLineComment /./"))), $EXPECT($L124, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
|
|
12349
12496
|
return { type: "Comment", $loc, token: $1 };
|
|
12350
12497
|
});
|
|
12351
12498
|
function JSMultiLineComment(ctx, state) {
|
|
12352
12499
|
return $EVENT(ctx, state, "JSMultiLineComment", JSMultiLineComment$0);
|
|
12353
12500
|
}
|
|
12354
|
-
var CoffeeSingleLineComment$0 = $TR($EXPECT($
|
|
12501
|
+
var CoffeeSingleLineComment$0 = $TR($EXPECT($R62, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12355
12502
|
return { type: "Comment", $loc, token: `//${$1}` };
|
|
12356
12503
|
});
|
|
12357
12504
|
function CoffeeSingleLineComment(ctx, state) {
|
|
12358
12505
|
return $EVENT(ctx, state, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
|
|
12359
12506
|
}
|
|
12360
|
-
var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($
|
|
12507
|
+
var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R63, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
|
|
12361
12508
|
$2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
|
|
12362
12509
|
return { type: "Comment", $loc, token: `/*${$2}*/` };
|
|
12363
12510
|
});
|
|
12364
12511
|
function CoffeeMultiLineComment(ctx, state) {
|
|
12365
12512
|
return $EVENT(ctx, state, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
|
|
12366
12513
|
}
|
|
12367
|
-
var CoffeeHereCommentStart$0 = $R$0($EXPECT($
|
|
12514
|
+
var CoffeeHereCommentStart$0 = $R$0($EXPECT($R64, "CoffeeHereCommentStart /###(?!#)/"));
|
|
12368
12515
|
function CoffeeHereCommentStart(ctx, state) {
|
|
12369
12516
|
return $EVENT(ctx, state, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
|
|
12370
12517
|
}
|
|
12371
|
-
var InlineComment$0 = $TR($EXPECT($
|
|
12518
|
+
var InlineComment$0 = $TR($EXPECT($R65, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12372
12519
|
return { $loc, token: $0 };
|
|
12373
12520
|
});
|
|
12374
12521
|
function InlineComment(ctx, state) {
|
|
@@ -12382,13 +12529,13 @@ ${input.slice(result.pos)}
|
|
|
12382
12529
|
function TrailingComment(ctx, state) {
|
|
12383
12530
|
return $EVENT(ctx, state, "TrailingComment", TrailingComment$0);
|
|
12384
12531
|
}
|
|
12385
|
-
var _$0 = $T($S($EXPECT($
|
|
12532
|
+
var _$0 = $T($S($EXPECT($R66, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
|
|
12386
12533
|
return value[1];
|
|
12387
12534
|
});
|
|
12388
12535
|
function _(ctx, state) {
|
|
12389
12536
|
return $EVENT(ctx, state, "_", _$0);
|
|
12390
12537
|
}
|
|
12391
|
-
var NonNewlineWhitespace$0 = $TR($EXPECT($
|
|
12538
|
+
var NonNewlineWhitespace$0 = $TR($EXPECT($R67, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12392
12539
|
return { $loc, token: $0 };
|
|
12393
12540
|
});
|
|
12394
12541
|
var NonNewlineWhitespace$1 = $T($S($EXPECT($L125, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
|
|
@@ -12405,7 +12552,7 @@ ${input.slice(result.pos)}
|
|
|
12405
12552
|
function Trimmed_(ctx, state) {
|
|
12406
12553
|
return $EVENT(ctx, state, "Trimmed_", Trimmed_$0);
|
|
12407
12554
|
}
|
|
12408
|
-
var __$0 = $T($S($EXPECT($
|
|
12555
|
+
var __$0 = $T($S($EXPECT($R68, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
|
|
12409
12556
|
return value[1];
|
|
12410
12557
|
});
|
|
12411
12558
|
var __$1 = $EXPECT($L0, '__ ""');
|
|
@@ -12413,7 +12560,7 @@ ${input.slice(result.pos)}
|
|
|
12413
12560
|
function __(ctx, state) {
|
|
12414
12561
|
return $EVENT_C(ctx, state, "__", __$$);
|
|
12415
12562
|
}
|
|
12416
|
-
var Whitespace$0 = $TR($EXPECT($
|
|
12563
|
+
var Whitespace$0 = $TR($EXPECT($R45, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
12417
12564
|
return { $loc, token: $0 };
|
|
12418
12565
|
});
|
|
12419
12566
|
function Whitespace(ctx, state) {
|
|
@@ -12451,7 +12598,7 @@ ${input.slice(result.pos)}
|
|
|
12451
12598
|
function SemicolonDelimiter(ctx, state) {
|
|
12452
12599
|
return $EVENT(ctx, state, "SemicolonDelimiter", SemicolonDelimiter$0);
|
|
12453
12600
|
}
|
|
12454
|
-
var NonIdContinue$0 = $R$0($EXPECT($
|
|
12601
|
+
var NonIdContinue$0 = $R$0($EXPECT($R69, "NonIdContinue /(?!\\p{ID_Continue})/"));
|
|
12455
12602
|
function NonIdContinue(ctx, state) {
|
|
12456
12603
|
return $EVENT(ctx, state, "NonIdContinue", NonIdContinue$0);
|
|
12457
12604
|
}
|
|
@@ -12569,7 +12716,7 @@ ${input.slice(result.pos)}
|
|
|
12569
12716
|
function CoffeeSubstitutionStart(ctx, state) {
|
|
12570
12717
|
return $EVENT(ctx, state, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
|
|
12571
12718
|
}
|
|
12572
|
-
var Colon$0 = $TS($S($EXPECT($L15, 'Colon ":"'), $N($EXPECT($
|
|
12719
|
+
var Colon$0 = $TS($S($EXPECT($L15, 'Colon ":"'), $N($EXPECT($R70, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
|
|
12573
12720
|
return { $loc, token: $1 };
|
|
12574
12721
|
});
|
|
12575
12722
|
function Colon(ctx, state) {
|
|
@@ -12614,7 +12761,7 @@ ${input.slice(result.pos)}
|
|
|
12614
12761
|
var Dot$0 = $TV($EXPECT($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
|
|
12615
12762
|
return { $loc, token: $1 };
|
|
12616
12763
|
});
|
|
12617
|
-
var Dot$1 = $TS($S($EXPECT($
|
|
12764
|
+
var Dot$1 = $TS($S($EXPECT($R71, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
|
|
12618
12765
|
var ws = $2;
|
|
12619
12766
|
return [
|
|
12620
12767
|
{ $loc, token: "." },
|
|
@@ -12735,7 +12882,7 @@ ${input.slice(result.pos)}
|
|
|
12735
12882
|
function If(ctx, state) {
|
|
12736
12883
|
return $EVENT(ctx, state, "If", If$0);
|
|
12737
12884
|
}
|
|
12738
|
-
var Import$0 = $TS($S($EXPECT($L20, 'Import "import"'), $Y($EXPECT($
|
|
12885
|
+
var Import$0 = $TS($S($EXPECT($L20, 'Import "import"'), $Y($EXPECT($R72, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
|
|
12739
12886
|
return { $loc, token: $1 };
|
|
12740
12887
|
});
|
|
12741
12888
|
function Import(ctx, state) {
|
|
@@ -13004,49 +13151,55 @@ ${input.slice(result.pos)}
|
|
|
13004
13151
|
function Typeof(ctx, state) {
|
|
13005
13152
|
return $EVENT(ctx, state, "Typeof", Typeof$0);
|
|
13006
13153
|
}
|
|
13007
|
-
var
|
|
13154
|
+
var Undefined$0 = $TS($S($EXPECT($L202, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13155
|
+
return { $loc, token: $1 };
|
|
13156
|
+
});
|
|
13157
|
+
function Undefined(ctx, state) {
|
|
13158
|
+
return $EVENT(ctx, state, "Undefined", Undefined$0);
|
|
13159
|
+
}
|
|
13160
|
+
var Unless$0 = $TS($S($EXPECT($L203, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13008
13161
|
return { $loc, token: $1, negated: true };
|
|
13009
13162
|
});
|
|
13010
13163
|
function Unless(ctx, state) {
|
|
13011
13164
|
return $EVENT(ctx, state, "Unless", Unless$0);
|
|
13012
13165
|
}
|
|
13013
|
-
var Until$0 = $TS($S($EXPECT($
|
|
13166
|
+
var Until$0 = $TS($S($EXPECT($L204, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13014
13167
|
return { $loc, token: $1 };
|
|
13015
13168
|
});
|
|
13016
13169
|
function Until(ctx, state) {
|
|
13017
13170
|
return $EVENT(ctx, state, "Until", Until$0);
|
|
13018
13171
|
}
|
|
13019
|
-
var Using$0 = $TS($S($EXPECT($
|
|
13172
|
+
var Using$0 = $TS($S($EXPECT($L205, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13020
13173
|
return { $loc, token: $1 };
|
|
13021
13174
|
});
|
|
13022
13175
|
function Using(ctx, state) {
|
|
13023
13176
|
return $EVENT(ctx, state, "Using", Using$0);
|
|
13024
13177
|
}
|
|
13025
|
-
var Var$0 = $TS($S($EXPECT($
|
|
13178
|
+
var Var$0 = $TS($S($EXPECT($L206, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13026
13179
|
return { $loc, token: $1 };
|
|
13027
13180
|
});
|
|
13028
13181
|
function Var(ctx, state) {
|
|
13029
13182
|
return $EVENT(ctx, state, "Var", Var$0);
|
|
13030
13183
|
}
|
|
13031
|
-
var Void$0 = $TS($S($EXPECT($
|
|
13184
|
+
var Void$0 = $TS($S($EXPECT($L207, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13032
13185
|
return { $loc, token: $1 };
|
|
13033
13186
|
});
|
|
13034
13187
|
function Void(ctx, state) {
|
|
13035
13188
|
return $EVENT(ctx, state, "Void", Void$0);
|
|
13036
13189
|
}
|
|
13037
|
-
var When$0 = $TS($S($EXPECT($
|
|
13190
|
+
var When$0 = $TS($S($EXPECT($L208, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13038
13191
|
return { $loc, token: "case" };
|
|
13039
13192
|
});
|
|
13040
13193
|
function When(ctx, state) {
|
|
13041
13194
|
return $EVENT(ctx, state, "When", When$0);
|
|
13042
13195
|
}
|
|
13043
|
-
var While$0 = $TS($S($EXPECT($
|
|
13196
|
+
var While$0 = $TS($S($EXPECT($L209, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13044
13197
|
return { $loc, token: $1 };
|
|
13045
13198
|
});
|
|
13046
13199
|
function While(ctx, state) {
|
|
13047
13200
|
return $EVENT(ctx, state, "While", While$0);
|
|
13048
13201
|
}
|
|
13049
|
-
var Yield$0 = $TS($S($EXPECT($
|
|
13202
|
+
var Yield$0 = $TS($S($EXPECT($L210, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13050
13203
|
return { $loc, token: $1, type: "Yield" };
|
|
13051
13204
|
});
|
|
13052
13205
|
function Yield(ctx, state) {
|
|
@@ -13075,7 +13228,7 @@ ${input.slice(result.pos)}
|
|
|
13075
13228
|
function JSXImplicitFragment(ctx, state) {
|
|
13076
13229
|
return $EVENT(ctx, state, "JSXImplicitFragment", JSXImplicitFragment$0);
|
|
13077
13230
|
}
|
|
13078
|
-
var JSXTag$0 = $T($S($EXPECT($
|
|
13231
|
+
var JSXTag$0 = $T($S($EXPECT($R73, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
|
|
13079
13232
|
return value[1];
|
|
13080
13233
|
});
|
|
13081
13234
|
function JSXTag(ctx, state) {
|
|
@@ -13125,7 +13278,7 @@ ${input.slice(result.pos)}
|
|
|
13125
13278
|
function JSXElement(ctx, state) {
|
|
13126
13279
|
return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
|
|
13127
13280
|
}
|
|
13128
|
-
var JSXSelfClosingElement$0 = $TS($S($EXPECT($L17, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($
|
|
13281
|
+
var JSXSelfClosingElement$0 = $TS($S($EXPECT($L17, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L211, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
|
|
13129
13282
|
return { type: "JSXElement", children: $0, tag: $2 };
|
|
13130
13283
|
});
|
|
13131
13284
|
function JSXSelfClosingElement(ctx, state) {
|
|
@@ -13159,7 +13312,7 @@ ${input.slice(result.pos)}
|
|
|
13159
13312
|
function JSXOptionalClosingElement(ctx, state) {
|
|
13160
13313
|
return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
|
|
13161
13314
|
}
|
|
13162
|
-
var JSXClosingElement$0 = $S($EXPECT($
|
|
13315
|
+
var JSXClosingElement$0 = $S($EXPECT($L212, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L45, 'JSXClosingElement ">"'));
|
|
13163
13316
|
function JSXClosingElement(ctx, state) {
|
|
13164
13317
|
return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
|
|
13165
13318
|
}
|
|
@@ -13180,7 +13333,7 @@ ${input.slice(result.pos)}
|
|
|
13180
13333
|
];
|
|
13181
13334
|
return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
|
|
13182
13335
|
});
|
|
13183
|
-
var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($
|
|
13336
|
+
var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L213, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
|
|
13184
13337
|
var children = $3;
|
|
13185
13338
|
$0 = $0.slice(1);
|
|
13186
13339
|
return {
|
|
@@ -13193,7 +13346,7 @@ ${input.slice(result.pos)}
|
|
|
13193
13346
|
function JSXFragment(ctx, state) {
|
|
13194
13347
|
return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
|
|
13195
13348
|
}
|
|
13196
|
-
var PushJSXOpeningFragment$0 = $TV($EXPECT($
|
|
13349
|
+
var PushJSXOpeningFragment$0 = $TV($EXPECT($L213, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
|
|
13197
13350
|
module.JSXTagStack.push("");
|
|
13198
13351
|
return $1;
|
|
13199
13352
|
});
|
|
@@ -13210,7 +13363,7 @@ ${input.slice(result.pos)}
|
|
|
13210
13363
|
function JSXOptionalClosingFragment(ctx, state) {
|
|
13211
13364
|
return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
|
|
13212
13365
|
}
|
|
13213
|
-
var JSXClosingFragment$0 = $EXPECT($
|
|
13366
|
+
var JSXClosingFragment$0 = $EXPECT($L214, 'JSXClosingFragment "</>"');
|
|
13214
13367
|
function JSXClosingFragment(ctx, state) {
|
|
13215
13368
|
return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
|
|
13216
13369
|
}
|
|
@@ -13222,7 +13375,7 @@ ${input.slice(result.pos)}
|
|
|
13222
13375
|
function JSXElementName(ctx, state) {
|
|
13223
13376
|
return $EVENT_C(ctx, state, "JSXElementName", JSXElementName$$);
|
|
13224
13377
|
}
|
|
13225
|
-
var JSXIdentifierName$0 = $R$0($EXPECT($
|
|
13378
|
+
var JSXIdentifierName$0 = $R$0($EXPECT($R74, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
|
|
13226
13379
|
function JSXIdentifierName(ctx, state) {
|
|
13227
13380
|
return $EVENT(ctx, state, "JSXIdentifierName", JSXIdentifierName$0);
|
|
13228
13381
|
}
|
|
@@ -13401,7 +13554,7 @@ ${input.slice(result.pos)}
|
|
|
13401
13554
|
class: $2
|
|
13402
13555
|
};
|
|
13403
13556
|
});
|
|
13404
|
-
var JSXAttribute$7 = $TS($S($TEXT($EXPECT($
|
|
13557
|
+
var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R75, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
|
|
13405
13558
|
var toggle = $1;
|
|
13406
13559
|
var id = $2;
|
|
13407
13560
|
const value = toggle === "+" ? "true" : "false";
|
|
@@ -13411,11 +13564,11 @@ ${input.slice(result.pos)}
|
|
|
13411
13564
|
function JSXAttribute(ctx, state) {
|
|
13412
13565
|
return $EVENT_C(ctx, state, "JSXAttribute", JSXAttribute$$);
|
|
13413
13566
|
}
|
|
13414
|
-
var JSXAttributeSpace$0 = $R$0($EXPECT($
|
|
13567
|
+
var JSXAttributeSpace$0 = $R$0($EXPECT($R76, "JSXAttributeSpace /[\\s>]|\\/>/"));
|
|
13415
13568
|
function JSXAttributeSpace(ctx, state) {
|
|
13416
13569
|
return $EVENT(ctx, state, "JSXAttributeSpace", JSXAttributeSpace$0);
|
|
13417
13570
|
}
|
|
13418
|
-
var JSXShorthandString$0 = $TR($EXPECT($
|
|
13571
|
+
var JSXShorthandString$0 = $TR($EXPECT($R77, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
13419
13572
|
return quoteString($0);
|
|
13420
13573
|
});
|
|
13421
13574
|
var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
|
|
@@ -13449,7 +13602,7 @@ ${input.slice(result.pos)}
|
|
|
13449
13602
|
}
|
|
13450
13603
|
return [open, value, close];
|
|
13451
13604
|
});
|
|
13452
|
-
var JSXAttributeValue$4 = $R$0($EXPECT($
|
|
13605
|
+
var JSXAttributeValue$4 = $R$0($EXPECT($R78, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
|
|
13453
13606
|
var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
|
|
13454
13607
|
function JSXAttributeValue(ctx, state) {
|
|
13455
13608
|
return $EVENT_C(ctx, state, "JSXAttributeValue", JSXAttributeValue$$);
|
|
@@ -13462,7 +13615,7 @@ ${input.slice(result.pos)}
|
|
|
13462
13615
|
function InlineJSXAttributeValue(ctx, state) {
|
|
13463
13616
|
return $EVENT(ctx, state, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
|
|
13464
13617
|
}
|
|
13465
|
-
var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($
|
|
13618
|
+
var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R79, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
|
|
13466
13619
|
var op = $2;
|
|
13467
13620
|
var rhs = $3;
|
|
13468
13621
|
return [[], op, [], rhs];
|
|
@@ -13479,7 +13632,7 @@ ${input.slice(result.pos)}
|
|
|
13479
13632
|
function InlineJSXUnaryExpression(ctx, state) {
|
|
13480
13633
|
return $EVENT(ctx, state, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
|
|
13481
13634
|
}
|
|
13482
|
-
var InlineJSXUnaryOp$0 = $TR($EXPECT($
|
|
13635
|
+
var InlineJSXUnaryOp$0 = $TR($EXPECT($R80, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
13483
13636
|
return { $loc, token: $0 };
|
|
13484
13637
|
});
|
|
13485
13638
|
function InlineJSXUnaryOp(ctx, state) {
|
|
@@ -13689,19 +13842,19 @@ ${input.slice(result.pos)}
|
|
|
13689
13842
|
function JSXChild(ctx, state) {
|
|
13690
13843
|
return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
|
|
13691
13844
|
}
|
|
13692
|
-
var JSXComment$0 = $TS($S($EXPECT($
|
|
13845
|
+
var JSXComment$0 = $TS($S($EXPECT($L215, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L216, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
|
|
13693
13846
|
return ["{/*", $2, "*/}"];
|
|
13694
13847
|
});
|
|
13695
13848
|
function JSXComment(ctx, state) {
|
|
13696
13849
|
return $EVENT(ctx, state, "JSXComment", JSXComment$0);
|
|
13697
13850
|
}
|
|
13698
|
-
var JSXCommentContent$0 = $TR($EXPECT($
|
|
13851
|
+
var JSXCommentContent$0 = $TR($EXPECT($R81, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
13699
13852
|
return { $loc, token: $0.replace(/\*\//g, "* /") };
|
|
13700
13853
|
});
|
|
13701
13854
|
function JSXCommentContent(ctx, state) {
|
|
13702
13855
|
return $EVENT(ctx, state, "JSXCommentContent", JSXCommentContent$0);
|
|
13703
13856
|
}
|
|
13704
|
-
var JSXText$0 = $TR($EXPECT($
|
|
13857
|
+
var JSXText$0 = $TR($EXPECT($R82, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
13705
13858
|
return {
|
|
13706
13859
|
type: "JSXText",
|
|
13707
13860
|
token: $0,
|
|
@@ -13876,37 +14029,37 @@ ${input.slice(result.pos)}
|
|
|
13876
14029
|
function InterfaceExtendsTarget(ctx, state) {
|
|
13877
14030
|
return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
|
|
13878
14031
|
}
|
|
13879
|
-
var TypeKeyword$0 = $TS($S($EXPECT($
|
|
14032
|
+
var TypeKeyword$0 = $TS($S($EXPECT($L217, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13880
14033
|
return { $loc, token: $1 };
|
|
13881
14034
|
});
|
|
13882
14035
|
function TypeKeyword(ctx, state) {
|
|
13883
14036
|
return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
|
|
13884
14037
|
}
|
|
13885
|
-
var Enum$0 = $TS($S($EXPECT($
|
|
14038
|
+
var Enum$0 = $TS($S($EXPECT($L218, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13886
14039
|
return { $loc, token: $1 };
|
|
13887
14040
|
});
|
|
13888
14041
|
function Enum(ctx, state) {
|
|
13889
14042
|
return $EVENT(ctx, state, "Enum", Enum$0);
|
|
13890
14043
|
}
|
|
13891
|
-
var Interface$0 = $TS($S($EXPECT($
|
|
14044
|
+
var Interface$0 = $TS($S($EXPECT($L219, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13892
14045
|
return { $loc, token: $1 };
|
|
13893
14046
|
});
|
|
13894
14047
|
function Interface(ctx, state) {
|
|
13895
14048
|
return $EVENT(ctx, state, "Interface", Interface$0);
|
|
13896
14049
|
}
|
|
13897
|
-
var Global$0 = $TS($S($EXPECT($
|
|
14050
|
+
var Global$0 = $TS($S($EXPECT($L220, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13898
14051
|
return { $loc, token: $1 };
|
|
13899
14052
|
});
|
|
13900
14053
|
function Global(ctx, state) {
|
|
13901
14054
|
return $EVENT(ctx, state, "Global", Global$0);
|
|
13902
14055
|
}
|
|
13903
|
-
var Module$0 = $TS($S($EXPECT($
|
|
14056
|
+
var Module$0 = $TS($S($EXPECT($L221, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13904
14057
|
return { $loc, token: $1 };
|
|
13905
14058
|
});
|
|
13906
14059
|
function Module(ctx, state) {
|
|
13907
14060
|
return $EVENT(ctx, state, "Module", Module$0);
|
|
13908
14061
|
}
|
|
13909
|
-
var Namespace$0 = $TS($S($EXPECT($
|
|
14062
|
+
var Namespace$0 = $TS($S($EXPECT($L222, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
13910
14063
|
return { $loc, token: $1 };
|
|
13911
14064
|
});
|
|
13912
14065
|
function Namespace(ctx, state) {
|
|
@@ -14122,7 +14275,7 @@ ${input.slice(result.pos)}
|
|
|
14122
14275
|
function TypeProperty(ctx, state) {
|
|
14123
14276
|
return $EVENT(ctx, state, "TypeProperty", TypeProperty$0);
|
|
14124
14277
|
}
|
|
14125
|
-
var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($
|
|
14278
|
+
var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R83, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R10, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
|
|
14126
14279
|
function TypeIndexSignature(ctx, state) {
|
|
14127
14280
|
return $EVENT(ctx, state, "TypeIndexSignature", TypeIndexSignature$0);
|
|
14128
14281
|
}
|
|
@@ -14142,11 +14295,13 @@ ${input.slice(result.pos)}
|
|
|
14142
14295
|
return { "type": "TypeSuffix", "ts": true, "optional": optional, "children": value };
|
|
14143
14296
|
});
|
|
14144
14297
|
var TypeSuffix$2 = $TS($S(NonNullAssertion, $E(_), $E($S(Colon, MaybeIndentedType))), function($skip, $loc, $0, $1, $2, $3) {
|
|
14298
|
+
var nonnull = $1;
|
|
14145
14299
|
var ct = $3;
|
|
14146
14300
|
const [colon, t] = ct ?? [];
|
|
14147
14301
|
return {
|
|
14148
14302
|
type: "TypeSuffix",
|
|
14149
14303
|
ts: true,
|
|
14304
|
+
nonnull,
|
|
14150
14305
|
t,
|
|
14151
14306
|
children: [$1, $2, colon, t]
|
|
14152
14307
|
};
|
|
@@ -14180,7 +14335,7 @@ ${input.slice(result.pos)}
|
|
|
14180
14335
|
function ReturnTypeSuffix(ctx, state) {
|
|
14181
14336
|
return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
|
|
14182
14337
|
}
|
|
14183
|
-
var ReturnType$0 = $TS($S($E($S(__, $EXPECT($
|
|
14338
|
+
var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L223, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
|
|
14184
14339
|
var asserts = $1;
|
|
14185
14340
|
var t = $2;
|
|
14186
14341
|
if (asserts) {
|
|
@@ -14259,7 +14414,7 @@ ${input.slice(result.pos)}
|
|
|
14259
14414
|
function TypeUnarySuffix(ctx, state) {
|
|
14260
14415
|
return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
|
|
14261
14416
|
}
|
|
14262
|
-
var TypeUnaryOp$0 = $S($EXPECT($
|
|
14417
|
+
var TypeUnaryOp$0 = $S($EXPECT($L224, 'TypeUnaryOp "keyof"'), NonIdContinue);
|
|
14263
14418
|
var TypeUnaryOp$1 = $S($EXPECT($L184, 'TypeUnaryOp "readonly"'), NonIdContinue);
|
|
14264
14419
|
var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
|
|
14265
14420
|
function TypeUnaryOp(ctx, state) {
|
|
@@ -14290,7 +14445,7 @@ ${input.slice(result.pos)}
|
|
|
14290
14445
|
function TypeIndexedAccess(ctx, state) {
|
|
14291
14446
|
return $EVENT_C(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$$);
|
|
14292
14447
|
}
|
|
14293
|
-
var UnknownAlias$0 = $TV($EXPECT($
|
|
14448
|
+
var UnknownAlias$0 = $TV($EXPECT($L225, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
|
|
14294
14449
|
return { $loc, token: "unknown" };
|
|
14295
14450
|
});
|
|
14296
14451
|
function UnknownAlias(ctx, state) {
|
|
@@ -14416,7 +14571,7 @@ ${input.slice(result.pos)}
|
|
|
14416
14571
|
function NestedType(ctx, state) {
|
|
14417
14572
|
return $EVENT(ctx, state, "NestedType", NestedType$0);
|
|
14418
14573
|
}
|
|
14419
|
-
var TypeConditional$0 = $TS($S($E(_), $EXPECT($
|
|
14574
|
+
var TypeConditional$0 = $TS($S($E(_), $EXPECT($R84, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
|
|
14420
14575
|
return [$1, expressionizeTypeIf($3)];
|
|
14421
14576
|
});
|
|
14422
14577
|
var TypeConditional$1 = $TS($S(TypeCondition, NotDedented, QuestionMark, Type, __, Colon, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
|
|
@@ -14496,17 +14651,17 @@ ${input.slice(result.pos)}
|
|
|
14496
14651
|
}
|
|
14497
14652
|
var TypeLiteral$0 = TypeTemplateLiteral;
|
|
14498
14653
|
var TypeLiteral$1 = Literal;
|
|
14499
|
-
var TypeLiteral$2 = $TS($S($EXPECT($
|
|
14654
|
+
var TypeLiteral$2 = $TS($S($EXPECT($R10, "TypeLiteral /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1, $2) {
|
|
14500
14655
|
var sign = $1;
|
|
14501
14656
|
var num = $2;
|
|
14502
14657
|
if (sign[0] === "+")
|
|
14503
14658
|
return num;
|
|
14504
14659
|
return $0;
|
|
14505
14660
|
});
|
|
14506
|
-
var TypeLiteral$3 = $TS($S($EXPECT($
|
|
14661
|
+
var TypeLiteral$3 = $TS($S($EXPECT($L207, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
14507
14662
|
return { type: "VoidType", $loc, token: $1 };
|
|
14508
14663
|
});
|
|
14509
|
-
var TypeLiteral$4 = $TV($EXPECT($
|
|
14664
|
+
var TypeLiteral$4 = $TV($EXPECT($L226, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
|
|
14510
14665
|
return { $loc, token: "[]" };
|
|
14511
14666
|
});
|
|
14512
14667
|
var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4];
|
|
@@ -14616,15 +14771,15 @@ ${input.slice(result.pos)}
|
|
|
14616
14771
|
function ThisType(ctx, state) {
|
|
14617
14772
|
return $EVENT(ctx, state, "ThisType", ThisType$0);
|
|
14618
14773
|
}
|
|
14619
|
-
var Shebang$0 = $S($R$0($EXPECT($
|
|
14774
|
+
var Shebang$0 = $S($R$0($EXPECT($R85, "Shebang /#![^\\r\\n]*/")), EOL);
|
|
14620
14775
|
function Shebang(ctx, state) {
|
|
14621
14776
|
return $EVENT(ctx, state, "Shebang", Shebang$0);
|
|
14622
14777
|
}
|
|
14623
|
-
var CivetPrologue$0 = $T($S($EXPECT($
|
|
14778
|
+
var CivetPrologue$0 = $T($S($EXPECT($R86, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R87, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
|
|
14624
14779
|
var content = value[2];
|
|
14625
14780
|
return content;
|
|
14626
14781
|
});
|
|
14627
|
-
var CivetPrologue$1 = $T($S($EXPECT($
|
|
14782
|
+
var CivetPrologue$1 = $T($S($EXPECT($R86, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R87, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
|
|
14628
14783
|
var content = value[2];
|
|
14629
14784
|
return content;
|
|
14630
14785
|
});
|
|
@@ -14632,7 +14787,7 @@ ${input.slice(result.pos)}
|
|
|
14632
14787
|
function CivetPrologue(ctx, state) {
|
|
14633
14788
|
return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
|
|
14634
14789
|
}
|
|
14635
|
-
var CivetPrologueContent$0 = $TS($S($EXPECT($
|
|
14790
|
+
var CivetPrologueContent$0 = $TS($S($EXPECT($L227, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R88, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
14636
14791
|
var options = $3;
|
|
14637
14792
|
return {
|
|
14638
14793
|
type: "CivetPrologue",
|
|
@@ -14643,7 +14798,7 @@ ${input.slice(result.pos)}
|
|
|
14643
14798
|
function CivetPrologueContent(ctx, state) {
|
|
14644
14799
|
return $EVENT(ctx, state, "CivetPrologueContent", CivetPrologueContent$0);
|
|
14645
14800
|
}
|
|
14646
|
-
var CivetOption$0 = $TR($EXPECT($
|
|
14801
|
+
var CivetOption$0 = $TR($EXPECT($R89, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
14647
14802
|
const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
|
|
14648
14803
|
if (l)
|
|
14649
14804
|
return l.toUpperCase();
|
|
@@ -14660,11 +14815,11 @@ ${input.slice(result.pos)}
|
|
|
14660
14815
|
function CivetOption(ctx, state) {
|
|
14661
14816
|
return $EVENT(ctx, state, "CivetOption", CivetOption$0);
|
|
14662
14817
|
}
|
|
14663
|
-
var UnknownPrologue$0 = $S($R$0($EXPECT($
|
|
14818
|
+
var UnknownPrologue$0 = $S($R$0($EXPECT($R86, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
|
|
14664
14819
|
function UnknownPrologue(ctx, state) {
|
|
14665
14820
|
return $EVENT(ctx, state, "UnknownPrologue", UnknownPrologue$0);
|
|
14666
14821
|
}
|
|
14667
|
-
var TripleSlashDirective$0 = $S($R$0($EXPECT($
|
|
14822
|
+
var TripleSlashDirective$0 = $S($R$0($EXPECT($R90, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
|
|
14668
14823
|
function TripleSlashDirective(ctx, state) {
|
|
14669
14824
|
return $EVENT(ctx, state, "TripleSlashDirective", TripleSlashDirective$0);
|
|
14670
14825
|
}
|
|
@@ -14680,13 +14835,13 @@ ${input.slice(result.pos)}
|
|
|
14680
14835
|
function PrologueString(ctx, state) {
|
|
14681
14836
|
return $EVENT_C(ctx, state, "PrologueString", PrologueString$$);
|
|
14682
14837
|
}
|
|
14683
|
-
var EOS$0 = $T($S($EXPECT($
|
|
14838
|
+
var EOS$0 = $T($S($EXPECT($R91, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
|
|
14684
14839
|
return value[1];
|
|
14685
14840
|
});
|
|
14686
14841
|
function EOS(ctx, state) {
|
|
14687
14842
|
return $EVENT(ctx, state, "EOS", EOS$0);
|
|
14688
14843
|
}
|
|
14689
|
-
var EOL$0 = $TR($EXPECT($
|
|
14844
|
+
var EOL$0 = $TR($EXPECT($R92, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
14690
14845
|
return { $loc, token: $0 };
|
|
14691
14846
|
});
|
|
14692
14847
|
function EOL(ctx, state) {
|
|
@@ -15258,11 +15413,11 @@ ${input.slice(result.pos)}
|
|
|
15258
15413
|
function Prologue(ctx, state) {
|
|
15259
15414
|
return $EVENT(ctx, state, "Prologue", Prologue$0);
|
|
15260
15415
|
}
|
|
15261
|
-
var ProloguePrefix$0 = $S(Prologue, $R$0($EXPECT($
|
|
15416
|
+
var ProloguePrefix$0 = $S(Prologue, $R$0($EXPECT($R93, "ProloguePrefix /[^]*/")));
|
|
15262
15417
|
function ProloguePrefix(ctx, state) {
|
|
15263
15418
|
return $EVENT(ctx, state, "ProloguePrefix", ProloguePrefix$0);
|
|
15264
15419
|
}
|
|
15265
|
-
var Indent$0 = $TR($EXPECT($
|
|
15420
|
+
var Indent$0 = $TR($EXPECT($R87, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
15266
15421
|
const level = getIndentLevel($0, module.config.tab);
|
|
15267
15422
|
return {
|
|
15268
15423
|
$loc,
|
|
@@ -15410,11 +15565,11 @@ ${input.slice(result.pos)}
|
|
|
15410
15565
|
exports.WRHS = WRHS;
|
|
15411
15566
|
exports.SingleLineBinaryOpRHS = SingleLineBinaryOpRHS;
|
|
15412
15567
|
exports.RHS = RHS;
|
|
15413
|
-
exports.ParenthesizedAssignment = ParenthesizedAssignment;
|
|
15414
15568
|
exports.UnaryExpression = UnaryExpression;
|
|
15415
15569
|
exports.UnaryWithoutParenthesizedAssignment = UnaryWithoutParenthesizedAssignment;
|
|
15416
15570
|
exports.UnaryBody = UnaryBody;
|
|
15417
15571
|
exports.UnaryWithoutParenthesizedAssignmentBody = UnaryWithoutParenthesizedAssignmentBody;
|
|
15572
|
+
exports.ParenthesizedAssignment = ParenthesizedAssignment;
|
|
15418
15573
|
exports.UnaryPostfix = UnaryPostfix;
|
|
15419
15574
|
exports.TypePostfix = TypePostfix;
|
|
15420
15575
|
exports.Tuple = Tuple;
|
|
@@ -15442,6 +15597,7 @@ ${input.slice(result.pos)}
|
|
|
15442
15597
|
exports.PipelineTailItem = PipelineTailItem;
|
|
15443
15598
|
exports.PrimaryExpression = PrimaryExpression;
|
|
15444
15599
|
exports.ParenthesizedExpression = ParenthesizedExpression;
|
|
15600
|
+
exports.PartialPlaceholder = PartialPlaceholder;
|
|
15445
15601
|
exports.ClassDeclaration = ClassDeclaration;
|
|
15446
15602
|
exports.ClassExpression = ClassExpression;
|
|
15447
15603
|
exports.ClassBinding = ClassBinding;
|
|
@@ -15486,6 +15642,7 @@ ${input.slice(result.pos)}
|
|
|
15486
15642
|
exports.MemberBracketContent = MemberBracketContent;
|
|
15487
15643
|
exports.SliceParameters = SliceParameters;
|
|
15488
15644
|
exports.AccessStart = AccessStart;
|
|
15645
|
+
exports.ImplicitAccessStart = ImplicitAccessStart;
|
|
15489
15646
|
exports.PropertyAccessModifier = PropertyAccessModifier;
|
|
15490
15647
|
exports.PropertyAccess = PropertyAccess;
|
|
15491
15648
|
exports.PropertyGlob = PropertyGlob;
|
|
@@ -15620,6 +15777,7 @@ ${input.slice(result.pos)}
|
|
|
15620
15777
|
exports.BinaryOp = BinaryOp;
|
|
15621
15778
|
exports._BinaryOp = _BinaryOp;
|
|
15622
15779
|
exports.BinaryOpSymbol = BinaryOpSymbol;
|
|
15780
|
+
exports.ActualIn = ActualIn;
|
|
15623
15781
|
exports.CoffeeOfOp = CoffeeOfOp;
|
|
15624
15782
|
exports.NotOp = NotOp;
|
|
15625
15783
|
exports.Xor = Xor;
|
|
@@ -15900,6 +16058,7 @@ ${input.slice(result.pos)}
|
|
|
15900
16058
|
exports.TripleTick = TripleTick;
|
|
15901
16059
|
exports.Try = Try;
|
|
15902
16060
|
exports.Typeof = Typeof;
|
|
16061
|
+
exports.Undefined = Undefined;
|
|
15903
16062
|
exports.Unless = Unless;
|
|
15904
16063
|
exports.Until = Until;
|
|
15905
16064
|
exports.Using = Using;
|
|
@@ -16116,6 +16275,13 @@ ${input.slice(result.pos)}
|
|
|
16116
16275
|
var import_parser = __toESM(require_parser());
|
|
16117
16276
|
|
|
16118
16277
|
// source/generate.civet
|
|
16278
|
+
function stringify(node) {
|
|
16279
|
+
try {
|
|
16280
|
+
return JSON.stringify(node);
|
|
16281
|
+
} catch (e) {
|
|
16282
|
+
return `${node}`;
|
|
16283
|
+
}
|
|
16284
|
+
}
|
|
16119
16285
|
function gen(node, options) {
|
|
16120
16286
|
if (node === null || node === void 0) {
|
|
16121
16287
|
return "";
|
|
@@ -16149,16 +16315,16 @@ ${input.slice(result.pos)}
|
|
|
16149
16315
|
if (!node.children) {
|
|
16150
16316
|
switch (node.type) {
|
|
16151
16317
|
case "Ref": {
|
|
16152
|
-
throw new Error(`Unpopulated ref ${
|
|
16318
|
+
throw new Error(`Unpopulated ref ${stringify(node)}`);
|
|
16153
16319
|
}
|
|
16154
16320
|
}
|
|
16155
16321
|
debugger;
|
|
16156
|
-
throw new Error(`Unknown node ${
|
|
16322
|
+
throw new Error(`Unknown node ${stringify(node)}`);
|
|
16157
16323
|
}
|
|
16158
16324
|
return gen(node.children, options);
|
|
16159
16325
|
}
|
|
16160
16326
|
debugger;
|
|
16161
|
-
throw new Error(`Unknown node ${
|
|
16327
|
+
throw new Error(`Unknown node ${stringify(node)}`);
|
|
16162
16328
|
}
|
|
16163
16329
|
var generate_default = gen;
|
|
16164
16330
|
function prune(node) {
|