@mojir/lits 2.0.19 → 2.0.21
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 +339 -455
- package/dist/cli/src/Lits/Lits.d.ts +3 -1
- 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/minifyTokenStream.d.ts +2 -0
- 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 +338 -454
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +338 -454
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +338 -454
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/Lits/Lits.d.ts +3 -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/minifyTokenStream.d.ts +2 -0
- 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 +448 -564
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +448 -564
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -277,9 +277,6 @@ var commonSimpleTokenTypes = [
|
|
|
277
277
|
'RBrace',
|
|
278
278
|
'RBracket',
|
|
279
279
|
'RParen',
|
|
280
|
-
'AlgNotation',
|
|
281
|
-
'PolNotation',
|
|
282
|
-
'EndNotation',
|
|
283
280
|
];
|
|
284
281
|
var commomValueTokenTypes = [
|
|
285
282
|
'String',
|
|
@@ -369,20 +366,6 @@ function asRegexpShorthandToken(token) {
|
|
|
369
366
|
assertRegexpShorthandToken(token);
|
|
370
367
|
return token;
|
|
371
368
|
}
|
|
372
|
-
function isAlgebraicNotationToken(token) {
|
|
373
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'AlgNotation';
|
|
374
|
-
}
|
|
375
|
-
function isPolishNotationToken(token) {
|
|
376
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'PolNotation';
|
|
377
|
-
}
|
|
378
|
-
function isEndNotationToken(token) {
|
|
379
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'EndNotation';
|
|
380
|
-
}
|
|
381
|
-
function assertEndNotationToken(token) {
|
|
382
|
-
if (!isEndNotationToken(token)) {
|
|
383
|
-
throwUnexpectedToken('EndNotation', undefined, token);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
369
|
|
|
387
370
|
var algebraicSimpleTokenTypes = __spreadArray([], __read(commonSimpleTokenTypes), false);
|
|
388
371
|
var algebraicOnlyValueTokenTypes = [
|
|
@@ -842,20 +825,6 @@ function withoutCommentNodes(astNodes) {
|
|
|
842
825
|
return astNodes.filter(function (n) { return n.t !== exports.AstNodeType.Comment; });
|
|
843
826
|
}
|
|
844
827
|
|
|
845
|
-
function assertEvenNumberOfParams(node) {
|
|
846
|
-
var _a;
|
|
847
|
-
var length = withoutCommentNodes(node.p).length;
|
|
848
|
-
if (length % 2 !== 0) {
|
|
849
|
-
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);
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
function assertOddNumberOfParams(node) {
|
|
853
|
-
var _a;
|
|
854
|
-
var length = withoutCommentNodes(node.p).length;
|
|
855
|
-
if (length % 2 !== 1) {
|
|
856
|
-
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);
|
|
857
|
-
}
|
|
858
|
-
}
|
|
859
828
|
function assertNumberOfParams(count, node) {
|
|
860
829
|
var _a, _b;
|
|
861
830
|
assertCount({
|
|
@@ -887,9 +856,17 @@ function assertCount(_a) {
|
|
|
887
856
|
}
|
|
888
857
|
}
|
|
889
858
|
else {
|
|
890
|
-
var min = count.min, max = count.max;
|
|
891
|
-
if (
|
|
892
|
-
|
|
859
|
+
var min = count.min, max = count.max, even = count.even, odd = count.odd;
|
|
860
|
+
if (even) {
|
|
861
|
+
if (length % 2 !== 0) {
|
|
862
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an even number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
if (odd) {
|
|
866
|
+
if (length % 2 !== 1) {
|
|
867
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an odd number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
893
870
|
if (typeof min === 'number' && length < min) {
|
|
894
871
|
throw new LitsError("Wrong number of arguments to \"".concat(name, "\", expected at least ").concat(min, ", got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
895
872
|
}
|
|
@@ -1026,7 +1003,7 @@ var bitwiseNormalExpression = {
|
|
|
1026
1003
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1027
1004
|
return num << count;
|
|
1028
1005
|
},
|
|
1029
|
-
|
|
1006
|
+
paramCount: 2,
|
|
1030
1007
|
},
|
|
1031
1008
|
'>>': {
|
|
1032
1009
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1035,7 +1012,7 @@ var bitwiseNormalExpression = {
|
|
|
1035
1012
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1036
1013
|
return num >> count;
|
|
1037
1014
|
},
|
|
1038
|
-
|
|
1015
|
+
paramCount: 2,
|
|
1039
1016
|
},
|
|
1040
1017
|
'>>>': {
|
|
1041
1018
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1044,7 +1021,7 @@ var bitwiseNormalExpression = {
|
|
|
1044
1021
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1045
1022
|
return num >>> count;
|
|
1046
1023
|
},
|
|
1047
|
-
|
|
1024
|
+
paramCount: 2,
|
|
1048
1025
|
},
|
|
1049
1026
|
'~': {
|
|
1050
1027
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1052,7 +1029,7 @@ var bitwiseNormalExpression = {
|
|
|
1052
1029
|
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1053
1030
|
return ~num;
|
|
1054
1031
|
},
|
|
1055
|
-
|
|
1032
|
+
paramCount: 1,
|
|
1056
1033
|
},
|
|
1057
1034
|
'&': {
|
|
1058
1035
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1063,7 +1040,7 @@ var bitwiseNormalExpression = {
|
|
|
1063
1040
|
return result & value;
|
|
1064
1041
|
}, first);
|
|
1065
1042
|
},
|
|
1066
|
-
|
|
1043
|
+
paramCount: { min: 2 },
|
|
1067
1044
|
},
|
|
1068
1045
|
'&!': {
|
|
1069
1046
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1074,7 +1051,7 @@ var bitwiseNormalExpression = {
|
|
|
1074
1051
|
return result & ~value;
|
|
1075
1052
|
}, first);
|
|
1076
1053
|
},
|
|
1077
|
-
|
|
1054
|
+
paramCount: { min: 2 },
|
|
1078
1055
|
},
|
|
1079
1056
|
'|': {
|
|
1080
1057
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1085,7 +1062,7 @@ var bitwiseNormalExpression = {
|
|
|
1085
1062
|
return result | value;
|
|
1086
1063
|
}, first);
|
|
1087
1064
|
},
|
|
1088
|
-
|
|
1065
|
+
paramCount: { min: 2 },
|
|
1089
1066
|
},
|
|
1090
1067
|
'^': {
|
|
1091
1068
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1096,7 +1073,7 @@ var bitwiseNormalExpression = {
|
|
|
1096
1073
|
return result ^ value;
|
|
1097
1074
|
}, first);
|
|
1098
1075
|
},
|
|
1099
|
-
|
|
1076
|
+
paramCount: { min: 2 },
|
|
1100
1077
|
},
|
|
1101
1078
|
'bit_flip': {
|
|
1102
1079
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1106,7 +1083,7 @@ var bitwiseNormalExpression = {
|
|
|
1106
1083
|
var mask = 1 << index;
|
|
1107
1084
|
return (num ^= mask);
|
|
1108
1085
|
},
|
|
1109
|
-
|
|
1086
|
+
paramCount: 2,
|
|
1110
1087
|
},
|
|
1111
1088
|
'bit_set': {
|
|
1112
1089
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1116,7 +1093,7 @@ var bitwiseNormalExpression = {
|
|
|
1116
1093
|
var mask = 1 << index;
|
|
1117
1094
|
return (num |= mask);
|
|
1118
1095
|
},
|
|
1119
|
-
|
|
1096
|
+
paramCount: 2,
|
|
1120
1097
|
},
|
|
1121
1098
|
'bit_clear': {
|
|
1122
1099
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1126,7 +1103,7 @@ var bitwiseNormalExpression = {
|
|
|
1126
1103
|
var mask = 1 << index;
|
|
1127
1104
|
return (num &= ~mask);
|
|
1128
1105
|
},
|
|
1129
|
-
|
|
1106
|
+
paramCount: 2,
|
|
1130
1107
|
},
|
|
1131
1108
|
'bit_test': {
|
|
1132
1109
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1136,7 +1113,7 @@ var bitwiseNormalExpression = {
|
|
|
1136
1113
|
var mask = 1 << index;
|
|
1137
1114
|
return !!(num & mask);
|
|
1138
1115
|
},
|
|
1139
|
-
|
|
1116
|
+
paramCount: 2,
|
|
1140
1117
|
},
|
|
1141
1118
|
};
|
|
1142
1119
|
|
|
@@ -1518,7 +1495,7 @@ var collectionNormalExpression = {
|
|
|
1518
1495
|
var result = get(coll, key);
|
|
1519
1496
|
return result === undefined ? defaultValue : result;
|
|
1520
1497
|
},
|
|
1521
|
-
|
|
1498
|
+
paramCount: { min: 2, max: 3 },
|
|
1522
1499
|
},
|
|
1523
1500
|
'get_in': {
|
|
1524
1501
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1553,7 +1530,7 @@ var collectionNormalExpression = {
|
|
|
1553
1530
|
}
|
|
1554
1531
|
return coll;
|
|
1555
1532
|
},
|
|
1556
|
-
|
|
1533
|
+
paramCount: { min: 2, max: 3 },
|
|
1557
1534
|
},
|
|
1558
1535
|
'count': {
|
|
1559
1536
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1567,7 +1544,7 @@ var collectionNormalExpression = {
|
|
|
1567
1544
|
return coll.length;
|
|
1568
1545
|
return Object.keys(coll).length;
|
|
1569
1546
|
},
|
|
1570
|
-
|
|
1547
|
+
paramCount: 1,
|
|
1571
1548
|
},
|
|
1572
1549
|
'contains?': {
|
|
1573
1550
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1584,7 +1561,7 @@ var collectionNormalExpression = {
|
|
|
1584
1561
|
}
|
|
1585
1562
|
return !!Object.getOwnPropertyDescriptor(coll, key);
|
|
1586
1563
|
},
|
|
1587
|
-
|
|
1564
|
+
paramCount: 2,
|
|
1588
1565
|
},
|
|
1589
1566
|
'has?': {
|
|
1590
1567
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1605,7 +1582,7 @@ var collectionNormalExpression = {
|
|
|
1605
1582
|
}
|
|
1606
1583
|
return Object.values(coll).includes(value);
|
|
1607
1584
|
},
|
|
1608
|
-
|
|
1585
|
+
paramCount: 2,
|
|
1609
1586
|
},
|
|
1610
1587
|
'has_some?': {
|
|
1611
1588
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1665,7 +1642,7 @@ var collectionNormalExpression = {
|
|
|
1665
1642
|
}
|
|
1666
1643
|
return false;
|
|
1667
1644
|
},
|
|
1668
|
-
|
|
1645
|
+
paramCount: 2,
|
|
1669
1646
|
},
|
|
1670
1647
|
'has_every?': {
|
|
1671
1648
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1727,7 +1704,7 @@ var collectionNormalExpression = {
|
|
|
1727
1704
|
}
|
|
1728
1705
|
return true;
|
|
1729
1706
|
},
|
|
1730
|
-
|
|
1707
|
+
paramCount: 2,
|
|
1731
1708
|
},
|
|
1732
1709
|
'assoc': {
|
|
1733
1710
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1737,7 +1714,7 @@ var collectionNormalExpression = {
|
|
|
1737
1714
|
assertAny(value, sourceCodeInfo);
|
|
1738
1715
|
return assoc(coll, key, value, sourceCodeInfo);
|
|
1739
1716
|
},
|
|
1740
|
-
|
|
1717
|
+
paramCount: 3,
|
|
1741
1718
|
},
|
|
1742
1719
|
'assoc_in': {
|
|
1743
1720
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1762,7 +1739,7 @@ var collectionNormalExpression = {
|
|
|
1762
1739
|
}
|
|
1763
1740
|
return coll;
|
|
1764
1741
|
},
|
|
1765
|
-
|
|
1742
|
+
paramCount: 3,
|
|
1766
1743
|
},
|
|
1767
1744
|
'update': {
|
|
1768
1745
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1773,7 +1750,7 @@ var collectionNormalExpression = {
|
|
|
1773
1750
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1774
1751
|
return update(coll, key, fn, params, contextStack, executeFunction, sourceCodeInfo);
|
|
1775
1752
|
},
|
|
1776
|
-
|
|
1753
|
+
paramCount: { min: 3 },
|
|
1777
1754
|
},
|
|
1778
1755
|
'update_in': {
|
|
1779
1756
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1799,7 +1776,7 @@ var collectionNormalExpression = {
|
|
|
1799
1776
|
}
|
|
1800
1777
|
return coll;
|
|
1801
1778
|
},
|
|
1802
|
-
|
|
1779
|
+
paramCount: { min: 3 },
|
|
1803
1780
|
},
|
|
1804
1781
|
'concat': {
|
|
1805
1782
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1823,7 +1800,7 @@ var collectionNormalExpression = {
|
|
|
1823
1800
|
}, {});
|
|
1824
1801
|
}
|
|
1825
1802
|
},
|
|
1826
|
-
|
|
1803
|
+
paramCount: { min: 1 },
|
|
1827
1804
|
},
|
|
1828
1805
|
'not_empty': {
|
|
1829
1806
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1837,7 +1814,7 @@ var collectionNormalExpression = {
|
|
|
1837
1814
|
return coll.length > 0 ? coll : null;
|
|
1838
1815
|
return Object.keys(coll).length > 0 ? coll : null;
|
|
1839
1816
|
},
|
|
1840
|
-
|
|
1817
|
+
paramCount: 1,
|
|
1841
1818
|
},
|
|
1842
1819
|
'every?': {
|
|
1843
1820
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1851,7 +1828,7 @@ var collectionNormalExpression = {
|
|
|
1851
1828
|
return coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1852
1829
|
return Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1853
1830
|
},
|
|
1854
|
-
|
|
1831
|
+
paramCount: 2,
|
|
1855
1832
|
},
|
|
1856
1833
|
'any?': {
|
|
1857
1834
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1865,7 +1842,7 @@ var collectionNormalExpression = {
|
|
|
1865
1842
|
return coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1866
1843
|
return Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1867
1844
|
},
|
|
1868
|
-
|
|
1845
|
+
paramCount: 2,
|
|
1869
1846
|
},
|
|
1870
1847
|
'not_any?': {
|
|
1871
1848
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1879,7 +1856,7 @@ var collectionNormalExpression = {
|
|
|
1879
1856
|
return !coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1880
1857
|
return !Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1881
1858
|
},
|
|
1882
|
-
|
|
1859
|
+
paramCount: 2,
|
|
1883
1860
|
},
|
|
1884
1861
|
'not_every?': {
|
|
1885
1862
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1893,13 +1870,14 @@ var collectionNormalExpression = {
|
|
|
1893
1870
|
return !coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1894
1871
|
return !Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1895
1872
|
},
|
|
1896
|
-
|
|
1873
|
+
paramCount: 2,
|
|
1897
1874
|
},
|
|
1898
1875
|
};
|
|
1899
1876
|
|
|
1900
1877
|
var arrayNormalExpression = {
|
|
1901
1878
|
array: {
|
|
1902
1879
|
evaluate: function (params) { return params; },
|
|
1880
|
+
paramCount: {},
|
|
1903
1881
|
},
|
|
1904
1882
|
range: {
|
|
1905
1883
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1937,7 +1915,7 @@ var arrayNormalExpression = {
|
|
|
1937
1915
|
result.push(i);
|
|
1938
1916
|
return result;
|
|
1939
1917
|
},
|
|
1940
|
-
|
|
1918
|
+
paramCount: { min: 1, max: 3 },
|
|
1941
1919
|
},
|
|
1942
1920
|
repeat: {
|
|
1943
1921
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1948,7 +1926,7 @@ var arrayNormalExpression = {
|
|
|
1948
1926
|
result.push(value);
|
|
1949
1927
|
return result;
|
|
1950
1928
|
},
|
|
1951
|
-
|
|
1929
|
+
paramCount: 2,
|
|
1952
1930
|
},
|
|
1953
1931
|
flatten: {
|
|
1954
1932
|
evaluate: function (_a) {
|
|
@@ -1957,7 +1935,7 @@ var arrayNormalExpression = {
|
|
|
1957
1935
|
return [];
|
|
1958
1936
|
return seq.flat(Number.POSITIVE_INFINITY);
|
|
1959
1937
|
},
|
|
1960
|
-
|
|
1938
|
+
paramCount: 1,
|
|
1961
1939
|
},
|
|
1962
1940
|
mapcat: {
|
|
1963
1941
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1967,7 +1945,7 @@ var arrayNormalExpression = {
|
|
|
1967
1945
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1968
1946
|
return arr.map(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }).flat(1);
|
|
1969
1947
|
},
|
|
1970
|
-
|
|
1948
|
+
paramCount: 2,
|
|
1971
1949
|
},
|
|
1972
1950
|
};
|
|
1973
1951
|
|
|
@@ -1982,7 +1960,7 @@ var sequenceNormalExpression = {
|
|
|
1982
1960
|
assertSeq(seq, sourceCodeInfo);
|
|
1983
1961
|
return i >= 0 && i < seq.length ? toAny(seq[i]) : defaultValue;
|
|
1984
1962
|
},
|
|
1985
|
-
|
|
1963
|
+
paramCount: { min: 2, max: 3 },
|
|
1986
1964
|
},
|
|
1987
1965
|
'filter': {
|
|
1988
1966
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1997,7 +1975,7 @@ var sequenceNormalExpression = {
|
|
|
1997
1975
|
.filter(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
1998
1976
|
.join('');
|
|
1999
1977
|
},
|
|
2000
|
-
|
|
1978
|
+
paramCount: 2,
|
|
2001
1979
|
},
|
|
2002
1980
|
'first': {
|
|
2003
1981
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2007,7 +1985,7 @@ var sequenceNormalExpression = {
|
|
|
2007
1985
|
assertSeq(array, sourceCodeInfo);
|
|
2008
1986
|
return toAny(array[0]);
|
|
2009
1987
|
},
|
|
2010
|
-
|
|
1988
|
+
paramCount: 1,
|
|
2011
1989
|
},
|
|
2012
1990
|
'last': {
|
|
2013
1991
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2017,7 +1995,7 @@ var sequenceNormalExpression = {
|
|
|
2017
1995
|
assertSeq(array, sourceCodeInfo);
|
|
2018
1996
|
return toAny(array[array.length - 1]);
|
|
2019
1997
|
},
|
|
2020
|
-
|
|
1998
|
+
paramCount: 1,
|
|
2021
1999
|
},
|
|
2022
2000
|
'map': {
|
|
2023
2001
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2039,7 +2017,7 @@ var sequenceNormalExpression = {
|
|
|
2039
2017
|
.join('');
|
|
2040
2018
|
}
|
|
2041
2019
|
},
|
|
2042
|
-
|
|
2020
|
+
paramCount: 2,
|
|
2043
2021
|
},
|
|
2044
2022
|
'pop': {
|
|
2045
2023
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2050,7 +2028,7 @@ var sequenceNormalExpression = {
|
|
|
2050
2028
|
}
|
|
2051
2029
|
return seq.slice(0, seq.length - 1);
|
|
2052
2030
|
},
|
|
2053
|
-
|
|
2031
|
+
paramCount: 1,
|
|
2054
2032
|
},
|
|
2055
2033
|
'position': {
|
|
2056
2034
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2069,7 +2047,7 @@ var sequenceNormalExpression = {
|
|
|
2069
2047
|
return index !== -1 ? index : null;
|
|
2070
2048
|
}
|
|
2071
2049
|
},
|
|
2072
|
-
|
|
2050
|
+
paramCount: 2,
|
|
2073
2051
|
},
|
|
2074
2052
|
'index_of': {
|
|
2075
2053
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2088,7 +2066,7 @@ var sequenceNormalExpression = {
|
|
|
2088
2066
|
return index !== -1 ? index : null;
|
|
2089
2067
|
}
|
|
2090
2068
|
},
|
|
2091
|
-
|
|
2069
|
+
paramCount: 2,
|
|
2092
2070
|
},
|
|
2093
2071
|
'last_index_of': {
|
|
2094
2072
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2107,7 +2085,7 @@ var sequenceNormalExpression = {
|
|
|
2107
2085
|
return index !== -1 ? index : null;
|
|
2108
2086
|
}
|
|
2109
2087
|
},
|
|
2110
|
-
|
|
2088
|
+
paramCount: 2,
|
|
2111
2089
|
},
|
|
2112
2090
|
'push': {
|
|
2113
2091
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2121,7 +2099,7 @@ var sequenceNormalExpression = {
|
|
|
2121
2099
|
return __spreadArray(__spreadArray([], __read(seq), false), __read(values), false);
|
|
2122
2100
|
}
|
|
2123
2101
|
},
|
|
2124
|
-
|
|
2102
|
+
paramCount: { min: 2 },
|
|
2125
2103
|
},
|
|
2126
2104
|
'reductions': {
|
|
2127
2105
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2182,7 +2160,7 @@ var sequenceNormalExpression = {
|
|
|
2182
2160
|
}
|
|
2183
2161
|
}
|
|
2184
2162
|
},
|
|
2185
|
-
|
|
2163
|
+
paramCount: { min: 2, max: 3 },
|
|
2186
2164
|
},
|
|
2187
2165
|
'reduce': {
|
|
2188
2166
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2229,7 +2207,7 @@ var sequenceNormalExpression = {
|
|
|
2229
2207
|
}
|
|
2230
2208
|
}
|
|
2231
2209
|
},
|
|
2232
|
-
|
|
2210
|
+
paramCount: { min: 2, max: 3 },
|
|
2233
2211
|
},
|
|
2234
2212
|
'reduce_right': {
|
|
2235
2213
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2277,7 +2255,7 @@ var sequenceNormalExpression = {
|
|
|
2277
2255
|
}
|
|
2278
2256
|
}
|
|
2279
2257
|
},
|
|
2280
|
-
|
|
2258
|
+
paramCount: { min: 2, max: 3 },
|
|
2281
2259
|
},
|
|
2282
2260
|
'rest': {
|
|
2283
2261
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2290,7 +2268,7 @@ var sequenceNormalExpression = {
|
|
|
2290
2268
|
}
|
|
2291
2269
|
return seq.substring(1);
|
|
2292
2270
|
},
|
|
2293
|
-
|
|
2271
|
+
paramCount: 1,
|
|
2294
2272
|
},
|
|
2295
2273
|
'nthrest': {
|
|
2296
2274
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2302,7 +2280,7 @@ var sequenceNormalExpression = {
|
|
|
2302
2280
|
return seq.slice(integerCount);
|
|
2303
2281
|
return seq.substring(integerCount);
|
|
2304
2282
|
},
|
|
2305
|
-
|
|
2283
|
+
paramCount: 2,
|
|
2306
2284
|
},
|
|
2307
2285
|
'next': {
|
|
2308
2286
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2317,7 +2295,7 @@ var sequenceNormalExpression = {
|
|
|
2317
2295
|
return null;
|
|
2318
2296
|
return seq.substring(1);
|
|
2319
2297
|
},
|
|
2320
|
-
|
|
2298
|
+
paramCount: 1,
|
|
2321
2299
|
},
|
|
2322
2300
|
'nthnext': {
|
|
2323
2301
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2331,7 +2309,7 @@ var sequenceNormalExpression = {
|
|
|
2331
2309
|
return seq.slice(integerCount);
|
|
2332
2310
|
return seq.substring(integerCount);
|
|
2333
2311
|
},
|
|
2334
|
-
|
|
2312
|
+
paramCount: 2,
|
|
2335
2313
|
},
|
|
2336
2314
|
'reverse': {
|
|
2337
2315
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2343,7 +2321,7 @@ var sequenceNormalExpression = {
|
|
|
2343
2321
|
return __spreadArray([], __read(seq), false).reverse();
|
|
2344
2322
|
return seq.split('').reverse().join('');
|
|
2345
2323
|
},
|
|
2346
|
-
|
|
2324
|
+
paramCount: 1,
|
|
2347
2325
|
},
|
|
2348
2326
|
'second': {
|
|
2349
2327
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2353,7 +2331,7 @@ var sequenceNormalExpression = {
|
|
|
2353
2331
|
assertSeq(seq, sourceCodeInfo);
|
|
2354
2332
|
return toAny(seq[1]);
|
|
2355
2333
|
},
|
|
2356
|
-
|
|
2334
|
+
paramCount: 1,
|
|
2357
2335
|
},
|
|
2358
2336
|
'shift': {
|
|
2359
2337
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2365,7 +2343,7 @@ var sequenceNormalExpression = {
|
|
|
2365
2343
|
copy.shift();
|
|
2366
2344
|
return copy;
|
|
2367
2345
|
},
|
|
2368
|
-
|
|
2346
|
+
paramCount: 1,
|
|
2369
2347
|
},
|
|
2370
2348
|
'slice': {
|
|
2371
2349
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2379,7 +2357,7 @@ var sequenceNormalExpression = {
|
|
|
2379
2357
|
assertNumber(to, sourceCodeInfo, { integer: true });
|
|
2380
2358
|
return seq.slice(from, to);
|
|
2381
2359
|
},
|
|
2382
|
-
|
|
2360
|
+
paramCount: { min: 1, max: 3 },
|
|
2383
2361
|
},
|
|
2384
2362
|
'some': {
|
|
2385
2363
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2396,7 +2374,7 @@ var sequenceNormalExpression = {
|
|
|
2396
2374
|
return (_c = seq.split('').find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })) !== null && _c !== void 0 ? _c : null;
|
|
2397
2375
|
return toAny(seq.find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }));
|
|
2398
2376
|
},
|
|
2399
|
-
|
|
2377
|
+
paramCount: 2,
|
|
2400
2378
|
},
|
|
2401
2379
|
'sort': {
|
|
2402
2380
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2434,7 +2412,7 @@ var sequenceNormalExpression = {
|
|
|
2434
2412
|
}
|
|
2435
2413
|
return result;
|
|
2436
2414
|
},
|
|
2437
|
-
|
|
2415
|
+
paramCount: { min: 1, max: 2 },
|
|
2438
2416
|
},
|
|
2439
2417
|
'sort_by': {
|
|
2440
2418
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2485,7 +2463,7 @@ var sequenceNormalExpression = {
|
|
|
2485
2463
|
}
|
|
2486
2464
|
return result;
|
|
2487
2465
|
},
|
|
2488
|
-
|
|
2466
|
+
paramCount: { min: 2, max: 3 },
|
|
2489
2467
|
},
|
|
2490
2468
|
'take': {
|
|
2491
2469
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2495,7 +2473,7 @@ var sequenceNormalExpression = {
|
|
|
2495
2473
|
var num = Math.max(Math.ceil(n), 0);
|
|
2496
2474
|
return input.slice(0, num);
|
|
2497
2475
|
},
|
|
2498
|
-
|
|
2476
|
+
paramCount: 2,
|
|
2499
2477
|
},
|
|
2500
2478
|
'take_last': {
|
|
2501
2479
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2506,7 +2484,7 @@ var sequenceNormalExpression = {
|
|
|
2506
2484
|
var from = array.length - num;
|
|
2507
2485
|
return array.slice(from);
|
|
2508
2486
|
},
|
|
2509
|
-
|
|
2487
|
+
paramCount: 2,
|
|
2510
2488
|
},
|
|
2511
2489
|
'take_while': {
|
|
2512
2490
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2534,7 +2512,7 @@ var sequenceNormalExpression = {
|
|
|
2534
2512
|
}
|
|
2535
2513
|
return typeof seq === 'string' ? result.join('') : result;
|
|
2536
2514
|
},
|
|
2537
|
-
|
|
2515
|
+
paramCount: 2,
|
|
2538
2516
|
},
|
|
2539
2517
|
'drop': {
|
|
2540
2518
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2544,7 +2522,7 @@ var sequenceNormalExpression = {
|
|
|
2544
2522
|
assertSeq(input, sourceCodeInfo);
|
|
2545
2523
|
return input.slice(num);
|
|
2546
2524
|
},
|
|
2547
|
-
|
|
2525
|
+
paramCount: 2,
|
|
2548
2526
|
},
|
|
2549
2527
|
'drop_last': {
|
|
2550
2528
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2555,7 +2533,7 @@ var sequenceNormalExpression = {
|
|
|
2555
2533
|
var from = array.length - num;
|
|
2556
2534
|
return array.slice(0, from);
|
|
2557
2535
|
},
|
|
2558
|
-
|
|
2536
|
+
paramCount: 2,
|
|
2559
2537
|
},
|
|
2560
2538
|
'drop_while': {
|
|
2561
2539
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2571,7 +2549,7 @@ var sequenceNormalExpression = {
|
|
|
2571
2549
|
var from = charArray.findIndex(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
2572
2550
|
return charArray.slice(from).join('');
|
|
2573
2551
|
},
|
|
2574
|
-
|
|
2552
|
+
paramCount: 2,
|
|
2575
2553
|
},
|
|
2576
2554
|
'unshift': {
|
|
2577
2555
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2585,7 +2563,7 @@ var sequenceNormalExpression = {
|
|
|
2585
2563
|
copy.unshift.apply(copy, __spreadArray([], __read(values), false));
|
|
2586
2564
|
return copy;
|
|
2587
2565
|
},
|
|
2588
|
-
|
|
2566
|
+
paramCount: { min: 2 },
|
|
2589
2567
|
},
|
|
2590
2568
|
'distinct': {
|
|
2591
2569
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2595,7 +2573,7 @@ var sequenceNormalExpression = {
|
|
|
2595
2573
|
return Array.from(new Set(input));
|
|
2596
2574
|
return Array.from(new Set(input.split(''))).join('');
|
|
2597
2575
|
},
|
|
2598
|
-
|
|
2576
|
+
paramCount: 1,
|
|
2599
2577
|
},
|
|
2600
2578
|
'remove': {
|
|
2601
2579
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2610,7 +2588,7 @@ var sequenceNormalExpression = {
|
|
|
2610
2588
|
.filter(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
2611
2589
|
.join('');
|
|
2612
2590
|
},
|
|
2613
|
-
|
|
2591
|
+
paramCount: 2,
|
|
2614
2592
|
},
|
|
2615
2593
|
'remove_at': {
|
|
2616
2594
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2627,7 +2605,7 @@ var sequenceNormalExpression = {
|
|
|
2627
2605
|
}
|
|
2628
2606
|
return "".concat(input.substring(0, index)).concat(input.substring(index + 1));
|
|
2629
2607
|
},
|
|
2630
|
-
|
|
2608
|
+
paramCount: 2,
|
|
2631
2609
|
},
|
|
2632
2610
|
'split_at': {
|
|
2633
2611
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2637,7 +2615,7 @@ var sequenceNormalExpression = {
|
|
|
2637
2615
|
assertSeq(seq, sourceCodeInfo);
|
|
2638
2616
|
return [seq.slice(0, intPos), seq.slice(intPos)];
|
|
2639
2617
|
},
|
|
2640
|
-
|
|
2618
|
+
paramCount: 2,
|
|
2641
2619
|
},
|
|
2642
2620
|
'split_with': {
|
|
2643
2621
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2652,7 +2630,7 @@ var sequenceNormalExpression = {
|
|
|
2652
2630
|
return [seq, seqIsArray ? [] : ''];
|
|
2653
2631
|
return [seq.slice(0, index), seq.slice(index)];
|
|
2654
2632
|
},
|
|
2655
|
-
|
|
2633
|
+
paramCount: 2,
|
|
2656
2634
|
},
|
|
2657
2635
|
'frequencies': {
|
|
2658
2636
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2668,7 +2646,7 @@ var sequenceNormalExpression = {
|
|
|
2668
2646
|
return result;
|
|
2669
2647
|
}, {});
|
|
2670
2648
|
},
|
|
2671
|
-
|
|
2649
|
+
paramCount: 1,
|
|
2672
2650
|
},
|
|
2673
2651
|
'group_by': {
|
|
2674
2652
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2686,7 +2664,7 @@ var sequenceNormalExpression = {
|
|
|
2686
2664
|
return result;
|
|
2687
2665
|
}, {});
|
|
2688
2666
|
},
|
|
2689
|
-
|
|
2667
|
+
paramCount: 2,
|
|
2690
2668
|
},
|
|
2691
2669
|
'partition': {
|
|
2692
2670
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2698,7 +2676,7 @@ var sequenceNormalExpression = {
|
|
|
2698
2676
|
: undefined;
|
|
2699
2677
|
return partition(n, step, seq, pad, sourceCodeInfo);
|
|
2700
2678
|
},
|
|
2701
|
-
|
|
2679
|
+
paramCount: { min: 2, max: 4 },
|
|
2702
2680
|
},
|
|
2703
2681
|
'partition_all': {
|
|
2704
2682
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2707,7 +2685,7 @@ var sequenceNormalExpression = {
|
|
|
2707
2685
|
var step = params.length === 3 ? toNonNegativeInteger(asNumber(params[2], sourceCodeInfo)) : n;
|
|
2708
2686
|
return partition(n, step, seq, [], sourceCodeInfo);
|
|
2709
2687
|
},
|
|
2710
|
-
|
|
2688
|
+
paramCount: { min: 2, max: 3 },
|
|
2711
2689
|
},
|
|
2712
2690
|
'partition_by': {
|
|
2713
2691
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2728,7 +2706,7 @@ var sequenceNormalExpression = {
|
|
|
2728
2706
|
}, []);
|
|
2729
2707
|
return isStringSeq ? result.map(function (elem) { return elem.join(''); }) : result;
|
|
2730
2708
|
},
|
|
2731
|
-
|
|
2709
|
+
paramCount: 2,
|
|
2732
2710
|
},
|
|
2733
2711
|
'ends_with?': {
|
|
2734
2712
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2740,7 +2718,7 @@ var sequenceNormalExpression = {
|
|
|
2740
2718
|
}
|
|
2741
2719
|
return str.at(-1) === search;
|
|
2742
2720
|
},
|
|
2743
|
-
|
|
2721
|
+
paramCount: 2,
|
|
2744
2722
|
},
|
|
2745
2723
|
'starts_with?': {
|
|
2746
2724
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2752,7 +2730,7 @@ var sequenceNormalExpression = {
|
|
|
2752
2730
|
}
|
|
2753
2731
|
return str[0] === search;
|
|
2754
2732
|
},
|
|
2755
|
-
|
|
2733
|
+
paramCount: 2,
|
|
2756
2734
|
},
|
|
2757
2735
|
'interleave': {
|
|
2758
2736
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2790,7 +2768,7 @@ var sequenceNormalExpression = {
|
|
|
2790
2768
|
}
|
|
2791
2769
|
return isStringSeq ? result.join('') : result;
|
|
2792
2770
|
},
|
|
2793
|
-
|
|
2771
|
+
paramCount: { min: 1 },
|
|
2794
2772
|
},
|
|
2795
2773
|
'interpose': {
|
|
2796
2774
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2809,7 +2787,7 @@ var sequenceNormalExpression = {
|
|
|
2809
2787
|
result.push(seq[seq.length - 1]);
|
|
2810
2788
|
return result;
|
|
2811
2789
|
},
|
|
2812
|
-
|
|
2790
|
+
paramCount: 2,
|
|
2813
2791
|
},
|
|
2814
2792
|
};
|
|
2815
2793
|
function partition(n, step, seq, pad, sourceCodeInfo) {
|
|
@@ -2847,7 +2825,7 @@ var mathNormalExpression = {
|
|
|
2847
2825
|
assertNumber(first, sourceCodeInfo);
|
|
2848
2826
|
return first + 1;
|
|
2849
2827
|
},
|
|
2850
|
-
|
|
2828
|
+
paramCount: 1,
|
|
2851
2829
|
},
|
|
2852
2830
|
'dec': {
|
|
2853
2831
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2855,7 +2833,7 @@ var mathNormalExpression = {
|
|
|
2855
2833
|
assertNumber(first, sourceCodeInfo);
|
|
2856
2834
|
return first - 1;
|
|
2857
2835
|
},
|
|
2858
|
-
|
|
2836
|
+
paramCount: 1,
|
|
2859
2837
|
},
|
|
2860
2838
|
'+': {
|
|
2861
2839
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2864,6 +2842,7 @@ var mathNormalExpression = {
|
|
|
2864
2842
|
return result + param;
|
|
2865
2843
|
}, 0);
|
|
2866
2844
|
},
|
|
2845
|
+
paramCount: {},
|
|
2867
2846
|
},
|
|
2868
2847
|
'*': {
|
|
2869
2848
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2872,6 +2851,7 @@ var mathNormalExpression = {
|
|
|
2872
2851
|
return result * param;
|
|
2873
2852
|
}, 1);
|
|
2874
2853
|
},
|
|
2854
|
+
paramCount: {},
|
|
2875
2855
|
},
|
|
2876
2856
|
'/': {
|
|
2877
2857
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2888,6 +2868,7 @@ var mathNormalExpression = {
|
|
|
2888
2868
|
return result / param;
|
|
2889
2869
|
}, first);
|
|
2890
2870
|
},
|
|
2871
|
+
paramCount: {},
|
|
2891
2872
|
},
|
|
2892
2873
|
'-': {
|
|
2893
2874
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2902,6 +2883,7 @@ var mathNormalExpression = {
|
|
|
2902
2883
|
return result - param;
|
|
2903
2884
|
}, first);
|
|
2904
2885
|
},
|
|
2886
|
+
paramCount: {},
|
|
2905
2887
|
},
|
|
2906
2888
|
'quot': {
|
|
2907
2889
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2911,7 +2893,7 @@ var mathNormalExpression = {
|
|
|
2911
2893
|
var quotient = Math.trunc(dividend / divisor);
|
|
2912
2894
|
return quotient;
|
|
2913
2895
|
},
|
|
2914
|
-
|
|
2896
|
+
paramCount: 2,
|
|
2915
2897
|
},
|
|
2916
2898
|
'mod': {
|
|
2917
2899
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2921,7 +2903,7 @@ var mathNormalExpression = {
|
|
|
2921
2903
|
var quotient = Math.floor(dividend / divisor);
|
|
2922
2904
|
return dividend - divisor * quotient;
|
|
2923
2905
|
},
|
|
2924
|
-
|
|
2906
|
+
paramCount: 2,
|
|
2925
2907
|
},
|
|
2926
2908
|
'%': {
|
|
2927
2909
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2931,7 +2913,7 @@ var mathNormalExpression = {
|
|
|
2931
2913
|
var quotient = Math.trunc(dividend / divisor);
|
|
2932
2914
|
return dividend - divisor * quotient;
|
|
2933
2915
|
},
|
|
2934
|
-
|
|
2916
|
+
paramCount: 2,
|
|
2935
2917
|
},
|
|
2936
2918
|
'sqrt': {
|
|
2937
2919
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2939,7 +2921,7 @@ var mathNormalExpression = {
|
|
|
2939
2921
|
assertNumber(first, sourceCodeInfo);
|
|
2940
2922
|
return Math.sqrt(first);
|
|
2941
2923
|
},
|
|
2942
|
-
|
|
2924
|
+
paramCount: 1,
|
|
2943
2925
|
},
|
|
2944
2926
|
'cbrt': {
|
|
2945
2927
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2947,7 +2929,7 @@ var mathNormalExpression = {
|
|
|
2947
2929
|
assertNumber(first, sourceCodeInfo);
|
|
2948
2930
|
return Math.cbrt(first);
|
|
2949
2931
|
},
|
|
2950
|
-
|
|
2932
|
+
paramCount: 1,
|
|
2951
2933
|
},
|
|
2952
2934
|
'**': {
|
|
2953
2935
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2956,7 +2938,7 @@ var mathNormalExpression = {
|
|
|
2956
2938
|
assertNumber(second, sourceCodeInfo);
|
|
2957
2939
|
return Math.pow(first, second);
|
|
2958
2940
|
},
|
|
2959
|
-
|
|
2941
|
+
paramCount: 2,
|
|
2960
2942
|
},
|
|
2961
2943
|
'round': {
|
|
2962
2944
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2968,7 +2950,7 @@ var mathNormalExpression = {
|
|
|
2968
2950
|
var factor = Math.pow(10, decimals);
|
|
2969
2951
|
return Math.round(value * factor) / factor;
|
|
2970
2952
|
},
|
|
2971
|
-
|
|
2953
|
+
paramCount: { min: 1, max: 2 },
|
|
2972
2954
|
},
|
|
2973
2955
|
'trunc': {
|
|
2974
2956
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2976,7 +2958,7 @@ var mathNormalExpression = {
|
|
|
2976
2958
|
assertNumber(first, sourceCodeInfo);
|
|
2977
2959
|
return Math.trunc(first);
|
|
2978
2960
|
},
|
|
2979
|
-
|
|
2961
|
+
paramCount: 1,
|
|
2980
2962
|
},
|
|
2981
2963
|
'floor': {
|
|
2982
2964
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2984,7 +2966,7 @@ var mathNormalExpression = {
|
|
|
2984
2966
|
assertNumber(first, sourceCodeInfo);
|
|
2985
2967
|
return Math.floor(first);
|
|
2986
2968
|
},
|
|
2987
|
-
|
|
2969
|
+
paramCount: 1,
|
|
2988
2970
|
},
|
|
2989
2971
|
'ceil': {
|
|
2990
2972
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2992,7 +2974,7 @@ var mathNormalExpression = {
|
|
|
2992
2974
|
assertNumber(first, sourceCodeInfo);
|
|
2993
2975
|
return Math.ceil(first);
|
|
2994
2976
|
},
|
|
2995
|
-
|
|
2977
|
+
paramCount: 1,
|
|
2996
2978
|
},
|
|
2997
2979
|
'min': {
|
|
2998
2980
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3005,7 +2987,7 @@ var mathNormalExpression = {
|
|
|
3005
2987
|
return Math.min(min, value);
|
|
3006
2988
|
}, first);
|
|
3007
2989
|
},
|
|
3008
|
-
|
|
2990
|
+
paramCount: { min: 1 },
|
|
3009
2991
|
},
|
|
3010
2992
|
'max': {
|
|
3011
2993
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3018,7 +3000,7 @@ var mathNormalExpression = {
|
|
|
3018
3000
|
return Math.max(min, value);
|
|
3019
3001
|
}, first);
|
|
3020
3002
|
},
|
|
3021
|
-
|
|
3003
|
+
paramCount: { min: 1 },
|
|
3022
3004
|
},
|
|
3023
3005
|
'abs': {
|
|
3024
3006
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3026,7 +3008,7 @@ var mathNormalExpression = {
|
|
|
3026
3008
|
assertNumber(value, sourceCodeInfo);
|
|
3027
3009
|
return Math.abs(value);
|
|
3028
3010
|
},
|
|
3029
|
-
|
|
3011
|
+
paramCount: 1,
|
|
3030
3012
|
},
|
|
3031
3013
|
'sign': {
|
|
3032
3014
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3034,67 +3016,67 @@ var mathNormalExpression = {
|
|
|
3034
3016
|
assertNumber(value, sourceCodeInfo);
|
|
3035
3017
|
return Math.sign(value);
|
|
3036
3018
|
},
|
|
3037
|
-
|
|
3019
|
+
paramCount: 1,
|
|
3038
3020
|
},
|
|
3039
3021
|
'max_safe_integer': {
|
|
3040
3022
|
evaluate: function () {
|
|
3041
3023
|
return Number.MAX_SAFE_INTEGER;
|
|
3042
3024
|
},
|
|
3043
|
-
|
|
3025
|
+
paramCount: 0,
|
|
3044
3026
|
},
|
|
3045
3027
|
'min_safe_integer': {
|
|
3046
3028
|
evaluate: function () {
|
|
3047
3029
|
return Number.MIN_SAFE_INTEGER;
|
|
3048
3030
|
},
|
|
3049
|
-
|
|
3031
|
+
paramCount: 0,
|
|
3050
3032
|
},
|
|
3051
3033
|
'max_value': {
|
|
3052
3034
|
evaluate: function () {
|
|
3053
3035
|
return Number.MAX_VALUE;
|
|
3054
3036
|
},
|
|
3055
|
-
|
|
3037
|
+
paramCount: 0,
|
|
3056
3038
|
},
|
|
3057
3039
|
'min_value': {
|
|
3058
3040
|
evaluate: function () {
|
|
3059
3041
|
return Number.MIN_VALUE;
|
|
3060
3042
|
},
|
|
3061
|
-
|
|
3043
|
+
paramCount: 0,
|
|
3062
3044
|
},
|
|
3063
3045
|
'epsilon': {
|
|
3064
3046
|
evaluate: function () {
|
|
3065
3047
|
return Number.EPSILON;
|
|
3066
3048
|
},
|
|
3067
|
-
|
|
3049
|
+
paramCount: 0,
|
|
3068
3050
|
},
|
|
3069
3051
|
'positive_infinity': {
|
|
3070
3052
|
evaluate: function () {
|
|
3071
3053
|
return Number.POSITIVE_INFINITY;
|
|
3072
3054
|
},
|
|
3073
|
-
|
|
3055
|
+
paramCount: 0,
|
|
3074
3056
|
},
|
|
3075
3057
|
'negative_infinity': {
|
|
3076
3058
|
evaluate: function () {
|
|
3077
3059
|
return Number.NEGATIVE_INFINITY;
|
|
3078
3060
|
},
|
|
3079
|
-
|
|
3061
|
+
paramCount: 0,
|
|
3080
3062
|
},
|
|
3081
3063
|
'nan': {
|
|
3082
3064
|
evaluate: function () {
|
|
3083
3065
|
return Number.NaN;
|
|
3084
3066
|
},
|
|
3085
|
-
|
|
3067
|
+
paramCount: 0,
|
|
3086
3068
|
},
|
|
3087
3069
|
'e': {
|
|
3088
3070
|
evaluate: function () {
|
|
3089
3071
|
return Math.E;
|
|
3090
3072
|
},
|
|
3091
|
-
|
|
3073
|
+
paramCount: 0,
|
|
3092
3074
|
},
|
|
3093
3075
|
'pi': {
|
|
3094
3076
|
evaluate: function () {
|
|
3095
3077
|
return Math.PI;
|
|
3096
3078
|
},
|
|
3097
|
-
|
|
3079
|
+
paramCount: 0,
|
|
3098
3080
|
},
|
|
3099
3081
|
'exp': {
|
|
3100
3082
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3102,7 +3084,7 @@ var mathNormalExpression = {
|
|
|
3102
3084
|
assertNumber(value, sourceCodeInfo);
|
|
3103
3085
|
return Math.exp(value);
|
|
3104
3086
|
},
|
|
3105
|
-
|
|
3087
|
+
paramCount: 1,
|
|
3106
3088
|
},
|
|
3107
3089
|
'log': {
|
|
3108
3090
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3110,7 +3092,7 @@ var mathNormalExpression = {
|
|
|
3110
3092
|
assertNumber(value, sourceCodeInfo);
|
|
3111
3093
|
return Math.log(value);
|
|
3112
3094
|
},
|
|
3113
|
-
|
|
3095
|
+
paramCount: 1,
|
|
3114
3096
|
},
|
|
3115
3097
|
'log2': {
|
|
3116
3098
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3118,7 +3100,7 @@ var mathNormalExpression = {
|
|
|
3118
3100
|
assertNumber(value, sourceCodeInfo);
|
|
3119
3101
|
return Math.log2(value);
|
|
3120
3102
|
},
|
|
3121
|
-
|
|
3103
|
+
paramCount: 1,
|
|
3122
3104
|
},
|
|
3123
3105
|
'log10': {
|
|
3124
3106
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3126,7 +3108,7 @@ var mathNormalExpression = {
|
|
|
3126
3108
|
assertNumber(value, sourceCodeInfo);
|
|
3127
3109
|
return Math.log10(value);
|
|
3128
3110
|
},
|
|
3129
|
-
|
|
3111
|
+
paramCount: 1,
|
|
3130
3112
|
},
|
|
3131
3113
|
'sin': {
|
|
3132
3114
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3134,7 +3116,7 @@ var mathNormalExpression = {
|
|
|
3134
3116
|
assertNumber(value, sourceCodeInfo);
|
|
3135
3117
|
return Math.sin(value);
|
|
3136
3118
|
},
|
|
3137
|
-
|
|
3119
|
+
paramCount: 1,
|
|
3138
3120
|
},
|
|
3139
3121
|
'asin': {
|
|
3140
3122
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3142,7 +3124,7 @@ var mathNormalExpression = {
|
|
|
3142
3124
|
assertNumber(value, sourceCodeInfo);
|
|
3143
3125
|
return Math.asin(value);
|
|
3144
3126
|
},
|
|
3145
|
-
|
|
3127
|
+
paramCount: 1,
|
|
3146
3128
|
},
|
|
3147
3129
|
'sinh': {
|
|
3148
3130
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3150,7 +3132,7 @@ var mathNormalExpression = {
|
|
|
3150
3132
|
assertNumber(value, sourceCodeInfo);
|
|
3151
3133
|
return Math.sinh(value);
|
|
3152
3134
|
},
|
|
3153
|
-
|
|
3135
|
+
paramCount: 1,
|
|
3154
3136
|
},
|
|
3155
3137
|
'asinh': {
|
|
3156
3138
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3158,7 +3140,7 @@ var mathNormalExpression = {
|
|
|
3158
3140
|
assertNumber(value, sourceCodeInfo);
|
|
3159
3141
|
return Math.asinh(value);
|
|
3160
3142
|
},
|
|
3161
|
-
|
|
3143
|
+
paramCount: 1,
|
|
3162
3144
|
},
|
|
3163
3145
|
'cos': {
|
|
3164
3146
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3166,7 +3148,7 @@ var mathNormalExpression = {
|
|
|
3166
3148
|
assertNumber(value, sourceCodeInfo);
|
|
3167
3149
|
return Math.cos(value);
|
|
3168
3150
|
},
|
|
3169
|
-
|
|
3151
|
+
paramCount: 1,
|
|
3170
3152
|
},
|
|
3171
3153
|
'acos': {
|
|
3172
3154
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3174,7 +3156,7 @@ var mathNormalExpression = {
|
|
|
3174
3156
|
assertNumber(value, sourceCodeInfo);
|
|
3175
3157
|
return Math.acos(value);
|
|
3176
3158
|
},
|
|
3177
|
-
|
|
3159
|
+
paramCount: 1,
|
|
3178
3160
|
},
|
|
3179
3161
|
'cosh': {
|
|
3180
3162
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3182,7 +3164,7 @@ var mathNormalExpression = {
|
|
|
3182
3164
|
assertNumber(value, sourceCodeInfo);
|
|
3183
3165
|
return Math.cosh(value);
|
|
3184
3166
|
},
|
|
3185
|
-
|
|
3167
|
+
paramCount: 1,
|
|
3186
3168
|
},
|
|
3187
3169
|
'acosh': {
|
|
3188
3170
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3190,7 +3172,7 @@ var mathNormalExpression = {
|
|
|
3190
3172
|
assertNumber(value, sourceCodeInfo);
|
|
3191
3173
|
return Math.acosh(value);
|
|
3192
3174
|
},
|
|
3193
|
-
|
|
3175
|
+
paramCount: 1,
|
|
3194
3176
|
},
|
|
3195
3177
|
'tan': {
|
|
3196
3178
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3198,7 +3180,7 @@ var mathNormalExpression = {
|
|
|
3198
3180
|
assertNumber(value, sourceCodeInfo);
|
|
3199
3181
|
return Math.tan(value);
|
|
3200
3182
|
},
|
|
3201
|
-
|
|
3183
|
+
paramCount: 1,
|
|
3202
3184
|
},
|
|
3203
3185
|
'atan': {
|
|
3204
3186
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3206,7 +3188,7 @@ var mathNormalExpression = {
|
|
|
3206
3188
|
assertNumber(value, sourceCodeInfo);
|
|
3207
3189
|
return Math.atan(value);
|
|
3208
3190
|
},
|
|
3209
|
-
|
|
3191
|
+
paramCount: 1,
|
|
3210
3192
|
},
|
|
3211
3193
|
'tanh': {
|
|
3212
3194
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3214,7 +3196,7 @@ var mathNormalExpression = {
|
|
|
3214
3196
|
assertNumber(value, sourceCodeInfo);
|
|
3215
3197
|
return Math.tanh(value);
|
|
3216
3198
|
},
|
|
3217
|
-
|
|
3199
|
+
paramCount: 1,
|
|
3218
3200
|
},
|
|
3219
3201
|
'atanh': {
|
|
3220
3202
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3222,7 +3204,7 @@ var mathNormalExpression = {
|
|
|
3222
3204
|
assertNumber(value, sourceCodeInfo);
|
|
3223
3205
|
return Math.atanh(value);
|
|
3224
3206
|
},
|
|
3225
|
-
|
|
3207
|
+
paramCount: 1,
|
|
3226
3208
|
},
|
|
3227
3209
|
};
|
|
3228
3210
|
|
|
@@ -3237,7 +3219,7 @@ var miscNormalExpression = {
|
|
|
3237
3219
|
}
|
|
3238
3220
|
return true;
|
|
3239
3221
|
},
|
|
3240
|
-
|
|
3222
|
+
paramCount: { min: 1 },
|
|
3241
3223
|
},
|
|
3242
3224
|
'==': {
|
|
3243
3225
|
evaluate: function (_a) {
|
|
@@ -3259,14 +3241,14 @@ var miscNormalExpression = {
|
|
|
3259
3241
|
}
|
|
3260
3242
|
return true;
|
|
3261
3243
|
},
|
|
3262
|
-
|
|
3244
|
+
paramCount: { min: 1 },
|
|
3263
3245
|
},
|
|
3264
3246
|
'equal?': {
|
|
3265
3247
|
evaluate: function (_a, sourceCodeInfo) {
|
|
3266
3248
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3267
3249
|
return deepEqual(asAny(a, sourceCodeInfo), asAny(b, sourceCodeInfo), sourceCodeInfo);
|
|
3268
3250
|
},
|
|
3269
|
-
|
|
3251
|
+
paramCount: { min: 1 },
|
|
3270
3252
|
},
|
|
3271
3253
|
'>': {
|
|
3272
3254
|
evaluate: function (_a) {
|
|
@@ -3290,7 +3272,7 @@ var miscNormalExpression = {
|
|
|
3290
3272
|
}
|
|
3291
3273
|
return true;
|
|
3292
3274
|
},
|
|
3293
|
-
|
|
3275
|
+
paramCount: { min: 1 },
|
|
3294
3276
|
},
|
|
3295
3277
|
'<': {
|
|
3296
3278
|
evaluate: function (_a) {
|
|
@@ -3314,7 +3296,7 @@ var miscNormalExpression = {
|
|
|
3314
3296
|
}
|
|
3315
3297
|
return true;
|
|
3316
3298
|
},
|
|
3317
|
-
|
|
3299
|
+
paramCount: { min: 1 },
|
|
3318
3300
|
},
|
|
3319
3301
|
'>=': {
|
|
3320
3302
|
evaluate: function (_a) {
|
|
@@ -3338,7 +3320,7 @@ var miscNormalExpression = {
|
|
|
3338
3320
|
}
|
|
3339
3321
|
return true;
|
|
3340
3322
|
},
|
|
3341
|
-
|
|
3323
|
+
paramCount: { min: 1 },
|
|
3342
3324
|
},
|
|
3343
3325
|
'<=': {
|
|
3344
3326
|
evaluate: function (_a) {
|
|
@@ -3362,14 +3344,14 @@ var miscNormalExpression = {
|
|
|
3362
3344
|
}
|
|
3363
3345
|
return true;
|
|
3364
3346
|
},
|
|
3365
|
-
|
|
3347
|
+
paramCount: { min: 1 },
|
|
3366
3348
|
},
|
|
3367
3349
|
'!': {
|
|
3368
3350
|
evaluate: function (_a) {
|
|
3369
3351
|
var _b = __read(_a, 1), first = _b[0];
|
|
3370
3352
|
return !first;
|
|
3371
3353
|
},
|
|
3372
|
-
|
|
3354
|
+
paramCount: 1,
|
|
3373
3355
|
},
|
|
3374
3356
|
'epoch>iso_date': {
|
|
3375
3357
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3377,7 +3359,7 @@ var miscNormalExpression = {
|
|
|
3377
3359
|
assertNumber(ms, sourceCodeInfo);
|
|
3378
3360
|
return new Date(ms).toISOString();
|
|
3379
3361
|
},
|
|
3380
|
-
|
|
3362
|
+
paramCount: 1,
|
|
3381
3363
|
},
|
|
3382
3364
|
'iso_date>epoch': {
|
|
3383
3365
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3387,7 +3369,7 @@ var miscNormalExpression = {
|
|
|
3387
3369
|
assertNumber(ms, sourceCodeInfo, { finite: true });
|
|
3388
3370
|
return ms;
|
|
3389
3371
|
},
|
|
3390
|
-
|
|
3372
|
+
paramCount: 1,
|
|
3391
3373
|
},
|
|
3392
3374
|
'write!': {
|
|
3393
3375
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3397,20 +3379,21 @@ var miscNormalExpression = {
|
|
|
3397
3379
|
return asAny(params[params.length - 1], sourceCodeInfo);
|
|
3398
3380
|
return null;
|
|
3399
3381
|
},
|
|
3382
|
+
paramCount: {},
|
|
3400
3383
|
},
|
|
3401
3384
|
'boolean': {
|
|
3402
3385
|
evaluate: function (_a) {
|
|
3403
3386
|
var _b = __read(_a, 1), value = _b[0];
|
|
3404
3387
|
return !!value;
|
|
3405
3388
|
},
|
|
3406
|
-
|
|
3389
|
+
paramCount: 1,
|
|
3407
3390
|
},
|
|
3408
3391
|
'compare': {
|
|
3409
3392
|
evaluate: function (_a) {
|
|
3410
3393
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3411
3394
|
return compare(a, b);
|
|
3412
3395
|
},
|
|
3413
|
-
|
|
3396
|
+
paramCount: 2,
|
|
3414
3397
|
},
|
|
3415
3398
|
'json_parse': {
|
|
3416
3399
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3419,7 +3402,7 @@ var miscNormalExpression = {
|
|
|
3419
3402
|
// eslint-disable-next-line ts/no-unsafe-return
|
|
3420
3403
|
return JSON.parse(first);
|
|
3421
3404
|
},
|
|
3422
|
-
|
|
3405
|
+
paramCount: 1,
|
|
3423
3406
|
},
|
|
3424
3407
|
'json_stringify': {
|
|
3425
3408
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3430,7 +3413,7 @@ var miscNormalExpression = {
|
|
|
3430
3413
|
assertNumber(second, sourceCodeInfo);
|
|
3431
3414
|
return JSON.stringify(first, null, second);
|
|
3432
3415
|
},
|
|
3433
|
-
|
|
3416
|
+
paramCount: { min: 1, max: 2 },
|
|
3434
3417
|
},
|
|
3435
3418
|
};
|
|
3436
3419
|
|
|
@@ -3444,7 +3427,7 @@ var assertNormalExpression = {
|
|
|
3444
3427
|
throw new AssertionError(message, sourceCodeInfo);
|
|
3445
3428
|
return asAny(value, sourceCodeInfo);
|
|
3446
3429
|
},
|
|
3447
|
-
|
|
3430
|
+
paramCount: { min: 1, max: 2 },
|
|
3448
3431
|
},
|
|
3449
3432
|
'assert=': {
|
|
3450
3433
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3454,7 +3437,7 @@ var assertNormalExpression = {
|
|
|
3454
3437
|
throw new AssertionError("Expected ".concat(first, " to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3455
3438
|
return null;
|
|
3456
3439
|
},
|
|
3457
|
-
|
|
3440
|
+
paramCount: { min: 2, max: 3 },
|
|
3458
3441
|
},
|
|
3459
3442
|
'assert!=': {
|
|
3460
3443
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3464,7 +3447,7 @@ var assertNormalExpression = {
|
|
|
3464
3447
|
throw new AssertionError("Expected ".concat(first, " not to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3465
3448
|
return null;
|
|
3466
3449
|
},
|
|
3467
|
-
|
|
3450
|
+
paramCount: { min: 2, max: 3 },
|
|
3468
3451
|
},
|
|
3469
3452
|
'assert_equal': {
|
|
3470
3453
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3475,7 +3458,7 @@ var assertNormalExpression = {
|
|
|
3475
3458
|
}
|
|
3476
3459
|
return null;
|
|
3477
3460
|
},
|
|
3478
|
-
|
|
3461
|
+
paramCount: { min: 2, max: 3 },
|
|
3479
3462
|
},
|
|
3480
3463
|
'assert_not_equal': {
|
|
3481
3464
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3486,7 +3469,7 @@ var assertNormalExpression = {
|
|
|
3486
3469
|
}
|
|
3487
3470
|
return null;
|
|
3488
3471
|
},
|
|
3489
|
-
|
|
3472
|
+
paramCount: { min: 2, max: 3 },
|
|
3490
3473
|
},
|
|
3491
3474
|
'assert_gt': {
|
|
3492
3475
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3496,7 +3479,7 @@ var assertNormalExpression = {
|
|
|
3496
3479
|
throw new AssertionError("Expected ".concat(first, " to be grater than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3497
3480
|
return null;
|
|
3498
3481
|
},
|
|
3499
|
-
|
|
3482
|
+
paramCount: { min: 2, max: 3 },
|
|
3500
3483
|
},
|
|
3501
3484
|
'assert_gte': {
|
|
3502
3485
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3506,7 +3489,7 @@ var assertNormalExpression = {
|
|
|
3506
3489
|
throw new AssertionError("Expected ".concat(first, " to be grater than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3507
3490
|
return null;
|
|
3508
3491
|
},
|
|
3509
|
-
|
|
3492
|
+
paramCount: { min: 2, max: 3 },
|
|
3510
3493
|
},
|
|
3511
3494
|
'assert_lt': {
|
|
3512
3495
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3516,7 +3499,7 @@ var assertNormalExpression = {
|
|
|
3516
3499
|
throw new AssertionError("Expected ".concat(first, " to be less than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3517
3500
|
return null;
|
|
3518
3501
|
},
|
|
3519
|
-
|
|
3502
|
+
paramCount: { min: 2, max: 3 },
|
|
3520
3503
|
},
|
|
3521
3504
|
'assert_lte': {
|
|
3522
3505
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3526,7 +3509,7 @@ var assertNormalExpression = {
|
|
|
3526
3509
|
throw new AssertionError("Expected ".concat(first, " to be less than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3527
3510
|
return null;
|
|
3528
3511
|
},
|
|
3529
|
-
|
|
3512
|
+
paramCount: { min: 2, max: 3 },
|
|
3530
3513
|
},
|
|
3531
3514
|
'assert_true': {
|
|
3532
3515
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3536,7 +3519,7 @@ var assertNormalExpression = {
|
|
|
3536
3519
|
throw new AssertionError("Expected ".concat(first, " to be true.").concat(message), sourceCodeInfo);
|
|
3537
3520
|
return null;
|
|
3538
3521
|
},
|
|
3539
|
-
|
|
3522
|
+
paramCount: { min: 1, max: 2 },
|
|
3540
3523
|
},
|
|
3541
3524
|
'assert_false': {
|
|
3542
3525
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3546,7 +3529,7 @@ var assertNormalExpression = {
|
|
|
3546
3529
|
throw new AssertionError("Expected ".concat(first, " to be false.").concat(message), sourceCodeInfo);
|
|
3547
3530
|
return null;
|
|
3548
3531
|
},
|
|
3549
|
-
|
|
3532
|
+
paramCount: { min: 1, max: 2 },
|
|
3550
3533
|
},
|
|
3551
3534
|
'assert_truthy': {
|
|
3552
3535
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3556,7 +3539,7 @@ var assertNormalExpression = {
|
|
|
3556
3539
|
throw new AssertionError("Expected ".concat(first, " to be truthy.").concat(message), sourceCodeInfo);
|
|
3557
3540
|
return null;
|
|
3558
3541
|
},
|
|
3559
|
-
|
|
3542
|
+
paramCount: { min: 1, max: 2 },
|
|
3560
3543
|
},
|
|
3561
3544
|
'assert_falsy': {
|
|
3562
3545
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3566,7 +3549,7 @@ var assertNormalExpression = {
|
|
|
3566
3549
|
throw new AssertionError("Expected ".concat(first, " to be falsy.").concat(message), sourceCodeInfo);
|
|
3567
3550
|
return null;
|
|
3568
3551
|
},
|
|
3569
|
-
|
|
3552
|
+
paramCount: { min: 1, max: 2 },
|
|
3570
3553
|
},
|
|
3571
3554
|
'assert_null': {
|
|
3572
3555
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3576,7 +3559,7 @@ var assertNormalExpression = {
|
|
|
3576
3559
|
throw new AssertionError("Expected ".concat(first, " to be nil.").concat(message), sourceCodeInfo);
|
|
3577
3560
|
return null;
|
|
3578
3561
|
},
|
|
3579
|
-
|
|
3562
|
+
paramCount: { min: 1, max: 2 },
|
|
3580
3563
|
},
|
|
3581
3564
|
'assert_throws': {
|
|
3582
3565
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3592,7 +3575,7 @@ var assertNormalExpression = {
|
|
|
3592
3575
|
}
|
|
3593
3576
|
throw new AssertionError("Expected function to throw.".concat(message), sourceCodeInfo);
|
|
3594
3577
|
},
|
|
3595
|
-
|
|
3578
|
+
paramCount: { min: 1, max: 2 },
|
|
3596
3579
|
},
|
|
3597
3580
|
'assert_throws_error': {
|
|
3598
3581
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3613,7 +3596,7 @@ var assertNormalExpression = {
|
|
|
3613
3596
|
}
|
|
3614
3597
|
throw new AssertionError("Expected function to throw \"".concat(throwMessage, "\".").concat(message), sourceCodeInfo);
|
|
3615
3598
|
},
|
|
3616
|
-
|
|
3599
|
+
paramCount: { min: 2, max: 3 },
|
|
3617
3600
|
},
|
|
3618
3601
|
'assert_not_throws': {
|
|
3619
3602
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3629,7 +3612,7 @@ var assertNormalExpression = {
|
|
|
3629
3612
|
}
|
|
3630
3613
|
return null;
|
|
3631
3614
|
},
|
|
3632
|
-
|
|
3615
|
+
paramCount: { min: 1, max: 2 },
|
|
3633
3616
|
},
|
|
3634
3617
|
};
|
|
3635
3618
|
|
|
@@ -3645,7 +3628,7 @@ var objectNormalExpression = {
|
|
|
3645
3628
|
}
|
|
3646
3629
|
return result;
|
|
3647
3630
|
},
|
|
3648
|
-
|
|
3631
|
+
paramCount: { even: true },
|
|
3649
3632
|
},
|
|
3650
3633
|
keys: {
|
|
3651
3634
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3653,7 +3636,7 @@ var objectNormalExpression = {
|
|
|
3653
3636
|
assertObj(obj, sourceCodeInfo);
|
|
3654
3637
|
return Object.keys(obj);
|
|
3655
3638
|
},
|
|
3656
|
-
|
|
3639
|
+
paramCount: 1,
|
|
3657
3640
|
},
|
|
3658
3641
|
vals: {
|
|
3659
3642
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3661,7 +3644,7 @@ var objectNormalExpression = {
|
|
|
3661
3644
|
assertObj(obj, sourceCodeInfo);
|
|
3662
3645
|
return Object.values(obj);
|
|
3663
3646
|
},
|
|
3664
|
-
|
|
3647
|
+
paramCount: 1,
|
|
3665
3648
|
},
|
|
3666
3649
|
entries: {
|
|
3667
3650
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3669,7 +3652,7 @@ var objectNormalExpression = {
|
|
|
3669
3652
|
assertObj(obj, sourceCodeInfo);
|
|
3670
3653
|
return Object.entries(obj);
|
|
3671
3654
|
},
|
|
3672
|
-
|
|
3655
|
+
paramCount: 1,
|
|
3673
3656
|
},
|
|
3674
3657
|
find: {
|
|
3675
3658
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3680,7 +3663,7 @@ var objectNormalExpression = {
|
|
|
3680
3663
|
return [key, obj[key]];
|
|
3681
3664
|
return null;
|
|
3682
3665
|
},
|
|
3683
|
-
|
|
3666
|
+
paramCount: 2,
|
|
3684
3667
|
},
|
|
3685
3668
|
dissoc: {
|
|
3686
3669
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3691,7 +3674,7 @@ var objectNormalExpression = {
|
|
|
3691
3674
|
delete newObj[key];
|
|
3692
3675
|
return newObj;
|
|
3693
3676
|
},
|
|
3694
|
-
|
|
3677
|
+
paramCount: 2,
|
|
3695
3678
|
},
|
|
3696
3679
|
merge: {
|
|
3697
3680
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3704,7 +3687,7 @@ var objectNormalExpression = {
|
|
|
3704
3687
|
return __assign(__assign({}, result), obj);
|
|
3705
3688
|
}, __assign({}, first));
|
|
3706
3689
|
},
|
|
3707
|
-
|
|
3690
|
+
paramCount: { min: 0 },
|
|
3708
3691
|
},
|
|
3709
3692
|
merge_with: {
|
|
3710
3693
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -3727,7 +3710,7 @@ var objectNormalExpression = {
|
|
|
3727
3710
|
return result;
|
|
3728
3711
|
}, __assign({}, first));
|
|
3729
3712
|
},
|
|
3730
|
-
|
|
3713
|
+
paramCount: { min: 2 },
|
|
3731
3714
|
},
|
|
3732
3715
|
zipmap: {
|
|
3733
3716
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3742,7 +3725,7 @@ var objectNormalExpression = {
|
|
|
3742
3725
|
}
|
|
3743
3726
|
return result;
|
|
3744
3727
|
},
|
|
3745
|
-
|
|
3728
|
+
paramCount: 2,
|
|
3746
3729
|
},
|
|
3747
3730
|
select_keys: {
|
|
3748
3731
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3755,7 +3738,7 @@ var objectNormalExpression = {
|
|
|
3755
3738
|
return result;
|
|
3756
3739
|
}, {});
|
|
3757
3740
|
},
|
|
3758
|
-
|
|
3741
|
+
paramCount: 2,
|
|
3759
3742
|
},
|
|
3760
3743
|
};
|
|
3761
3744
|
|
|
@@ -3765,42 +3748,42 @@ var predicatesNormalExpression = {
|
|
|
3765
3748
|
var _b = __read(_a, 1), first = _b[0];
|
|
3766
3749
|
return isLitsFunction(first);
|
|
3767
3750
|
},
|
|
3768
|
-
|
|
3751
|
+
paramCount: 1,
|
|
3769
3752
|
},
|
|
3770
3753
|
'string?': {
|
|
3771
3754
|
evaluate: function (_a) {
|
|
3772
3755
|
var _b = __read(_a, 1), first = _b[0];
|
|
3773
3756
|
return typeof first === 'string';
|
|
3774
3757
|
},
|
|
3775
|
-
|
|
3758
|
+
paramCount: 1,
|
|
3776
3759
|
},
|
|
3777
3760
|
'number?': {
|
|
3778
3761
|
evaluate: function (_a) {
|
|
3779
3762
|
var _b = __read(_a, 1), first = _b[0];
|
|
3780
3763
|
return typeof first === 'number';
|
|
3781
3764
|
},
|
|
3782
|
-
|
|
3765
|
+
paramCount: 1,
|
|
3783
3766
|
},
|
|
3784
3767
|
'integer?': {
|
|
3785
3768
|
evaluate: function (_a) {
|
|
3786
3769
|
var _b = __read(_a, 1), first = _b[0];
|
|
3787
3770
|
return typeof first === 'number' && isNumber(first, { integer: true });
|
|
3788
3771
|
},
|
|
3789
|
-
|
|
3772
|
+
paramCount: 1,
|
|
3790
3773
|
},
|
|
3791
3774
|
'boolean?': {
|
|
3792
3775
|
evaluate: function (_a) {
|
|
3793
3776
|
var _b = __read(_a, 1), first = _b[0];
|
|
3794
3777
|
return typeof first === 'boolean';
|
|
3795
3778
|
},
|
|
3796
|
-
|
|
3779
|
+
paramCount: 1,
|
|
3797
3780
|
},
|
|
3798
3781
|
'nil?': {
|
|
3799
3782
|
evaluate: function (_a) {
|
|
3800
3783
|
var _b = __read(_a, 1), first = _b[0];
|
|
3801
3784
|
return first === null || first === undefined;
|
|
3802
3785
|
},
|
|
3803
|
-
|
|
3786
|
+
paramCount: 1,
|
|
3804
3787
|
},
|
|
3805
3788
|
'zero?': {
|
|
3806
3789
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3808,7 +3791,7 @@ var predicatesNormalExpression = {
|
|
|
3808
3791
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3809
3792
|
return first === 0;
|
|
3810
3793
|
},
|
|
3811
|
-
|
|
3794
|
+
paramCount: 1,
|
|
3812
3795
|
},
|
|
3813
3796
|
'pos?': {
|
|
3814
3797
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3816,7 +3799,7 @@ var predicatesNormalExpression = {
|
|
|
3816
3799
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3817
3800
|
return first > 0;
|
|
3818
3801
|
},
|
|
3819
|
-
|
|
3802
|
+
paramCount: 1,
|
|
3820
3803
|
},
|
|
3821
3804
|
'neg?': {
|
|
3822
3805
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3824,7 +3807,7 @@ var predicatesNormalExpression = {
|
|
|
3824
3807
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3825
3808
|
return first < 0;
|
|
3826
3809
|
},
|
|
3827
|
-
|
|
3810
|
+
paramCount: 1,
|
|
3828
3811
|
},
|
|
3829
3812
|
'even?': {
|
|
3830
3813
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3832,7 +3815,7 @@ var predicatesNormalExpression = {
|
|
|
3832
3815
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3833
3816
|
return first % 2 === 0;
|
|
3834
3817
|
},
|
|
3835
|
-
|
|
3818
|
+
paramCount: 1,
|
|
3836
3819
|
},
|
|
3837
3820
|
'odd?': {
|
|
3838
3821
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3840,42 +3823,42 @@ var predicatesNormalExpression = {
|
|
|
3840
3823
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3841
3824
|
return isNumber(first, { integer: true }) && first % 2 !== 0;
|
|
3842
3825
|
},
|
|
3843
|
-
|
|
3826
|
+
paramCount: 1,
|
|
3844
3827
|
},
|
|
3845
3828
|
'array?': {
|
|
3846
3829
|
evaluate: function (_a) {
|
|
3847
3830
|
var _b = __read(_a, 1), first = _b[0];
|
|
3848
3831
|
return Array.isArray(first);
|
|
3849
3832
|
},
|
|
3850
|
-
|
|
3833
|
+
paramCount: 1,
|
|
3851
3834
|
},
|
|
3852
3835
|
'coll?': {
|
|
3853
3836
|
evaluate: function (_a) {
|
|
3854
3837
|
var _b = __read(_a, 1), first = _b[0];
|
|
3855
3838
|
return isColl(first);
|
|
3856
3839
|
},
|
|
3857
|
-
|
|
3840
|
+
paramCount: 1,
|
|
3858
3841
|
},
|
|
3859
3842
|
'seq?': {
|
|
3860
3843
|
evaluate: function (_a) {
|
|
3861
3844
|
var _b = __read(_a, 1), first = _b[0];
|
|
3862
3845
|
return isSeq(first);
|
|
3863
3846
|
},
|
|
3864
|
-
|
|
3847
|
+
paramCount: 1,
|
|
3865
3848
|
},
|
|
3866
3849
|
'object?': {
|
|
3867
3850
|
evaluate: function (_a) {
|
|
3868
3851
|
var _b = __read(_a, 1), first = _b[0];
|
|
3869
3852
|
return isObj(first);
|
|
3870
3853
|
},
|
|
3871
|
-
|
|
3854
|
+
paramCount: 1,
|
|
3872
3855
|
},
|
|
3873
3856
|
'regexp?': {
|
|
3874
3857
|
evaluate: function (_a) {
|
|
3875
3858
|
var _b = __read(_a, 1), value = _b[0];
|
|
3876
3859
|
return isRegularExpression(value);
|
|
3877
3860
|
},
|
|
3878
|
-
|
|
3861
|
+
paramCount: 1,
|
|
3879
3862
|
},
|
|
3880
3863
|
'finite?': {
|
|
3881
3864
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3883,7 +3866,7 @@ var predicatesNormalExpression = {
|
|
|
3883
3866
|
assertNumber(value, sourceCodeInfo);
|
|
3884
3867
|
return Number.isFinite(value);
|
|
3885
3868
|
},
|
|
3886
|
-
|
|
3869
|
+
paramCount: 1,
|
|
3887
3870
|
},
|
|
3888
3871
|
'nan?': {
|
|
3889
3872
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3891,7 +3874,7 @@ var predicatesNormalExpression = {
|
|
|
3891
3874
|
assertNumber(value, sourceCodeInfo);
|
|
3892
3875
|
return Number.isNaN(value);
|
|
3893
3876
|
},
|
|
3894
|
-
|
|
3877
|
+
paramCount: 1,
|
|
3895
3878
|
},
|
|
3896
3879
|
'positive_infinity?': {
|
|
3897
3880
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3899,7 +3882,7 @@ var predicatesNormalExpression = {
|
|
|
3899
3882
|
assertNumber(value, sourceCodeInfo);
|
|
3900
3883
|
return value === Number.POSITIVE_INFINITY;
|
|
3901
3884
|
},
|
|
3902
|
-
|
|
3885
|
+
paramCount: 1,
|
|
3903
3886
|
},
|
|
3904
3887
|
'negative_infinity?': {
|
|
3905
3888
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3907,21 +3890,21 @@ var predicatesNormalExpression = {
|
|
|
3907
3890
|
assertNumber(value, sourceCodeInfo);
|
|
3908
3891
|
return value === Number.NEGATIVE_INFINITY;
|
|
3909
3892
|
},
|
|
3910
|
-
|
|
3893
|
+
paramCount: 1,
|
|
3911
3894
|
},
|
|
3912
3895
|
'true?': {
|
|
3913
3896
|
evaluate: function (_a) {
|
|
3914
3897
|
var _b = __read(_a, 1), value = _b[0];
|
|
3915
3898
|
return value === true;
|
|
3916
3899
|
},
|
|
3917
|
-
|
|
3900
|
+
paramCount: 1,
|
|
3918
3901
|
},
|
|
3919
3902
|
'false?': {
|
|
3920
3903
|
evaluate: function (_a) {
|
|
3921
3904
|
var _b = __read(_a, 1), value = _b[0];
|
|
3922
3905
|
return value === false;
|
|
3923
3906
|
},
|
|
3924
|
-
|
|
3907
|
+
paramCount: 1,
|
|
3925
3908
|
},
|
|
3926
3909
|
'empty?': {
|
|
3927
3910
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3935,7 +3918,7 @@ var predicatesNormalExpression = {
|
|
|
3935
3918
|
return coll.length === 0;
|
|
3936
3919
|
return Object.keys(coll).length === 0;
|
|
3937
3920
|
},
|
|
3938
|
-
|
|
3921
|
+
paramCount: 1,
|
|
3939
3922
|
},
|
|
3940
3923
|
'not_empty?': {
|
|
3941
3924
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3949,7 +3932,7 @@ var predicatesNormalExpression = {
|
|
|
3949
3932
|
return coll.length > 0;
|
|
3950
3933
|
return Object.keys(coll).length > 0;
|
|
3951
3934
|
},
|
|
3952
|
-
|
|
3935
|
+
paramCount: 1,
|
|
3953
3936
|
},
|
|
3954
3937
|
};
|
|
3955
3938
|
|
|
@@ -3968,7 +3951,7 @@ var regexpNormalExpression = {
|
|
|
3968
3951
|
_b.f = flags,
|
|
3969
3952
|
_b;
|
|
3970
3953
|
},
|
|
3971
|
-
|
|
3954
|
+
paramCount: { min: 1, max: 2 },
|
|
3972
3955
|
},
|
|
3973
3956
|
match: {
|
|
3974
3957
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3982,7 +3965,7 @@ var regexpNormalExpression = {
|
|
|
3982
3965
|
return __spreadArray([], __read(match), false);
|
|
3983
3966
|
return null;
|
|
3984
3967
|
},
|
|
3985
|
-
|
|
3968
|
+
paramCount: 2,
|
|
3986
3969
|
},
|
|
3987
3970
|
replace: {
|
|
3988
3971
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3993,7 +3976,7 @@ var regexpNormalExpression = {
|
|
|
3993
3976
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f)) : regexp;
|
|
3994
3977
|
return str.replace(matcher, value);
|
|
3995
3978
|
},
|
|
3996
|
-
|
|
3979
|
+
paramCount: 3,
|
|
3997
3980
|
},
|
|
3998
3981
|
replace_all: {
|
|
3999
3982
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4004,7 +3987,7 @@ var regexpNormalExpression = {
|
|
|
4004
3987
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f.includes('g') ? regexp.f : "".concat(regexp.f, "g"))) : regexp;
|
|
4005
3988
|
return str.replaceAll(matcher, value);
|
|
4006
3989
|
},
|
|
4007
|
-
|
|
3990
|
+
paramCount: 3,
|
|
4008
3991
|
},
|
|
4009
3992
|
};
|
|
4010
3993
|
|
|
@@ -4020,7 +4003,7 @@ var stringNormalExpression = {
|
|
|
4020
4003
|
assertNumber(third, sourceCodeInfo, { gte: second });
|
|
4021
4004
|
return (first).substring(second, third);
|
|
4022
4005
|
},
|
|
4023
|
-
|
|
4006
|
+
paramCount: { min: 2, max: 3 },
|
|
4024
4007
|
},
|
|
4025
4008
|
'string_repeat': {
|
|
4026
4009
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4029,7 +4012,7 @@ var stringNormalExpression = {
|
|
|
4029
4012
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
4030
4013
|
return str.repeat(count);
|
|
4031
4014
|
},
|
|
4032
|
-
|
|
4015
|
+
paramCount: 2,
|
|
4033
4016
|
},
|
|
4034
4017
|
'str': {
|
|
4035
4018
|
evaluate: function (params) {
|
|
@@ -4044,6 +4027,7 @@ var stringNormalExpression = {
|
|
|
4044
4027
|
return result + paramStr;
|
|
4045
4028
|
}, '');
|
|
4046
4029
|
},
|
|
4030
|
+
paramCount: {},
|
|
4047
4031
|
},
|
|
4048
4032
|
'number': {
|
|
4049
4033
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4054,7 +4038,7 @@ var stringNormalExpression = {
|
|
|
4054
4038
|
throw new LitsError("Could not convert '".concat(str, "' to a number."), sourceCodeInfo);
|
|
4055
4039
|
return number;
|
|
4056
4040
|
},
|
|
4057
|
-
|
|
4041
|
+
paramCount: 1,
|
|
4058
4042
|
},
|
|
4059
4043
|
'from_char_code': {
|
|
4060
4044
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4068,7 +4052,7 @@ var stringNormalExpression = {
|
|
|
4068
4052
|
throw new LitsError(error, sourceCodeInfo);
|
|
4069
4053
|
}
|
|
4070
4054
|
},
|
|
4071
|
-
|
|
4055
|
+
paramCount: 1,
|
|
4072
4056
|
},
|
|
4073
4057
|
'to_char_code': {
|
|
4074
4058
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4076,7 +4060,7 @@ var stringNormalExpression = {
|
|
|
4076
4060
|
assertString(str, sourceCodeInfo, { nonEmpty: true });
|
|
4077
4061
|
return asNonUndefined(str.codePointAt(0), sourceCodeInfo);
|
|
4078
4062
|
},
|
|
4079
|
-
|
|
4063
|
+
paramCount: 1,
|
|
4080
4064
|
},
|
|
4081
4065
|
'lower_case': {
|
|
4082
4066
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4084,7 +4068,7 @@ var stringNormalExpression = {
|
|
|
4084
4068
|
assertString(str, sourceCodeInfo);
|
|
4085
4069
|
return str.toLowerCase();
|
|
4086
4070
|
},
|
|
4087
|
-
|
|
4071
|
+
paramCount: 1,
|
|
4088
4072
|
},
|
|
4089
4073
|
'upper_case': {
|
|
4090
4074
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4092,7 +4076,7 @@ var stringNormalExpression = {
|
|
|
4092
4076
|
assertString(str, sourceCodeInfo);
|
|
4093
4077
|
return str.toUpperCase();
|
|
4094
4078
|
},
|
|
4095
|
-
|
|
4079
|
+
paramCount: 1,
|
|
4096
4080
|
},
|
|
4097
4081
|
'trim': {
|
|
4098
4082
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4100,7 +4084,7 @@ var stringNormalExpression = {
|
|
|
4100
4084
|
assertString(str, sourceCodeInfo);
|
|
4101
4085
|
return str.trim();
|
|
4102
4086
|
},
|
|
4103
|
-
|
|
4087
|
+
paramCount: 1,
|
|
4104
4088
|
},
|
|
4105
4089
|
'trim_left': {
|
|
4106
4090
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4108,7 +4092,7 @@ var stringNormalExpression = {
|
|
|
4108
4092
|
assertString(str, sourceCodeInfo);
|
|
4109
4093
|
return str.replace(/^\s+/, '');
|
|
4110
4094
|
},
|
|
4111
|
-
|
|
4095
|
+
paramCount: 1,
|
|
4112
4096
|
},
|
|
4113
4097
|
'trim_right': {
|
|
4114
4098
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4116,7 +4100,7 @@ var stringNormalExpression = {
|
|
|
4116
4100
|
assertString(str, sourceCodeInfo);
|
|
4117
4101
|
return str.replace(/\s+$/, '');
|
|
4118
4102
|
},
|
|
4119
|
-
|
|
4103
|
+
paramCount: 1,
|
|
4120
4104
|
},
|
|
4121
4105
|
'++': {
|
|
4122
4106
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -4140,7 +4124,7 @@ var stringNormalExpression = {
|
|
|
4140
4124
|
return "".concat(acc).concat(str);
|
|
4141
4125
|
}, first === null ? '' : "".concat(first));
|
|
4142
4126
|
},
|
|
4143
|
-
|
|
4127
|
+
paramCount: {},
|
|
4144
4128
|
},
|
|
4145
4129
|
'join': {
|
|
4146
4130
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4150,7 +4134,7 @@ var stringNormalExpression = {
|
|
|
4150
4134
|
assertString(delimiter, sourceCodeInfo);
|
|
4151
4135
|
return stringList.join(delimiter);
|
|
4152
4136
|
},
|
|
4153
|
-
|
|
4137
|
+
paramCount: 2,
|
|
4154
4138
|
},
|
|
4155
4139
|
'split': {
|
|
4156
4140
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4164,7 +4148,7 @@ var stringNormalExpression = {
|
|
|
4164
4148
|
: new RegExp(stringOrRegExpValue.s, stringOrRegExpValue.f);
|
|
4165
4149
|
return str.split(delimiter, limit);
|
|
4166
4150
|
},
|
|
4167
|
-
|
|
4151
|
+
paramCount: { min: 2, max: 3 },
|
|
4168
4152
|
},
|
|
4169
4153
|
'split_lines': {
|
|
4170
4154
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4172,7 +4156,7 @@ var stringNormalExpression = {
|
|
|
4172
4156
|
assertString(str, sourceCodeInfo);
|
|
4173
4157
|
return str.split((/\r\n|\n|\r/)).filter(function (line) { return line !== ''; });
|
|
4174
4158
|
},
|
|
4175
|
-
|
|
4159
|
+
paramCount: 1,
|
|
4176
4160
|
},
|
|
4177
4161
|
'pad_left': {
|
|
4178
4162
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4183,7 +4167,7 @@ var stringNormalExpression = {
|
|
|
4183
4167
|
assertString(padString, sourceCodeInfo);
|
|
4184
4168
|
return str.padStart(length, padString);
|
|
4185
4169
|
},
|
|
4186
|
-
|
|
4170
|
+
paramCount: { min: 2, max: 3 },
|
|
4187
4171
|
},
|
|
4188
4172
|
'pad_right': {
|
|
4189
4173
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4194,7 +4178,7 @@ var stringNormalExpression = {
|
|
|
4194
4178
|
assertString(padString, sourceCodeInfo);
|
|
4195
4179
|
return str.padEnd(length, padString);
|
|
4196
4180
|
},
|
|
4197
|
-
|
|
4181
|
+
paramCount: { min: 2, max: 3 },
|
|
4198
4182
|
},
|
|
4199
4183
|
'template': {
|
|
4200
4184
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4225,7 +4209,7 @@ var stringNormalExpression = {
|
|
|
4225
4209
|
}
|
|
4226
4210
|
}
|
|
4227
4211
|
},
|
|
4228
|
-
|
|
4212
|
+
paramCount: { min: 1, max: 10 },
|
|
4229
4213
|
},
|
|
4230
4214
|
'encode_base64': {
|
|
4231
4215
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4236,7 +4220,7 @@ var stringNormalExpression = {
|
|
|
4236
4220
|
return String.fromCharCode(Number.parseInt(p1, 16));
|
|
4237
4221
|
}));
|
|
4238
4222
|
},
|
|
4239
|
-
|
|
4223
|
+
paramCount: 1,
|
|
4240
4224
|
},
|
|
4241
4225
|
'decode_base64': {
|
|
4242
4226
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4254,7 +4238,7 @@ var stringNormalExpression = {
|
|
|
4254
4238
|
throw new LitsError(error, sourceCodeInfo);
|
|
4255
4239
|
}
|
|
4256
4240
|
},
|
|
4257
|
-
|
|
4241
|
+
paramCount: 1,
|
|
4258
4242
|
},
|
|
4259
4243
|
'encode_uri_component': {
|
|
4260
4244
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4262,7 +4246,7 @@ var stringNormalExpression = {
|
|
|
4262
4246
|
assertString(value, sourceCodeInfo);
|
|
4263
4247
|
return encodeURIComponent(value);
|
|
4264
4248
|
},
|
|
4265
|
-
|
|
4249
|
+
paramCount: 1,
|
|
4266
4250
|
},
|
|
4267
4251
|
'decode_uri_component': {
|
|
4268
4252
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4275,7 +4259,7 @@ var stringNormalExpression = {
|
|
|
4275
4259
|
throw new LitsError(error, sourceCodeInfo);
|
|
4276
4260
|
}
|
|
4277
4261
|
},
|
|
4278
|
-
|
|
4262
|
+
paramCount: 1,
|
|
4279
4263
|
},
|
|
4280
4264
|
'blank?': {
|
|
4281
4265
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4286,7 +4270,7 @@ var stringNormalExpression = {
|
|
|
4286
4270
|
assertString(value, sourceCodeInfo);
|
|
4287
4271
|
return blankRegexp.test(value);
|
|
4288
4272
|
},
|
|
4289
|
-
|
|
4273
|
+
paramCount: 1,
|
|
4290
4274
|
},
|
|
4291
4275
|
'capitalize': {
|
|
4292
4276
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4294,7 +4278,7 @@ var stringNormalExpression = {
|
|
|
4294
4278
|
assertString(str, sourceCodeInfo);
|
|
4295
4279
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
4296
4280
|
},
|
|
4297
|
-
|
|
4281
|
+
paramCount: 1,
|
|
4298
4282
|
},
|
|
4299
4283
|
};
|
|
4300
4284
|
var doubleDollarRegexp = /\$\$/g;
|
|
@@ -4325,14 +4309,14 @@ var functionalNormalExpression = {
|
|
|
4325
4309
|
var applyArray = __spreadArray(__spreadArray([], __read(params.slice(0, -1)), false), __read(last), false);
|
|
4326
4310
|
return executeFunction(func, applyArray, contextStack, sourceCodeInfo);
|
|
4327
4311
|
},
|
|
4328
|
-
|
|
4312
|
+
paramCount: { min: 2 },
|
|
4329
4313
|
},
|
|
4330
4314
|
identity: {
|
|
4331
4315
|
evaluate: function (_a) {
|
|
4332
4316
|
var _b = __read(_a, 1), value = _b[0];
|
|
4333
4317
|
return toAny(value);
|
|
4334
4318
|
},
|
|
4335
|
-
|
|
4319
|
+
paramCount: 1,
|
|
4336
4320
|
},
|
|
4337
4321
|
partial: {
|
|
4338
4322
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4346,7 +4330,7 @@ var functionalNormalExpression = {
|
|
|
4346
4330
|
_b.p = params,
|
|
4347
4331
|
_b;
|
|
4348
4332
|
},
|
|
4349
|
-
|
|
4333
|
+
paramCount: { min: 1 },
|
|
4350
4334
|
},
|
|
4351
4335
|
comp: {
|
|
4352
4336
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4364,6 +4348,7 @@ var functionalNormalExpression = {
|
|
|
4364
4348
|
_a.f = fns,
|
|
4365
4349
|
_a;
|
|
4366
4350
|
},
|
|
4351
|
+
paramCount: {},
|
|
4367
4352
|
},
|
|
4368
4353
|
constantly: {
|
|
4369
4354
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4376,7 +4361,7 @@ var functionalNormalExpression = {
|
|
|
4376
4361
|
_b.v = toAny(value),
|
|
4377
4362
|
_b;
|
|
4378
4363
|
},
|
|
4379
|
-
|
|
4364
|
+
paramCount: 1,
|
|
4380
4365
|
},
|
|
4381
4366
|
juxt: {
|
|
4382
4367
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4388,7 +4373,7 @@ var functionalNormalExpression = {
|
|
|
4388
4373
|
_a.f = fns,
|
|
4389
4374
|
_a;
|
|
4390
4375
|
},
|
|
4391
|
-
|
|
4376
|
+
paramCount: { min: 1 },
|
|
4392
4377
|
},
|
|
4393
4378
|
complement: {
|
|
4394
4379
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4401,7 +4386,7 @@ var functionalNormalExpression = {
|
|
|
4401
4386
|
_b.f = toAny(fn),
|
|
4402
4387
|
_b;
|
|
4403
4388
|
},
|
|
4404
|
-
|
|
4389
|
+
paramCount: 1,
|
|
4405
4390
|
},
|
|
4406
4391
|
every_pred: {
|
|
4407
4392
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4413,7 +4398,7 @@ var functionalNormalExpression = {
|
|
|
4413
4398
|
_a.f = fns,
|
|
4414
4399
|
_a;
|
|
4415
4400
|
},
|
|
4416
|
-
|
|
4401
|
+
paramCount: { min: 1 },
|
|
4417
4402
|
},
|
|
4418
4403
|
some_pred: {
|
|
4419
4404
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4425,7 +4410,7 @@ var functionalNormalExpression = {
|
|
|
4425
4410
|
_a.f = fns,
|
|
4426
4411
|
_a;
|
|
4427
4412
|
},
|
|
4428
|
-
|
|
4413
|
+
paramCount: { min: 1 },
|
|
4429
4414
|
},
|
|
4430
4415
|
fnil: {
|
|
4431
4416
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4439,7 +4424,7 @@ var functionalNormalExpression = {
|
|
|
4439
4424
|
_b.p = params,
|
|
4440
4425
|
_b;
|
|
4441
4426
|
},
|
|
4442
|
-
|
|
4427
|
+
paramCount: { min: 2 },
|
|
4443
4428
|
},
|
|
4444
4429
|
};
|
|
4445
4430
|
|
|
@@ -4458,7 +4443,7 @@ var andSpecialExpression = {
|
|
|
4458
4443
|
};
|
|
4459
4444
|
return node;
|
|
4460
4445
|
},
|
|
4461
|
-
|
|
4446
|
+
paramCount: {},
|
|
4462
4447
|
evaluate: function (node, contextStack, _a) {
|
|
4463
4448
|
var e_1, _b;
|
|
4464
4449
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4502,14 +4487,14 @@ function getCommonPolishSpecialExpressionParser(name) {
|
|
|
4502
4487
|
|
|
4503
4488
|
var commentSpecialExpression = {
|
|
4504
4489
|
polishParse: getCommonPolishSpecialExpressionParser('comment'),
|
|
4505
|
-
|
|
4490
|
+
paramCount: {},
|
|
4506
4491
|
evaluate: function () { return null; },
|
|
4507
4492
|
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4508
4493
|
};
|
|
4509
4494
|
|
|
4510
4495
|
var condSpecialExpression = {
|
|
4511
4496
|
polishParse: getCommonPolishSpecialExpressionParser('cond'),
|
|
4512
|
-
|
|
4497
|
+
paramCount: { even: true },
|
|
4513
4498
|
evaluate: function (node, contextStack, _a) {
|
|
4514
4499
|
var e_1, _b;
|
|
4515
4500
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4539,7 +4524,7 @@ var condSpecialExpression = {
|
|
|
4539
4524
|
|
|
4540
4525
|
var switchSpecialExpression = {
|
|
4541
4526
|
polishParse: getCommonPolishSpecialExpressionParser('switch'),
|
|
4542
|
-
|
|
4527
|
+
paramCount: { odd: true },
|
|
4543
4528
|
evaluate: function (node, contextStack, _a) {
|
|
4544
4529
|
var e_1, _b;
|
|
4545
4530
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4570,7 +4555,7 @@ var switchSpecialExpression = {
|
|
|
4570
4555
|
|
|
4571
4556
|
var declaredSpecialExpression = {
|
|
4572
4557
|
polishParse: getCommonPolishSpecialExpressionParser('defined?'),
|
|
4573
|
-
|
|
4558
|
+
paramCount: 1,
|
|
4574
4559
|
evaluate: function (node, contextStack) {
|
|
4575
4560
|
var lookUpResult = contextStack.lookUp(node.p[0]);
|
|
4576
4561
|
return lookUpResult !== null;
|
|
@@ -4618,7 +4603,7 @@ var defSpecialExpression = {
|
|
|
4618
4603
|
assertSymbolNode(node.p[0], (_b = getTokenDebugData(node.token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
4619
4604
|
return node;
|
|
4620
4605
|
},
|
|
4621
|
-
|
|
4606
|
+
paramCount: 2,
|
|
4622
4607
|
evaluate: function (node, contextStack, _a) {
|
|
4623
4608
|
var _b;
|
|
4624
4609
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4643,7 +4628,7 @@ var defSpecialExpression = {
|
|
|
4643
4628
|
|
|
4644
4629
|
var doSpecialExpression = {
|
|
4645
4630
|
polishParse: getCommonPolishSpecialExpressionParser('do'),
|
|
4646
|
-
|
|
4631
|
+
paramCount: {},
|
|
4647
4632
|
evaluate: function (node, contextStack, _a) {
|
|
4648
4633
|
var e_1, _b;
|
|
4649
4634
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4715,7 +4700,7 @@ var defnSpecialExpression = {
|
|
|
4715
4700
|
};
|
|
4716
4701
|
return node;
|
|
4717
4702
|
},
|
|
4718
|
-
|
|
4703
|
+
paramCount: {},
|
|
4719
4704
|
evaluate: function (node, contextStack, _a) {
|
|
4720
4705
|
var _b;
|
|
4721
4706
|
var _c, _d;
|
|
@@ -4754,7 +4739,7 @@ var fnSpecialExpression = {
|
|
|
4754
4739
|
};
|
|
4755
4740
|
return node;
|
|
4756
4741
|
},
|
|
4757
|
-
|
|
4742
|
+
paramCount: {},
|
|
4758
4743
|
evaluate: function (node, contextStack, _a) {
|
|
4759
4744
|
var _b;
|
|
4760
4745
|
var _c;
|
|
@@ -4979,7 +4964,7 @@ function parseFunctionArguments(tokenStream, parseState, parsers) {
|
|
|
4979
4964
|
|
|
4980
4965
|
var ifSpecialExpression = {
|
|
4981
4966
|
polishParse: getCommonPolishSpecialExpressionParser('if'),
|
|
4982
|
-
|
|
4967
|
+
paramCount: { min: 2, max: 3 },
|
|
4983
4968
|
evaluate: function (node, contextStack, _a) {
|
|
4984
4969
|
var _b;
|
|
4985
4970
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5003,7 +4988,7 @@ var ifSpecialExpression = {
|
|
|
5003
4988
|
|
|
5004
4989
|
var unlessSpecialExpression = {
|
|
5005
4990
|
polishParse: getCommonPolishSpecialExpressionParser('unless'),
|
|
5006
|
-
|
|
4991
|
+
paramCount: { min: 2, max: 3 },
|
|
5007
4992
|
evaluate: function (node, contextStack, _a) {
|
|
5008
4993
|
var _b;
|
|
5009
4994
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5040,7 +5025,7 @@ var letSpecialExpression = {
|
|
|
5040
5025
|
};
|
|
5041
5026
|
return node;
|
|
5042
5027
|
},
|
|
5043
|
-
|
|
5028
|
+
paramCount: 0,
|
|
5044
5029
|
evaluate: function (node, contextStack, _a) {
|
|
5045
5030
|
var e_1, _b;
|
|
5046
5031
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5095,7 +5080,7 @@ var loopSpecialExpression = {
|
|
|
5095
5080
|
};
|
|
5096
5081
|
return node;
|
|
5097
5082
|
},
|
|
5098
|
-
|
|
5083
|
+
paramCount: {},
|
|
5099
5084
|
evaluate: function (node, contextStack, _a) {
|
|
5100
5085
|
var _b;
|
|
5101
5086
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5361,7 +5346,7 @@ var forSpecialExpression = {
|
|
|
5361
5346
|
};
|
|
5362
5347
|
return node;
|
|
5363
5348
|
},
|
|
5364
|
-
|
|
5349
|
+
paramCount: 1,
|
|
5365
5350
|
evaluate: function (node, contextStack, helpers) { return evaluateLoop(true, node, contextStack, helpers.evaluateAstNode); },
|
|
5366
5351
|
findUnresolvedIdentifiers: function (node, contextStack, _a) {
|
|
5367
5352
|
var findUnresolvedIdentifiers = _a.findUnresolvedIdentifiers, builtin = _a.builtin;
|
|
@@ -5383,7 +5368,7 @@ var doseqSpecialExpression = {
|
|
|
5383
5368
|
};
|
|
5384
5369
|
return node;
|
|
5385
5370
|
},
|
|
5386
|
-
|
|
5371
|
+
paramCount: 1,
|
|
5387
5372
|
evaluate: function (node, contextStack, helpers) {
|
|
5388
5373
|
evaluateLoop(false, node, contextStack, helpers.evaluateAstNode);
|
|
5389
5374
|
return null;
|
|
@@ -5396,7 +5381,7 @@ var doseqSpecialExpression = {
|
|
|
5396
5381
|
|
|
5397
5382
|
var orSpecialExpression = {
|
|
5398
5383
|
polishParse: getCommonPolishSpecialExpressionParser('||'),
|
|
5399
|
-
|
|
5384
|
+
paramCount: {},
|
|
5400
5385
|
evaluate: function (node, contextStack, _a) {
|
|
5401
5386
|
var e_1, _b;
|
|
5402
5387
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5426,7 +5411,7 @@ var orSpecialExpression = {
|
|
|
5426
5411
|
|
|
5427
5412
|
var qqSpecialExpression = {
|
|
5428
5413
|
polishParse: getCommonPolishSpecialExpressionParser('??'),
|
|
5429
|
-
|
|
5414
|
+
paramCount: { min: 1, max: 2 },
|
|
5430
5415
|
evaluate: function (node, contextStack, _a) {
|
|
5431
5416
|
var _b;
|
|
5432
5417
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5458,7 +5443,7 @@ var recurSpecialExpression = {
|
|
|
5458
5443
|
};
|
|
5459
5444
|
return node;
|
|
5460
5445
|
},
|
|
5461
|
-
|
|
5446
|
+
paramCount: {},
|
|
5462
5447
|
evaluate: function (node, contextStack, _a) {
|
|
5463
5448
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5464
5449
|
var params = node.p.map(function (paramNode) { return evaluateAstNode(paramNode, contextStack); });
|
|
@@ -5472,7 +5457,7 @@ var recurSpecialExpression = {
|
|
|
5472
5457
|
|
|
5473
5458
|
var throwSpecialExpression = {
|
|
5474
5459
|
polishParse: getCommonPolishSpecialExpressionParser('throw'),
|
|
5475
|
-
|
|
5460
|
+
paramCount: 1,
|
|
5476
5461
|
evaluate: function (node, contextStack, _a) {
|
|
5477
5462
|
var _b, _c;
|
|
5478
5463
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5513,7 +5498,7 @@ var trySpecialExpression = {
|
|
|
5513
5498
|
};
|
|
5514
5499
|
return node;
|
|
5515
5500
|
},
|
|
5516
|
-
|
|
5501
|
+
paramCount: 1,
|
|
5517
5502
|
evaluate: function (node, contextStack, _a) {
|
|
5518
5503
|
var _b;
|
|
5519
5504
|
var _c;
|
|
@@ -5950,8 +5935,9 @@ function evaluate(ast, contextStack) {
|
|
|
5950
5935
|
var e_1, _a;
|
|
5951
5936
|
var result = null;
|
|
5952
5937
|
var safeAstNode = ast.hasDebugData ? JSON.parse(JSON.stringify(ast)) : ast;
|
|
5953
|
-
if (safeAstNode.hasDebugData)
|
|
5938
|
+
if (safeAstNode.hasDebugData) {
|
|
5954
5939
|
removeCommenNodes(safeAstNode);
|
|
5940
|
+
}
|
|
5955
5941
|
try {
|
|
5956
5942
|
for (var _b = __values(safeAstNode.b), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
5957
5943
|
var node = _c.value;
|
|
@@ -6157,6 +6143,20 @@ function analyze(ast, params) {
|
|
|
6157
6143
|
};
|
|
6158
6144
|
}
|
|
6159
6145
|
|
|
6146
|
+
function minifyTokenStream(tokenStream) {
|
|
6147
|
+
var tokens = tokenStream.tokens.filter(function (token) {
|
|
6148
|
+
if (isP_CommentToken(token)
|
|
6149
|
+
|| isA_CommentToken(token)
|
|
6150
|
+
|| isA_MultiLineCommentToken(token)
|
|
6151
|
+
|| isA_WhitespaceToken(token)
|
|
6152
|
+
|| isP_WhitespaceToken(token)) {
|
|
6153
|
+
return false;
|
|
6154
|
+
}
|
|
6155
|
+
return true;
|
|
6156
|
+
});
|
|
6157
|
+
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
6158
|
+
}
|
|
6159
|
+
|
|
6160
6160
|
function parseSymbol(tokenStream, parseState) {
|
|
6161
6161
|
var _a;
|
|
6162
6162
|
var tkn = asToken(tokenStream.tokens[parseState.position++]);
|
|
@@ -6346,7 +6346,6 @@ function getPrecedence(operatorSign) {
|
|
|
6346
6346
|
}
|
|
6347
6347
|
}
|
|
6348
6348
|
function createNamedNormalExpressionNode(name, params, token) {
|
|
6349
|
-
var _a;
|
|
6350
6349
|
var node = {
|
|
6351
6350
|
t: exports.AstNodeType.NormalExpression,
|
|
6352
6351
|
n: name,
|
|
@@ -6355,7 +6354,7 @@ function createNamedNormalExpressionNode(name, params, token) {
|
|
|
6355
6354
|
};
|
|
6356
6355
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
6357
6356
|
if (builtinExpression) {
|
|
6358
|
-
(
|
|
6357
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
6359
6358
|
}
|
|
6360
6359
|
return node;
|
|
6361
6360
|
}
|
|
@@ -6456,7 +6455,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6456
6455
|
AlgebraicParser.prototype.parse = function () {
|
|
6457
6456
|
var nodes = [];
|
|
6458
6457
|
while (!this.isAtEnd()) {
|
|
6459
|
-
nodes.push(this.parseExpression());
|
|
6458
|
+
nodes.push(this.parseExpression(0, true));
|
|
6460
6459
|
if (!isA_OperatorToken(this.peek(), ';')) {
|
|
6461
6460
|
break;
|
|
6462
6461
|
}
|
|
@@ -6464,9 +6463,10 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6464
6463
|
}
|
|
6465
6464
|
return nodes;
|
|
6466
6465
|
};
|
|
6467
|
-
AlgebraicParser.prototype.parseExpression = function (precedence) {
|
|
6468
|
-
var _a;
|
|
6466
|
+
AlgebraicParser.prototype.parseExpression = function (precedence, moduleScope) {
|
|
6467
|
+
var _a, _b;
|
|
6469
6468
|
if (precedence === void 0) { precedence = 0; }
|
|
6469
|
+
if (moduleScope === void 0) { moduleScope = false; }
|
|
6470
6470
|
var firstToken = this.peek();
|
|
6471
6471
|
var left;
|
|
6472
6472
|
if (isA_SymbolToken(firstToken)) {
|
|
@@ -6502,6 +6502,9 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6502
6502
|
return this.parseFunction(firstToken);
|
|
6503
6503
|
}
|
|
6504
6504
|
else if (isA_ReservedSymbolToken(firstToken, 'export')) {
|
|
6505
|
+
if (!moduleScope) {
|
|
6506
|
+
throw new LitsError('export is only allowed in module scope', (_a = getTokenDebugData(firstToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6507
|
+
}
|
|
6505
6508
|
return this.parseExport(firstToken);
|
|
6506
6509
|
}
|
|
6507
6510
|
left || (left = this.parseOperand());
|
|
@@ -6539,7 +6542,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6539
6542
|
operator = this.peek();
|
|
6540
6543
|
}
|
|
6541
6544
|
if (!left) {
|
|
6542
|
-
throw new LitsError('Expected operand', (
|
|
6545
|
+
throw new LitsError('Expected operand', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6543
6546
|
}
|
|
6544
6547
|
return left;
|
|
6545
6548
|
};
|
|
@@ -6647,32 +6650,6 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6647
6650
|
return parseReservedSymbol(this.tokenStream, this.parseState);
|
|
6648
6651
|
case 'RegexpShorthand':
|
|
6649
6652
|
return parseRegexpShorthand(this.tokenStream, this.parseState);
|
|
6650
|
-
case 'PolNotation': {
|
|
6651
|
-
this.parseState.algebraic = false;
|
|
6652
|
-
var astNodes = [];
|
|
6653
|
-
this.advance();
|
|
6654
|
-
do {
|
|
6655
|
-
astNodes.push(this.parseState.parseToken(this.tokenStream, this.parseState));
|
|
6656
|
-
} while (!isEndNotationToken(this.peek()));
|
|
6657
|
-
this.advance();
|
|
6658
|
-
this.parseState.algebraic = true;
|
|
6659
|
-
if (astNodes.length === 1) {
|
|
6660
|
-
return astNodes[0];
|
|
6661
|
-
}
|
|
6662
|
-
return {
|
|
6663
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
6664
|
-
n: 'do',
|
|
6665
|
-
p: astNodes,
|
|
6666
|
-
token: getTokenDebugData(token) && token,
|
|
6667
|
-
};
|
|
6668
|
-
}
|
|
6669
|
-
case 'AlgNotation': {
|
|
6670
|
-
this.advance();
|
|
6671
|
-
var node = this.parseOperand();
|
|
6672
|
-
assertEndNotationToken(this.peek());
|
|
6673
|
-
this.advance();
|
|
6674
|
-
return node;
|
|
6675
|
-
}
|
|
6676
6653
|
default:
|
|
6677
6654
|
throw new LitsError("Unknown token type: ".concat(tokenType), (_b = getTokenDebugData(token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6678
6655
|
}
|
|
@@ -6777,7 +6754,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6777
6754
|
p: params,
|
|
6778
6755
|
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
6779
6756
|
};
|
|
6780
|
-
builtin.specialExpressions[node.n].
|
|
6757
|
+
assertNumberOfParams(builtin.specialExpressions[node.n].paramCount, node);
|
|
6781
6758
|
return node;
|
|
6782
6759
|
}
|
|
6783
6760
|
case 'fn':
|
|
@@ -6830,7 +6807,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6830
6807
|
}
|
|
6831
6808
|
};
|
|
6832
6809
|
AlgebraicParser.prototype.parseFunctionArguments = function () {
|
|
6833
|
-
var _a, _b, _c, _d
|
|
6810
|
+
var _a, _b, _c, _d;
|
|
6834
6811
|
var firstToken = this.peek();
|
|
6835
6812
|
if (isA_SymbolToken(firstToken)) {
|
|
6836
6813
|
this.advance();
|
|
@@ -6845,62 +6822,54 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6845
6822
|
}
|
|
6846
6823
|
this.advance();
|
|
6847
6824
|
var rest = false;
|
|
6848
|
-
var letBindingObject;
|
|
6849
6825
|
var args = [];
|
|
6850
6826
|
var restArg;
|
|
6851
|
-
while (!this.isAtEnd() && !isRParenToken(this.peek())) {
|
|
6852
|
-
if (
|
|
6853
|
-
throw new LitsError('Expected right parentheses', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6854
|
-
}
|
|
6855
|
-
if (isLBraceToken(this.peek())) {
|
|
6856
|
-
letBindingObject = this.parseObject();
|
|
6857
|
-
}
|
|
6858
|
-
else {
|
|
6859
|
-
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6860
|
-
if (rest) {
|
|
6861
|
-
throw new LitsError('Multiple spread operators in lambda function', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6862
|
-
}
|
|
6863
|
-
this.advance();
|
|
6864
|
-
rest = true;
|
|
6865
|
-
}
|
|
6866
|
-
var symbolToken = this.peek();
|
|
6867
|
-
if (!isA_SymbolToken(symbolToken)) {
|
|
6868
|
-
throw new LitsError('Expected symbol', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6869
|
-
}
|
|
6827
|
+
while (!this.isAtEnd() && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6828
|
+
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6870
6829
|
if (rest) {
|
|
6871
|
-
|
|
6872
|
-
}
|
|
6873
|
-
else {
|
|
6874
|
-
args.push(symbolToken[1]);
|
|
6830
|
+
throw new LitsError('Multiple spread operators in lambda function', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6875
6831
|
}
|
|
6876
6832
|
this.advance();
|
|
6833
|
+
rest = true;
|
|
6834
|
+
}
|
|
6835
|
+
var symbolToken = this.peek();
|
|
6836
|
+
if (!isA_SymbolToken(symbolToken)) {
|
|
6837
|
+
throw new LitsError('Expected symbol', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6877
6838
|
}
|
|
6878
|
-
if (
|
|
6879
|
-
|
|
6839
|
+
if (rest) {
|
|
6840
|
+
restArg = symbolToken[1];
|
|
6841
|
+
}
|
|
6842
|
+
else {
|
|
6843
|
+
args.push(symbolToken[1]);
|
|
6844
|
+
}
|
|
6845
|
+
this.advance();
|
|
6846
|
+
if (!isA_OperatorToken(this.peek(), ',') && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6847
|
+
throw new LitsError('Expected comma or closing parenthesis', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6880
6848
|
}
|
|
6881
6849
|
if (isA_OperatorToken(this.peek(), ',')) {
|
|
6882
6850
|
this.advance();
|
|
6883
6851
|
}
|
|
6884
6852
|
}
|
|
6885
6853
|
var arity = restArg !== undefined ? { min: args.length } : args.length;
|
|
6854
|
+
// let bindings, to be able to pass on values in the context down to the body
|
|
6855
|
+
// This is needed since lits is dynamically scoped
|
|
6856
|
+
// E.g.
|
|
6857
|
+
// x => y => x + y // would not work, x is not available in the second lambda
|
|
6858
|
+
// x => (y, let x = x) => x + y // would work, x is available in the second lambda
|
|
6859
|
+
var bindingNodess = [];
|
|
6860
|
+
var token = this.peek();
|
|
6861
|
+
while (isA_SymbolToken(token, 'let')) {
|
|
6862
|
+
var letNode = this.parseLet(token, true);
|
|
6863
|
+
bindingNodess.push(letNode.bs[0]);
|
|
6864
|
+
token = this.peek();
|
|
6865
|
+
}
|
|
6886
6866
|
if (!isRParenToken(this.peek())) {
|
|
6887
|
-
throw new LitsError('Expected closing parenthesis', (
|
|
6867
|
+
throw new LitsError('Expected closing parenthesis', (_d = getTokenDebugData(this.peek())) === null || _d === void 0 ? void 0 : _d.sourceCodeInfo);
|
|
6888
6868
|
}
|
|
6889
|
-
var letBindings = letBindingObject ? arrayToPairs(letBindingObject.p) : [];
|
|
6890
6869
|
var functionArguments = {
|
|
6891
6870
|
m: args,
|
|
6892
6871
|
r: restArg,
|
|
6893
|
-
b:
|
|
6894
|
-
var key = pair[0];
|
|
6895
|
-
var value = pair[1];
|
|
6896
|
-
return {
|
|
6897
|
-
t: exports.AstNodeType.Binding,
|
|
6898
|
-
n: key.v,
|
|
6899
|
-
v: value,
|
|
6900
|
-
p: [],
|
|
6901
|
-
token: getTokenDebugData(key.token) && key.token,
|
|
6902
|
-
};
|
|
6903
|
-
}),
|
|
6872
|
+
b: bindingNodess,
|
|
6904
6873
|
};
|
|
6905
6874
|
this.advance();
|
|
6906
6875
|
return {
|
|
@@ -7350,6 +7319,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
7350
7319
|
}
|
|
7351
7320
|
assertA_ReservedSymbolToken(this.peek(), 'end');
|
|
7352
7321
|
this.advance();
|
|
7322
|
+
assertA_OperatorToken(this.peek(), ';');
|
|
7353
7323
|
var fnNode = {
|
|
7354
7324
|
t: exports.AstNodeType.SpecialExpression,
|
|
7355
7325
|
n: 'fn',
|
|
@@ -7512,7 +7482,7 @@ function parseObjectLitteral(tokenStream, parseState) {
|
|
|
7512
7482
|
p: params,
|
|
7513
7483
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
7514
7484
|
};
|
|
7515
|
-
|
|
7485
|
+
assertNumberOfParams({ even: true }, node);
|
|
7516
7486
|
return node;
|
|
7517
7487
|
}
|
|
7518
7488
|
var placeholderRegexp = /^%([1-9]\d?)?$/;
|
|
@@ -7618,7 +7588,7 @@ function parseBinding(tokenStream, parseState) {
|
|
|
7618
7588
|
return node;
|
|
7619
7589
|
}
|
|
7620
7590
|
function parseNormalExpression(tokenStream, parseState) {
|
|
7621
|
-
var _a
|
|
7591
|
+
var _a;
|
|
7622
7592
|
var startBracketToken = tokenStream.hasDebugData ? asLParenToken(tokenStream.tokens[parseState.position]) : undefined;
|
|
7623
7593
|
parseState.position += 1;
|
|
7624
7594
|
var fnNode = parseState.parseToken(tokenStream, parseState);
|
|
@@ -7642,7 +7612,7 @@ function parseNormalExpression(tokenStream, parseState) {
|
|
|
7642
7612
|
};
|
|
7643
7613
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
7644
7614
|
if (builtinExpression) {
|
|
7645
|
-
(
|
|
7615
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
7646
7616
|
}
|
|
7647
7617
|
return node;
|
|
7648
7618
|
}
|
|
@@ -7651,7 +7621,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7651
7621
|
var firstToken = asLParenToken(tokenStream.tokens[parseState.position++]);
|
|
7652
7622
|
var nameToken = asP_SymbolToken(tokenStream.tokens[parseState.position++]);
|
|
7653
7623
|
var expressionName = nameToken[1];
|
|
7654
|
-
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse,
|
|
7624
|
+
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse, paramCount = _b.paramCount;
|
|
7655
7625
|
var node = parse(tokenStream, parseState, firstToken, {
|
|
7656
7626
|
parseExpression: parseExpression,
|
|
7657
7627
|
parseTokensUntilClosingBracket: parseTokensUntilClosingBracket,
|
|
@@ -7660,7 +7630,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7660
7630
|
parseBindings: parseBindings,
|
|
7661
7631
|
parseArgument: parseArgument,
|
|
7662
7632
|
});
|
|
7663
|
-
|
|
7633
|
+
assertNumberOfParams(paramCount, node);
|
|
7664
7634
|
return node;
|
|
7665
7635
|
}
|
|
7666
7636
|
function parsePolishToken(tokenStream, parseState) {
|
|
@@ -7690,47 +7660,12 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7690
7660
|
return parseFnShorthand(tokenStream, parseState);
|
|
7691
7661
|
case 'P_Comment':
|
|
7692
7662
|
return parseComment(tokenStream, parseState);
|
|
7693
|
-
case 'AlgNotation': {
|
|
7694
|
-
parseState.position += 1;
|
|
7695
|
-
parseState.algebraic = true;
|
|
7696
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7697
|
-
var nodes = algebraicParser.parse();
|
|
7698
|
-
assertEndNotationToken(tokenStream.tokens[parseState.position++]);
|
|
7699
|
-
parseState.algebraic = false;
|
|
7700
|
-
if (nodes.length === 1) {
|
|
7701
|
-
return nodes[0];
|
|
7702
|
-
}
|
|
7703
|
-
return {
|
|
7704
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
7705
|
-
n: 'do',
|
|
7706
|
-
p: nodes,
|
|
7707
|
-
token: nodes[0].token,
|
|
7708
|
-
};
|
|
7709
|
-
}
|
|
7710
|
-
case 'PolNotation': {
|
|
7711
|
-
var astNodes = [];
|
|
7712
|
-
parseState.position += 1;
|
|
7713
|
-
do {
|
|
7714
|
-
astNodes.push(parsePolishToken(tokenStream, parseState));
|
|
7715
|
-
} while (!isEndNotationToken(asToken(tokenStream.tokens[parseState.position])));
|
|
7716
|
-
parseState.position += 1;
|
|
7717
|
-
if (astNodes.length === 1) {
|
|
7718
|
-
return astNodes[0];
|
|
7719
|
-
}
|
|
7720
|
-
return {
|
|
7721
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
7722
|
-
n: 'do',
|
|
7723
|
-
p: astNodes,
|
|
7724
|
-
token: astNodes[0].token,
|
|
7725
|
-
};
|
|
7726
|
-
}
|
|
7727
7663
|
case 'P_CollectionAccessor':
|
|
7728
7664
|
case 'P_Modifier':
|
|
7729
7665
|
case 'RParen':
|
|
7730
7666
|
case 'RBracket':
|
|
7731
7667
|
case 'RBrace':
|
|
7732
7668
|
case 'P_Whitespace':
|
|
7733
|
-
case 'EndNotation':
|
|
7734
7669
|
break;
|
|
7735
7670
|
/* v8 ignore next 2 */
|
|
7736
7671
|
default:
|
|
@@ -7740,49 +7675,28 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7740
7675
|
}
|
|
7741
7676
|
|
|
7742
7677
|
function parse(tokenStream) {
|
|
7743
|
-
|
|
7744
|
-
var
|
|
7678
|
+
tokenStream = minifyTokenStream(tokenStream);
|
|
7679
|
+
var algebraic = tokenStream.algebraic;
|
|
7745
7680
|
var ast = {
|
|
7746
7681
|
b: [],
|
|
7747
|
-
hasDebugData:
|
|
7682
|
+
hasDebugData: tokenStream.hasDebugData,
|
|
7748
7683
|
};
|
|
7749
7684
|
var parseState = {
|
|
7750
7685
|
position: 0,
|
|
7751
|
-
algebraic: (_a = safeTokenStream.algebraic) !== null && _a !== void 0 ? _a : false,
|
|
7752
7686
|
parseToken: parseToken,
|
|
7753
7687
|
};
|
|
7754
|
-
|
|
7755
|
-
|
|
7688
|
+
if (algebraic) {
|
|
7689
|
+
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7690
|
+
ast.b = algebraicParser.parse();
|
|
7756
7691
|
}
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
var tokens = tokenStream.tokens.filter(function (token) {
|
|
7761
|
-
if (isP_CommentToken(token)
|
|
7762
|
-
|| isA_CommentToken(token)
|
|
7763
|
-
|| isA_MultiLineCommentToken(token)
|
|
7764
|
-
|| isA_WhitespaceToken(token)
|
|
7765
|
-
|| isP_WhitespaceToken(token)) {
|
|
7766
|
-
return false;
|
|
7692
|
+
else {
|
|
7693
|
+
while (parseState.position < tokenStream.tokens.length) {
|
|
7694
|
+
ast.b.push(parseToken(tokenStream, parseState));
|
|
7767
7695
|
}
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
7696
|
+
}
|
|
7697
|
+
return ast;
|
|
7771
7698
|
}
|
|
7772
7699
|
function parseToken(tokenStream, parseState) {
|
|
7773
|
-
if (parseState.algebraic) {
|
|
7774
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7775
|
-
var nodes = algebraicParser.parse();
|
|
7776
|
-
if (nodes.length === 1) {
|
|
7777
|
-
return nodes[0];
|
|
7778
|
-
}
|
|
7779
|
-
return {
|
|
7780
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
7781
|
-
n: 'do',
|
|
7782
|
-
p: nodes,
|
|
7783
|
-
token: nodes[0].token,
|
|
7784
|
-
};
|
|
7785
|
-
}
|
|
7786
7700
|
return parsePolishToken(tokenStream, parseState);
|
|
7787
7701
|
}
|
|
7788
7702
|
|
|
@@ -7813,15 +7727,6 @@ var tokenizeLBrace = function (input, position) {
|
|
|
7813
7727
|
var tokenizeRBrace = function (input, position) {
|
|
7814
7728
|
return tokenizeSimpleToken('RBrace', '}', input, position);
|
|
7815
7729
|
};
|
|
7816
|
-
var tokenizePolishNotation = function (input, position) {
|
|
7817
|
-
return tokenizeSimpleToken('PolNotation', '$`', input, position);
|
|
7818
|
-
};
|
|
7819
|
-
var tokenizeAlgebraicNotation = function (input, position) {
|
|
7820
|
-
return tokenizeSimpleToken('AlgNotation', '@`', input, position);
|
|
7821
|
-
};
|
|
7822
|
-
var tokenizeEndNotation = function (input, position) {
|
|
7823
|
-
return tokenizeSimpleToken('EndNotation', '`', input, position);
|
|
7824
|
-
};
|
|
7825
7730
|
var tokenizeString = function (input, position) {
|
|
7826
7731
|
if (input[position] !== '"')
|
|
7827
7732
|
return NO_MATCH;
|
|
@@ -7874,9 +7779,6 @@ function tokenizeSimpleToken(type, value, input, position) {
|
|
|
7874
7779
|
return NO_MATCH;
|
|
7875
7780
|
}
|
|
7876
7781
|
var commonTokenizers = [
|
|
7877
|
-
tokenizePolishNotation,
|
|
7878
|
-
tokenizeAlgebraicNotation,
|
|
7879
|
-
tokenizeEndNotation,
|
|
7880
7782
|
tokenizeLParen,
|
|
7881
7783
|
tokenizeRParen,
|
|
7882
7784
|
tokenizeLBracket,
|
|
@@ -8386,7 +8288,6 @@ function getSugar() {
|
|
|
8386
8288
|
|
|
8387
8289
|
function tokenize(input, params) {
|
|
8388
8290
|
var debug = !!params.debug;
|
|
8389
|
-
var notationStack = [params.algebraic ? 'algebraic' : 'polish'];
|
|
8390
8291
|
var position = 0;
|
|
8391
8292
|
var tokenStream = {
|
|
8392
8293
|
tokens: [],
|
|
@@ -8395,7 +8296,7 @@ function tokenize(input, params) {
|
|
|
8395
8296
|
algebraic: !!params.algebraic,
|
|
8396
8297
|
};
|
|
8397
8298
|
while (position < input.length) {
|
|
8398
|
-
var tokenizers =
|
|
8299
|
+
var tokenizers = params.algebraic ? algebraicTokenizers : polishTokenizers;
|
|
8399
8300
|
var tokenDescriptor = getCurrentToken(input, position, tokenizers);
|
|
8400
8301
|
var debugData = debug
|
|
8401
8302
|
? {
|
|
@@ -8412,23 +8313,8 @@ function tokenize(input, params) {
|
|
|
8412
8313
|
addTokenDebugData(token, debugData);
|
|
8413
8314
|
}
|
|
8414
8315
|
tokenStream.tokens.push(token);
|
|
8415
|
-
if (isAlgebraicNotationToken(token)) {
|
|
8416
|
-
notationStack.push('algebraic');
|
|
8417
|
-
}
|
|
8418
|
-
if (isPolishNotationToken(token)) {
|
|
8419
|
-
notationStack.push('polish');
|
|
8420
|
-
}
|
|
8421
|
-
if (isEndNotationToken(token)) {
|
|
8422
|
-
notationStack.pop();
|
|
8423
|
-
if (notationStack.length < 1) {
|
|
8424
|
-
throw new LitsError('Unexpected end directive `.', debugData === null || debugData === void 0 ? void 0 : debugData.sourceCodeInfo);
|
|
8425
|
-
}
|
|
8426
|
-
}
|
|
8427
8316
|
}
|
|
8428
8317
|
}
|
|
8429
|
-
if (notationStack.length > 1) {
|
|
8430
|
-
throw new LitsError('Missing end directive `.', createSourceCodeInfo(input, position, params.filePath));
|
|
8431
|
-
}
|
|
8432
8318
|
applySugar(tokenStream);
|
|
8433
8319
|
return tokenStream;
|
|
8434
8320
|
}
|
|
@@ -8513,9 +8399,6 @@ function untokenizeToken(token) {
|
|
|
8513
8399
|
case 'RBracket': return ']';
|
|
8514
8400
|
case 'LBrace': return '{';
|
|
8515
8401
|
case 'RBrace': return '}';
|
|
8516
|
-
case 'PolNotation': return '$`';
|
|
8517
|
-
case 'AlgNotation': return '@`';
|
|
8518
|
-
case 'EndNotation': return '`';
|
|
8519
8402
|
case 'P_FnShorthand': return '#';
|
|
8520
8403
|
/* v8 ignore next 2 */
|
|
8521
8404
|
default:
|
|
@@ -8640,7 +8523,8 @@ var Lits = /** @class */ (function () {
|
|
|
8640
8523
|
if (tokenizeParams === void 0) { tokenizeParams = {}; }
|
|
8641
8524
|
var debug = this.debug;
|
|
8642
8525
|
var algebraic = this.algebraic;
|
|
8643
|
-
|
|
8526
|
+
var tokenStream = tokenize(program, __assign(__assign({}, tokenizeParams), { debug: debug, algebraic: algebraic }));
|
|
8527
|
+
return tokenizeParams.minify ? minifyTokenStream(tokenStream) : tokenStream;
|
|
8644
8528
|
};
|
|
8645
8529
|
Lits.prototype.parse = function (tokenStream) {
|
|
8646
8530
|
return parse(tokenStream);
|