@danielx/civet 0.6.13 → 0.6.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +305 -102
- package/dist/main.js +305 -102
- package/dist/main.mjs +305 -102
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -209,7 +209,7 @@ var Civet = (() => {
|
|
|
209
209
|
ref.children = [makeLeftHandSideExpression(arg)];
|
|
210
210
|
return {
|
|
211
211
|
type: "UnwrappedExpression",
|
|
212
|
-
children: [skipIfOnlyWS(fn.leadingComment),
|
|
212
|
+
children: [skipIfOnlyWS(fn.leadingComment), body, skipIfOnlyWS(fn.trailingComment)]
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
215
|
expr = fn.expr;
|
|
@@ -631,12 +631,20 @@ var Civet = (() => {
|
|
|
631
631
|
children
|
|
632
632
|
};
|
|
633
633
|
}
|
|
634
|
+
function isExistence(exp) {
|
|
635
|
+
if (exp.type === "ParenthesizedExpression" && exp.implicit) {
|
|
636
|
+
exp = exp.expression;
|
|
637
|
+
}
|
|
638
|
+
if (exp.type === "Existence") {
|
|
639
|
+
return exp;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
634
642
|
function expandChainedComparisons([first, binops]) {
|
|
635
643
|
const relationalOps = ["==", "===", "!=", "!==", "<", "<=", ">", ">=", "in"];
|
|
636
644
|
const lowerPrecedenceOps = ["??", "&&", "||", "&", "|", "^"];
|
|
637
645
|
let results = [];
|
|
638
646
|
let i = 0;
|
|
639
|
-
|
|
647
|
+
const l = binops.length;
|
|
640
648
|
let start = 0;
|
|
641
649
|
let chains = [];
|
|
642
650
|
while (i < l) {
|
|
@@ -652,12 +660,15 @@ var Civet = (() => {
|
|
|
652
660
|
processChains();
|
|
653
661
|
return results;
|
|
654
662
|
function processChains() {
|
|
663
|
+
first = expandExistence(first);
|
|
655
664
|
if (chains.length > 1) {
|
|
656
665
|
chains.forEach((index, k) => {
|
|
657
666
|
if (k > 0) {
|
|
658
667
|
results.push(" ", "&&", " ");
|
|
659
668
|
}
|
|
660
|
-
const
|
|
669
|
+
const binop = binops[index];
|
|
670
|
+
let [pre, op, post, exp] = binop;
|
|
671
|
+
exp = binop[3] = expandExistence(exp);
|
|
661
672
|
let endIndex;
|
|
662
673
|
if (k < chains.length - 1) {
|
|
663
674
|
endIndex = chains[k + 1];
|
|
@@ -674,6 +685,14 @@ var Civet = (() => {
|
|
|
674
685
|
}
|
|
675
686
|
chains.length = 0;
|
|
676
687
|
}
|
|
688
|
+
function expandExistence(exp) {
|
|
689
|
+
const existence = isExistence(exp);
|
|
690
|
+
if (existence) {
|
|
691
|
+
results.push(existence, " ", "&&", " ");
|
|
692
|
+
return existence.expression;
|
|
693
|
+
}
|
|
694
|
+
return exp;
|
|
695
|
+
}
|
|
677
696
|
}
|
|
678
697
|
function processParams(f) {
|
|
679
698
|
const { type, parameters, block } = f;
|
|
@@ -1126,8 +1145,10 @@ var Civet = (() => {
|
|
|
1126
1145
|
function makeLeftHandSideExpression(expression) {
|
|
1127
1146
|
switch (expression.type) {
|
|
1128
1147
|
case "Ref":
|
|
1148
|
+
case "AmpersandRef":
|
|
1129
1149
|
case "Identifier":
|
|
1130
1150
|
case "Literal":
|
|
1151
|
+
case "IterationExpression":
|
|
1131
1152
|
case "CallExpression":
|
|
1132
1153
|
case "MemberExpression":
|
|
1133
1154
|
case "ParenthesizedExpression":
|
|
@@ -1140,7 +1161,8 @@ var Civet = (() => {
|
|
|
1140
1161
|
return {
|
|
1141
1162
|
type: "ParenthesizedExpression",
|
|
1142
1163
|
children: ["(", expression, ")"],
|
|
1143
|
-
expression
|
|
1164
|
+
expression,
|
|
1165
|
+
implicit: true
|
|
1144
1166
|
};
|
|
1145
1167
|
}
|
|
1146
1168
|
}
|
|
@@ -1403,6 +1425,46 @@ var Civet = (() => {
|
|
|
1403
1425
|
tail.push(...splices.map((s) => [", ", s]), ...thisAssignments.map((a) => [", ", a]));
|
|
1404
1426
|
}
|
|
1405
1427
|
function processAssignments(statements) {
|
|
1428
|
+
gatherRecursiveAll(statements, (n) => n.type === "AssignmentExpression" || n.type === "UpdateExpression").forEach((exp) => {
|
|
1429
|
+
function extractAssignment(lhs) {
|
|
1430
|
+
let expr = lhs;
|
|
1431
|
+
while (expr.type === "ParenthesizedExpression") {
|
|
1432
|
+
expr = expr.expression;
|
|
1433
|
+
}
|
|
1434
|
+
if (expr.type === "AssignmentExpression" || expr.type === "UpdateExpression") {
|
|
1435
|
+
if (expr.type === "UpdateExpression" && expr.children[0] === expr.assigned) {
|
|
1436
|
+
post.push([", ", lhs]);
|
|
1437
|
+
} else {
|
|
1438
|
+
pre.push([lhs, ", "]);
|
|
1439
|
+
}
|
|
1440
|
+
return expr.assigned;
|
|
1441
|
+
}
|
|
1442
|
+
}
|
|
1443
|
+
const pre = [], post = [];
|
|
1444
|
+
switch (exp.type) {
|
|
1445
|
+
case "AssignmentExpression":
|
|
1446
|
+
if (!exp.lhs)
|
|
1447
|
+
return;
|
|
1448
|
+
exp.lhs.forEach((lhsPart, i) => {
|
|
1449
|
+
let newLhs2 = extractAssignment(lhsPart[1]);
|
|
1450
|
+
if (newLhs2) {
|
|
1451
|
+
lhsPart[1] = newLhs2;
|
|
1452
|
+
}
|
|
1453
|
+
});
|
|
1454
|
+
break;
|
|
1455
|
+
case "UpdateExpression":
|
|
1456
|
+
let newLhs = extractAssignment(exp.assigned);
|
|
1457
|
+
if (newLhs) {
|
|
1458
|
+
const i = exp.children.indexOf(exp.assigned);
|
|
1459
|
+
exp.assigned = exp.children[i] = newLhs;
|
|
1460
|
+
}
|
|
1461
|
+
break;
|
|
1462
|
+
}
|
|
1463
|
+
if (pre.length)
|
|
1464
|
+
exp.children.unshift(...pre);
|
|
1465
|
+
if (post.length)
|
|
1466
|
+
exp.children.push(...post);
|
|
1467
|
+
});
|
|
1406
1468
|
gatherRecursiveAll(statements, (n) => n.type === "AssignmentExpression" && n.names === null).forEach((exp) => {
|
|
1407
1469
|
let { lhs: $1, exp: $2 } = exp, tail = [], i = 0, len = $1.length;
|
|
1408
1470
|
if ($1.some((left) => left[left.length - 1].special)) {
|
|
@@ -1412,7 +1474,14 @@ var Civet = (() => {
|
|
|
1412
1474
|
const [, lhs, , op] = $1[0];
|
|
1413
1475
|
const { call } = op;
|
|
1414
1476
|
op[op.length - 1] = "=";
|
|
1415
|
-
|
|
1477
|
+
const index2 = exp.children.indexOf($2);
|
|
1478
|
+
if (index2 < 0)
|
|
1479
|
+
throw new Error("Assertion error: exp not in AssignmentExpression");
|
|
1480
|
+
exp.children.splice(
|
|
1481
|
+
index2,
|
|
1482
|
+
1,
|
|
1483
|
+
exp.exp = $2 = [call, "(", lhs, ", ", $2, ")"]
|
|
1484
|
+
);
|
|
1416
1485
|
}
|
|
1417
1486
|
let wrapped = false;
|
|
1418
1487
|
while (i < len) {
|
|
@@ -1463,49 +1532,11 @@ var Civet = (() => {
|
|
|
1463
1532
|
}
|
|
1464
1533
|
i--;
|
|
1465
1534
|
}
|
|
1466
|
-
|
|
1467
|
-
exp.children
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
function extractAssignment(lhs) {
|
|
1472
|
-
let expr = lhs;
|
|
1473
|
-
while (expr.type === "ParenthesizedExpression") {
|
|
1474
|
-
expr = expr.expression;
|
|
1475
|
-
}
|
|
1476
|
-
if (expr.type === "AssignmentExpression" || expr.type === "UpdateExpression") {
|
|
1477
|
-
if (expr.type === "UpdateExpression" && expr.children[0] === expr.assigned) {
|
|
1478
|
-
post.push([", ", lhs]);
|
|
1479
|
-
} else {
|
|
1480
|
-
pre.push([lhs, ", "]);
|
|
1481
|
-
}
|
|
1482
|
-
return expr.assigned;
|
|
1483
|
-
}
|
|
1484
|
-
}
|
|
1485
|
-
const pre = [], post = [];
|
|
1486
|
-
switch (exp.type) {
|
|
1487
|
-
case "AssignmentExpression":
|
|
1488
|
-
if (!exp.lhs)
|
|
1489
|
-
return;
|
|
1490
|
-
exp.lhs.forEach((lhsPart, i) => {
|
|
1491
|
-
let newLhs2 = extractAssignment(lhsPart[1]);
|
|
1492
|
-
if (newLhs2) {
|
|
1493
|
-
lhsPart[1] = newLhs2;
|
|
1494
|
-
}
|
|
1495
|
-
});
|
|
1496
|
-
break;
|
|
1497
|
-
case "UpdateExpression":
|
|
1498
|
-
let newLhs = extractAssignment(exp.assigned);
|
|
1499
|
-
if (newLhs) {
|
|
1500
|
-
const i = exp.children.indexOf(exp.assigned);
|
|
1501
|
-
exp.assigned = exp.children[i] = newLhs;
|
|
1502
|
-
}
|
|
1503
|
-
break;
|
|
1504
|
-
}
|
|
1505
|
-
if (pre.length)
|
|
1506
|
-
exp.children.unshift(...pre);
|
|
1507
|
-
if (post.length)
|
|
1508
|
-
exp.children.push(...post);
|
|
1535
|
+
exp.names = $1.flatMap(([, l]) => l.names || []);
|
|
1536
|
+
const index = exp.children.indexOf($2);
|
|
1537
|
+
if (index < 0)
|
|
1538
|
+
throw new Error("Assertion error: exp not in AssignmentExpression");
|
|
1539
|
+
exp.children.splice(index + 1, 0, ...tail);
|
|
1509
1540
|
});
|
|
1510
1541
|
}
|
|
1511
1542
|
function attachPostfixStatementAsExpression(exp, post) {
|
|
@@ -1952,7 +1983,8 @@ var Civet = (() => {
|
|
|
1952
1983
|
});
|
|
1953
1984
|
}
|
|
1954
1985
|
} else {
|
|
1955
|
-
|
|
1986
|
+
if (i === 0)
|
|
1987
|
+
s.children = children;
|
|
1956
1988
|
}
|
|
1957
1989
|
if (returns && (ref = needsRef(arg))) {
|
|
1958
1990
|
usingRef = usingRef || ref;
|
|
@@ -2248,27 +2280,20 @@ var Civet = (() => {
|
|
|
2248
2280
|
if (post?.token === "?") {
|
|
2249
2281
|
post = {
|
|
2250
2282
|
$loc: post.$loc,
|
|
2251
|
-
token: "
|
|
2283
|
+
token: "!="
|
|
2252
2284
|
};
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
...exp,
|
|
2259
|
-
children: [...pre, ...exp.children, post]
|
|
2260
|
-
};
|
|
2261
|
-
default:
|
|
2262
|
-
const expression = {
|
|
2263
|
-
...exp,
|
|
2264
|
-
children: [...pre, "(", exp.children, ")", post]
|
|
2265
|
-
};
|
|
2266
|
-
return {
|
|
2267
|
-
type: "ParenthesizedExpression",
|
|
2268
|
-
children: ["(", expression, ")"],
|
|
2269
|
-
expression
|
|
2270
|
-
};
|
|
2285
|
+
if (pre.length) {
|
|
2286
|
+
exp = {
|
|
2287
|
+
type: "UnaryExpression",
|
|
2288
|
+
children: [...pre, exp, void 0]
|
|
2289
|
+
};
|
|
2271
2290
|
}
|
|
2291
|
+
const existence = {
|
|
2292
|
+
type: "Existence",
|
|
2293
|
+
expression: exp,
|
|
2294
|
+
children: [exp, " ", post, " ", "null"]
|
|
2295
|
+
};
|
|
2296
|
+
return makeLeftHandSideExpression(existence);
|
|
2272
2297
|
}
|
|
2273
2298
|
if (exp.type === "Literal") {
|
|
2274
2299
|
if (pre.length === 1 && pre[0].token === "-") {
|
|
@@ -2949,6 +2974,7 @@ ${input.slice(result.pos)}
|
|
|
2949
2974
|
NonPipelineExtendedExpression,
|
|
2950
2975
|
NonAssignmentExtendedExpression,
|
|
2951
2976
|
NestedNonAssignmentExtendedExpression,
|
|
2977
|
+
ExpressionizedStatementWithTrailingCallExpressions,
|
|
2952
2978
|
ExpressionizedStatement,
|
|
2953
2979
|
Expression,
|
|
2954
2980
|
Arguments,
|
|
@@ -2959,6 +2985,8 @@ ${input.slice(result.pos)}
|
|
|
2959
2985
|
ArgumentsWithTrailingMemberExpressions,
|
|
2960
2986
|
TrailingMemberExpressions,
|
|
2961
2987
|
AllowedTrailingMemberExpressions,
|
|
2988
|
+
TrailingCallExpressions,
|
|
2989
|
+
AllowedTrailingCallExpressions,
|
|
2962
2990
|
CommaDelimiter,
|
|
2963
2991
|
ArgumentList,
|
|
2964
2992
|
NonPipelineArgumentList,
|
|
@@ -3141,6 +3169,7 @@ ${input.slice(result.pos)}
|
|
|
3141
3169
|
OperatorAssignmentOp,
|
|
3142
3170
|
AssignmentOpSymbol,
|
|
3143
3171
|
CoffeeWordAssignmentOp,
|
|
3172
|
+
NotDedentedBinaryOp,
|
|
3144
3173
|
BinaryOp,
|
|
3145
3174
|
BinaryOpSymbol,
|
|
3146
3175
|
Xor,
|
|
@@ -3499,6 +3528,7 @@ ${input.slice(result.pos)}
|
|
|
3499
3528
|
TypeIndex,
|
|
3500
3529
|
TypeSuffix,
|
|
3501
3530
|
ReturnTypeSuffix,
|
|
3531
|
+
ReturnType,
|
|
3502
3532
|
TypePredicate,
|
|
3503
3533
|
Type,
|
|
3504
3534
|
TypeBinary,
|
|
@@ -3803,7 +3833,7 @@ ${input.slice(result.pos)}
|
|
|
3803
3833
|
var $R6 = $R(new RegExp("[!+-]", "suy"));
|
|
3804
3834
|
var $R7 = $R(new RegExp("<(?!\\p{ID_Start}|[_$])", "suy"));
|
|
3805
3835
|
var $R8 = $R(new RegExp("!\\^\\^?", "suy"));
|
|
3806
|
-
var $R9 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]
|
|
3836
|
+
var $R9 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])", "suy"));
|
|
3807
3837
|
var $R10 = $R(new RegExp("(?=[\\s\\)])", "suy"));
|
|
3808
3838
|
var $R11 = $R(new RegExp('[^;"\\s]+', "suy"));
|
|
3809
3839
|
var $R12 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
|
|
@@ -4096,7 +4126,10 @@ ${input.slice(result.pos)}
|
|
|
4096
4126
|
}
|
|
4097
4127
|
}
|
|
4098
4128
|
var NonAssignmentExtendedExpression$0 = NestedNonAssignmentExtendedExpression;
|
|
4099
|
-
var NonAssignmentExtendedExpression$1 = $TS($S(__,
|
|
4129
|
+
var NonAssignmentExtendedExpression$1 = $TS($S(__, ExpressionizedStatementWithTrailingCallExpressions), function($skip, $loc, $0, $1, $2) {
|
|
4130
|
+
if ($2.length) {
|
|
4131
|
+
return [...$1, ...$2];
|
|
4132
|
+
}
|
|
4100
4133
|
return {
|
|
4101
4134
|
...$2,
|
|
4102
4135
|
children: [...$1, ...$2.children]
|
|
@@ -4124,11 +4157,17 @@ ${input.slice(result.pos)}
|
|
|
4124
4157
|
return result;
|
|
4125
4158
|
}
|
|
4126
4159
|
}
|
|
4127
|
-
var NestedNonAssignmentExtendedExpression$0 = $TS($S($Y(EOS), PushIndent, $E($S(Nested,
|
|
4160
|
+
var NestedNonAssignmentExtendedExpression$0 = $TS($S($Y(EOS), PushIndent, $E($S(Nested, ExpressionizedStatementWithTrailingCallExpressions)), PopIndent, $E(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
|
|
4128
4161
|
var expression = $3;
|
|
4129
|
-
|
|
4162
|
+
var trailing = $5;
|
|
4163
|
+
if (!expression)
|
|
4164
|
+
return $skip;
|
|
4165
|
+
if (!trailing)
|
|
4130
4166
|
return expression;
|
|
4131
|
-
return
|
|
4167
|
+
return {
|
|
4168
|
+
type: "CallExpression",
|
|
4169
|
+
children: [expression, ...trailing.flat()]
|
|
4170
|
+
};
|
|
4132
4171
|
});
|
|
4133
4172
|
function NestedNonAssignmentExtendedExpression(state) {
|
|
4134
4173
|
let eventData;
|
|
@@ -4152,6 +4191,39 @@ ${input.slice(result.pos)}
|
|
|
4152
4191
|
return result;
|
|
4153
4192
|
}
|
|
4154
4193
|
}
|
|
4194
|
+
var ExpressionizedStatementWithTrailingCallExpressions$0 = $TS($S(ExpressionizedStatement, $E(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2) {
|
|
4195
|
+
if (!$2)
|
|
4196
|
+
return $1;
|
|
4197
|
+
return {
|
|
4198
|
+
type: "CallExpression",
|
|
4199
|
+
children: [
|
|
4200
|
+
makeLeftHandSideExpression($1),
|
|
4201
|
+
$2
|
|
4202
|
+
]
|
|
4203
|
+
};
|
|
4204
|
+
});
|
|
4205
|
+
function ExpressionizedStatementWithTrailingCallExpressions(state) {
|
|
4206
|
+
let eventData;
|
|
4207
|
+
if (state.events) {
|
|
4208
|
+
const result = state.events.enter?.("ExpressionizedStatementWithTrailingCallExpressions", state);
|
|
4209
|
+
if (result) {
|
|
4210
|
+
if (result.cache)
|
|
4211
|
+
return result.cache;
|
|
4212
|
+
eventData = result.data;
|
|
4213
|
+
}
|
|
4214
|
+
}
|
|
4215
|
+
if (state.tokenize) {
|
|
4216
|
+
const result = $TOKEN("ExpressionizedStatementWithTrailingCallExpressions", state, ExpressionizedStatementWithTrailingCallExpressions$0(state));
|
|
4217
|
+
if (state.events)
|
|
4218
|
+
state.events.exit?.("ExpressionizedStatementWithTrailingCallExpressions", state, result, eventData);
|
|
4219
|
+
return result;
|
|
4220
|
+
} else {
|
|
4221
|
+
const result = ExpressionizedStatementWithTrailingCallExpressions$0(state);
|
|
4222
|
+
if (state.events)
|
|
4223
|
+
state.events.exit?.("ExpressionizedStatementWithTrailingCallExpressions", state, result, eventData);
|
|
4224
|
+
return result;
|
|
4225
|
+
}
|
|
4226
|
+
}
|
|
4155
4227
|
var ExpressionizedStatement$0 = DebuggerExpression;
|
|
4156
4228
|
var ExpressionizedStatement$1 = IfExpression;
|
|
4157
4229
|
var ExpressionizedStatement$2 = UnlessExpression;
|
|
@@ -4437,6 +4509,54 @@ ${input.slice(result.pos)}
|
|
|
4437
4509
|
return result;
|
|
4438
4510
|
}
|
|
4439
4511
|
}
|
|
4512
|
+
var TrailingCallExpressions$0 = $P($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L5, fail, 'TrailingCallExpressions "?"')), $EXPECT($L6, fail, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R1, fail, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
|
|
4513
|
+
function TrailingCallExpressions(state) {
|
|
4514
|
+
let eventData;
|
|
4515
|
+
if (state.events) {
|
|
4516
|
+
const result = state.events.enter?.("TrailingCallExpressions", state);
|
|
4517
|
+
if (result) {
|
|
4518
|
+
if (result.cache)
|
|
4519
|
+
return result.cache;
|
|
4520
|
+
eventData = result.data;
|
|
4521
|
+
}
|
|
4522
|
+
}
|
|
4523
|
+
if (state.tokenize) {
|
|
4524
|
+
const result = $TOKEN("TrailingCallExpressions", state, TrailingCallExpressions$0(state));
|
|
4525
|
+
if (state.events)
|
|
4526
|
+
state.events.exit?.("TrailingCallExpressions", state, result, eventData);
|
|
4527
|
+
return result;
|
|
4528
|
+
} else {
|
|
4529
|
+
const result = TrailingCallExpressions$0(state);
|
|
4530
|
+
if (state.events)
|
|
4531
|
+
state.events.exit?.("TrailingCallExpressions", state, result, eventData);
|
|
4532
|
+
return result;
|
|
4533
|
+
}
|
|
4534
|
+
}
|
|
4535
|
+
var AllowedTrailingCallExpressions$0 = $T($S(TrailingMemberPropertyAllowed, TrailingCallExpressions), function(value) {
|
|
4536
|
+
return value[1];
|
|
4537
|
+
});
|
|
4538
|
+
function AllowedTrailingCallExpressions(state) {
|
|
4539
|
+
let eventData;
|
|
4540
|
+
if (state.events) {
|
|
4541
|
+
const result = state.events.enter?.("AllowedTrailingCallExpressions", state);
|
|
4542
|
+
if (result) {
|
|
4543
|
+
if (result.cache)
|
|
4544
|
+
return result.cache;
|
|
4545
|
+
eventData = result.data;
|
|
4546
|
+
}
|
|
4547
|
+
}
|
|
4548
|
+
if (state.tokenize) {
|
|
4549
|
+
const result = $TOKEN("AllowedTrailingCallExpressions", state, AllowedTrailingCallExpressions$0(state));
|
|
4550
|
+
if (state.events)
|
|
4551
|
+
state.events.exit?.("AllowedTrailingCallExpressions", state, result, eventData);
|
|
4552
|
+
return result;
|
|
4553
|
+
} else {
|
|
4554
|
+
const result = AllowedTrailingCallExpressions$0(state);
|
|
4555
|
+
if (state.events)
|
|
4556
|
+
state.events.exit?.("AllowedTrailingCallExpressions", state, result, eventData);
|
|
4557
|
+
return result;
|
|
4558
|
+
}
|
|
4559
|
+
}
|
|
4440
4560
|
var CommaDelimiter$0 = $S($E($C(Samedent, IndentedFurther)), $Q(_), Comma);
|
|
4441
4561
|
function CommaDelimiter(state) {
|
|
4442
4562
|
let eventData;
|
|
@@ -4684,9 +4804,9 @@ ${input.slice(result.pos)}
|
|
|
4684
4804
|
var rhs = $2;
|
|
4685
4805
|
return [[], op, [], rhs];
|
|
4686
4806
|
});
|
|
4687
|
-
var BinaryOpRHS$1 = $
|
|
4688
|
-
var rhs =
|
|
4689
|
-
return rhs;
|
|
4807
|
+
var BinaryOpRHS$1 = $TS($S(NewlineBinaryOpAllowed, $S(NotDedentedBinaryOp, $C(_, $S(EOS, __)), RHS)), function($skip, $loc, $0, $1, $2) {
|
|
4808
|
+
var rhs = $2;
|
|
4809
|
+
return [...rhs[0], ...rhs.slice(1)];
|
|
4690
4810
|
});
|
|
4691
4811
|
var BinaryOpRHS$2 = $T($S($N(NewlineBinaryOpAllowed), SingleLineBinaryOpRHS), function(value) {
|
|
4692
4812
|
return value[1];
|
|
@@ -4744,7 +4864,7 @@ ${input.slice(result.pos)}
|
|
|
4744
4864
|
}
|
|
4745
4865
|
var RHS$0 = ParenthesizedAssignment;
|
|
4746
4866
|
var RHS$1 = UnaryExpression;
|
|
4747
|
-
var RHS$2 =
|
|
4867
|
+
var RHS$2 = ExpressionizedStatementWithTrailingCallExpressions;
|
|
4748
4868
|
function RHS(state) {
|
|
4749
4869
|
let eventData;
|
|
4750
4870
|
if (state.events) {
|
|
@@ -4825,10 +4945,7 @@ ${input.slice(result.pos)}
|
|
|
4825
4945
|
}
|
|
4826
4946
|
}
|
|
4827
4947
|
var UnaryPostfix$0 = QuestionMark;
|
|
4828
|
-
var UnaryPostfix$1 = $T($P($S(__, As, Type)), function(value) {
|
|
4829
|
-
return { "ts": true, "children": value };
|
|
4830
|
-
});
|
|
4831
|
-
var UnaryPostfix$2 = $T($P($S(__, Satisfies, Type)), function(value) {
|
|
4948
|
+
var UnaryPostfix$1 = $T($P($S(__, $C(As, Satisfies), Type)), function(value) {
|
|
4832
4949
|
return { "ts": true, "children": value };
|
|
4833
4950
|
});
|
|
4834
4951
|
function UnaryPostfix(state) {
|
|
@@ -4842,12 +4959,12 @@ ${input.slice(result.pos)}
|
|
|
4842
4959
|
}
|
|
4843
4960
|
}
|
|
4844
4961
|
if (state.tokenize) {
|
|
4845
|
-
const result = $TOKEN("UnaryPostfix", state, UnaryPostfix$0(state) || UnaryPostfix$1(state)
|
|
4962
|
+
const result = $TOKEN("UnaryPostfix", state, UnaryPostfix$0(state) || UnaryPostfix$1(state));
|
|
4846
4963
|
if (state.events)
|
|
4847
4964
|
state.events.exit?.("UnaryPostfix", state, result, eventData);
|
|
4848
4965
|
return result;
|
|
4849
4966
|
} else {
|
|
4850
|
-
const result = UnaryPostfix$0(state) || UnaryPostfix$1(state)
|
|
4967
|
+
const result = UnaryPostfix$0(state) || UnaryPostfix$1(state);
|
|
4851
4968
|
if (state.events)
|
|
4852
4969
|
state.events.exit?.("UnaryPostfix", state, result, eventData);
|
|
4853
4970
|
return result;
|
|
@@ -5458,6 +5575,15 @@ ${input.slice(result.pos)}
|
|
|
5458
5575
|
switch (exp.type) {
|
|
5459
5576
|
case "IterationExpression":
|
|
5460
5577
|
return exp;
|
|
5578
|
+
case "ParenthesizedExpression":
|
|
5579
|
+
if (exp.implicit) {
|
|
5580
|
+
return {
|
|
5581
|
+
...exp,
|
|
5582
|
+
children: [open, exp.expression, ws, close],
|
|
5583
|
+
implicit: false
|
|
5584
|
+
};
|
|
5585
|
+
}
|
|
5586
|
+
break;
|
|
5461
5587
|
}
|
|
5462
5588
|
return {
|
|
5463
5589
|
type: "ParenthesizedExpression",
|
|
@@ -7898,17 +8024,29 @@ ${input.slice(result.pos)}
|
|
|
7898
8024
|
return $skip;
|
|
7899
8025
|
let body, ref;
|
|
7900
8026
|
if (!rhs) {
|
|
7901
|
-
ref = {
|
|
8027
|
+
body = ref = {
|
|
7902
8028
|
type: "Ref",
|
|
7903
8029
|
base: "$",
|
|
7904
8030
|
id: "$"
|
|
7905
8031
|
};
|
|
7906
|
-
body = [prefix, ref];
|
|
7907
8032
|
} else {
|
|
7908
|
-
|
|
7909
|
-
|
|
8033
|
+
let exp = rhs;
|
|
8034
|
+
while (!exp.ref && exp.expression) {
|
|
8035
|
+
exp = exp.expression;
|
|
8036
|
+
}
|
|
8037
|
+
({ ref } = exp);
|
|
8038
|
+
if (!ref) {
|
|
8039
|
+
throw new Error("Could not find ref in ampersand shorthand block");
|
|
8040
|
+
}
|
|
8041
|
+
body = rhs;
|
|
8042
|
+
}
|
|
8043
|
+
if (prefix) {
|
|
8044
|
+
body = {
|
|
8045
|
+
type: "UnaryExpression",
|
|
8046
|
+
children: [prefix, body, void 0]
|
|
8047
|
+
};
|
|
7910
8048
|
}
|
|
7911
|
-
const children = [ref, " => ",
|
|
8049
|
+
const children = [ref, " => ", body];
|
|
7912
8050
|
if (hasAwait(body)) {
|
|
7913
8051
|
children.unshift("async ");
|
|
7914
8052
|
}
|
|
@@ -8068,7 +8206,7 @@ ${input.slice(result.pos)}
|
|
|
8068
8206
|
var callExpRest = $1;
|
|
8069
8207
|
var unaryPostfix = $2;
|
|
8070
8208
|
var binopRHS = $3;
|
|
8071
|
-
if (!callExpRest && !binopRHS)
|
|
8209
|
+
if (!callExpRest && !binopRHS && !unaryPostfix)
|
|
8072
8210
|
return $skip;
|
|
8073
8211
|
const ref = {
|
|
8074
8212
|
type: "Ref",
|
|
@@ -10572,6 +10710,42 @@ ${input.slice(result.pos)}
|
|
|
10572
10710
|
return result;
|
|
10573
10711
|
}
|
|
10574
10712
|
}
|
|
10713
|
+
var NotDedentedBinaryOp$0 = $TS($S($E(IndentedFurther), $E(_), BinaryOp), function($skip, $loc, $0, $1, $2, $3) {
|
|
10714
|
+
const ws = [];
|
|
10715
|
+
if ($1)
|
|
10716
|
+
ws.push(...$1);
|
|
10717
|
+
if ($2)
|
|
10718
|
+
ws.push(...$2);
|
|
10719
|
+
return [ws, $3];
|
|
10720
|
+
});
|
|
10721
|
+
var NotDedentedBinaryOp$1 = $TS($S(Samedent, $E(_), $N(Identifier), BinaryOp), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
10722
|
+
const ws = [...$1];
|
|
10723
|
+
if ($2)
|
|
10724
|
+
ws.push(...$2);
|
|
10725
|
+
return [ws, $4];
|
|
10726
|
+
});
|
|
10727
|
+
function NotDedentedBinaryOp(state) {
|
|
10728
|
+
let eventData;
|
|
10729
|
+
if (state.events) {
|
|
10730
|
+
const result = state.events.enter?.("NotDedentedBinaryOp", state);
|
|
10731
|
+
if (result) {
|
|
10732
|
+
if (result.cache)
|
|
10733
|
+
return result.cache;
|
|
10734
|
+
eventData = result.data;
|
|
10735
|
+
}
|
|
10736
|
+
}
|
|
10737
|
+
if (state.tokenize) {
|
|
10738
|
+
const result = $TOKEN("NotDedentedBinaryOp", state, NotDedentedBinaryOp$0(state) || NotDedentedBinaryOp$1(state));
|
|
10739
|
+
if (state.events)
|
|
10740
|
+
state.events.exit?.("NotDedentedBinaryOp", state, result, eventData);
|
|
10741
|
+
return result;
|
|
10742
|
+
} else {
|
|
10743
|
+
const result = NotDedentedBinaryOp$0(state) || NotDedentedBinaryOp$1(state);
|
|
10744
|
+
if (state.events)
|
|
10745
|
+
state.events.exit?.("NotDedentedBinaryOp", state, result, eventData);
|
|
10746
|
+
return result;
|
|
10747
|
+
}
|
|
10748
|
+
}
|
|
10575
10749
|
var BinaryOp$0 = $TS($S(BinaryOpSymbol), function($skip, $loc, $0, $1) {
|
|
10576
10750
|
if (typeof $1 === "string")
|
|
10577
10751
|
return { $loc, token: $1 };
|
|
@@ -10901,7 +11075,7 @@ ${input.slice(result.pos)}
|
|
|
10901
11075
|
return result;
|
|
10902
11076
|
}
|
|
10903
11077
|
}
|
|
10904
|
-
var UnaryOp$0 = $TR($EXPECT($R9, fail, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]
|
|
11078
|
+
var UnaryOp$0 = $TR($EXPECT($R9, fail, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
|
|
10905
11079
|
return { $loc, token: $0 };
|
|
10906
11080
|
});
|
|
10907
11081
|
var UnaryOp$1 = AwaitOp;
|
|
@@ -11390,6 +11564,8 @@ ${input.slice(result.pos)}
|
|
|
11390
11564
|
var kind = $1;
|
|
11391
11565
|
var condition = $2;
|
|
11392
11566
|
kind = { ...kind, token: "if" };
|
|
11567
|
+
kind.token += getTrimmingSpace(condition);
|
|
11568
|
+
condition = insertTrimmingSpace(condition, "");
|
|
11393
11569
|
return {
|
|
11394
11570
|
type: "IfStatement",
|
|
11395
11571
|
children: [kind, ["(!", condition, ")"]],
|
|
@@ -21159,27 +21335,54 @@ ${input.slice(result.pos)}
|
|
|
21159
21335
|
return result;
|
|
21160
21336
|
}
|
|
21161
21337
|
}
|
|
21162
|
-
var ReturnTypeSuffix$0 = $TS($S($E(_), Colon,
|
|
21163
|
-
var
|
|
21164
|
-
|
|
21338
|
+
var ReturnTypeSuffix$0 = $TS($S($E(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3) {
|
|
21339
|
+
var t = $3;
|
|
21340
|
+
return { ...t, children: [$1, $2, ...t.children] };
|
|
21341
|
+
});
|
|
21342
|
+
function ReturnTypeSuffix(state) {
|
|
21343
|
+
let eventData;
|
|
21344
|
+
if (state.events) {
|
|
21345
|
+
const result = state.events.enter?.("ReturnTypeSuffix", state);
|
|
21346
|
+
if (result) {
|
|
21347
|
+
if (result.cache)
|
|
21348
|
+
return result.cache;
|
|
21349
|
+
eventData = result.data;
|
|
21350
|
+
}
|
|
21351
|
+
}
|
|
21352
|
+
if (state.tokenize) {
|
|
21353
|
+
const result = $TOKEN("ReturnTypeSuffix", state, ReturnTypeSuffix$0(state));
|
|
21354
|
+
if (state.events)
|
|
21355
|
+
state.events.exit?.("ReturnTypeSuffix", state, result, eventData);
|
|
21356
|
+
return result;
|
|
21357
|
+
} else {
|
|
21358
|
+
const result = ReturnTypeSuffix$0(state);
|
|
21359
|
+
if (state.events)
|
|
21360
|
+
state.events.exit?.("ReturnTypeSuffix", state, result, eventData);
|
|
21361
|
+
return result;
|
|
21362
|
+
}
|
|
21363
|
+
}
|
|
21364
|
+
var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L202, fail, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
|
|
21365
|
+
var asserts = $1;
|
|
21366
|
+
var t = $2;
|
|
21165
21367
|
if (asserts) {
|
|
21166
21368
|
t = {
|
|
21167
21369
|
type: "AssertsType",
|
|
21168
21370
|
t,
|
|
21169
|
-
children: [asserts[0], asserts[1], t]
|
|
21371
|
+
children: [asserts[0], asserts[1], t],
|
|
21372
|
+
ts: true
|
|
21170
21373
|
};
|
|
21171
21374
|
}
|
|
21172
21375
|
return {
|
|
21173
21376
|
type: "ReturnTypeAnnotation",
|
|
21174
|
-
children: [
|
|
21377
|
+
children: [t],
|
|
21175
21378
|
t,
|
|
21176
21379
|
ts: true
|
|
21177
21380
|
};
|
|
21178
21381
|
});
|
|
21179
|
-
function
|
|
21382
|
+
function ReturnType(state) {
|
|
21180
21383
|
let eventData;
|
|
21181
21384
|
if (state.events) {
|
|
21182
|
-
const result = state.events.enter?.("
|
|
21385
|
+
const result = state.events.enter?.("ReturnType", state);
|
|
21183
21386
|
if (result) {
|
|
21184
21387
|
if (result.cache)
|
|
21185
21388
|
return result.cache;
|
|
@@ -21187,14 +21390,14 @@ ${input.slice(result.pos)}
|
|
|
21187
21390
|
}
|
|
21188
21391
|
}
|
|
21189
21392
|
if (state.tokenize) {
|
|
21190
|
-
const result = $TOKEN("
|
|
21393
|
+
const result = $TOKEN("ReturnType", state, ReturnType$0(state));
|
|
21191
21394
|
if (state.events)
|
|
21192
|
-
state.events.exit?.("
|
|
21395
|
+
state.events.exit?.("ReturnType", state, result, eventData);
|
|
21193
21396
|
return result;
|
|
21194
21397
|
} else {
|
|
21195
|
-
const result =
|
|
21398
|
+
const result = ReturnType$0(state);
|
|
21196
21399
|
if (state.events)
|
|
21197
|
-
state.events.exit?.("
|
|
21400
|
+
state.events.exit?.("ReturnType", state, result, eventData);
|
|
21198
21401
|
return result;
|
|
21199
21402
|
}
|
|
21200
21403
|
}
|
|
@@ -21851,7 +22054,7 @@ ${input.slice(result.pos)}
|
|
|
21851
22054
|
return result;
|
|
21852
22055
|
}
|
|
21853
22056
|
}
|
|
21854
|
-
var FunctionType$0 = $TS($S($E($S(New, $E(_))), Parameters, __, TypeArrowFunction, $E(
|
|
22057
|
+
var FunctionType$0 = $TS($S($E($S($E($S(Abstract, $E(_))), New, $E(_))), Parameters, __, TypeArrowFunction, $E(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
|
|
21855
22058
|
var type = $5;
|
|
21856
22059
|
if (type) {
|
|
21857
22060
|
return $0;
|