@mojir/lits 2.1.11 → 2.1.12
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/cli/cli.js +33 -19
- package/dist/cli/src/tokenizer/operators.d.ts +1 -1
- package/dist/index.esm.js +32 -18
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +32 -18
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +32 -18
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/tokenizer/operators.d.ts +1 -1
- package/dist/testFramework.esm.js +32 -18
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +32 -18
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
package/dist/testFramework.js
CHANGED
|
@@ -12879,6 +12879,8 @@ var binaryOperators = [
|
|
|
12879
12879
|
'|>', // pipe
|
|
12880
12880
|
];
|
|
12881
12881
|
var otherOperators = [
|
|
12882
|
+
'?', // conditional operator
|
|
12883
|
+
':', // conditional operator
|
|
12882
12884
|
'->', // lambda
|
|
12883
12885
|
'...', // rest
|
|
12884
12886
|
'.', // property accessor
|
|
@@ -12888,17 +12890,12 @@ var otherOperators = [
|
|
|
12888
12890
|
];
|
|
12889
12891
|
var symbolicOperators = __spreadArray(__spreadArray([], __read(binaryOperators), false), __read(otherOperators), false);
|
|
12890
12892
|
var nonFunctionOperators = [
|
|
12891
|
-
'??',
|
|
12892
|
-
'&&',
|
|
12893
|
-
'||',
|
|
12894
12893
|
'comment',
|
|
12895
12894
|
'cond',
|
|
12896
12895
|
'def',
|
|
12897
12896
|
'defined?',
|
|
12898
|
-
// 'defn',
|
|
12899
12897
|
'do',
|
|
12900
12898
|
'doseq',
|
|
12901
|
-
// 'fn',
|
|
12902
12899
|
'if',
|
|
12903
12900
|
'let',
|
|
12904
12901
|
'loop',
|
|
@@ -13476,8 +13473,9 @@ function untokenize(tokenStream) {
|
|
|
13476
13473
|
}, '');
|
|
13477
13474
|
}
|
|
13478
13475
|
|
|
13479
|
-
var exponentiationPrecedence =
|
|
13480
|
-
var binaryFunctionalOperatorPrecedence =
|
|
13476
|
+
var exponentiationPrecedence = 12;
|
|
13477
|
+
var binaryFunctionalOperatorPrecedence = 3;
|
|
13478
|
+
var conditionalOperatorPrecedence = 1;
|
|
13481
13479
|
var placeholderRegexp = /^\$([1-9]\d?)?$/;
|
|
13482
13480
|
function withSourceCodeInfo(node, sourceCodeInfo) {
|
|
13483
13481
|
if (sourceCodeInfo) {
|
|
@@ -13492,38 +13490,39 @@ function getPrecedence(operatorSign, sourceCodeInfo) {
|
|
|
13492
13490
|
case '*': // multiplication
|
|
13493
13491
|
case '/': // division
|
|
13494
13492
|
case '%': // remainder
|
|
13495
|
-
return
|
|
13493
|
+
return 11;
|
|
13496
13494
|
case '+': // addition
|
|
13497
13495
|
case '-': // subtraction
|
|
13498
|
-
return
|
|
13496
|
+
return 10;
|
|
13499
13497
|
case '<<': // left shift
|
|
13500
13498
|
case '>>': // signed right shift
|
|
13501
13499
|
case '>>>': // unsigned right shift
|
|
13502
|
-
return
|
|
13500
|
+
return 9;
|
|
13503
13501
|
case '++': // string concatenation
|
|
13504
|
-
return
|
|
13502
|
+
return 8;
|
|
13505
13503
|
case '<': // less than
|
|
13506
13504
|
case '<=': // less than or equal
|
|
13507
13505
|
case '≤': // less than or equal
|
|
13508
13506
|
case '>': // greater than
|
|
13509
13507
|
case '>=': // greater than or equal
|
|
13510
13508
|
case '≥': // greater than or equal
|
|
13511
|
-
return
|
|
13509
|
+
return 7;
|
|
13512
13510
|
case '=': // equal
|
|
13513
13511
|
case '!=': // not equal
|
|
13514
13512
|
case '≠': // not equal
|
|
13515
|
-
return
|
|
13513
|
+
return 6;
|
|
13516
13514
|
case '&': // bitwise AND
|
|
13517
13515
|
case 'xor': // bitwise XOR
|
|
13518
13516
|
case '|': // bitwise OR
|
|
13519
|
-
return
|
|
13517
|
+
return 5;
|
|
13520
13518
|
case '&&': // logical AND
|
|
13521
13519
|
case '||': // logical OR
|
|
13522
13520
|
case '??': // nullish coalescing
|
|
13523
|
-
return
|
|
13521
|
+
return 4;
|
|
13522
|
+
// leave room for binaryFunctionalOperatorPrecedence = 3
|
|
13524
13523
|
case '|>': // pipe
|
|
13525
|
-
return
|
|
13526
|
-
// leave room for
|
|
13524
|
+
return 2;
|
|
13525
|
+
// leave room for conditionalOperatorPrecedence = 1
|
|
13527
13526
|
/* v8 ignore next 2 */
|
|
13528
13527
|
default:
|
|
13529
13528
|
throw new LitsError("Unknown binary operator: ".concat(operatorSign), sourceCodeInfo);
|
|
@@ -13571,13 +13570,15 @@ function fromBinaryOperatorToNode(operator, symbolNode, left, right, sourceCodeI
|
|
|
13571
13570
|
case '||':
|
|
13572
13571
|
case '??':
|
|
13573
13572
|
return withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes[operatorName], [left, right]]], sourceCodeInfo);
|
|
13574
|
-
/* v8 ignore next
|
|
13573
|
+
/* v8 ignore next 11 */
|
|
13575
13574
|
case '.':
|
|
13576
13575
|
case ';':
|
|
13577
13576
|
case ':=':
|
|
13578
13577
|
case ',':
|
|
13579
13578
|
case '->':
|
|
13580
13579
|
case '...':
|
|
13580
|
+
case '?':
|
|
13581
|
+
case ':':
|
|
13581
13582
|
throw new LitsError("Unknown binary operator: ".concat(operatorName), sourceCodeInfo);
|
|
13582
13583
|
default:
|
|
13583
13584
|
throw new LitsError("Unknown binary operator: ".concat(operatorName), sourceCodeInfo);
|
|
@@ -13693,6 +13694,19 @@ var Parser = /** @class */ (function () {
|
|
|
13693
13694
|
}
|
|
13694
13695
|
left = createNamedNormalExpressionNode(operatorSymbol, [left, right], operator[2]);
|
|
13695
13696
|
}
|
|
13697
|
+
else if ((operator === null || operator === void 0 ? void 0 : operator[1]) === '?') {
|
|
13698
|
+
if (conditionalOperatorPrecedence <= precedence) {
|
|
13699
|
+
break;
|
|
13700
|
+
}
|
|
13701
|
+
this.advance();
|
|
13702
|
+
var trueNode = this.parseExpression();
|
|
13703
|
+
if (!isOperatorToken(this.peek(), ':')) {
|
|
13704
|
+
throw new LitsError('Expected :', this.peekSourceCodeInfo());
|
|
13705
|
+
}
|
|
13706
|
+
this.advance();
|
|
13707
|
+
var falseNode = this.parseExpression();
|
|
13708
|
+
left = withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes.if, [left, trueNode, falseNode]]], left[2]);
|
|
13709
|
+
}
|
|
13696
13710
|
else {
|
|
13697
13711
|
break;
|
|
13698
13712
|
}
|