@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.esm.js
CHANGED
|
@@ -275,9 +275,6 @@ var commonSimpleTokenTypes = [
|
|
|
275
275
|
'RBrace',
|
|
276
276
|
'RBracket',
|
|
277
277
|
'RParen',
|
|
278
|
-
'AlgNotation',
|
|
279
|
-
'PolNotation',
|
|
280
|
-
'EndNotation',
|
|
281
278
|
];
|
|
282
279
|
var commomValueTokenTypes = [
|
|
283
280
|
'String',
|
|
@@ -367,20 +364,6 @@ function asRegexpShorthandToken(token) {
|
|
|
367
364
|
assertRegexpShorthandToken(token);
|
|
368
365
|
return token;
|
|
369
366
|
}
|
|
370
|
-
function isAlgebraicNotationToken(token) {
|
|
371
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'AlgNotation';
|
|
372
|
-
}
|
|
373
|
-
function isPolishNotationToken(token) {
|
|
374
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'PolNotation';
|
|
375
|
-
}
|
|
376
|
-
function isEndNotationToken(token) {
|
|
377
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'EndNotation';
|
|
378
|
-
}
|
|
379
|
-
function assertEndNotationToken(token) {
|
|
380
|
-
if (!isEndNotationToken(token)) {
|
|
381
|
-
throwUnexpectedToken('EndNotation', undefined, token);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
367
|
|
|
385
368
|
var algebraicSimpleTokenTypes = __spreadArray([], __read(commonSimpleTokenTypes), false);
|
|
386
369
|
var algebraicOnlyValueTokenTypes = [
|
|
@@ -840,20 +823,6 @@ function withoutCommentNodes(astNodes) {
|
|
|
840
823
|
return astNodes.filter(function (n) { return n.t !== AstNodeType.Comment; });
|
|
841
824
|
}
|
|
842
825
|
|
|
843
|
-
function assertEvenNumberOfParams(node) {
|
|
844
|
-
var _a;
|
|
845
|
-
var length = withoutCommentNodes(node.p).length;
|
|
846
|
-
if (length % 2 !== 0) {
|
|
847
|
-
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);
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
|
-
function assertOddNumberOfParams(node) {
|
|
851
|
-
var _a;
|
|
852
|
-
var length = withoutCommentNodes(node.p).length;
|
|
853
|
-
if (length % 2 !== 1) {
|
|
854
|
-
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);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
826
|
function assertNumberOfParams(count, node) {
|
|
858
827
|
var _a, _b;
|
|
859
828
|
assertCount({
|
|
@@ -885,9 +854,17 @@ function assertCount(_a) {
|
|
|
885
854
|
}
|
|
886
855
|
}
|
|
887
856
|
else {
|
|
888
|
-
var min = count.min, max = count.max;
|
|
889
|
-
if (
|
|
890
|
-
|
|
857
|
+
var min = count.min, max = count.max, even = count.even, odd = count.odd;
|
|
858
|
+
if (even) {
|
|
859
|
+
if (length % 2 !== 0) {
|
|
860
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an even number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
if (odd) {
|
|
864
|
+
if (length % 2 !== 1) {
|
|
865
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an odd number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
866
|
+
}
|
|
867
|
+
}
|
|
891
868
|
if (typeof min === 'number' && length < min) {
|
|
892
869
|
throw new LitsError("Wrong number of arguments to \"".concat(name, "\", expected at least ").concat(min, ", got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
893
870
|
}
|
|
@@ -1024,7 +1001,7 @@ var bitwiseNormalExpression = {
|
|
|
1024
1001
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1025
1002
|
return num << count;
|
|
1026
1003
|
},
|
|
1027
|
-
|
|
1004
|
+
paramCount: 2,
|
|
1028
1005
|
},
|
|
1029
1006
|
'>>': {
|
|
1030
1007
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1033,7 +1010,7 @@ var bitwiseNormalExpression = {
|
|
|
1033
1010
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1034
1011
|
return num >> count;
|
|
1035
1012
|
},
|
|
1036
|
-
|
|
1013
|
+
paramCount: 2,
|
|
1037
1014
|
},
|
|
1038
1015
|
'>>>': {
|
|
1039
1016
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1042,7 +1019,7 @@ var bitwiseNormalExpression = {
|
|
|
1042
1019
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1043
1020
|
return num >>> count;
|
|
1044
1021
|
},
|
|
1045
|
-
|
|
1022
|
+
paramCount: 2,
|
|
1046
1023
|
},
|
|
1047
1024
|
'~': {
|
|
1048
1025
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1050,7 +1027,7 @@ var bitwiseNormalExpression = {
|
|
|
1050
1027
|
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1051
1028
|
return ~num;
|
|
1052
1029
|
},
|
|
1053
|
-
|
|
1030
|
+
paramCount: 1,
|
|
1054
1031
|
},
|
|
1055
1032
|
'&': {
|
|
1056
1033
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1061,7 +1038,7 @@ var bitwiseNormalExpression = {
|
|
|
1061
1038
|
return result & value;
|
|
1062
1039
|
}, first);
|
|
1063
1040
|
},
|
|
1064
|
-
|
|
1041
|
+
paramCount: { min: 2 },
|
|
1065
1042
|
},
|
|
1066
1043
|
'&!': {
|
|
1067
1044
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1072,7 +1049,7 @@ var bitwiseNormalExpression = {
|
|
|
1072
1049
|
return result & ~value;
|
|
1073
1050
|
}, first);
|
|
1074
1051
|
},
|
|
1075
|
-
|
|
1052
|
+
paramCount: { min: 2 },
|
|
1076
1053
|
},
|
|
1077
1054
|
'|': {
|
|
1078
1055
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1083,7 +1060,7 @@ var bitwiseNormalExpression = {
|
|
|
1083
1060
|
return result | value;
|
|
1084
1061
|
}, first);
|
|
1085
1062
|
},
|
|
1086
|
-
|
|
1063
|
+
paramCount: { min: 2 },
|
|
1087
1064
|
},
|
|
1088
1065
|
'^': {
|
|
1089
1066
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1094,7 +1071,7 @@ var bitwiseNormalExpression = {
|
|
|
1094
1071
|
return result ^ value;
|
|
1095
1072
|
}, first);
|
|
1096
1073
|
},
|
|
1097
|
-
|
|
1074
|
+
paramCount: { min: 2 },
|
|
1098
1075
|
},
|
|
1099
1076
|
'bit_flip': {
|
|
1100
1077
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1104,7 +1081,7 @@ var bitwiseNormalExpression = {
|
|
|
1104
1081
|
var mask = 1 << index;
|
|
1105
1082
|
return (num ^= mask);
|
|
1106
1083
|
},
|
|
1107
|
-
|
|
1084
|
+
paramCount: 2,
|
|
1108
1085
|
},
|
|
1109
1086
|
'bit_set': {
|
|
1110
1087
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1114,7 +1091,7 @@ var bitwiseNormalExpression = {
|
|
|
1114
1091
|
var mask = 1 << index;
|
|
1115
1092
|
return (num |= mask);
|
|
1116
1093
|
},
|
|
1117
|
-
|
|
1094
|
+
paramCount: 2,
|
|
1118
1095
|
},
|
|
1119
1096
|
'bit_clear': {
|
|
1120
1097
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1124,7 +1101,7 @@ var bitwiseNormalExpression = {
|
|
|
1124
1101
|
var mask = 1 << index;
|
|
1125
1102
|
return (num &= ~mask);
|
|
1126
1103
|
},
|
|
1127
|
-
|
|
1104
|
+
paramCount: 2,
|
|
1128
1105
|
},
|
|
1129
1106
|
'bit_test': {
|
|
1130
1107
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1134,7 +1111,7 @@ var bitwiseNormalExpression = {
|
|
|
1134
1111
|
var mask = 1 << index;
|
|
1135
1112
|
return !!(num & mask);
|
|
1136
1113
|
},
|
|
1137
|
-
|
|
1114
|
+
paramCount: 2,
|
|
1138
1115
|
},
|
|
1139
1116
|
};
|
|
1140
1117
|
|
|
@@ -1516,7 +1493,7 @@ var collectionNormalExpression = {
|
|
|
1516
1493
|
var result = get(coll, key);
|
|
1517
1494
|
return result === undefined ? defaultValue : result;
|
|
1518
1495
|
},
|
|
1519
|
-
|
|
1496
|
+
paramCount: { min: 2, max: 3 },
|
|
1520
1497
|
},
|
|
1521
1498
|
'get_in': {
|
|
1522
1499
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1551,7 +1528,7 @@ var collectionNormalExpression = {
|
|
|
1551
1528
|
}
|
|
1552
1529
|
return coll;
|
|
1553
1530
|
},
|
|
1554
|
-
|
|
1531
|
+
paramCount: { min: 2, max: 3 },
|
|
1555
1532
|
},
|
|
1556
1533
|
'count': {
|
|
1557
1534
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1565,7 +1542,7 @@ var collectionNormalExpression = {
|
|
|
1565
1542
|
return coll.length;
|
|
1566
1543
|
return Object.keys(coll).length;
|
|
1567
1544
|
},
|
|
1568
|
-
|
|
1545
|
+
paramCount: 1,
|
|
1569
1546
|
},
|
|
1570
1547
|
'contains?': {
|
|
1571
1548
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1582,7 +1559,7 @@ var collectionNormalExpression = {
|
|
|
1582
1559
|
}
|
|
1583
1560
|
return !!Object.getOwnPropertyDescriptor(coll, key);
|
|
1584
1561
|
},
|
|
1585
|
-
|
|
1562
|
+
paramCount: 2,
|
|
1586
1563
|
},
|
|
1587
1564
|
'has?': {
|
|
1588
1565
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1603,7 +1580,7 @@ var collectionNormalExpression = {
|
|
|
1603
1580
|
}
|
|
1604
1581
|
return Object.values(coll).includes(value);
|
|
1605
1582
|
},
|
|
1606
|
-
|
|
1583
|
+
paramCount: 2,
|
|
1607
1584
|
},
|
|
1608
1585
|
'has_some?': {
|
|
1609
1586
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1663,7 +1640,7 @@ var collectionNormalExpression = {
|
|
|
1663
1640
|
}
|
|
1664
1641
|
return false;
|
|
1665
1642
|
},
|
|
1666
|
-
|
|
1643
|
+
paramCount: 2,
|
|
1667
1644
|
},
|
|
1668
1645
|
'has_every?': {
|
|
1669
1646
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1725,7 +1702,7 @@ var collectionNormalExpression = {
|
|
|
1725
1702
|
}
|
|
1726
1703
|
return true;
|
|
1727
1704
|
},
|
|
1728
|
-
|
|
1705
|
+
paramCount: 2,
|
|
1729
1706
|
},
|
|
1730
1707
|
'assoc': {
|
|
1731
1708
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1735,7 +1712,7 @@ var collectionNormalExpression = {
|
|
|
1735
1712
|
assertAny(value, sourceCodeInfo);
|
|
1736
1713
|
return assoc(coll, key, value, sourceCodeInfo);
|
|
1737
1714
|
},
|
|
1738
|
-
|
|
1715
|
+
paramCount: 3,
|
|
1739
1716
|
},
|
|
1740
1717
|
'assoc_in': {
|
|
1741
1718
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1760,7 +1737,7 @@ var collectionNormalExpression = {
|
|
|
1760
1737
|
}
|
|
1761
1738
|
return coll;
|
|
1762
1739
|
},
|
|
1763
|
-
|
|
1740
|
+
paramCount: 3,
|
|
1764
1741
|
},
|
|
1765
1742
|
'update': {
|
|
1766
1743
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1771,7 +1748,7 @@ var collectionNormalExpression = {
|
|
|
1771
1748
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1772
1749
|
return update(coll, key, fn, params, contextStack, executeFunction, sourceCodeInfo);
|
|
1773
1750
|
},
|
|
1774
|
-
|
|
1751
|
+
paramCount: { min: 3 },
|
|
1775
1752
|
},
|
|
1776
1753
|
'update_in': {
|
|
1777
1754
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1797,7 +1774,7 @@ var collectionNormalExpression = {
|
|
|
1797
1774
|
}
|
|
1798
1775
|
return coll;
|
|
1799
1776
|
},
|
|
1800
|
-
|
|
1777
|
+
paramCount: { min: 3 },
|
|
1801
1778
|
},
|
|
1802
1779
|
'concat': {
|
|
1803
1780
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1821,7 +1798,7 @@ var collectionNormalExpression = {
|
|
|
1821
1798
|
}, {});
|
|
1822
1799
|
}
|
|
1823
1800
|
},
|
|
1824
|
-
|
|
1801
|
+
paramCount: { min: 1 },
|
|
1825
1802
|
},
|
|
1826
1803
|
'not_empty': {
|
|
1827
1804
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1835,7 +1812,7 @@ var collectionNormalExpression = {
|
|
|
1835
1812
|
return coll.length > 0 ? coll : null;
|
|
1836
1813
|
return Object.keys(coll).length > 0 ? coll : null;
|
|
1837
1814
|
},
|
|
1838
|
-
|
|
1815
|
+
paramCount: 1,
|
|
1839
1816
|
},
|
|
1840
1817
|
'every?': {
|
|
1841
1818
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1849,7 +1826,7 @@ var collectionNormalExpression = {
|
|
|
1849
1826
|
return coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1850
1827
|
return Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1851
1828
|
},
|
|
1852
|
-
|
|
1829
|
+
paramCount: 2,
|
|
1853
1830
|
},
|
|
1854
1831
|
'any?': {
|
|
1855
1832
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1863,7 +1840,7 @@ var collectionNormalExpression = {
|
|
|
1863
1840
|
return coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1864
1841
|
return Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1865
1842
|
},
|
|
1866
|
-
|
|
1843
|
+
paramCount: 2,
|
|
1867
1844
|
},
|
|
1868
1845
|
'not_any?': {
|
|
1869
1846
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1877,7 +1854,7 @@ var collectionNormalExpression = {
|
|
|
1877
1854
|
return !coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1878
1855
|
return !Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1879
1856
|
},
|
|
1880
|
-
|
|
1857
|
+
paramCount: 2,
|
|
1881
1858
|
},
|
|
1882
1859
|
'not_every?': {
|
|
1883
1860
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1891,13 +1868,14 @@ var collectionNormalExpression = {
|
|
|
1891
1868
|
return !coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1892
1869
|
return !Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1893
1870
|
},
|
|
1894
|
-
|
|
1871
|
+
paramCount: 2,
|
|
1895
1872
|
},
|
|
1896
1873
|
};
|
|
1897
1874
|
|
|
1898
1875
|
var arrayNormalExpression = {
|
|
1899
1876
|
array: {
|
|
1900
1877
|
evaluate: function (params) { return params; },
|
|
1878
|
+
paramCount: {},
|
|
1901
1879
|
},
|
|
1902
1880
|
range: {
|
|
1903
1881
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1935,7 +1913,7 @@ var arrayNormalExpression = {
|
|
|
1935
1913
|
result.push(i);
|
|
1936
1914
|
return result;
|
|
1937
1915
|
},
|
|
1938
|
-
|
|
1916
|
+
paramCount: { min: 1, max: 3 },
|
|
1939
1917
|
},
|
|
1940
1918
|
repeat: {
|
|
1941
1919
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1946,7 +1924,7 @@ var arrayNormalExpression = {
|
|
|
1946
1924
|
result.push(value);
|
|
1947
1925
|
return result;
|
|
1948
1926
|
},
|
|
1949
|
-
|
|
1927
|
+
paramCount: 2,
|
|
1950
1928
|
},
|
|
1951
1929
|
flatten: {
|
|
1952
1930
|
evaluate: function (_a) {
|
|
@@ -1955,7 +1933,7 @@ var arrayNormalExpression = {
|
|
|
1955
1933
|
return [];
|
|
1956
1934
|
return seq.flat(Number.POSITIVE_INFINITY);
|
|
1957
1935
|
},
|
|
1958
|
-
|
|
1936
|
+
paramCount: 1,
|
|
1959
1937
|
},
|
|
1960
1938
|
mapcat: {
|
|
1961
1939
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1965,7 +1943,7 @@ var arrayNormalExpression = {
|
|
|
1965
1943
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1966
1944
|
return arr.map(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }).flat(1);
|
|
1967
1945
|
},
|
|
1968
|
-
|
|
1946
|
+
paramCount: 2,
|
|
1969
1947
|
},
|
|
1970
1948
|
};
|
|
1971
1949
|
|
|
@@ -1980,7 +1958,7 @@ var sequenceNormalExpression = {
|
|
|
1980
1958
|
assertSeq(seq, sourceCodeInfo);
|
|
1981
1959
|
return i >= 0 && i < seq.length ? toAny(seq[i]) : defaultValue;
|
|
1982
1960
|
},
|
|
1983
|
-
|
|
1961
|
+
paramCount: { min: 2, max: 3 },
|
|
1984
1962
|
},
|
|
1985
1963
|
'filter': {
|
|
1986
1964
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1995,7 +1973,7 @@ var sequenceNormalExpression = {
|
|
|
1995
1973
|
.filter(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
1996
1974
|
.join('');
|
|
1997
1975
|
},
|
|
1998
|
-
|
|
1976
|
+
paramCount: 2,
|
|
1999
1977
|
},
|
|
2000
1978
|
'first': {
|
|
2001
1979
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2005,7 +1983,7 @@ var sequenceNormalExpression = {
|
|
|
2005
1983
|
assertSeq(array, sourceCodeInfo);
|
|
2006
1984
|
return toAny(array[0]);
|
|
2007
1985
|
},
|
|
2008
|
-
|
|
1986
|
+
paramCount: 1,
|
|
2009
1987
|
},
|
|
2010
1988
|
'last': {
|
|
2011
1989
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2015,7 +1993,7 @@ var sequenceNormalExpression = {
|
|
|
2015
1993
|
assertSeq(array, sourceCodeInfo);
|
|
2016
1994
|
return toAny(array[array.length - 1]);
|
|
2017
1995
|
},
|
|
2018
|
-
|
|
1996
|
+
paramCount: 1,
|
|
2019
1997
|
},
|
|
2020
1998
|
'map': {
|
|
2021
1999
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2037,7 +2015,7 @@ var sequenceNormalExpression = {
|
|
|
2037
2015
|
.join('');
|
|
2038
2016
|
}
|
|
2039
2017
|
},
|
|
2040
|
-
|
|
2018
|
+
paramCount: 2,
|
|
2041
2019
|
},
|
|
2042
2020
|
'pop': {
|
|
2043
2021
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2048,7 +2026,7 @@ var sequenceNormalExpression = {
|
|
|
2048
2026
|
}
|
|
2049
2027
|
return seq.slice(0, seq.length - 1);
|
|
2050
2028
|
},
|
|
2051
|
-
|
|
2029
|
+
paramCount: 1,
|
|
2052
2030
|
},
|
|
2053
2031
|
'position': {
|
|
2054
2032
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2067,7 +2045,7 @@ var sequenceNormalExpression = {
|
|
|
2067
2045
|
return index !== -1 ? index : null;
|
|
2068
2046
|
}
|
|
2069
2047
|
},
|
|
2070
|
-
|
|
2048
|
+
paramCount: 2,
|
|
2071
2049
|
},
|
|
2072
2050
|
'index_of': {
|
|
2073
2051
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2086,7 +2064,7 @@ var sequenceNormalExpression = {
|
|
|
2086
2064
|
return index !== -1 ? index : null;
|
|
2087
2065
|
}
|
|
2088
2066
|
},
|
|
2089
|
-
|
|
2067
|
+
paramCount: 2,
|
|
2090
2068
|
},
|
|
2091
2069
|
'last_index_of': {
|
|
2092
2070
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2105,7 +2083,7 @@ var sequenceNormalExpression = {
|
|
|
2105
2083
|
return index !== -1 ? index : null;
|
|
2106
2084
|
}
|
|
2107
2085
|
},
|
|
2108
|
-
|
|
2086
|
+
paramCount: 2,
|
|
2109
2087
|
},
|
|
2110
2088
|
'push': {
|
|
2111
2089
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2119,7 +2097,7 @@ var sequenceNormalExpression = {
|
|
|
2119
2097
|
return __spreadArray(__spreadArray([], __read(seq), false), __read(values), false);
|
|
2120
2098
|
}
|
|
2121
2099
|
},
|
|
2122
|
-
|
|
2100
|
+
paramCount: { min: 2 },
|
|
2123
2101
|
},
|
|
2124
2102
|
'reductions': {
|
|
2125
2103
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2180,7 +2158,7 @@ var sequenceNormalExpression = {
|
|
|
2180
2158
|
}
|
|
2181
2159
|
}
|
|
2182
2160
|
},
|
|
2183
|
-
|
|
2161
|
+
paramCount: { min: 2, max: 3 },
|
|
2184
2162
|
},
|
|
2185
2163
|
'reduce': {
|
|
2186
2164
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2227,7 +2205,7 @@ var sequenceNormalExpression = {
|
|
|
2227
2205
|
}
|
|
2228
2206
|
}
|
|
2229
2207
|
},
|
|
2230
|
-
|
|
2208
|
+
paramCount: { min: 2, max: 3 },
|
|
2231
2209
|
},
|
|
2232
2210
|
'reduce_right': {
|
|
2233
2211
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2275,7 +2253,7 @@ var sequenceNormalExpression = {
|
|
|
2275
2253
|
}
|
|
2276
2254
|
}
|
|
2277
2255
|
},
|
|
2278
|
-
|
|
2256
|
+
paramCount: { min: 2, max: 3 },
|
|
2279
2257
|
},
|
|
2280
2258
|
'rest': {
|
|
2281
2259
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2288,7 +2266,7 @@ var sequenceNormalExpression = {
|
|
|
2288
2266
|
}
|
|
2289
2267
|
return seq.substring(1);
|
|
2290
2268
|
},
|
|
2291
|
-
|
|
2269
|
+
paramCount: 1,
|
|
2292
2270
|
},
|
|
2293
2271
|
'nthrest': {
|
|
2294
2272
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2300,7 +2278,7 @@ var sequenceNormalExpression = {
|
|
|
2300
2278
|
return seq.slice(integerCount);
|
|
2301
2279
|
return seq.substring(integerCount);
|
|
2302
2280
|
},
|
|
2303
|
-
|
|
2281
|
+
paramCount: 2,
|
|
2304
2282
|
},
|
|
2305
2283
|
'next': {
|
|
2306
2284
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2315,7 +2293,7 @@ var sequenceNormalExpression = {
|
|
|
2315
2293
|
return null;
|
|
2316
2294
|
return seq.substring(1);
|
|
2317
2295
|
},
|
|
2318
|
-
|
|
2296
|
+
paramCount: 1,
|
|
2319
2297
|
},
|
|
2320
2298
|
'nthnext': {
|
|
2321
2299
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2329,7 +2307,7 @@ var sequenceNormalExpression = {
|
|
|
2329
2307
|
return seq.slice(integerCount);
|
|
2330
2308
|
return seq.substring(integerCount);
|
|
2331
2309
|
},
|
|
2332
|
-
|
|
2310
|
+
paramCount: 2,
|
|
2333
2311
|
},
|
|
2334
2312
|
'reverse': {
|
|
2335
2313
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2341,7 +2319,7 @@ var sequenceNormalExpression = {
|
|
|
2341
2319
|
return __spreadArray([], __read(seq), false).reverse();
|
|
2342
2320
|
return seq.split('').reverse().join('');
|
|
2343
2321
|
},
|
|
2344
|
-
|
|
2322
|
+
paramCount: 1,
|
|
2345
2323
|
},
|
|
2346
2324
|
'second': {
|
|
2347
2325
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2351,7 +2329,7 @@ var sequenceNormalExpression = {
|
|
|
2351
2329
|
assertSeq(seq, sourceCodeInfo);
|
|
2352
2330
|
return toAny(seq[1]);
|
|
2353
2331
|
},
|
|
2354
|
-
|
|
2332
|
+
paramCount: 1,
|
|
2355
2333
|
},
|
|
2356
2334
|
'shift': {
|
|
2357
2335
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2363,7 +2341,7 @@ var sequenceNormalExpression = {
|
|
|
2363
2341
|
copy.shift();
|
|
2364
2342
|
return copy;
|
|
2365
2343
|
},
|
|
2366
|
-
|
|
2344
|
+
paramCount: 1,
|
|
2367
2345
|
},
|
|
2368
2346
|
'slice': {
|
|
2369
2347
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2377,7 +2355,7 @@ var sequenceNormalExpression = {
|
|
|
2377
2355
|
assertNumber(to, sourceCodeInfo, { integer: true });
|
|
2378
2356
|
return seq.slice(from, to);
|
|
2379
2357
|
},
|
|
2380
|
-
|
|
2358
|
+
paramCount: { min: 1, max: 3 },
|
|
2381
2359
|
},
|
|
2382
2360
|
'some': {
|
|
2383
2361
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2394,7 +2372,7 @@ var sequenceNormalExpression = {
|
|
|
2394
2372
|
return (_c = seq.split('').find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })) !== null && _c !== void 0 ? _c : null;
|
|
2395
2373
|
return toAny(seq.find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }));
|
|
2396
2374
|
},
|
|
2397
|
-
|
|
2375
|
+
paramCount: 2,
|
|
2398
2376
|
},
|
|
2399
2377
|
'sort': {
|
|
2400
2378
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2432,7 +2410,7 @@ var sequenceNormalExpression = {
|
|
|
2432
2410
|
}
|
|
2433
2411
|
return result;
|
|
2434
2412
|
},
|
|
2435
|
-
|
|
2413
|
+
paramCount: { min: 1, max: 2 },
|
|
2436
2414
|
},
|
|
2437
2415
|
'sort_by': {
|
|
2438
2416
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2483,7 +2461,7 @@ var sequenceNormalExpression = {
|
|
|
2483
2461
|
}
|
|
2484
2462
|
return result;
|
|
2485
2463
|
},
|
|
2486
|
-
|
|
2464
|
+
paramCount: { min: 2, max: 3 },
|
|
2487
2465
|
},
|
|
2488
2466
|
'take': {
|
|
2489
2467
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2493,7 +2471,7 @@ var sequenceNormalExpression = {
|
|
|
2493
2471
|
var num = Math.max(Math.ceil(n), 0);
|
|
2494
2472
|
return input.slice(0, num);
|
|
2495
2473
|
},
|
|
2496
|
-
|
|
2474
|
+
paramCount: 2,
|
|
2497
2475
|
},
|
|
2498
2476
|
'take_last': {
|
|
2499
2477
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2504,7 +2482,7 @@ var sequenceNormalExpression = {
|
|
|
2504
2482
|
var from = array.length - num;
|
|
2505
2483
|
return array.slice(from);
|
|
2506
2484
|
},
|
|
2507
|
-
|
|
2485
|
+
paramCount: 2,
|
|
2508
2486
|
},
|
|
2509
2487
|
'take_while': {
|
|
2510
2488
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2532,7 +2510,7 @@ var sequenceNormalExpression = {
|
|
|
2532
2510
|
}
|
|
2533
2511
|
return typeof seq === 'string' ? result.join('') : result;
|
|
2534
2512
|
},
|
|
2535
|
-
|
|
2513
|
+
paramCount: 2,
|
|
2536
2514
|
},
|
|
2537
2515
|
'drop': {
|
|
2538
2516
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2542,7 +2520,7 @@ var sequenceNormalExpression = {
|
|
|
2542
2520
|
assertSeq(input, sourceCodeInfo);
|
|
2543
2521
|
return input.slice(num);
|
|
2544
2522
|
},
|
|
2545
|
-
|
|
2523
|
+
paramCount: 2,
|
|
2546
2524
|
},
|
|
2547
2525
|
'drop_last': {
|
|
2548
2526
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2553,7 +2531,7 @@ var sequenceNormalExpression = {
|
|
|
2553
2531
|
var from = array.length - num;
|
|
2554
2532
|
return array.slice(0, from);
|
|
2555
2533
|
},
|
|
2556
|
-
|
|
2534
|
+
paramCount: 2,
|
|
2557
2535
|
},
|
|
2558
2536
|
'drop_while': {
|
|
2559
2537
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2569,7 +2547,7 @@ var sequenceNormalExpression = {
|
|
|
2569
2547
|
var from = charArray.findIndex(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
2570
2548
|
return charArray.slice(from).join('');
|
|
2571
2549
|
},
|
|
2572
|
-
|
|
2550
|
+
paramCount: 2,
|
|
2573
2551
|
},
|
|
2574
2552
|
'unshift': {
|
|
2575
2553
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2583,7 +2561,7 @@ var sequenceNormalExpression = {
|
|
|
2583
2561
|
copy.unshift.apply(copy, __spreadArray([], __read(values), false));
|
|
2584
2562
|
return copy;
|
|
2585
2563
|
},
|
|
2586
|
-
|
|
2564
|
+
paramCount: { min: 2 },
|
|
2587
2565
|
},
|
|
2588
2566
|
'distinct': {
|
|
2589
2567
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2593,7 +2571,7 @@ var sequenceNormalExpression = {
|
|
|
2593
2571
|
return Array.from(new Set(input));
|
|
2594
2572
|
return Array.from(new Set(input.split(''))).join('');
|
|
2595
2573
|
},
|
|
2596
|
-
|
|
2574
|
+
paramCount: 1,
|
|
2597
2575
|
},
|
|
2598
2576
|
'remove': {
|
|
2599
2577
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2608,7 +2586,7 @@ var sequenceNormalExpression = {
|
|
|
2608
2586
|
.filter(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
2609
2587
|
.join('');
|
|
2610
2588
|
},
|
|
2611
|
-
|
|
2589
|
+
paramCount: 2,
|
|
2612
2590
|
},
|
|
2613
2591
|
'remove_at': {
|
|
2614
2592
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2625,7 +2603,7 @@ var sequenceNormalExpression = {
|
|
|
2625
2603
|
}
|
|
2626
2604
|
return "".concat(input.substring(0, index)).concat(input.substring(index + 1));
|
|
2627
2605
|
},
|
|
2628
|
-
|
|
2606
|
+
paramCount: 2,
|
|
2629
2607
|
},
|
|
2630
2608
|
'split_at': {
|
|
2631
2609
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2635,7 +2613,7 @@ var sequenceNormalExpression = {
|
|
|
2635
2613
|
assertSeq(seq, sourceCodeInfo);
|
|
2636
2614
|
return [seq.slice(0, intPos), seq.slice(intPos)];
|
|
2637
2615
|
},
|
|
2638
|
-
|
|
2616
|
+
paramCount: 2,
|
|
2639
2617
|
},
|
|
2640
2618
|
'split_with': {
|
|
2641
2619
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2650,7 +2628,7 @@ var sequenceNormalExpression = {
|
|
|
2650
2628
|
return [seq, seqIsArray ? [] : ''];
|
|
2651
2629
|
return [seq.slice(0, index), seq.slice(index)];
|
|
2652
2630
|
},
|
|
2653
|
-
|
|
2631
|
+
paramCount: 2,
|
|
2654
2632
|
},
|
|
2655
2633
|
'frequencies': {
|
|
2656
2634
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2666,7 +2644,7 @@ var sequenceNormalExpression = {
|
|
|
2666
2644
|
return result;
|
|
2667
2645
|
}, {});
|
|
2668
2646
|
},
|
|
2669
|
-
|
|
2647
|
+
paramCount: 1,
|
|
2670
2648
|
},
|
|
2671
2649
|
'group_by': {
|
|
2672
2650
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2684,7 +2662,7 @@ var sequenceNormalExpression = {
|
|
|
2684
2662
|
return result;
|
|
2685
2663
|
}, {});
|
|
2686
2664
|
},
|
|
2687
|
-
|
|
2665
|
+
paramCount: 2,
|
|
2688
2666
|
},
|
|
2689
2667
|
'partition': {
|
|
2690
2668
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2696,7 +2674,7 @@ var sequenceNormalExpression = {
|
|
|
2696
2674
|
: undefined;
|
|
2697
2675
|
return partition(n, step, seq, pad, sourceCodeInfo);
|
|
2698
2676
|
},
|
|
2699
|
-
|
|
2677
|
+
paramCount: { min: 2, max: 4 },
|
|
2700
2678
|
},
|
|
2701
2679
|
'partition_all': {
|
|
2702
2680
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2705,7 +2683,7 @@ var sequenceNormalExpression = {
|
|
|
2705
2683
|
var step = params.length === 3 ? toNonNegativeInteger(asNumber(params[2], sourceCodeInfo)) : n;
|
|
2706
2684
|
return partition(n, step, seq, [], sourceCodeInfo);
|
|
2707
2685
|
},
|
|
2708
|
-
|
|
2686
|
+
paramCount: { min: 2, max: 3 },
|
|
2709
2687
|
},
|
|
2710
2688
|
'partition_by': {
|
|
2711
2689
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2726,7 +2704,7 @@ var sequenceNormalExpression = {
|
|
|
2726
2704
|
}, []);
|
|
2727
2705
|
return isStringSeq ? result.map(function (elem) { return elem.join(''); }) : result;
|
|
2728
2706
|
},
|
|
2729
|
-
|
|
2707
|
+
paramCount: 2,
|
|
2730
2708
|
},
|
|
2731
2709
|
'ends_with?': {
|
|
2732
2710
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2738,7 +2716,7 @@ var sequenceNormalExpression = {
|
|
|
2738
2716
|
}
|
|
2739
2717
|
return str.at(-1) === search;
|
|
2740
2718
|
},
|
|
2741
|
-
|
|
2719
|
+
paramCount: 2,
|
|
2742
2720
|
},
|
|
2743
2721
|
'starts_with?': {
|
|
2744
2722
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2750,7 +2728,7 @@ var sequenceNormalExpression = {
|
|
|
2750
2728
|
}
|
|
2751
2729
|
return str[0] === search;
|
|
2752
2730
|
},
|
|
2753
|
-
|
|
2731
|
+
paramCount: 2,
|
|
2754
2732
|
},
|
|
2755
2733
|
'interleave': {
|
|
2756
2734
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2788,7 +2766,7 @@ var sequenceNormalExpression = {
|
|
|
2788
2766
|
}
|
|
2789
2767
|
return isStringSeq ? result.join('') : result;
|
|
2790
2768
|
},
|
|
2791
|
-
|
|
2769
|
+
paramCount: { min: 1 },
|
|
2792
2770
|
},
|
|
2793
2771
|
'interpose': {
|
|
2794
2772
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2807,7 +2785,7 @@ var sequenceNormalExpression = {
|
|
|
2807
2785
|
result.push(seq[seq.length - 1]);
|
|
2808
2786
|
return result;
|
|
2809
2787
|
},
|
|
2810
|
-
|
|
2788
|
+
paramCount: 2,
|
|
2811
2789
|
},
|
|
2812
2790
|
};
|
|
2813
2791
|
function partition(n, step, seq, pad, sourceCodeInfo) {
|
|
@@ -2845,7 +2823,7 @@ var mathNormalExpression = {
|
|
|
2845
2823
|
assertNumber(first, sourceCodeInfo);
|
|
2846
2824
|
return first + 1;
|
|
2847
2825
|
},
|
|
2848
|
-
|
|
2826
|
+
paramCount: 1,
|
|
2849
2827
|
},
|
|
2850
2828
|
'dec': {
|
|
2851
2829
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2853,7 +2831,7 @@ var mathNormalExpression = {
|
|
|
2853
2831
|
assertNumber(first, sourceCodeInfo);
|
|
2854
2832
|
return first - 1;
|
|
2855
2833
|
},
|
|
2856
|
-
|
|
2834
|
+
paramCount: 1,
|
|
2857
2835
|
},
|
|
2858
2836
|
'+': {
|
|
2859
2837
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2862,6 +2840,7 @@ var mathNormalExpression = {
|
|
|
2862
2840
|
return result + param;
|
|
2863
2841
|
}, 0);
|
|
2864
2842
|
},
|
|
2843
|
+
paramCount: {},
|
|
2865
2844
|
},
|
|
2866
2845
|
'*': {
|
|
2867
2846
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2870,6 +2849,7 @@ var mathNormalExpression = {
|
|
|
2870
2849
|
return result * param;
|
|
2871
2850
|
}, 1);
|
|
2872
2851
|
},
|
|
2852
|
+
paramCount: {},
|
|
2873
2853
|
},
|
|
2874
2854
|
'/': {
|
|
2875
2855
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2886,6 +2866,7 @@ var mathNormalExpression = {
|
|
|
2886
2866
|
return result / param;
|
|
2887
2867
|
}, first);
|
|
2888
2868
|
},
|
|
2869
|
+
paramCount: {},
|
|
2889
2870
|
},
|
|
2890
2871
|
'-': {
|
|
2891
2872
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2900,6 +2881,7 @@ var mathNormalExpression = {
|
|
|
2900
2881
|
return result - param;
|
|
2901
2882
|
}, first);
|
|
2902
2883
|
},
|
|
2884
|
+
paramCount: {},
|
|
2903
2885
|
},
|
|
2904
2886
|
'quot': {
|
|
2905
2887
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2909,7 +2891,7 @@ var mathNormalExpression = {
|
|
|
2909
2891
|
var quotient = Math.trunc(dividend / divisor);
|
|
2910
2892
|
return quotient;
|
|
2911
2893
|
},
|
|
2912
|
-
|
|
2894
|
+
paramCount: 2,
|
|
2913
2895
|
},
|
|
2914
2896
|
'mod': {
|
|
2915
2897
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2919,7 +2901,7 @@ var mathNormalExpression = {
|
|
|
2919
2901
|
var quotient = Math.floor(dividend / divisor);
|
|
2920
2902
|
return dividend - divisor * quotient;
|
|
2921
2903
|
},
|
|
2922
|
-
|
|
2904
|
+
paramCount: 2,
|
|
2923
2905
|
},
|
|
2924
2906
|
'%': {
|
|
2925
2907
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2929,7 +2911,7 @@ var mathNormalExpression = {
|
|
|
2929
2911
|
var quotient = Math.trunc(dividend / divisor);
|
|
2930
2912
|
return dividend - divisor * quotient;
|
|
2931
2913
|
},
|
|
2932
|
-
|
|
2914
|
+
paramCount: 2,
|
|
2933
2915
|
},
|
|
2934
2916
|
'sqrt': {
|
|
2935
2917
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2937,7 +2919,7 @@ var mathNormalExpression = {
|
|
|
2937
2919
|
assertNumber(first, sourceCodeInfo);
|
|
2938
2920
|
return Math.sqrt(first);
|
|
2939
2921
|
},
|
|
2940
|
-
|
|
2922
|
+
paramCount: 1,
|
|
2941
2923
|
},
|
|
2942
2924
|
'cbrt': {
|
|
2943
2925
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2945,7 +2927,7 @@ var mathNormalExpression = {
|
|
|
2945
2927
|
assertNumber(first, sourceCodeInfo);
|
|
2946
2928
|
return Math.cbrt(first);
|
|
2947
2929
|
},
|
|
2948
|
-
|
|
2930
|
+
paramCount: 1,
|
|
2949
2931
|
},
|
|
2950
2932
|
'**': {
|
|
2951
2933
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2954,7 +2936,7 @@ var mathNormalExpression = {
|
|
|
2954
2936
|
assertNumber(second, sourceCodeInfo);
|
|
2955
2937
|
return Math.pow(first, second);
|
|
2956
2938
|
},
|
|
2957
|
-
|
|
2939
|
+
paramCount: 2,
|
|
2958
2940
|
},
|
|
2959
2941
|
'round': {
|
|
2960
2942
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2966,7 +2948,7 @@ var mathNormalExpression = {
|
|
|
2966
2948
|
var factor = Math.pow(10, decimals);
|
|
2967
2949
|
return Math.round(value * factor) / factor;
|
|
2968
2950
|
},
|
|
2969
|
-
|
|
2951
|
+
paramCount: { min: 1, max: 2 },
|
|
2970
2952
|
},
|
|
2971
2953
|
'trunc': {
|
|
2972
2954
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2974,7 +2956,7 @@ var mathNormalExpression = {
|
|
|
2974
2956
|
assertNumber(first, sourceCodeInfo);
|
|
2975
2957
|
return Math.trunc(first);
|
|
2976
2958
|
},
|
|
2977
|
-
|
|
2959
|
+
paramCount: 1,
|
|
2978
2960
|
},
|
|
2979
2961
|
'floor': {
|
|
2980
2962
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2982,7 +2964,7 @@ var mathNormalExpression = {
|
|
|
2982
2964
|
assertNumber(first, sourceCodeInfo);
|
|
2983
2965
|
return Math.floor(first);
|
|
2984
2966
|
},
|
|
2985
|
-
|
|
2967
|
+
paramCount: 1,
|
|
2986
2968
|
},
|
|
2987
2969
|
'ceil': {
|
|
2988
2970
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2990,7 +2972,7 @@ var mathNormalExpression = {
|
|
|
2990
2972
|
assertNumber(first, sourceCodeInfo);
|
|
2991
2973
|
return Math.ceil(first);
|
|
2992
2974
|
},
|
|
2993
|
-
|
|
2975
|
+
paramCount: 1,
|
|
2994
2976
|
},
|
|
2995
2977
|
'min': {
|
|
2996
2978
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3003,7 +2985,7 @@ var mathNormalExpression = {
|
|
|
3003
2985
|
return Math.min(min, value);
|
|
3004
2986
|
}, first);
|
|
3005
2987
|
},
|
|
3006
|
-
|
|
2988
|
+
paramCount: { min: 1 },
|
|
3007
2989
|
},
|
|
3008
2990
|
'max': {
|
|
3009
2991
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3016,7 +2998,7 @@ var mathNormalExpression = {
|
|
|
3016
2998
|
return Math.max(min, value);
|
|
3017
2999
|
}, first);
|
|
3018
3000
|
},
|
|
3019
|
-
|
|
3001
|
+
paramCount: { min: 1 },
|
|
3020
3002
|
},
|
|
3021
3003
|
'abs': {
|
|
3022
3004
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3024,7 +3006,7 @@ var mathNormalExpression = {
|
|
|
3024
3006
|
assertNumber(value, sourceCodeInfo);
|
|
3025
3007
|
return Math.abs(value);
|
|
3026
3008
|
},
|
|
3027
|
-
|
|
3009
|
+
paramCount: 1,
|
|
3028
3010
|
},
|
|
3029
3011
|
'sign': {
|
|
3030
3012
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3032,67 +3014,67 @@ var mathNormalExpression = {
|
|
|
3032
3014
|
assertNumber(value, sourceCodeInfo);
|
|
3033
3015
|
return Math.sign(value);
|
|
3034
3016
|
},
|
|
3035
|
-
|
|
3017
|
+
paramCount: 1,
|
|
3036
3018
|
},
|
|
3037
3019
|
'max_safe_integer': {
|
|
3038
3020
|
evaluate: function () {
|
|
3039
3021
|
return Number.MAX_SAFE_INTEGER;
|
|
3040
3022
|
},
|
|
3041
|
-
|
|
3023
|
+
paramCount: 0,
|
|
3042
3024
|
},
|
|
3043
3025
|
'min_safe_integer': {
|
|
3044
3026
|
evaluate: function () {
|
|
3045
3027
|
return Number.MIN_SAFE_INTEGER;
|
|
3046
3028
|
},
|
|
3047
|
-
|
|
3029
|
+
paramCount: 0,
|
|
3048
3030
|
},
|
|
3049
3031
|
'max_value': {
|
|
3050
3032
|
evaluate: function () {
|
|
3051
3033
|
return Number.MAX_VALUE;
|
|
3052
3034
|
},
|
|
3053
|
-
|
|
3035
|
+
paramCount: 0,
|
|
3054
3036
|
},
|
|
3055
3037
|
'min_value': {
|
|
3056
3038
|
evaluate: function () {
|
|
3057
3039
|
return Number.MIN_VALUE;
|
|
3058
3040
|
},
|
|
3059
|
-
|
|
3041
|
+
paramCount: 0,
|
|
3060
3042
|
},
|
|
3061
3043
|
'epsilon': {
|
|
3062
3044
|
evaluate: function () {
|
|
3063
3045
|
return Number.EPSILON;
|
|
3064
3046
|
},
|
|
3065
|
-
|
|
3047
|
+
paramCount: 0,
|
|
3066
3048
|
},
|
|
3067
3049
|
'positive_infinity': {
|
|
3068
3050
|
evaluate: function () {
|
|
3069
3051
|
return Number.POSITIVE_INFINITY;
|
|
3070
3052
|
},
|
|
3071
|
-
|
|
3053
|
+
paramCount: 0,
|
|
3072
3054
|
},
|
|
3073
3055
|
'negative_infinity': {
|
|
3074
3056
|
evaluate: function () {
|
|
3075
3057
|
return Number.NEGATIVE_INFINITY;
|
|
3076
3058
|
},
|
|
3077
|
-
|
|
3059
|
+
paramCount: 0,
|
|
3078
3060
|
},
|
|
3079
3061
|
'nan': {
|
|
3080
3062
|
evaluate: function () {
|
|
3081
3063
|
return Number.NaN;
|
|
3082
3064
|
},
|
|
3083
|
-
|
|
3065
|
+
paramCount: 0,
|
|
3084
3066
|
},
|
|
3085
3067
|
'e': {
|
|
3086
3068
|
evaluate: function () {
|
|
3087
3069
|
return Math.E;
|
|
3088
3070
|
},
|
|
3089
|
-
|
|
3071
|
+
paramCount: 0,
|
|
3090
3072
|
},
|
|
3091
3073
|
'pi': {
|
|
3092
3074
|
evaluate: function () {
|
|
3093
3075
|
return Math.PI;
|
|
3094
3076
|
},
|
|
3095
|
-
|
|
3077
|
+
paramCount: 0,
|
|
3096
3078
|
},
|
|
3097
3079
|
'exp': {
|
|
3098
3080
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3100,7 +3082,7 @@ var mathNormalExpression = {
|
|
|
3100
3082
|
assertNumber(value, sourceCodeInfo);
|
|
3101
3083
|
return Math.exp(value);
|
|
3102
3084
|
},
|
|
3103
|
-
|
|
3085
|
+
paramCount: 1,
|
|
3104
3086
|
},
|
|
3105
3087
|
'log': {
|
|
3106
3088
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3108,7 +3090,7 @@ var mathNormalExpression = {
|
|
|
3108
3090
|
assertNumber(value, sourceCodeInfo);
|
|
3109
3091
|
return Math.log(value);
|
|
3110
3092
|
},
|
|
3111
|
-
|
|
3093
|
+
paramCount: 1,
|
|
3112
3094
|
},
|
|
3113
3095
|
'log2': {
|
|
3114
3096
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3116,7 +3098,7 @@ var mathNormalExpression = {
|
|
|
3116
3098
|
assertNumber(value, sourceCodeInfo);
|
|
3117
3099
|
return Math.log2(value);
|
|
3118
3100
|
},
|
|
3119
|
-
|
|
3101
|
+
paramCount: 1,
|
|
3120
3102
|
},
|
|
3121
3103
|
'log10': {
|
|
3122
3104
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3124,7 +3106,7 @@ var mathNormalExpression = {
|
|
|
3124
3106
|
assertNumber(value, sourceCodeInfo);
|
|
3125
3107
|
return Math.log10(value);
|
|
3126
3108
|
},
|
|
3127
|
-
|
|
3109
|
+
paramCount: 1,
|
|
3128
3110
|
},
|
|
3129
3111
|
'sin': {
|
|
3130
3112
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3132,7 +3114,7 @@ var mathNormalExpression = {
|
|
|
3132
3114
|
assertNumber(value, sourceCodeInfo);
|
|
3133
3115
|
return Math.sin(value);
|
|
3134
3116
|
},
|
|
3135
|
-
|
|
3117
|
+
paramCount: 1,
|
|
3136
3118
|
},
|
|
3137
3119
|
'asin': {
|
|
3138
3120
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3140,7 +3122,7 @@ var mathNormalExpression = {
|
|
|
3140
3122
|
assertNumber(value, sourceCodeInfo);
|
|
3141
3123
|
return Math.asin(value);
|
|
3142
3124
|
},
|
|
3143
|
-
|
|
3125
|
+
paramCount: 1,
|
|
3144
3126
|
},
|
|
3145
3127
|
'sinh': {
|
|
3146
3128
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3148,7 +3130,7 @@ var mathNormalExpression = {
|
|
|
3148
3130
|
assertNumber(value, sourceCodeInfo);
|
|
3149
3131
|
return Math.sinh(value);
|
|
3150
3132
|
},
|
|
3151
|
-
|
|
3133
|
+
paramCount: 1,
|
|
3152
3134
|
},
|
|
3153
3135
|
'asinh': {
|
|
3154
3136
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3156,7 +3138,7 @@ var mathNormalExpression = {
|
|
|
3156
3138
|
assertNumber(value, sourceCodeInfo);
|
|
3157
3139
|
return Math.asinh(value);
|
|
3158
3140
|
},
|
|
3159
|
-
|
|
3141
|
+
paramCount: 1,
|
|
3160
3142
|
},
|
|
3161
3143
|
'cos': {
|
|
3162
3144
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3164,7 +3146,7 @@ var mathNormalExpression = {
|
|
|
3164
3146
|
assertNumber(value, sourceCodeInfo);
|
|
3165
3147
|
return Math.cos(value);
|
|
3166
3148
|
},
|
|
3167
|
-
|
|
3149
|
+
paramCount: 1,
|
|
3168
3150
|
},
|
|
3169
3151
|
'acos': {
|
|
3170
3152
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3172,7 +3154,7 @@ var mathNormalExpression = {
|
|
|
3172
3154
|
assertNumber(value, sourceCodeInfo);
|
|
3173
3155
|
return Math.acos(value);
|
|
3174
3156
|
},
|
|
3175
|
-
|
|
3157
|
+
paramCount: 1,
|
|
3176
3158
|
},
|
|
3177
3159
|
'cosh': {
|
|
3178
3160
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3180,7 +3162,7 @@ var mathNormalExpression = {
|
|
|
3180
3162
|
assertNumber(value, sourceCodeInfo);
|
|
3181
3163
|
return Math.cosh(value);
|
|
3182
3164
|
},
|
|
3183
|
-
|
|
3165
|
+
paramCount: 1,
|
|
3184
3166
|
},
|
|
3185
3167
|
'acosh': {
|
|
3186
3168
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3188,7 +3170,7 @@ var mathNormalExpression = {
|
|
|
3188
3170
|
assertNumber(value, sourceCodeInfo);
|
|
3189
3171
|
return Math.acosh(value);
|
|
3190
3172
|
},
|
|
3191
|
-
|
|
3173
|
+
paramCount: 1,
|
|
3192
3174
|
},
|
|
3193
3175
|
'tan': {
|
|
3194
3176
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3196,7 +3178,7 @@ var mathNormalExpression = {
|
|
|
3196
3178
|
assertNumber(value, sourceCodeInfo);
|
|
3197
3179
|
return Math.tan(value);
|
|
3198
3180
|
},
|
|
3199
|
-
|
|
3181
|
+
paramCount: 1,
|
|
3200
3182
|
},
|
|
3201
3183
|
'atan': {
|
|
3202
3184
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3204,7 +3186,7 @@ var mathNormalExpression = {
|
|
|
3204
3186
|
assertNumber(value, sourceCodeInfo);
|
|
3205
3187
|
return Math.atan(value);
|
|
3206
3188
|
},
|
|
3207
|
-
|
|
3189
|
+
paramCount: 1,
|
|
3208
3190
|
},
|
|
3209
3191
|
'tanh': {
|
|
3210
3192
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3212,7 +3194,7 @@ var mathNormalExpression = {
|
|
|
3212
3194
|
assertNumber(value, sourceCodeInfo);
|
|
3213
3195
|
return Math.tanh(value);
|
|
3214
3196
|
},
|
|
3215
|
-
|
|
3197
|
+
paramCount: 1,
|
|
3216
3198
|
},
|
|
3217
3199
|
'atanh': {
|
|
3218
3200
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3220,7 +3202,7 @@ var mathNormalExpression = {
|
|
|
3220
3202
|
assertNumber(value, sourceCodeInfo);
|
|
3221
3203
|
return Math.atanh(value);
|
|
3222
3204
|
},
|
|
3223
|
-
|
|
3205
|
+
paramCount: 1,
|
|
3224
3206
|
},
|
|
3225
3207
|
};
|
|
3226
3208
|
|
|
@@ -3235,7 +3217,7 @@ var miscNormalExpression = {
|
|
|
3235
3217
|
}
|
|
3236
3218
|
return true;
|
|
3237
3219
|
},
|
|
3238
|
-
|
|
3220
|
+
paramCount: { min: 1 },
|
|
3239
3221
|
},
|
|
3240
3222
|
'==': {
|
|
3241
3223
|
evaluate: function (_a) {
|
|
@@ -3257,14 +3239,14 @@ var miscNormalExpression = {
|
|
|
3257
3239
|
}
|
|
3258
3240
|
return true;
|
|
3259
3241
|
},
|
|
3260
|
-
|
|
3242
|
+
paramCount: { min: 1 },
|
|
3261
3243
|
},
|
|
3262
3244
|
'equal?': {
|
|
3263
3245
|
evaluate: function (_a, sourceCodeInfo) {
|
|
3264
3246
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3265
3247
|
return deepEqual(asAny(a, sourceCodeInfo), asAny(b, sourceCodeInfo), sourceCodeInfo);
|
|
3266
3248
|
},
|
|
3267
|
-
|
|
3249
|
+
paramCount: { min: 1 },
|
|
3268
3250
|
},
|
|
3269
3251
|
'>': {
|
|
3270
3252
|
evaluate: function (_a) {
|
|
@@ -3288,7 +3270,7 @@ var miscNormalExpression = {
|
|
|
3288
3270
|
}
|
|
3289
3271
|
return true;
|
|
3290
3272
|
},
|
|
3291
|
-
|
|
3273
|
+
paramCount: { min: 1 },
|
|
3292
3274
|
},
|
|
3293
3275
|
'<': {
|
|
3294
3276
|
evaluate: function (_a) {
|
|
@@ -3312,7 +3294,7 @@ var miscNormalExpression = {
|
|
|
3312
3294
|
}
|
|
3313
3295
|
return true;
|
|
3314
3296
|
},
|
|
3315
|
-
|
|
3297
|
+
paramCount: { min: 1 },
|
|
3316
3298
|
},
|
|
3317
3299
|
'>=': {
|
|
3318
3300
|
evaluate: function (_a) {
|
|
@@ -3336,7 +3318,7 @@ var miscNormalExpression = {
|
|
|
3336
3318
|
}
|
|
3337
3319
|
return true;
|
|
3338
3320
|
},
|
|
3339
|
-
|
|
3321
|
+
paramCount: { min: 1 },
|
|
3340
3322
|
},
|
|
3341
3323
|
'<=': {
|
|
3342
3324
|
evaluate: function (_a) {
|
|
@@ -3360,14 +3342,14 @@ var miscNormalExpression = {
|
|
|
3360
3342
|
}
|
|
3361
3343
|
return true;
|
|
3362
3344
|
},
|
|
3363
|
-
|
|
3345
|
+
paramCount: { min: 1 },
|
|
3364
3346
|
},
|
|
3365
3347
|
'!': {
|
|
3366
3348
|
evaluate: function (_a) {
|
|
3367
3349
|
var _b = __read(_a, 1), first = _b[0];
|
|
3368
3350
|
return !first;
|
|
3369
3351
|
},
|
|
3370
|
-
|
|
3352
|
+
paramCount: 1,
|
|
3371
3353
|
},
|
|
3372
3354
|
'epoch>iso_date': {
|
|
3373
3355
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3375,7 +3357,7 @@ var miscNormalExpression = {
|
|
|
3375
3357
|
assertNumber(ms, sourceCodeInfo);
|
|
3376
3358
|
return new Date(ms).toISOString();
|
|
3377
3359
|
},
|
|
3378
|
-
|
|
3360
|
+
paramCount: 1,
|
|
3379
3361
|
},
|
|
3380
3362
|
'iso_date>epoch': {
|
|
3381
3363
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3385,7 +3367,7 @@ var miscNormalExpression = {
|
|
|
3385
3367
|
assertNumber(ms, sourceCodeInfo, { finite: true });
|
|
3386
3368
|
return ms;
|
|
3387
3369
|
},
|
|
3388
|
-
|
|
3370
|
+
paramCount: 1,
|
|
3389
3371
|
},
|
|
3390
3372
|
'write!': {
|
|
3391
3373
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3395,20 +3377,21 @@ var miscNormalExpression = {
|
|
|
3395
3377
|
return asAny(params[params.length - 1], sourceCodeInfo);
|
|
3396
3378
|
return null;
|
|
3397
3379
|
},
|
|
3380
|
+
paramCount: {},
|
|
3398
3381
|
},
|
|
3399
3382
|
'boolean': {
|
|
3400
3383
|
evaluate: function (_a) {
|
|
3401
3384
|
var _b = __read(_a, 1), value = _b[0];
|
|
3402
3385
|
return !!value;
|
|
3403
3386
|
},
|
|
3404
|
-
|
|
3387
|
+
paramCount: 1,
|
|
3405
3388
|
},
|
|
3406
3389
|
'compare': {
|
|
3407
3390
|
evaluate: function (_a) {
|
|
3408
3391
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3409
3392
|
return compare(a, b);
|
|
3410
3393
|
},
|
|
3411
|
-
|
|
3394
|
+
paramCount: 2,
|
|
3412
3395
|
},
|
|
3413
3396
|
'json_parse': {
|
|
3414
3397
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3417,7 +3400,7 @@ var miscNormalExpression = {
|
|
|
3417
3400
|
// eslint-disable-next-line ts/no-unsafe-return
|
|
3418
3401
|
return JSON.parse(first);
|
|
3419
3402
|
},
|
|
3420
|
-
|
|
3403
|
+
paramCount: 1,
|
|
3421
3404
|
},
|
|
3422
3405
|
'json_stringify': {
|
|
3423
3406
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3428,7 +3411,7 @@ var miscNormalExpression = {
|
|
|
3428
3411
|
assertNumber(second, sourceCodeInfo);
|
|
3429
3412
|
return JSON.stringify(first, null, second);
|
|
3430
3413
|
},
|
|
3431
|
-
|
|
3414
|
+
paramCount: { min: 1, max: 2 },
|
|
3432
3415
|
},
|
|
3433
3416
|
};
|
|
3434
3417
|
|
|
@@ -3442,7 +3425,7 @@ var assertNormalExpression = {
|
|
|
3442
3425
|
throw new AssertionError(message, sourceCodeInfo);
|
|
3443
3426
|
return asAny(value, sourceCodeInfo);
|
|
3444
3427
|
},
|
|
3445
|
-
|
|
3428
|
+
paramCount: { min: 1, max: 2 },
|
|
3446
3429
|
},
|
|
3447
3430
|
'assert=': {
|
|
3448
3431
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3452,7 +3435,7 @@ var assertNormalExpression = {
|
|
|
3452
3435
|
throw new AssertionError("Expected ".concat(first, " to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3453
3436
|
return null;
|
|
3454
3437
|
},
|
|
3455
|
-
|
|
3438
|
+
paramCount: { min: 2, max: 3 },
|
|
3456
3439
|
},
|
|
3457
3440
|
'assert!=': {
|
|
3458
3441
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3462,7 +3445,7 @@ var assertNormalExpression = {
|
|
|
3462
3445
|
throw new AssertionError("Expected ".concat(first, " not to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3463
3446
|
return null;
|
|
3464
3447
|
},
|
|
3465
|
-
|
|
3448
|
+
paramCount: { min: 2, max: 3 },
|
|
3466
3449
|
},
|
|
3467
3450
|
'assert_equal': {
|
|
3468
3451
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3473,7 +3456,7 @@ var assertNormalExpression = {
|
|
|
3473
3456
|
}
|
|
3474
3457
|
return null;
|
|
3475
3458
|
},
|
|
3476
|
-
|
|
3459
|
+
paramCount: { min: 2, max: 3 },
|
|
3477
3460
|
},
|
|
3478
3461
|
'assert_not_equal': {
|
|
3479
3462
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3484,7 +3467,7 @@ var assertNormalExpression = {
|
|
|
3484
3467
|
}
|
|
3485
3468
|
return null;
|
|
3486
3469
|
},
|
|
3487
|
-
|
|
3470
|
+
paramCount: { min: 2, max: 3 },
|
|
3488
3471
|
},
|
|
3489
3472
|
'assert_gt': {
|
|
3490
3473
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3494,7 +3477,7 @@ var assertNormalExpression = {
|
|
|
3494
3477
|
throw new AssertionError("Expected ".concat(first, " to be grater than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3495
3478
|
return null;
|
|
3496
3479
|
},
|
|
3497
|
-
|
|
3480
|
+
paramCount: { min: 2, max: 3 },
|
|
3498
3481
|
},
|
|
3499
3482
|
'assert_gte': {
|
|
3500
3483
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3504,7 +3487,7 @@ var assertNormalExpression = {
|
|
|
3504
3487
|
throw new AssertionError("Expected ".concat(first, " to be grater than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3505
3488
|
return null;
|
|
3506
3489
|
},
|
|
3507
|
-
|
|
3490
|
+
paramCount: { min: 2, max: 3 },
|
|
3508
3491
|
},
|
|
3509
3492
|
'assert_lt': {
|
|
3510
3493
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3514,7 +3497,7 @@ var assertNormalExpression = {
|
|
|
3514
3497
|
throw new AssertionError("Expected ".concat(first, " to be less than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3515
3498
|
return null;
|
|
3516
3499
|
},
|
|
3517
|
-
|
|
3500
|
+
paramCount: { min: 2, max: 3 },
|
|
3518
3501
|
},
|
|
3519
3502
|
'assert_lte': {
|
|
3520
3503
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3524,7 +3507,7 @@ var assertNormalExpression = {
|
|
|
3524
3507
|
throw new AssertionError("Expected ".concat(first, " to be less than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3525
3508
|
return null;
|
|
3526
3509
|
},
|
|
3527
|
-
|
|
3510
|
+
paramCount: { min: 2, max: 3 },
|
|
3528
3511
|
},
|
|
3529
3512
|
'assert_true': {
|
|
3530
3513
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3534,7 +3517,7 @@ var assertNormalExpression = {
|
|
|
3534
3517
|
throw new AssertionError("Expected ".concat(first, " to be true.").concat(message), sourceCodeInfo);
|
|
3535
3518
|
return null;
|
|
3536
3519
|
},
|
|
3537
|
-
|
|
3520
|
+
paramCount: { min: 1, max: 2 },
|
|
3538
3521
|
},
|
|
3539
3522
|
'assert_false': {
|
|
3540
3523
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3544,7 +3527,7 @@ var assertNormalExpression = {
|
|
|
3544
3527
|
throw new AssertionError("Expected ".concat(first, " to be false.").concat(message), sourceCodeInfo);
|
|
3545
3528
|
return null;
|
|
3546
3529
|
},
|
|
3547
|
-
|
|
3530
|
+
paramCount: { min: 1, max: 2 },
|
|
3548
3531
|
},
|
|
3549
3532
|
'assert_truthy': {
|
|
3550
3533
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3554,7 +3537,7 @@ var assertNormalExpression = {
|
|
|
3554
3537
|
throw new AssertionError("Expected ".concat(first, " to be truthy.").concat(message), sourceCodeInfo);
|
|
3555
3538
|
return null;
|
|
3556
3539
|
},
|
|
3557
|
-
|
|
3540
|
+
paramCount: { min: 1, max: 2 },
|
|
3558
3541
|
},
|
|
3559
3542
|
'assert_falsy': {
|
|
3560
3543
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3564,7 +3547,7 @@ var assertNormalExpression = {
|
|
|
3564
3547
|
throw new AssertionError("Expected ".concat(first, " to be falsy.").concat(message), sourceCodeInfo);
|
|
3565
3548
|
return null;
|
|
3566
3549
|
},
|
|
3567
|
-
|
|
3550
|
+
paramCount: { min: 1, max: 2 },
|
|
3568
3551
|
},
|
|
3569
3552
|
'assert_null': {
|
|
3570
3553
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3574,7 +3557,7 @@ var assertNormalExpression = {
|
|
|
3574
3557
|
throw new AssertionError("Expected ".concat(first, " to be nil.").concat(message), sourceCodeInfo);
|
|
3575
3558
|
return null;
|
|
3576
3559
|
},
|
|
3577
|
-
|
|
3560
|
+
paramCount: { min: 1, max: 2 },
|
|
3578
3561
|
},
|
|
3579
3562
|
'assert_throws': {
|
|
3580
3563
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3590,7 +3573,7 @@ var assertNormalExpression = {
|
|
|
3590
3573
|
}
|
|
3591
3574
|
throw new AssertionError("Expected function to throw.".concat(message), sourceCodeInfo);
|
|
3592
3575
|
},
|
|
3593
|
-
|
|
3576
|
+
paramCount: { min: 1, max: 2 },
|
|
3594
3577
|
},
|
|
3595
3578
|
'assert_throws_error': {
|
|
3596
3579
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3611,7 +3594,7 @@ var assertNormalExpression = {
|
|
|
3611
3594
|
}
|
|
3612
3595
|
throw new AssertionError("Expected function to throw \"".concat(throwMessage, "\".").concat(message), sourceCodeInfo);
|
|
3613
3596
|
},
|
|
3614
|
-
|
|
3597
|
+
paramCount: { min: 2, max: 3 },
|
|
3615
3598
|
},
|
|
3616
3599
|
'assert_not_throws': {
|
|
3617
3600
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3627,7 +3610,7 @@ var assertNormalExpression = {
|
|
|
3627
3610
|
}
|
|
3628
3611
|
return null;
|
|
3629
3612
|
},
|
|
3630
|
-
|
|
3613
|
+
paramCount: { min: 1, max: 2 },
|
|
3631
3614
|
},
|
|
3632
3615
|
};
|
|
3633
3616
|
|
|
@@ -3643,7 +3626,7 @@ var objectNormalExpression = {
|
|
|
3643
3626
|
}
|
|
3644
3627
|
return result;
|
|
3645
3628
|
},
|
|
3646
|
-
|
|
3629
|
+
paramCount: { even: true },
|
|
3647
3630
|
},
|
|
3648
3631
|
keys: {
|
|
3649
3632
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3651,7 +3634,7 @@ var objectNormalExpression = {
|
|
|
3651
3634
|
assertObj(obj, sourceCodeInfo);
|
|
3652
3635
|
return Object.keys(obj);
|
|
3653
3636
|
},
|
|
3654
|
-
|
|
3637
|
+
paramCount: 1,
|
|
3655
3638
|
},
|
|
3656
3639
|
vals: {
|
|
3657
3640
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3659,7 +3642,7 @@ var objectNormalExpression = {
|
|
|
3659
3642
|
assertObj(obj, sourceCodeInfo);
|
|
3660
3643
|
return Object.values(obj);
|
|
3661
3644
|
},
|
|
3662
|
-
|
|
3645
|
+
paramCount: 1,
|
|
3663
3646
|
},
|
|
3664
3647
|
entries: {
|
|
3665
3648
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3667,7 +3650,7 @@ var objectNormalExpression = {
|
|
|
3667
3650
|
assertObj(obj, sourceCodeInfo);
|
|
3668
3651
|
return Object.entries(obj);
|
|
3669
3652
|
},
|
|
3670
|
-
|
|
3653
|
+
paramCount: 1,
|
|
3671
3654
|
},
|
|
3672
3655
|
find: {
|
|
3673
3656
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3678,7 +3661,7 @@ var objectNormalExpression = {
|
|
|
3678
3661
|
return [key, obj[key]];
|
|
3679
3662
|
return null;
|
|
3680
3663
|
},
|
|
3681
|
-
|
|
3664
|
+
paramCount: 2,
|
|
3682
3665
|
},
|
|
3683
3666
|
dissoc: {
|
|
3684
3667
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3689,7 +3672,7 @@ var objectNormalExpression = {
|
|
|
3689
3672
|
delete newObj[key];
|
|
3690
3673
|
return newObj;
|
|
3691
3674
|
},
|
|
3692
|
-
|
|
3675
|
+
paramCount: 2,
|
|
3693
3676
|
},
|
|
3694
3677
|
merge: {
|
|
3695
3678
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3702,7 +3685,7 @@ var objectNormalExpression = {
|
|
|
3702
3685
|
return __assign(__assign({}, result), obj);
|
|
3703
3686
|
}, __assign({}, first));
|
|
3704
3687
|
},
|
|
3705
|
-
|
|
3688
|
+
paramCount: { min: 0 },
|
|
3706
3689
|
},
|
|
3707
3690
|
merge_with: {
|
|
3708
3691
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -3725,7 +3708,7 @@ var objectNormalExpression = {
|
|
|
3725
3708
|
return result;
|
|
3726
3709
|
}, __assign({}, first));
|
|
3727
3710
|
},
|
|
3728
|
-
|
|
3711
|
+
paramCount: { min: 2 },
|
|
3729
3712
|
},
|
|
3730
3713
|
zipmap: {
|
|
3731
3714
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3740,7 +3723,7 @@ var objectNormalExpression = {
|
|
|
3740
3723
|
}
|
|
3741
3724
|
return result;
|
|
3742
3725
|
},
|
|
3743
|
-
|
|
3726
|
+
paramCount: 2,
|
|
3744
3727
|
},
|
|
3745
3728
|
select_keys: {
|
|
3746
3729
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3753,7 +3736,7 @@ var objectNormalExpression = {
|
|
|
3753
3736
|
return result;
|
|
3754
3737
|
}, {});
|
|
3755
3738
|
},
|
|
3756
|
-
|
|
3739
|
+
paramCount: 2,
|
|
3757
3740
|
},
|
|
3758
3741
|
};
|
|
3759
3742
|
|
|
@@ -3763,42 +3746,42 @@ var predicatesNormalExpression = {
|
|
|
3763
3746
|
var _b = __read(_a, 1), first = _b[0];
|
|
3764
3747
|
return isLitsFunction(first);
|
|
3765
3748
|
},
|
|
3766
|
-
|
|
3749
|
+
paramCount: 1,
|
|
3767
3750
|
},
|
|
3768
3751
|
'string?': {
|
|
3769
3752
|
evaluate: function (_a) {
|
|
3770
3753
|
var _b = __read(_a, 1), first = _b[0];
|
|
3771
3754
|
return typeof first === 'string';
|
|
3772
3755
|
},
|
|
3773
|
-
|
|
3756
|
+
paramCount: 1,
|
|
3774
3757
|
},
|
|
3775
3758
|
'number?': {
|
|
3776
3759
|
evaluate: function (_a) {
|
|
3777
3760
|
var _b = __read(_a, 1), first = _b[0];
|
|
3778
3761
|
return typeof first === 'number';
|
|
3779
3762
|
},
|
|
3780
|
-
|
|
3763
|
+
paramCount: 1,
|
|
3781
3764
|
},
|
|
3782
3765
|
'integer?': {
|
|
3783
3766
|
evaluate: function (_a) {
|
|
3784
3767
|
var _b = __read(_a, 1), first = _b[0];
|
|
3785
3768
|
return typeof first === 'number' && isNumber(first, { integer: true });
|
|
3786
3769
|
},
|
|
3787
|
-
|
|
3770
|
+
paramCount: 1,
|
|
3788
3771
|
},
|
|
3789
3772
|
'boolean?': {
|
|
3790
3773
|
evaluate: function (_a) {
|
|
3791
3774
|
var _b = __read(_a, 1), first = _b[0];
|
|
3792
3775
|
return typeof first === 'boolean';
|
|
3793
3776
|
},
|
|
3794
|
-
|
|
3777
|
+
paramCount: 1,
|
|
3795
3778
|
},
|
|
3796
3779
|
'nil?': {
|
|
3797
3780
|
evaluate: function (_a) {
|
|
3798
3781
|
var _b = __read(_a, 1), first = _b[0];
|
|
3799
3782
|
return first === null || first === undefined;
|
|
3800
3783
|
},
|
|
3801
|
-
|
|
3784
|
+
paramCount: 1,
|
|
3802
3785
|
},
|
|
3803
3786
|
'zero?': {
|
|
3804
3787
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3806,7 +3789,7 @@ var predicatesNormalExpression = {
|
|
|
3806
3789
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3807
3790
|
return first === 0;
|
|
3808
3791
|
},
|
|
3809
|
-
|
|
3792
|
+
paramCount: 1,
|
|
3810
3793
|
},
|
|
3811
3794
|
'pos?': {
|
|
3812
3795
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3814,7 +3797,7 @@ var predicatesNormalExpression = {
|
|
|
3814
3797
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3815
3798
|
return first > 0;
|
|
3816
3799
|
},
|
|
3817
|
-
|
|
3800
|
+
paramCount: 1,
|
|
3818
3801
|
},
|
|
3819
3802
|
'neg?': {
|
|
3820
3803
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3822,7 +3805,7 @@ var predicatesNormalExpression = {
|
|
|
3822
3805
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3823
3806
|
return first < 0;
|
|
3824
3807
|
},
|
|
3825
|
-
|
|
3808
|
+
paramCount: 1,
|
|
3826
3809
|
},
|
|
3827
3810
|
'even?': {
|
|
3828
3811
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3830,7 +3813,7 @@ var predicatesNormalExpression = {
|
|
|
3830
3813
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3831
3814
|
return first % 2 === 0;
|
|
3832
3815
|
},
|
|
3833
|
-
|
|
3816
|
+
paramCount: 1,
|
|
3834
3817
|
},
|
|
3835
3818
|
'odd?': {
|
|
3836
3819
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3838,42 +3821,42 @@ var predicatesNormalExpression = {
|
|
|
3838
3821
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3839
3822
|
return isNumber(first, { integer: true }) && first % 2 !== 0;
|
|
3840
3823
|
},
|
|
3841
|
-
|
|
3824
|
+
paramCount: 1,
|
|
3842
3825
|
},
|
|
3843
3826
|
'array?': {
|
|
3844
3827
|
evaluate: function (_a) {
|
|
3845
3828
|
var _b = __read(_a, 1), first = _b[0];
|
|
3846
3829
|
return Array.isArray(first);
|
|
3847
3830
|
},
|
|
3848
|
-
|
|
3831
|
+
paramCount: 1,
|
|
3849
3832
|
},
|
|
3850
3833
|
'coll?': {
|
|
3851
3834
|
evaluate: function (_a) {
|
|
3852
3835
|
var _b = __read(_a, 1), first = _b[0];
|
|
3853
3836
|
return isColl(first);
|
|
3854
3837
|
},
|
|
3855
|
-
|
|
3838
|
+
paramCount: 1,
|
|
3856
3839
|
},
|
|
3857
3840
|
'seq?': {
|
|
3858
3841
|
evaluate: function (_a) {
|
|
3859
3842
|
var _b = __read(_a, 1), first = _b[0];
|
|
3860
3843
|
return isSeq(first);
|
|
3861
3844
|
},
|
|
3862
|
-
|
|
3845
|
+
paramCount: 1,
|
|
3863
3846
|
},
|
|
3864
3847
|
'object?': {
|
|
3865
3848
|
evaluate: function (_a) {
|
|
3866
3849
|
var _b = __read(_a, 1), first = _b[0];
|
|
3867
3850
|
return isObj(first);
|
|
3868
3851
|
},
|
|
3869
|
-
|
|
3852
|
+
paramCount: 1,
|
|
3870
3853
|
},
|
|
3871
3854
|
'regexp?': {
|
|
3872
3855
|
evaluate: function (_a) {
|
|
3873
3856
|
var _b = __read(_a, 1), value = _b[0];
|
|
3874
3857
|
return isRegularExpression(value);
|
|
3875
3858
|
},
|
|
3876
|
-
|
|
3859
|
+
paramCount: 1,
|
|
3877
3860
|
},
|
|
3878
3861
|
'finite?': {
|
|
3879
3862
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3881,7 +3864,7 @@ var predicatesNormalExpression = {
|
|
|
3881
3864
|
assertNumber(value, sourceCodeInfo);
|
|
3882
3865
|
return Number.isFinite(value);
|
|
3883
3866
|
},
|
|
3884
|
-
|
|
3867
|
+
paramCount: 1,
|
|
3885
3868
|
},
|
|
3886
3869
|
'nan?': {
|
|
3887
3870
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3889,7 +3872,7 @@ var predicatesNormalExpression = {
|
|
|
3889
3872
|
assertNumber(value, sourceCodeInfo);
|
|
3890
3873
|
return Number.isNaN(value);
|
|
3891
3874
|
},
|
|
3892
|
-
|
|
3875
|
+
paramCount: 1,
|
|
3893
3876
|
},
|
|
3894
3877
|
'positive_infinity?': {
|
|
3895
3878
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3897,7 +3880,7 @@ var predicatesNormalExpression = {
|
|
|
3897
3880
|
assertNumber(value, sourceCodeInfo);
|
|
3898
3881
|
return value === Number.POSITIVE_INFINITY;
|
|
3899
3882
|
},
|
|
3900
|
-
|
|
3883
|
+
paramCount: 1,
|
|
3901
3884
|
},
|
|
3902
3885
|
'negative_infinity?': {
|
|
3903
3886
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3905,21 +3888,21 @@ var predicatesNormalExpression = {
|
|
|
3905
3888
|
assertNumber(value, sourceCodeInfo);
|
|
3906
3889
|
return value === Number.NEGATIVE_INFINITY;
|
|
3907
3890
|
},
|
|
3908
|
-
|
|
3891
|
+
paramCount: 1,
|
|
3909
3892
|
},
|
|
3910
3893
|
'true?': {
|
|
3911
3894
|
evaluate: function (_a) {
|
|
3912
3895
|
var _b = __read(_a, 1), value = _b[0];
|
|
3913
3896
|
return value === true;
|
|
3914
3897
|
},
|
|
3915
|
-
|
|
3898
|
+
paramCount: 1,
|
|
3916
3899
|
},
|
|
3917
3900
|
'false?': {
|
|
3918
3901
|
evaluate: function (_a) {
|
|
3919
3902
|
var _b = __read(_a, 1), value = _b[0];
|
|
3920
3903
|
return value === false;
|
|
3921
3904
|
},
|
|
3922
|
-
|
|
3905
|
+
paramCount: 1,
|
|
3923
3906
|
},
|
|
3924
3907
|
'empty?': {
|
|
3925
3908
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3933,7 +3916,7 @@ var predicatesNormalExpression = {
|
|
|
3933
3916
|
return coll.length === 0;
|
|
3934
3917
|
return Object.keys(coll).length === 0;
|
|
3935
3918
|
},
|
|
3936
|
-
|
|
3919
|
+
paramCount: 1,
|
|
3937
3920
|
},
|
|
3938
3921
|
'not_empty?': {
|
|
3939
3922
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3947,7 +3930,7 @@ var predicatesNormalExpression = {
|
|
|
3947
3930
|
return coll.length > 0;
|
|
3948
3931
|
return Object.keys(coll).length > 0;
|
|
3949
3932
|
},
|
|
3950
|
-
|
|
3933
|
+
paramCount: 1,
|
|
3951
3934
|
},
|
|
3952
3935
|
};
|
|
3953
3936
|
|
|
@@ -3966,7 +3949,7 @@ var regexpNormalExpression = {
|
|
|
3966
3949
|
_b.f = flags,
|
|
3967
3950
|
_b;
|
|
3968
3951
|
},
|
|
3969
|
-
|
|
3952
|
+
paramCount: { min: 1, max: 2 },
|
|
3970
3953
|
},
|
|
3971
3954
|
match: {
|
|
3972
3955
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3980,7 +3963,7 @@ var regexpNormalExpression = {
|
|
|
3980
3963
|
return __spreadArray([], __read(match), false);
|
|
3981
3964
|
return null;
|
|
3982
3965
|
},
|
|
3983
|
-
|
|
3966
|
+
paramCount: 2,
|
|
3984
3967
|
},
|
|
3985
3968
|
replace: {
|
|
3986
3969
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3991,7 +3974,7 @@ var regexpNormalExpression = {
|
|
|
3991
3974
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f)) : regexp;
|
|
3992
3975
|
return str.replace(matcher, value);
|
|
3993
3976
|
},
|
|
3994
|
-
|
|
3977
|
+
paramCount: 3,
|
|
3995
3978
|
},
|
|
3996
3979
|
replace_all: {
|
|
3997
3980
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4002,7 +3985,7 @@ var regexpNormalExpression = {
|
|
|
4002
3985
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f.includes('g') ? regexp.f : "".concat(regexp.f, "g"))) : regexp;
|
|
4003
3986
|
return str.replaceAll(matcher, value);
|
|
4004
3987
|
},
|
|
4005
|
-
|
|
3988
|
+
paramCount: 3,
|
|
4006
3989
|
},
|
|
4007
3990
|
};
|
|
4008
3991
|
|
|
@@ -4018,7 +4001,7 @@ var stringNormalExpression = {
|
|
|
4018
4001
|
assertNumber(third, sourceCodeInfo, { gte: second });
|
|
4019
4002
|
return (first).substring(second, third);
|
|
4020
4003
|
},
|
|
4021
|
-
|
|
4004
|
+
paramCount: { min: 2, max: 3 },
|
|
4022
4005
|
},
|
|
4023
4006
|
'string_repeat': {
|
|
4024
4007
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4027,7 +4010,7 @@ var stringNormalExpression = {
|
|
|
4027
4010
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
4028
4011
|
return str.repeat(count);
|
|
4029
4012
|
},
|
|
4030
|
-
|
|
4013
|
+
paramCount: 2,
|
|
4031
4014
|
},
|
|
4032
4015
|
'str': {
|
|
4033
4016
|
evaluate: function (params) {
|
|
@@ -4042,6 +4025,7 @@ var stringNormalExpression = {
|
|
|
4042
4025
|
return result + paramStr;
|
|
4043
4026
|
}, '');
|
|
4044
4027
|
},
|
|
4028
|
+
paramCount: {},
|
|
4045
4029
|
},
|
|
4046
4030
|
'number': {
|
|
4047
4031
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4052,7 +4036,7 @@ var stringNormalExpression = {
|
|
|
4052
4036
|
throw new LitsError("Could not convert '".concat(str, "' to a number."), sourceCodeInfo);
|
|
4053
4037
|
return number;
|
|
4054
4038
|
},
|
|
4055
|
-
|
|
4039
|
+
paramCount: 1,
|
|
4056
4040
|
},
|
|
4057
4041
|
'from_char_code': {
|
|
4058
4042
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4066,7 +4050,7 @@ var stringNormalExpression = {
|
|
|
4066
4050
|
throw new LitsError(error, sourceCodeInfo);
|
|
4067
4051
|
}
|
|
4068
4052
|
},
|
|
4069
|
-
|
|
4053
|
+
paramCount: 1,
|
|
4070
4054
|
},
|
|
4071
4055
|
'to_char_code': {
|
|
4072
4056
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4074,7 +4058,7 @@ var stringNormalExpression = {
|
|
|
4074
4058
|
assertString(str, sourceCodeInfo, { nonEmpty: true });
|
|
4075
4059
|
return asNonUndefined(str.codePointAt(0), sourceCodeInfo);
|
|
4076
4060
|
},
|
|
4077
|
-
|
|
4061
|
+
paramCount: 1,
|
|
4078
4062
|
},
|
|
4079
4063
|
'lower_case': {
|
|
4080
4064
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4082,7 +4066,7 @@ var stringNormalExpression = {
|
|
|
4082
4066
|
assertString(str, sourceCodeInfo);
|
|
4083
4067
|
return str.toLowerCase();
|
|
4084
4068
|
},
|
|
4085
|
-
|
|
4069
|
+
paramCount: 1,
|
|
4086
4070
|
},
|
|
4087
4071
|
'upper_case': {
|
|
4088
4072
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4090,7 +4074,7 @@ var stringNormalExpression = {
|
|
|
4090
4074
|
assertString(str, sourceCodeInfo);
|
|
4091
4075
|
return str.toUpperCase();
|
|
4092
4076
|
},
|
|
4093
|
-
|
|
4077
|
+
paramCount: 1,
|
|
4094
4078
|
},
|
|
4095
4079
|
'trim': {
|
|
4096
4080
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4098,7 +4082,7 @@ var stringNormalExpression = {
|
|
|
4098
4082
|
assertString(str, sourceCodeInfo);
|
|
4099
4083
|
return str.trim();
|
|
4100
4084
|
},
|
|
4101
|
-
|
|
4085
|
+
paramCount: 1,
|
|
4102
4086
|
},
|
|
4103
4087
|
'trim_left': {
|
|
4104
4088
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4106,7 +4090,7 @@ var stringNormalExpression = {
|
|
|
4106
4090
|
assertString(str, sourceCodeInfo);
|
|
4107
4091
|
return str.replace(/^\s+/, '');
|
|
4108
4092
|
},
|
|
4109
|
-
|
|
4093
|
+
paramCount: 1,
|
|
4110
4094
|
},
|
|
4111
4095
|
'trim_right': {
|
|
4112
4096
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4114,7 +4098,7 @@ var stringNormalExpression = {
|
|
|
4114
4098
|
assertString(str, sourceCodeInfo);
|
|
4115
4099
|
return str.replace(/\s+$/, '');
|
|
4116
4100
|
},
|
|
4117
|
-
|
|
4101
|
+
paramCount: 1,
|
|
4118
4102
|
},
|
|
4119
4103
|
'++': {
|
|
4120
4104
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -4138,7 +4122,7 @@ var stringNormalExpression = {
|
|
|
4138
4122
|
return "".concat(acc).concat(str);
|
|
4139
4123
|
}, first === null ? '' : "".concat(first));
|
|
4140
4124
|
},
|
|
4141
|
-
|
|
4125
|
+
paramCount: {},
|
|
4142
4126
|
},
|
|
4143
4127
|
'join': {
|
|
4144
4128
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4148,7 +4132,7 @@ var stringNormalExpression = {
|
|
|
4148
4132
|
assertString(delimiter, sourceCodeInfo);
|
|
4149
4133
|
return stringList.join(delimiter);
|
|
4150
4134
|
},
|
|
4151
|
-
|
|
4135
|
+
paramCount: 2,
|
|
4152
4136
|
},
|
|
4153
4137
|
'split': {
|
|
4154
4138
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4162,7 +4146,7 @@ var stringNormalExpression = {
|
|
|
4162
4146
|
: new RegExp(stringOrRegExpValue.s, stringOrRegExpValue.f);
|
|
4163
4147
|
return str.split(delimiter, limit);
|
|
4164
4148
|
},
|
|
4165
|
-
|
|
4149
|
+
paramCount: { min: 2, max: 3 },
|
|
4166
4150
|
},
|
|
4167
4151
|
'split_lines': {
|
|
4168
4152
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4170,7 +4154,7 @@ var stringNormalExpression = {
|
|
|
4170
4154
|
assertString(str, sourceCodeInfo);
|
|
4171
4155
|
return str.split((/\r\n|\n|\r/)).filter(function (line) { return line !== ''; });
|
|
4172
4156
|
},
|
|
4173
|
-
|
|
4157
|
+
paramCount: 1,
|
|
4174
4158
|
},
|
|
4175
4159
|
'pad_left': {
|
|
4176
4160
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4181,7 +4165,7 @@ var stringNormalExpression = {
|
|
|
4181
4165
|
assertString(padString, sourceCodeInfo);
|
|
4182
4166
|
return str.padStart(length, padString);
|
|
4183
4167
|
},
|
|
4184
|
-
|
|
4168
|
+
paramCount: { min: 2, max: 3 },
|
|
4185
4169
|
},
|
|
4186
4170
|
'pad_right': {
|
|
4187
4171
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4192,7 +4176,7 @@ var stringNormalExpression = {
|
|
|
4192
4176
|
assertString(padString, sourceCodeInfo);
|
|
4193
4177
|
return str.padEnd(length, padString);
|
|
4194
4178
|
},
|
|
4195
|
-
|
|
4179
|
+
paramCount: { min: 2, max: 3 },
|
|
4196
4180
|
},
|
|
4197
4181
|
'template': {
|
|
4198
4182
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4223,7 +4207,7 @@ var stringNormalExpression = {
|
|
|
4223
4207
|
}
|
|
4224
4208
|
}
|
|
4225
4209
|
},
|
|
4226
|
-
|
|
4210
|
+
paramCount: { min: 1, max: 10 },
|
|
4227
4211
|
},
|
|
4228
4212
|
'encode_base64': {
|
|
4229
4213
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4234,7 +4218,7 @@ var stringNormalExpression = {
|
|
|
4234
4218
|
return String.fromCharCode(Number.parseInt(p1, 16));
|
|
4235
4219
|
}));
|
|
4236
4220
|
},
|
|
4237
|
-
|
|
4221
|
+
paramCount: 1,
|
|
4238
4222
|
},
|
|
4239
4223
|
'decode_base64': {
|
|
4240
4224
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4252,7 +4236,7 @@ var stringNormalExpression = {
|
|
|
4252
4236
|
throw new LitsError(error, sourceCodeInfo);
|
|
4253
4237
|
}
|
|
4254
4238
|
},
|
|
4255
|
-
|
|
4239
|
+
paramCount: 1,
|
|
4256
4240
|
},
|
|
4257
4241
|
'encode_uri_component': {
|
|
4258
4242
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4260,7 +4244,7 @@ var stringNormalExpression = {
|
|
|
4260
4244
|
assertString(value, sourceCodeInfo);
|
|
4261
4245
|
return encodeURIComponent(value);
|
|
4262
4246
|
},
|
|
4263
|
-
|
|
4247
|
+
paramCount: 1,
|
|
4264
4248
|
},
|
|
4265
4249
|
'decode_uri_component': {
|
|
4266
4250
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4273,7 +4257,7 @@ var stringNormalExpression = {
|
|
|
4273
4257
|
throw new LitsError(error, sourceCodeInfo);
|
|
4274
4258
|
}
|
|
4275
4259
|
},
|
|
4276
|
-
|
|
4260
|
+
paramCount: 1,
|
|
4277
4261
|
},
|
|
4278
4262
|
'blank?': {
|
|
4279
4263
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4284,7 +4268,7 @@ var stringNormalExpression = {
|
|
|
4284
4268
|
assertString(value, sourceCodeInfo);
|
|
4285
4269
|
return blankRegexp.test(value);
|
|
4286
4270
|
},
|
|
4287
|
-
|
|
4271
|
+
paramCount: 1,
|
|
4288
4272
|
},
|
|
4289
4273
|
'capitalize': {
|
|
4290
4274
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4292,7 +4276,7 @@ var stringNormalExpression = {
|
|
|
4292
4276
|
assertString(str, sourceCodeInfo);
|
|
4293
4277
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
4294
4278
|
},
|
|
4295
|
-
|
|
4279
|
+
paramCount: 1,
|
|
4296
4280
|
},
|
|
4297
4281
|
};
|
|
4298
4282
|
var doubleDollarRegexp = /\$\$/g;
|
|
@@ -4323,14 +4307,14 @@ var functionalNormalExpression = {
|
|
|
4323
4307
|
var applyArray = __spreadArray(__spreadArray([], __read(params.slice(0, -1)), false), __read(last), false);
|
|
4324
4308
|
return executeFunction(func, applyArray, contextStack, sourceCodeInfo);
|
|
4325
4309
|
},
|
|
4326
|
-
|
|
4310
|
+
paramCount: { min: 2 },
|
|
4327
4311
|
},
|
|
4328
4312
|
identity: {
|
|
4329
4313
|
evaluate: function (_a) {
|
|
4330
4314
|
var _b = __read(_a, 1), value = _b[0];
|
|
4331
4315
|
return toAny(value);
|
|
4332
4316
|
},
|
|
4333
|
-
|
|
4317
|
+
paramCount: 1,
|
|
4334
4318
|
},
|
|
4335
4319
|
partial: {
|
|
4336
4320
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4344,7 +4328,7 @@ var functionalNormalExpression = {
|
|
|
4344
4328
|
_b.p = params,
|
|
4345
4329
|
_b;
|
|
4346
4330
|
},
|
|
4347
|
-
|
|
4331
|
+
paramCount: { min: 1 },
|
|
4348
4332
|
},
|
|
4349
4333
|
comp: {
|
|
4350
4334
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4362,6 +4346,7 @@ var functionalNormalExpression = {
|
|
|
4362
4346
|
_a.f = fns,
|
|
4363
4347
|
_a;
|
|
4364
4348
|
},
|
|
4349
|
+
paramCount: {},
|
|
4365
4350
|
},
|
|
4366
4351
|
constantly: {
|
|
4367
4352
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4374,7 +4359,7 @@ var functionalNormalExpression = {
|
|
|
4374
4359
|
_b.v = toAny(value),
|
|
4375
4360
|
_b;
|
|
4376
4361
|
},
|
|
4377
|
-
|
|
4362
|
+
paramCount: 1,
|
|
4378
4363
|
},
|
|
4379
4364
|
juxt: {
|
|
4380
4365
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4386,7 +4371,7 @@ var functionalNormalExpression = {
|
|
|
4386
4371
|
_a.f = fns,
|
|
4387
4372
|
_a;
|
|
4388
4373
|
},
|
|
4389
|
-
|
|
4374
|
+
paramCount: { min: 1 },
|
|
4390
4375
|
},
|
|
4391
4376
|
complement: {
|
|
4392
4377
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4399,7 +4384,7 @@ var functionalNormalExpression = {
|
|
|
4399
4384
|
_b.f = toAny(fn),
|
|
4400
4385
|
_b;
|
|
4401
4386
|
},
|
|
4402
|
-
|
|
4387
|
+
paramCount: 1,
|
|
4403
4388
|
},
|
|
4404
4389
|
every_pred: {
|
|
4405
4390
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4411,7 +4396,7 @@ var functionalNormalExpression = {
|
|
|
4411
4396
|
_a.f = fns,
|
|
4412
4397
|
_a;
|
|
4413
4398
|
},
|
|
4414
|
-
|
|
4399
|
+
paramCount: { min: 1 },
|
|
4415
4400
|
},
|
|
4416
4401
|
some_pred: {
|
|
4417
4402
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4423,7 +4408,7 @@ var functionalNormalExpression = {
|
|
|
4423
4408
|
_a.f = fns,
|
|
4424
4409
|
_a;
|
|
4425
4410
|
},
|
|
4426
|
-
|
|
4411
|
+
paramCount: { min: 1 },
|
|
4427
4412
|
},
|
|
4428
4413
|
fnil: {
|
|
4429
4414
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4437,7 +4422,7 @@ var functionalNormalExpression = {
|
|
|
4437
4422
|
_b.p = params,
|
|
4438
4423
|
_b;
|
|
4439
4424
|
},
|
|
4440
|
-
|
|
4425
|
+
paramCount: { min: 2 },
|
|
4441
4426
|
},
|
|
4442
4427
|
};
|
|
4443
4428
|
|
|
@@ -4456,7 +4441,7 @@ var andSpecialExpression = {
|
|
|
4456
4441
|
};
|
|
4457
4442
|
return node;
|
|
4458
4443
|
},
|
|
4459
|
-
|
|
4444
|
+
paramCount: {},
|
|
4460
4445
|
evaluate: function (node, contextStack, _a) {
|
|
4461
4446
|
var e_1, _b;
|
|
4462
4447
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4500,14 +4485,14 @@ function getCommonPolishSpecialExpressionParser(name) {
|
|
|
4500
4485
|
|
|
4501
4486
|
var commentSpecialExpression = {
|
|
4502
4487
|
polishParse: getCommonPolishSpecialExpressionParser('comment'),
|
|
4503
|
-
|
|
4488
|
+
paramCount: {},
|
|
4504
4489
|
evaluate: function () { return null; },
|
|
4505
4490
|
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4506
4491
|
};
|
|
4507
4492
|
|
|
4508
4493
|
var condSpecialExpression = {
|
|
4509
4494
|
polishParse: getCommonPolishSpecialExpressionParser('cond'),
|
|
4510
|
-
|
|
4495
|
+
paramCount: { even: true },
|
|
4511
4496
|
evaluate: function (node, contextStack, _a) {
|
|
4512
4497
|
var e_1, _b;
|
|
4513
4498
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4537,7 +4522,7 @@ var condSpecialExpression = {
|
|
|
4537
4522
|
|
|
4538
4523
|
var switchSpecialExpression = {
|
|
4539
4524
|
polishParse: getCommonPolishSpecialExpressionParser('switch'),
|
|
4540
|
-
|
|
4525
|
+
paramCount: { odd: true },
|
|
4541
4526
|
evaluate: function (node, contextStack, _a) {
|
|
4542
4527
|
var e_1, _b;
|
|
4543
4528
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4568,7 +4553,7 @@ var switchSpecialExpression = {
|
|
|
4568
4553
|
|
|
4569
4554
|
var declaredSpecialExpression = {
|
|
4570
4555
|
polishParse: getCommonPolishSpecialExpressionParser('defined?'),
|
|
4571
|
-
|
|
4556
|
+
paramCount: 1,
|
|
4572
4557
|
evaluate: function (node, contextStack) {
|
|
4573
4558
|
var lookUpResult = contextStack.lookUp(node.p[0]);
|
|
4574
4559
|
return lookUpResult !== null;
|
|
@@ -4616,7 +4601,7 @@ var defSpecialExpression = {
|
|
|
4616
4601
|
assertSymbolNode(node.p[0], (_b = getTokenDebugData(node.token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
4617
4602
|
return node;
|
|
4618
4603
|
},
|
|
4619
|
-
|
|
4604
|
+
paramCount: 2,
|
|
4620
4605
|
evaluate: function (node, contextStack, _a) {
|
|
4621
4606
|
var _b;
|
|
4622
4607
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4641,7 +4626,7 @@ var defSpecialExpression = {
|
|
|
4641
4626
|
|
|
4642
4627
|
var doSpecialExpression = {
|
|
4643
4628
|
polishParse: getCommonPolishSpecialExpressionParser('do'),
|
|
4644
|
-
|
|
4629
|
+
paramCount: {},
|
|
4645
4630
|
evaluate: function (node, contextStack, _a) {
|
|
4646
4631
|
var e_1, _b;
|
|
4647
4632
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4713,7 +4698,7 @@ var defnSpecialExpression = {
|
|
|
4713
4698
|
};
|
|
4714
4699
|
return node;
|
|
4715
4700
|
},
|
|
4716
|
-
|
|
4701
|
+
paramCount: {},
|
|
4717
4702
|
evaluate: function (node, contextStack, _a) {
|
|
4718
4703
|
var _b;
|
|
4719
4704
|
var _c, _d;
|
|
@@ -4752,7 +4737,7 @@ var fnSpecialExpression = {
|
|
|
4752
4737
|
};
|
|
4753
4738
|
return node;
|
|
4754
4739
|
},
|
|
4755
|
-
|
|
4740
|
+
paramCount: {},
|
|
4756
4741
|
evaluate: function (node, contextStack, _a) {
|
|
4757
4742
|
var _b;
|
|
4758
4743
|
var _c;
|
|
@@ -4977,7 +4962,7 @@ function parseFunctionArguments(tokenStream, parseState, parsers) {
|
|
|
4977
4962
|
|
|
4978
4963
|
var ifSpecialExpression = {
|
|
4979
4964
|
polishParse: getCommonPolishSpecialExpressionParser('if'),
|
|
4980
|
-
|
|
4965
|
+
paramCount: { min: 2, max: 3 },
|
|
4981
4966
|
evaluate: function (node, contextStack, _a) {
|
|
4982
4967
|
var _b;
|
|
4983
4968
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5001,7 +4986,7 @@ var ifSpecialExpression = {
|
|
|
5001
4986
|
|
|
5002
4987
|
var unlessSpecialExpression = {
|
|
5003
4988
|
polishParse: getCommonPolishSpecialExpressionParser('unless'),
|
|
5004
|
-
|
|
4989
|
+
paramCount: { min: 2, max: 3 },
|
|
5005
4990
|
evaluate: function (node, contextStack, _a) {
|
|
5006
4991
|
var _b;
|
|
5007
4992
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5038,7 +5023,7 @@ var letSpecialExpression = {
|
|
|
5038
5023
|
};
|
|
5039
5024
|
return node;
|
|
5040
5025
|
},
|
|
5041
|
-
|
|
5026
|
+
paramCount: 0,
|
|
5042
5027
|
evaluate: function (node, contextStack, _a) {
|
|
5043
5028
|
var e_1, _b;
|
|
5044
5029
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5093,7 +5078,7 @@ var loopSpecialExpression = {
|
|
|
5093
5078
|
};
|
|
5094
5079
|
return node;
|
|
5095
5080
|
},
|
|
5096
|
-
|
|
5081
|
+
paramCount: {},
|
|
5097
5082
|
evaluate: function (node, contextStack, _a) {
|
|
5098
5083
|
var _b;
|
|
5099
5084
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5359,7 +5344,7 @@ var forSpecialExpression = {
|
|
|
5359
5344
|
};
|
|
5360
5345
|
return node;
|
|
5361
5346
|
},
|
|
5362
|
-
|
|
5347
|
+
paramCount: 1,
|
|
5363
5348
|
evaluate: function (node, contextStack, helpers) { return evaluateLoop(true, node, contextStack, helpers.evaluateAstNode); },
|
|
5364
5349
|
findUnresolvedIdentifiers: function (node, contextStack, _a) {
|
|
5365
5350
|
var findUnresolvedIdentifiers = _a.findUnresolvedIdentifiers, builtin = _a.builtin;
|
|
@@ -5381,7 +5366,7 @@ var doseqSpecialExpression = {
|
|
|
5381
5366
|
};
|
|
5382
5367
|
return node;
|
|
5383
5368
|
},
|
|
5384
|
-
|
|
5369
|
+
paramCount: 1,
|
|
5385
5370
|
evaluate: function (node, contextStack, helpers) {
|
|
5386
5371
|
evaluateLoop(false, node, contextStack, helpers.evaluateAstNode);
|
|
5387
5372
|
return null;
|
|
@@ -5394,7 +5379,7 @@ var doseqSpecialExpression = {
|
|
|
5394
5379
|
|
|
5395
5380
|
var orSpecialExpression = {
|
|
5396
5381
|
polishParse: getCommonPolishSpecialExpressionParser('||'),
|
|
5397
|
-
|
|
5382
|
+
paramCount: {},
|
|
5398
5383
|
evaluate: function (node, contextStack, _a) {
|
|
5399
5384
|
var e_1, _b;
|
|
5400
5385
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5424,7 +5409,7 @@ var orSpecialExpression = {
|
|
|
5424
5409
|
|
|
5425
5410
|
var qqSpecialExpression = {
|
|
5426
5411
|
polishParse: getCommonPolishSpecialExpressionParser('??'),
|
|
5427
|
-
|
|
5412
|
+
paramCount: { min: 1, max: 2 },
|
|
5428
5413
|
evaluate: function (node, contextStack, _a) {
|
|
5429
5414
|
var _b;
|
|
5430
5415
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5456,7 +5441,7 @@ var recurSpecialExpression = {
|
|
|
5456
5441
|
};
|
|
5457
5442
|
return node;
|
|
5458
5443
|
},
|
|
5459
|
-
|
|
5444
|
+
paramCount: {},
|
|
5460
5445
|
evaluate: function (node, contextStack, _a) {
|
|
5461
5446
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5462
5447
|
var params = node.p.map(function (paramNode) { return evaluateAstNode(paramNode, contextStack); });
|
|
@@ -5470,7 +5455,7 @@ var recurSpecialExpression = {
|
|
|
5470
5455
|
|
|
5471
5456
|
var throwSpecialExpression = {
|
|
5472
5457
|
polishParse: getCommonPolishSpecialExpressionParser('throw'),
|
|
5473
|
-
|
|
5458
|
+
paramCount: 1,
|
|
5474
5459
|
evaluate: function (node, contextStack, _a) {
|
|
5475
5460
|
var _b, _c;
|
|
5476
5461
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5511,7 +5496,7 @@ var trySpecialExpression = {
|
|
|
5511
5496
|
};
|
|
5512
5497
|
return node;
|
|
5513
5498
|
},
|
|
5514
|
-
|
|
5499
|
+
paramCount: 1,
|
|
5515
5500
|
evaluate: function (node, contextStack, _a) {
|
|
5516
5501
|
var _b;
|
|
5517
5502
|
var _c;
|
|
@@ -5948,8 +5933,9 @@ function evaluate(ast, contextStack) {
|
|
|
5948
5933
|
var e_1, _a;
|
|
5949
5934
|
var result = null;
|
|
5950
5935
|
var safeAstNode = ast.hasDebugData ? JSON.parse(JSON.stringify(ast)) : ast;
|
|
5951
|
-
if (safeAstNode.hasDebugData)
|
|
5936
|
+
if (safeAstNode.hasDebugData) {
|
|
5952
5937
|
removeCommenNodes(safeAstNode);
|
|
5938
|
+
}
|
|
5953
5939
|
try {
|
|
5954
5940
|
for (var _b = __values(safeAstNode.b), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
5955
5941
|
var node = _c.value;
|
|
@@ -6155,6 +6141,20 @@ function analyze(ast, params) {
|
|
|
6155
6141
|
};
|
|
6156
6142
|
}
|
|
6157
6143
|
|
|
6144
|
+
function minifyTokenStream(tokenStream) {
|
|
6145
|
+
var tokens = tokenStream.tokens.filter(function (token) {
|
|
6146
|
+
if (isP_CommentToken(token)
|
|
6147
|
+
|| isA_CommentToken(token)
|
|
6148
|
+
|| isA_MultiLineCommentToken(token)
|
|
6149
|
+
|| isA_WhitespaceToken(token)
|
|
6150
|
+
|| isP_WhitespaceToken(token)) {
|
|
6151
|
+
return false;
|
|
6152
|
+
}
|
|
6153
|
+
return true;
|
|
6154
|
+
});
|
|
6155
|
+
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
6156
|
+
}
|
|
6157
|
+
|
|
6158
6158
|
function parseSymbol(tokenStream, parseState) {
|
|
6159
6159
|
var _a;
|
|
6160
6160
|
var tkn = asToken(tokenStream.tokens[parseState.position++]);
|
|
@@ -6344,7 +6344,6 @@ function getPrecedence(operatorSign) {
|
|
|
6344
6344
|
}
|
|
6345
6345
|
}
|
|
6346
6346
|
function createNamedNormalExpressionNode(name, params, token) {
|
|
6347
|
-
var _a;
|
|
6348
6347
|
var node = {
|
|
6349
6348
|
t: AstNodeType.NormalExpression,
|
|
6350
6349
|
n: name,
|
|
@@ -6353,7 +6352,7 @@ function createNamedNormalExpressionNode(name, params, token) {
|
|
|
6353
6352
|
};
|
|
6354
6353
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
6355
6354
|
if (builtinExpression) {
|
|
6356
|
-
(
|
|
6355
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
6357
6356
|
}
|
|
6358
6357
|
return node;
|
|
6359
6358
|
}
|
|
@@ -6454,7 +6453,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6454
6453
|
AlgebraicParser.prototype.parse = function () {
|
|
6455
6454
|
var nodes = [];
|
|
6456
6455
|
while (!this.isAtEnd()) {
|
|
6457
|
-
nodes.push(this.parseExpression());
|
|
6456
|
+
nodes.push(this.parseExpression(0, true));
|
|
6458
6457
|
if (!isA_OperatorToken(this.peek(), ';')) {
|
|
6459
6458
|
break;
|
|
6460
6459
|
}
|
|
@@ -6462,9 +6461,10 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6462
6461
|
}
|
|
6463
6462
|
return nodes;
|
|
6464
6463
|
};
|
|
6465
|
-
AlgebraicParser.prototype.parseExpression = function (precedence) {
|
|
6466
|
-
var _a;
|
|
6464
|
+
AlgebraicParser.prototype.parseExpression = function (precedence, moduleScope) {
|
|
6465
|
+
var _a, _b;
|
|
6467
6466
|
if (precedence === void 0) { precedence = 0; }
|
|
6467
|
+
if (moduleScope === void 0) { moduleScope = false; }
|
|
6468
6468
|
var firstToken = this.peek();
|
|
6469
6469
|
var left;
|
|
6470
6470
|
if (isA_SymbolToken(firstToken)) {
|
|
@@ -6500,6 +6500,9 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6500
6500
|
return this.parseFunction(firstToken);
|
|
6501
6501
|
}
|
|
6502
6502
|
else if (isA_ReservedSymbolToken(firstToken, 'export')) {
|
|
6503
|
+
if (!moduleScope) {
|
|
6504
|
+
throw new LitsError('export is only allowed in module scope', (_a = getTokenDebugData(firstToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6505
|
+
}
|
|
6503
6506
|
return this.parseExport(firstToken);
|
|
6504
6507
|
}
|
|
6505
6508
|
left || (left = this.parseOperand());
|
|
@@ -6537,7 +6540,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6537
6540
|
operator = this.peek();
|
|
6538
6541
|
}
|
|
6539
6542
|
if (!left) {
|
|
6540
|
-
throw new LitsError('Expected operand', (
|
|
6543
|
+
throw new LitsError('Expected operand', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6541
6544
|
}
|
|
6542
6545
|
return left;
|
|
6543
6546
|
};
|
|
@@ -6645,32 +6648,6 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6645
6648
|
return parseReservedSymbol(this.tokenStream, this.parseState);
|
|
6646
6649
|
case 'RegexpShorthand':
|
|
6647
6650
|
return parseRegexpShorthand(this.tokenStream, this.parseState);
|
|
6648
|
-
case 'PolNotation': {
|
|
6649
|
-
this.parseState.algebraic = false;
|
|
6650
|
-
var astNodes = [];
|
|
6651
|
-
this.advance();
|
|
6652
|
-
do {
|
|
6653
|
-
astNodes.push(this.parseState.parseToken(this.tokenStream, this.parseState));
|
|
6654
|
-
} while (!isEndNotationToken(this.peek()));
|
|
6655
|
-
this.advance();
|
|
6656
|
-
this.parseState.algebraic = true;
|
|
6657
|
-
if (astNodes.length === 1) {
|
|
6658
|
-
return astNodes[0];
|
|
6659
|
-
}
|
|
6660
|
-
return {
|
|
6661
|
-
t: AstNodeType.SpecialExpression,
|
|
6662
|
-
n: 'do',
|
|
6663
|
-
p: astNodes,
|
|
6664
|
-
token: getTokenDebugData(token) && token,
|
|
6665
|
-
};
|
|
6666
|
-
}
|
|
6667
|
-
case 'AlgNotation': {
|
|
6668
|
-
this.advance();
|
|
6669
|
-
var node = this.parseOperand();
|
|
6670
|
-
assertEndNotationToken(this.peek());
|
|
6671
|
-
this.advance();
|
|
6672
|
-
return node;
|
|
6673
|
-
}
|
|
6674
6651
|
default:
|
|
6675
6652
|
throw new LitsError("Unknown token type: ".concat(tokenType), (_b = getTokenDebugData(token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6676
6653
|
}
|
|
@@ -6775,7 +6752,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6775
6752
|
p: params,
|
|
6776
6753
|
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
6777
6754
|
};
|
|
6778
|
-
builtin.specialExpressions[node.n].
|
|
6755
|
+
assertNumberOfParams(builtin.specialExpressions[node.n].paramCount, node);
|
|
6779
6756
|
return node;
|
|
6780
6757
|
}
|
|
6781
6758
|
case 'fn':
|
|
@@ -6828,7 +6805,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6828
6805
|
}
|
|
6829
6806
|
};
|
|
6830
6807
|
AlgebraicParser.prototype.parseFunctionArguments = function () {
|
|
6831
|
-
var _a, _b, _c, _d
|
|
6808
|
+
var _a, _b, _c, _d;
|
|
6832
6809
|
var firstToken = this.peek();
|
|
6833
6810
|
if (isA_SymbolToken(firstToken)) {
|
|
6834
6811
|
this.advance();
|
|
@@ -6843,62 +6820,54 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6843
6820
|
}
|
|
6844
6821
|
this.advance();
|
|
6845
6822
|
var rest = false;
|
|
6846
|
-
var letBindingObject;
|
|
6847
6823
|
var args = [];
|
|
6848
6824
|
var restArg;
|
|
6849
|
-
while (!this.isAtEnd() && !isRParenToken(this.peek())) {
|
|
6850
|
-
if (
|
|
6851
|
-
throw new LitsError('Expected right parentheses', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6852
|
-
}
|
|
6853
|
-
if (isLBraceToken(this.peek())) {
|
|
6854
|
-
letBindingObject = this.parseObject();
|
|
6855
|
-
}
|
|
6856
|
-
else {
|
|
6857
|
-
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6858
|
-
if (rest) {
|
|
6859
|
-
throw new LitsError('Multiple spread operators in lambda function', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6860
|
-
}
|
|
6861
|
-
this.advance();
|
|
6862
|
-
rest = true;
|
|
6863
|
-
}
|
|
6864
|
-
var symbolToken = this.peek();
|
|
6865
|
-
if (!isA_SymbolToken(symbolToken)) {
|
|
6866
|
-
throw new LitsError('Expected symbol', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6867
|
-
}
|
|
6825
|
+
while (!this.isAtEnd() && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6826
|
+
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6868
6827
|
if (rest) {
|
|
6869
|
-
|
|
6870
|
-
}
|
|
6871
|
-
else {
|
|
6872
|
-
args.push(symbolToken[1]);
|
|
6828
|
+
throw new LitsError('Multiple spread operators in lambda function', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6873
6829
|
}
|
|
6874
6830
|
this.advance();
|
|
6831
|
+
rest = true;
|
|
6832
|
+
}
|
|
6833
|
+
var symbolToken = this.peek();
|
|
6834
|
+
if (!isA_SymbolToken(symbolToken)) {
|
|
6835
|
+
throw new LitsError('Expected symbol', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6875
6836
|
}
|
|
6876
|
-
if (
|
|
6877
|
-
|
|
6837
|
+
if (rest) {
|
|
6838
|
+
restArg = symbolToken[1];
|
|
6839
|
+
}
|
|
6840
|
+
else {
|
|
6841
|
+
args.push(symbolToken[1]);
|
|
6842
|
+
}
|
|
6843
|
+
this.advance();
|
|
6844
|
+
if (!isA_OperatorToken(this.peek(), ',') && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6845
|
+
throw new LitsError('Expected comma or closing parenthesis', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6878
6846
|
}
|
|
6879
6847
|
if (isA_OperatorToken(this.peek(), ',')) {
|
|
6880
6848
|
this.advance();
|
|
6881
6849
|
}
|
|
6882
6850
|
}
|
|
6883
6851
|
var arity = restArg !== undefined ? { min: args.length } : args.length;
|
|
6852
|
+
// let bindings, to be able to pass on values in the context down to the body
|
|
6853
|
+
// This is needed since lits is dynamically scoped
|
|
6854
|
+
// E.g.
|
|
6855
|
+
// x => y => x + y // would not work, x is not available in the second lambda
|
|
6856
|
+
// x => (y, let x = x) => x + y // would work, x is available in the second lambda
|
|
6857
|
+
var bindingNodess = [];
|
|
6858
|
+
var token = this.peek();
|
|
6859
|
+
while (isA_SymbolToken(token, 'let')) {
|
|
6860
|
+
var letNode = this.parseLet(token, true);
|
|
6861
|
+
bindingNodess.push(letNode.bs[0]);
|
|
6862
|
+
token = this.peek();
|
|
6863
|
+
}
|
|
6884
6864
|
if (!isRParenToken(this.peek())) {
|
|
6885
|
-
throw new LitsError('Expected closing parenthesis', (
|
|
6865
|
+
throw new LitsError('Expected closing parenthesis', (_d = getTokenDebugData(this.peek())) === null || _d === void 0 ? void 0 : _d.sourceCodeInfo);
|
|
6886
6866
|
}
|
|
6887
|
-
var letBindings = letBindingObject ? arrayToPairs(letBindingObject.p) : [];
|
|
6888
6867
|
var functionArguments = {
|
|
6889
6868
|
m: args,
|
|
6890
6869
|
r: restArg,
|
|
6891
|
-
b:
|
|
6892
|
-
var key = pair[0];
|
|
6893
|
-
var value = pair[1];
|
|
6894
|
-
return {
|
|
6895
|
-
t: AstNodeType.Binding,
|
|
6896
|
-
n: key.v,
|
|
6897
|
-
v: value,
|
|
6898
|
-
p: [],
|
|
6899
|
-
token: getTokenDebugData(key.token) && key.token,
|
|
6900
|
-
};
|
|
6901
|
-
}),
|
|
6870
|
+
b: bindingNodess,
|
|
6902
6871
|
};
|
|
6903
6872
|
this.advance();
|
|
6904
6873
|
return {
|
|
@@ -7348,6 +7317,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
7348
7317
|
}
|
|
7349
7318
|
assertA_ReservedSymbolToken(this.peek(), 'end');
|
|
7350
7319
|
this.advance();
|
|
7320
|
+
assertA_OperatorToken(this.peek(), ';');
|
|
7351
7321
|
var fnNode = {
|
|
7352
7322
|
t: AstNodeType.SpecialExpression,
|
|
7353
7323
|
n: 'fn',
|
|
@@ -7510,7 +7480,7 @@ function parseObjectLitteral(tokenStream, parseState) {
|
|
|
7510
7480
|
p: params,
|
|
7511
7481
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
7512
7482
|
};
|
|
7513
|
-
|
|
7483
|
+
assertNumberOfParams({ even: true }, node);
|
|
7514
7484
|
return node;
|
|
7515
7485
|
}
|
|
7516
7486
|
var placeholderRegexp = /^%([1-9]\d?)?$/;
|
|
@@ -7616,7 +7586,7 @@ function parseBinding(tokenStream, parseState) {
|
|
|
7616
7586
|
return node;
|
|
7617
7587
|
}
|
|
7618
7588
|
function parseNormalExpression(tokenStream, parseState) {
|
|
7619
|
-
var _a
|
|
7589
|
+
var _a;
|
|
7620
7590
|
var startBracketToken = tokenStream.hasDebugData ? asLParenToken(tokenStream.tokens[parseState.position]) : undefined;
|
|
7621
7591
|
parseState.position += 1;
|
|
7622
7592
|
var fnNode = parseState.parseToken(tokenStream, parseState);
|
|
@@ -7640,7 +7610,7 @@ function parseNormalExpression(tokenStream, parseState) {
|
|
|
7640
7610
|
};
|
|
7641
7611
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
7642
7612
|
if (builtinExpression) {
|
|
7643
|
-
(
|
|
7613
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
7644
7614
|
}
|
|
7645
7615
|
return node;
|
|
7646
7616
|
}
|
|
@@ -7649,7 +7619,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7649
7619
|
var firstToken = asLParenToken(tokenStream.tokens[parseState.position++]);
|
|
7650
7620
|
var nameToken = asP_SymbolToken(tokenStream.tokens[parseState.position++]);
|
|
7651
7621
|
var expressionName = nameToken[1];
|
|
7652
|
-
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse,
|
|
7622
|
+
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse, paramCount = _b.paramCount;
|
|
7653
7623
|
var node = parse(tokenStream, parseState, firstToken, {
|
|
7654
7624
|
parseExpression: parseExpression,
|
|
7655
7625
|
parseTokensUntilClosingBracket: parseTokensUntilClosingBracket,
|
|
@@ -7658,7 +7628,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7658
7628
|
parseBindings: parseBindings,
|
|
7659
7629
|
parseArgument: parseArgument,
|
|
7660
7630
|
});
|
|
7661
|
-
|
|
7631
|
+
assertNumberOfParams(paramCount, node);
|
|
7662
7632
|
return node;
|
|
7663
7633
|
}
|
|
7664
7634
|
function parsePolishToken(tokenStream, parseState) {
|
|
@@ -7688,47 +7658,12 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7688
7658
|
return parseFnShorthand(tokenStream, parseState);
|
|
7689
7659
|
case 'P_Comment':
|
|
7690
7660
|
return parseComment(tokenStream, parseState);
|
|
7691
|
-
case 'AlgNotation': {
|
|
7692
|
-
parseState.position += 1;
|
|
7693
|
-
parseState.algebraic = true;
|
|
7694
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7695
|
-
var nodes = algebraicParser.parse();
|
|
7696
|
-
assertEndNotationToken(tokenStream.tokens[parseState.position++]);
|
|
7697
|
-
parseState.algebraic = false;
|
|
7698
|
-
if (nodes.length === 1) {
|
|
7699
|
-
return nodes[0];
|
|
7700
|
-
}
|
|
7701
|
-
return {
|
|
7702
|
-
t: AstNodeType.SpecialExpression,
|
|
7703
|
-
n: 'do',
|
|
7704
|
-
p: nodes,
|
|
7705
|
-
token: nodes[0].token,
|
|
7706
|
-
};
|
|
7707
|
-
}
|
|
7708
|
-
case 'PolNotation': {
|
|
7709
|
-
var astNodes = [];
|
|
7710
|
-
parseState.position += 1;
|
|
7711
|
-
do {
|
|
7712
|
-
astNodes.push(parsePolishToken(tokenStream, parseState));
|
|
7713
|
-
} while (!isEndNotationToken(asToken(tokenStream.tokens[parseState.position])));
|
|
7714
|
-
parseState.position += 1;
|
|
7715
|
-
if (astNodes.length === 1) {
|
|
7716
|
-
return astNodes[0];
|
|
7717
|
-
}
|
|
7718
|
-
return {
|
|
7719
|
-
t: AstNodeType.SpecialExpression,
|
|
7720
|
-
n: 'do',
|
|
7721
|
-
p: astNodes,
|
|
7722
|
-
token: astNodes[0].token,
|
|
7723
|
-
};
|
|
7724
|
-
}
|
|
7725
7661
|
case 'P_CollectionAccessor':
|
|
7726
7662
|
case 'P_Modifier':
|
|
7727
7663
|
case 'RParen':
|
|
7728
7664
|
case 'RBracket':
|
|
7729
7665
|
case 'RBrace':
|
|
7730
7666
|
case 'P_Whitespace':
|
|
7731
|
-
case 'EndNotation':
|
|
7732
7667
|
break;
|
|
7733
7668
|
/* v8 ignore next 2 */
|
|
7734
7669
|
default:
|
|
@@ -7738,49 +7673,28 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7738
7673
|
}
|
|
7739
7674
|
|
|
7740
7675
|
function parse(tokenStream) {
|
|
7741
|
-
|
|
7742
|
-
var
|
|
7676
|
+
tokenStream = minifyTokenStream(tokenStream);
|
|
7677
|
+
var algebraic = tokenStream.algebraic;
|
|
7743
7678
|
var ast = {
|
|
7744
7679
|
b: [],
|
|
7745
|
-
hasDebugData:
|
|
7680
|
+
hasDebugData: tokenStream.hasDebugData,
|
|
7746
7681
|
};
|
|
7747
7682
|
var parseState = {
|
|
7748
7683
|
position: 0,
|
|
7749
|
-
algebraic: (_a = safeTokenStream.algebraic) !== null && _a !== void 0 ? _a : false,
|
|
7750
7684
|
parseToken: parseToken,
|
|
7751
7685
|
};
|
|
7752
|
-
|
|
7753
|
-
|
|
7686
|
+
if (algebraic) {
|
|
7687
|
+
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7688
|
+
ast.b = algebraicParser.parse();
|
|
7754
7689
|
}
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
var tokens = tokenStream.tokens.filter(function (token) {
|
|
7759
|
-
if (isP_CommentToken(token)
|
|
7760
|
-
|| isA_CommentToken(token)
|
|
7761
|
-
|| isA_MultiLineCommentToken(token)
|
|
7762
|
-
|| isA_WhitespaceToken(token)
|
|
7763
|
-
|| isP_WhitespaceToken(token)) {
|
|
7764
|
-
return false;
|
|
7690
|
+
else {
|
|
7691
|
+
while (parseState.position < tokenStream.tokens.length) {
|
|
7692
|
+
ast.b.push(parseToken(tokenStream, parseState));
|
|
7765
7693
|
}
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
7694
|
+
}
|
|
7695
|
+
return ast;
|
|
7769
7696
|
}
|
|
7770
7697
|
function parseToken(tokenStream, parseState) {
|
|
7771
|
-
if (parseState.algebraic) {
|
|
7772
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7773
|
-
var nodes = algebraicParser.parse();
|
|
7774
|
-
if (nodes.length === 1) {
|
|
7775
|
-
return nodes[0];
|
|
7776
|
-
}
|
|
7777
|
-
return {
|
|
7778
|
-
t: AstNodeType.SpecialExpression,
|
|
7779
|
-
n: 'do',
|
|
7780
|
-
p: nodes,
|
|
7781
|
-
token: nodes[0].token,
|
|
7782
|
-
};
|
|
7783
|
-
}
|
|
7784
7698
|
return parsePolishToken(tokenStream, parseState);
|
|
7785
7699
|
}
|
|
7786
7700
|
|
|
@@ -7811,15 +7725,6 @@ var tokenizeLBrace = function (input, position) {
|
|
|
7811
7725
|
var tokenizeRBrace = function (input, position) {
|
|
7812
7726
|
return tokenizeSimpleToken('RBrace', '}', input, position);
|
|
7813
7727
|
};
|
|
7814
|
-
var tokenizePolishNotation = function (input, position) {
|
|
7815
|
-
return tokenizeSimpleToken('PolNotation', '$`', input, position);
|
|
7816
|
-
};
|
|
7817
|
-
var tokenizeAlgebraicNotation = function (input, position) {
|
|
7818
|
-
return tokenizeSimpleToken('AlgNotation', '@`', input, position);
|
|
7819
|
-
};
|
|
7820
|
-
var tokenizeEndNotation = function (input, position) {
|
|
7821
|
-
return tokenizeSimpleToken('EndNotation', '`', input, position);
|
|
7822
|
-
};
|
|
7823
7728
|
var tokenizeString = function (input, position) {
|
|
7824
7729
|
if (input[position] !== '"')
|
|
7825
7730
|
return NO_MATCH;
|
|
@@ -7872,9 +7777,6 @@ function tokenizeSimpleToken(type, value, input, position) {
|
|
|
7872
7777
|
return NO_MATCH;
|
|
7873
7778
|
}
|
|
7874
7779
|
var commonTokenizers = [
|
|
7875
|
-
tokenizePolishNotation,
|
|
7876
|
-
tokenizeAlgebraicNotation,
|
|
7877
|
-
tokenizeEndNotation,
|
|
7878
7780
|
tokenizeLParen,
|
|
7879
7781
|
tokenizeRParen,
|
|
7880
7782
|
tokenizeLBracket,
|
|
@@ -8384,7 +8286,6 @@ function getSugar() {
|
|
|
8384
8286
|
|
|
8385
8287
|
function tokenize(input, params) {
|
|
8386
8288
|
var debug = !!params.debug;
|
|
8387
|
-
var notationStack = [params.algebraic ? 'algebraic' : 'polish'];
|
|
8388
8289
|
var position = 0;
|
|
8389
8290
|
var tokenStream = {
|
|
8390
8291
|
tokens: [],
|
|
@@ -8393,7 +8294,7 @@ function tokenize(input, params) {
|
|
|
8393
8294
|
algebraic: !!params.algebraic,
|
|
8394
8295
|
};
|
|
8395
8296
|
while (position < input.length) {
|
|
8396
|
-
var tokenizers =
|
|
8297
|
+
var tokenizers = params.algebraic ? algebraicTokenizers : polishTokenizers;
|
|
8397
8298
|
var tokenDescriptor = getCurrentToken(input, position, tokenizers);
|
|
8398
8299
|
var debugData = debug
|
|
8399
8300
|
? {
|
|
@@ -8410,23 +8311,8 @@ function tokenize(input, params) {
|
|
|
8410
8311
|
addTokenDebugData(token, debugData);
|
|
8411
8312
|
}
|
|
8412
8313
|
tokenStream.tokens.push(token);
|
|
8413
|
-
if (isAlgebraicNotationToken(token)) {
|
|
8414
|
-
notationStack.push('algebraic');
|
|
8415
|
-
}
|
|
8416
|
-
if (isPolishNotationToken(token)) {
|
|
8417
|
-
notationStack.push('polish');
|
|
8418
|
-
}
|
|
8419
|
-
if (isEndNotationToken(token)) {
|
|
8420
|
-
notationStack.pop();
|
|
8421
|
-
if (notationStack.length < 1) {
|
|
8422
|
-
throw new LitsError('Unexpected end directive `.', debugData === null || debugData === void 0 ? void 0 : debugData.sourceCodeInfo);
|
|
8423
|
-
}
|
|
8424
|
-
}
|
|
8425
8314
|
}
|
|
8426
8315
|
}
|
|
8427
|
-
if (notationStack.length > 1) {
|
|
8428
|
-
throw new LitsError('Missing end directive `.', createSourceCodeInfo(input, position, params.filePath));
|
|
8429
|
-
}
|
|
8430
8316
|
applySugar(tokenStream);
|
|
8431
8317
|
return tokenStream;
|
|
8432
8318
|
}
|
|
@@ -8511,9 +8397,6 @@ function untokenizeToken(token) {
|
|
|
8511
8397
|
case 'RBracket': return ']';
|
|
8512
8398
|
case 'LBrace': return '{';
|
|
8513
8399
|
case 'RBrace': return '}';
|
|
8514
|
-
case 'PolNotation': return '$`';
|
|
8515
|
-
case 'AlgNotation': return '@`';
|
|
8516
|
-
case 'EndNotation': return '`';
|
|
8517
8400
|
case 'P_FnShorthand': return '#';
|
|
8518
8401
|
/* v8 ignore next 2 */
|
|
8519
8402
|
default:
|
|
@@ -8638,7 +8521,8 @@ var Lits = /** @class */ (function () {
|
|
|
8638
8521
|
if (tokenizeParams === void 0) { tokenizeParams = {}; }
|
|
8639
8522
|
var debug = this.debug;
|
|
8640
8523
|
var algebraic = this.algebraic;
|
|
8641
|
-
|
|
8524
|
+
var tokenStream = tokenize(program, __assign(__assign({}, tokenizeParams), { debug: debug, algebraic: algebraic }));
|
|
8525
|
+
return tokenizeParams.minify ? minifyTokenStream(tokenStream) : tokenStream;
|
|
8642
8526
|
};
|
|
8643
8527
|
Lits.prototype.parse = function (tokenStream) {
|
|
8644
8528
|
return parse(tokenStream);
|