@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/cli/cli.js
CHANGED
|
@@ -92,7 +92,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
92
92
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
93
93
|
};
|
|
94
94
|
|
|
95
|
-
var version = "2.1.
|
|
95
|
+
var version = "2.1.12";
|
|
96
96
|
|
|
97
97
|
function getCodeMarker(sourceCodeInfo) {
|
|
98
98
|
if (!sourceCodeInfo.position || !sourceCodeInfo.code)
|
|
@@ -12899,6 +12899,8 @@ var binaryOperators = [
|
|
|
12899
12899
|
'|>', // pipe
|
|
12900
12900
|
];
|
|
12901
12901
|
var otherOperators = [
|
|
12902
|
+
'?', // conditional operator
|
|
12903
|
+
':', // conditional operator
|
|
12902
12904
|
'->', // lambda
|
|
12903
12905
|
'...', // rest
|
|
12904
12906
|
'.', // property accessor
|
|
@@ -12908,17 +12910,12 @@ var otherOperators = [
|
|
|
12908
12910
|
];
|
|
12909
12911
|
var symbolicOperators = __spreadArray(__spreadArray([], __read(binaryOperators), false), __read(otherOperators), false);
|
|
12910
12912
|
var nonFunctionOperators = [
|
|
12911
|
-
'??',
|
|
12912
|
-
'&&',
|
|
12913
|
-
'||',
|
|
12914
12913
|
'comment',
|
|
12915
12914
|
'cond',
|
|
12916
12915
|
'def',
|
|
12917
12916
|
'defined?',
|
|
12918
|
-
// 'defn',
|
|
12919
12917
|
'do',
|
|
12920
12918
|
'doseq',
|
|
12921
|
-
// 'fn',
|
|
12922
12919
|
'if',
|
|
12923
12920
|
'let',
|
|
12924
12921
|
'loop',
|
|
@@ -13496,8 +13493,9 @@ function untokenize(tokenStream) {
|
|
|
13496
13493
|
}, '');
|
|
13497
13494
|
}
|
|
13498
13495
|
|
|
13499
|
-
var exponentiationPrecedence =
|
|
13500
|
-
var binaryFunctionalOperatorPrecedence =
|
|
13496
|
+
var exponentiationPrecedence = 12;
|
|
13497
|
+
var binaryFunctionalOperatorPrecedence = 3;
|
|
13498
|
+
var conditionalOperatorPrecedence = 1;
|
|
13501
13499
|
var placeholderRegexp = /^\$([1-9]\d?)?$/;
|
|
13502
13500
|
function withSourceCodeInfo(node, sourceCodeInfo) {
|
|
13503
13501
|
if (sourceCodeInfo) {
|
|
@@ -13512,38 +13510,39 @@ function getPrecedence(operatorSign, sourceCodeInfo) {
|
|
|
13512
13510
|
case '*': // multiplication
|
|
13513
13511
|
case '/': // division
|
|
13514
13512
|
case '%': // remainder
|
|
13515
|
-
return
|
|
13513
|
+
return 11;
|
|
13516
13514
|
case '+': // addition
|
|
13517
13515
|
case '-': // subtraction
|
|
13518
|
-
return
|
|
13516
|
+
return 10;
|
|
13519
13517
|
case '<<': // left shift
|
|
13520
13518
|
case '>>': // signed right shift
|
|
13521
13519
|
case '>>>': // unsigned right shift
|
|
13522
|
-
return
|
|
13520
|
+
return 9;
|
|
13523
13521
|
case '++': // string concatenation
|
|
13524
|
-
return
|
|
13522
|
+
return 8;
|
|
13525
13523
|
case '<': // less than
|
|
13526
13524
|
case '<=': // less than or equal
|
|
13527
13525
|
case '≤': // less than or equal
|
|
13528
13526
|
case '>': // greater than
|
|
13529
13527
|
case '>=': // greater than or equal
|
|
13530
13528
|
case '≥': // greater than or equal
|
|
13531
|
-
return
|
|
13529
|
+
return 7;
|
|
13532
13530
|
case '=': // equal
|
|
13533
13531
|
case '!=': // not equal
|
|
13534
13532
|
case '≠': // not equal
|
|
13535
|
-
return
|
|
13533
|
+
return 6;
|
|
13536
13534
|
case '&': // bitwise AND
|
|
13537
13535
|
case 'xor': // bitwise XOR
|
|
13538
13536
|
case '|': // bitwise OR
|
|
13539
|
-
return
|
|
13537
|
+
return 5;
|
|
13540
13538
|
case '&&': // logical AND
|
|
13541
13539
|
case '||': // logical OR
|
|
13542
13540
|
case '??': // nullish coalescing
|
|
13543
|
-
return
|
|
13541
|
+
return 4;
|
|
13542
|
+
// leave room for binaryFunctionalOperatorPrecedence = 3
|
|
13544
13543
|
case '|>': // pipe
|
|
13545
|
-
return
|
|
13546
|
-
// leave room for
|
|
13544
|
+
return 2;
|
|
13545
|
+
// leave room for conditionalOperatorPrecedence = 1
|
|
13547
13546
|
/* v8 ignore next 2 */
|
|
13548
13547
|
default:
|
|
13549
13548
|
throw new LitsError("Unknown binary operator: ".concat(operatorSign), sourceCodeInfo);
|
|
@@ -13591,13 +13590,15 @@ function fromBinaryOperatorToNode(operator, symbolNode, left, right, sourceCodeI
|
|
|
13591
13590
|
case '||':
|
|
13592
13591
|
case '??':
|
|
13593
13592
|
return withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes[operatorName], [left, right]]], sourceCodeInfo);
|
|
13594
|
-
/* v8 ignore next
|
|
13593
|
+
/* v8 ignore next 11 */
|
|
13595
13594
|
case '.':
|
|
13596
13595
|
case ';':
|
|
13597
13596
|
case ':=':
|
|
13598
13597
|
case ',':
|
|
13599
13598
|
case '->':
|
|
13600
13599
|
case '...':
|
|
13600
|
+
case '?':
|
|
13601
|
+
case ':':
|
|
13601
13602
|
throw new LitsError("Unknown binary operator: ".concat(operatorName), sourceCodeInfo);
|
|
13602
13603
|
default:
|
|
13603
13604
|
throw new LitsError("Unknown binary operator: ".concat(operatorName), sourceCodeInfo);
|
|
@@ -13713,6 +13714,19 @@ var Parser = /** @class */ (function () {
|
|
|
13713
13714
|
}
|
|
13714
13715
|
left = createNamedNormalExpressionNode(operatorSymbol, [left, right], operator[2]);
|
|
13715
13716
|
}
|
|
13717
|
+
else if ((operator === null || operator === void 0 ? void 0 : operator[1]) === '?') {
|
|
13718
|
+
if (conditionalOperatorPrecedence <= precedence) {
|
|
13719
|
+
break;
|
|
13720
|
+
}
|
|
13721
|
+
this.advance();
|
|
13722
|
+
var trueNode = this.parseExpression();
|
|
13723
|
+
if (!isOperatorToken(this.peek(), ':')) {
|
|
13724
|
+
throw new LitsError('Expected :', this.peekSourceCodeInfo());
|
|
13725
|
+
}
|
|
13726
|
+
this.advance();
|
|
13727
|
+
var falseNode = this.parseExpression();
|
|
13728
|
+
left = withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes.if, [left, trueNode, falseNode]]], left[2]);
|
|
13729
|
+
}
|
|
13716
13730
|
else {
|
|
13717
13731
|
break;
|
|
13718
13732
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare const binaryOperators: readonly ["^", "*", "/", "%", "+", "-", "<<", ">>", ">>>", "++", "<", "<=", "≤", ">", ">=", "≥", "=", "!=", "≠", "&", "xor", "|", "&&", "||", "??", "|>"];
|
|
2
|
-
declare const symbolicOperators: readonly ["^", "*", "/", "%", "+", "-", "<<", ">>", ">>>", "++", "<", "<=", "≤", ">", ">=", "≥", "=", "!=", "≠", "&", "xor", "|", "&&", "||", "??", "|>", "->", "...", ".", ",", ":=", ";"];
|
|
2
|
+
declare const symbolicOperators: readonly ["^", "*", "/", "%", "+", "-", "<<", ">>", ">>>", "++", "<", "<=", "≤", ">", ">=", "≥", "=", "!=", "≠", "&", "xor", "|", "&&", "||", "??", "|>", "?", ":", "->", "...", ".", ",", ":=", ";"];
|
|
3
3
|
export declare function isFunctionOperator(operator: string): boolean;
|
|
4
4
|
export type SymbolicBinaryOperator = typeof binaryOperators[number];
|
|
5
5
|
export type SymbolicOperator = typeof symbolicOperators[number];
|
package/dist/index.esm.js
CHANGED
|
@@ -12936,6 +12936,8 @@ var binaryOperators = [
|
|
|
12936
12936
|
'|>', // pipe
|
|
12937
12937
|
];
|
|
12938
12938
|
var otherOperators = [
|
|
12939
|
+
'?', // conditional operator
|
|
12940
|
+
':', // conditional operator
|
|
12939
12941
|
'->', // lambda
|
|
12940
12942
|
'...', // rest
|
|
12941
12943
|
'.', // property accessor
|
|
@@ -12945,17 +12947,12 @@ var otherOperators = [
|
|
|
12945
12947
|
];
|
|
12946
12948
|
var symbolicOperators = __spreadArray(__spreadArray([], __read(binaryOperators), false), __read(otherOperators), false);
|
|
12947
12949
|
var nonFunctionOperators = [
|
|
12948
|
-
'??',
|
|
12949
|
-
'&&',
|
|
12950
|
-
'||',
|
|
12951
12950
|
'comment',
|
|
12952
12951
|
'cond',
|
|
12953
12952
|
'def',
|
|
12954
12953
|
'defined?',
|
|
12955
|
-
// 'defn',
|
|
12956
12954
|
'do',
|
|
12957
12955
|
'doseq',
|
|
12958
|
-
// 'fn',
|
|
12959
12956
|
'if',
|
|
12960
12957
|
'let',
|
|
12961
12958
|
'loop',
|
|
@@ -13533,8 +13530,9 @@ function untokenize(tokenStream) {
|
|
|
13533
13530
|
}, '');
|
|
13534
13531
|
}
|
|
13535
13532
|
|
|
13536
|
-
var exponentiationPrecedence =
|
|
13537
|
-
var binaryFunctionalOperatorPrecedence =
|
|
13533
|
+
var exponentiationPrecedence = 12;
|
|
13534
|
+
var binaryFunctionalOperatorPrecedence = 3;
|
|
13535
|
+
var conditionalOperatorPrecedence = 1;
|
|
13538
13536
|
var placeholderRegexp = /^\$([1-9]\d?)?$/;
|
|
13539
13537
|
function withSourceCodeInfo(node, sourceCodeInfo) {
|
|
13540
13538
|
if (sourceCodeInfo) {
|
|
@@ -13549,38 +13547,39 @@ function getPrecedence(operatorSign, sourceCodeInfo) {
|
|
|
13549
13547
|
case '*': // multiplication
|
|
13550
13548
|
case '/': // division
|
|
13551
13549
|
case '%': // remainder
|
|
13552
|
-
return
|
|
13550
|
+
return 11;
|
|
13553
13551
|
case '+': // addition
|
|
13554
13552
|
case '-': // subtraction
|
|
13555
|
-
return
|
|
13553
|
+
return 10;
|
|
13556
13554
|
case '<<': // left shift
|
|
13557
13555
|
case '>>': // signed right shift
|
|
13558
13556
|
case '>>>': // unsigned right shift
|
|
13559
|
-
return
|
|
13557
|
+
return 9;
|
|
13560
13558
|
case '++': // string concatenation
|
|
13561
|
-
return
|
|
13559
|
+
return 8;
|
|
13562
13560
|
case '<': // less than
|
|
13563
13561
|
case '<=': // less than or equal
|
|
13564
13562
|
case '≤': // less than or equal
|
|
13565
13563
|
case '>': // greater than
|
|
13566
13564
|
case '>=': // greater than or equal
|
|
13567
13565
|
case '≥': // greater than or equal
|
|
13568
|
-
return
|
|
13566
|
+
return 7;
|
|
13569
13567
|
case '=': // equal
|
|
13570
13568
|
case '!=': // not equal
|
|
13571
13569
|
case '≠': // not equal
|
|
13572
|
-
return
|
|
13570
|
+
return 6;
|
|
13573
13571
|
case '&': // bitwise AND
|
|
13574
13572
|
case 'xor': // bitwise XOR
|
|
13575
13573
|
case '|': // bitwise OR
|
|
13576
|
-
return
|
|
13574
|
+
return 5;
|
|
13577
13575
|
case '&&': // logical AND
|
|
13578
13576
|
case '||': // logical OR
|
|
13579
13577
|
case '??': // nullish coalescing
|
|
13580
|
-
return
|
|
13578
|
+
return 4;
|
|
13579
|
+
// leave room for binaryFunctionalOperatorPrecedence = 3
|
|
13581
13580
|
case '|>': // pipe
|
|
13582
|
-
return
|
|
13583
|
-
// leave room for
|
|
13581
|
+
return 2;
|
|
13582
|
+
// leave room for conditionalOperatorPrecedence = 1
|
|
13584
13583
|
/* v8 ignore next 2 */
|
|
13585
13584
|
default:
|
|
13586
13585
|
throw new LitsError("Unknown binary operator: ".concat(operatorSign), sourceCodeInfo);
|
|
@@ -13628,13 +13627,15 @@ function fromBinaryOperatorToNode(operator, symbolNode, left, right, sourceCodeI
|
|
|
13628
13627
|
case '||':
|
|
13629
13628
|
case '??':
|
|
13630
13629
|
return withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes[operatorName], [left, right]]], sourceCodeInfo);
|
|
13631
|
-
/* v8 ignore next
|
|
13630
|
+
/* v8 ignore next 11 */
|
|
13632
13631
|
case '.':
|
|
13633
13632
|
case ';':
|
|
13634
13633
|
case ':=':
|
|
13635
13634
|
case ',':
|
|
13636
13635
|
case '->':
|
|
13637
13636
|
case '...':
|
|
13637
|
+
case '?':
|
|
13638
|
+
case ':':
|
|
13638
13639
|
throw new LitsError("Unknown binary operator: ".concat(operatorName), sourceCodeInfo);
|
|
13639
13640
|
default:
|
|
13640
13641
|
throw new LitsError("Unknown binary operator: ".concat(operatorName), sourceCodeInfo);
|
|
@@ -13750,6 +13751,19 @@ var Parser = /** @class */ (function () {
|
|
|
13750
13751
|
}
|
|
13751
13752
|
left = createNamedNormalExpressionNode(operatorSymbol, [left, right], operator[2]);
|
|
13752
13753
|
}
|
|
13754
|
+
else if ((operator === null || operator === void 0 ? void 0 : operator[1]) === '?') {
|
|
13755
|
+
if (conditionalOperatorPrecedence <= precedence) {
|
|
13756
|
+
break;
|
|
13757
|
+
}
|
|
13758
|
+
this.advance();
|
|
13759
|
+
var trueNode = this.parseExpression();
|
|
13760
|
+
if (!isOperatorToken(this.peek(), ':')) {
|
|
13761
|
+
throw new LitsError('Expected :', this.peekSourceCodeInfo());
|
|
13762
|
+
}
|
|
13763
|
+
this.advance();
|
|
13764
|
+
var falseNode = this.parseExpression();
|
|
13765
|
+
left = withSourceCodeInfo([NodeTypes.SpecialExpression, [specialExpressionTypes.if, [left, trueNode, falseNode]]], left[2]);
|
|
13766
|
+
}
|
|
13753
13767
|
else {
|
|
13754
13768
|
break;
|
|
13755
13769
|
}
|