@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
|
@@ -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 = [
|
|
@@ -769,6 +752,128 @@ function asNumber(value, sourceCodeInfo, options) {
|
|
|
769
752
|
return value;
|
|
770
753
|
}
|
|
771
754
|
|
|
755
|
+
var bitwiseNormalExpression = {
|
|
756
|
+
'<<': {
|
|
757
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
758
|
+
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
759
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
760
|
+
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
761
|
+
return num << count;
|
|
762
|
+
},
|
|
763
|
+
paramCount: 2,
|
|
764
|
+
},
|
|
765
|
+
'>>': {
|
|
766
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
767
|
+
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
768
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
769
|
+
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
770
|
+
return num >> count;
|
|
771
|
+
},
|
|
772
|
+
paramCount: 2,
|
|
773
|
+
},
|
|
774
|
+
'>>>': {
|
|
775
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
776
|
+
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
777
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
778
|
+
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
779
|
+
return num >>> count;
|
|
780
|
+
},
|
|
781
|
+
paramCount: 2,
|
|
782
|
+
},
|
|
783
|
+
'~': {
|
|
784
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
785
|
+
var _b = __read(_a, 1), num = _b[0];
|
|
786
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
787
|
+
return ~num;
|
|
788
|
+
},
|
|
789
|
+
paramCount: 1,
|
|
790
|
+
},
|
|
791
|
+
'&': {
|
|
792
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
793
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
794
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
795
|
+
return rest.reduce(function (result, value) {
|
|
796
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
797
|
+
return result & value;
|
|
798
|
+
}, first);
|
|
799
|
+
},
|
|
800
|
+
paramCount: { min: 2 },
|
|
801
|
+
},
|
|
802
|
+
'&!': {
|
|
803
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
804
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
805
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
806
|
+
return rest.reduce(function (result, value) {
|
|
807
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
808
|
+
return result & ~value;
|
|
809
|
+
}, first);
|
|
810
|
+
},
|
|
811
|
+
paramCount: { min: 2 },
|
|
812
|
+
},
|
|
813
|
+
'|': {
|
|
814
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
815
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
816
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
817
|
+
return rest.reduce(function (result, value) {
|
|
818
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
819
|
+
return result | value;
|
|
820
|
+
}, first);
|
|
821
|
+
},
|
|
822
|
+
paramCount: { min: 2 },
|
|
823
|
+
},
|
|
824
|
+
'^': {
|
|
825
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
826
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
827
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
828
|
+
return rest.reduce(function (result, value) {
|
|
829
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
830
|
+
return result ^ value;
|
|
831
|
+
}, first);
|
|
832
|
+
},
|
|
833
|
+
paramCount: { min: 2 },
|
|
834
|
+
},
|
|
835
|
+
'bit_flip': {
|
|
836
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
837
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
838
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
839
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
840
|
+
var mask = 1 << index;
|
|
841
|
+
return (num ^= mask);
|
|
842
|
+
},
|
|
843
|
+
paramCount: 2,
|
|
844
|
+
},
|
|
845
|
+
'bit_set': {
|
|
846
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
847
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
848
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
849
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
850
|
+
var mask = 1 << index;
|
|
851
|
+
return (num |= mask);
|
|
852
|
+
},
|
|
853
|
+
paramCount: 2,
|
|
854
|
+
},
|
|
855
|
+
'bit_clear': {
|
|
856
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
857
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
858
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
859
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
860
|
+
var mask = 1 << index;
|
|
861
|
+
return (num &= ~mask);
|
|
862
|
+
},
|
|
863
|
+
paramCount: 2,
|
|
864
|
+
},
|
|
865
|
+
'bit_test': {
|
|
866
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
867
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
868
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
869
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
870
|
+
var mask = 1 << index;
|
|
871
|
+
return !!(num & mask);
|
|
872
|
+
},
|
|
873
|
+
paramCount: 2,
|
|
874
|
+
},
|
|
875
|
+
};
|
|
876
|
+
|
|
772
877
|
function getAssertionError(typeName, value, sourceCodeInfo) {
|
|
773
878
|
return new LitsError("Expected ".concat(typeName, ", got ").concat(valueToString(value), "."), getSourceCodeInfo(value, sourceCodeInfo));
|
|
774
879
|
}
|
|
@@ -920,20 +1025,6 @@ function withoutCommentNodes(astNodes) {
|
|
|
920
1025
|
return astNodes.filter(function (n) { return n.t !== AstNodeType.Comment; });
|
|
921
1026
|
}
|
|
922
1027
|
|
|
923
|
-
function assertEvenNumberOfParams(node) {
|
|
924
|
-
var _a;
|
|
925
|
-
var length = withoutCommentNodes(node.p).length;
|
|
926
|
-
if (length % 2 !== 0) {
|
|
927
|
-
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);
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
|
-
function assertOddNumberOfParams(node) {
|
|
931
|
-
var _a;
|
|
932
|
-
var length = withoutCommentNodes(node.p).length;
|
|
933
|
-
if (length % 2 !== 1) {
|
|
934
|
-
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);
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
1028
|
function assertNumberOfParams(count, node) {
|
|
938
1029
|
var _a, _b;
|
|
939
1030
|
assertCount({
|
|
@@ -965,9 +1056,17 @@ function assertCount(_a) {
|
|
|
965
1056
|
}
|
|
966
1057
|
}
|
|
967
1058
|
else {
|
|
968
|
-
var min = count.min, max = count.max;
|
|
969
|
-
if (
|
|
970
|
-
|
|
1059
|
+
var min = count.min, max = count.max, even = count.even, odd = count.odd;
|
|
1060
|
+
if (even) {
|
|
1061
|
+
if (length % 2 !== 0) {
|
|
1062
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an even number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
if (odd) {
|
|
1066
|
+
if (length % 2 !== 1) {
|
|
1067
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an odd number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
971
1070
|
if (typeof min === 'number' && length < min) {
|
|
972
1071
|
throw new LitsError("Wrong number of arguments to \"".concat(name, "\", expected at least ").concat(min, ", got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
973
1072
|
}
|
|
@@ -977,128 +1076,6 @@ function assertCount(_a) {
|
|
|
977
1076
|
}
|
|
978
1077
|
}
|
|
979
1078
|
|
|
980
|
-
var bitwiseNormalExpression = {
|
|
981
|
-
'<<': {
|
|
982
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
983
|
-
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
984
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
985
|
-
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
986
|
-
return num << count;
|
|
987
|
-
},
|
|
988
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
989
|
-
},
|
|
990
|
-
'>>': {
|
|
991
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
992
|
-
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
993
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
994
|
-
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
995
|
-
return num >> count;
|
|
996
|
-
},
|
|
997
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
998
|
-
},
|
|
999
|
-
'>>>': {
|
|
1000
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1001
|
-
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
1002
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1003
|
-
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1004
|
-
return num >>> count;
|
|
1005
|
-
},
|
|
1006
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1007
|
-
},
|
|
1008
|
-
'~': {
|
|
1009
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1010
|
-
var _b = __read(_a, 1), num = _b[0];
|
|
1011
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1012
|
-
return ~num;
|
|
1013
|
-
},
|
|
1014
|
-
validate: function (node) { return assertNumberOfParams(1, node); },
|
|
1015
|
-
},
|
|
1016
|
-
'&': {
|
|
1017
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1018
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1019
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1020
|
-
return rest.reduce(function (result, value) {
|
|
1021
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1022
|
-
return result & value;
|
|
1023
|
-
}, first);
|
|
1024
|
-
},
|
|
1025
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1026
|
-
},
|
|
1027
|
-
'&!': {
|
|
1028
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1029
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1030
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1031
|
-
return rest.reduce(function (result, value) {
|
|
1032
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1033
|
-
return result & ~value;
|
|
1034
|
-
}, first);
|
|
1035
|
-
},
|
|
1036
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1037
|
-
},
|
|
1038
|
-
'|': {
|
|
1039
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1040
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1041
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1042
|
-
return rest.reduce(function (result, value) {
|
|
1043
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1044
|
-
return result | value;
|
|
1045
|
-
}, first);
|
|
1046
|
-
},
|
|
1047
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1048
|
-
},
|
|
1049
|
-
'^': {
|
|
1050
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1051
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1052
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1053
|
-
return rest.reduce(function (result, value) {
|
|
1054
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1055
|
-
return result ^ value;
|
|
1056
|
-
}, first);
|
|
1057
|
-
},
|
|
1058
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1059
|
-
},
|
|
1060
|
-
'bit_flip': {
|
|
1061
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1062
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1063
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1064
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1065
|
-
var mask = 1 << index;
|
|
1066
|
-
return (num ^= mask);
|
|
1067
|
-
},
|
|
1068
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1069
|
-
},
|
|
1070
|
-
'bit_set': {
|
|
1071
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1072
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1073
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1074
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1075
|
-
var mask = 1 << index;
|
|
1076
|
-
return (num |= mask);
|
|
1077
|
-
},
|
|
1078
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1079
|
-
},
|
|
1080
|
-
'bit_clear': {
|
|
1081
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1082
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1083
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1084
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1085
|
-
var mask = 1 << index;
|
|
1086
|
-
return (num &= ~mask);
|
|
1087
|
-
},
|
|
1088
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1089
|
-
},
|
|
1090
|
-
'bit_test': {
|
|
1091
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1092
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1093
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1094
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1095
|
-
var mask = 1 << index;
|
|
1096
|
-
return !!(num & mask);
|
|
1097
|
-
},
|
|
1098
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1099
|
-
},
|
|
1100
|
-
};
|
|
1101
|
-
|
|
1102
1079
|
function isLitsFunction(value) {
|
|
1103
1080
|
if (value === null || typeof value !== 'object')
|
|
1104
1081
|
return false;
|
|
@@ -1479,7 +1456,7 @@ var collectionNormalExpression = {
|
|
|
1479
1456
|
var result = get(coll, key);
|
|
1480
1457
|
return result === undefined ? defaultValue : result;
|
|
1481
1458
|
},
|
|
1482
|
-
|
|
1459
|
+
paramCount: { min: 2, max: 3 },
|
|
1483
1460
|
},
|
|
1484
1461
|
'get_in': {
|
|
1485
1462
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1514,7 +1491,7 @@ var collectionNormalExpression = {
|
|
|
1514
1491
|
}
|
|
1515
1492
|
return coll;
|
|
1516
1493
|
},
|
|
1517
|
-
|
|
1494
|
+
paramCount: { min: 2, max: 3 },
|
|
1518
1495
|
},
|
|
1519
1496
|
'count': {
|
|
1520
1497
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1528,7 +1505,7 @@ var collectionNormalExpression = {
|
|
|
1528
1505
|
return coll.length;
|
|
1529
1506
|
return Object.keys(coll).length;
|
|
1530
1507
|
},
|
|
1531
|
-
|
|
1508
|
+
paramCount: 1,
|
|
1532
1509
|
},
|
|
1533
1510
|
'contains?': {
|
|
1534
1511
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1545,7 +1522,7 @@ var collectionNormalExpression = {
|
|
|
1545
1522
|
}
|
|
1546
1523
|
return !!Object.getOwnPropertyDescriptor(coll, key);
|
|
1547
1524
|
},
|
|
1548
|
-
|
|
1525
|
+
paramCount: 2,
|
|
1549
1526
|
},
|
|
1550
1527
|
'has?': {
|
|
1551
1528
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1566,7 +1543,7 @@ var collectionNormalExpression = {
|
|
|
1566
1543
|
}
|
|
1567
1544
|
return Object.values(coll).includes(value);
|
|
1568
1545
|
},
|
|
1569
|
-
|
|
1546
|
+
paramCount: 2,
|
|
1570
1547
|
},
|
|
1571
1548
|
'has_some?': {
|
|
1572
1549
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1626,7 +1603,7 @@ var collectionNormalExpression = {
|
|
|
1626
1603
|
}
|
|
1627
1604
|
return false;
|
|
1628
1605
|
},
|
|
1629
|
-
|
|
1606
|
+
paramCount: 2,
|
|
1630
1607
|
},
|
|
1631
1608
|
'has_every?': {
|
|
1632
1609
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1688,7 +1665,7 @@ var collectionNormalExpression = {
|
|
|
1688
1665
|
}
|
|
1689
1666
|
return true;
|
|
1690
1667
|
},
|
|
1691
|
-
|
|
1668
|
+
paramCount: 2,
|
|
1692
1669
|
},
|
|
1693
1670
|
'assoc': {
|
|
1694
1671
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1698,7 +1675,7 @@ var collectionNormalExpression = {
|
|
|
1698
1675
|
assertAny(value, sourceCodeInfo);
|
|
1699
1676
|
return assoc(coll, key, value, sourceCodeInfo);
|
|
1700
1677
|
},
|
|
1701
|
-
|
|
1678
|
+
paramCount: 3,
|
|
1702
1679
|
},
|
|
1703
1680
|
'assoc_in': {
|
|
1704
1681
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1723,7 +1700,7 @@ var collectionNormalExpression = {
|
|
|
1723
1700
|
}
|
|
1724
1701
|
return coll;
|
|
1725
1702
|
},
|
|
1726
|
-
|
|
1703
|
+
paramCount: 3,
|
|
1727
1704
|
},
|
|
1728
1705
|
'update': {
|
|
1729
1706
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1734,7 +1711,7 @@ var collectionNormalExpression = {
|
|
|
1734
1711
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1735
1712
|
return update(coll, key, fn, params, contextStack, executeFunction, sourceCodeInfo);
|
|
1736
1713
|
},
|
|
1737
|
-
|
|
1714
|
+
paramCount: { min: 3 },
|
|
1738
1715
|
},
|
|
1739
1716
|
'update_in': {
|
|
1740
1717
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1760,7 +1737,7 @@ var collectionNormalExpression = {
|
|
|
1760
1737
|
}
|
|
1761
1738
|
return coll;
|
|
1762
1739
|
},
|
|
1763
|
-
|
|
1740
|
+
paramCount: { min: 3 },
|
|
1764
1741
|
},
|
|
1765
1742
|
'concat': {
|
|
1766
1743
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1784,7 +1761,7 @@ var collectionNormalExpression = {
|
|
|
1784
1761
|
}, {});
|
|
1785
1762
|
}
|
|
1786
1763
|
},
|
|
1787
|
-
|
|
1764
|
+
paramCount: { min: 1 },
|
|
1788
1765
|
},
|
|
1789
1766
|
'not_empty': {
|
|
1790
1767
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1798,7 +1775,7 @@ var collectionNormalExpression = {
|
|
|
1798
1775
|
return coll.length > 0 ? coll : null;
|
|
1799
1776
|
return Object.keys(coll).length > 0 ? coll : null;
|
|
1800
1777
|
},
|
|
1801
|
-
|
|
1778
|
+
paramCount: 1,
|
|
1802
1779
|
},
|
|
1803
1780
|
'every?': {
|
|
1804
1781
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1812,7 +1789,7 @@ var collectionNormalExpression = {
|
|
|
1812
1789
|
return coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1813
1790
|
return Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1814
1791
|
},
|
|
1815
|
-
|
|
1792
|
+
paramCount: 2,
|
|
1816
1793
|
},
|
|
1817
1794
|
'any?': {
|
|
1818
1795
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1826,7 +1803,7 @@ var collectionNormalExpression = {
|
|
|
1826
1803
|
return coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1827
1804
|
return Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1828
1805
|
},
|
|
1829
|
-
|
|
1806
|
+
paramCount: 2,
|
|
1830
1807
|
},
|
|
1831
1808
|
'not_any?': {
|
|
1832
1809
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1840,7 +1817,7 @@ var collectionNormalExpression = {
|
|
|
1840
1817
|
return !coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1841
1818
|
return !Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1842
1819
|
},
|
|
1843
|
-
|
|
1820
|
+
paramCount: 2,
|
|
1844
1821
|
},
|
|
1845
1822
|
'not_every?': {
|
|
1846
1823
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1854,13 +1831,14 @@ var collectionNormalExpression = {
|
|
|
1854
1831
|
return !coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1855
1832
|
return !Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1856
1833
|
},
|
|
1857
|
-
|
|
1834
|
+
paramCount: 2,
|
|
1858
1835
|
},
|
|
1859
1836
|
};
|
|
1860
1837
|
|
|
1861
1838
|
var arrayNormalExpression = {
|
|
1862
1839
|
array: {
|
|
1863
1840
|
evaluate: function (params) { return params; },
|
|
1841
|
+
paramCount: {},
|
|
1864
1842
|
},
|
|
1865
1843
|
range: {
|
|
1866
1844
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1898,7 +1876,7 @@ var arrayNormalExpression = {
|
|
|
1898
1876
|
result.push(i);
|
|
1899
1877
|
return result;
|
|
1900
1878
|
},
|
|
1901
|
-
|
|
1879
|
+
paramCount: { min: 1, max: 3 },
|
|
1902
1880
|
},
|
|
1903
1881
|
repeat: {
|
|
1904
1882
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1909,7 +1887,7 @@ var arrayNormalExpression = {
|
|
|
1909
1887
|
result.push(value);
|
|
1910
1888
|
return result;
|
|
1911
1889
|
},
|
|
1912
|
-
|
|
1890
|
+
paramCount: 2,
|
|
1913
1891
|
},
|
|
1914
1892
|
flatten: {
|
|
1915
1893
|
evaluate: function (_a) {
|
|
@@ -1918,7 +1896,7 @@ var arrayNormalExpression = {
|
|
|
1918
1896
|
return [];
|
|
1919
1897
|
return seq.flat(Number.POSITIVE_INFINITY);
|
|
1920
1898
|
},
|
|
1921
|
-
|
|
1899
|
+
paramCount: 1,
|
|
1922
1900
|
},
|
|
1923
1901
|
mapcat: {
|
|
1924
1902
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1928,7 +1906,7 @@ var arrayNormalExpression = {
|
|
|
1928
1906
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1929
1907
|
return arr.map(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }).flat(1);
|
|
1930
1908
|
},
|
|
1931
|
-
|
|
1909
|
+
paramCount: 2,
|
|
1932
1910
|
},
|
|
1933
1911
|
};
|
|
1934
1912
|
|
|
@@ -1943,7 +1921,7 @@ var sequenceNormalExpression = {
|
|
|
1943
1921
|
assertSeq(seq, sourceCodeInfo);
|
|
1944
1922
|
return i >= 0 && i < seq.length ? toAny(seq[i]) : defaultValue;
|
|
1945
1923
|
},
|
|
1946
|
-
|
|
1924
|
+
paramCount: { min: 2, max: 3 },
|
|
1947
1925
|
},
|
|
1948
1926
|
'filter': {
|
|
1949
1927
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1958,7 +1936,7 @@ var sequenceNormalExpression = {
|
|
|
1958
1936
|
.filter(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
1959
1937
|
.join('');
|
|
1960
1938
|
},
|
|
1961
|
-
|
|
1939
|
+
paramCount: 2,
|
|
1962
1940
|
},
|
|
1963
1941
|
'first': {
|
|
1964
1942
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1968,7 +1946,7 @@ var sequenceNormalExpression = {
|
|
|
1968
1946
|
assertSeq(array, sourceCodeInfo);
|
|
1969
1947
|
return toAny(array[0]);
|
|
1970
1948
|
},
|
|
1971
|
-
|
|
1949
|
+
paramCount: 1,
|
|
1972
1950
|
},
|
|
1973
1951
|
'last': {
|
|
1974
1952
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1978,7 +1956,7 @@ var sequenceNormalExpression = {
|
|
|
1978
1956
|
assertSeq(array, sourceCodeInfo);
|
|
1979
1957
|
return toAny(array[array.length - 1]);
|
|
1980
1958
|
},
|
|
1981
|
-
|
|
1959
|
+
paramCount: 1,
|
|
1982
1960
|
},
|
|
1983
1961
|
'map': {
|
|
1984
1962
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2000,7 +1978,7 @@ var sequenceNormalExpression = {
|
|
|
2000
1978
|
.join('');
|
|
2001
1979
|
}
|
|
2002
1980
|
},
|
|
2003
|
-
|
|
1981
|
+
paramCount: 2,
|
|
2004
1982
|
},
|
|
2005
1983
|
'pop': {
|
|
2006
1984
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2011,7 +1989,7 @@ var sequenceNormalExpression = {
|
|
|
2011
1989
|
}
|
|
2012
1990
|
return seq.slice(0, seq.length - 1);
|
|
2013
1991
|
},
|
|
2014
|
-
|
|
1992
|
+
paramCount: 1,
|
|
2015
1993
|
},
|
|
2016
1994
|
'position': {
|
|
2017
1995
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2030,7 +2008,7 @@ var sequenceNormalExpression = {
|
|
|
2030
2008
|
return index !== -1 ? index : null;
|
|
2031
2009
|
}
|
|
2032
2010
|
},
|
|
2033
|
-
|
|
2011
|
+
paramCount: 2,
|
|
2034
2012
|
},
|
|
2035
2013
|
'index_of': {
|
|
2036
2014
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2049,7 +2027,7 @@ var sequenceNormalExpression = {
|
|
|
2049
2027
|
return index !== -1 ? index : null;
|
|
2050
2028
|
}
|
|
2051
2029
|
},
|
|
2052
|
-
|
|
2030
|
+
paramCount: 2,
|
|
2053
2031
|
},
|
|
2054
2032
|
'last_index_of': {
|
|
2055
2033
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2068,7 +2046,7 @@ var sequenceNormalExpression = {
|
|
|
2068
2046
|
return index !== -1 ? index : null;
|
|
2069
2047
|
}
|
|
2070
2048
|
},
|
|
2071
|
-
|
|
2049
|
+
paramCount: 2,
|
|
2072
2050
|
},
|
|
2073
2051
|
'push': {
|
|
2074
2052
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2082,7 +2060,7 @@ var sequenceNormalExpression = {
|
|
|
2082
2060
|
return __spreadArray(__spreadArray([], __read(seq), false), __read(values), false);
|
|
2083
2061
|
}
|
|
2084
2062
|
},
|
|
2085
|
-
|
|
2063
|
+
paramCount: { min: 2 },
|
|
2086
2064
|
},
|
|
2087
2065
|
'reductions': {
|
|
2088
2066
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2143,7 +2121,7 @@ var sequenceNormalExpression = {
|
|
|
2143
2121
|
}
|
|
2144
2122
|
}
|
|
2145
2123
|
},
|
|
2146
|
-
|
|
2124
|
+
paramCount: { min: 2, max: 3 },
|
|
2147
2125
|
},
|
|
2148
2126
|
'reduce': {
|
|
2149
2127
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2190,7 +2168,7 @@ var sequenceNormalExpression = {
|
|
|
2190
2168
|
}
|
|
2191
2169
|
}
|
|
2192
2170
|
},
|
|
2193
|
-
|
|
2171
|
+
paramCount: { min: 2, max: 3 },
|
|
2194
2172
|
},
|
|
2195
2173
|
'reduce_right': {
|
|
2196
2174
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2238,7 +2216,7 @@ var sequenceNormalExpression = {
|
|
|
2238
2216
|
}
|
|
2239
2217
|
}
|
|
2240
2218
|
},
|
|
2241
|
-
|
|
2219
|
+
paramCount: { min: 2, max: 3 },
|
|
2242
2220
|
},
|
|
2243
2221
|
'rest': {
|
|
2244
2222
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2251,7 +2229,7 @@ var sequenceNormalExpression = {
|
|
|
2251
2229
|
}
|
|
2252
2230
|
return seq.substring(1);
|
|
2253
2231
|
},
|
|
2254
|
-
|
|
2232
|
+
paramCount: 1,
|
|
2255
2233
|
},
|
|
2256
2234
|
'nthrest': {
|
|
2257
2235
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2263,7 +2241,7 @@ var sequenceNormalExpression = {
|
|
|
2263
2241
|
return seq.slice(integerCount);
|
|
2264
2242
|
return seq.substring(integerCount);
|
|
2265
2243
|
},
|
|
2266
|
-
|
|
2244
|
+
paramCount: 2,
|
|
2267
2245
|
},
|
|
2268
2246
|
'next': {
|
|
2269
2247
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2278,7 +2256,7 @@ var sequenceNormalExpression = {
|
|
|
2278
2256
|
return null;
|
|
2279
2257
|
return seq.substring(1);
|
|
2280
2258
|
},
|
|
2281
|
-
|
|
2259
|
+
paramCount: 1,
|
|
2282
2260
|
},
|
|
2283
2261
|
'nthnext': {
|
|
2284
2262
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2292,7 +2270,7 @@ var sequenceNormalExpression = {
|
|
|
2292
2270
|
return seq.slice(integerCount);
|
|
2293
2271
|
return seq.substring(integerCount);
|
|
2294
2272
|
},
|
|
2295
|
-
|
|
2273
|
+
paramCount: 2,
|
|
2296
2274
|
},
|
|
2297
2275
|
'reverse': {
|
|
2298
2276
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2304,7 +2282,7 @@ var sequenceNormalExpression = {
|
|
|
2304
2282
|
return __spreadArray([], __read(seq), false).reverse();
|
|
2305
2283
|
return seq.split('').reverse().join('');
|
|
2306
2284
|
},
|
|
2307
|
-
|
|
2285
|
+
paramCount: 1,
|
|
2308
2286
|
},
|
|
2309
2287
|
'second': {
|
|
2310
2288
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2314,7 +2292,7 @@ var sequenceNormalExpression = {
|
|
|
2314
2292
|
assertSeq(seq, sourceCodeInfo);
|
|
2315
2293
|
return toAny(seq[1]);
|
|
2316
2294
|
},
|
|
2317
|
-
|
|
2295
|
+
paramCount: 1,
|
|
2318
2296
|
},
|
|
2319
2297
|
'shift': {
|
|
2320
2298
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2326,7 +2304,7 @@ var sequenceNormalExpression = {
|
|
|
2326
2304
|
copy.shift();
|
|
2327
2305
|
return copy;
|
|
2328
2306
|
},
|
|
2329
|
-
|
|
2307
|
+
paramCount: 1,
|
|
2330
2308
|
},
|
|
2331
2309
|
'slice': {
|
|
2332
2310
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2340,7 +2318,7 @@ var sequenceNormalExpression = {
|
|
|
2340
2318
|
assertNumber(to, sourceCodeInfo, { integer: true });
|
|
2341
2319
|
return seq.slice(from, to);
|
|
2342
2320
|
},
|
|
2343
|
-
|
|
2321
|
+
paramCount: { min: 1, max: 3 },
|
|
2344
2322
|
},
|
|
2345
2323
|
'some': {
|
|
2346
2324
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2357,7 +2335,7 @@ var sequenceNormalExpression = {
|
|
|
2357
2335
|
return (_c = seq.split('').find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })) !== null && _c !== void 0 ? _c : null;
|
|
2358
2336
|
return toAny(seq.find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }));
|
|
2359
2337
|
},
|
|
2360
|
-
|
|
2338
|
+
paramCount: 2,
|
|
2361
2339
|
},
|
|
2362
2340
|
'sort': {
|
|
2363
2341
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2395,7 +2373,7 @@ var sequenceNormalExpression = {
|
|
|
2395
2373
|
}
|
|
2396
2374
|
return result;
|
|
2397
2375
|
},
|
|
2398
|
-
|
|
2376
|
+
paramCount: { min: 1, max: 2 },
|
|
2399
2377
|
},
|
|
2400
2378
|
'sort_by': {
|
|
2401
2379
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2446,7 +2424,7 @@ var sequenceNormalExpression = {
|
|
|
2446
2424
|
}
|
|
2447
2425
|
return result;
|
|
2448
2426
|
},
|
|
2449
|
-
|
|
2427
|
+
paramCount: { min: 2, max: 3 },
|
|
2450
2428
|
},
|
|
2451
2429
|
'take': {
|
|
2452
2430
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2456,7 +2434,7 @@ var sequenceNormalExpression = {
|
|
|
2456
2434
|
var num = Math.max(Math.ceil(n), 0);
|
|
2457
2435
|
return input.slice(0, num);
|
|
2458
2436
|
},
|
|
2459
|
-
|
|
2437
|
+
paramCount: 2,
|
|
2460
2438
|
},
|
|
2461
2439
|
'take_last': {
|
|
2462
2440
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2467,7 +2445,7 @@ var sequenceNormalExpression = {
|
|
|
2467
2445
|
var from = array.length - num;
|
|
2468
2446
|
return array.slice(from);
|
|
2469
2447
|
},
|
|
2470
|
-
|
|
2448
|
+
paramCount: 2,
|
|
2471
2449
|
},
|
|
2472
2450
|
'take_while': {
|
|
2473
2451
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2495,7 +2473,7 @@ var sequenceNormalExpression = {
|
|
|
2495
2473
|
}
|
|
2496
2474
|
return typeof seq === 'string' ? result.join('') : result;
|
|
2497
2475
|
},
|
|
2498
|
-
|
|
2476
|
+
paramCount: 2,
|
|
2499
2477
|
},
|
|
2500
2478
|
'drop': {
|
|
2501
2479
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2505,7 +2483,7 @@ var sequenceNormalExpression = {
|
|
|
2505
2483
|
assertSeq(input, sourceCodeInfo);
|
|
2506
2484
|
return input.slice(num);
|
|
2507
2485
|
},
|
|
2508
|
-
|
|
2486
|
+
paramCount: 2,
|
|
2509
2487
|
},
|
|
2510
2488
|
'drop_last': {
|
|
2511
2489
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2516,7 +2494,7 @@ var sequenceNormalExpression = {
|
|
|
2516
2494
|
var from = array.length - num;
|
|
2517
2495
|
return array.slice(0, from);
|
|
2518
2496
|
},
|
|
2519
|
-
|
|
2497
|
+
paramCount: 2,
|
|
2520
2498
|
},
|
|
2521
2499
|
'drop_while': {
|
|
2522
2500
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2532,7 +2510,7 @@ var sequenceNormalExpression = {
|
|
|
2532
2510
|
var from = charArray.findIndex(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
2533
2511
|
return charArray.slice(from).join('');
|
|
2534
2512
|
},
|
|
2535
|
-
|
|
2513
|
+
paramCount: 2,
|
|
2536
2514
|
},
|
|
2537
2515
|
'unshift': {
|
|
2538
2516
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2546,7 +2524,7 @@ var sequenceNormalExpression = {
|
|
|
2546
2524
|
copy.unshift.apply(copy, __spreadArray([], __read(values), false));
|
|
2547
2525
|
return copy;
|
|
2548
2526
|
},
|
|
2549
|
-
|
|
2527
|
+
paramCount: { min: 2 },
|
|
2550
2528
|
},
|
|
2551
2529
|
'distinct': {
|
|
2552
2530
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2556,7 +2534,7 @@ var sequenceNormalExpression = {
|
|
|
2556
2534
|
return Array.from(new Set(input));
|
|
2557
2535
|
return Array.from(new Set(input.split(''))).join('');
|
|
2558
2536
|
},
|
|
2559
|
-
|
|
2537
|
+
paramCount: 1,
|
|
2560
2538
|
},
|
|
2561
2539
|
'remove': {
|
|
2562
2540
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2571,7 +2549,7 @@ var sequenceNormalExpression = {
|
|
|
2571
2549
|
.filter(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
2572
2550
|
.join('');
|
|
2573
2551
|
},
|
|
2574
|
-
|
|
2552
|
+
paramCount: 2,
|
|
2575
2553
|
},
|
|
2576
2554
|
'remove_at': {
|
|
2577
2555
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2588,7 +2566,7 @@ var sequenceNormalExpression = {
|
|
|
2588
2566
|
}
|
|
2589
2567
|
return "".concat(input.substring(0, index)).concat(input.substring(index + 1));
|
|
2590
2568
|
},
|
|
2591
|
-
|
|
2569
|
+
paramCount: 2,
|
|
2592
2570
|
},
|
|
2593
2571
|
'split_at': {
|
|
2594
2572
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2598,7 +2576,7 @@ var sequenceNormalExpression = {
|
|
|
2598
2576
|
assertSeq(seq, sourceCodeInfo);
|
|
2599
2577
|
return [seq.slice(0, intPos), seq.slice(intPos)];
|
|
2600
2578
|
},
|
|
2601
|
-
|
|
2579
|
+
paramCount: 2,
|
|
2602
2580
|
},
|
|
2603
2581
|
'split_with': {
|
|
2604
2582
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2613,7 +2591,7 @@ var sequenceNormalExpression = {
|
|
|
2613
2591
|
return [seq, seqIsArray ? [] : ''];
|
|
2614
2592
|
return [seq.slice(0, index), seq.slice(index)];
|
|
2615
2593
|
},
|
|
2616
|
-
|
|
2594
|
+
paramCount: 2,
|
|
2617
2595
|
},
|
|
2618
2596
|
'frequencies': {
|
|
2619
2597
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2629,7 +2607,7 @@ var sequenceNormalExpression = {
|
|
|
2629
2607
|
return result;
|
|
2630
2608
|
}, {});
|
|
2631
2609
|
},
|
|
2632
|
-
|
|
2610
|
+
paramCount: 1,
|
|
2633
2611
|
},
|
|
2634
2612
|
'group_by': {
|
|
2635
2613
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2647,7 +2625,7 @@ var sequenceNormalExpression = {
|
|
|
2647
2625
|
return result;
|
|
2648
2626
|
}, {});
|
|
2649
2627
|
},
|
|
2650
|
-
|
|
2628
|
+
paramCount: 2,
|
|
2651
2629
|
},
|
|
2652
2630
|
'partition': {
|
|
2653
2631
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2659,7 +2637,7 @@ var sequenceNormalExpression = {
|
|
|
2659
2637
|
: undefined;
|
|
2660
2638
|
return partition(n, step, seq, pad, sourceCodeInfo);
|
|
2661
2639
|
},
|
|
2662
|
-
|
|
2640
|
+
paramCount: { min: 2, max: 4 },
|
|
2663
2641
|
},
|
|
2664
2642
|
'partition_all': {
|
|
2665
2643
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2668,7 +2646,7 @@ var sequenceNormalExpression = {
|
|
|
2668
2646
|
var step = params.length === 3 ? toNonNegativeInteger(asNumber(params[2], sourceCodeInfo)) : n;
|
|
2669
2647
|
return partition(n, step, seq, [], sourceCodeInfo);
|
|
2670
2648
|
},
|
|
2671
|
-
|
|
2649
|
+
paramCount: { min: 2, max: 3 },
|
|
2672
2650
|
},
|
|
2673
2651
|
'partition_by': {
|
|
2674
2652
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2689,7 +2667,7 @@ var sequenceNormalExpression = {
|
|
|
2689
2667
|
}, []);
|
|
2690
2668
|
return isStringSeq ? result.map(function (elem) { return elem.join(''); }) : result;
|
|
2691
2669
|
},
|
|
2692
|
-
|
|
2670
|
+
paramCount: 2,
|
|
2693
2671
|
},
|
|
2694
2672
|
'ends_with?': {
|
|
2695
2673
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2701,7 +2679,7 @@ var sequenceNormalExpression = {
|
|
|
2701
2679
|
}
|
|
2702
2680
|
return str.at(-1) === search;
|
|
2703
2681
|
},
|
|
2704
|
-
|
|
2682
|
+
paramCount: 2,
|
|
2705
2683
|
},
|
|
2706
2684
|
'starts_with?': {
|
|
2707
2685
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2713,7 +2691,7 @@ var sequenceNormalExpression = {
|
|
|
2713
2691
|
}
|
|
2714
2692
|
return str[0] === search;
|
|
2715
2693
|
},
|
|
2716
|
-
|
|
2694
|
+
paramCount: 2,
|
|
2717
2695
|
},
|
|
2718
2696
|
'interleave': {
|
|
2719
2697
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2751,7 +2729,7 @@ var sequenceNormalExpression = {
|
|
|
2751
2729
|
}
|
|
2752
2730
|
return isStringSeq ? result.join('') : result;
|
|
2753
2731
|
},
|
|
2754
|
-
|
|
2732
|
+
paramCount: { min: 1 },
|
|
2755
2733
|
},
|
|
2756
2734
|
'interpose': {
|
|
2757
2735
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2770,7 +2748,7 @@ var sequenceNormalExpression = {
|
|
|
2770
2748
|
result.push(seq[seq.length - 1]);
|
|
2771
2749
|
return result;
|
|
2772
2750
|
},
|
|
2773
|
-
|
|
2751
|
+
paramCount: 2,
|
|
2774
2752
|
},
|
|
2775
2753
|
};
|
|
2776
2754
|
function partition(n, step, seq, pad, sourceCodeInfo) {
|
|
@@ -2808,7 +2786,7 @@ var mathNormalExpression = {
|
|
|
2808
2786
|
assertNumber(first, sourceCodeInfo);
|
|
2809
2787
|
return first + 1;
|
|
2810
2788
|
},
|
|
2811
|
-
|
|
2789
|
+
paramCount: 1,
|
|
2812
2790
|
},
|
|
2813
2791
|
'dec': {
|
|
2814
2792
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2816,7 +2794,7 @@ var mathNormalExpression = {
|
|
|
2816
2794
|
assertNumber(first, sourceCodeInfo);
|
|
2817
2795
|
return first - 1;
|
|
2818
2796
|
},
|
|
2819
|
-
|
|
2797
|
+
paramCount: 1,
|
|
2820
2798
|
},
|
|
2821
2799
|
'+': {
|
|
2822
2800
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2825,6 +2803,7 @@ var mathNormalExpression = {
|
|
|
2825
2803
|
return result + param;
|
|
2826
2804
|
}, 0);
|
|
2827
2805
|
},
|
|
2806
|
+
paramCount: {},
|
|
2828
2807
|
},
|
|
2829
2808
|
'*': {
|
|
2830
2809
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2833,6 +2812,7 @@ var mathNormalExpression = {
|
|
|
2833
2812
|
return result * param;
|
|
2834
2813
|
}, 1);
|
|
2835
2814
|
},
|
|
2815
|
+
paramCount: {},
|
|
2836
2816
|
},
|
|
2837
2817
|
'/': {
|
|
2838
2818
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2849,6 +2829,7 @@ var mathNormalExpression = {
|
|
|
2849
2829
|
return result / param;
|
|
2850
2830
|
}, first);
|
|
2851
2831
|
},
|
|
2832
|
+
paramCount: {},
|
|
2852
2833
|
},
|
|
2853
2834
|
'-': {
|
|
2854
2835
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2863,6 +2844,7 @@ var mathNormalExpression = {
|
|
|
2863
2844
|
return result - param;
|
|
2864
2845
|
}, first);
|
|
2865
2846
|
},
|
|
2847
|
+
paramCount: {},
|
|
2866
2848
|
},
|
|
2867
2849
|
'quot': {
|
|
2868
2850
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2872,7 +2854,7 @@ var mathNormalExpression = {
|
|
|
2872
2854
|
var quotient = Math.trunc(dividend / divisor);
|
|
2873
2855
|
return quotient;
|
|
2874
2856
|
},
|
|
2875
|
-
|
|
2857
|
+
paramCount: 2,
|
|
2876
2858
|
},
|
|
2877
2859
|
'mod': {
|
|
2878
2860
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2882,7 +2864,7 @@ var mathNormalExpression = {
|
|
|
2882
2864
|
var quotient = Math.floor(dividend / divisor);
|
|
2883
2865
|
return dividend - divisor * quotient;
|
|
2884
2866
|
},
|
|
2885
|
-
|
|
2867
|
+
paramCount: 2,
|
|
2886
2868
|
},
|
|
2887
2869
|
'%': {
|
|
2888
2870
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2892,7 +2874,7 @@ var mathNormalExpression = {
|
|
|
2892
2874
|
var quotient = Math.trunc(dividend / divisor);
|
|
2893
2875
|
return dividend - divisor * quotient;
|
|
2894
2876
|
},
|
|
2895
|
-
|
|
2877
|
+
paramCount: 2,
|
|
2896
2878
|
},
|
|
2897
2879
|
'sqrt': {
|
|
2898
2880
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2900,7 +2882,7 @@ var mathNormalExpression = {
|
|
|
2900
2882
|
assertNumber(first, sourceCodeInfo);
|
|
2901
2883
|
return Math.sqrt(first);
|
|
2902
2884
|
},
|
|
2903
|
-
|
|
2885
|
+
paramCount: 1,
|
|
2904
2886
|
},
|
|
2905
2887
|
'cbrt': {
|
|
2906
2888
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2908,7 +2890,7 @@ var mathNormalExpression = {
|
|
|
2908
2890
|
assertNumber(first, sourceCodeInfo);
|
|
2909
2891
|
return Math.cbrt(first);
|
|
2910
2892
|
},
|
|
2911
|
-
|
|
2893
|
+
paramCount: 1,
|
|
2912
2894
|
},
|
|
2913
2895
|
'**': {
|
|
2914
2896
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2917,7 +2899,7 @@ var mathNormalExpression = {
|
|
|
2917
2899
|
assertNumber(second, sourceCodeInfo);
|
|
2918
2900
|
return Math.pow(first, second);
|
|
2919
2901
|
},
|
|
2920
|
-
|
|
2902
|
+
paramCount: 2,
|
|
2921
2903
|
},
|
|
2922
2904
|
'round': {
|
|
2923
2905
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2929,7 +2911,7 @@ var mathNormalExpression = {
|
|
|
2929
2911
|
var factor = Math.pow(10, decimals);
|
|
2930
2912
|
return Math.round(value * factor) / factor;
|
|
2931
2913
|
},
|
|
2932
|
-
|
|
2914
|
+
paramCount: { min: 1, max: 2 },
|
|
2933
2915
|
},
|
|
2934
2916
|
'trunc': {
|
|
2935
2917
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2937,7 +2919,7 @@ var mathNormalExpression = {
|
|
|
2937
2919
|
assertNumber(first, sourceCodeInfo);
|
|
2938
2920
|
return Math.trunc(first);
|
|
2939
2921
|
},
|
|
2940
|
-
|
|
2922
|
+
paramCount: 1,
|
|
2941
2923
|
},
|
|
2942
2924
|
'floor': {
|
|
2943
2925
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2945,7 +2927,7 @@ var mathNormalExpression = {
|
|
|
2945
2927
|
assertNumber(first, sourceCodeInfo);
|
|
2946
2928
|
return Math.floor(first);
|
|
2947
2929
|
},
|
|
2948
|
-
|
|
2930
|
+
paramCount: 1,
|
|
2949
2931
|
},
|
|
2950
2932
|
'ceil': {
|
|
2951
2933
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2953,7 +2935,7 @@ var mathNormalExpression = {
|
|
|
2953
2935
|
assertNumber(first, sourceCodeInfo);
|
|
2954
2936
|
return Math.ceil(first);
|
|
2955
2937
|
},
|
|
2956
|
-
|
|
2938
|
+
paramCount: 1,
|
|
2957
2939
|
},
|
|
2958
2940
|
'min': {
|
|
2959
2941
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2966,7 +2948,7 @@ var mathNormalExpression = {
|
|
|
2966
2948
|
return Math.min(min, value);
|
|
2967
2949
|
}, first);
|
|
2968
2950
|
},
|
|
2969
|
-
|
|
2951
|
+
paramCount: { min: 1 },
|
|
2970
2952
|
},
|
|
2971
2953
|
'max': {
|
|
2972
2954
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2979,7 +2961,7 @@ var mathNormalExpression = {
|
|
|
2979
2961
|
return Math.max(min, value);
|
|
2980
2962
|
}, first);
|
|
2981
2963
|
},
|
|
2982
|
-
|
|
2964
|
+
paramCount: { min: 1 },
|
|
2983
2965
|
},
|
|
2984
2966
|
'abs': {
|
|
2985
2967
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2987,7 +2969,7 @@ var mathNormalExpression = {
|
|
|
2987
2969
|
assertNumber(value, sourceCodeInfo);
|
|
2988
2970
|
return Math.abs(value);
|
|
2989
2971
|
},
|
|
2990
|
-
|
|
2972
|
+
paramCount: 1,
|
|
2991
2973
|
},
|
|
2992
2974
|
'sign': {
|
|
2993
2975
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2995,67 +2977,67 @@ var mathNormalExpression = {
|
|
|
2995
2977
|
assertNumber(value, sourceCodeInfo);
|
|
2996
2978
|
return Math.sign(value);
|
|
2997
2979
|
},
|
|
2998
|
-
|
|
2980
|
+
paramCount: 1,
|
|
2999
2981
|
},
|
|
3000
2982
|
'max_safe_integer': {
|
|
3001
2983
|
evaluate: function () {
|
|
3002
2984
|
return Number.MAX_SAFE_INTEGER;
|
|
3003
2985
|
},
|
|
3004
|
-
|
|
2986
|
+
paramCount: 0,
|
|
3005
2987
|
},
|
|
3006
2988
|
'min_safe_integer': {
|
|
3007
2989
|
evaluate: function () {
|
|
3008
2990
|
return Number.MIN_SAFE_INTEGER;
|
|
3009
2991
|
},
|
|
3010
|
-
|
|
2992
|
+
paramCount: 0,
|
|
3011
2993
|
},
|
|
3012
2994
|
'max_value': {
|
|
3013
2995
|
evaluate: function () {
|
|
3014
2996
|
return Number.MAX_VALUE;
|
|
3015
2997
|
},
|
|
3016
|
-
|
|
2998
|
+
paramCount: 0,
|
|
3017
2999
|
},
|
|
3018
3000
|
'min_value': {
|
|
3019
3001
|
evaluate: function () {
|
|
3020
3002
|
return Number.MIN_VALUE;
|
|
3021
3003
|
},
|
|
3022
|
-
|
|
3004
|
+
paramCount: 0,
|
|
3023
3005
|
},
|
|
3024
3006
|
'epsilon': {
|
|
3025
3007
|
evaluate: function () {
|
|
3026
3008
|
return Number.EPSILON;
|
|
3027
3009
|
},
|
|
3028
|
-
|
|
3010
|
+
paramCount: 0,
|
|
3029
3011
|
},
|
|
3030
3012
|
'positive_infinity': {
|
|
3031
3013
|
evaluate: function () {
|
|
3032
3014
|
return Number.POSITIVE_INFINITY;
|
|
3033
3015
|
},
|
|
3034
|
-
|
|
3016
|
+
paramCount: 0,
|
|
3035
3017
|
},
|
|
3036
3018
|
'negative_infinity': {
|
|
3037
3019
|
evaluate: function () {
|
|
3038
3020
|
return Number.NEGATIVE_INFINITY;
|
|
3039
3021
|
},
|
|
3040
|
-
|
|
3022
|
+
paramCount: 0,
|
|
3041
3023
|
},
|
|
3042
3024
|
'nan': {
|
|
3043
3025
|
evaluate: function () {
|
|
3044
3026
|
return Number.NaN;
|
|
3045
3027
|
},
|
|
3046
|
-
|
|
3028
|
+
paramCount: 0,
|
|
3047
3029
|
},
|
|
3048
3030
|
'e': {
|
|
3049
3031
|
evaluate: function () {
|
|
3050
3032
|
return Math.E;
|
|
3051
3033
|
},
|
|
3052
|
-
|
|
3034
|
+
paramCount: 0,
|
|
3053
3035
|
},
|
|
3054
3036
|
'pi': {
|
|
3055
3037
|
evaluate: function () {
|
|
3056
3038
|
return Math.PI;
|
|
3057
3039
|
},
|
|
3058
|
-
|
|
3040
|
+
paramCount: 0,
|
|
3059
3041
|
},
|
|
3060
3042
|
'exp': {
|
|
3061
3043
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3063,7 +3045,7 @@ var mathNormalExpression = {
|
|
|
3063
3045
|
assertNumber(value, sourceCodeInfo);
|
|
3064
3046
|
return Math.exp(value);
|
|
3065
3047
|
},
|
|
3066
|
-
|
|
3048
|
+
paramCount: 1,
|
|
3067
3049
|
},
|
|
3068
3050
|
'log': {
|
|
3069
3051
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3071,7 +3053,7 @@ var mathNormalExpression = {
|
|
|
3071
3053
|
assertNumber(value, sourceCodeInfo);
|
|
3072
3054
|
return Math.log(value);
|
|
3073
3055
|
},
|
|
3074
|
-
|
|
3056
|
+
paramCount: 1,
|
|
3075
3057
|
},
|
|
3076
3058
|
'log2': {
|
|
3077
3059
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3079,7 +3061,7 @@ var mathNormalExpression = {
|
|
|
3079
3061
|
assertNumber(value, sourceCodeInfo);
|
|
3080
3062
|
return Math.log2(value);
|
|
3081
3063
|
},
|
|
3082
|
-
|
|
3064
|
+
paramCount: 1,
|
|
3083
3065
|
},
|
|
3084
3066
|
'log10': {
|
|
3085
3067
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3087,7 +3069,7 @@ var mathNormalExpression = {
|
|
|
3087
3069
|
assertNumber(value, sourceCodeInfo);
|
|
3088
3070
|
return Math.log10(value);
|
|
3089
3071
|
},
|
|
3090
|
-
|
|
3072
|
+
paramCount: 1,
|
|
3091
3073
|
},
|
|
3092
3074
|
'sin': {
|
|
3093
3075
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3095,7 +3077,7 @@ var mathNormalExpression = {
|
|
|
3095
3077
|
assertNumber(value, sourceCodeInfo);
|
|
3096
3078
|
return Math.sin(value);
|
|
3097
3079
|
},
|
|
3098
|
-
|
|
3080
|
+
paramCount: 1,
|
|
3099
3081
|
},
|
|
3100
3082
|
'asin': {
|
|
3101
3083
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3103,7 +3085,7 @@ var mathNormalExpression = {
|
|
|
3103
3085
|
assertNumber(value, sourceCodeInfo);
|
|
3104
3086
|
return Math.asin(value);
|
|
3105
3087
|
},
|
|
3106
|
-
|
|
3088
|
+
paramCount: 1,
|
|
3107
3089
|
},
|
|
3108
3090
|
'sinh': {
|
|
3109
3091
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3111,7 +3093,7 @@ var mathNormalExpression = {
|
|
|
3111
3093
|
assertNumber(value, sourceCodeInfo);
|
|
3112
3094
|
return Math.sinh(value);
|
|
3113
3095
|
},
|
|
3114
|
-
|
|
3096
|
+
paramCount: 1,
|
|
3115
3097
|
},
|
|
3116
3098
|
'asinh': {
|
|
3117
3099
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3119,7 +3101,7 @@ var mathNormalExpression = {
|
|
|
3119
3101
|
assertNumber(value, sourceCodeInfo);
|
|
3120
3102
|
return Math.asinh(value);
|
|
3121
3103
|
},
|
|
3122
|
-
|
|
3104
|
+
paramCount: 1,
|
|
3123
3105
|
},
|
|
3124
3106
|
'cos': {
|
|
3125
3107
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3127,7 +3109,7 @@ var mathNormalExpression = {
|
|
|
3127
3109
|
assertNumber(value, sourceCodeInfo);
|
|
3128
3110
|
return Math.cos(value);
|
|
3129
3111
|
},
|
|
3130
|
-
|
|
3112
|
+
paramCount: 1,
|
|
3131
3113
|
},
|
|
3132
3114
|
'acos': {
|
|
3133
3115
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3135,7 +3117,7 @@ var mathNormalExpression = {
|
|
|
3135
3117
|
assertNumber(value, sourceCodeInfo);
|
|
3136
3118
|
return Math.acos(value);
|
|
3137
3119
|
},
|
|
3138
|
-
|
|
3120
|
+
paramCount: 1,
|
|
3139
3121
|
},
|
|
3140
3122
|
'cosh': {
|
|
3141
3123
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3143,7 +3125,7 @@ var mathNormalExpression = {
|
|
|
3143
3125
|
assertNumber(value, sourceCodeInfo);
|
|
3144
3126
|
return Math.cosh(value);
|
|
3145
3127
|
},
|
|
3146
|
-
|
|
3128
|
+
paramCount: 1,
|
|
3147
3129
|
},
|
|
3148
3130
|
'acosh': {
|
|
3149
3131
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3151,7 +3133,7 @@ var mathNormalExpression = {
|
|
|
3151
3133
|
assertNumber(value, sourceCodeInfo);
|
|
3152
3134
|
return Math.acosh(value);
|
|
3153
3135
|
},
|
|
3154
|
-
|
|
3136
|
+
paramCount: 1,
|
|
3155
3137
|
},
|
|
3156
3138
|
'tan': {
|
|
3157
3139
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3159,7 +3141,7 @@ var mathNormalExpression = {
|
|
|
3159
3141
|
assertNumber(value, sourceCodeInfo);
|
|
3160
3142
|
return Math.tan(value);
|
|
3161
3143
|
},
|
|
3162
|
-
|
|
3144
|
+
paramCount: 1,
|
|
3163
3145
|
},
|
|
3164
3146
|
'atan': {
|
|
3165
3147
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3167,7 +3149,7 @@ var mathNormalExpression = {
|
|
|
3167
3149
|
assertNumber(value, sourceCodeInfo);
|
|
3168
3150
|
return Math.atan(value);
|
|
3169
3151
|
},
|
|
3170
|
-
|
|
3152
|
+
paramCount: 1,
|
|
3171
3153
|
},
|
|
3172
3154
|
'tanh': {
|
|
3173
3155
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3175,7 +3157,7 @@ var mathNormalExpression = {
|
|
|
3175
3157
|
assertNumber(value, sourceCodeInfo);
|
|
3176
3158
|
return Math.tanh(value);
|
|
3177
3159
|
},
|
|
3178
|
-
|
|
3160
|
+
paramCount: 1,
|
|
3179
3161
|
},
|
|
3180
3162
|
'atanh': {
|
|
3181
3163
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3183,7 +3165,7 @@ var mathNormalExpression = {
|
|
|
3183
3165
|
assertNumber(value, sourceCodeInfo);
|
|
3184
3166
|
return Math.atanh(value);
|
|
3185
3167
|
},
|
|
3186
|
-
|
|
3168
|
+
paramCount: 1,
|
|
3187
3169
|
},
|
|
3188
3170
|
};
|
|
3189
3171
|
|
|
@@ -3198,7 +3180,7 @@ var miscNormalExpression = {
|
|
|
3198
3180
|
}
|
|
3199
3181
|
return true;
|
|
3200
3182
|
},
|
|
3201
|
-
|
|
3183
|
+
paramCount: { min: 1 },
|
|
3202
3184
|
},
|
|
3203
3185
|
'==': {
|
|
3204
3186
|
evaluate: function (_a) {
|
|
@@ -3220,14 +3202,14 @@ var miscNormalExpression = {
|
|
|
3220
3202
|
}
|
|
3221
3203
|
return true;
|
|
3222
3204
|
},
|
|
3223
|
-
|
|
3205
|
+
paramCount: { min: 1 },
|
|
3224
3206
|
},
|
|
3225
3207
|
'equal?': {
|
|
3226
3208
|
evaluate: function (_a, sourceCodeInfo) {
|
|
3227
3209
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3228
3210
|
return deepEqual(asAny(a, sourceCodeInfo), asAny(b, sourceCodeInfo), sourceCodeInfo);
|
|
3229
3211
|
},
|
|
3230
|
-
|
|
3212
|
+
paramCount: { min: 1 },
|
|
3231
3213
|
},
|
|
3232
3214
|
'>': {
|
|
3233
3215
|
evaluate: function (_a) {
|
|
@@ -3251,7 +3233,7 @@ var miscNormalExpression = {
|
|
|
3251
3233
|
}
|
|
3252
3234
|
return true;
|
|
3253
3235
|
},
|
|
3254
|
-
|
|
3236
|
+
paramCount: { min: 1 },
|
|
3255
3237
|
},
|
|
3256
3238
|
'<': {
|
|
3257
3239
|
evaluate: function (_a) {
|
|
@@ -3275,7 +3257,7 @@ var miscNormalExpression = {
|
|
|
3275
3257
|
}
|
|
3276
3258
|
return true;
|
|
3277
3259
|
},
|
|
3278
|
-
|
|
3260
|
+
paramCount: { min: 1 },
|
|
3279
3261
|
},
|
|
3280
3262
|
'>=': {
|
|
3281
3263
|
evaluate: function (_a) {
|
|
@@ -3299,7 +3281,7 @@ var miscNormalExpression = {
|
|
|
3299
3281
|
}
|
|
3300
3282
|
return true;
|
|
3301
3283
|
},
|
|
3302
|
-
|
|
3284
|
+
paramCount: { min: 1 },
|
|
3303
3285
|
},
|
|
3304
3286
|
'<=': {
|
|
3305
3287
|
evaluate: function (_a) {
|
|
@@ -3323,14 +3305,14 @@ var miscNormalExpression = {
|
|
|
3323
3305
|
}
|
|
3324
3306
|
return true;
|
|
3325
3307
|
},
|
|
3326
|
-
|
|
3308
|
+
paramCount: { min: 1 },
|
|
3327
3309
|
},
|
|
3328
3310
|
'!': {
|
|
3329
3311
|
evaluate: function (_a) {
|
|
3330
3312
|
var _b = __read(_a, 1), first = _b[0];
|
|
3331
3313
|
return !first;
|
|
3332
3314
|
},
|
|
3333
|
-
|
|
3315
|
+
paramCount: 1,
|
|
3334
3316
|
},
|
|
3335
3317
|
'epoch>iso_date': {
|
|
3336
3318
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3338,7 +3320,7 @@ var miscNormalExpression = {
|
|
|
3338
3320
|
assertNumber(ms, sourceCodeInfo);
|
|
3339
3321
|
return new Date(ms).toISOString();
|
|
3340
3322
|
},
|
|
3341
|
-
|
|
3323
|
+
paramCount: 1,
|
|
3342
3324
|
},
|
|
3343
3325
|
'iso_date>epoch': {
|
|
3344
3326
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3348,7 +3330,7 @@ var miscNormalExpression = {
|
|
|
3348
3330
|
assertNumber(ms, sourceCodeInfo, { finite: true });
|
|
3349
3331
|
return ms;
|
|
3350
3332
|
},
|
|
3351
|
-
|
|
3333
|
+
paramCount: 1,
|
|
3352
3334
|
},
|
|
3353
3335
|
'write!': {
|
|
3354
3336
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3358,20 +3340,21 @@ var miscNormalExpression = {
|
|
|
3358
3340
|
return asAny(params[params.length - 1], sourceCodeInfo);
|
|
3359
3341
|
return null;
|
|
3360
3342
|
},
|
|
3343
|
+
paramCount: {},
|
|
3361
3344
|
},
|
|
3362
3345
|
'boolean': {
|
|
3363
3346
|
evaluate: function (_a) {
|
|
3364
3347
|
var _b = __read(_a, 1), value = _b[0];
|
|
3365
3348
|
return !!value;
|
|
3366
3349
|
},
|
|
3367
|
-
|
|
3350
|
+
paramCount: 1,
|
|
3368
3351
|
},
|
|
3369
3352
|
'compare': {
|
|
3370
3353
|
evaluate: function (_a) {
|
|
3371
3354
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3372
3355
|
return compare(a, b);
|
|
3373
3356
|
},
|
|
3374
|
-
|
|
3357
|
+
paramCount: 2,
|
|
3375
3358
|
},
|
|
3376
3359
|
'json_parse': {
|
|
3377
3360
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3380,7 +3363,7 @@ var miscNormalExpression = {
|
|
|
3380
3363
|
// eslint-disable-next-line ts/no-unsafe-return
|
|
3381
3364
|
return JSON.parse(first);
|
|
3382
3365
|
},
|
|
3383
|
-
|
|
3366
|
+
paramCount: 1,
|
|
3384
3367
|
},
|
|
3385
3368
|
'json_stringify': {
|
|
3386
3369
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3391,7 +3374,7 @@ var miscNormalExpression = {
|
|
|
3391
3374
|
assertNumber(second, sourceCodeInfo);
|
|
3392
3375
|
return JSON.stringify(first, null, second);
|
|
3393
3376
|
},
|
|
3394
|
-
|
|
3377
|
+
paramCount: { min: 1, max: 2 },
|
|
3395
3378
|
},
|
|
3396
3379
|
};
|
|
3397
3380
|
|
|
@@ -3405,7 +3388,7 @@ var assertNormalExpression = {
|
|
|
3405
3388
|
throw new AssertionError(message, sourceCodeInfo);
|
|
3406
3389
|
return asAny(value, sourceCodeInfo);
|
|
3407
3390
|
},
|
|
3408
|
-
|
|
3391
|
+
paramCount: { min: 1, max: 2 },
|
|
3409
3392
|
},
|
|
3410
3393
|
'assert=': {
|
|
3411
3394
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3415,7 +3398,7 @@ var assertNormalExpression = {
|
|
|
3415
3398
|
throw new AssertionError("Expected ".concat(first, " to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3416
3399
|
return null;
|
|
3417
3400
|
},
|
|
3418
|
-
|
|
3401
|
+
paramCount: { min: 2, max: 3 },
|
|
3419
3402
|
},
|
|
3420
3403
|
'assert!=': {
|
|
3421
3404
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3425,7 +3408,7 @@ var assertNormalExpression = {
|
|
|
3425
3408
|
throw new AssertionError("Expected ".concat(first, " not to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3426
3409
|
return null;
|
|
3427
3410
|
},
|
|
3428
|
-
|
|
3411
|
+
paramCount: { min: 2, max: 3 },
|
|
3429
3412
|
},
|
|
3430
3413
|
'assert_equal': {
|
|
3431
3414
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3436,7 +3419,7 @@ var assertNormalExpression = {
|
|
|
3436
3419
|
}
|
|
3437
3420
|
return null;
|
|
3438
3421
|
},
|
|
3439
|
-
|
|
3422
|
+
paramCount: { min: 2, max: 3 },
|
|
3440
3423
|
},
|
|
3441
3424
|
'assert_not_equal': {
|
|
3442
3425
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3447,7 +3430,7 @@ var assertNormalExpression = {
|
|
|
3447
3430
|
}
|
|
3448
3431
|
return null;
|
|
3449
3432
|
},
|
|
3450
|
-
|
|
3433
|
+
paramCount: { min: 2, max: 3 },
|
|
3451
3434
|
},
|
|
3452
3435
|
'assert_gt': {
|
|
3453
3436
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3457,7 +3440,7 @@ var assertNormalExpression = {
|
|
|
3457
3440
|
throw new AssertionError("Expected ".concat(first, " to be grater than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3458
3441
|
return null;
|
|
3459
3442
|
},
|
|
3460
|
-
|
|
3443
|
+
paramCount: { min: 2, max: 3 },
|
|
3461
3444
|
},
|
|
3462
3445
|
'assert_gte': {
|
|
3463
3446
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3467,7 +3450,7 @@ var assertNormalExpression = {
|
|
|
3467
3450
|
throw new AssertionError("Expected ".concat(first, " to be grater than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3468
3451
|
return null;
|
|
3469
3452
|
},
|
|
3470
|
-
|
|
3453
|
+
paramCount: { min: 2, max: 3 },
|
|
3471
3454
|
},
|
|
3472
3455
|
'assert_lt': {
|
|
3473
3456
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3477,7 +3460,7 @@ var assertNormalExpression = {
|
|
|
3477
3460
|
throw new AssertionError("Expected ".concat(first, " to be less than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3478
3461
|
return null;
|
|
3479
3462
|
},
|
|
3480
|
-
|
|
3463
|
+
paramCount: { min: 2, max: 3 },
|
|
3481
3464
|
},
|
|
3482
3465
|
'assert_lte': {
|
|
3483
3466
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3487,7 +3470,7 @@ var assertNormalExpression = {
|
|
|
3487
3470
|
throw new AssertionError("Expected ".concat(first, " to be less than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3488
3471
|
return null;
|
|
3489
3472
|
},
|
|
3490
|
-
|
|
3473
|
+
paramCount: { min: 2, max: 3 },
|
|
3491
3474
|
},
|
|
3492
3475
|
'assert_true': {
|
|
3493
3476
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3497,7 +3480,7 @@ var assertNormalExpression = {
|
|
|
3497
3480
|
throw new AssertionError("Expected ".concat(first, " to be true.").concat(message), sourceCodeInfo);
|
|
3498
3481
|
return null;
|
|
3499
3482
|
},
|
|
3500
|
-
|
|
3483
|
+
paramCount: { min: 1, max: 2 },
|
|
3501
3484
|
},
|
|
3502
3485
|
'assert_false': {
|
|
3503
3486
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3507,7 +3490,7 @@ var assertNormalExpression = {
|
|
|
3507
3490
|
throw new AssertionError("Expected ".concat(first, " to be false.").concat(message), sourceCodeInfo);
|
|
3508
3491
|
return null;
|
|
3509
3492
|
},
|
|
3510
|
-
|
|
3493
|
+
paramCount: { min: 1, max: 2 },
|
|
3511
3494
|
},
|
|
3512
3495
|
'assert_truthy': {
|
|
3513
3496
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3517,7 +3500,7 @@ var assertNormalExpression = {
|
|
|
3517
3500
|
throw new AssertionError("Expected ".concat(first, " to be truthy.").concat(message), sourceCodeInfo);
|
|
3518
3501
|
return null;
|
|
3519
3502
|
},
|
|
3520
|
-
|
|
3503
|
+
paramCount: { min: 1, max: 2 },
|
|
3521
3504
|
},
|
|
3522
3505
|
'assert_falsy': {
|
|
3523
3506
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3527,7 +3510,7 @@ var assertNormalExpression = {
|
|
|
3527
3510
|
throw new AssertionError("Expected ".concat(first, " to be falsy.").concat(message), sourceCodeInfo);
|
|
3528
3511
|
return null;
|
|
3529
3512
|
},
|
|
3530
|
-
|
|
3513
|
+
paramCount: { min: 1, max: 2 },
|
|
3531
3514
|
},
|
|
3532
3515
|
'assert_null': {
|
|
3533
3516
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3537,7 +3520,7 @@ var assertNormalExpression = {
|
|
|
3537
3520
|
throw new AssertionError("Expected ".concat(first, " to be nil.").concat(message), sourceCodeInfo);
|
|
3538
3521
|
return null;
|
|
3539
3522
|
},
|
|
3540
|
-
|
|
3523
|
+
paramCount: { min: 1, max: 2 },
|
|
3541
3524
|
},
|
|
3542
3525
|
'assert_throws': {
|
|
3543
3526
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3553,7 +3536,7 @@ var assertNormalExpression = {
|
|
|
3553
3536
|
}
|
|
3554
3537
|
throw new AssertionError("Expected function to throw.".concat(message), sourceCodeInfo);
|
|
3555
3538
|
},
|
|
3556
|
-
|
|
3539
|
+
paramCount: { min: 1, max: 2 },
|
|
3557
3540
|
},
|
|
3558
3541
|
'assert_throws_error': {
|
|
3559
3542
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3574,7 +3557,7 @@ var assertNormalExpression = {
|
|
|
3574
3557
|
}
|
|
3575
3558
|
throw new AssertionError("Expected function to throw \"".concat(throwMessage, "\".").concat(message), sourceCodeInfo);
|
|
3576
3559
|
},
|
|
3577
|
-
|
|
3560
|
+
paramCount: { min: 2, max: 3 },
|
|
3578
3561
|
},
|
|
3579
3562
|
'assert_not_throws': {
|
|
3580
3563
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3590,7 +3573,7 @@ var assertNormalExpression = {
|
|
|
3590
3573
|
}
|
|
3591
3574
|
return null;
|
|
3592
3575
|
},
|
|
3593
|
-
|
|
3576
|
+
paramCount: { min: 1, max: 2 },
|
|
3594
3577
|
},
|
|
3595
3578
|
};
|
|
3596
3579
|
|
|
@@ -3606,7 +3589,7 @@ var objectNormalExpression = {
|
|
|
3606
3589
|
}
|
|
3607
3590
|
return result;
|
|
3608
3591
|
},
|
|
3609
|
-
|
|
3592
|
+
paramCount: { even: true },
|
|
3610
3593
|
},
|
|
3611
3594
|
keys: {
|
|
3612
3595
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3614,7 +3597,7 @@ var objectNormalExpression = {
|
|
|
3614
3597
|
assertObj(obj, sourceCodeInfo);
|
|
3615
3598
|
return Object.keys(obj);
|
|
3616
3599
|
},
|
|
3617
|
-
|
|
3600
|
+
paramCount: 1,
|
|
3618
3601
|
},
|
|
3619
3602
|
vals: {
|
|
3620
3603
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3622,7 +3605,7 @@ var objectNormalExpression = {
|
|
|
3622
3605
|
assertObj(obj, sourceCodeInfo);
|
|
3623
3606
|
return Object.values(obj);
|
|
3624
3607
|
},
|
|
3625
|
-
|
|
3608
|
+
paramCount: 1,
|
|
3626
3609
|
},
|
|
3627
3610
|
entries: {
|
|
3628
3611
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3630,7 +3613,7 @@ var objectNormalExpression = {
|
|
|
3630
3613
|
assertObj(obj, sourceCodeInfo);
|
|
3631
3614
|
return Object.entries(obj);
|
|
3632
3615
|
},
|
|
3633
|
-
|
|
3616
|
+
paramCount: 1,
|
|
3634
3617
|
},
|
|
3635
3618
|
find: {
|
|
3636
3619
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3641,7 +3624,7 @@ var objectNormalExpression = {
|
|
|
3641
3624
|
return [key, obj[key]];
|
|
3642
3625
|
return null;
|
|
3643
3626
|
},
|
|
3644
|
-
|
|
3627
|
+
paramCount: 2,
|
|
3645
3628
|
},
|
|
3646
3629
|
dissoc: {
|
|
3647
3630
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3652,7 +3635,7 @@ var objectNormalExpression = {
|
|
|
3652
3635
|
delete newObj[key];
|
|
3653
3636
|
return newObj;
|
|
3654
3637
|
},
|
|
3655
|
-
|
|
3638
|
+
paramCount: 2,
|
|
3656
3639
|
},
|
|
3657
3640
|
merge: {
|
|
3658
3641
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3665,7 +3648,7 @@ var objectNormalExpression = {
|
|
|
3665
3648
|
return __assign(__assign({}, result), obj);
|
|
3666
3649
|
}, __assign({}, first));
|
|
3667
3650
|
},
|
|
3668
|
-
|
|
3651
|
+
paramCount: { min: 0 },
|
|
3669
3652
|
},
|
|
3670
3653
|
merge_with: {
|
|
3671
3654
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -3688,7 +3671,7 @@ var objectNormalExpression = {
|
|
|
3688
3671
|
return result;
|
|
3689
3672
|
}, __assign({}, first));
|
|
3690
3673
|
},
|
|
3691
|
-
|
|
3674
|
+
paramCount: { min: 2 },
|
|
3692
3675
|
},
|
|
3693
3676
|
zipmap: {
|
|
3694
3677
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3703,7 +3686,7 @@ var objectNormalExpression = {
|
|
|
3703
3686
|
}
|
|
3704
3687
|
return result;
|
|
3705
3688
|
},
|
|
3706
|
-
|
|
3689
|
+
paramCount: 2,
|
|
3707
3690
|
},
|
|
3708
3691
|
select_keys: {
|
|
3709
3692
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3716,7 +3699,7 @@ var objectNormalExpression = {
|
|
|
3716
3699
|
return result;
|
|
3717
3700
|
}, {});
|
|
3718
3701
|
},
|
|
3719
|
-
|
|
3702
|
+
paramCount: 2,
|
|
3720
3703
|
},
|
|
3721
3704
|
};
|
|
3722
3705
|
|
|
@@ -3726,42 +3709,42 @@ var predicatesNormalExpression = {
|
|
|
3726
3709
|
var _b = __read(_a, 1), first = _b[0];
|
|
3727
3710
|
return isLitsFunction(first);
|
|
3728
3711
|
},
|
|
3729
|
-
|
|
3712
|
+
paramCount: 1,
|
|
3730
3713
|
},
|
|
3731
3714
|
'string?': {
|
|
3732
3715
|
evaluate: function (_a) {
|
|
3733
3716
|
var _b = __read(_a, 1), first = _b[0];
|
|
3734
3717
|
return typeof first === 'string';
|
|
3735
3718
|
},
|
|
3736
|
-
|
|
3719
|
+
paramCount: 1,
|
|
3737
3720
|
},
|
|
3738
3721
|
'number?': {
|
|
3739
3722
|
evaluate: function (_a) {
|
|
3740
3723
|
var _b = __read(_a, 1), first = _b[0];
|
|
3741
3724
|
return typeof first === 'number';
|
|
3742
3725
|
},
|
|
3743
|
-
|
|
3726
|
+
paramCount: 1,
|
|
3744
3727
|
},
|
|
3745
3728
|
'integer?': {
|
|
3746
3729
|
evaluate: function (_a) {
|
|
3747
3730
|
var _b = __read(_a, 1), first = _b[0];
|
|
3748
3731
|
return typeof first === 'number' && isNumber(first, { integer: true });
|
|
3749
3732
|
},
|
|
3750
|
-
|
|
3733
|
+
paramCount: 1,
|
|
3751
3734
|
},
|
|
3752
3735
|
'boolean?': {
|
|
3753
3736
|
evaluate: function (_a) {
|
|
3754
3737
|
var _b = __read(_a, 1), first = _b[0];
|
|
3755
3738
|
return typeof first === 'boolean';
|
|
3756
3739
|
},
|
|
3757
|
-
|
|
3740
|
+
paramCount: 1,
|
|
3758
3741
|
},
|
|
3759
3742
|
'nil?': {
|
|
3760
3743
|
evaluate: function (_a) {
|
|
3761
3744
|
var _b = __read(_a, 1), first = _b[0];
|
|
3762
3745
|
return first === null || first === undefined;
|
|
3763
3746
|
},
|
|
3764
|
-
|
|
3747
|
+
paramCount: 1,
|
|
3765
3748
|
},
|
|
3766
3749
|
'zero?': {
|
|
3767
3750
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3769,7 +3752,7 @@ var predicatesNormalExpression = {
|
|
|
3769
3752
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3770
3753
|
return first === 0;
|
|
3771
3754
|
},
|
|
3772
|
-
|
|
3755
|
+
paramCount: 1,
|
|
3773
3756
|
},
|
|
3774
3757
|
'pos?': {
|
|
3775
3758
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3777,7 +3760,7 @@ var predicatesNormalExpression = {
|
|
|
3777
3760
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3778
3761
|
return first > 0;
|
|
3779
3762
|
},
|
|
3780
|
-
|
|
3763
|
+
paramCount: 1,
|
|
3781
3764
|
},
|
|
3782
3765
|
'neg?': {
|
|
3783
3766
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3785,7 +3768,7 @@ var predicatesNormalExpression = {
|
|
|
3785
3768
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3786
3769
|
return first < 0;
|
|
3787
3770
|
},
|
|
3788
|
-
|
|
3771
|
+
paramCount: 1,
|
|
3789
3772
|
},
|
|
3790
3773
|
'even?': {
|
|
3791
3774
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3793,7 +3776,7 @@ var predicatesNormalExpression = {
|
|
|
3793
3776
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3794
3777
|
return first % 2 === 0;
|
|
3795
3778
|
},
|
|
3796
|
-
|
|
3779
|
+
paramCount: 1,
|
|
3797
3780
|
},
|
|
3798
3781
|
'odd?': {
|
|
3799
3782
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3801,42 +3784,42 @@ var predicatesNormalExpression = {
|
|
|
3801
3784
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3802
3785
|
return isNumber(first, { integer: true }) && first % 2 !== 0;
|
|
3803
3786
|
},
|
|
3804
|
-
|
|
3787
|
+
paramCount: 1,
|
|
3805
3788
|
},
|
|
3806
3789
|
'array?': {
|
|
3807
3790
|
evaluate: function (_a) {
|
|
3808
3791
|
var _b = __read(_a, 1), first = _b[0];
|
|
3809
3792
|
return Array.isArray(first);
|
|
3810
3793
|
},
|
|
3811
|
-
|
|
3794
|
+
paramCount: 1,
|
|
3812
3795
|
},
|
|
3813
3796
|
'coll?': {
|
|
3814
3797
|
evaluate: function (_a) {
|
|
3815
3798
|
var _b = __read(_a, 1), first = _b[0];
|
|
3816
3799
|
return isColl(first);
|
|
3817
3800
|
},
|
|
3818
|
-
|
|
3801
|
+
paramCount: 1,
|
|
3819
3802
|
},
|
|
3820
3803
|
'seq?': {
|
|
3821
3804
|
evaluate: function (_a) {
|
|
3822
3805
|
var _b = __read(_a, 1), first = _b[0];
|
|
3823
3806
|
return isSeq(first);
|
|
3824
3807
|
},
|
|
3825
|
-
|
|
3808
|
+
paramCount: 1,
|
|
3826
3809
|
},
|
|
3827
3810
|
'object?': {
|
|
3828
3811
|
evaluate: function (_a) {
|
|
3829
3812
|
var _b = __read(_a, 1), first = _b[0];
|
|
3830
3813
|
return isObj(first);
|
|
3831
3814
|
},
|
|
3832
|
-
|
|
3815
|
+
paramCount: 1,
|
|
3833
3816
|
},
|
|
3834
3817
|
'regexp?': {
|
|
3835
3818
|
evaluate: function (_a) {
|
|
3836
3819
|
var _b = __read(_a, 1), value = _b[0];
|
|
3837
3820
|
return isRegularExpression(value);
|
|
3838
3821
|
},
|
|
3839
|
-
|
|
3822
|
+
paramCount: 1,
|
|
3840
3823
|
},
|
|
3841
3824
|
'finite?': {
|
|
3842
3825
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3844,7 +3827,7 @@ var predicatesNormalExpression = {
|
|
|
3844
3827
|
assertNumber(value, sourceCodeInfo);
|
|
3845
3828
|
return Number.isFinite(value);
|
|
3846
3829
|
},
|
|
3847
|
-
|
|
3830
|
+
paramCount: 1,
|
|
3848
3831
|
},
|
|
3849
3832
|
'nan?': {
|
|
3850
3833
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3852,7 +3835,7 @@ var predicatesNormalExpression = {
|
|
|
3852
3835
|
assertNumber(value, sourceCodeInfo);
|
|
3853
3836
|
return Number.isNaN(value);
|
|
3854
3837
|
},
|
|
3855
|
-
|
|
3838
|
+
paramCount: 1,
|
|
3856
3839
|
},
|
|
3857
3840
|
'positive_infinity?': {
|
|
3858
3841
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3860,7 +3843,7 @@ var predicatesNormalExpression = {
|
|
|
3860
3843
|
assertNumber(value, sourceCodeInfo);
|
|
3861
3844
|
return value === Number.POSITIVE_INFINITY;
|
|
3862
3845
|
},
|
|
3863
|
-
|
|
3846
|
+
paramCount: 1,
|
|
3864
3847
|
},
|
|
3865
3848
|
'negative_infinity?': {
|
|
3866
3849
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3868,21 +3851,21 @@ var predicatesNormalExpression = {
|
|
|
3868
3851
|
assertNumber(value, sourceCodeInfo);
|
|
3869
3852
|
return value === Number.NEGATIVE_INFINITY;
|
|
3870
3853
|
},
|
|
3871
|
-
|
|
3854
|
+
paramCount: 1,
|
|
3872
3855
|
},
|
|
3873
3856
|
'true?': {
|
|
3874
3857
|
evaluate: function (_a) {
|
|
3875
3858
|
var _b = __read(_a, 1), value = _b[0];
|
|
3876
3859
|
return value === true;
|
|
3877
3860
|
},
|
|
3878
|
-
|
|
3861
|
+
paramCount: 1,
|
|
3879
3862
|
},
|
|
3880
3863
|
'false?': {
|
|
3881
3864
|
evaluate: function (_a) {
|
|
3882
3865
|
var _b = __read(_a, 1), value = _b[0];
|
|
3883
3866
|
return value === false;
|
|
3884
3867
|
},
|
|
3885
|
-
|
|
3868
|
+
paramCount: 1,
|
|
3886
3869
|
},
|
|
3887
3870
|
'empty?': {
|
|
3888
3871
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3896,7 +3879,7 @@ var predicatesNormalExpression = {
|
|
|
3896
3879
|
return coll.length === 0;
|
|
3897
3880
|
return Object.keys(coll).length === 0;
|
|
3898
3881
|
},
|
|
3899
|
-
|
|
3882
|
+
paramCount: 1,
|
|
3900
3883
|
},
|
|
3901
3884
|
'not_empty?': {
|
|
3902
3885
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3910,7 +3893,7 @@ var predicatesNormalExpression = {
|
|
|
3910
3893
|
return coll.length > 0;
|
|
3911
3894
|
return Object.keys(coll).length > 0;
|
|
3912
3895
|
},
|
|
3913
|
-
|
|
3896
|
+
paramCount: 1,
|
|
3914
3897
|
},
|
|
3915
3898
|
};
|
|
3916
3899
|
|
|
@@ -3929,7 +3912,7 @@ var regexpNormalExpression = {
|
|
|
3929
3912
|
_b.f = flags,
|
|
3930
3913
|
_b;
|
|
3931
3914
|
},
|
|
3932
|
-
|
|
3915
|
+
paramCount: { min: 1, max: 2 },
|
|
3933
3916
|
},
|
|
3934
3917
|
match: {
|
|
3935
3918
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3943,7 +3926,7 @@ var regexpNormalExpression = {
|
|
|
3943
3926
|
return __spreadArray([], __read(match), false);
|
|
3944
3927
|
return null;
|
|
3945
3928
|
},
|
|
3946
|
-
|
|
3929
|
+
paramCount: 2,
|
|
3947
3930
|
},
|
|
3948
3931
|
replace: {
|
|
3949
3932
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3954,7 +3937,7 @@ var regexpNormalExpression = {
|
|
|
3954
3937
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f)) : regexp;
|
|
3955
3938
|
return str.replace(matcher, value);
|
|
3956
3939
|
},
|
|
3957
|
-
|
|
3940
|
+
paramCount: 3,
|
|
3958
3941
|
},
|
|
3959
3942
|
replace_all: {
|
|
3960
3943
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3965,7 +3948,7 @@ var regexpNormalExpression = {
|
|
|
3965
3948
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f.includes('g') ? regexp.f : "".concat(regexp.f, "g"))) : regexp;
|
|
3966
3949
|
return str.replaceAll(matcher, value);
|
|
3967
3950
|
},
|
|
3968
|
-
|
|
3951
|
+
paramCount: 3,
|
|
3969
3952
|
},
|
|
3970
3953
|
};
|
|
3971
3954
|
|
|
@@ -3981,7 +3964,7 @@ var stringNormalExpression = {
|
|
|
3981
3964
|
assertNumber(third, sourceCodeInfo, { gte: second });
|
|
3982
3965
|
return (first).substring(second, third);
|
|
3983
3966
|
},
|
|
3984
|
-
|
|
3967
|
+
paramCount: { min: 2, max: 3 },
|
|
3985
3968
|
},
|
|
3986
3969
|
'string_repeat': {
|
|
3987
3970
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3990,7 +3973,7 @@ var stringNormalExpression = {
|
|
|
3990
3973
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
3991
3974
|
return str.repeat(count);
|
|
3992
3975
|
},
|
|
3993
|
-
|
|
3976
|
+
paramCount: 2,
|
|
3994
3977
|
},
|
|
3995
3978
|
'str': {
|
|
3996
3979
|
evaluate: function (params) {
|
|
@@ -4005,6 +3988,7 @@ var stringNormalExpression = {
|
|
|
4005
3988
|
return result + paramStr;
|
|
4006
3989
|
}, '');
|
|
4007
3990
|
},
|
|
3991
|
+
paramCount: {},
|
|
4008
3992
|
},
|
|
4009
3993
|
'number': {
|
|
4010
3994
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4015,7 +3999,7 @@ var stringNormalExpression = {
|
|
|
4015
3999
|
throw new LitsError("Could not convert '".concat(str, "' to a number."), sourceCodeInfo);
|
|
4016
4000
|
return number;
|
|
4017
4001
|
},
|
|
4018
|
-
|
|
4002
|
+
paramCount: 1,
|
|
4019
4003
|
},
|
|
4020
4004
|
'from_char_code': {
|
|
4021
4005
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4029,7 +4013,7 @@ var stringNormalExpression = {
|
|
|
4029
4013
|
throw new LitsError(error, sourceCodeInfo);
|
|
4030
4014
|
}
|
|
4031
4015
|
},
|
|
4032
|
-
|
|
4016
|
+
paramCount: 1,
|
|
4033
4017
|
},
|
|
4034
4018
|
'to_char_code': {
|
|
4035
4019
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4037,7 +4021,7 @@ var stringNormalExpression = {
|
|
|
4037
4021
|
assertString(str, sourceCodeInfo, { nonEmpty: true });
|
|
4038
4022
|
return asNonUndefined(str.codePointAt(0), sourceCodeInfo);
|
|
4039
4023
|
},
|
|
4040
|
-
|
|
4024
|
+
paramCount: 1,
|
|
4041
4025
|
},
|
|
4042
4026
|
'lower_case': {
|
|
4043
4027
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4045,7 +4029,7 @@ var stringNormalExpression = {
|
|
|
4045
4029
|
assertString(str, sourceCodeInfo);
|
|
4046
4030
|
return str.toLowerCase();
|
|
4047
4031
|
},
|
|
4048
|
-
|
|
4032
|
+
paramCount: 1,
|
|
4049
4033
|
},
|
|
4050
4034
|
'upper_case': {
|
|
4051
4035
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4053,7 +4037,7 @@ var stringNormalExpression = {
|
|
|
4053
4037
|
assertString(str, sourceCodeInfo);
|
|
4054
4038
|
return str.toUpperCase();
|
|
4055
4039
|
},
|
|
4056
|
-
|
|
4040
|
+
paramCount: 1,
|
|
4057
4041
|
},
|
|
4058
4042
|
'trim': {
|
|
4059
4043
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4061,7 +4045,7 @@ var stringNormalExpression = {
|
|
|
4061
4045
|
assertString(str, sourceCodeInfo);
|
|
4062
4046
|
return str.trim();
|
|
4063
4047
|
},
|
|
4064
|
-
|
|
4048
|
+
paramCount: 1,
|
|
4065
4049
|
},
|
|
4066
4050
|
'trim_left': {
|
|
4067
4051
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4069,7 +4053,7 @@ var stringNormalExpression = {
|
|
|
4069
4053
|
assertString(str, sourceCodeInfo);
|
|
4070
4054
|
return str.replace(/^\s+/, '');
|
|
4071
4055
|
},
|
|
4072
|
-
|
|
4056
|
+
paramCount: 1,
|
|
4073
4057
|
},
|
|
4074
4058
|
'trim_right': {
|
|
4075
4059
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4077,7 +4061,7 @@ var stringNormalExpression = {
|
|
|
4077
4061
|
assertString(str, sourceCodeInfo);
|
|
4078
4062
|
return str.replace(/\s+$/, '');
|
|
4079
4063
|
},
|
|
4080
|
-
|
|
4064
|
+
paramCount: 1,
|
|
4081
4065
|
},
|
|
4082
4066
|
'++': {
|
|
4083
4067
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -4101,7 +4085,7 @@ var stringNormalExpression = {
|
|
|
4101
4085
|
return "".concat(acc).concat(str);
|
|
4102
4086
|
}, first === null ? '' : "".concat(first));
|
|
4103
4087
|
},
|
|
4104
|
-
|
|
4088
|
+
paramCount: {},
|
|
4105
4089
|
},
|
|
4106
4090
|
'join': {
|
|
4107
4091
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4111,7 +4095,7 @@ var stringNormalExpression = {
|
|
|
4111
4095
|
assertString(delimiter, sourceCodeInfo);
|
|
4112
4096
|
return stringList.join(delimiter);
|
|
4113
4097
|
},
|
|
4114
|
-
|
|
4098
|
+
paramCount: 2,
|
|
4115
4099
|
},
|
|
4116
4100
|
'split': {
|
|
4117
4101
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4125,7 +4109,7 @@ var stringNormalExpression = {
|
|
|
4125
4109
|
: new RegExp(stringOrRegExpValue.s, stringOrRegExpValue.f);
|
|
4126
4110
|
return str.split(delimiter, limit);
|
|
4127
4111
|
},
|
|
4128
|
-
|
|
4112
|
+
paramCount: { min: 2, max: 3 },
|
|
4129
4113
|
},
|
|
4130
4114
|
'split_lines': {
|
|
4131
4115
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4133,7 +4117,7 @@ var stringNormalExpression = {
|
|
|
4133
4117
|
assertString(str, sourceCodeInfo);
|
|
4134
4118
|
return str.split((/\r\n|\n|\r/)).filter(function (line) { return line !== ''; });
|
|
4135
4119
|
},
|
|
4136
|
-
|
|
4120
|
+
paramCount: 1,
|
|
4137
4121
|
},
|
|
4138
4122
|
'pad_left': {
|
|
4139
4123
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4144,7 +4128,7 @@ var stringNormalExpression = {
|
|
|
4144
4128
|
assertString(padString, sourceCodeInfo);
|
|
4145
4129
|
return str.padStart(length, padString);
|
|
4146
4130
|
},
|
|
4147
|
-
|
|
4131
|
+
paramCount: { min: 2, max: 3 },
|
|
4148
4132
|
},
|
|
4149
4133
|
'pad_right': {
|
|
4150
4134
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4155,7 +4139,7 @@ var stringNormalExpression = {
|
|
|
4155
4139
|
assertString(padString, sourceCodeInfo);
|
|
4156
4140
|
return str.padEnd(length, padString);
|
|
4157
4141
|
},
|
|
4158
|
-
|
|
4142
|
+
paramCount: { min: 2, max: 3 },
|
|
4159
4143
|
},
|
|
4160
4144
|
'template': {
|
|
4161
4145
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4186,7 +4170,7 @@ var stringNormalExpression = {
|
|
|
4186
4170
|
}
|
|
4187
4171
|
}
|
|
4188
4172
|
},
|
|
4189
|
-
|
|
4173
|
+
paramCount: { min: 1, max: 10 },
|
|
4190
4174
|
},
|
|
4191
4175
|
'encode_base64': {
|
|
4192
4176
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4197,7 +4181,7 @@ var stringNormalExpression = {
|
|
|
4197
4181
|
return String.fromCharCode(Number.parseInt(p1, 16));
|
|
4198
4182
|
}));
|
|
4199
4183
|
},
|
|
4200
|
-
|
|
4184
|
+
paramCount: 1,
|
|
4201
4185
|
},
|
|
4202
4186
|
'decode_base64': {
|
|
4203
4187
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4215,7 +4199,7 @@ var stringNormalExpression = {
|
|
|
4215
4199
|
throw new LitsError(error, sourceCodeInfo);
|
|
4216
4200
|
}
|
|
4217
4201
|
},
|
|
4218
|
-
|
|
4202
|
+
paramCount: 1,
|
|
4219
4203
|
},
|
|
4220
4204
|
'encode_uri_component': {
|
|
4221
4205
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4223,7 +4207,7 @@ var stringNormalExpression = {
|
|
|
4223
4207
|
assertString(value, sourceCodeInfo);
|
|
4224
4208
|
return encodeURIComponent(value);
|
|
4225
4209
|
},
|
|
4226
|
-
|
|
4210
|
+
paramCount: 1,
|
|
4227
4211
|
},
|
|
4228
4212
|
'decode_uri_component': {
|
|
4229
4213
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4236,7 +4220,7 @@ var stringNormalExpression = {
|
|
|
4236
4220
|
throw new LitsError(error, sourceCodeInfo);
|
|
4237
4221
|
}
|
|
4238
4222
|
},
|
|
4239
|
-
|
|
4223
|
+
paramCount: 1,
|
|
4240
4224
|
},
|
|
4241
4225
|
'blank?': {
|
|
4242
4226
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4247,7 +4231,7 @@ var stringNormalExpression = {
|
|
|
4247
4231
|
assertString(value, sourceCodeInfo);
|
|
4248
4232
|
return blankRegexp.test(value);
|
|
4249
4233
|
},
|
|
4250
|
-
|
|
4234
|
+
paramCount: 1,
|
|
4251
4235
|
},
|
|
4252
4236
|
'capitalize': {
|
|
4253
4237
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4255,7 +4239,7 @@ var stringNormalExpression = {
|
|
|
4255
4239
|
assertString(str, sourceCodeInfo);
|
|
4256
4240
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
4257
4241
|
},
|
|
4258
|
-
|
|
4242
|
+
paramCount: 1,
|
|
4259
4243
|
},
|
|
4260
4244
|
};
|
|
4261
4245
|
var doubleDollarRegexp = /\$\$/g;
|
|
@@ -4286,14 +4270,14 @@ var functionalNormalExpression = {
|
|
|
4286
4270
|
var applyArray = __spreadArray(__spreadArray([], __read(params.slice(0, -1)), false), __read(last), false);
|
|
4287
4271
|
return executeFunction(func, applyArray, contextStack, sourceCodeInfo);
|
|
4288
4272
|
},
|
|
4289
|
-
|
|
4273
|
+
paramCount: { min: 2 },
|
|
4290
4274
|
},
|
|
4291
4275
|
identity: {
|
|
4292
4276
|
evaluate: function (_a) {
|
|
4293
4277
|
var _b = __read(_a, 1), value = _b[0];
|
|
4294
4278
|
return toAny(value);
|
|
4295
4279
|
},
|
|
4296
|
-
|
|
4280
|
+
paramCount: 1,
|
|
4297
4281
|
},
|
|
4298
4282
|
partial: {
|
|
4299
4283
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4307,7 +4291,7 @@ var functionalNormalExpression = {
|
|
|
4307
4291
|
_b.p = params,
|
|
4308
4292
|
_b;
|
|
4309
4293
|
},
|
|
4310
|
-
|
|
4294
|
+
paramCount: { min: 1 },
|
|
4311
4295
|
},
|
|
4312
4296
|
comp: {
|
|
4313
4297
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4325,6 +4309,7 @@ var functionalNormalExpression = {
|
|
|
4325
4309
|
_a.f = fns,
|
|
4326
4310
|
_a;
|
|
4327
4311
|
},
|
|
4312
|
+
paramCount: {},
|
|
4328
4313
|
},
|
|
4329
4314
|
constantly: {
|
|
4330
4315
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4337,7 +4322,7 @@ var functionalNormalExpression = {
|
|
|
4337
4322
|
_b.v = toAny(value),
|
|
4338
4323
|
_b;
|
|
4339
4324
|
},
|
|
4340
|
-
|
|
4325
|
+
paramCount: 1,
|
|
4341
4326
|
},
|
|
4342
4327
|
juxt: {
|
|
4343
4328
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4349,7 +4334,7 @@ var functionalNormalExpression = {
|
|
|
4349
4334
|
_a.f = fns,
|
|
4350
4335
|
_a;
|
|
4351
4336
|
},
|
|
4352
|
-
|
|
4337
|
+
paramCount: { min: 1 },
|
|
4353
4338
|
},
|
|
4354
4339
|
complement: {
|
|
4355
4340
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4362,7 +4347,7 @@ var functionalNormalExpression = {
|
|
|
4362
4347
|
_b.f = toAny(fn),
|
|
4363
4348
|
_b;
|
|
4364
4349
|
},
|
|
4365
|
-
|
|
4350
|
+
paramCount: 1,
|
|
4366
4351
|
},
|
|
4367
4352
|
every_pred: {
|
|
4368
4353
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4374,7 +4359,7 @@ var functionalNormalExpression = {
|
|
|
4374
4359
|
_a.f = fns,
|
|
4375
4360
|
_a;
|
|
4376
4361
|
},
|
|
4377
|
-
|
|
4362
|
+
paramCount: { min: 1 },
|
|
4378
4363
|
},
|
|
4379
4364
|
some_pred: {
|
|
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
|
fnil: {
|
|
4392
4377
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4400,7 +4385,7 @@ var functionalNormalExpression = {
|
|
|
4400
4385
|
_b.p = params,
|
|
4401
4386
|
_b;
|
|
4402
4387
|
},
|
|
4403
|
-
|
|
4388
|
+
paramCount: { min: 2 },
|
|
4404
4389
|
},
|
|
4405
4390
|
};
|
|
4406
4391
|
|
|
@@ -4419,7 +4404,7 @@ var andSpecialExpression = {
|
|
|
4419
4404
|
};
|
|
4420
4405
|
return node;
|
|
4421
4406
|
},
|
|
4422
|
-
|
|
4407
|
+
paramCount: {},
|
|
4423
4408
|
evaluate: function (node, contextStack, _a) {
|
|
4424
4409
|
var e_1, _b;
|
|
4425
4410
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4463,14 +4448,14 @@ function getCommonPolishSpecialExpressionParser(name) {
|
|
|
4463
4448
|
|
|
4464
4449
|
var commentSpecialExpression = {
|
|
4465
4450
|
polishParse: getCommonPolishSpecialExpressionParser('comment'),
|
|
4466
|
-
|
|
4451
|
+
paramCount: {},
|
|
4467
4452
|
evaluate: function () { return null; },
|
|
4468
4453
|
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4469
4454
|
};
|
|
4470
4455
|
|
|
4471
4456
|
var condSpecialExpression = {
|
|
4472
4457
|
polishParse: getCommonPolishSpecialExpressionParser('cond'),
|
|
4473
|
-
|
|
4458
|
+
paramCount: { even: true },
|
|
4474
4459
|
evaluate: function (node, contextStack, _a) {
|
|
4475
4460
|
var e_1, _b;
|
|
4476
4461
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4500,7 +4485,7 @@ var condSpecialExpression = {
|
|
|
4500
4485
|
|
|
4501
4486
|
var switchSpecialExpression = {
|
|
4502
4487
|
polishParse: getCommonPolishSpecialExpressionParser('switch'),
|
|
4503
|
-
|
|
4488
|
+
paramCount: { odd: true },
|
|
4504
4489
|
evaluate: function (node, contextStack, _a) {
|
|
4505
4490
|
var e_1, _b;
|
|
4506
4491
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4531,7 +4516,7 @@ var switchSpecialExpression = {
|
|
|
4531
4516
|
|
|
4532
4517
|
var declaredSpecialExpression = {
|
|
4533
4518
|
polishParse: getCommonPolishSpecialExpressionParser('defined?'),
|
|
4534
|
-
|
|
4519
|
+
paramCount: 1,
|
|
4535
4520
|
evaluate: function (node, contextStack) {
|
|
4536
4521
|
var lookUpResult = contextStack.lookUp(node.p[0]);
|
|
4537
4522
|
return lookUpResult !== null;
|
|
@@ -4578,7 +4563,7 @@ var defSpecialExpression = {
|
|
|
4578
4563
|
assertSymbolNode(node.p[0], (_b = getTokenDebugData(node.token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
4579
4564
|
return node;
|
|
4580
4565
|
},
|
|
4581
|
-
|
|
4566
|
+
paramCount: 2,
|
|
4582
4567
|
evaluate: function (node, contextStack, _a) {
|
|
4583
4568
|
var _b;
|
|
4584
4569
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4603,7 +4588,7 @@ var defSpecialExpression = {
|
|
|
4603
4588
|
|
|
4604
4589
|
var doSpecialExpression = {
|
|
4605
4590
|
polishParse: getCommonPolishSpecialExpressionParser('do'),
|
|
4606
|
-
|
|
4591
|
+
paramCount: {},
|
|
4607
4592
|
evaluate: function (node, contextStack, _a) {
|
|
4608
4593
|
var e_1, _b;
|
|
4609
4594
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4675,7 +4660,7 @@ var defnSpecialExpression = {
|
|
|
4675
4660
|
};
|
|
4676
4661
|
return node;
|
|
4677
4662
|
},
|
|
4678
|
-
|
|
4663
|
+
paramCount: {},
|
|
4679
4664
|
evaluate: function (node, contextStack, _a) {
|
|
4680
4665
|
var _b;
|
|
4681
4666
|
var _c, _d;
|
|
@@ -4714,7 +4699,7 @@ var fnSpecialExpression = {
|
|
|
4714
4699
|
};
|
|
4715
4700
|
return node;
|
|
4716
4701
|
},
|
|
4717
|
-
|
|
4702
|
+
paramCount: {},
|
|
4718
4703
|
evaluate: function (node, contextStack, _a) {
|
|
4719
4704
|
var _b;
|
|
4720
4705
|
var _c;
|
|
@@ -4939,7 +4924,7 @@ function parseFunctionArguments(tokenStream, parseState, parsers) {
|
|
|
4939
4924
|
|
|
4940
4925
|
var ifSpecialExpression = {
|
|
4941
4926
|
polishParse: getCommonPolishSpecialExpressionParser('if'),
|
|
4942
|
-
|
|
4927
|
+
paramCount: { min: 2, max: 3 },
|
|
4943
4928
|
evaluate: function (node, contextStack, _a) {
|
|
4944
4929
|
var _b;
|
|
4945
4930
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4963,7 +4948,7 @@ var ifSpecialExpression = {
|
|
|
4963
4948
|
|
|
4964
4949
|
var unlessSpecialExpression = {
|
|
4965
4950
|
polishParse: getCommonPolishSpecialExpressionParser('unless'),
|
|
4966
|
-
|
|
4951
|
+
paramCount: { min: 2, max: 3 },
|
|
4967
4952
|
evaluate: function (node, contextStack, _a) {
|
|
4968
4953
|
var _b;
|
|
4969
4954
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5000,7 +4985,7 @@ var letSpecialExpression = {
|
|
|
5000
4985
|
};
|
|
5001
4986
|
return node;
|
|
5002
4987
|
},
|
|
5003
|
-
|
|
4988
|
+
paramCount: 0,
|
|
5004
4989
|
evaluate: function (node, contextStack, _a) {
|
|
5005
4990
|
var e_1, _b;
|
|
5006
4991
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5055,7 +5040,7 @@ var loopSpecialExpression = {
|
|
|
5055
5040
|
};
|
|
5056
5041
|
return node;
|
|
5057
5042
|
},
|
|
5058
|
-
|
|
5043
|
+
paramCount: {},
|
|
5059
5044
|
evaluate: function (node, contextStack, _a) {
|
|
5060
5045
|
var _b;
|
|
5061
5046
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5321,7 +5306,7 @@ var forSpecialExpression = {
|
|
|
5321
5306
|
};
|
|
5322
5307
|
return node;
|
|
5323
5308
|
},
|
|
5324
|
-
|
|
5309
|
+
paramCount: 1,
|
|
5325
5310
|
evaluate: function (node, contextStack, helpers) { return evaluateLoop(true, node, contextStack, helpers.evaluateAstNode); },
|
|
5326
5311
|
findUnresolvedIdentifiers: function (node, contextStack, _a) {
|
|
5327
5312
|
var findUnresolvedIdentifiers = _a.findUnresolvedIdentifiers, builtin = _a.builtin;
|
|
@@ -5343,7 +5328,7 @@ var doseqSpecialExpression = {
|
|
|
5343
5328
|
};
|
|
5344
5329
|
return node;
|
|
5345
5330
|
},
|
|
5346
|
-
|
|
5331
|
+
paramCount: 1,
|
|
5347
5332
|
evaluate: function (node, contextStack, helpers) {
|
|
5348
5333
|
evaluateLoop(false, node, contextStack, helpers.evaluateAstNode);
|
|
5349
5334
|
return null;
|
|
@@ -5356,7 +5341,7 @@ var doseqSpecialExpression = {
|
|
|
5356
5341
|
|
|
5357
5342
|
var orSpecialExpression = {
|
|
5358
5343
|
polishParse: getCommonPolishSpecialExpressionParser('||'),
|
|
5359
|
-
|
|
5344
|
+
paramCount: {},
|
|
5360
5345
|
evaluate: function (node, contextStack, _a) {
|
|
5361
5346
|
var e_1, _b;
|
|
5362
5347
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5386,7 +5371,7 @@ var orSpecialExpression = {
|
|
|
5386
5371
|
|
|
5387
5372
|
var qqSpecialExpression = {
|
|
5388
5373
|
polishParse: getCommonPolishSpecialExpressionParser('??'),
|
|
5389
|
-
|
|
5374
|
+
paramCount: { min: 1, max: 2 },
|
|
5390
5375
|
evaluate: function (node, contextStack, _a) {
|
|
5391
5376
|
var _b;
|
|
5392
5377
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5418,7 +5403,7 @@ var recurSpecialExpression = {
|
|
|
5418
5403
|
};
|
|
5419
5404
|
return node;
|
|
5420
5405
|
},
|
|
5421
|
-
|
|
5406
|
+
paramCount: {},
|
|
5422
5407
|
evaluate: function (node, contextStack, _a) {
|
|
5423
5408
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5424
5409
|
var params = node.p.map(function (paramNode) { return evaluateAstNode(paramNode, contextStack); });
|
|
@@ -5432,7 +5417,7 @@ var recurSpecialExpression = {
|
|
|
5432
5417
|
|
|
5433
5418
|
var throwSpecialExpression = {
|
|
5434
5419
|
polishParse: getCommonPolishSpecialExpressionParser('throw'),
|
|
5435
|
-
|
|
5420
|
+
paramCount: 1,
|
|
5436
5421
|
evaluate: function (node, contextStack, _a) {
|
|
5437
5422
|
var _b, _c;
|
|
5438
5423
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5473,7 +5458,7 @@ var trySpecialExpression = {
|
|
|
5473
5458
|
};
|
|
5474
5459
|
return node;
|
|
5475
5460
|
},
|
|
5476
|
-
|
|
5461
|
+
paramCount: 1,
|
|
5477
5462
|
evaluate: function (node, contextStack, _a) {
|
|
5478
5463
|
var _b;
|
|
5479
5464
|
var _c;
|
|
@@ -5910,8 +5895,9 @@ function evaluate(ast, contextStack) {
|
|
|
5910
5895
|
var e_1, _a;
|
|
5911
5896
|
var result = null;
|
|
5912
5897
|
var safeAstNode = ast.hasDebugData ? JSON.parse(JSON.stringify(ast)) : ast;
|
|
5913
|
-
if (safeAstNode.hasDebugData)
|
|
5898
|
+
if (safeAstNode.hasDebugData) {
|
|
5914
5899
|
removeCommenNodes(safeAstNode);
|
|
5900
|
+
}
|
|
5915
5901
|
try {
|
|
5916
5902
|
for (var _b = __values(safeAstNode.b), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
5917
5903
|
var node = _c.value;
|
|
@@ -6117,6 +6103,20 @@ function analyze(ast, params) {
|
|
|
6117
6103
|
};
|
|
6118
6104
|
}
|
|
6119
6105
|
|
|
6106
|
+
function minifyTokenStream(tokenStream) {
|
|
6107
|
+
var tokens = tokenStream.tokens.filter(function (token) {
|
|
6108
|
+
if (isP_CommentToken(token)
|
|
6109
|
+
|| isA_CommentToken(token)
|
|
6110
|
+
|| isA_MultiLineCommentToken(token)
|
|
6111
|
+
|| isA_WhitespaceToken(token)
|
|
6112
|
+
|| isP_WhitespaceToken(token)) {
|
|
6113
|
+
return false;
|
|
6114
|
+
}
|
|
6115
|
+
return true;
|
|
6116
|
+
});
|
|
6117
|
+
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
6118
|
+
}
|
|
6119
|
+
|
|
6120
6120
|
function parseSymbol(tokenStream, parseState) {
|
|
6121
6121
|
var _a;
|
|
6122
6122
|
var tkn = asToken(tokenStream.tokens[parseState.position++]);
|
|
@@ -6306,7 +6306,6 @@ function getPrecedence(operatorSign) {
|
|
|
6306
6306
|
}
|
|
6307
6307
|
}
|
|
6308
6308
|
function createNamedNormalExpressionNode(name, params, token) {
|
|
6309
|
-
var _a;
|
|
6310
6309
|
var node = {
|
|
6311
6310
|
t: AstNodeType.NormalExpression,
|
|
6312
6311
|
n: name,
|
|
@@ -6315,7 +6314,7 @@ function createNamedNormalExpressionNode(name, params, token) {
|
|
|
6315
6314
|
};
|
|
6316
6315
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
6317
6316
|
if (builtinExpression) {
|
|
6318
|
-
(
|
|
6317
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
6319
6318
|
}
|
|
6320
6319
|
return node;
|
|
6321
6320
|
}
|
|
@@ -6416,7 +6415,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6416
6415
|
AlgebraicParser.prototype.parse = function () {
|
|
6417
6416
|
var nodes = [];
|
|
6418
6417
|
while (!this.isAtEnd()) {
|
|
6419
|
-
nodes.push(this.parseExpression());
|
|
6418
|
+
nodes.push(this.parseExpression(0, true));
|
|
6420
6419
|
if (!isA_OperatorToken(this.peek(), ';')) {
|
|
6421
6420
|
break;
|
|
6422
6421
|
}
|
|
@@ -6424,9 +6423,10 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6424
6423
|
}
|
|
6425
6424
|
return nodes;
|
|
6426
6425
|
};
|
|
6427
|
-
AlgebraicParser.prototype.parseExpression = function (precedence) {
|
|
6428
|
-
var _a;
|
|
6426
|
+
AlgebraicParser.prototype.parseExpression = function (precedence, moduleScope) {
|
|
6427
|
+
var _a, _b;
|
|
6429
6428
|
if (precedence === void 0) { precedence = 0; }
|
|
6429
|
+
if (moduleScope === void 0) { moduleScope = false; }
|
|
6430
6430
|
var firstToken = this.peek();
|
|
6431
6431
|
var left;
|
|
6432
6432
|
if (isA_SymbolToken(firstToken)) {
|
|
@@ -6462,6 +6462,9 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6462
6462
|
return this.parseFunction(firstToken);
|
|
6463
6463
|
}
|
|
6464
6464
|
else if (isA_ReservedSymbolToken(firstToken, 'export')) {
|
|
6465
|
+
if (!moduleScope) {
|
|
6466
|
+
throw new LitsError('export is only allowed in module scope', (_a = getTokenDebugData(firstToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6467
|
+
}
|
|
6465
6468
|
return this.parseExport(firstToken);
|
|
6466
6469
|
}
|
|
6467
6470
|
left || (left = this.parseOperand());
|
|
@@ -6499,7 +6502,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6499
6502
|
operator = this.peek();
|
|
6500
6503
|
}
|
|
6501
6504
|
if (!left) {
|
|
6502
|
-
throw new LitsError('Expected operand', (
|
|
6505
|
+
throw new LitsError('Expected operand', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6503
6506
|
}
|
|
6504
6507
|
return left;
|
|
6505
6508
|
};
|
|
@@ -6607,32 +6610,6 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6607
6610
|
return parseReservedSymbol(this.tokenStream, this.parseState);
|
|
6608
6611
|
case 'RegexpShorthand':
|
|
6609
6612
|
return parseRegexpShorthand(this.tokenStream, this.parseState);
|
|
6610
|
-
case 'PolNotation': {
|
|
6611
|
-
this.parseState.algebraic = false;
|
|
6612
|
-
var astNodes = [];
|
|
6613
|
-
this.advance();
|
|
6614
|
-
do {
|
|
6615
|
-
astNodes.push(this.parseState.parseToken(this.tokenStream, this.parseState));
|
|
6616
|
-
} while (!isEndNotationToken(this.peek()));
|
|
6617
|
-
this.advance();
|
|
6618
|
-
this.parseState.algebraic = true;
|
|
6619
|
-
if (astNodes.length === 1) {
|
|
6620
|
-
return astNodes[0];
|
|
6621
|
-
}
|
|
6622
|
-
return {
|
|
6623
|
-
t: AstNodeType.SpecialExpression,
|
|
6624
|
-
n: 'do',
|
|
6625
|
-
p: astNodes,
|
|
6626
|
-
token: getTokenDebugData(token) && token,
|
|
6627
|
-
};
|
|
6628
|
-
}
|
|
6629
|
-
case 'AlgNotation': {
|
|
6630
|
-
this.advance();
|
|
6631
|
-
var node = this.parseOperand();
|
|
6632
|
-
assertEndNotationToken(this.peek());
|
|
6633
|
-
this.advance();
|
|
6634
|
-
return node;
|
|
6635
|
-
}
|
|
6636
6613
|
default:
|
|
6637
6614
|
throw new LitsError("Unknown token type: ".concat(tokenType), (_b = getTokenDebugData(token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6638
6615
|
}
|
|
@@ -6737,7 +6714,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6737
6714
|
p: params,
|
|
6738
6715
|
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
6739
6716
|
};
|
|
6740
|
-
builtin.specialExpressions[node.n].
|
|
6717
|
+
assertNumberOfParams(builtin.specialExpressions[node.n].paramCount, node);
|
|
6741
6718
|
return node;
|
|
6742
6719
|
}
|
|
6743
6720
|
case 'fn':
|
|
@@ -6790,7 +6767,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6790
6767
|
}
|
|
6791
6768
|
};
|
|
6792
6769
|
AlgebraicParser.prototype.parseFunctionArguments = function () {
|
|
6793
|
-
var _a, _b, _c, _d
|
|
6770
|
+
var _a, _b, _c, _d;
|
|
6794
6771
|
var firstToken = this.peek();
|
|
6795
6772
|
if (isA_SymbolToken(firstToken)) {
|
|
6796
6773
|
this.advance();
|
|
@@ -6805,62 +6782,54 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6805
6782
|
}
|
|
6806
6783
|
this.advance();
|
|
6807
6784
|
var rest = false;
|
|
6808
|
-
var letBindingObject;
|
|
6809
6785
|
var args = [];
|
|
6810
6786
|
var restArg;
|
|
6811
|
-
while (!this.isAtEnd() && !isRParenToken(this.peek())) {
|
|
6812
|
-
if (
|
|
6813
|
-
throw new LitsError('Expected right parentheses', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6814
|
-
}
|
|
6815
|
-
if (isLBraceToken(this.peek())) {
|
|
6816
|
-
letBindingObject = this.parseObject();
|
|
6817
|
-
}
|
|
6818
|
-
else {
|
|
6819
|
-
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6820
|
-
if (rest) {
|
|
6821
|
-
throw new LitsError('Multiple spread operators in lambda function', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6822
|
-
}
|
|
6823
|
-
this.advance();
|
|
6824
|
-
rest = true;
|
|
6825
|
-
}
|
|
6826
|
-
var symbolToken = this.peek();
|
|
6827
|
-
if (!isA_SymbolToken(symbolToken)) {
|
|
6828
|
-
throw new LitsError('Expected symbol', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6829
|
-
}
|
|
6787
|
+
while (!this.isAtEnd() && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6788
|
+
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6830
6789
|
if (rest) {
|
|
6831
|
-
|
|
6832
|
-
}
|
|
6833
|
-
else {
|
|
6834
|
-
args.push(symbolToken[1]);
|
|
6790
|
+
throw new LitsError('Multiple spread operators in lambda function', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6835
6791
|
}
|
|
6836
6792
|
this.advance();
|
|
6793
|
+
rest = true;
|
|
6794
|
+
}
|
|
6795
|
+
var symbolToken = this.peek();
|
|
6796
|
+
if (!isA_SymbolToken(symbolToken)) {
|
|
6797
|
+
throw new LitsError('Expected symbol', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6837
6798
|
}
|
|
6838
|
-
if (
|
|
6839
|
-
|
|
6799
|
+
if (rest) {
|
|
6800
|
+
restArg = symbolToken[1];
|
|
6801
|
+
}
|
|
6802
|
+
else {
|
|
6803
|
+
args.push(symbolToken[1]);
|
|
6804
|
+
}
|
|
6805
|
+
this.advance();
|
|
6806
|
+
if (!isA_OperatorToken(this.peek(), ',') && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6807
|
+
throw new LitsError('Expected comma or closing parenthesis', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6840
6808
|
}
|
|
6841
6809
|
if (isA_OperatorToken(this.peek(), ',')) {
|
|
6842
6810
|
this.advance();
|
|
6843
6811
|
}
|
|
6844
6812
|
}
|
|
6845
6813
|
var arity = restArg !== undefined ? { min: args.length } : args.length;
|
|
6814
|
+
// let bindings, to be able to pass on values in the context down to the body
|
|
6815
|
+
// This is needed since lits is dynamically scoped
|
|
6816
|
+
// E.g.
|
|
6817
|
+
// x => y => x + y // would not work, x is not available in the second lambda
|
|
6818
|
+
// x => (y, let x = x) => x + y // would work, x is available in the second lambda
|
|
6819
|
+
var bindingNodess = [];
|
|
6820
|
+
var token = this.peek();
|
|
6821
|
+
while (isA_SymbolToken(token, 'let')) {
|
|
6822
|
+
var letNode = this.parseLet(token, true);
|
|
6823
|
+
bindingNodess.push(letNode.bs[0]);
|
|
6824
|
+
token = this.peek();
|
|
6825
|
+
}
|
|
6846
6826
|
if (!isRParenToken(this.peek())) {
|
|
6847
|
-
throw new LitsError('Expected closing parenthesis', (
|
|
6827
|
+
throw new LitsError('Expected closing parenthesis', (_d = getTokenDebugData(this.peek())) === null || _d === void 0 ? void 0 : _d.sourceCodeInfo);
|
|
6848
6828
|
}
|
|
6849
|
-
var letBindings = letBindingObject ? arrayToPairs(letBindingObject.p) : [];
|
|
6850
6829
|
var functionArguments = {
|
|
6851
6830
|
m: args,
|
|
6852
6831
|
r: restArg,
|
|
6853
|
-
b:
|
|
6854
|
-
var key = pair[0];
|
|
6855
|
-
var value = pair[1];
|
|
6856
|
-
return {
|
|
6857
|
-
t: AstNodeType.Binding,
|
|
6858
|
-
n: key.v,
|
|
6859
|
-
v: value,
|
|
6860
|
-
p: [],
|
|
6861
|
-
token: getTokenDebugData(key.token) && key.token,
|
|
6862
|
-
};
|
|
6863
|
-
}),
|
|
6832
|
+
b: bindingNodess,
|
|
6864
6833
|
};
|
|
6865
6834
|
this.advance();
|
|
6866
6835
|
return {
|
|
@@ -7310,6 +7279,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
7310
7279
|
}
|
|
7311
7280
|
assertA_ReservedSymbolToken(this.peek(), 'end');
|
|
7312
7281
|
this.advance();
|
|
7282
|
+
assertA_OperatorToken(this.peek(), ';');
|
|
7313
7283
|
var fnNode = {
|
|
7314
7284
|
t: AstNodeType.SpecialExpression,
|
|
7315
7285
|
n: 'fn',
|
|
@@ -7472,7 +7442,7 @@ function parseObjectLitteral(tokenStream, parseState) {
|
|
|
7472
7442
|
p: params,
|
|
7473
7443
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
7474
7444
|
};
|
|
7475
|
-
|
|
7445
|
+
assertNumberOfParams({ even: true }, node);
|
|
7476
7446
|
return node;
|
|
7477
7447
|
}
|
|
7478
7448
|
var placeholderRegexp = /^%([1-9]\d?)?$/;
|
|
@@ -7578,7 +7548,7 @@ function parseBinding(tokenStream, parseState) {
|
|
|
7578
7548
|
return node;
|
|
7579
7549
|
}
|
|
7580
7550
|
function parseNormalExpression(tokenStream, parseState) {
|
|
7581
|
-
var _a
|
|
7551
|
+
var _a;
|
|
7582
7552
|
var startBracketToken = tokenStream.hasDebugData ? asLParenToken(tokenStream.tokens[parseState.position]) : undefined;
|
|
7583
7553
|
parseState.position += 1;
|
|
7584
7554
|
var fnNode = parseState.parseToken(tokenStream, parseState);
|
|
@@ -7602,7 +7572,7 @@ function parseNormalExpression(tokenStream, parseState) {
|
|
|
7602
7572
|
};
|
|
7603
7573
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
7604
7574
|
if (builtinExpression) {
|
|
7605
|
-
(
|
|
7575
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
7606
7576
|
}
|
|
7607
7577
|
return node;
|
|
7608
7578
|
}
|
|
@@ -7611,7 +7581,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7611
7581
|
var firstToken = asLParenToken(tokenStream.tokens[parseState.position++]);
|
|
7612
7582
|
var nameToken = asP_SymbolToken(tokenStream.tokens[parseState.position++]);
|
|
7613
7583
|
var expressionName = nameToken[1];
|
|
7614
|
-
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse,
|
|
7584
|
+
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse, paramCount = _b.paramCount;
|
|
7615
7585
|
var node = parse(tokenStream, parseState, firstToken, {
|
|
7616
7586
|
parseExpression: parseExpression,
|
|
7617
7587
|
parseTokensUntilClosingBracket: parseTokensUntilClosingBracket,
|
|
@@ -7620,7 +7590,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7620
7590
|
parseBindings: parseBindings,
|
|
7621
7591
|
parseArgument: parseArgument,
|
|
7622
7592
|
});
|
|
7623
|
-
|
|
7593
|
+
assertNumberOfParams(paramCount, node);
|
|
7624
7594
|
return node;
|
|
7625
7595
|
}
|
|
7626
7596
|
function parsePolishToken(tokenStream, parseState) {
|
|
@@ -7650,47 +7620,12 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7650
7620
|
return parseFnShorthand(tokenStream, parseState);
|
|
7651
7621
|
case 'P_Comment':
|
|
7652
7622
|
return parseComment(tokenStream, parseState);
|
|
7653
|
-
case 'AlgNotation': {
|
|
7654
|
-
parseState.position += 1;
|
|
7655
|
-
parseState.algebraic = true;
|
|
7656
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7657
|
-
var nodes = algebraicParser.parse();
|
|
7658
|
-
assertEndNotationToken(tokenStream.tokens[parseState.position++]);
|
|
7659
|
-
parseState.algebraic = false;
|
|
7660
|
-
if (nodes.length === 1) {
|
|
7661
|
-
return nodes[0];
|
|
7662
|
-
}
|
|
7663
|
-
return {
|
|
7664
|
-
t: AstNodeType.SpecialExpression,
|
|
7665
|
-
n: 'do',
|
|
7666
|
-
p: nodes,
|
|
7667
|
-
token: nodes[0].token,
|
|
7668
|
-
};
|
|
7669
|
-
}
|
|
7670
|
-
case 'PolNotation': {
|
|
7671
|
-
var astNodes = [];
|
|
7672
|
-
parseState.position += 1;
|
|
7673
|
-
do {
|
|
7674
|
-
astNodes.push(parsePolishToken(tokenStream, parseState));
|
|
7675
|
-
} while (!isEndNotationToken(asToken(tokenStream.tokens[parseState.position])));
|
|
7676
|
-
parseState.position += 1;
|
|
7677
|
-
if (astNodes.length === 1) {
|
|
7678
|
-
return astNodes[0];
|
|
7679
|
-
}
|
|
7680
|
-
return {
|
|
7681
|
-
t: AstNodeType.SpecialExpression,
|
|
7682
|
-
n: 'do',
|
|
7683
|
-
p: astNodes,
|
|
7684
|
-
token: astNodes[0].token,
|
|
7685
|
-
};
|
|
7686
|
-
}
|
|
7687
7623
|
case 'P_CollectionAccessor':
|
|
7688
7624
|
case 'P_Modifier':
|
|
7689
7625
|
case 'RParen':
|
|
7690
7626
|
case 'RBracket':
|
|
7691
7627
|
case 'RBrace':
|
|
7692
7628
|
case 'P_Whitespace':
|
|
7693
|
-
case 'EndNotation':
|
|
7694
7629
|
break;
|
|
7695
7630
|
/* v8 ignore next 2 */
|
|
7696
7631
|
default:
|
|
@@ -7700,49 +7635,28 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7700
7635
|
}
|
|
7701
7636
|
|
|
7702
7637
|
function parse(tokenStream) {
|
|
7703
|
-
|
|
7704
|
-
var
|
|
7638
|
+
tokenStream = minifyTokenStream(tokenStream);
|
|
7639
|
+
var algebraic = tokenStream.algebraic;
|
|
7705
7640
|
var ast = {
|
|
7706
7641
|
b: [],
|
|
7707
|
-
hasDebugData:
|
|
7642
|
+
hasDebugData: tokenStream.hasDebugData,
|
|
7708
7643
|
};
|
|
7709
7644
|
var parseState = {
|
|
7710
7645
|
position: 0,
|
|
7711
|
-
algebraic: (_a = safeTokenStream.algebraic) !== null && _a !== void 0 ? _a : false,
|
|
7712
7646
|
parseToken: parseToken,
|
|
7713
7647
|
};
|
|
7714
|
-
|
|
7715
|
-
|
|
7648
|
+
if (algebraic) {
|
|
7649
|
+
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7650
|
+
ast.b = algebraicParser.parse();
|
|
7716
7651
|
}
|
|
7717
|
-
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
var tokens = tokenStream.tokens.filter(function (token) {
|
|
7721
|
-
if (isP_CommentToken(token)
|
|
7722
|
-
|| isA_CommentToken(token)
|
|
7723
|
-
|| isA_MultiLineCommentToken(token)
|
|
7724
|
-
|| isA_WhitespaceToken(token)
|
|
7725
|
-
|| isP_WhitespaceToken(token)) {
|
|
7726
|
-
return false;
|
|
7652
|
+
else {
|
|
7653
|
+
while (parseState.position < tokenStream.tokens.length) {
|
|
7654
|
+
ast.b.push(parseToken(tokenStream, parseState));
|
|
7727
7655
|
}
|
|
7728
|
-
|
|
7729
|
-
|
|
7730
|
-
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
7656
|
+
}
|
|
7657
|
+
return ast;
|
|
7731
7658
|
}
|
|
7732
7659
|
function parseToken(tokenStream, parseState) {
|
|
7733
|
-
if (parseState.algebraic) {
|
|
7734
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7735
|
-
var nodes = algebraicParser.parse();
|
|
7736
|
-
if (nodes.length === 1) {
|
|
7737
|
-
return nodes[0];
|
|
7738
|
-
}
|
|
7739
|
-
return {
|
|
7740
|
-
t: AstNodeType.SpecialExpression,
|
|
7741
|
-
n: 'do',
|
|
7742
|
-
p: nodes,
|
|
7743
|
-
token: nodes[0].token,
|
|
7744
|
-
};
|
|
7745
|
-
}
|
|
7746
7660
|
return parsePolishToken(tokenStream, parseState);
|
|
7747
7661
|
}
|
|
7748
7662
|
|
|
@@ -7772,15 +7686,6 @@ var tokenizeLBrace = function (input, position) {
|
|
|
7772
7686
|
var tokenizeRBrace = function (input, position) {
|
|
7773
7687
|
return tokenizeSimpleToken('RBrace', '}', input, position);
|
|
7774
7688
|
};
|
|
7775
|
-
var tokenizePolishNotation = function (input, position) {
|
|
7776
|
-
return tokenizeSimpleToken('PolNotation', '$`', input, position);
|
|
7777
|
-
};
|
|
7778
|
-
var tokenizeAlgebraicNotation = function (input, position) {
|
|
7779
|
-
return tokenizeSimpleToken('AlgNotation', '@`', input, position);
|
|
7780
|
-
};
|
|
7781
|
-
var tokenizeEndNotation = function (input, position) {
|
|
7782
|
-
return tokenizeSimpleToken('EndNotation', '`', input, position);
|
|
7783
|
-
};
|
|
7784
7689
|
var tokenizeString = function (input, position) {
|
|
7785
7690
|
if (input[position] !== '"')
|
|
7786
7691
|
return NO_MATCH;
|
|
@@ -7833,9 +7738,6 @@ function tokenizeSimpleToken(type, value, input, position) {
|
|
|
7833
7738
|
return NO_MATCH;
|
|
7834
7739
|
}
|
|
7835
7740
|
var commonTokenizers = [
|
|
7836
|
-
tokenizePolishNotation,
|
|
7837
|
-
tokenizeAlgebraicNotation,
|
|
7838
|
-
tokenizeEndNotation,
|
|
7839
7741
|
tokenizeLParen,
|
|
7840
7742
|
tokenizeRParen,
|
|
7841
7743
|
tokenizeLBracket,
|
|
@@ -8345,7 +8247,6 @@ function getSugar() {
|
|
|
8345
8247
|
|
|
8346
8248
|
function tokenize(input, params) {
|
|
8347
8249
|
var debug = !!params.debug;
|
|
8348
|
-
var notationStack = [params.algebraic ? 'algebraic' : 'polish'];
|
|
8349
8250
|
var position = 0;
|
|
8350
8251
|
var tokenStream = {
|
|
8351
8252
|
tokens: [],
|
|
@@ -8354,7 +8255,7 @@ function tokenize(input, params) {
|
|
|
8354
8255
|
algebraic: !!params.algebraic,
|
|
8355
8256
|
};
|
|
8356
8257
|
while (position < input.length) {
|
|
8357
|
-
var tokenizers =
|
|
8258
|
+
var tokenizers = params.algebraic ? algebraicTokenizers : polishTokenizers;
|
|
8358
8259
|
var tokenDescriptor = getCurrentToken(input, position, tokenizers);
|
|
8359
8260
|
var debugData = debug
|
|
8360
8261
|
? {
|
|
@@ -8371,23 +8272,8 @@ function tokenize(input, params) {
|
|
|
8371
8272
|
addTokenDebugData(token, debugData);
|
|
8372
8273
|
}
|
|
8373
8274
|
tokenStream.tokens.push(token);
|
|
8374
|
-
if (isAlgebraicNotationToken(token)) {
|
|
8375
|
-
notationStack.push('algebraic');
|
|
8376
|
-
}
|
|
8377
|
-
if (isPolishNotationToken(token)) {
|
|
8378
|
-
notationStack.push('polish');
|
|
8379
|
-
}
|
|
8380
|
-
if (isEndNotationToken(token)) {
|
|
8381
|
-
notationStack.pop();
|
|
8382
|
-
if (notationStack.length < 1) {
|
|
8383
|
-
throw new LitsError('Unexpected end directive `.', debugData === null || debugData === void 0 ? void 0 : debugData.sourceCodeInfo);
|
|
8384
|
-
}
|
|
8385
|
-
}
|
|
8386
8275
|
}
|
|
8387
8276
|
}
|
|
8388
|
-
if (notationStack.length > 1) {
|
|
8389
|
-
throw new LitsError('Missing end directive `.', createSourceCodeInfo(input, position, params.filePath));
|
|
8390
|
-
}
|
|
8391
8277
|
applySugar(tokenStream);
|
|
8392
8278
|
return tokenStream;
|
|
8393
8279
|
}
|
|
@@ -8472,9 +8358,6 @@ function untokenizeToken(token) {
|
|
|
8472
8358
|
case 'RBracket': return ']';
|
|
8473
8359
|
case 'LBrace': return '{';
|
|
8474
8360
|
case 'RBrace': return '}';
|
|
8475
|
-
case 'PolNotation': return '$`';
|
|
8476
|
-
case 'AlgNotation': return '@`';
|
|
8477
|
-
case 'EndNotation': return '`';
|
|
8478
8361
|
case 'P_FnShorthand': return '#';
|
|
8479
8362
|
/* v8 ignore next 2 */
|
|
8480
8363
|
default:
|
|
@@ -8599,7 +8482,8 @@ var Lits = /** @class */ (function () {
|
|
|
8599
8482
|
if (tokenizeParams === void 0) { tokenizeParams = {}; }
|
|
8600
8483
|
var debug = this.debug;
|
|
8601
8484
|
var algebraic = this.algebraic;
|
|
8602
|
-
|
|
8485
|
+
var tokenStream = tokenize(program, __assign(__assign({}, tokenizeParams), { debug: debug, algebraic: algebraic }));
|
|
8486
|
+
return tokenizeParams.minify ? minifyTokenStream(tokenStream) : tokenStream;
|
|
8603
8487
|
};
|
|
8604
8488
|
Lits.prototype.parse = function (tokenStream) {
|
|
8605
8489
|
return parse(tokenStream);
|