@mojir/lits 2.0.18 → 2.0.20
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 +360 -455
- package/dist/cli/src/builtin/interface.d.ts +9 -5
- package/dist/cli/src/parser/index.d.ts +1 -2
- package/dist/cli/src/parser/interface.d.ts +0 -1
- package/dist/cli/src/tokenizer/algebraic/algebraicTokenizers.d.ts +1 -1
- package/dist/cli/src/tokenizer/algebraic/algebraicTokens.d.ts +2 -2
- package/dist/cli/src/tokenizer/common/commonTokenizers.d.ts +2 -2
- package/dist/cli/src/tokenizer/common/commonTokens.d.ts +2 -14
- package/dist/cli/src/tokenizer/polish/polishTokenizers.d.ts +1 -1
- package/dist/cli/src/tokenizer/polish/polishTokens.d.ts +2 -2
- package/dist/cli/src/tokenizer/tokens.d.ts +2 -2
- package/dist/cli/src/typeGuards/index.d.ts +1 -7
- package/dist/index.esm.js +359 -454
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +359 -454
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +359 -454
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/builtin/interface.d.ts +9 -5
- package/dist/src/parser/index.d.ts +1 -2
- package/dist/src/parser/interface.d.ts +0 -1
- package/dist/src/tokenizer/algebraic/algebraicTokenizers.d.ts +1 -1
- package/dist/src/tokenizer/algebraic/algebraicTokens.d.ts +2 -2
- package/dist/src/tokenizer/common/commonTokenizers.d.ts +2 -2
- package/dist/src/tokenizer/common/commonTokens.d.ts +2 -14
- package/dist/src/tokenizer/polish/polishTokenizers.d.ts +1 -1
- package/dist/src/tokenizer/polish/polishTokens.d.ts +2 -2
- package/dist/src/tokenizer/tokens.d.ts +2 -2
- package/dist/src/typeGuards/index.d.ts +1 -7
- package/dist/testFramework.esm.js +469 -564
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +469 -564
- 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.0.
|
|
95
|
+
var version = "2.0.20";
|
|
96
96
|
|
|
97
97
|
var AstNodeType;
|
|
98
98
|
(function (AstNodeType) {
|
|
@@ -282,9 +282,6 @@ var commonSimpleTokenTypes = [
|
|
|
282
282
|
'RBrace',
|
|
283
283
|
'RBracket',
|
|
284
284
|
'RParen',
|
|
285
|
-
'AlgNotation',
|
|
286
|
-
'PolNotation',
|
|
287
|
-
'EndNotation',
|
|
288
285
|
];
|
|
289
286
|
var commomValueTokenTypes = [
|
|
290
287
|
'String',
|
|
@@ -374,20 +371,6 @@ function asRegexpShorthandToken(token) {
|
|
|
374
371
|
assertRegexpShorthandToken(token);
|
|
375
372
|
return token;
|
|
376
373
|
}
|
|
377
|
-
function isAlgebraicNotationToken(token) {
|
|
378
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'AlgNotation';
|
|
379
|
-
}
|
|
380
|
-
function isPolishNotationToken(token) {
|
|
381
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'PolNotation';
|
|
382
|
-
}
|
|
383
|
-
function isEndNotationToken(token) {
|
|
384
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'EndNotation';
|
|
385
|
-
}
|
|
386
|
-
function assertEndNotationToken(token) {
|
|
387
|
-
if (!isEndNotationToken(token)) {
|
|
388
|
-
throwUnexpectedToken('EndNotation', undefined, token);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
374
|
|
|
392
375
|
var algebraicSimpleTokenTypes = __spreadArray([], __read(commonSimpleTokenTypes), false);
|
|
393
376
|
var algebraicOnlyValueTokenTypes = [
|
|
@@ -847,20 +830,6 @@ function withoutCommentNodes(astNodes) {
|
|
|
847
830
|
return astNodes.filter(function (n) { return n.t !== AstNodeType.Comment; });
|
|
848
831
|
}
|
|
849
832
|
|
|
850
|
-
function assertEvenNumberOfParams(node) {
|
|
851
|
-
var _a;
|
|
852
|
-
var length = withoutCommentNodes(node.p).length;
|
|
853
|
-
if (length % 2 !== 0) {
|
|
854
|
-
throw new LitsError("Wrong number of arguments, expected an even number, got ".concat(valueToString(length), "."), (_a = getTokenDebugData(node.token)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
function assertOddNumberOfParams(node) {
|
|
858
|
-
var _a;
|
|
859
|
-
var length = withoutCommentNodes(node.p).length;
|
|
860
|
-
if (length % 2 !== 1) {
|
|
861
|
-
throw new LitsError("Wrong number of arguments, expected an odd number, got ".concat(valueToString(length), "."), (_a = getTokenDebugData(node.token)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
833
|
function assertNumberOfParams(count, node) {
|
|
865
834
|
var _a, _b;
|
|
866
835
|
assertCount({
|
|
@@ -892,9 +861,17 @@ function assertCount(_a) {
|
|
|
892
861
|
}
|
|
893
862
|
}
|
|
894
863
|
else {
|
|
895
|
-
var min = count.min, max = count.max;
|
|
896
|
-
if (
|
|
897
|
-
|
|
864
|
+
var min = count.min, max = count.max, even = count.even, odd = count.odd;
|
|
865
|
+
if (even) {
|
|
866
|
+
if (length % 2 !== 0) {
|
|
867
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an even number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
if (odd) {
|
|
871
|
+
if (length % 2 !== 1) {
|
|
872
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an odd number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
873
|
+
}
|
|
874
|
+
}
|
|
898
875
|
if (typeof min === 'number' && length < min) {
|
|
899
876
|
throw new LitsError("Wrong number of arguments to \"".concat(name, "\", expected at least ").concat(min, ", got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
900
877
|
}
|
|
@@ -1005,7 +982,7 @@ var bitwiseNormalExpression = {
|
|
|
1005
982
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1006
983
|
return num << count;
|
|
1007
984
|
},
|
|
1008
|
-
|
|
985
|
+
paramCount: 2,
|
|
1009
986
|
},
|
|
1010
987
|
'>>': {
|
|
1011
988
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1014,7 +991,7 @@ var bitwiseNormalExpression = {
|
|
|
1014
991
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1015
992
|
return num >> count;
|
|
1016
993
|
},
|
|
1017
|
-
|
|
994
|
+
paramCount: 2,
|
|
1018
995
|
},
|
|
1019
996
|
'>>>': {
|
|
1020
997
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1023,7 +1000,7 @@ var bitwiseNormalExpression = {
|
|
|
1023
1000
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1024
1001
|
return num >>> count;
|
|
1025
1002
|
},
|
|
1026
|
-
|
|
1003
|
+
paramCount: 2,
|
|
1027
1004
|
},
|
|
1028
1005
|
'~': {
|
|
1029
1006
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1031,7 +1008,7 @@ var bitwiseNormalExpression = {
|
|
|
1031
1008
|
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1032
1009
|
return ~num;
|
|
1033
1010
|
},
|
|
1034
|
-
|
|
1011
|
+
paramCount: 1,
|
|
1035
1012
|
},
|
|
1036
1013
|
'&': {
|
|
1037
1014
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1042,7 +1019,7 @@ var bitwiseNormalExpression = {
|
|
|
1042
1019
|
return result & value;
|
|
1043
1020
|
}, first);
|
|
1044
1021
|
},
|
|
1045
|
-
|
|
1022
|
+
paramCount: { min: 2 },
|
|
1046
1023
|
},
|
|
1047
1024
|
'&!': {
|
|
1048
1025
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1053,7 +1030,7 @@ var bitwiseNormalExpression = {
|
|
|
1053
1030
|
return result & ~value;
|
|
1054
1031
|
}, first);
|
|
1055
1032
|
},
|
|
1056
|
-
|
|
1033
|
+
paramCount: { min: 2 },
|
|
1057
1034
|
},
|
|
1058
1035
|
'|': {
|
|
1059
1036
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1064,7 +1041,7 @@ var bitwiseNormalExpression = {
|
|
|
1064
1041
|
return result | value;
|
|
1065
1042
|
}, first);
|
|
1066
1043
|
},
|
|
1067
|
-
|
|
1044
|
+
paramCount: { min: 2 },
|
|
1068
1045
|
},
|
|
1069
1046
|
'^': {
|
|
1070
1047
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1075,7 +1052,7 @@ var bitwiseNormalExpression = {
|
|
|
1075
1052
|
return result ^ value;
|
|
1076
1053
|
}, first);
|
|
1077
1054
|
},
|
|
1078
|
-
|
|
1055
|
+
paramCount: { min: 2 },
|
|
1079
1056
|
},
|
|
1080
1057
|
'bit_flip': {
|
|
1081
1058
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1085,7 +1062,7 @@ var bitwiseNormalExpression = {
|
|
|
1085
1062
|
var mask = 1 << index;
|
|
1086
1063
|
return (num ^= mask);
|
|
1087
1064
|
},
|
|
1088
|
-
|
|
1065
|
+
paramCount: 2,
|
|
1089
1066
|
},
|
|
1090
1067
|
'bit_set': {
|
|
1091
1068
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1095,7 +1072,7 @@ var bitwiseNormalExpression = {
|
|
|
1095
1072
|
var mask = 1 << index;
|
|
1096
1073
|
return (num |= mask);
|
|
1097
1074
|
},
|
|
1098
|
-
|
|
1075
|
+
paramCount: 2,
|
|
1099
1076
|
},
|
|
1100
1077
|
'bit_clear': {
|
|
1101
1078
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1105,7 +1082,7 @@ var bitwiseNormalExpression = {
|
|
|
1105
1082
|
var mask = 1 << index;
|
|
1106
1083
|
return (num &= ~mask);
|
|
1107
1084
|
},
|
|
1108
|
-
|
|
1085
|
+
paramCount: 2,
|
|
1109
1086
|
},
|
|
1110
1087
|
'bit_test': {
|
|
1111
1088
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1115,7 +1092,7 @@ var bitwiseNormalExpression = {
|
|
|
1115
1092
|
var mask = 1 << index;
|
|
1116
1093
|
return !!(num & mask);
|
|
1117
1094
|
},
|
|
1118
|
-
|
|
1095
|
+
paramCount: 2,
|
|
1119
1096
|
},
|
|
1120
1097
|
};
|
|
1121
1098
|
|
|
@@ -1486,7 +1463,7 @@ var collectionNormalExpression = {
|
|
|
1486
1463
|
var result = get(coll, key);
|
|
1487
1464
|
return result === undefined ? defaultValue : result;
|
|
1488
1465
|
},
|
|
1489
|
-
|
|
1466
|
+
paramCount: { min: 2, max: 3 },
|
|
1490
1467
|
},
|
|
1491
1468
|
'get_in': {
|
|
1492
1469
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1521,7 +1498,7 @@ var collectionNormalExpression = {
|
|
|
1521
1498
|
}
|
|
1522
1499
|
return coll;
|
|
1523
1500
|
},
|
|
1524
|
-
|
|
1501
|
+
paramCount: { min: 2, max: 3 },
|
|
1525
1502
|
},
|
|
1526
1503
|
'count': {
|
|
1527
1504
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1535,7 +1512,7 @@ var collectionNormalExpression = {
|
|
|
1535
1512
|
return coll.length;
|
|
1536
1513
|
return Object.keys(coll).length;
|
|
1537
1514
|
},
|
|
1538
|
-
|
|
1515
|
+
paramCount: 1,
|
|
1539
1516
|
},
|
|
1540
1517
|
'contains?': {
|
|
1541
1518
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1552,7 +1529,7 @@ var collectionNormalExpression = {
|
|
|
1552
1529
|
}
|
|
1553
1530
|
return !!Object.getOwnPropertyDescriptor(coll, key);
|
|
1554
1531
|
},
|
|
1555
|
-
|
|
1532
|
+
paramCount: 2,
|
|
1556
1533
|
},
|
|
1557
1534
|
'has?': {
|
|
1558
1535
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1573,7 +1550,7 @@ var collectionNormalExpression = {
|
|
|
1573
1550
|
}
|
|
1574
1551
|
return Object.values(coll).includes(value);
|
|
1575
1552
|
},
|
|
1576
|
-
|
|
1553
|
+
paramCount: 2,
|
|
1577
1554
|
},
|
|
1578
1555
|
'has_some?': {
|
|
1579
1556
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1633,7 +1610,7 @@ var collectionNormalExpression = {
|
|
|
1633
1610
|
}
|
|
1634
1611
|
return false;
|
|
1635
1612
|
},
|
|
1636
|
-
|
|
1613
|
+
paramCount: 2,
|
|
1637
1614
|
},
|
|
1638
1615
|
'has_every?': {
|
|
1639
1616
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1695,7 +1672,7 @@ var collectionNormalExpression = {
|
|
|
1695
1672
|
}
|
|
1696
1673
|
return true;
|
|
1697
1674
|
},
|
|
1698
|
-
|
|
1675
|
+
paramCount: 2,
|
|
1699
1676
|
},
|
|
1700
1677
|
'assoc': {
|
|
1701
1678
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1705,7 +1682,7 @@ var collectionNormalExpression = {
|
|
|
1705
1682
|
assertAny(value, sourceCodeInfo);
|
|
1706
1683
|
return assoc(coll, key, value, sourceCodeInfo);
|
|
1707
1684
|
},
|
|
1708
|
-
|
|
1685
|
+
paramCount: 3,
|
|
1709
1686
|
},
|
|
1710
1687
|
'assoc_in': {
|
|
1711
1688
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1730,7 +1707,7 @@ var collectionNormalExpression = {
|
|
|
1730
1707
|
}
|
|
1731
1708
|
return coll;
|
|
1732
1709
|
},
|
|
1733
|
-
|
|
1710
|
+
paramCount: 3,
|
|
1734
1711
|
},
|
|
1735
1712
|
'update': {
|
|
1736
1713
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1741,7 +1718,7 @@ var collectionNormalExpression = {
|
|
|
1741
1718
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1742
1719
|
return update(coll, key, fn, params, contextStack, executeFunction, sourceCodeInfo);
|
|
1743
1720
|
},
|
|
1744
|
-
|
|
1721
|
+
paramCount: { min: 3 },
|
|
1745
1722
|
},
|
|
1746
1723
|
'update_in': {
|
|
1747
1724
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1767,7 +1744,7 @@ var collectionNormalExpression = {
|
|
|
1767
1744
|
}
|
|
1768
1745
|
return coll;
|
|
1769
1746
|
},
|
|
1770
|
-
|
|
1747
|
+
paramCount: { min: 3 },
|
|
1771
1748
|
},
|
|
1772
1749
|
'concat': {
|
|
1773
1750
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1791,7 +1768,7 @@ var collectionNormalExpression = {
|
|
|
1791
1768
|
}, {});
|
|
1792
1769
|
}
|
|
1793
1770
|
},
|
|
1794
|
-
|
|
1771
|
+
paramCount: { min: 1 },
|
|
1795
1772
|
},
|
|
1796
1773
|
'not_empty': {
|
|
1797
1774
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1805,7 +1782,7 @@ var collectionNormalExpression = {
|
|
|
1805
1782
|
return coll.length > 0 ? coll : null;
|
|
1806
1783
|
return Object.keys(coll).length > 0 ? coll : null;
|
|
1807
1784
|
},
|
|
1808
|
-
|
|
1785
|
+
paramCount: 1,
|
|
1809
1786
|
},
|
|
1810
1787
|
'every?': {
|
|
1811
1788
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1819,7 +1796,7 @@ var collectionNormalExpression = {
|
|
|
1819
1796
|
return coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1820
1797
|
return Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1821
1798
|
},
|
|
1822
|
-
|
|
1799
|
+
paramCount: 2,
|
|
1823
1800
|
},
|
|
1824
1801
|
'any?': {
|
|
1825
1802
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1833,7 +1810,7 @@ var collectionNormalExpression = {
|
|
|
1833
1810
|
return coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1834
1811
|
return Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1835
1812
|
},
|
|
1836
|
-
|
|
1813
|
+
paramCount: 2,
|
|
1837
1814
|
},
|
|
1838
1815
|
'not_any?': {
|
|
1839
1816
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1847,7 +1824,7 @@ var collectionNormalExpression = {
|
|
|
1847
1824
|
return !coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1848
1825
|
return !Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1849
1826
|
},
|
|
1850
|
-
|
|
1827
|
+
paramCount: 2,
|
|
1851
1828
|
},
|
|
1852
1829
|
'not_every?': {
|
|
1853
1830
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1861,13 +1838,14 @@ var collectionNormalExpression = {
|
|
|
1861
1838
|
return !coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1862
1839
|
return !Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1863
1840
|
},
|
|
1864
|
-
|
|
1841
|
+
paramCount: 2,
|
|
1865
1842
|
},
|
|
1866
1843
|
};
|
|
1867
1844
|
|
|
1868
1845
|
var arrayNormalExpression = {
|
|
1869
1846
|
array: {
|
|
1870
1847
|
evaluate: function (params) { return params; },
|
|
1848
|
+
paramCount: {},
|
|
1871
1849
|
},
|
|
1872
1850
|
range: {
|
|
1873
1851
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1905,7 +1883,7 @@ var arrayNormalExpression = {
|
|
|
1905
1883
|
result.push(i);
|
|
1906
1884
|
return result;
|
|
1907
1885
|
},
|
|
1908
|
-
|
|
1886
|
+
paramCount: { min: 1, max: 3 },
|
|
1909
1887
|
},
|
|
1910
1888
|
repeat: {
|
|
1911
1889
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1916,7 +1894,7 @@ var arrayNormalExpression = {
|
|
|
1916
1894
|
result.push(value);
|
|
1917
1895
|
return result;
|
|
1918
1896
|
},
|
|
1919
|
-
|
|
1897
|
+
paramCount: 2,
|
|
1920
1898
|
},
|
|
1921
1899
|
flatten: {
|
|
1922
1900
|
evaluate: function (_a) {
|
|
@@ -1925,7 +1903,7 @@ var arrayNormalExpression = {
|
|
|
1925
1903
|
return [];
|
|
1926
1904
|
return seq.flat(Number.POSITIVE_INFINITY);
|
|
1927
1905
|
},
|
|
1928
|
-
|
|
1906
|
+
paramCount: 1,
|
|
1929
1907
|
},
|
|
1930
1908
|
mapcat: {
|
|
1931
1909
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1935,7 +1913,7 @@ var arrayNormalExpression = {
|
|
|
1935
1913
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1936
1914
|
return arr.map(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }).flat(1);
|
|
1937
1915
|
},
|
|
1938
|
-
|
|
1916
|
+
paramCount: 2,
|
|
1939
1917
|
},
|
|
1940
1918
|
};
|
|
1941
1919
|
|
|
@@ -1950,7 +1928,7 @@ var sequenceNormalExpression = {
|
|
|
1950
1928
|
assertSeq(seq, sourceCodeInfo);
|
|
1951
1929
|
return i >= 0 && i < seq.length ? toAny(seq[i]) : defaultValue;
|
|
1952
1930
|
},
|
|
1953
|
-
|
|
1931
|
+
paramCount: { min: 2, max: 3 },
|
|
1954
1932
|
},
|
|
1955
1933
|
'filter': {
|
|
1956
1934
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1965,7 +1943,7 @@ var sequenceNormalExpression = {
|
|
|
1965
1943
|
.filter(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
1966
1944
|
.join('');
|
|
1967
1945
|
},
|
|
1968
|
-
|
|
1946
|
+
paramCount: 2,
|
|
1969
1947
|
},
|
|
1970
1948
|
'first': {
|
|
1971
1949
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1975,7 +1953,7 @@ var sequenceNormalExpression = {
|
|
|
1975
1953
|
assertSeq(array, sourceCodeInfo);
|
|
1976
1954
|
return toAny(array[0]);
|
|
1977
1955
|
},
|
|
1978
|
-
|
|
1956
|
+
paramCount: 1,
|
|
1979
1957
|
},
|
|
1980
1958
|
'last': {
|
|
1981
1959
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1985,7 +1963,7 @@ var sequenceNormalExpression = {
|
|
|
1985
1963
|
assertSeq(array, sourceCodeInfo);
|
|
1986
1964
|
return toAny(array[array.length - 1]);
|
|
1987
1965
|
},
|
|
1988
|
-
|
|
1966
|
+
paramCount: 1,
|
|
1989
1967
|
},
|
|
1990
1968
|
'map': {
|
|
1991
1969
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2007,7 +1985,7 @@ var sequenceNormalExpression = {
|
|
|
2007
1985
|
.join('');
|
|
2008
1986
|
}
|
|
2009
1987
|
},
|
|
2010
|
-
|
|
1988
|
+
paramCount: 2,
|
|
2011
1989
|
},
|
|
2012
1990
|
'pop': {
|
|
2013
1991
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2018,7 +1996,7 @@ var sequenceNormalExpression = {
|
|
|
2018
1996
|
}
|
|
2019
1997
|
return seq.slice(0, seq.length - 1);
|
|
2020
1998
|
},
|
|
2021
|
-
|
|
1999
|
+
paramCount: 1,
|
|
2022
2000
|
},
|
|
2023
2001
|
'position': {
|
|
2024
2002
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2037,7 +2015,7 @@ var sequenceNormalExpression = {
|
|
|
2037
2015
|
return index !== -1 ? index : null;
|
|
2038
2016
|
}
|
|
2039
2017
|
},
|
|
2040
|
-
|
|
2018
|
+
paramCount: 2,
|
|
2041
2019
|
},
|
|
2042
2020
|
'index_of': {
|
|
2043
2021
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2056,7 +2034,7 @@ var sequenceNormalExpression = {
|
|
|
2056
2034
|
return index !== -1 ? index : null;
|
|
2057
2035
|
}
|
|
2058
2036
|
},
|
|
2059
|
-
|
|
2037
|
+
paramCount: 2,
|
|
2060
2038
|
},
|
|
2061
2039
|
'last_index_of': {
|
|
2062
2040
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2075,7 +2053,7 @@ var sequenceNormalExpression = {
|
|
|
2075
2053
|
return index !== -1 ? index : null;
|
|
2076
2054
|
}
|
|
2077
2055
|
},
|
|
2078
|
-
|
|
2056
|
+
paramCount: 2,
|
|
2079
2057
|
},
|
|
2080
2058
|
'push': {
|
|
2081
2059
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2089,7 +2067,7 @@ var sequenceNormalExpression = {
|
|
|
2089
2067
|
return __spreadArray(__spreadArray([], __read(seq), false), __read(values), false);
|
|
2090
2068
|
}
|
|
2091
2069
|
},
|
|
2092
|
-
|
|
2070
|
+
paramCount: { min: 2 },
|
|
2093
2071
|
},
|
|
2094
2072
|
'reductions': {
|
|
2095
2073
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2150,7 +2128,7 @@ var sequenceNormalExpression = {
|
|
|
2150
2128
|
}
|
|
2151
2129
|
}
|
|
2152
2130
|
},
|
|
2153
|
-
|
|
2131
|
+
paramCount: { min: 2, max: 3 },
|
|
2154
2132
|
},
|
|
2155
2133
|
'reduce': {
|
|
2156
2134
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2197,7 +2175,7 @@ var sequenceNormalExpression = {
|
|
|
2197
2175
|
}
|
|
2198
2176
|
}
|
|
2199
2177
|
},
|
|
2200
|
-
|
|
2178
|
+
paramCount: { min: 2, max: 3 },
|
|
2201
2179
|
},
|
|
2202
2180
|
'reduce_right': {
|
|
2203
2181
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2245,7 +2223,7 @@ var sequenceNormalExpression = {
|
|
|
2245
2223
|
}
|
|
2246
2224
|
}
|
|
2247
2225
|
},
|
|
2248
|
-
|
|
2226
|
+
paramCount: { min: 2, max: 3 },
|
|
2249
2227
|
},
|
|
2250
2228
|
'rest': {
|
|
2251
2229
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2258,7 +2236,7 @@ var sequenceNormalExpression = {
|
|
|
2258
2236
|
}
|
|
2259
2237
|
return seq.substring(1);
|
|
2260
2238
|
},
|
|
2261
|
-
|
|
2239
|
+
paramCount: 1,
|
|
2262
2240
|
},
|
|
2263
2241
|
'nthrest': {
|
|
2264
2242
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2270,7 +2248,7 @@ var sequenceNormalExpression = {
|
|
|
2270
2248
|
return seq.slice(integerCount);
|
|
2271
2249
|
return seq.substring(integerCount);
|
|
2272
2250
|
},
|
|
2273
|
-
|
|
2251
|
+
paramCount: 2,
|
|
2274
2252
|
},
|
|
2275
2253
|
'next': {
|
|
2276
2254
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2285,7 +2263,7 @@ var sequenceNormalExpression = {
|
|
|
2285
2263
|
return null;
|
|
2286
2264
|
return seq.substring(1);
|
|
2287
2265
|
},
|
|
2288
|
-
|
|
2266
|
+
paramCount: 1,
|
|
2289
2267
|
},
|
|
2290
2268
|
'nthnext': {
|
|
2291
2269
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2299,7 +2277,7 @@ var sequenceNormalExpression = {
|
|
|
2299
2277
|
return seq.slice(integerCount);
|
|
2300
2278
|
return seq.substring(integerCount);
|
|
2301
2279
|
},
|
|
2302
|
-
|
|
2280
|
+
paramCount: 2,
|
|
2303
2281
|
},
|
|
2304
2282
|
'reverse': {
|
|
2305
2283
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2311,7 +2289,7 @@ var sequenceNormalExpression = {
|
|
|
2311
2289
|
return __spreadArray([], __read(seq), false).reverse();
|
|
2312
2290
|
return seq.split('').reverse().join('');
|
|
2313
2291
|
},
|
|
2314
|
-
|
|
2292
|
+
paramCount: 1,
|
|
2315
2293
|
},
|
|
2316
2294
|
'second': {
|
|
2317
2295
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2321,7 +2299,7 @@ var sequenceNormalExpression = {
|
|
|
2321
2299
|
assertSeq(seq, sourceCodeInfo);
|
|
2322
2300
|
return toAny(seq[1]);
|
|
2323
2301
|
},
|
|
2324
|
-
|
|
2302
|
+
paramCount: 1,
|
|
2325
2303
|
},
|
|
2326
2304
|
'shift': {
|
|
2327
2305
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2333,7 +2311,7 @@ var sequenceNormalExpression = {
|
|
|
2333
2311
|
copy.shift();
|
|
2334
2312
|
return copy;
|
|
2335
2313
|
},
|
|
2336
|
-
|
|
2314
|
+
paramCount: 1,
|
|
2337
2315
|
},
|
|
2338
2316
|
'slice': {
|
|
2339
2317
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2347,7 +2325,7 @@ var sequenceNormalExpression = {
|
|
|
2347
2325
|
assertNumber(to, sourceCodeInfo, { integer: true });
|
|
2348
2326
|
return seq.slice(from, to);
|
|
2349
2327
|
},
|
|
2350
|
-
|
|
2328
|
+
paramCount: { min: 1, max: 3 },
|
|
2351
2329
|
},
|
|
2352
2330
|
'some': {
|
|
2353
2331
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2364,7 +2342,7 @@ var sequenceNormalExpression = {
|
|
|
2364
2342
|
return (_c = seq.split('').find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })) !== null && _c !== void 0 ? _c : null;
|
|
2365
2343
|
return toAny(seq.find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }));
|
|
2366
2344
|
},
|
|
2367
|
-
|
|
2345
|
+
paramCount: 2,
|
|
2368
2346
|
},
|
|
2369
2347
|
'sort': {
|
|
2370
2348
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2402,7 +2380,7 @@ var sequenceNormalExpression = {
|
|
|
2402
2380
|
}
|
|
2403
2381
|
return result;
|
|
2404
2382
|
},
|
|
2405
|
-
|
|
2383
|
+
paramCount: { min: 1, max: 2 },
|
|
2406
2384
|
},
|
|
2407
2385
|
'sort_by': {
|
|
2408
2386
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2453,7 +2431,7 @@ var sequenceNormalExpression = {
|
|
|
2453
2431
|
}
|
|
2454
2432
|
return result;
|
|
2455
2433
|
},
|
|
2456
|
-
|
|
2434
|
+
paramCount: { min: 2, max: 3 },
|
|
2457
2435
|
},
|
|
2458
2436
|
'take': {
|
|
2459
2437
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2463,7 +2441,7 @@ var sequenceNormalExpression = {
|
|
|
2463
2441
|
var num = Math.max(Math.ceil(n), 0);
|
|
2464
2442
|
return input.slice(0, num);
|
|
2465
2443
|
},
|
|
2466
|
-
|
|
2444
|
+
paramCount: 2,
|
|
2467
2445
|
},
|
|
2468
2446
|
'take_last': {
|
|
2469
2447
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2474,7 +2452,7 @@ var sequenceNormalExpression = {
|
|
|
2474
2452
|
var from = array.length - num;
|
|
2475
2453
|
return array.slice(from);
|
|
2476
2454
|
},
|
|
2477
|
-
|
|
2455
|
+
paramCount: 2,
|
|
2478
2456
|
},
|
|
2479
2457
|
'take_while': {
|
|
2480
2458
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2502,7 +2480,7 @@ var sequenceNormalExpression = {
|
|
|
2502
2480
|
}
|
|
2503
2481
|
return typeof seq === 'string' ? result.join('') : result;
|
|
2504
2482
|
},
|
|
2505
|
-
|
|
2483
|
+
paramCount: 2,
|
|
2506
2484
|
},
|
|
2507
2485
|
'drop': {
|
|
2508
2486
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2512,7 +2490,7 @@ var sequenceNormalExpression = {
|
|
|
2512
2490
|
assertSeq(input, sourceCodeInfo);
|
|
2513
2491
|
return input.slice(num);
|
|
2514
2492
|
},
|
|
2515
|
-
|
|
2493
|
+
paramCount: 2,
|
|
2516
2494
|
},
|
|
2517
2495
|
'drop_last': {
|
|
2518
2496
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2523,7 +2501,7 @@ var sequenceNormalExpression = {
|
|
|
2523
2501
|
var from = array.length - num;
|
|
2524
2502
|
return array.slice(0, from);
|
|
2525
2503
|
},
|
|
2526
|
-
|
|
2504
|
+
paramCount: 2,
|
|
2527
2505
|
},
|
|
2528
2506
|
'drop_while': {
|
|
2529
2507
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2539,7 +2517,7 @@ var sequenceNormalExpression = {
|
|
|
2539
2517
|
var from = charArray.findIndex(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
2540
2518
|
return charArray.slice(from).join('');
|
|
2541
2519
|
},
|
|
2542
|
-
|
|
2520
|
+
paramCount: 2,
|
|
2543
2521
|
},
|
|
2544
2522
|
'unshift': {
|
|
2545
2523
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2553,7 +2531,7 @@ var sequenceNormalExpression = {
|
|
|
2553
2531
|
copy.unshift.apply(copy, __spreadArray([], __read(values), false));
|
|
2554
2532
|
return copy;
|
|
2555
2533
|
},
|
|
2556
|
-
|
|
2534
|
+
paramCount: { min: 2 },
|
|
2557
2535
|
},
|
|
2558
2536
|
'distinct': {
|
|
2559
2537
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2563,7 +2541,7 @@ var sequenceNormalExpression = {
|
|
|
2563
2541
|
return Array.from(new Set(input));
|
|
2564
2542
|
return Array.from(new Set(input.split(''))).join('');
|
|
2565
2543
|
},
|
|
2566
|
-
|
|
2544
|
+
paramCount: 1,
|
|
2567
2545
|
},
|
|
2568
2546
|
'remove': {
|
|
2569
2547
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2578,7 +2556,7 @@ var sequenceNormalExpression = {
|
|
|
2578
2556
|
.filter(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
2579
2557
|
.join('');
|
|
2580
2558
|
},
|
|
2581
|
-
|
|
2559
|
+
paramCount: 2,
|
|
2582
2560
|
},
|
|
2583
2561
|
'remove_at': {
|
|
2584
2562
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2595,7 +2573,7 @@ var sequenceNormalExpression = {
|
|
|
2595
2573
|
}
|
|
2596
2574
|
return "".concat(input.substring(0, index)).concat(input.substring(index + 1));
|
|
2597
2575
|
},
|
|
2598
|
-
|
|
2576
|
+
paramCount: 2,
|
|
2599
2577
|
},
|
|
2600
2578
|
'split_at': {
|
|
2601
2579
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2605,7 +2583,7 @@ var sequenceNormalExpression = {
|
|
|
2605
2583
|
assertSeq(seq, sourceCodeInfo);
|
|
2606
2584
|
return [seq.slice(0, intPos), seq.slice(intPos)];
|
|
2607
2585
|
},
|
|
2608
|
-
|
|
2586
|
+
paramCount: 2,
|
|
2609
2587
|
},
|
|
2610
2588
|
'split_with': {
|
|
2611
2589
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2620,7 +2598,7 @@ var sequenceNormalExpression = {
|
|
|
2620
2598
|
return [seq, seqIsArray ? [] : ''];
|
|
2621
2599
|
return [seq.slice(0, index), seq.slice(index)];
|
|
2622
2600
|
},
|
|
2623
|
-
|
|
2601
|
+
paramCount: 2,
|
|
2624
2602
|
},
|
|
2625
2603
|
'frequencies': {
|
|
2626
2604
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2636,7 +2614,7 @@ var sequenceNormalExpression = {
|
|
|
2636
2614
|
return result;
|
|
2637
2615
|
}, {});
|
|
2638
2616
|
},
|
|
2639
|
-
|
|
2617
|
+
paramCount: 1,
|
|
2640
2618
|
},
|
|
2641
2619
|
'group_by': {
|
|
2642
2620
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2654,7 +2632,7 @@ var sequenceNormalExpression = {
|
|
|
2654
2632
|
return result;
|
|
2655
2633
|
}, {});
|
|
2656
2634
|
},
|
|
2657
|
-
|
|
2635
|
+
paramCount: 2,
|
|
2658
2636
|
},
|
|
2659
2637
|
'partition': {
|
|
2660
2638
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2666,7 +2644,7 @@ var sequenceNormalExpression = {
|
|
|
2666
2644
|
: undefined;
|
|
2667
2645
|
return partition(n, step, seq, pad, sourceCodeInfo);
|
|
2668
2646
|
},
|
|
2669
|
-
|
|
2647
|
+
paramCount: { min: 2, max: 4 },
|
|
2670
2648
|
},
|
|
2671
2649
|
'partition_all': {
|
|
2672
2650
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2675,7 +2653,7 @@ var sequenceNormalExpression = {
|
|
|
2675
2653
|
var step = params.length === 3 ? toNonNegativeInteger(asNumber(params[2], sourceCodeInfo)) : n;
|
|
2676
2654
|
return partition(n, step, seq, [], sourceCodeInfo);
|
|
2677
2655
|
},
|
|
2678
|
-
|
|
2656
|
+
paramCount: { min: 2, max: 3 },
|
|
2679
2657
|
},
|
|
2680
2658
|
'partition_by': {
|
|
2681
2659
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2696,7 +2674,7 @@ var sequenceNormalExpression = {
|
|
|
2696
2674
|
}, []);
|
|
2697
2675
|
return isStringSeq ? result.map(function (elem) { return elem.join(''); }) : result;
|
|
2698
2676
|
},
|
|
2699
|
-
|
|
2677
|
+
paramCount: 2,
|
|
2700
2678
|
},
|
|
2701
2679
|
'ends_with?': {
|
|
2702
2680
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2708,7 +2686,7 @@ var sequenceNormalExpression = {
|
|
|
2708
2686
|
}
|
|
2709
2687
|
return str.at(-1) === search;
|
|
2710
2688
|
},
|
|
2711
|
-
|
|
2689
|
+
paramCount: 2,
|
|
2712
2690
|
},
|
|
2713
2691
|
'starts_with?': {
|
|
2714
2692
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2720,7 +2698,7 @@ var sequenceNormalExpression = {
|
|
|
2720
2698
|
}
|
|
2721
2699
|
return str[0] === search;
|
|
2722
2700
|
},
|
|
2723
|
-
|
|
2701
|
+
paramCount: 2,
|
|
2724
2702
|
},
|
|
2725
2703
|
'interleave': {
|
|
2726
2704
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2758,7 +2736,7 @@ var sequenceNormalExpression = {
|
|
|
2758
2736
|
}
|
|
2759
2737
|
return isStringSeq ? result.join('') : result;
|
|
2760
2738
|
},
|
|
2761
|
-
|
|
2739
|
+
paramCount: { min: 1 },
|
|
2762
2740
|
},
|
|
2763
2741
|
'interpose': {
|
|
2764
2742
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2777,7 +2755,7 @@ var sequenceNormalExpression = {
|
|
|
2777
2755
|
result.push(seq[seq.length - 1]);
|
|
2778
2756
|
return result;
|
|
2779
2757
|
},
|
|
2780
|
-
|
|
2758
|
+
paramCount: 2,
|
|
2781
2759
|
},
|
|
2782
2760
|
};
|
|
2783
2761
|
function partition(n, step, seq, pad, sourceCodeInfo) {
|
|
@@ -2815,7 +2793,7 @@ var mathNormalExpression = {
|
|
|
2815
2793
|
assertNumber(first, sourceCodeInfo);
|
|
2816
2794
|
return first + 1;
|
|
2817
2795
|
},
|
|
2818
|
-
|
|
2796
|
+
paramCount: 1,
|
|
2819
2797
|
},
|
|
2820
2798
|
'dec': {
|
|
2821
2799
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2823,7 +2801,7 @@ var mathNormalExpression = {
|
|
|
2823
2801
|
assertNumber(first, sourceCodeInfo);
|
|
2824
2802
|
return first - 1;
|
|
2825
2803
|
},
|
|
2826
|
-
|
|
2804
|
+
paramCount: 1,
|
|
2827
2805
|
},
|
|
2828
2806
|
'+': {
|
|
2829
2807
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2832,6 +2810,7 @@ var mathNormalExpression = {
|
|
|
2832
2810
|
return result + param;
|
|
2833
2811
|
}, 0);
|
|
2834
2812
|
},
|
|
2813
|
+
paramCount: {},
|
|
2835
2814
|
},
|
|
2836
2815
|
'*': {
|
|
2837
2816
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2840,6 +2819,7 @@ var mathNormalExpression = {
|
|
|
2840
2819
|
return result * param;
|
|
2841
2820
|
}, 1);
|
|
2842
2821
|
},
|
|
2822
|
+
paramCount: {},
|
|
2843
2823
|
},
|
|
2844
2824
|
'/': {
|
|
2845
2825
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2856,6 +2836,7 @@ var mathNormalExpression = {
|
|
|
2856
2836
|
return result / param;
|
|
2857
2837
|
}, first);
|
|
2858
2838
|
},
|
|
2839
|
+
paramCount: {},
|
|
2859
2840
|
},
|
|
2860
2841
|
'-': {
|
|
2861
2842
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2870,6 +2851,7 @@ var mathNormalExpression = {
|
|
|
2870
2851
|
return result - param;
|
|
2871
2852
|
}, first);
|
|
2872
2853
|
},
|
|
2854
|
+
paramCount: {},
|
|
2873
2855
|
},
|
|
2874
2856
|
'quot': {
|
|
2875
2857
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2879,7 +2861,7 @@ var mathNormalExpression = {
|
|
|
2879
2861
|
var quotient = Math.trunc(dividend / divisor);
|
|
2880
2862
|
return quotient;
|
|
2881
2863
|
},
|
|
2882
|
-
|
|
2864
|
+
paramCount: 2,
|
|
2883
2865
|
},
|
|
2884
2866
|
'mod': {
|
|
2885
2867
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2889,7 +2871,7 @@ var mathNormalExpression = {
|
|
|
2889
2871
|
var quotient = Math.floor(dividend / divisor);
|
|
2890
2872
|
return dividend - divisor * quotient;
|
|
2891
2873
|
},
|
|
2892
|
-
|
|
2874
|
+
paramCount: 2,
|
|
2893
2875
|
},
|
|
2894
2876
|
'%': {
|
|
2895
2877
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2899,7 +2881,7 @@ var mathNormalExpression = {
|
|
|
2899
2881
|
var quotient = Math.trunc(dividend / divisor);
|
|
2900
2882
|
return dividend - divisor * quotient;
|
|
2901
2883
|
},
|
|
2902
|
-
|
|
2884
|
+
paramCount: 2,
|
|
2903
2885
|
},
|
|
2904
2886
|
'sqrt': {
|
|
2905
2887
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2907,7 +2889,7 @@ var mathNormalExpression = {
|
|
|
2907
2889
|
assertNumber(first, sourceCodeInfo);
|
|
2908
2890
|
return Math.sqrt(first);
|
|
2909
2891
|
},
|
|
2910
|
-
|
|
2892
|
+
paramCount: 1,
|
|
2911
2893
|
},
|
|
2912
2894
|
'cbrt': {
|
|
2913
2895
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2915,7 +2897,7 @@ var mathNormalExpression = {
|
|
|
2915
2897
|
assertNumber(first, sourceCodeInfo);
|
|
2916
2898
|
return Math.cbrt(first);
|
|
2917
2899
|
},
|
|
2918
|
-
|
|
2900
|
+
paramCount: 1,
|
|
2919
2901
|
},
|
|
2920
2902
|
'**': {
|
|
2921
2903
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2924,7 +2906,7 @@ var mathNormalExpression = {
|
|
|
2924
2906
|
assertNumber(second, sourceCodeInfo);
|
|
2925
2907
|
return Math.pow(first, second);
|
|
2926
2908
|
},
|
|
2927
|
-
|
|
2909
|
+
paramCount: 2,
|
|
2928
2910
|
},
|
|
2929
2911
|
'round': {
|
|
2930
2912
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2936,7 +2918,7 @@ var mathNormalExpression = {
|
|
|
2936
2918
|
var factor = Math.pow(10, decimals);
|
|
2937
2919
|
return Math.round(value * factor) / factor;
|
|
2938
2920
|
},
|
|
2939
|
-
|
|
2921
|
+
paramCount: { min: 1, max: 2 },
|
|
2940
2922
|
},
|
|
2941
2923
|
'trunc': {
|
|
2942
2924
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2944,7 +2926,7 @@ var mathNormalExpression = {
|
|
|
2944
2926
|
assertNumber(first, sourceCodeInfo);
|
|
2945
2927
|
return Math.trunc(first);
|
|
2946
2928
|
},
|
|
2947
|
-
|
|
2929
|
+
paramCount: 1,
|
|
2948
2930
|
},
|
|
2949
2931
|
'floor': {
|
|
2950
2932
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2952,7 +2934,7 @@ var mathNormalExpression = {
|
|
|
2952
2934
|
assertNumber(first, sourceCodeInfo);
|
|
2953
2935
|
return Math.floor(first);
|
|
2954
2936
|
},
|
|
2955
|
-
|
|
2937
|
+
paramCount: 1,
|
|
2956
2938
|
},
|
|
2957
2939
|
'ceil': {
|
|
2958
2940
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2960,7 +2942,7 @@ var mathNormalExpression = {
|
|
|
2960
2942
|
assertNumber(first, sourceCodeInfo);
|
|
2961
2943
|
return Math.ceil(first);
|
|
2962
2944
|
},
|
|
2963
|
-
|
|
2945
|
+
paramCount: 1,
|
|
2964
2946
|
},
|
|
2965
2947
|
'min': {
|
|
2966
2948
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2973,7 +2955,7 @@ var mathNormalExpression = {
|
|
|
2973
2955
|
return Math.min(min, value);
|
|
2974
2956
|
}, first);
|
|
2975
2957
|
},
|
|
2976
|
-
|
|
2958
|
+
paramCount: { min: 1 },
|
|
2977
2959
|
},
|
|
2978
2960
|
'max': {
|
|
2979
2961
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2986,7 +2968,7 @@ var mathNormalExpression = {
|
|
|
2986
2968
|
return Math.max(min, value);
|
|
2987
2969
|
}, first);
|
|
2988
2970
|
},
|
|
2989
|
-
|
|
2971
|
+
paramCount: { min: 1 },
|
|
2990
2972
|
},
|
|
2991
2973
|
'abs': {
|
|
2992
2974
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2994,7 +2976,7 @@ var mathNormalExpression = {
|
|
|
2994
2976
|
assertNumber(value, sourceCodeInfo);
|
|
2995
2977
|
return Math.abs(value);
|
|
2996
2978
|
},
|
|
2997
|
-
|
|
2979
|
+
paramCount: 1,
|
|
2998
2980
|
},
|
|
2999
2981
|
'sign': {
|
|
3000
2982
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3002,67 +2984,67 @@ var mathNormalExpression = {
|
|
|
3002
2984
|
assertNumber(value, sourceCodeInfo);
|
|
3003
2985
|
return Math.sign(value);
|
|
3004
2986
|
},
|
|
3005
|
-
|
|
2987
|
+
paramCount: 1,
|
|
3006
2988
|
},
|
|
3007
2989
|
'max_safe_integer': {
|
|
3008
2990
|
evaluate: function () {
|
|
3009
2991
|
return Number.MAX_SAFE_INTEGER;
|
|
3010
2992
|
},
|
|
3011
|
-
|
|
2993
|
+
paramCount: 0,
|
|
3012
2994
|
},
|
|
3013
2995
|
'min_safe_integer': {
|
|
3014
2996
|
evaluate: function () {
|
|
3015
2997
|
return Number.MIN_SAFE_INTEGER;
|
|
3016
2998
|
},
|
|
3017
|
-
|
|
2999
|
+
paramCount: 0,
|
|
3018
3000
|
},
|
|
3019
3001
|
'max_value': {
|
|
3020
3002
|
evaluate: function () {
|
|
3021
3003
|
return Number.MAX_VALUE;
|
|
3022
3004
|
},
|
|
3023
|
-
|
|
3005
|
+
paramCount: 0,
|
|
3024
3006
|
},
|
|
3025
3007
|
'min_value': {
|
|
3026
3008
|
evaluate: function () {
|
|
3027
3009
|
return Number.MIN_VALUE;
|
|
3028
3010
|
},
|
|
3029
|
-
|
|
3011
|
+
paramCount: 0,
|
|
3030
3012
|
},
|
|
3031
3013
|
'epsilon': {
|
|
3032
3014
|
evaluate: function () {
|
|
3033
3015
|
return Number.EPSILON;
|
|
3034
3016
|
},
|
|
3035
|
-
|
|
3017
|
+
paramCount: 0,
|
|
3036
3018
|
},
|
|
3037
3019
|
'positive_infinity': {
|
|
3038
3020
|
evaluate: function () {
|
|
3039
3021
|
return Number.POSITIVE_INFINITY;
|
|
3040
3022
|
},
|
|
3041
|
-
|
|
3023
|
+
paramCount: 0,
|
|
3042
3024
|
},
|
|
3043
3025
|
'negative_infinity': {
|
|
3044
3026
|
evaluate: function () {
|
|
3045
3027
|
return Number.NEGATIVE_INFINITY;
|
|
3046
3028
|
},
|
|
3047
|
-
|
|
3029
|
+
paramCount: 0,
|
|
3048
3030
|
},
|
|
3049
3031
|
'nan': {
|
|
3050
3032
|
evaluate: function () {
|
|
3051
3033
|
return Number.NaN;
|
|
3052
3034
|
},
|
|
3053
|
-
|
|
3035
|
+
paramCount: 0,
|
|
3054
3036
|
},
|
|
3055
3037
|
'e': {
|
|
3056
3038
|
evaluate: function () {
|
|
3057
3039
|
return Math.E;
|
|
3058
3040
|
},
|
|
3059
|
-
|
|
3041
|
+
paramCount: 0,
|
|
3060
3042
|
},
|
|
3061
3043
|
'pi': {
|
|
3062
3044
|
evaluate: function () {
|
|
3063
3045
|
return Math.PI;
|
|
3064
3046
|
},
|
|
3065
|
-
|
|
3047
|
+
paramCount: 0,
|
|
3066
3048
|
},
|
|
3067
3049
|
'exp': {
|
|
3068
3050
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3070,7 +3052,7 @@ var mathNormalExpression = {
|
|
|
3070
3052
|
assertNumber(value, sourceCodeInfo);
|
|
3071
3053
|
return Math.exp(value);
|
|
3072
3054
|
},
|
|
3073
|
-
|
|
3055
|
+
paramCount: 1,
|
|
3074
3056
|
},
|
|
3075
3057
|
'log': {
|
|
3076
3058
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3078,7 +3060,7 @@ var mathNormalExpression = {
|
|
|
3078
3060
|
assertNumber(value, sourceCodeInfo);
|
|
3079
3061
|
return Math.log(value);
|
|
3080
3062
|
},
|
|
3081
|
-
|
|
3063
|
+
paramCount: 1,
|
|
3082
3064
|
},
|
|
3083
3065
|
'log2': {
|
|
3084
3066
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3086,7 +3068,7 @@ var mathNormalExpression = {
|
|
|
3086
3068
|
assertNumber(value, sourceCodeInfo);
|
|
3087
3069
|
return Math.log2(value);
|
|
3088
3070
|
},
|
|
3089
|
-
|
|
3071
|
+
paramCount: 1,
|
|
3090
3072
|
},
|
|
3091
3073
|
'log10': {
|
|
3092
3074
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3094,7 +3076,7 @@ var mathNormalExpression = {
|
|
|
3094
3076
|
assertNumber(value, sourceCodeInfo);
|
|
3095
3077
|
return Math.log10(value);
|
|
3096
3078
|
},
|
|
3097
|
-
|
|
3079
|
+
paramCount: 1,
|
|
3098
3080
|
},
|
|
3099
3081
|
'sin': {
|
|
3100
3082
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3102,7 +3084,7 @@ var mathNormalExpression = {
|
|
|
3102
3084
|
assertNumber(value, sourceCodeInfo);
|
|
3103
3085
|
return Math.sin(value);
|
|
3104
3086
|
},
|
|
3105
|
-
|
|
3087
|
+
paramCount: 1,
|
|
3106
3088
|
},
|
|
3107
3089
|
'asin': {
|
|
3108
3090
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3110,7 +3092,7 @@ var mathNormalExpression = {
|
|
|
3110
3092
|
assertNumber(value, sourceCodeInfo);
|
|
3111
3093
|
return Math.asin(value);
|
|
3112
3094
|
},
|
|
3113
|
-
|
|
3095
|
+
paramCount: 1,
|
|
3114
3096
|
},
|
|
3115
3097
|
'sinh': {
|
|
3116
3098
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3118,7 +3100,7 @@ var mathNormalExpression = {
|
|
|
3118
3100
|
assertNumber(value, sourceCodeInfo);
|
|
3119
3101
|
return Math.sinh(value);
|
|
3120
3102
|
},
|
|
3121
|
-
|
|
3103
|
+
paramCount: 1,
|
|
3122
3104
|
},
|
|
3123
3105
|
'asinh': {
|
|
3124
3106
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3126,7 +3108,7 @@ var mathNormalExpression = {
|
|
|
3126
3108
|
assertNumber(value, sourceCodeInfo);
|
|
3127
3109
|
return Math.asinh(value);
|
|
3128
3110
|
},
|
|
3129
|
-
|
|
3111
|
+
paramCount: 1,
|
|
3130
3112
|
},
|
|
3131
3113
|
'cos': {
|
|
3132
3114
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3134,7 +3116,7 @@ var mathNormalExpression = {
|
|
|
3134
3116
|
assertNumber(value, sourceCodeInfo);
|
|
3135
3117
|
return Math.cos(value);
|
|
3136
3118
|
},
|
|
3137
|
-
|
|
3119
|
+
paramCount: 1,
|
|
3138
3120
|
},
|
|
3139
3121
|
'acos': {
|
|
3140
3122
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3142,7 +3124,7 @@ var mathNormalExpression = {
|
|
|
3142
3124
|
assertNumber(value, sourceCodeInfo);
|
|
3143
3125
|
return Math.acos(value);
|
|
3144
3126
|
},
|
|
3145
|
-
|
|
3127
|
+
paramCount: 1,
|
|
3146
3128
|
},
|
|
3147
3129
|
'cosh': {
|
|
3148
3130
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3150,7 +3132,7 @@ var mathNormalExpression = {
|
|
|
3150
3132
|
assertNumber(value, sourceCodeInfo);
|
|
3151
3133
|
return Math.cosh(value);
|
|
3152
3134
|
},
|
|
3153
|
-
|
|
3135
|
+
paramCount: 1,
|
|
3154
3136
|
},
|
|
3155
3137
|
'acosh': {
|
|
3156
3138
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3158,7 +3140,7 @@ var mathNormalExpression = {
|
|
|
3158
3140
|
assertNumber(value, sourceCodeInfo);
|
|
3159
3141
|
return Math.acosh(value);
|
|
3160
3142
|
},
|
|
3161
|
-
|
|
3143
|
+
paramCount: 1,
|
|
3162
3144
|
},
|
|
3163
3145
|
'tan': {
|
|
3164
3146
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3166,7 +3148,7 @@ var mathNormalExpression = {
|
|
|
3166
3148
|
assertNumber(value, sourceCodeInfo);
|
|
3167
3149
|
return Math.tan(value);
|
|
3168
3150
|
},
|
|
3169
|
-
|
|
3151
|
+
paramCount: 1,
|
|
3170
3152
|
},
|
|
3171
3153
|
'atan': {
|
|
3172
3154
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3174,7 +3156,7 @@ var mathNormalExpression = {
|
|
|
3174
3156
|
assertNumber(value, sourceCodeInfo);
|
|
3175
3157
|
return Math.atan(value);
|
|
3176
3158
|
},
|
|
3177
|
-
|
|
3159
|
+
paramCount: 1,
|
|
3178
3160
|
},
|
|
3179
3161
|
'tanh': {
|
|
3180
3162
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3182,7 +3164,7 @@ var mathNormalExpression = {
|
|
|
3182
3164
|
assertNumber(value, sourceCodeInfo);
|
|
3183
3165
|
return Math.tanh(value);
|
|
3184
3166
|
},
|
|
3185
|
-
|
|
3167
|
+
paramCount: 1,
|
|
3186
3168
|
},
|
|
3187
3169
|
'atanh': {
|
|
3188
3170
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3190,7 +3172,7 @@ var mathNormalExpression = {
|
|
|
3190
3172
|
assertNumber(value, sourceCodeInfo);
|
|
3191
3173
|
return Math.atanh(value);
|
|
3192
3174
|
},
|
|
3193
|
-
|
|
3175
|
+
paramCount: 1,
|
|
3194
3176
|
},
|
|
3195
3177
|
};
|
|
3196
3178
|
|
|
@@ -3205,7 +3187,7 @@ var miscNormalExpression = {
|
|
|
3205
3187
|
}
|
|
3206
3188
|
return true;
|
|
3207
3189
|
},
|
|
3208
|
-
|
|
3190
|
+
paramCount: { min: 1 },
|
|
3209
3191
|
},
|
|
3210
3192
|
'==': {
|
|
3211
3193
|
evaluate: function (_a) {
|
|
@@ -3227,14 +3209,14 @@ var miscNormalExpression = {
|
|
|
3227
3209
|
}
|
|
3228
3210
|
return true;
|
|
3229
3211
|
},
|
|
3230
|
-
|
|
3212
|
+
paramCount: { min: 1 },
|
|
3231
3213
|
},
|
|
3232
3214
|
'equal?': {
|
|
3233
3215
|
evaluate: function (_a, sourceCodeInfo) {
|
|
3234
3216
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3235
3217
|
return deepEqual(asAny(a, sourceCodeInfo), asAny(b, sourceCodeInfo), sourceCodeInfo);
|
|
3236
3218
|
},
|
|
3237
|
-
|
|
3219
|
+
paramCount: { min: 1 },
|
|
3238
3220
|
},
|
|
3239
3221
|
'>': {
|
|
3240
3222
|
evaluate: function (_a) {
|
|
@@ -3258,7 +3240,7 @@ var miscNormalExpression = {
|
|
|
3258
3240
|
}
|
|
3259
3241
|
return true;
|
|
3260
3242
|
},
|
|
3261
|
-
|
|
3243
|
+
paramCount: { min: 1 },
|
|
3262
3244
|
},
|
|
3263
3245
|
'<': {
|
|
3264
3246
|
evaluate: function (_a) {
|
|
@@ -3282,7 +3264,7 @@ var miscNormalExpression = {
|
|
|
3282
3264
|
}
|
|
3283
3265
|
return true;
|
|
3284
3266
|
},
|
|
3285
|
-
|
|
3267
|
+
paramCount: { min: 1 },
|
|
3286
3268
|
},
|
|
3287
3269
|
'>=': {
|
|
3288
3270
|
evaluate: function (_a) {
|
|
@@ -3306,7 +3288,7 @@ var miscNormalExpression = {
|
|
|
3306
3288
|
}
|
|
3307
3289
|
return true;
|
|
3308
3290
|
},
|
|
3309
|
-
|
|
3291
|
+
paramCount: { min: 1 },
|
|
3310
3292
|
},
|
|
3311
3293
|
'<=': {
|
|
3312
3294
|
evaluate: function (_a) {
|
|
@@ -3330,14 +3312,14 @@ var miscNormalExpression = {
|
|
|
3330
3312
|
}
|
|
3331
3313
|
return true;
|
|
3332
3314
|
},
|
|
3333
|
-
|
|
3315
|
+
paramCount: { min: 1 },
|
|
3334
3316
|
},
|
|
3335
3317
|
'!': {
|
|
3336
3318
|
evaluate: function (_a) {
|
|
3337
3319
|
var _b = __read(_a, 1), first = _b[0];
|
|
3338
3320
|
return !first;
|
|
3339
3321
|
},
|
|
3340
|
-
|
|
3322
|
+
paramCount: 1,
|
|
3341
3323
|
},
|
|
3342
3324
|
'epoch>iso_date': {
|
|
3343
3325
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3345,7 +3327,7 @@ var miscNormalExpression = {
|
|
|
3345
3327
|
assertNumber(ms, sourceCodeInfo);
|
|
3346
3328
|
return new Date(ms).toISOString();
|
|
3347
3329
|
},
|
|
3348
|
-
|
|
3330
|
+
paramCount: 1,
|
|
3349
3331
|
},
|
|
3350
3332
|
'iso_date>epoch': {
|
|
3351
3333
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3355,7 +3337,7 @@ var miscNormalExpression = {
|
|
|
3355
3337
|
assertNumber(ms, sourceCodeInfo, { finite: true });
|
|
3356
3338
|
return ms;
|
|
3357
3339
|
},
|
|
3358
|
-
|
|
3340
|
+
paramCount: 1,
|
|
3359
3341
|
},
|
|
3360
3342
|
'write!': {
|
|
3361
3343
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3365,20 +3347,21 @@ var miscNormalExpression = {
|
|
|
3365
3347
|
return asAny(params[params.length - 1], sourceCodeInfo);
|
|
3366
3348
|
return null;
|
|
3367
3349
|
},
|
|
3350
|
+
paramCount: {},
|
|
3368
3351
|
},
|
|
3369
3352
|
'boolean': {
|
|
3370
3353
|
evaluate: function (_a) {
|
|
3371
3354
|
var _b = __read(_a, 1), value = _b[0];
|
|
3372
3355
|
return !!value;
|
|
3373
3356
|
},
|
|
3374
|
-
|
|
3357
|
+
paramCount: 1,
|
|
3375
3358
|
},
|
|
3376
3359
|
'compare': {
|
|
3377
3360
|
evaluate: function (_a) {
|
|
3378
3361
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3379
3362
|
return compare(a, b);
|
|
3380
3363
|
},
|
|
3381
|
-
|
|
3364
|
+
paramCount: 2,
|
|
3382
3365
|
},
|
|
3383
3366
|
'json_parse': {
|
|
3384
3367
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3387,7 +3370,7 @@ var miscNormalExpression = {
|
|
|
3387
3370
|
// eslint-disable-next-line ts/no-unsafe-return
|
|
3388
3371
|
return JSON.parse(first);
|
|
3389
3372
|
},
|
|
3390
|
-
|
|
3373
|
+
paramCount: 1,
|
|
3391
3374
|
},
|
|
3392
3375
|
'json_stringify': {
|
|
3393
3376
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3398,7 +3381,7 @@ var miscNormalExpression = {
|
|
|
3398
3381
|
assertNumber(second, sourceCodeInfo);
|
|
3399
3382
|
return JSON.stringify(first, null, second);
|
|
3400
3383
|
},
|
|
3401
|
-
|
|
3384
|
+
paramCount: { min: 1, max: 2 },
|
|
3402
3385
|
},
|
|
3403
3386
|
};
|
|
3404
3387
|
|
|
@@ -3412,7 +3395,7 @@ var assertNormalExpression = {
|
|
|
3412
3395
|
throw new AssertionError(message, sourceCodeInfo);
|
|
3413
3396
|
return asAny(value, sourceCodeInfo);
|
|
3414
3397
|
},
|
|
3415
|
-
|
|
3398
|
+
paramCount: { min: 1, max: 2 },
|
|
3416
3399
|
},
|
|
3417
3400
|
'assert=': {
|
|
3418
3401
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3422,7 +3405,7 @@ var assertNormalExpression = {
|
|
|
3422
3405
|
throw new AssertionError("Expected ".concat(first, " to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3423
3406
|
return null;
|
|
3424
3407
|
},
|
|
3425
|
-
|
|
3408
|
+
paramCount: { min: 2, max: 3 },
|
|
3426
3409
|
},
|
|
3427
3410
|
'assert!=': {
|
|
3428
3411
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3432,7 +3415,7 @@ var assertNormalExpression = {
|
|
|
3432
3415
|
throw new AssertionError("Expected ".concat(first, " not to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3433
3416
|
return null;
|
|
3434
3417
|
},
|
|
3435
|
-
|
|
3418
|
+
paramCount: { min: 2, max: 3 },
|
|
3436
3419
|
},
|
|
3437
3420
|
'assert_equal': {
|
|
3438
3421
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3443,7 +3426,7 @@ var assertNormalExpression = {
|
|
|
3443
3426
|
}
|
|
3444
3427
|
return null;
|
|
3445
3428
|
},
|
|
3446
|
-
|
|
3429
|
+
paramCount: { min: 2, max: 3 },
|
|
3447
3430
|
},
|
|
3448
3431
|
'assert_not_equal': {
|
|
3449
3432
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3454,7 +3437,7 @@ var assertNormalExpression = {
|
|
|
3454
3437
|
}
|
|
3455
3438
|
return null;
|
|
3456
3439
|
},
|
|
3457
|
-
|
|
3440
|
+
paramCount: { min: 2, max: 3 },
|
|
3458
3441
|
},
|
|
3459
3442
|
'assert_gt': {
|
|
3460
3443
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3464,7 +3447,7 @@ var assertNormalExpression = {
|
|
|
3464
3447
|
throw new AssertionError("Expected ".concat(first, " to be grater than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3465
3448
|
return null;
|
|
3466
3449
|
},
|
|
3467
|
-
|
|
3450
|
+
paramCount: { min: 2, max: 3 },
|
|
3468
3451
|
},
|
|
3469
3452
|
'assert_gte': {
|
|
3470
3453
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3474,7 +3457,7 @@ var assertNormalExpression = {
|
|
|
3474
3457
|
throw new AssertionError("Expected ".concat(first, " to be grater than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3475
3458
|
return null;
|
|
3476
3459
|
},
|
|
3477
|
-
|
|
3460
|
+
paramCount: { min: 2, max: 3 },
|
|
3478
3461
|
},
|
|
3479
3462
|
'assert_lt': {
|
|
3480
3463
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3484,7 +3467,7 @@ var assertNormalExpression = {
|
|
|
3484
3467
|
throw new AssertionError("Expected ".concat(first, " to be less than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3485
3468
|
return null;
|
|
3486
3469
|
},
|
|
3487
|
-
|
|
3470
|
+
paramCount: { min: 2, max: 3 },
|
|
3488
3471
|
},
|
|
3489
3472
|
'assert_lte': {
|
|
3490
3473
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3494,7 +3477,7 @@ var assertNormalExpression = {
|
|
|
3494
3477
|
throw new AssertionError("Expected ".concat(first, " to be less than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3495
3478
|
return null;
|
|
3496
3479
|
},
|
|
3497
|
-
|
|
3480
|
+
paramCount: { min: 2, max: 3 },
|
|
3498
3481
|
},
|
|
3499
3482
|
'assert_true': {
|
|
3500
3483
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3504,7 +3487,7 @@ var assertNormalExpression = {
|
|
|
3504
3487
|
throw new AssertionError("Expected ".concat(first, " to be true.").concat(message), sourceCodeInfo);
|
|
3505
3488
|
return null;
|
|
3506
3489
|
},
|
|
3507
|
-
|
|
3490
|
+
paramCount: { min: 1, max: 2 },
|
|
3508
3491
|
},
|
|
3509
3492
|
'assert_false': {
|
|
3510
3493
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3514,7 +3497,7 @@ var assertNormalExpression = {
|
|
|
3514
3497
|
throw new AssertionError("Expected ".concat(first, " to be false.").concat(message), sourceCodeInfo);
|
|
3515
3498
|
return null;
|
|
3516
3499
|
},
|
|
3517
|
-
|
|
3500
|
+
paramCount: { min: 1, max: 2 },
|
|
3518
3501
|
},
|
|
3519
3502
|
'assert_truthy': {
|
|
3520
3503
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3524,7 +3507,7 @@ var assertNormalExpression = {
|
|
|
3524
3507
|
throw new AssertionError("Expected ".concat(first, " to be truthy.").concat(message), sourceCodeInfo);
|
|
3525
3508
|
return null;
|
|
3526
3509
|
},
|
|
3527
|
-
|
|
3510
|
+
paramCount: { min: 1, max: 2 },
|
|
3528
3511
|
},
|
|
3529
3512
|
'assert_falsy': {
|
|
3530
3513
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3534,7 +3517,7 @@ var assertNormalExpression = {
|
|
|
3534
3517
|
throw new AssertionError("Expected ".concat(first, " to be falsy.").concat(message), sourceCodeInfo);
|
|
3535
3518
|
return null;
|
|
3536
3519
|
},
|
|
3537
|
-
|
|
3520
|
+
paramCount: { min: 1, max: 2 },
|
|
3538
3521
|
},
|
|
3539
3522
|
'assert_null': {
|
|
3540
3523
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3544,7 +3527,7 @@ var assertNormalExpression = {
|
|
|
3544
3527
|
throw new AssertionError("Expected ".concat(first, " to be nil.").concat(message), sourceCodeInfo);
|
|
3545
3528
|
return null;
|
|
3546
3529
|
},
|
|
3547
|
-
|
|
3530
|
+
paramCount: { min: 1, max: 2 },
|
|
3548
3531
|
},
|
|
3549
3532
|
'assert_throws': {
|
|
3550
3533
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3560,7 +3543,7 @@ var assertNormalExpression = {
|
|
|
3560
3543
|
}
|
|
3561
3544
|
throw new AssertionError("Expected function to throw.".concat(message), sourceCodeInfo);
|
|
3562
3545
|
},
|
|
3563
|
-
|
|
3546
|
+
paramCount: { min: 1, max: 2 },
|
|
3564
3547
|
},
|
|
3565
3548
|
'assert_throws_error': {
|
|
3566
3549
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3581,7 +3564,7 @@ var assertNormalExpression = {
|
|
|
3581
3564
|
}
|
|
3582
3565
|
throw new AssertionError("Expected function to throw \"".concat(throwMessage, "\".").concat(message), sourceCodeInfo);
|
|
3583
3566
|
},
|
|
3584
|
-
|
|
3567
|
+
paramCount: { min: 2, max: 3 },
|
|
3585
3568
|
},
|
|
3586
3569
|
'assert_not_throws': {
|
|
3587
3570
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3597,7 +3580,7 @@ var assertNormalExpression = {
|
|
|
3597
3580
|
}
|
|
3598
3581
|
return null;
|
|
3599
3582
|
},
|
|
3600
|
-
|
|
3583
|
+
paramCount: { min: 1, max: 2 },
|
|
3601
3584
|
},
|
|
3602
3585
|
};
|
|
3603
3586
|
|
|
@@ -3613,7 +3596,7 @@ var objectNormalExpression = {
|
|
|
3613
3596
|
}
|
|
3614
3597
|
return result;
|
|
3615
3598
|
},
|
|
3616
|
-
|
|
3599
|
+
paramCount: { even: true },
|
|
3617
3600
|
},
|
|
3618
3601
|
keys: {
|
|
3619
3602
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3621,7 +3604,7 @@ var objectNormalExpression = {
|
|
|
3621
3604
|
assertObj(obj, sourceCodeInfo);
|
|
3622
3605
|
return Object.keys(obj);
|
|
3623
3606
|
},
|
|
3624
|
-
|
|
3607
|
+
paramCount: 1,
|
|
3625
3608
|
},
|
|
3626
3609
|
vals: {
|
|
3627
3610
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3629,7 +3612,7 @@ var objectNormalExpression = {
|
|
|
3629
3612
|
assertObj(obj, sourceCodeInfo);
|
|
3630
3613
|
return Object.values(obj);
|
|
3631
3614
|
},
|
|
3632
|
-
|
|
3615
|
+
paramCount: 1,
|
|
3633
3616
|
},
|
|
3634
3617
|
entries: {
|
|
3635
3618
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3637,7 +3620,7 @@ var objectNormalExpression = {
|
|
|
3637
3620
|
assertObj(obj, sourceCodeInfo);
|
|
3638
3621
|
return Object.entries(obj);
|
|
3639
3622
|
},
|
|
3640
|
-
|
|
3623
|
+
paramCount: 1,
|
|
3641
3624
|
},
|
|
3642
3625
|
find: {
|
|
3643
3626
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3648,7 +3631,7 @@ var objectNormalExpression = {
|
|
|
3648
3631
|
return [key, obj[key]];
|
|
3649
3632
|
return null;
|
|
3650
3633
|
},
|
|
3651
|
-
|
|
3634
|
+
paramCount: 2,
|
|
3652
3635
|
},
|
|
3653
3636
|
dissoc: {
|
|
3654
3637
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3659,7 +3642,7 @@ var objectNormalExpression = {
|
|
|
3659
3642
|
delete newObj[key];
|
|
3660
3643
|
return newObj;
|
|
3661
3644
|
},
|
|
3662
|
-
|
|
3645
|
+
paramCount: 2,
|
|
3663
3646
|
},
|
|
3664
3647
|
merge: {
|
|
3665
3648
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3672,7 +3655,7 @@ var objectNormalExpression = {
|
|
|
3672
3655
|
return __assign(__assign({}, result), obj);
|
|
3673
3656
|
}, __assign({}, first));
|
|
3674
3657
|
},
|
|
3675
|
-
|
|
3658
|
+
paramCount: { min: 0 },
|
|
3676
3659
|
},
|
|
3677
3660
|
merge_with: {
|
|
3678
3661
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -3695,7 +3678,7 @@ var objectNormalExpression = {
|
|
|
3695
3678
|
return result;
|
|
3696
3679
|
}, __assign({}, first));
|
|
3697
3680
|
},
|
|
3698
|
-
|
|
3681
|
+
paramCount: { min: 2 },
|
|
3699
3682
|
},
|
|
3700
3683
|
zipmap: {
|
|
3701
3684
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3710,7 +3693,7 @@ var objectNormalExpression = {
|
|
|
3710
3693
|
}
|
|
3711
3694
|
return result;
|
|
3712
3695
|
},
|
|
3713
|
-
|
|
3696
|
+
paramCount: 2,
|
|
3714
3697
|
},
|
|
3715
3698
|
select_keys: {
|
|
3716
3699
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3723,7 +3706,7 @@ var objectNormalExpression = {
|
|
|
3723
3706
|
return result;
|
|
3724
3707
|
}, {});
|
|
3725
3708
|
},
|
|
3726
|
-
|
|
3709
|
+
paramCount: 2,
|
|
3727
3710
|
},
|
|
3728
3711
|
};
|
|
3729
3712
|
|
|
@@ -3733,42 +3716,42 @@ var predicatesNormalExpression = {
|
|
|
3733
3716
|
var _b = __read(_a, 1), first = _b[0];
|
|
3734
3717
|
return isLitsFunction(first);
|
|
3735
3718
|
},
|
|
3736
|
-
|
|
3719
|
+
paramCount: 1,
|
|
3737
3720
|
},
|
|
3738
3721
|
'string?': {
|
|
3739
3722
|
evaluate: function (_a) {
|
|
3740
3723
|
var _b = __read(_a, 1), first = _b[0];
|
|
3741
3724
|
return typeof first === 'string';
|
|
3742
3725
|
},
|
|
3743
|
-
|
|
3726
|
+
paramCount: 1,
|
|
3744
3727
|
},
|
|
3745
3728
|
'number?': {
|
|
3746
3729
|
evaluate: function (_a) {
|
|
3747
3730
|
var _b = __read(_a, 1), first = _b[0];
|
|
3748
3731
|
return typeof first === 'number';
|
|
3749
3732
|
},
|
|
3750
|
-
|
|
3733
|
+
paramCount: 1,
|
|
3751
3734
|
},
|
|
3752
3735
|
'integer?': {
|
|
3753
3736
|
evaluate: function (_a) {
|
|
3754
3737
|
var _b = __read(_a, 1), first = _b[0];
|
|
3755
3738
|
return typeof first === 'number' && isNumber(first, { integer: true });
|
|
3756
3739
|
},
|
|
3757
|
-
|
|
3740
|
+
paramCount: 1,
|
|
3758
3741
|
},
|
|
3759
3742
|
'boolean?': {
|
|
3760
3743
|
evaluate: function (_a) {
|
|
3761
3744
|
var _b = __read(_a, 1), first = _b[0];
|
|
3762
3745
|
return typeof first === 'boolean';
|
|
3763
3746
|
},
|
|
3764
|
-
|
|
3747
|
+
paramCount: 1,
|
|
3765
3748
|
},
|
|
3766
3749
|
'nil?': {
|
|
3767
3750
|
evaluate: function (_a) {
|
|
3768
3751
|
var _b = __read(_a, 1), first = _b[0];
|
|
3769
3752
|
return first === null || first === undefined;
|
|
3770
3753
|
},
|
|
3771
|
-
|
|
3754
|
+
paramCount: 1,
|
|
3772
3755
|
},
|
|
3773
3756
|
'zero?': {
|
|
3774
3757
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3776,7 +3759,7 @@ var predicatesNormalExpression = {
|
|
|
3776
3759
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3777
3760
|
return first === 0;
|
|
3778
3761
|
},
|
|
3779
|
-
|
|
3762
|
+
paramCount: 1,
|
|
3780
3763
|
},
|
|
3781
3764
|
'pos?': {
|
|
3782
3765
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3784,7 +3767,7 @@ var predicatesNormalExpression = {
|
|
|
3784
3767
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3785
3768
|
return first > 0;
|
|
3786
3769
|
},
|
|
3787
|
-
|
|
3770
|
+
paramCount: 1,
|
|
3788
3771
|
},
|
|
3789
3772
|
'neg?': {
|
|
3790
3773
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3792,7 +3775,7 @@ var predicatesNormalExpression = {
|
|
|
3792
3775
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3793
3776
|
return first < 0;
|
|
3794
3777
|
},
|
|
3795
|
-
|
|
3778
|
+
paramCount: 1,
|
|
3796
3779
|
},
|
|
3797
3780
|
'even?': {
|
|
3798
3781
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3800,7 +3783,7 @@ var predicatesNormalExpression = {
|
|
|
3800
3783
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3801
3784
|
return first % 2 === 0;
|
|
3802
3785
|
},
|
|
3803
|
-
|
|
3786
|
+
paramCount: 1,
|
|
3804
3787
|
},
|
|
3805
3788
|
'odd?': {
|
|
3806
3789
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3808,42 +3791,42 @@ var predicatesNormalExpression = {
|
|
|
3808
3791
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3809
3792
|
return isNumber(first, { integer: true }) && first % 2 !== 0;
|
|
3810
3793
|
},
|
|
3811
|
-
|
|
3794
|
+
paramCount: 1,
|
|
3812
3795
|
},
|
|
3813
3796
|
'array?': {
|
|
3814
3797
|
evaluate: function (_a) {
|
|
3815
3798
|
var _b = __read(_a, 1), first = _b[0];
|
|
3816
3799
|
return Array.isArray(first);
|
|
3817
3800
|
},
|
|
3818
|
-
|
|
3801
|
+
paramCount: 1,
|
|
3819
3802
|
},
|
|
3820
3803
|
'coll?': {
|
|
3821
3804
|
evaluate: function (_a) {
|
|
3822
3805
|
var _b = __read(_a, 1), first = _b[0];
|
|
3823
3806
|
return isColl(first);
|
|
3824
3807
|
},
|
|
3825
|
-
|
|
3808
|
+
paramCount: 1,
|
|
3826
3809
|
},
|
|
3827
3810
|
'seq?': {
|
|
3828
3811
|
evaluate: function (_a) {
|
|
3829
3812
|
var _b = __read(_a, 1), first = _b[0];
|
|
3830
3813
|
return isSeq(first);
|
|
3831
3814
|
},
|
|
3832
|
-
|
|
3815
|
+
paramCount: 1,
|
|
3833
3816
|
},
|
|
3834
3817
|
'object?': {
|
|
3835
3818
|
evaluate: function (_a) {
|
|
3836
3819
|
var _b = __read(_a, 1), first = _b[0];
|
|
3837
3820
|
return isObj(first);
|
|
3838
3821
|
},
|
|
3839
|
-
|
|
3822
|
+
paramCount: 1,
|
|
3840
3823
|
},
|
|
3841
3824
|
'regexp?': {
|
|
3842
3825
|
evaluate: function (_a) {
|
|
3843
3826
|
var _b = __read(_a, 1), value = _b[0];
|
|
3844
3827
|
return isRegularExpression(value);
|
|
3845
3828
|
},
|
|
3846
|
-
|
|
3829
|
+
paramCount: 1,
|
|
3847
3830
|
},
|
|
3848
3831
|
'finite?': {
|
|
3849
3832
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3851,7 +3834,7 @@ var predicatesNormalExpression = {
|
|
|
3851
3834
|
assertNumber(value, sourceCodeInfo);
|
|
3852
3835
|
return Number.isFinite(value);
|
|
3853
3836
|
},
|
|
3854
|
-
|
|
3837
|
+
paramCount: 1,
|
|
3855
3838
|
},
|
|
3856
3839
|
'nan?': {
|
|
3857
3840
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3859,7 +3842,7 @@ var predicatesNormalExpression = {
|
|
|
3859
3842
|
assertNumber(value, sourceCodeInfo);
|
|
3860
3843
|
return Number.isNaN(value);
|
|
3861
3844
|
},
|
|
3862
|
-
|
|
3845
|
+
paramCount: 1,
|
|
3863
3846
|
},
|
|
3864
3847
|
'positive_infinity?': {
|
|
3865
3848
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3867,7 +3850,7 @@ var predicatesNormalExpression = {
|
|
|
3867
3850
|
assertNumber(value, sourceCodeInfo);
|
|
3868
3851
|
return value === Number.POSITIVE_INFINITY;
|
|
3869
3852
|
},
|
|
3870
|
-
|
|
3853
|
+
paramCount: 1,
|
|
3871
3854
|
},
|
|
3872
3855
|
'negative_infinity?': {
|
|
3873
3856
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3875,21 +3858,21 @@ var predicatesNormalExpression = {
|
|
|
3875
3858
|
assertNumber(value, sourceCodeInfo);
|
|
3876
3859
|
return value === Number.NEGATIVE_INFINITY;
|
|
3877
3860
|
},
|
|
3878
|
-
|
|
3861
|
+
paramCount: 1,
|
|
3879
3862
|
},
|
|
3880
3863
|
'true?': {
|
|
3881
3864
|
evaluate: function (_a) {
|
|
3882
3865
|
var _b = __read(_a, 1), value = _b[0];
|
|
3883
3866
|
return value === true;
|
|
3884
3867
|
},
|
|
3885
|
-
|
|
3868
|
+
paramCount: 1,
|
|
3886
3869
|
},
|
|
3887
3870
|
'false?': {
|
|
3888
3871
|
evaluate: function (_a) {
|
|
3889
3872
|
var _b = __read(_a, 1), value = _b[0];
|
|
3890
3873
|
return value === false;
|
|
3891
3874
|
},
|
|
3892
|
-
|
|
3875
|
+
paramCount: 1,
|
|
3893
3876
|
},
|
|
3894
3877
|
'empty?': {
|
|
3895
3878
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3903,7 +3886,7 @@ var predicatesNormalExpression = {
|
|
|
3903
3886
|
return coll.length === 0;
|
|
3904
3887
|
return Object.keys(coll).length === 0;
|
|
3905
3888
|
},
|
|
3906
|
-
|
|
3889
|
+
paramCount: 1,
|
|
3907
3890
|
},
|
|
3908
3891
|
'not_empty?': {
|
|
3909
3892
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3917,7 +3900,7 @@ var predicatesNormalExpression = {
|
|
|
3917
3900
|
return coll.length > 0;
|
|
3918
3901
|
return Object.keys(coll).length > 0;
|
|
3919
3902
|
},
|
|
3920
|
-
|
|
3903
|
+
paramCount: 1,
|
|
3921
3904
|
},
|
|
3922
3905
|
};
|
|
3923
3906
|
|
|
@@ -3936,7 +3919,7 @@ var regexpNormalExpression = {
|
|
|
3936
3919
|
_b.f = flags,
|
|
3937
3920
|
_b;
|
|
3938
3921
|
},
|
|
3939
|
-
|
|
3922
|
+
paramCount: { min: 1, max: 2 },
|
|
3940
3923
|
},
|
|
3941
3924
|
match: {
|
|
3942
3925
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3950,7 +3933,7 @@ var regexpNormalExpression = {
|
|
|
3950
3933
|
return __spreadArray([], __read(match), false);
|
|
3951
3934
|
return null;
|
|
3952
3935
|
},
|
|
3953
|
-
|
|
3936
|
+
paramCount: 2,
|
|
3954
3937
|
},
|
|
3955
3938
|
replace: {
|
|
3956
3939
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3961,7 +3944,7 @@ var regexpNormalExpression = {
|
|
|
3961
3944
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f)) : regexp;
|
|
3962
3945
|
return str.replace(matcher, value);
|
|
3963
3946
|
},
|
|
3964
|
-
|
|
3947
|
+
paramCount: 3,
|
|
3965
3948
|
},
|
|
3966
3949
|
replace_all: {
|
|
3967
3950
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3972,7 +3955,7 @@ var regexpNormalExpression = {
|
|
|
3972
3955
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f.includes('g') ? regexp.f : "".concat(regexp.f, "g"))) : regexp;
|
|
3973
3956
|
return str.replaceAll(matcher, value);
|
|
3974
3957
|
},
|
|
3975
|
-
|
|
3958
|
+
paramCount: 3,
|
|
3976
3959
|
},
|
|
3977
3960
|
};
|
|
3978
3961
|
|
|
@@ -3988,7 +3971,7 @@ var stringNormalExpression = {
|
|
|
3988
3971
|
assertNumber(third, sourceCodeInfo, { gte: second });
|
|
3989
3972
|
return (first).substring(second, third);
|
|
3990
3973
|
},
|
|
3991
|
-
|
|
3974
|
+
paramCount: { min: 2, max: 3 },
|
|
3992
3975
|
},
|
|
3993
3976
|
'string_repeat': {
|
|
3994
3977
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3997,7 +3980,7 @@ var stringNormalExpression = {
|
|
|
3997
3980
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
3998
3981
|
return str.repeat(count);
|
|
3999
3982
|
},
|
|
4000
|
-
|
|
3983
|
+
paramCount: 2,
|
|
4001
3984
|
},
|
|
4002
3985
|
'str': {
|
|
4003
3986
|
evaluate: function (params) {
|
|
@@ -4012,6 +3995,7 @@ var stringNormalExpression = {
|
|
|
4012
3995
|
return result + paramStr;
|
|
4013
3996
|
}, '');
|
|
4014
3997
|
},
|
|
3998
|
+
paramCount: {},
|
|
4015
3999
|
},
|
|
4016
4000
|
'number': {
|
|
4017
4001
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4022,7 +4006,7 @@ var stringNormalExpression = {
|
|
|
4022
4006
|
throw new LitsError("Could not convert '".concat(str, "' to a number."), sourceCodeInfo);
|
|
4023
4007
|
return number;
|
|
4024
4008
|
},
|
|
4025
|
-
|
|
4009
|
+
paramCount: 1,
|
|
4026
4010
|
},
|
|
4027
4011
|
'from_char_code': {
|
|
4028
4012
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4036,7 +4020,7 @@ var stringNormalExpression = {
|
|
|
4036
4020
|
throw new LitsError(error, sourceCodeInfo);
|
|
4037
4021
|
}
|
|
4038
4022
|
},
|
|
4039
|
-
|
|
4023
|
+
paramCount: 1,
|
|
4040
4024
|
},
|
|
4041
4025
|
'to_char_code': {
|
|
4042
4026
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4044,7 +4028,7 @@ var stringNormalExpression = {
|
|
|
4044
4028
|
assertString(str, sourceCodeInfo, { nonEmpty: true });
|
|
4045
4029
|
return asNonUndefined(str.codePointAt(0), sourceCodeInfo);
|
|
4046
4030
|
},
|
|
4047
|
-
|
|
4031
|
+
paramCount: 1,
|
|
4048
4032
|
},
|
|
4049
4033
|
'lower_case': {
|
|
4050
4034
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4052,7 +4036,7 @@ var stringNormalExpression = {
|
|
|
4052
4036
|
assertString(str, sourceCodeInfo);
|
|
4053
4037
|
return str.toLowerCase();
|
|
4054
4038
|
},
|
|
4055
|
-
|
|
4039
|
+
paramCount: 1,
|
|
4056
4040
|
},
|
|
4057
4041
|
'upper_case': {
|
|
4058
4042
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4060,7 +4044,7 @@ var stringNormalExpression = {
|
|
|
4060
4044
|
assertString(str, sourceCodeInfo);
|
|
4061
4045
|
return str.toUpperCase();
|
|
4062
4046
|
},
|
|
4063
|
-
|
|
4047
|
+
paramCount: 1,
|
|
4064
4048
|
},
|
|
4065
4049
|
'trim': {
|
|
4066
4050
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4068,7 +4052,7 @@ var stringNormalExpression = {
|
|
|
4068
4052
|
assertString(str, sourceCodeInfo);
|
|
4069
4053
|
return str.trim();
|
|
4070
4054
|
},
|
|
4071
|
-
|
|
4055
|
+
paramCount: 1,
|
|
4072
4056
|
},
|
|
4073
4057
|
'trim_left': {
|
|
4074
4058
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4076,7 +4060,7 @@ var stringNormalExpression = {
|
|
|
4076
4060
|
assertString(str, sourceCodeInfo);
|
|
4077
4061
|
return str.replace(/^\s+/, '');
|
|
4078
4062
|
},
|
|
4079
|
-
|
|
4063
|
+
paramCount: 1,
|
|
4080
4064
|
},
|
|
4081
4065
|
'trim_right': {
|
|
4082
4066
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4084,7 +4068,7 @@ var stringNormalExpression = {
|
|
|
4084
4068
|
assertString(str, sourceCodeInfo);
|
|
4085
4069
|
return str.replace(/\s+$/, '');
|
|
4086
4070
|
},
|
|
4087
|
-
|
|
4071
|
+
paramCount: 1,
|
|
4088
4072
|
},
|
|
4089
4073
|
'++': {
|
|
4090
4074
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -4108,7 +4092,7 @@ var stringNormalExpression = {
|
|
|
4108
4092
|
return "".concat(acc).concat(str);
|
|
4109
4093
|
}, first === null ? '' : "".concat(first));
|
|
4110
4094
|
},
|
|
4111
|
-
|
|
4095
|
+
paramCount: {},
|
|
4112
4096
|
},
|
|
4113
4097
|
'join': {
|
|
4114
4098
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4118,7 +4102,7 @@ var stringNormalExpression = {
|
|
|
4118
4102
|
assertString(delimiter, sourceCodeInfo);
|
|
4119
4103
|
return stringList.join(delimiter);
|
|
4120
4104
|
},
|
|
4121
|
-
|
|
4105
|
+
paramCount: 2,
|
|
4122
4106
|
},
|
|
4123
4107
|
'split': {
|
|
4124
4108
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4132,7 +4116,7 @@ var stringNormalExpression = {
|
|
|
4132
4116
|
: new RegExp(stringOrRegExpValue.s, stringOrRegExpValue.f);
|
|
4133
4117
|
return str.split(delimiter, limit);
|
|
4134
4118
|
},
|
|
4135
|
-
|
|
4119
|
+
paramCount: { min: 2, max: 3 },
|
|
4136
4120
|
},
|
|
4137
4121
|
'split_lines': {
|
|
4138
4122
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4140,7 +4124,7 @@ var stringNormalExpression = {
|
|
|
4140
4124
|
assertString(str, sourceCodeInfo);
|
|
4141
4125
|
return str.split((/\r\n|\n|\r/)).filter(function (line) { return line !== ''; });
|
|
4142
4126
|
},
|
|
4143
|
-
|
|
4127
|
+
paramCount: 1,
|
|
4144
4128
|
},
|
|
4145
4129
|
'pad_left': {
|
|
4146
4130
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4151,7 +4135,7 @@ var stringNormalExpression = {
|
|
|
4151
4135
|
assertString(padString, sourceCodeInfo);
|
|
4152
4136
|
return str.padStart(length, padString);
|
|
4153
4137
|
},
|
|
4154
|
-
|
|
4138
|
+
paramCount: { min: 2, max: 3 },
|
|
4155
4139
|
},
|
|
4156
4140
|
'pad_right': {
|
|
4157
4141
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4162,7 +4146,7 @@ var stringNormalExpression = {
|
|
|
4162
4146
|
assertString(padString, sourceCodeInfo);
|
|
4163
4147
|
return str.padEnd(length, padString);
|
|
4164
4148
|
},
|
|
4165
|
-
|
|
4149
|
+
paramCount: { min: 2, max: 3 },
|
|
4166
4150
|
},
|
|
4167
4151
|
'template': {
|
|
4168
4152
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4193,7 +4177,7 @@ var stringNormalExpression = {
|
|
|
4193
4177
|
}
|
|
4194
4178
|
}
|
|
4195
4179
|
},
|
|
4196
|
-
|
|
4180
|
+
paramCount: { min: 1, max: 10 },
|
|
4197
4181
|
},
|
|
4198
4182
|
'encode_base64': {
|
|
4199
4183
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4204,7 +4188,7 @@ var stringNormalExpression = {
|
|
|
4204
4188
|
return String.fromCharCode(Number.parseInt(p1, 16));
|
|
4205
4189
|
}));
|
|
4206
4190
|
},
|
|
4207
|
-
|
|
4191
|
+
paramCount: 1,
|
|
4208
4192
|
},
|
|
4209
4193
|
'decode_base64': {
|
|
4210
4194
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4222,7 +4206,7 @@ var stringNormalExpression = {
|
|
|
4222
4206
|
throw new LitsError(error, sourceCodeInfo);
|
|
4223
4207
|
}
|
|
4224
4208
|
},
|
|
4225
|
-
|
|
4209
|
+
paramCount: 1,
|
|
4226
4210
|
},
|
|
4227
4211
|
'encode_uri_component': {
|
|
4228
4212
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4230,7 +4214,7 @@ var stringNormalExpression = {
|
|
|
4230
4214
|
assertString(value, sourceCodeInfo);
|
|
4231
4215
|
return encodeURIComponent(value);
|
|
4232
4216
|
},
|
|
4233
|
-
|
|
4217
|
+
paramCount: 1,
|
|
4234
4218
|
},
|
|
4235
4219
|
'decode_uri_component': {
|
|
4236
4220
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4243,7 +4227,7 @@ var stringNormalExpression = {
|
|
|
4243
4227
|
throw new LitsError(error, sourceCodeInfo);
|
|
4244
4228
|
}
|
|
4245
4229
|
},
|
|
4246
|
-
|
|
4230
|
+
paramCount: 1,
|
|
4247
4231
|
},
|
|
4248
4232
|
'blank?': {
|
|
4249
4233
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4254,7 +4238,7 @@ var stringNormalExpression = {
|
|
|
4254
4238
|
assertString(value, sourceCodeInfo);
|
|
4255
4239
|
return blankRegexp.test(value);
|
|
4256
4240
|
},
|
|
4257
|
-
|
|
4241
|
+
paramCount: 1,
|
|
4258
4242
|
},
|
|
4259
4243
|
'capitalize': {
|
|
4260
4244
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4262,7 +4246,7 @@ var stringNormalExpression = {
|
|
|
4262
4246
|
assertString(str, sourceCodeInfo);
|
|
4263
4247
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
4264
4248
|
},
|
|
4265
|
-
|
|
4249
|
+
paramCount: 1,
|
|
4266
4250
|
},
|
|
4267
4251
|
};
|
|
4268
4252
|
var doubleDollarRegexp = /\$\$/g;
|
|
@@ -4293,14 +4277,14 @@ var functionalNormalExpression = {
|
|
|
4293
4277
|
var applyArray = __spreadArray(__spreadArray([], __read(params.slice(0, -1)), false), __read(last), false);
|
|
4294
4278
|
return executeFunction(func, applyArray, contextStack, sourceCodeInfo);
|
|
4295
4279
|
},
|
|
4296
|
-
|
|
4280
|
+
paramCount: { min: 2 },
|
|
4297
4281
|
},
|
|
4298
4282
|
identity: {
|
|
4299
4283
|
evaluate: function (_a) {
|
|
4300
4284
|
var _b = __read(_a, 1), value = _b[0];
|
|
4301
4285
|
return toAny(value);
|
|
4302
4286
|
},
|
|
4303
|
-
|
|
4287
|
+
paramCount: 1,
|
|
4304
4288
|
},
|
|
4305
4289
|
partial: {
|
|
4306
4290
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4314,7 +4298,7 @@ var functionalNormalExpression = {
|
|
|
4314
4298
|
_b.p = params,
|
|
4315
4299
|
_b;
|
|
4316
4300
|
},
|
|
4317
|
-
|
|
4301
|
+
paramCount: { min: 1 },
|
|
4318
4302
|
},
|
|
4319
4303
|
comp: {
|
|
4320
4304
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4332,6 +4316,7 @@ var functionalNormalExpression = {
|
|
|
4332
4316
|
_a.f = fns,
|
|
4333
4317
|
_a;
|
|
4334
4318
|
},
|
|
4319
|
+
paramCount: {},
|
|
4335
4320
|
},
|
|
4336
4321
|
constantly: {
|
|
4337
4322
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4344,7 +4329,7 @@ var functionalNormalExpression = {
|
|
|
4344
4329
|
_b.v = toAny(value),
|
|
4345
4330
|
_b;
|
|
4346
4331
|
},
|
|
4347
|
-
|
|
4332
|
+
paramCount: 1,
|
|
4348
4333
|
},
|
|
4349
4334
|
juxt: {
|
|
4350
4335
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4356,7 +4341,7 @@ var functionalNormalExpression = {
|
|
|
4356
4341
|
_a.f = fns,
|
|
4357
4342
|
_a;
|
|
4358
4343
|
},
|
|
4359
|
-
|
|
4344
|
+
paramCount: { min: 1 },
|
|
4360
4345
|
},
|
|
4361
4346
|
complement: {
|
|
4362
4347
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4369,7 +4354,7 @@ var functionalNormalExpression = {
|
|
|
4369
4354
|
_b.f = toAny(fn),
|
|
4370
4355
|
_b;
|
|
4371
4356
|
},
|
|
4372
|
-
|
|
4357
|
+
paramCount: 1,
|
|
4373
4358
|
},
|
|
4374
4359
|
every_pred: {
|
|
4375
4360
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4381,7 +4366,7 @@ var functionalNormalExpression = {
|
|
|
4381
4366
|
_a.f = fns,
|
|
4382
4367
|
_a;
|
|
4383
4368
|
},
|
|
4384
|
-
|
|
4369
|
+
paramCount: { min: 1 },
|
|
4385
4370
|
},
|
|
4386
4371
|
some_pred: {
|
|
4387
4372
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4393,7 +4378,7 @@ var functionalNormalExpression = {
|
|
|
4393
4378
|
_a.f = fns,
|
|
4394
4379
|
_a;
|
|
4395
4380
|
},
|
|
4396
|
-
|
|
4381
|
+
paramCount: { min: 1 },
|
|
4397
4382
|
},
|
|
4398
4383
|
fnil: {
|
|
4399
4384
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4407,7 +4392,7 @@ var functionalNormalExpression = {
|
|
|
4407
4392
|
_b.p = params,
|
|
4408
4393
|
_b;
|
|
4409
4394
|
},
|
|
4410
|
-
|
|
4395
|
+
paramCount: { min: 2 },
|
|
4411
4396
|
},
|
|
4412
4397
|
};
|
|
4413
4398
|
|
|
@@ -4426,7 +4411,7 @@ var andSpecialExpression = {
|
|
|
4426
4411
|
};
|
|
4427
4412
|
return node;
|
|
4428
4413
|
},
|
|
4429
|
-
|
|
4414
|
+
paramCount: {},
|
|
4430
4415
|
evaluate: function (node, contextStack, _a) {
|
|
4431
4416
|
var e_1, _b;
|
|
4432
4417
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4470,14 +4455,14 @@ function getCommonPolishSpecialExpressionParser(name) {
|
|
|
4470
4455
|
|
|
4471
4456
|
var commentSpecialExpression = {
|
|
4472
4457
|
polishParse: getCommonPolishSpecialExpressionParser('comment'),
|
|
4473
|
-
|
|
4458
|
+
paramCount: {},
|
|
4474
4459
|
evaluate: function () { return null; },
|
|
4475
4460
|
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4476
4461
|
};
|
|
4477
4462
|
|
|
4478
4463
|
var condSpecialExpression = {
|
|
4479
4464
|
polishParse: getCommonPolishSpecialExpressionParser('cond'),
|
|
4480
|
-
|
|
4465
|
+
paramCount: { even: true },
|
|
4481
4466
|
evaluate: function (node, contextStack, _a) {
|
|
4482
4467
|
var e_1, _b;
|
|
4483
4468
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4507,7 +4492,7 @@ var condSpecialExpression = {
|
|
|
4507
4492
|
|
|
4508
4493
|
var switchSpecialExpression = {
|
|
4509
4494
|
polishParse: getCommonPolishSpecialExpressionParser('switch'),
|
|
4510
|
-
|
|
4495
|
+
paramCount: { odd: true },
|
|
4511
4496
|
evaluate: function (node, contextStack, _a) {
|
|
4512
4497
|
var e_1, _b;
|
|
4513
4498
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4538,7 +4523,7 @@ var switchSpecialExpression = {
|
|
|
4538
4523
|
|
|
4539
4524
|
var declaredSpecialExpression = {
|
|
4540
4525
|
polishParse: getCommonPolishSpecialExpressionParser('defined?'),
|
|
4541
|
-
|
|
4526
|
+
paramCount: 1,
|
|
4542
4527
|
evaluate: function (node, contextStack) {
|
|
4543
4528
|
var lookUpResult = contextStack.lookUp(node.p[0]);
|
|
4544
4529
|
return lookUpResult !== null;
|
|
@@ -4586,7 +4571,7 @@ var defSpecialExpression = {
|
|
|
4586
4571
|
assertSymbolNode(node.p[0], (_b = getTokenDebugData(node.token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
4587
4572
|
return node;
|
|
4588
4573
|
},
|
|
4589
|
-
|
|
4574
|
+
paramCount: 2,
|
|
4590
4575
|
evaluate: function (node, contextStack, _a) {
|
|
4591
4576
|
var _b;
|
|
4592
4577
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4611,7 +4596,7 @@ var defSpecialExpression = {
|
|
|
4611
4596
|
|
|
4612
4597
|
var doSpecialExpression = {
|
|
4613
4598
|
polishParse: getCommonPolishSpecialExpressionParser('do'),
|
|
4614
|
-
|
|
4599
|
+
paramCount: {},
|
|
4615
4600
|
evaluate: function (node, contextStack, _a) {
|
|
4616
4601
|
var e_1, _b;
|
|
4617
4602
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4683,7 +4668,7 @@ var defnSpecialExpression = {
|
|
|
4683
4668
|
};
|
|
4684
4669
|
return node;
|
|
4685
4670
|
},
|
|
4686
|
-
|
|
4671
|
+
paramCount: {},
|
|
4687
4672
|
evaluate: function (node, contextStack, _a) {
|
|
4688
4673
|
var _b;
|
|
4689
4674
|
var _c, _d;
|
|
@@ -4722,7 +4707,7 @@ var fnSpecialExpression = {
|
|
|
4722
4707
|
};
|
|
4723
4708
|
return node;
|
|
4724
4709
|
},
|
|
4725
|
-
|
|
4710
|
+
paramCount: {},
|
|
4726
4711
|
evaluate: function (node, contextStack, _a) {
|
|
4727
4712
|
var _b;
|
|
4728
4713
|
var _c;
|
|
@@ -4947,7 +4932,7 @@ function parseFunctionArguments(tokenStream, parseState, parsers) {
|
|
|
4947
4932
|
|
|
4948
4933
|
var ifSpecialExpression = {
|
|
4949
4934
|
polishParse: getCommonPolishSpecialExpressionParser('if'),
|
|
4950
|
-
|
|
4935
|
+
paramCount: { min: 2, max: 3 },
|
|
4951
4936
|
evaluate: function (node, contextStack, _a) {
|
|
4952
4937
|
var _b;
|
|
4953
4938
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4971,7 +4956,7 @@ var ifSpecialExpression = {
|
|
|
4971
4956
|
|
|
4972
4957
|
var unlessSpecialExpression = {
|
|
4973
4958
|
polishParse: getCommonPolishSpecialExpressionParser('unless'),
|
|
4974
|
-
|
|
4959
|
+
paramCount: { min: 2, max: 3 },
|
|
4975
4960
|
evaluate: function (node, contextStack, _a) {
|
|
4976
4961
|
var _b;
|
|
4977
4962
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5008,7 +4993,7 @@ var letSpecialExpression = {
|
|
|
5008
4993
|
};
|
|
5009
4994
|
return node;
|
|
5010
4995
|
},
|
|
5011
|
-
|
|
4996
|
+
paramCount: 0,
|
|
5012
4997
|
evaluate: function (node, contextStack, _a) {
|
|
5013
4998
|
var e_1, _b;
|
|
5014
4999
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5063,7 +5048,7 @@ var loopSpecialExpression = {
|
|
|
5063
5048
|
};
|
|
5064
5049
|
return node;
|
|
5065
5050
|
},
|
|
5066
|
-
|
|
5051
|
+
paramCount: {},
|
|
5067
5052
|
evaluate: function (node, contextStack, _a) {
|
|
5068
5053
|
var _b;
|
|
5069
5054
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5329,7 +5314,7 @@ var forSpecialExpression = {
|
|
|
5329
5314
|
};
|
|
5330
5315
|
return node;
|
|
5331
5316
|
},
|
|
5332
|
-
|
|
5317
|
+
paramCount: 1,
|
|
5333
5318
|
evaluate: function (node, contextStack, helpers) { return evaluateLoop(true, node, contextStack, helpers.evaluateAstNode); },
|
|
5334
5319
|
findUnresolvedIdentifiers: function (node, contextStack, _a) {
|
|
5335
5320
|
var findUnresolvedIdentifiers = _a.findUnresolvedIdentifiers, builtin = _a.builtin;
|
|
@@ -5351,7 +5336,7 @@ var doseqSpecialExpression = {
|
|
|
5351
5336
|
};
|
|
5352
5337
|
return node;
|
|
5353
5338
|
},
|
|
5354
|
-
|
|
5339
|
+
paramCount: 1,
|
|
5355
5340
|
evaluate: function (node, contextStack, helpers) {
|
|
5356
5341
|
evaluateLoop(false, node, contextStack, helpers.evaluateAstNode);
|
|
5357
5342
|
return null;
|
|
@@ -5364,7 +5349,7 @@ var doseqSpecialExpression = {
|
|
|
5364
5349
|
|
|
5365
5350
|
var orSpecialExpression = {
|
|
5366
5351
|
polishParse: getCommonPolishSpecialExpressionParser('||'),
|
|
5367
|
-
|
|
5352
|
+
paramCount: {},
|
|
5368
5353
|
evaluate: function (node, contextStack, _a) {
|
|
5369
5354
|
var e_1, _b;
|
|
5370
5355
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5394,7 +5379,7 @@ var orSpecialExpression = {
|
|
|
5394
5379
|
|
|
5395
5380
|
var qqSpecialExpression = {
|
|
5396
5381
|
polishParse: getCommonPolishSpecialExpressionParser('??'),
|
|
5397
|
-
|
|
5382
|
+
paramCount: { min: 1, max: 2 },
|
|
5398
5383
|
evaluate: function (node, contextStack, _a) {
|
|
5399
5384
|
var _b;
|
|
5400
5385
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5426,7 +5411,7 @@ var recurSpecialExpression = {
|
|
|
5426
5411
|
};
|
|
5427
5412
|
return node;
|
|
5428
5413
|
},
|
|
5429
|
-
|
|
5414
|
+
paramCount: {},
|
|
5430
5415
|
evaluate: function (node, contextStack, _a) {
|
|
5431
5416
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5432
5417
|
var params = node.p.map(function (paramNode) { return evaluateAstNode(paramNode, contextStack); });
|
|
@@ -5440,7 +5425,7 @@ var recurSpecialExpression = {
|
|
|
5440
5425
|
|
|
5441
5426
|
var throwSpecialExpression = {
|
|
5442
5427
|
polishParse: getCommonPolishSpecialExpressionParser('throw'),
|
|
5443
|
-
|
|
5428
|
+
paramCount: 1,
|
|
5444
5429
|
evaluate: function (node, contextStack, _a) {
|
|
5445
5430
|
var _b, _c;
|
|
5446
5431
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5481,7 +5466,7 @@ var trySpecialExpression = {
|
|
|
5481
5466
|
};
|
|
5482
5467
|
return node;
|
|
5483
5468
|
},
|
|
5484
|
-
|
|
5469
|
+
paramCount: 1,
|
|
5485
5470
|
evaluate: function (node, contextStack, _a) {
|
|
5486
5471
|
var _b;
|
|
5487
5472
|
var _c;
|
|
@@ -5580,6 +5565,7 @@ var ContextStackImpl = /** @class */ (function () {
|
|
|
5580
5565
|
if (normalExpressionKeys.includes(name)) {
|
|
5581
5566
|
throw new Error("Cannot shadow builtin function \"".concat(name, "\""));
|
|
5582
5567
|
}
|
|
5568
|
+
this.addValue(name, value);
|
|
5583
5569
|
this.globalContext[name] = { value: value };
|
|
5584
5570
|
};
|
|
5585
5571
|
ContextStackImpl.prototype.addValue = function (name, value) {
|
|
@@ -5917,8 +5903,9 @@ function evaluate(ast, contextStack) {
|
|
|
5917
5903
|
var e_1, _a;
|
|
5918
5904
|
var result = null;
|
|
5919
5905
|
var safeAstNode = ast.hasDebugData ? JSON.parse(JSON.stringify(ast)) : ast;
|
|
5920
|
-
if (safeAstNode.hasDebugData)
|
|
5906
|
+
if (safeAstNode.hasDebugData) {
|
|
5921
5907
|
removeCommenNodes(safeAstNode);
|
|
5908
|
+
}
|
|
5922
5909
|
try {
|
|
5923
5910
|
for (var _b = __values(safeAstNode.b), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
5924
5911
|
var node = _c.value;
|
|
@@ -6313,7 +6300,6 @@ function getPrecedence(operatorSign) {
|
|
|
6313
6300
|
}
|
|
6314
6301
|
}
|
|
6315
6302
|
function createNamedNormalExpressionNode(name, params, token) {
|
|
6316
|
-
var _a;
|
|
6317
6303
|
var node = {
|
|
6318
6304
|
t: AstNodeType.NormalExpression,
|
|
6319
6305
|
n: name,
|
|
@@ -6322,7 +6308,7 @@ function createNamedNormalExpressionNode(name, params, token) {
|
|
|
6322
6308
|
};
|
|
6323
6309
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
6324
6310
|
if (builtinExpression) {
|
|
6325
|
-
(
|
|
6311
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
6326
6312
|
}
|
|
6327
6313
|
return node;
|
|
6328
6314
|
}
|
|
@@ -6423,7 +6409,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6423
6409
|
AlgebraicParser.prototype.parse = function () {
|
|
6424
6410
|
var nodes = [];
|
|
6425
6411
|
while (!this.isAtEnd()) {
|
|
6426
|
-
nodes.push(this.parseExpression());
|
|
6412
|
+
nodes.push(this.parseExpression(0, true));
|
|
6427
6413
|
if (!isA_OperatorToken(this.peek(), ';')) {
|
|
6428
6414
|
break;
|
|
6429
6415
|
}
|
|
@@ -6431,9 +6417,10 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6431
6417
|
}
|
|
6432
6418
|
return nodes;
|
|
6433
6419
|
};
|
|
6434
|
-
AlgebraicParser.prototype.parseExpression = function (precedence) {
|
|
6435
|
-
var _a;
|
|
6420
|
+
AlgebraicParser.prototype.parseExpression = function (precedence, moduleScope) {
|
|
6421
|
+
var _a, _b;
|
|
6436
6422
|
if (precedence === void 0) { precedence = 0; }
|
|
6423
|
+
if (moduleScope === void 0) { moduleScope = false; }
|
|
6437
6424
|
var firstToken = this.peek();
|
|
6438
6425
|
var left;
|
|
6439
6426
|
if (isA_SymbolToken(firstToken)) {
|
|
@@ -6469,6 +6456,9 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6469
6456
|
return this.parseFunction(firstToken);
|
|
6470
6457
|
}
|
|
6471
6458
|
else if (isA_ReservedSymbolToken(firstToken, 'export')) {
|
|
6459
|
+
if (!moduleScope) {
|
|
6460
|
+
throw new LitsError('export is only allowed in module scope', (_a = getTokenDebugData(firstToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6461
|
+
}
|
|
6472
6462
|
return this.parseExport(firstToken);
|
|
6473
6463
|
}
|
|
6474
6464
|
left || (left = this.parseOperand());
|
|
@@ -6506,7 +6496,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6506
6496
|
operator = this.peek();
|
|
6507
6497
|
}
|
|
6508
6498
|
if (!left) {
|
|
6509
|
-
throw new LitsError('Expected operand', (
|
|
6499
|
+
throw new LitsError('Expected operand', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6510
6500
|
}
|
|
6511
6501
|
return left;
|
|
6512
6502
|
};
|
|
@@ -6614,32 +6604,6 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6614
6604
|
return parseReservedSymbol(this.tokenStream, this.parseState);
|
|
6615
6605
|
case 'RegexpShorthand':
|
|
6616
6606
|
return parseRegexpShorthand(this.tokenStream, this.parseState);
|
|
6617
|
-
case 'PolNotation': {
|
|
6618
|
-
this.parseState.algebraic = false;
|
|
6619
|
-
var astNodes = [];
|
|
6620
|
-
this.advance();
|
|
6621
|
-
do {
|
|
6622
|
-
astNodes.push(this.parseState.parseToken(this.tokenStream, this.parseState));
|
|
6623
|
-
} while (!isEndNotationToken(this.peek()));
|
|
6624
|
-
this.advance();
|
|
6625
|
-
this.parseState.algebraic = true;
|
|
6626
|
-
if (astNodes.length === 1) {
|
|
6627
|
-
return astNodes[0];
|
|
6628
|
-
}
|
|
6629
|
-
return {
|
|
6630
|
-
t: AstNodeType.SpecialExpression,
|
|
6631
|
-
n: 'do',
|
|
6632
|
-
p: astNodes,
|
|
6633
|
-
token: getTokenDebugData(token) && token,
|
|
6634
|
-
};
|
|
6635
|
-
}
|
|
6636
|
-
case 'AlgNotation': {
|
|
6637
|
-
this.advance();
|
|
6638
|
-
var node = this.parseOperand();
|
|
6639
|
-
assertEndNotationToken(this.peek());
|
|
6640
|
-
this.advance();
|
|
6641
|
-
return node;
|
|
6642
|
-
}
|
|
6643
6607
|
default:
|
|
6644
6608
|
throw new LitsError("Unknown token type: ".concat(tokenType), (_b = getTokenDebugData(token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6645
6609
|
}
|
|
@@ -6744,7 +6708,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6744
6708
|
p: params,
|
|
6745
6709
|
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
6746
6710
|
};
|
|
6747
|
-
builtin.specialExpressions[node.n].
|
|
6711
|
+
assertNumberOfParams(builtin.specialExpressions[node.n].paramCount, node);
|
|
6748
6712
|
return node;
|
|
6749
6713
|
}
|
|
6750
6714
|
case 'fn':
|
|
@@ -6797,7 +6761,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6797
6761
|
}
|
|
6798
6762
|
};
|
|
6799
6763
|
AlgebraicParser.prototype.parseFunctionArguments = function () {
|
|
6800
|
-
var _a, _b, _c, _d
|
|
6764
|
+
var _a, _b, _c, _d;
|
|
6801
6765
|
var firstToken = this.peek();
|
|
6802
6766
|
if (isA_SymbolToken(firstToken)) {
|
|
6803
6767
|
this.advance();
|
|
@@ -6812,62 +6776,54 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6812
6776
|
}
|
|
6813
6777
|
this.advance();
|
|
6814
6778
|
var rest = false;
|
|
6815
|
-
var letBindingObject;
|
|
6816
6779
|
var args = [];
|
|
6817
6780
|
var restArg;
|
|
6818
|
-
while (!this.isAtEnd() && !isRParenToken(this.peek())) {
|
|
6819
|
-
if (
|
|
6820
|
-
throw new LitsError('Expected right parentheses', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6821
|
-
}
|
|
6822
|
-
if (isLBraceToken(this.peek())) {
|
|
6823
|
-
letBindingObject = this.parseObject();
|
|
6824
|
-
}
|
|
6825
|
-
else {
|
|
6826
|
-
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6827
|
-
if (rest) {
|
|
6828
|
-
throw new LitsError('Multiple spread operators in lambda function', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6829
|
-
}
|
|
6830
|
-
this.advance();
|
|
6831
|
-
rest = true;
|
|
6832
|
-
}
|
|
6833
|
-
var symbolToken = this.peek();
|
|
6834
|
-
if (!isA_SymbolToken(symbolToken)) {
|
|
6835
|
-
throw new LitsError('Expected symbol', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6836
|
-
}
|
|
6781
|
+
while (!this.isAtEnd() && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6782
|
+
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6837
6783
|
if (rest) {
|
|
6838
|
-
|
|
6839
|
-
}
|
|
6840
|
-
else {
|
|
6841
|
-
args.push(symbolToken[1]);
|
|
6784
|
+
throw new LitsError('Multiple spread operators in lambda function', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6842
6785
|
}
|
|
6843
6786
|
this.advance();
|
|
6787
|
+
rest = true;
|
|
6844
6788
|
}
|
|
6845
|
-
|
|
6846
|
-
|
|
6789
|
+
var symbolToken = this.peek();
|
|
6790
|
+
if (!isA_SymbolToken(symbolToken)) {
|
|
6791
|
+
throw new LitsError('Expected symbol', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6792
|
+
}
|
|
6793
|
+
if (rest) {
|
|
6794
|
+
restArg = symbolToken[1];
|
|
6795
|
+
}
|
|
6796
|
+
else {
|
|
6797
|
+
args.push(symbolToken[1]);
|
|
6798
|
+
}
|
|
6799
|
+
this.advance();
|
|
6800
|
+
if (!isA_OperatorToken(this.peek(), ',') && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6801
|
+
throw new LitsError('Expected comma or closing parenthesis', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6847
6802
|
}
|
|
6848
6803
|
if (isA_OperatorToken(this.peek(), ',')) {
|
|
6849
6804
|
this.advance();
|
|
6850
6805
|
}
|
|
6851
6806
|
}
|
|
6852
6807
|
var arity = restArg !== undefined ? { min: args.length } : args.length;
|
|
6808
|
+
// let bindings, to be able to pass on values in the context down to the body
|
|
6809
|
+
// This is needed since lits is dynamically scoped
|
|
6810
|
+
// E.g.
|
|
6811
|
+
// x => y => x + y // would not work, x is not available in the second lambda
|
|
6812
|
+
// x => (y, let x = x) => x + y // would work, x is available in the second lambda
|
|
6813
|
+
var bindingNodess = [];
|
|
6814
|
+
var token = this.peek();
|
|
6815
|
+
while (isA_SymbolToken(token, 'let')) {
|
|
6816
|
+
var letNode = this.parseLet(token, true);
|
|
6817
|
+
bindingNodess.push(letNode.bs[0]);
|
|
6818
|
+
token = this.peek();
|
|
6819
|
+
}
|
|
6853
6820
|
if (!isRParenToken(this.peek())) {
|
|
6854
|
-
throw new LitsError('Expected closing parenthesis', (
|
|
6821
|
+
throw new LitsError('Expected closing parenthesis', (_d = getTokenDebugData(this.peek())) === null || _d === void 0 ? void 0 : _d.sourceCodeInfo);
|
|
6855
6822
|
}
|
|
6856
|
-
var letBindings = letBindingObject ? arrayToPairs(letBindingObject.p) : [];
|
|
6857
6823
|
var functionArguments = {
|
|
6858
6824
|
m: args,
|
|
6859
6825
|
r: restArg,
|
|
6860
|
-
b:
|
|
6861
|
-
var key = pair[0];
|
|
6862
|
-
var value = pair[1];
|
|
6863
|
-
return {
|
|
6864
|
-
t: AstNodeType.Binding,
|
|
6865
|
-
n: key.v,
|
|
6866
|
-
v: value,
|
|
6867
|
-
p: [],
|
|
6868
|
-
token: getTokenDebugData(key.token) && key.token,
|
|
6869
|
-
};
|
|
6870
|
-
}),
|
|
6826
|
+
b: bindingNodess,
|
|
6871
6827
|
};
|
|
6872
6828
|
this.advance();
|
|
6873
6829
|
return {
|
|
@@ -7317,6 +7273,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
7317
7273
|
}
|
|
7318
7274
|
assertA_ReservedSymbolToken(this.peek(), 'end');
|
|
7319
7275
|
this.advance();
|
|
7276
|
+
assertA_OperatorToken(this.peek(), ';');
|
|
7320
7277
|
var fnNode = {
|
|
7321
7278
|
t: AstNodeType.SpecialExpression,
|
|
7322
7279
|
n: 'fn',
|
|
@@ -7364,27 +7321,49 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
7364
7321
|
AlgebraicParser.prototype.parseExport = function (token) {
|
|
7365
7322
|
var _a;
|
|
7366
7323
|
this.advance();
|
|
7367
|
-
|
|
7368
|
-
|
|
7324
|
+
if (isA_SymbolToken(this.peek(), 'let')) {
|
|
7325
|
+
this.advance();
|
|
7326
|
+
var symbol = parseSymbol(this.tokenStream, this.parseState);
|
|
7327
|
+
assertA_OperatorToken(this.peek(), '=');
|
|
7328
|
+
this.advance();
|
|
7329
|
+
var value = this.parseExpression();
|
|
7330
|
+
assertA_OperatorToken(this.peek(), ';');
|
|
7369
7331
|
return {
|
|
7370
7332
|
t: AstNodeType.SpecialExpression,
|
|
7371
7333
|
n: 'def',
|
|
7372
|
-
p: [symbol,
|
|
7334
|
+
p: [symbol, value],
|
|
7335
|
+
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
7336
|
+
};
|
|
7337
|
+
}
|
|
7338
|
+
else if (isA_ReservedSymbolToken(this.peek(), 'function')) {
|
|
7339
|
+
this.advance();
|
|
7340
|
+
var symbol = parseSymbol(this.tokenStream, this.parseState);
|
|
7341
|
+
var _b = this.parseFunctionArguments(), functionArguments = _b.functionArguments, arity = _b.arity;
|
|
7342
|
+
var body = [];
|
|
7343
|
+
while (!this.isAtEnd() && !isA_ReservedSymbolToken(this.peek(), 'end')) {
|
|
7344
|
+
body.push(this.parseExpression());
|
|
7345
|
+
if (isA_OperatorToken(this.peek(), ';')) {
|
|
7346
|
+
this.advance();
|
|
7347
|
+
}
|
|
7348
|
+
}
|
|
7349
|
+
assertA_ReservedSymbolToken(this.peek(), 'end');
|
|
7350
|
+
this.advance();
|
|
7351
|
+
return {
|
|
7352
|
+
t: AstNodeType.SpecialExpression,
|
|
7353
|
+
n: 'defn',
|
|
7354
|
+
f: symbol,
|
|
7355
|
+
p: [],
|
|
7356
|
+
o: [{
|
|
7357
|
+
as: functionArguments,
|
|
7358
|
+
b: body,
|
|
7359
|
+
a: arity,
|
|
7360
|
+
}],
|
|
7373
7361
|
token: getTokenDebugData(token) && token,
|
|
7374
7362
|
};
|
|
7375
7363
|
}
|
|
7376
|
-
|
|
7377
|
-
throw new LitsError('Expected
|
|
7364
|
+
else {
|
|
7365
|
+
throw new LitsError('Expected let or function', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
7378
7366
|
}
|
|
7379
|
-
this.advance();
|
|
7380
|
-
var value = this.parseExpression();
|
|
7381
|
-
assertA_OperatorToken(this.peek(), ';');
|
|
7382
|
-
return {
|
|
7383
|
-
t: AstNodeType.SpecialExpression,
|
|
7384
|
-
n: 'def',
|
|
7385
|
-
p: [symbol, value],
|
|
7386
|
-
token: getTokenDebugData(token) && token,
|
|
7387
|
-
};
|
|
7388
7367
|
};
|
|
7389
7368
|
return AlgebraicParser;
|
|
7390
7369
|
}());
|
|
@@ -7457,7 +7436,7 @@ function parseObjectLitteral(tokenStream, parseState) {
|
|
|
7457
7436
|
p: params,
|
|
7458
7437
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
7459
7438
|
};
|
|
7460
|
-
|
|
7439
|
+
assertNumberOfParams({ even: true }, node);
|
|
7461
7440
|
return node;
|
|
7462
7441
|
}
|
|
7463
7442
|
var placeholderRegexp = /^%([1-9]\d?)?$/;
|
|
@@ -7563,7 +7542,7 @@ function parseBinding(tokenStream, parseState) {
|
|
|
7563
7542
|
return node;
|
|
7564
7543
|
}
|
|
7565
7544
|
function parseNormalExpression(tokenStream, parseState) {
|
|
7566
|
-
var _a
|
|
7545
|
+
var _a;
|
|
7567
7546
|
var startBracketToken = tokenStream.hasDebugData ? asLParenToken(tokenStream.tokens[parseState.position]) : undefined;
|
|
7568
7547
|
parseState.position += 1;
|
|
7569
7548
|
var fnNode = parseState.parseToken(tokenStream, parseState);
|
|
@@ -7587,7 +7566,7 @@ function parseNormalExpression(tokenStream, parseState) {
|
|
|
7587
7566
|
};
|
|
7588
7567
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
7589
7568
|
if (builtinExpression) {
|
|
7590
|
-
(
|
|
7569
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
7591
7570
|
}
|
|
7592
7571
|
return node;
|
|
7593
7572
|
}
|
|
@@ -7596,7 +7575,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7596
7575
|
var firstToken = asLParenToken(tokenStream.tokens[parseState.position++]);
|
|
7597
7576
|
var nameToken = asP_SymbolToken(tokenStream.tokens[parseState.position++]);
|
|
7598
7577
|
var expressionName = nameToken[1];
|
|
7599
|
-
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse,
|
|
7578
|
+
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse, paramCount = _b.paramCount;
|
|
7600
7579
|
var node = parse(tokenStream, parseState, firstToken, {
|
|
7601
7580
|
parseExpression: parseExpression,
|
|
7602
7581
|
parseTokensUntilClosingBracket: parseTokensUntilClosingBracket,
|
|
@@ -7605,7 +7584,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7605
7584
|
parseBindings: parseBindings,
|
|
7606
7585
|
parseArgument: parseArgument,
|
|
7607
7586
|
});
|
|
7608
|
-
|
|
7587
|
+
assertNumberOfParams(paramCount, node);
|
|
7609
7588
|
return node;
|
|
7610
7589
|
}
|
|
7611
7590
|
function parsePolishToken(tokenStream, parseState) {
|
|
@@ -7635,47 +7614,12 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7635
7614
|
return parseFnShorthand(tokenStream, parseState);
|
|
7636
7615
|
case 'P_Comment':
|
|
7637
7616
|
return parseComment(tokenStream, parseState);
|
|
7638
|
-
case 'AlgNotation': {
|
|
7639
|
-
parseState.position += 1;
|
|
7640
|
-
parseState.algebraic = true;
|
|
7641
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7642
|
-
var nodes = algebraicParser.parse();
|
|
7643
|
-
assertEndNotationToken(tokenStream.tokens[parseState.position++]);
|
|
7644
|
-
parseState.algebraic = false;
|
|
7645
|
-
if (nodes.length === 1) {
|
|
7646
|
-
return nodes[0];
|
|
7647
|
-
}
|
|
7648
|
-
return {
|
|
7649
|
-
t: AstNodeType.SpecialExpression,
|
|
7650
|
-
n: 'do',
|
|
7651
|
-
p: nodes,
|
|
7652
|
-
token: nodes[0].token,
|
|
7653
|
-
};
|
|
7654
|
-
}
|
|
7655
|
-
case 'PolNotation': {
|
|
7656
|
-
var astNodes = [];
|
|
7657
|
-
parseState.position += 1;
|
|
7658
|
-
do {
|
|
7659
|
-
astNodes.push(parsePolishToken(tokenStream, parseState));
|
|
7660
|
-
} while (!isEndNotationToken(asToken(tokenStream.tokens[parseState.position])));
|
|
7661
|
-
parseState.position += 1;
|
|
7662
|
-
if (astNodes.length === 1) {
|
|
7663
|
-
return astNodes[0];
|
|
7664
|
-
}
|
|
7665
|
-
return {
|
|
7666
|
-
t: AstNodeType.SpecialExpression,
|
|
7667
|
-
n: 'do',
|
|
7668
|
-
p: astNodes,
|
|
7669
|
-
token: astNodes[0].token,
|
|
7670
|
-
};
|
|
7671
|
-
}
|
|
7672
7617
|
case 'P_CollectionAccessor':
|
|
7673
7618
|
case 'P_Modifier':
|
|
7674
7619
|
case 'RParen':
|
|
7675
7620
|
case 'RBracket':
|
|
7676
7621
|
case 'RBrace':
|
|
7677
7622
|
case 'P_Whitespace':
|
|
7678
|
-
case 'EndNotation':
|
|
7679
7623
|
break;
|
|
7680
7624
|
/* v8 ignore next 2 */
|
|
7681
7625
|
default:
|
|
@@ -7685,19 +7629,24 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7685
7629
|
}
|
|
7686
7630
|
|
|
7687
7631
|
function parse(tokenStream) {
|
|
7688
|
-
|
|
7689
|
-
var
|
|
7632
|
+
tokenStream = removeUnnecessaryTokens(tokenStream);
|
|
7633
|
+
var algebraic = tokenStream.algebraic;
|
|
7690
7634
|
var ast = {
|
|
7691
7635
|
b: [],
|
|
7692
|
-
hasDebugData:
|
|
7636
|
+
hasDebugData: tokenStream.hasDebugData,
|
|
7693
7637
|
};
|
|
7694
7638
|
var parseState = {
|
|
7695
7639
|
position: 0,
|
|
7696
|
-
algebraic: (_a = safeTokenStream.algebraic) !== null && _a !== void 0 ? _a : false,
|
|
7697
7640
|
parseToken: parseToken,
|
|
7698
7641
|
};
|
|
7699
|
-
|
|
7700
|
-
|
|
7642
|
+
if (algebraic) {
|
|
7643
|
+
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7644
|
+
ast.b = algebraicParser.parse();
|
|
7645
|
+
}
|
|
7646
|
+
else {
|
|
7647
|
+
while (parseState.position < tokenStream.tokens.length) {
|
|
7648
|
+
ast.b.push(parseToken(tokenStream, parseState));
|
|
7649
|
+
}
|
|
7701
7650
|
}
|
|
7702
7651
|
return ast;
|
|
7703
7652
|
}
|
|
@@ -7715,19 +7664,6 @@ function removeUnnecessaryTokens(tokenStream) {
|
|
|
7715
7664
|
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
7716
7665
|
}
|
|
7717
7666
|
function parseToken(tokenStream, parseState) {
|
|
7718
|
-
if (parseState.algebraic) {
|
|
7719
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7720
|
-
var nodes = algebraicParser.parse();
|
|
7721
|
-
if (nodes.length === 1) {
|
|
7722
|
-
return nodes[0];
|
|
7723
|
-
}
|
|
7724
|
-
return {
|
|
7725
|
-
t: AstNodeType.SpecialExpression,
|
|
7726
|
-
n: 'do',
|
|
7727
|
-
p: nodes,
|
|
7728
|
-
token: nodes[0].token,
|
|
7729
|
-
};
|
|
7730
|
-
}
|
|
7731
7667
|
return parsePolishToken(tokenStream, parseState);
|
|
7732
7668
|
}
|
|
7733
7669
|
|
|
@@ -7758,15 +7694,6 @@ var tokenizeLBrace = function (input, position) {
|
|
|
7758
7694
|
var tokenizeRBrace = function (input, position) {
|
|
7759
7695
|
return tokenizeSimpleToken('RBrace', '}', input, position);
|
|
7760
7696
|
};
|
|
7761
|
-
var tokenizePolishNotation = function (input, position) {
|
|
7762
|
-
return tokenizeSimpleToken('PolNotation', '$`', input, position);
|
|
7763
|
-
};
|
|
7764
|
-
var tokenizeAlgebraicNotation = function (input, position) {
|
|
7765
|
-
return tokenizeSimpleToken('AlgNotation', '@`', input, position);
|
|
7766
|
-
};
|
|
7767
|
-
var tokenizeEndNotation = function (input, position) {
|
|
7768
|
-
return tokenizeSimpleToken('EndNotation', '`', input, position);
|
|
7769
|
-
};
|
|
7770
7697
|
var tokenizeString = function (input, position) {
|
|
7771
7698
|
if (input[position] !== '"')
|
|
7772
7699
|
return NO_MATCH;
|
|
@@ -7819,9 +7746,6 @@ function tokenizeSimpleToken(type, value, input, position) {
|
|
|
7819
7746
|
return NO_MATCH;
|
|
7820
7747
|
}
|
|
7821
7748
|
var commonTokenizers = [
|
|
7822
|
-
tokenizePolishNotation,
|
|
7823
|
-
tokenizeAlgebraicNotation,
|
|
7824
|
-
tokenizeEndNotation,
|
|
7825
7749
|
tokenizeLParen,
|
|
7826
7750
|
tokenizeRParen,
|
|
7827
7751
|
tokenizeLBracket,
|
|
@@ -8331,7 +8255,6 @@ function getSugar() {
|
|
|
8331
8255
|
|
|
8332
8256
|
function tokenize(input, params) {
|
|
8333
8257
|
var debug = !!params.debug;
|
|
8334
|
-
var notationStack = [params.algebraic ? 'algebraic' : 'polish'];
|
|
8335
8258
|
var position = 0;
|
|
8336
8259
|
var tokenStream = {
|
|
8337
8260
|
tokens: [],
|
|
@@ -8340,7 +8263,7 @@ function tokenize(input, params) {
|
|
|
8340
8263
|
algebraic: !!params.algebraic,
|
|
8341
8264
|
};
|
|
8342
8265
|
while (position < input.length) {
|
|
8343
|
-
var tokenizers =
|
|
8266
|
+
var tokenizers = params.algebraic ? algebraicTokenizers : polishTokenizers;
|
|
8344
8267
|
var tokenDescriptor = getCurrentToken(input, position, tokenizers);
|
|
8345
8268
|
var debugData = debug
|
|
8346
8269
|
? {
|
|
@@ -8357,23 +8280,8 @@ function tokenize(input, params) {
|
|
|
8357
8280
|
addTokenDebugData(token, debugData);
|
|
8358
8281
|
}
|
|
8359
8282
|
tokenStream.tokens.push(token);
|
|
8360
|
-
if (isAlgebraicNotationToken(token)) {
|
|
8361
|
-
notationStack.push('algebraic');
|
|
8362
|
-
}
|
|
8363
|
-
if (isPolishNotationToken(token)) {
|
|
8364
|
-
notationStack.push('polish');
|
|
8365
|
-
}
|
|
8366
|
-
if (isEndNotationToken(token)) {
|
|
8367
|
-
notationStack.pop();
|
|
8368
|
-
if (notationStack.length < 1) {
|
|
8369
|
-
throw new LitsError('Unexpected end directive `.', debugData === null || debugData === void 0 ? void 0 : debugData.sourceCodeInfo);
|
|
8370
|
-
}
|
|
8371
|
-
}
|
|
8372
8283
|
}
|
|
8373
8284
|
}
|
|
8374
|
-
if (notationStack.length > 1) {
|
|
8375
|
-
throw new LitsError('Missing end directive `.', createSourceCodeInfo(input, position, params.filePath));
|
|
8376
|
-
}
|
|
8377
8285
|
applySugar(tokenStream);
|
|
8378
8286
|
return tokenStream;
|
|
8379
8287
|
}
|
|
@@ -8458,9 +8366,6 @@ function untokenizeToken(token) {
|
|
|
8458
8366
|
case 'RBracket': return ']';
|
|
8459
8367
|
case 'LBrace': return '{';
|
|
8460
8368
|
case 'RBrace': return '}';
|
|
8461
|
-
case 'PolNotation': return '$`';
|
|
8462
|
-
case 'AlgNotation': return '@`';
|
|
8463
|
-
case 'EndNotation': return '`';
|
|
8464
8369
|
case 'P_FnShorthand': return '#';
|
|
8465
8370
|
/* v8 ignore next 2 */
|
|
8466
8371
|
default:
|