@mojir/lits 2.0.19 → 2.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/cli.js +339 -455
- package/dist/cli/src/Lits/Lits.d.ts +3 -1
- package/dist/cli/src/builtin/interface.d.ts +9 -5
- package/dist/cli/src/parser/index.d.ts +1 -2
- package/dist/cli/src/parser/interface.d.ts +0 -1
- package/dist/cli/src/tokenizer/algebraic/algebraicTokenizers.d.ts +1 -1
- package/dist/cli/src/tokenizer/algebraic/algebraicTokens.d.ts +2 -2
- package/dist/cli/src/tokenizer/common/commonTokenizers.d.ts +2 -2
- package/dist/cli/src/tokenizer/common/commonTokens.d.ts +2 -14
- package/dist/cli/src/tokenizer/minifyTokenStream.d.ts +2 -0
- package/dist/cli/src/tokenizer/polish/polishTokenizers.d.ts +1 -1
- package/dist/cli/src/tokenizer/polish/polishTokens.d.ts +2 -2
- package/dist/cli/src/tokenizer/tokens.d.ts +2 -2
- package/dist/cli/src/typeGuards/index.d.ts +1 -7
- package/dist/index.esm.js +338 -454
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +338 -454
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +338 -454
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/Lits/Lits.d.ts +3 -1
- package/dist/src/builtin/interface.d.ts +9 -5
- package/dist/src/parser/index.d.ts +1 -2
- package/dist/src/parser/interface.d.ts +0 -1
- package/dist/src/tokenizer/algebraic/algebraicTokenizers.d.ts +1 -1
- package/dist/src/tokenizer/algebraic/algebraicTokens.d.ts +2 -2
- package/dist/src/tokenizer/common/commonTokenizers.d.ts +2 -2
- package/dist/src/tokenizer/common/commonTokens.d.ts +2 -14
- package/dist/src/tokenizer/minifyTokenStream.d.ts +2 -0
- package/dist/src/tokenizer/polish/polishTokenizers.d.ts +1 -1
- package/dist/src/tokenizer/polish/polishTokens.d.ts +2 -2
- package/dist/src/tokenizer/tokens.d.ts +2 -2
- package/dist/src/typeGuards/index.d.ts +1 -7
- package/dist/testFramework.esm.js +448 -564
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +448 -564
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
package/dist/testFramework.js
CHANGED
|
@@ -277,9 +277,6 @@ var commonSimpleTokenTypes = [
|
|
|
277
277
|
'RBrace',
|
|
278
278
|
'RBracket',
|
|
279
279
|
'RParen',
|
|
280
|
-
'AlgNotation',
|
|
281
|
-
'PolNotation',
|
|
282
|
-
'EndNotation',
|
|
283
280
|
];
|
|
284
281
|
var commomValueTokenTypes = [
|
|
285
282
|
'String',
|
|
@@ -369,20 +366,6 @@ function asRegexpShorthandToken(token) {
|
|
|
369
366
|
assertRegexpShorthandToken(token);
|
|
370
367
|
return token;
|
|
371
368
|
}
|
|
372
|
-
function isAlgebraicNotationToken(token) {
|
|
373
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'AlgNotation';
|
|
374
|
-
}
|
|
375
|
-
function isPolishNotationToken(token) {
|
|
376
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'PolNotation';
|
|
377
|
-
}
|
|
378
|
-
function isEndNotationToken(token) {
|
|
379
|
-
return (token === null || token === void 0 ? void 0 : token[0]) === 'EndNotation';
|
|
380
|
-
}
|
|
381
|
-
function assertEndNotationToken(token) {
|
|
382
|
-
if (!isEndNotationToken(token)) {
|
|
383
|
-
throwUnexpectedToken('EndNotation', undefined, token);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
369
|
|
|
387
370
|
var algebraicSimpleTokenTypes = __spreadArray([], __read(commonSimpleTokenTypes), false);
|
|
388
371
|
var algebraicOnlyValueTokenTypes = [
|
|
@@ -771,6 +754,128 @@ function asNumber(value, sourceCodeInfo, options) {
|
|
|
771
754
|
return value;
|
|
772
755
|
}
|
|
773
756
|
|
|
757
|
+
var bitwiseNormalExpression = {
|
|
758
|
+
'<<': {
|
|
759
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
760
|
+
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
761
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
762
|
+
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
763
|
+
return num << count;
|
|
764
|
+
},
|
|
765
|
+
paramCount: 2,
|
|
766
|
+
},
|
|
767
|
+
'>>': {
|
|
768
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
769
|
+
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
770
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
771
|
+
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
772
|
+
return num >> count;
|
|
773
|
+
},
|
|
774
|
+
paramCount: 2,
|
|
775
|
+
},
|
|
776
|
+
'>>>': {
|
|
777
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
778
|
+
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
779
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
780
|
+
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
781
|
+
return num >>> count;
|
|
782
|
+
},
|
|
783
|
+
paramCount: 2,
|
|
784
|
+
},
|
|
785
|
+
'~': {
|
|
786
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
787
|
+
var _b = __read(_a, 1), num = _b[0];
|
|
788
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
789
|
+
return ~num;
|
|
790
|
+
},
|
|
791
|
+
paramCount: 1,
|
|
792
|
+
},
|
|
793
|
+
'&': {
|
|
794
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
795
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
796
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
797
|
+
return rest.reduce(function (result, value) {
|
|
798
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
799
|
+
return result & value;
|
|
800
|
+
}, first);
|
|
801
|
+
},
|
|
802
|
+
paramCount: { min: 2 },
|
|
803
|
+
},
|
|
804
|
+
'&!': {
|
|
805
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
806
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
807
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
808
|
+
return rest.reduce(function (result, value) {
|
|
809
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
810
|
+
return result & ~value;
|
|
811
|
+
}, first);
|
|
812
|
+
},
|
|
813
|
+
paramCount: { min: 2 },
|
|
814
|
+
},
|
|
815
|
+
'|': {
|
|
816
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
817
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
818
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
819
|
+
return rest.reduce(function (result, value) {
|
|
820
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
821
|
+
return result | value;
|
|
822
|
+
}, first);
|
|
823
|
+
},
|
|
824
|
+
paramCount: { min: 2 },
|
|
825
|
+
},
|
|
826
|
+
'^': {
|
|
827
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
828
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
829
|
+
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
830
|
+
return rest.reduce(function (result, value) {
|
|
831
|
+
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
832
|
+
return result ^ value;
|
|
833
|
+
}, first);
|
|
834
|
+
},
|
|
835
|
+
paramCount: { min: 2 },
|
|
836
|
+
},
|
|
837
|
+
'bit_flip': {
|
|
838
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
839
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
840
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
841
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
842
|
+
var mask = 1 << index;
|
|
843
|
+
return (num ^= mask);
|
|
844
|
+
},
|
|
845
|
+
paramCount: 2,
|
|
846
|
+
},
|
|
847
|
+
'bit_set': {
|
|
848
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
849
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
850
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
851
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
852
|
+
var mask = 1 << index;
|
|
853
|
+
return (num |= mask);
|
|
854
|
+
},
|
|
855
|
+
paramCount: 2,
|
|
856
|
+
},
|
|
857
|
+
'bit_clear': {
|
|
858
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
859
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
860
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
861
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
862
|
+
var mask = 1 << index;
|
|
863
|
+
return (num &= ~mask);
|
|
864
|
+
},
|
|
865
|
+
paramCount: 2,
|
|
866
|
+
},
|
|
867
|
+
'bit_test': {
|
|
868
|
+
evaluate: function (_a, sourceCodeInfo) {
|
|
869
|
+
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
870
|
+
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
871
|
+
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
872
|
+
var mask = 1 << index;
|
|
873
|
+
return !!(num & mask);
|
|
874
|
+
},
|
|
875
|
+
paramCount: 2,
|
|
876
|
+
},
|
|
877
|
+
};
|
|
878
|
+
|
|
774
879
|
function getAssertionError(typeName, value, sourceCodeInfo) {
|
|
775
880
|
return new LitsError("Expected ".concat(typeName, ", got ").concat(valueToString(value), "."), getSourceCodeInfo(value, sourceCodeInfo));
|
|
776
881
|
}
|
|
@@ -922,20 +1027,6 @@ function withoutCommentNodes(astNodes) {
|
|
|
922
1027
|
return astNodes.filter(function (n) { return n.t !== AstNodeType.Comment; });
|
|
923
1028
|
}
|
|
924
1029
|
|
|
925
|
-
function assertEvenNumberOfParams(node) {
|
|
926
|
-
var _a;
|
|
927
|
-
var length = withoutCommentNodes(node.p).length;
|
|
928
|
-
if (length % 2 !== 0) {
|
|
929
|
-
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);
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
function assertOddNumberOfParams(node) {
|
|
933
|
-
var _a;
|
|
934
|
-
var length = withoutCommentNodes(node.p).length;
|
|
935
|
-
if (length % 2 !== 1) {
|
|
936
|
-
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);
|
|
937
|
-
}
|
|
938
|
-
}
|
|
939
1030
|
function assertNumberOfParams(count, node) {
|
|
940
1031
|
var _a, _b;
|
|
941
1032
|
assertCount({
|
|
@@ -967,9 +1058,17 @@ function assertCount(_a) {
|
|
|
967
1058
|
}
|
|
968
1059
|
}
|
|
969
1060
|
else {
|
|
970
|
-
var min = count.min, max = count.max;
|
|
971
|
-
if (
|
|
972
|
-
|
|
1061
|
+
var min = count.min, max = count.max, even = count.even, odd = count.odd;
|
|
1062
|
+
if (even) {
|
|
1063
|
+
if (length % 2 !== 0) {
|
|
1064
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an even number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
if (odd) {
|
|
1068
|
+
if (length % 2 !== 1) {
|
|
1069
|
+
throw new LitsError("Wrong number of arguments to \"".concat(name, "\",, expected an odd number, got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
973
1072
|
if (typeof min === 'number' && length < min) {
|
|
974
1073
|
throw new LitsError("Wrong number of arguments to \"".concat(name, "\", expected at least ").concat(min, ", got ").concat(valueToString(length), "."), sourceCodeInfo);
|
|
975
1074
|
}
|
|
@@ -979,128 +1078,6 @@ function assertCount(_a) {
|
|
|
979
1078
|
}
|
|
980
1079
|
}
|
|
981
1080
|
|
|
982
|
-
var bitwiseNormalExpression = {
|
|
983
|
-
'<<': {
|
|
984
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
985
|
-
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
986
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
987
|
-
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
988
|
-
return num << count;
|
|
989
|
-
},
|
|
990
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
991
|
-
},
|
|
992
|
-
'>>': {
|
|
993
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
994
|
-
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
995
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
996
|
-
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
997
|
-
return num >> count;
|
|
998
|
-
},
|
|
999
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1000
|
-
},
|
|
1001
|
-
'>>>': {
|
|
1002
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1003
|
-
var _b = __read(_a, 2), num = _b[0], count = _b[1];
|
|
1004
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1005
|
-
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1006
|
-
return num >>> count;
|
|
1007
|
-
},
|
|
1008
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1009
|
-
},
|
|
1010
|
-
'~': {
|
|
1011
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1012
|
-
var _b = __read(_a, 1), num = _b[0];
|
|
1013
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1014
|
-
return ~num;
|
|
1015
|
-
},
|
|
1016
|
-
validate: function (node) { return assertNumberOfParams(1, node); },
|
|
1017
|
-
},
|
|
1018
|
-
'&': {
|
|
1019
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1020
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1021
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1022
|
-
return rest.reduce(function (result, value) {
|
|
1023
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1024
|
-
return result & value;
|
|
1025
|
-
}, first);
|
|
1026
|
-
},
|
|
1027
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1028
|
-
},
|
|
1029
|
-
'&!': {
|
|
1030
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1031
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1032
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1033
|
-
return rest.reduce(function (result, value) {
|
|
1034
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1035
|
-
return result & ~value;
|
|
1036
|
-
}, first);
|
|
1037
|
-
},
|
|
1038
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1039
|
-
},
|
|
1040
|
-
'|': {
|
|
1041
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1042
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1043
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1044
|
-
return rest.reduce(function (result, value) {
|
|
1045
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1046
|
-
return result | value;
|
|
1047
|
-
}, first);
|
|
1048
|
-
},
|
|
1049
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1050
|
-
},
|
|
1051
|
-
'^': {
|
|
1052
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1053
|
-
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
1054
|
-
assertNumber(first, sourceCodeInfo, { integer: true });
|
|
1055
|
-
return rest.reduce(function (result, value) {
|
|
1056
|
-
assertNumber(value, sourceCodeInfo, { integer: true });
|
|
1057
|
-
return result ^ value;
|
|
1058
|
-
}, first);
|
|
1059
|
-
},
|
|
1060
|
-
validate: function (node) { return assertNumberOfParams({ min: 2 }, node); },
|
|
1061
|
-
},
|
|
1062
|
-
'bit_flip': {
|
|
1063
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1064
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1065
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1066
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1067
|
-
var mask = 1 << index;
|
|
1068
|
-
return (num ^= mask);
|
|
1069
|
-
},
|
|
1070
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1071
|
-
},
|
|
1072
|
-
'bit_set': {
|
|
1073
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1074
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1075
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1076
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1077
|
-
var mask = 1 << index;
|
|
1078
|
-
return (num |= mask);
|
|
1079
|
-
},
|
|
1080
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1081
|
-
},
|
|
1082
|
-
'bit_clear': {
|
|
1083
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1084
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1085
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1086
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1087
|
-
var mask = 1 << index;
|
|
1088
|
-
return (num &= ~mask);
|
|
1089
|
-
},
|
|
1090
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1091
|
-
},
|
|
1092
|
-
'bit_test': {
|
|
1093
|
-
evaluate: function (_a, sourceCodeInfo) {
|
|
1094
|
-
var _b = __read(_a, 2), num = _b[0], index = _b[1];
|
|
1095
|
-
assertNumber(num, sourceCodeInfo, { integer: true });
|
|
1096
|
-
assertNumber(index, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
1097
|
-
var mask = 1 << index;
|
|
1098
|
-
return !!(num & mask);
|
|
1099
|
-
},
|
|
1100
|
-
validate: function (node) { return assertNumberOfParams(2, node); },
|
|
1101
|
-
},
|
|
1102
|
-
};
|
|
1103
|
-
|
|
1104
1081
|
function isLitsFunction(value) {
|
|
1105
1082
|
if (value === null || typeof value !== 'object')
|
|
1106
1083
|
return false;
|
|
@@ -1481,7 +1458,7 @@ var collectionNormalExpression = {
|
|
|
1481
1458
|
var result = get(coll, key);
|
|
1482
1459
|
return result === undefined ? defaultValue : result;
|
|
1483
1460
|
},
|
|
1484
|
-
|
|
1461
|
+
paramCount: { min: 2, max: 3 },
|
|
1485
1462
|
},
|
|
1486
1463
|
'get_in': {
|
|
1487
1464
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1516,7 +1493,7 @@ var collectionNormalExpression = {
|
|
|
1516
1493
|
}
|
|
1517
1494
|
return coll;
|
|
1518
1495
|
},
|
|
1519
|
-
|
|
1496
|
+
paramCount: { min: 2, max: 3 },
|
|
1520
1497
|
},
|
|
1521
1498
|
'count': {
|
|
1522
1499
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1530,7 +1507,7 @@ var collectionNormalExpression = {
|
|
|
1530
1507
|
return coll.length;
|
|
1531
1508
|
return Object.keys(coll).length;
|
|
1532
1509
|
},
|
|
1533
|
-
|
|
1510
|
+
paramCount: 1,
|
|
1534
1511
|
},
|
|
1535
1512
|
'contains?': {
|
|
1536
1513
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1547,7 +1524,7 @@ var collectionNormalExpression = {
|
|
|
1547
1524
|
}
|
|
1548
1525
|
return !!Object.getOwnPropertyDescriptor(coll, key);
|
|
1549
1526
|
},
|
|
1550
|
-
|
|
1527
|
+
paramCount: 2,
|
|
1551
1528
|
},
|
|
1552
1529
|
'has?': {
|
|
1553
1530
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1568,7 +1545,7 @@ var collectionNormalExpression = {
|
|
|
1568
1545
|
}
|
|
1569
1546
|
return Object.values(coll).includes(value);
|
|
1570
1547
|
},
|
|
1571
|
-
|
|
1548
|
+
paramCount: 2,
|
|
1572
1549
|
},
|
|
1573
1550
|
'has_some?': {
|
|
1574
1551
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1628,7 +1605,7 @@ var collectionNormalExpression = {
|
|
|
1628
1605
|
}
|
|
1629
1606
|
return false;
|
|
1630
1607
|
},
|
|
1631
|
-
|
|
1608
|
+
paramCount: 2,
|
|
1632
1609
|
},
|
|
1633
1610
|
'has_every?': {
|
|
1634
1611
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1690,7 +1667,7 @@ var collectionNormalExpression = {
|
|
|
1690
1667
|
}
|
|
1691
1668
|
return true;
|
|
1692
1669
|
},
|
|
1693
|
-
|
|
1670
|
+
paramCount: 2,
|
|
1694
1671
|
},
|
|
1695
1672
|
'assoc': {
|
|
1696
1673
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1700,7 +1677,7 @@ var collectionNormalExpression = {
|
|
|
1700
1677
|
assertAny(value, sourceCodeInfo);
|
|
1701
1678
|
return assoc(coll, key, value, sourceCodeInfo);
|
|
1702
1679
|
},
|
|
1703
|
-
|
|
1680
|
+
paramCount: 3,
|
|
1704
1681
|
},
|
|
1705
1682
|
'assoc_in': {
|
|
1706
1683
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1725,7 +1702,7 @@ var collectionNormalExpression = {
|
|
|
1725
1702
|
}
|
|
1726
1703
|
return coll;
|
|
1727
1704
|
},
|
|
1728
|
-
|
|
1705
|
+
paramCount: 3,
|
|
1729
1706
|
},
|
|
1730
1707
|
'update': {
|
|
1731
1708
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1736,7 +1713,7 @@ var collectionNormalExpression = {
|
|
|
1736
1713
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1737
1714
|
return update(coll, key, fn, params, contextStack, executeFunction, sourceCodeInfo);
|
|
1738
1715
|
},
|
|
1739
|
-
|
|
1716
|
+
paramCount: { min: 3 },
|
|
1740
1717
|
},
|
|
1741
1718
|
'update_in': {
|
|
1742
1719
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1762,7 +1739,7 @@ var collectionNormalExpression = {
|
|
|
1762
1739
|
}
|
|
1763
1740
|
return coll;
|
|
1764
1741
|
},
|
|
1765
|
-
|
|
1742
|
+
paramCount: { min: 3 },
|
|
1766
1743
|
},
|
|
1767
1744
|
'concat': {
|
|
1768
1745
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1786,7 +1763,7 @@ var collectionNormalExpression = {
|
|
|
1786
1763
|
}, {});
|
|
1787
1764
|
}
|
|
1788
1765
|
},
|
|
1789
|
-
|
|
1766
|
+
paramCount: { min: 1 },
|
|
1790
1767
|
},
|
|
1791
1768
|
'not_empty': {
|
|
1792
1769
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1800,7 +1777,7 @@ var collectionNormalExpression = {
|
|
|
1800
1777
|
return coll.length > 0 ? coll : null;
|
|
1801
1778
|
return Object.keys(coll).length > 0 ? coll : null;
|
|
1802
1779
|
},
|
|
1803
|
-
|
|
1780
|
+
paramCount: 1,
|
|
1804
1781
|
},
|
|
1805
1782
|
'every?': {
|
|
1806
1783
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1814,7 +1791,7 @@ var collectionNormalExpression = {
|
|
|
1814
1791
|
return coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1815
1792
|
return Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1816
1793
|
},
|
|
1817
|
-
|
|
1794
|
+
paramCount: 2,
|
|
1818
1795
|
},
|
|
1819
1796
|
'any?': {
|
|
1820
1797
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1828,7 +1805,7 @@ var collectionNormalExpression = {
|
|
|
1828
1805
|
return coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1829
1806
|
return Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1830
1807
|
},
|
|
1831
|
-
|
|
1808
|
+
paramCount: 2,
|
|
1832
1809
|
},
|
|
1833
1810
|
'not_any?': {
|
|
1834
1811
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1842,7 +1819,7 @@ var collectionNormalExpression = {
|
|
|
1842
1819
|
return !coll.split('').some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1843
1820
|
return !Object.entries(coll).some(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1844
1821
|
},
|
|
1845
|
-
|
|
1822
|
+
paramCount: 2,
|
|
1846
1823
|
},
|
|
1847
1824
|
'not_every?': {
|
|
1848
1825
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1856,13 +1833,14 @@ var collectionNormalExpression = {
|
|
|
1856
1833
|
return !coll.split('').every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1857
1834
|
return !Object.entries(coll).every(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
1858
1835
|
},
|
|
1859
|
-
|
|
1836
|
+
paramCount: 2,
|
|
1860
1837
|
},
|
|
1861
1838
|
};
|
|
1862
1839
|
|
|
1863
1840
|
var arrayNormalExpression = {
|
|
1864
1841
|
array: {
|
|
1865
1842
|
evaluate: function (params) { return params; },
|
|
1843
|
+
paramCount: {},
|
|
1866
1844
|
},
|
|
1867
1845
|
range: {
|
|
1868
1846
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -1900,7 +1878,7 @@ var arrayNormalExpression = {
|
|
|
1900
1878
|
result.push(i);
|
|
1901
1879
|
return result;
|
|
1902
1880
|
},
|
|
1903
|
-
|
|
1881
|
+
paramCount: { min: 1, max: 3 },
|
|
1904
1882
|
},
|
|
1905
1883
|
repeat: {
|
|
1906
1884
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1911,7 +1889,7 @@ var arrayNormalExpression = {
|
|
|
1911
1889
|
result.push(value);
|
|
1912
1890
|
return result;
|
|
1913
1891
|
},
|
|
1914
|
-
|
|
1892
|
+
paramCount: 2,
|
|
1915
1893
|
},
|
|
1916
1894
|
flatten: {
|
|
1917
1895
|
evaluate: function (_a) {
|
|
@@ -1920,7 +1898,7 @@ var arrayNormalExpression = {
|
|
|
1920
1898
|
return [];
|
|
1921
1899
|
return seq.flat(Number.POSITIVE_INFINITY);
|
|
1922
1900
|
},
|
|
1923
|
-
|
|
1901
|
+
paramCount: 1,
|
|
1924
1902
|
},
|
|
1925
1903
|
mapcat: {
|
|
1926
1904
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1930,7 +1908,7 @@ var arrayNormalExpression = {
|
|
|
1930
1908
|
assertLitsFunction(fn, sourceCodeInfo);
|
|
1931
1909
|
return arr.map(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }).flat(1);
|
|
1932
1910
|
},
|
|
1933
|
-
|
|
1911
|
+
paramCount: 2,
|
|
1934
1912
|
},
|
|
1935
1913
|
};
|
|
1936
1914
|
|
|
@@ -1945,7 +1923,7 @@ var sequenceNormalExpression = {
|
|
|
1945
1923
|
assertSeq(seq, sourceCodeInfo);
|
|
1946
1924
|
return i >= 0 && i < seq.length ? toAny(seq[i]) : defaultValue;
|
|
1947
1925
|
},
|
|
1948
|
-
|
|
1926
|
+
paramCount: { min: 2, max: 3 },
|
|
1949
1927
|
},
|
|
1950
1928
|
'filter': {
|
|
1951
1929
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -1960,7 +1938,7 @@ var sequenceNormalExpression = {
|
|
|
1960
1938
|
.filter(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
1961
1939
|
.join('');
|
|
1962
1940
|
},
|
|
1963
|
-
|
|
1941
|
+
paramCount: 2,
|
|
1964
1942
|
},
|
|
1965
1943
|
'first': {
|
|
1966
1944
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1970,7 +1948,7 @@ var sequenceNormalExpression = {
|
|
|
1970
1948
|
assertSeq(array, sourceCodeInfo);
|
|
1971
1949
|
return toAny(array[0]);
|
|
1972
1950
|
},
|
|
1973
|
-
|
|
1951
|
+
paramCount: 1,
|
|
1974
1952
|
},
|
|
1975
1953
|
'last': {
|
|
1976
1954
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -1980,7 +1958,7 @@ var sequenceNormalExpression = {
|
|
|
1980
1958
|
assertSeq(array, sourceCodeInfo);
|
|
1981
1959
|
return toAny(array[array.length - 1]);
|
|
1982
1960
|
},
|
|
1983
|
-
|
|
1961
|
+
paramCount: 1,
|
|
1984
1962
|
},
|
|
1985
1963
|
'map': {
|
|
1986
1964
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2002,7 +1980,7 @@ var sequenceNormalExpression = {
|
|
|
2002
1980
|
.join('');
|
|
2003
1981
|
}
|
|
2004
1982
|
},
|
|
2005
|
-
|
|
1983
|
+
paramCount: 2,
|
|
2006
1984
|
},
|
|
2007
1985
|
'pop': {
|
|
2008
1986
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2013,7 +1991,7 @@ var sequenceNormalExpression = {
|
|
|
2013
1991
|
}
|
|
2014
1992
|
return seq.slice(0, seq.length - 1);
|
|
2015
1993
|
},
|
|
2016
|
-
|
|
1994
|
+
paramCount: 1,
|
|
2017
1995
|
},
|
|
2018
1996
|
'position': {
|
|
2019
1997
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2032,7 +2010,7 @@ var sequenceNormalExpression = {
|
|
|
2032
2010
|
return index !== -1 ? index : null;
|
|
2033
2011
|
}
|
|
2034
2012
|
},
|
|
2035
|
-
|
|
2013
|
+
paramCount: 2,
|
|
2036
2014
|
},
|
|
2037
2015
|
'index_of': {
|
|
2038
2016
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2051,7 +2029,7 @@ var sequenceNormalExpression = {
|
|
|
2051
2029
|
return index !== -1 ? index : null;
|
|
2052
2030
|
}
|
|
2053
2031
|
},
|
|
2054
|
-
|
|
2032
|
+
paramCount: 2,
|
|
2055
2033
|
},
|
|
2056
2034
|
'last_index_of': {
|
|
2057
2035
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2070,7 +2048,7 @@ var sequenceNormalExpression = {
|
|
|
2070
2048
|
return index !== -1 ? index : null;
|
|
2071
2049
|
}
|
|
2072
2050
|
},
|
|
2073
|
-
|
|
2051
|
+
paramCount: 2,
|
|
2074
2052
|
},
|
|
2075
2053
|
'push': {
|
|
2076
2054
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2084,7 +2062,7 @@ var sequenceNormalExpression = {
|
|
|
2084
2062
|
return __spreadArray(__spreadArray([], __read(seq), false), __read(values), false);
|
|
2085
2063
|
}
|
|
2086
2064
|
},
|
|
2087
|
-
|
|
2065
|
+
paramCount: { min: 2 },
|
|
2088
2066
|
},
|
|
2089
2067
|
'reductions': {
|
|
2090
2068
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2145,7 +2123,7 @@ var sequenceNormalExpression = {
|
|
|
2145
2123
|
}
|
|
2146
2124
|
}
|
|
2147
2125
|
},
|
|
2148
|
-
|
|
2126
|
+
paramCount: { min: 2, max: 3 },
|
|
2149
2127
|
},
|
|
2150
2128
|
'reduce': {
|
|
2151
2129
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2192,7 +2170,7 @@ var sequenceNormalExpression = {
|
|
|
2192
2170
|
}
|
|
2193
2171
|
}
|
|
2194
2172
|
},
|
|
2195
|
-
|
|
2173
|
+
paramCount: { min: 2, max: 3 },
|
|
2196
2174
|
},
|
|
2197
2175
|
'reduce_right': {
|
|
2198
2176
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2240,7 +2218,7 @@ var sequenceNormalExpression = {
|
|
|
2240
2218
|
}
|
|
2241
2219
|
}
|
|
2242
2220
|
},
|
|
2243
|
-
|
|
2221
|
+
paramCount: { min: 2, max: 3 },
|
|
2244
2222
|
},
|
|
2245
2223
|
'rest': {
|
|
2246
2224
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2253,7 +2231,7 @@ var sequenceNormalExpression = {
|
|
|
2253
2231
|
}
|
|
2254
2232
|
return seq.substring(1);
|
|
2255
2233
|
},
|
|
2256
|
-
|
|
2234
|
+
paramCount: 1,
|
|
2257
2235
|
},
|
|
2258
2236
|
'nthrest': {
|
|
2259
2237
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2265,7 +2243,7 @@ var sequenceNormalExpression = {
|
|
|
2265
2243
|
return seq.slice(integerCount);
|
|
2266
2244
|
return seq.substring(integerCount);
|
|
2267
2245
|
},
|
|
2268
|
-
|
|
2246
|
+
paramCount: 2,
|
|
2269
2247
|
},
|
|
2270
2248
|
'next': {
|
|
2271
2249
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2280,7 +2258,7 @@ var sequenceNormalExpression = {
|
|
|
2280
2258
|
return null;
|
|
2281
2259
|
return seq.substring(1);
|
|
2282
2260
|
},
|
|
2283
|
-
|
|
2261
|
+
paramCount: 1,
|
|
2284
2262
|
},
|
|
2285
2263
|
'nthnext': {
|
|
2286
2264
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2294,7 +2272,7 @@ var sequenceNormalExpression = {
|
|
|
2294
2272
|
return seq.slice(integerCount);
|
|
2295
2273
|
return seq.substring(integerCount);
|
|
2296
2274
|
},
|
|
2297
|
-
|
|
2275
|
+
paramCount: 2,
|
|
2298
2276
|
},
|
|
2299
2277
|
'reverse': {
|
|
2300
2278
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2306,7 +2284,7 @@ var sequenceNormalExpression = {
|
|
|
2306
2284
|
return __spreadArray([], __read(seq), false).reverse();
|
|
2307
2285
|
return seq.split('').reverse().join('');
|
|
2308
2286
|
},
|
|
2309
|
-
|
|
2287
|
+
paramCount: 1,
|
|
2310
2288
|
},
|
|
2311
2289
|
'second': {
|
|
2312
2290
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2316,7 +2294,7 @@ var sequenceNormalExpression = {
|
|
|
2316
2294
|
assertSeq(seq, sourceCodeInfo);
|
|
2317
2295
|
return toAny(seq[1]);
|
|
2318
2296
|
},
|
|
2319
|
-
|
|
2297
|
+
paramCount: 1,
|
|
2320
2298
|
},
|
|
2321
2299
|
'shift': {
|
|
2322
2300
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2328,7 +2306,7 @@ var sequenceNormalExpression = {
|
|
|
2328
2306
|
copy.shift();
|
|
2329
2307
|
return copy;
|
|
2330
2308
|
},
|
|
2331
|
-
|
|
2309
|
+
paramCount: 1,
|
|
2332
2310
|
},
|
|
2333
2311
|
'slice': {
|
|
2334
2312
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2342,7 +2320,7 @@ var sequenceNormalExpression = {
|
|
|
2342
2320
|
assertNumber(to, sourceCodeInfo, { integer: true });
|
|
2343
2321
|
return seq.slice(from, to);
|
|
2344
2322
|
},
|
|
2345
|
-
|
|
2323
|
+
paramCount: { min: 1, max: 3 },
|
|
2346
2324
|
},
|
|
2347
2325
|
'some': {
|
|
2348
2326
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2359,7 +2337,7 @@ var sequenceNormalExpression = {
|
|
|
2359
2337
|
return (_c = seq.split('').find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); })) !== null && _c !== void 0 ? _c : null;
|
|
2360
2338
|
return toAny(seq.find(function (elem) { return executeFunction(fn, [elem], contextStack, sourceCodeInfo); }));
|
|
2361
2339
|
},
|
|
2362
|
-
|
|
2340
|
+
paramCount: 2,
|
|
2363
2341
|
},
|
|
2364
2342
|
'sort': {
|
|
2365
2343
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2397,7 +2375,7 @@ var sequenceNormalExpression = {
|
|
|
2397
2375
|
}
|
|
2398
2376
|
return result;
|
|
2399
2377
|
},
|
|
2400
|
-
|
|
2378
|
+
paramCount: { min: 1, max: 2 },
|
|
2401
2379
|
},
|
|
2402
2380
|
'sort_by': {
|
|
2403
2381
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -2448,7 +2426,7 @@ var sequenceNormalExpression = {
|
|
|
2448
2426
|
}
|
|
2449
2427
|
return result;
|
|
2450
2428
|
},
|
|
2451
|
-
|
|
2429
|
+
paramCount: { min: 2, max: 3 },
|
|
2452
2430
|
},
|
|
2453
2431
|
'take': {
|
|
2454
2432
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2458,7 +2436,7 @@ var sequenceNormalExpression = {
|
|
|
2458
2436
|
var num = Math.max(Math.ceil(n), 0);
|
|
2459
2437
|
return input.slice(0, num);
|
|
2460
2438
|
},
|
|
2461
|
-
|
|
2439
|
+
paramCount: 2,
|
|
2462
2440
|
},
|
|
2463
2441
|
'take_last': {
|
|
2464
2442
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2469,7 +2447,7 @@ var sequenceNormalExpression = {
|
|
|
2469
2447
|
var from = array.length - num;
|
|
2470
2448
|
return array.slice(from);
|
|
2471
2449
|
},
|
|
2472
|
-
|
|
2450
|
+
paramCount: 2,
|
|
2473
2451
|
},
|
|
2474
2452
|
'take_while': {
|
|
2475
2453
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2497,7 +2475,7 @@ var sequenceNormalExpression = {
|
|
|
2497
2475
|
}
|
|
2498
2476
|
return typeof seq === 'string' ? result.join('') : result;
|
|
2499
2477
|
},
|
|
2500
|
-
|
|
2478
|
+
paramCount: 2,
|
|
2501
2479
|
},
|
|
2502
2480
|
'drop': {
|
|
2503
2481
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2507,7 +2485,7 @@ var sequenceNormalExpression = {
|
|
|
2507
2485
|
assertSeq(input, sourceCodeInfo);
|
|
2508
2486
|
return input.slice(num);
|
|
2509
2487
|
},
|
|
2510
|
-
|
|
2488
|
+
paramCount: 2,
|
|
2511
2489
|
},
|
|
2512
2490
|
'drop_last': {
|
|
2513
2491
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2518,7 +2496,7 @@ var sequenceNormalExpression = {
|
|
|
2518
2496
|
var from = array.length - num;
|
|
2519
2497
|
return array.slice(0, from);
|
|
2520
2498
|
},
|
|
2521
|
-
|
|
2499
|
+
paramCount: 2,
|
|
2522
2500
|
},
|
|
2523
2501
|
'drop_while': {
|
|
2524
2502
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2534,7 +2512,7 @@ var sequenceNormalExpression = {
|
|
|
2534
2512
|
var from = charArray.findIndex(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); });
|
|
2535
2513
|
return charArray.slice(from).join('');
|
|
2536
2514
|
},
|
|
2537
|
-
|
|
2515
|
+
paramCount: 2,
|
|
2538
2516
|
},
|
|
2539
2517
|
'unshift': {
|
|
2540
2518
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2548,7 +2526,7 @@ var sequenceNormalExpression = {
|
|
|
2548
2526
|
copy.unshift.apply(copy, __spreadArray([], __read(values), false));
|
|
2549
2527
|
return copy;
|
|
2550
2528
|
},
|
|
2551
|
-
|
|
2529
|
+
paramCount: { min: 2 },
|
|
2552
2530
|
},
|
|
2553
2531
|
'distinct': {
|
|
2554
2532
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2558,7 +2536,7 @@ var sequenceNormalExpression = {
|
|
|
2558
2536
|
return Array.from(new Set(input));
|
|
2559
2537
|
return Array.from(new Set(input.split(''))).join('');
|
|
2560
2538
|
},
|
|
2561
|
-
|
|
2539
|
+
paramCount: 1,
|
|
2562
2540
|
},
|
|
2563
2541
|
'remove': {
|
|
2564
2542
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2573,7 +2551,7 @@ var sequenceNormalExpression = {
|
|
|
2573
2551
|
.filter(function (elem) { return !executeFunction(fn, [elem], contextStack, sourceCodeInfo); })
|
|
2574
2552
|
.join('');
|
|
2575
2553
|
},
|
|
2576
|
-
|
|
2554
|
+
paramCount: 2,
|
|
2577
2555
|
},
|
|
2578
2556
|
'remove_at': {
|
|
2579
2557
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2590,7 +2568,7 @@ var sequenceNormalExpression = {
|
|
|
2590
2568
|
}
|
|
2591
2569
|
return "".concat(input.substring(0, index)).concat(input.substring(index + 1));
|
|
2592
2570
|
},
|
|
2593
|
-
|
|
2571
|
+
paramCount: 2,
|
|
2594
2572
|
},
|
|
2595
2573
|
'split_at': {
|
|
2596
2574
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2600,7 +2578,7 @@ var sequenceNormalExpression = {
|
|
|
2600
2578
|
assertSeq(seq, sourceCodeInfo);
|
|
2601
2579
|
return [seq.slice(0, intPos), seq.slice(intPos)];
|
|
2602
2580
|
},
|
|
2603
|
-
|
|
2581
|
+
paramCount: 2,
|
|
2604
2582
|
},
|
|
2605
2583
|
'split_with': {
|
|
2606
2584
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2615,7 +2593,7 @@ var sequenceNormalExpression = {
|
|
|
2615
2593
|
return [seq, seqIsArray ? [] : ''];
|
|
2616
2594
|
return [seq.slice(0, index), seq.slice(index)];
|
|
2617
2595
|
},
|
|
2618
|
-
|
|
2596
|
+
paramCount: 2,
|
|
2619
2597
|
},
|
|
2620
2598
|
'frequencies': {
|
|
2621
2599
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2631,7 +2609,7 @@ var sequenceNormalExpression = {
|
|
|
2631
2609
|
return result;
|
|
2632
2610
|
}, {});
|
|
2633
2611
|
},
|
|
2634
|
-
|
|
2612
|
+
paramCount: 1,
|
|
2635
2613
|
},
|
|
2636
2614
|
'group_by': {
|
|
2637
2615
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2649,7 +2627,7 @@ var sequenceNormalExpression = {
|
|
|
2649
2627
|
return result;
|
|
2650
2628
|
}, {});
|
|
2651
2629
|
},
|
|
2652
|
-
|
|
2630
|
+
paramCount: 2,
|
|
2653
2631
|
},
|
|
2654
2632
|
'partition': {
|
|
2655
2633
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2661,7 +2639,7 @@ var sequenceNormalExpression = {
|
|
|
2661
2639
|
: undefined;
|
|
2662
2640
|
return partition(n, step, seq, pad, sourceCodeInfo);
|
|
2663
2641
|
},
|
|
2664
|
-
|
|
2642
|
+
paramCount: { min: 2, max: 4 },
|
|
2665
2643
|
},
|
|
2666
2644
|
'partition_all': {
|
|
2667
2645
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2670,7 +2648,7 @@ var sequenceNormalExpression = {
|
|
|
2670
2648
|
var step = params.length === 3 ? toNonNegativeInteger(asNumber(params[2], sourceCodeInfo)) : n;
|
|
2671
2649
|
return partition(n, step, seq, [], sourceCodeInfo);
|
|
2672
2650
|
},
|
|
2673
|
-
|
|
2651
|
+
paramCount: { min: 2, max: 3 },
|
|
2674
2652
|
},
|
|
2675
2653
|
'partition_by': {
|
|
2676
2654
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -2691,7 +2669,7 @@ var sequenceNormalExpression = {
|
|
|
2691
2669
|
}, []);
|
|
2692
2670
|
return isStringSeq ? result.map(function (elem) { return elem.join(''); }) : result;
|
|
2693
2671
|
},
|
|
2694
|
-
|
|
2672
|
+
paramCount: 2,
|
|
2695
2673
|
},
|
|
2696
2674
|
'ends_with?': {
|
|
2697
2675
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2703,7 +2681,7 @@ var sequenceNormalExpression = {
|
|
|
2703
2681
|
}
|
|
2704
2682
|
return str.at(-1) === search;
|
|
2705
2683
|
},
|
|
2706
|
-
|
|
2684
|
+
paramCount: 2,
|
|
2707
2685
|
},
|
|
2708
2686
|
'starts_with?': {
|
|
2709
2687
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2715,7 +2693,7 @@ var sequenceNormalExpression = {
|
|
|
2715
2693
|
}
|
|
2716
2694
|
return str[0] === search;
|
|
2717
2695
|
},
|
|
2718
|
-
|
|
2696
|
+
paramCount: 2,
|
|
2719
2697
|
},
|
|
2720
2698
|
'interleave': {
|
|
2721
2699
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2753,7 +2731,7 @@ var sequenceNormalExpression = {
|
|
|
2753
2731
|
}
|
|
2754
2732
|
return isStringSeq ? result.join('') : result;
|
|
2755
2733
|
},
|
|
2756
|
-
|
|
2734
|
+
paramCount: { min: 1 },
|
|
2757
2735
|
},
|
|
2758
2736
|
'interpose': {
|
|
2759
2737
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2772,7 +2750,7 @@ var sequenceNormalExpression = {
|
|
|
2772
2750
|
result.push(seq[seq.length - 1]);
|
|
2773
2751
|
return result;
|
|
2774
2752
|
},
|
|
2775
|
-
|
|
2753
|
+
paramCount: 2,
|
|
2776
2754
|
},
|
|
2777
2755
|
};
|
|
2778
2756
|
function partition(n, step, seq, pad, sourceCodeInfo) {
|
|
@@ -2810,7 +2788,7 @@ var mathNormalExpression = {
|
|
|
2810
2788
|
assertNumber(first, sourceCodeInfo);
|
|
2811
2789
|
return first + 1;
|
|
2812
2790
|
},
|
|
2813
|
-
|
|
2791
|
+
paramCount: 1,
|
|
2814
2792
|
},
|
|
2815
2793
|
'dec': {
|
|
2816
2794
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2818,7 +2796,7 @@ var mathNormalExpression = {
|
|
|
2818
2796
|
assertNumber(first, sourceCodeInfo);
|
|
2819
2797
|
return first - 1;
|
|
2820
2798
|
},
|
|
2821
|
-
|
|
2799
|
+
paramCount: 1,
|
|
2822
2800
|
},
|
|
2823
2801
|
'+': {
|
|
2824
2802
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2827,6 +2805,7 @@ var mathNormalExpression = {
|
|
|
2827
2805
|
return result + param;
|
|
2828
2806
|
}, 0);
|
|
2829
2807
|
},
|
|
2808
|
+
paramCount: {},
|
|
2830
2809
|
},
|
|
2831
2810
|
'*': {
|
|
2832
2811
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2835,6 +2814,7 @@ var mathNormalExpression = {
|
|
|
2835
2814
|
return result * param;
|
|
2836
2815
|
}, 1);
|
|
2837
2816
|
},
|
|
2817
|
+
paramCount: {},
|
|
2838
2818
|
},
|
|
2839
2819
|
'/': {
|
|
2840
2820
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2851,6 +2831,7 @@ var mathNormalExpression = {
|
|
|
2851
2831
|
return result / param;
|
|
2852
2832
|
}, first);
|
|
2853
2833
|
},
|
|
2834
|
+
paramCount: {},
|
|
2854
2835
|
},
|
|
2855
2836
|
'-': {
|
|
2856
2837
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2865,6 +2846,7 @@ var mathNormalExpression = {
|
|
|
2865
2846
|
return result - param;
|
|
2866
2847
|
}, first);
|
|
2867
2848
|
},
|
|
2849
|
+
paramCount: {},
|
|
2868
2850
|
},
|
|
2869
2851
|
'quot': {
|
|
2870
2852
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2874,7 +2856,7 @@ var mathNormalExpression = {
|
|
|
2874
2856
|
var quotient = Math.trunc(dividend / divisor);
|
|
2875
2857
|
return quotient;
|
|
2876
2858
|
},
|
|
2877
|
-
|
|
2859
|
+
paramCount: 2,
|
|
2878
2860
|
},
|
|
2879
2861
|
'mod': {
|
|
2880
2862
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2884,7 +2866,7 @@ var mathNormalExpression = {
|
|
|
2884
2866
|
var quotient = Math.floor(dividend / divisor);
|
|
2885
2867
|
return dividend - divisor * quotient;
|
|
2886
2868
|
},
|
|
2887
|
-
|
|
2869
|
+
paramCount: 2,
|
|
2888
2870
|
},
|
|
2889
2871
|
'%': {
|
|
2890
2872
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2894,7 +2876,7 @@ var mathNormalExpression = {
|
|
|
2894
2876
|
var quotient = Math.trunc(dividend / divisor);
|
|
2895
2877
|
return dividend - divisor * quotient;
|
|
2896
2878
|
},
|
|
2897
|
-
|
|
2879
|
+
paramCount: 2,
|
|
2898
2880
|
},
|
|
2899
2881
|
'sqrt': {
|
|
2900
2882
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2902,7 +2884,7 @@ var mathNormalExpression = {
|
|
|
2902
2884
|
assertNumber(first, sourceCodeInfo);
|
|
2903
2885
|
return Math.sqrt(first);
|
|
2904
2886
|
},
|
|
2905
|
-
|
|
2887
|
+
paramCount: 1,
|
|
2906
2888
|
},
|
|
2907
2889
|
'cbrt': {
|
|
2908
2890
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2910,7 +2892,7 @@ var mathNormalExpression = {
|
|
|
2910
2892
|
assertNumber(first, sourceCodeInfo);
|
|
2911
2893
|
return Math.cbrt(first);
|
|
2912
2894
|
},
|
|
2913
|
-
|
|
2895
|
+
paramCount: 1,
|
|
2914
2896
|
},
|
|
2915
2897
|
'**': {
|
|
2916
2898
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2919,7 +2901,7 @@ var mathNormalExpression = {
|
|
|
2919
2901
|
assertNumber(second, sourceCodeInfo);
|
|
2920
2902
|
return Math.pow(first, second);
|
|
2921
2903
|
},
|
|
2922
|
-
|
|
2904
|
+
paramCount: 2,
|
|
2923
2905
|
},
|
|
2924
2906
|
'round': {
|
|
2925
2907
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -2931,7 +2913,7 @@ var mathNormalExpression = {
|
|
|
2931
2913
|
var factor = Math.pow(10, decimals);
|
|
2932
2914
|
return Math.round(value * factor) / factor;
|
|
2933
2915
|
},
|
|
2934
|
-
|
|
2916
|
+
paramCount: { min: 1, max: 2 },
|
|
2935
2917
|
},
|
|
2936
2918
|
'trunc': {
|
|
2937
2919
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2939,7 +2921,7 @@ var mathNormalExpression = {
|
|
|
2939
2921
|
assertNumber(first, sourceCodeInfo);
|
|
2940
2922
|
return Math.trunc(first);
|
|
2941
2923
|
},
|
|
2942
|
-
|
|
2924
|
+
paramCount: 1,
|
|
2943
2925
|
},
|
|
2944
2926
|
'floor': {
|
|
2945
2927
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2947,7 +2929,7 @@ var mathNormalExpression = {
|
|
|
2947
2929
|
assertNumber(first, sourceCodeInfo);
|
|
2948
2930
|
return Math.floor(first);
|
|
2949
2931
|
},
|
|
2950
|
-
|
|
2932
|
+
paramCount: 1,
|
|
2951
2933
|
},
|
|
2952
2934
|
'ceil': {
|
|
2953
2935
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2955,7 +2937,7 @@ var mathNormalExpression = {
|
|
|
2955
2937
|
assertNumber(first, sourceCodeInfo);
|
|
2956
2938
|
return Math.ceil(first);
|
|
2957
2939
|
},
|
|
2958
|
-
|
|
2940
|
+
paramCount: 1,
|
|
2959
2941
|
},
|
|
2960
2942
|
'min': {
|
|
2961
2943
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2968,7 +2950,7 @@ var mathNormalExpression = {
|
|
|
2968
2950
|
return Math.min(min, value);
|
|
2969
2951
|
}, first);
|
|
2970
2952
|
},
|
|
2971
|
-
|
|
2953
|
+
paramCount: { min: 1 },
|
|
2972
2954
|
},
|
|
2973
2955
|
'max': {
|
|
2974
2956
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2981,7 +2963,7 @@ var mathNormalExpression = {
|
|
|
2981
2963
|
return Math.max(min, value);
|
|
2982
2964
|
}, first);
|
|
2983
2965
|
},
|
|
2984
|
-
|
|
2966
|
+
paramCount: { min: 1 },
|
|
2985
2967
|
},
|
|
2986
2968
|
'abs': {
|
|
2987
2969
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2989,7 +2971,7 @@ var mathNormalExpression = {
|
|
|
2989
2971
|
assertNumber(value, sourceCodeInfo);
|
|
2990
2972
|
return Math.abs(value);
|
|
2991
2973
|
},
|
|
2992
|
-
|
|
2974
|
+
paramCount: 1,
|
|
2993
2975
|
},
|
|
2994
2976
|
'sign': {
|
|
2995
2977
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -2997,67 +2979,67 @@ var mathNormalExpression = {
|
|
|
2997
2979
|
assertNumber(value, sourceCodeInfo);
|
|
2998
2980
|
return Math.sign(value);
|
|
2999
2981
|
},
|
|
3000
|
-
|
|
2982
|
+
paramCount: 1,
|
|
3001
2983
|
},
|
|
3002
2984
|
'max_safe_integer': {
|
|
3003
2985
|
evaluate: function () {
|
|
3004
2986
|
return Number.MAX_SAFE_INTEGER;
|
|
3005
2987
|
},
|
|
3006
|
-
|
|
2988
|
+
paramCount: 0,
|
|
3007
2989
|
},
|
|
3008
2990
|
'min_safe_integer': {
|
|
3009
2991
|
evaluate: function () {
|
|
3010
2992
|
return Number.MIN_SAFE_INTEGER;
|
|
3011
2993
|
},
|
|
3012
|
-
|
|
2994
|
+
paramCount: 0,
|
|
3013
2995
|
},
|
|
3014
2996
|
'max_value': {
|
|
3015
2997
|
evaluate: function () {
|
|
3016
2998
|
return Number.MAX_VALUE;
|
|
3017
2999
|
},
|
|
3018
|
-
|
|
3000
|
+
paramCount: 0,
|
|
3019
3001
|
},
|
|
3020
3002
|
'min_value': {
|
|
3021
3003
|
evaluate: function () {
|
|
3022
3004
|
return Number.MIN_VALUE;
|
|
3023
3005
|
},
|
|
3024
|
-
|
|
3006
|
+
paramCount: 0,
|
|
3025
3007
|
},
|
|
3026
3008
|
'epsilon': {
|
|
3027
3009
|
evaluate: function () {
|
|
3028
3010
|
return Number.EPSILON;
|
|
3029
3011
|
},
|
|
3030
|
-
|
|
3012
|
+
paramCount: 0,
|
|
3031
3013
|
},
|
|
3032
3014
|
'positive_infinity': {
|
|
3033
3015
|
evaluate: function () {
|
|
3034
3016
|
return Number.POSITIVE_INFINITY;
|
|
3035
3017
|
},
|
|
3036
|
-
|
|
3018
|
+
paramCount: 0,
|
|
3037
3019
|
},
|
|
3038
3020
|
'negative_infinity': {
|
|
3039
3021
|
evaluate: function () {
|
|
3040
3022
|
return Number.NEGATIVE_INFINITY;
|
|
3041
3023
|
},
|
|
3042
|
-
|
|
3024
|
+
paramCount: 0,
|
|
3043
3025
|
},
|
|
3044
3026
|
'nan': {
|
|
3045
3027
|
evaluate: function () {
|
|
3046
3028
|
return Number.NaN;
|
|
3047
3029
|
},
|
|
3048
|
-
|
|
3030
|
+
paramCount: 0,
|
|
3049
3031
|
},
|
|
3050
3032
|
'e': {
|
|
3051
3033
|
evaluate: function () {
|
|
3052
3034
|
return Math.E;
|
|
3053
3035
|
},
|
|
3054
|
-
|
|
3036
|
+
paramCount: 0,
|
|
3055
3037
|
},
|
|
3056
3038
|
'pi': {
|
|
3057
3039
|
evaluate: function () {
|
|
3058
3040
|
return Math.PI;
|
|
3059
3041
|
},
|
|
3060
|
-
|
|
3042
|
+
paramCount: 0,
|
|
3061
3043
|
},
|
|
3062
3044
|
'exp': {
|
|
3063
3045
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3065,7 +3047,7 @@ var mathNormalExpression = {
|
|
|
3065
3047
|
assertNumber(value, sourceCodeInfo);
|
|
3066
3048
|
return Math.exp(value);
|
|
3067
3049
|
},
|
|
3068
|
-
|
|
3050
|
+
paramCount: 1,
|
|
3069
3051
|
},
|
|
3070
3052
|
'log': {
|
|
3071
3053
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3073,7 +3055,7 @@ var mathNormalExpression = {
|
|
|
3073
3055
|
assertNumber(value, sourceCodeInfo);
|
|
3074
3056
|
return Math.log(value);
|
|
3075
3057
|
},
|
|
3076
|
-
|
|
3058
|
+
paramCount: 1,
|
|
3077
3059
|
},
|
|
3078
3060
|
'log2': {
|
|
3079
3061
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3081,7 +3063,7 @@ var mathNormalExpression = {
|
|
|
3081
3063
|
assertNumber(value, sourceCodeInfo);
|
|
3082
3064
|
return Math.log2(value);
|
|
3083
3065
|
},
|
|
3084
|
-
|
|
3066
|
+
paramCount: 1,
|
|
3085
3067
|
},
|
|
3086
3068
|
'log10': {
|
|
3087
3069
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3089,7 +3071,7 @@ var mathNormalExpression = {
|
|
|
3089
3071
|
assertNumber(value, sourceCodeInfo);
|
|
3090
3072
|
return Math.log10(value);
|
|
3091
3073
|
},
|
|
3092
|
-
|
|
3074
|
+
paramCount: 1,
|
|
3093
3075
|
},
|
|
3094
3076
|
'sin': {
|
|
3095
3077
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3097,7 +3079,7 @@ var mathNormalExpression = {
|
|
|
3097
3079
|
assertNumber(value, sourceCodeInfo);
|
|
3098
3080
|
return Math.sin(value);
|
|
3099
3081
|
},
|
|
3100
|
-
|
|
3082
|
+
paramCount: 1,
|
|
3101
3083
|
},
|
|
3102
3084
|
'asin': {
|
|
3103
3085
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3105,7 +3087,7 @@ var mathNormalExpression = {
|
|
|
3105
3087
|
assertNumber(value, sourceCodeInfo);
|
|
3106
3088
|
return Math.asin(value);
|
|
3107
3089
|
},
|
|
3108
|
-
|
|
3090
|
+
paramCount: 1,
|
|
3109
3091
|
},
|
|
3110
3092
|
'sinh': {
|
|
3111
3093
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3113,7 +3095,7 @@ var mathNormalExpression = {
|
|
|
3113
3095
|
assertNumber(value, sourceCodeInfo);
|
|
3114
3096
|
return Math.sinh(value);
|
|
3115
3097
|
},
|
|
3116
|
-
|
|
3098
|
+
paramCount: 1,
|
|
3117
3099
|
},
|
|
3118
3100
|
'asinh': {
|
|
3119
3101
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3121,7 +3103,7 @@ var mathNormalExpression = {
|
|
|
3121
3103
|
assertNumber(value, sourceCodeInfo);
|
|
3122
3104
|
return Math.asinh(value);
|
|
3123
3105
|
},
|
|
3124
|
-
|
|
3106
|
+
paramCount: 1,
|
|
3125
3107
|
},
|
|
3126
3108
|
'cos': {
|
|
3127
3109
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3129,7 +3111,7 @@ var mathNormalExpression = {
|
|
|
3129
3111
|
assertNumber(value, sourceCodeInfo);
|
|
3130
3112
|
return Math.cos(value);
|
|
3131
3113
|
},
|
|
3132
|
-
|
|
3114
|
+
paramCount: 1,
|
|
3133
3115
|
},
|
|
3134
3116
|
'acos': {
|
|
3135
3117
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3137,7 +3119,7 @@ var mathNormalExpression = {
|
|
|
3137
3119
|
assertNumber(value, sourceCodeInfo);
|
|
3138
3120
|
return Math.acos(value);
|
|
3139
3121
|
},
|
|
3140
|
-
|
|
3122
|
+
paramCount: 1,
|
|
3141
3123
|
},
|
|
3142
3124
|
'cosh': {
|
|
3143
3125
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3145,7 +3127,7 @@ var mathNormalExpression = {
|
|
|
3145
3127
|
assertNumber(value, sourceCodeInfo);
|
|
3146
3128
|
return Math.cosh(value);
|
|
3147
3129
|
},
|
|
3148
|
-
|
|
3130
|
+
paramCount: 1,
|
|
3149
3131
|
},
|
|
3150
3132
|
'acosh': {
|
|
3151
3133
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3153,7 +3135,7 @@ var mathNormalExpression = {
|
|
|
3153
3135
|
assertNumber(value, sourceCodeInfo);
|
|
3154
3136
|
return Math.acosh(value);
|
|
3155
3137
|
},
|
|
3156
|
-
|
|
3138
|
+
paramCount: 1,
|
|
3157
3139
|
},
|
|
3158
3140
|
'tan': {
|
|
3159
3141
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3161,7 +3143,7 @@ var mathNormalExpression = {
|
|
|
3161
3143
|
assertNumber(value, sourceCodeInfo);
|
|
3162
3144
|
return Math.tan(value);
|
|
3163
3145
|
},
|
|
3164
|
-
|
|
3146
|
+
paramCount: 1,
|
|
3165
3147
|
},
|
|
3166
3148
|
'atan': {
|
|
3167
3149
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3169,7 +3151,7 @@ var mathNormalExpression = {
|
|
|
3169
3151
|
assertNumber(value, sourceCodeInfo);
|
|
3170
3152
|
return Math.atan(value);
|
|
3171
3153
|
},
|
|
3172
|
-
|
|
3154
|
+
paramCount: 1,
|
|
3173
3155
|
},
|
|
3174
3156
|
'tanh': {
|
|
3175
3157
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3177,7 +3159,7 @@ var mathNormalExpression = {
|
|
|
3177
3159
|
assertNumber(value, sourceCodeInfo);
|
|
3178
3160
|
return Math.tanh(value);
|
|
3179
3161
|
},
|
|
3180
|
-
|
|
3162
|
+
paramCount: 1,
|
|
3181
3163
|
},
|
|
3182
3164
|
'atanh': {
|
|
3183
3165
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3185,7 +3167,7 @@ var mathNormalExpression = {
|
|
|
3185
3167
|
assertNumber(value, sourceCodeInfo);
|
|
3186
3168
|
return Math.atanh(value);
|
|
3187
3169
|
},
|
|
3188
|
-
|
|
3170
|
+
paramCount: 1,
|
|
3189
3171
|
},
|
|
3190
3172
|
};
|
|
3191
3173
|
|
|
@@ -3200,7 +3182,7 @@ var miscNormalExpression = {
|
|
|
3200
3182
|
}
|
|
3201
3183
|
return true;
|
|
3202
3184
|
},
|
|
3203
|
-
|
|
3185
|
+
paramCount: { min: 1 },
|
|
3204
3186
|
},
|
|
3205
3187
|
'==': {
|
|
3206
3188
|
evaluate: function (_a) {
|
|
@@ -3222,14 +3204,14 @@ var miscNormalExpression = {
|
|
|
3222
3204
|
}
|
|
3223
3205
|
return true;
|
|
3224
3206
|
},
|
|
3225
|
-
|
|
3207
|
+
paramCount: { min: 1 },
|
|
3226
3208
|
},
|
|
3227
3209
|
'equal?': {
|
|
3228
3210
|
evaluate: function (_a, sourceCodeInfo) {
|
|
3229
3211
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3230
3212
|
return deepEqual(asAny(a, sourceCodeInfo), asAny(b, sourceCodeInfo), sourceCodeInfo);
|
|
3231
3213
|
},
|
|
3232
|
-
|
|
3214
|
+
paramCount: { min: 1 },
|
|
3233
3215
|
},
|
|
3234
3216
|
'>': {
|
|
3235
3217
|
evaluate: function (_a) {
|
|
@@ -3253,7 +3235,7 @@ var miscNormalExpression = {
|
|
|
3253
3235
|
}
|
|
3254
3236
|
return true;
|
|
3255
3237
|
},
|
|
3256
|
-
|
|
3238
|
+
paramCount: { min: 1 },
|
|
3257
3239
|
},
|
|
3258
3240
|
'<': {
|
|
3259
3241
|
evaluate: function (_a) {
|
|
@@ -3277,7 +3259,7 @@ var miscNormalExpression = {
|
|
|
3277
3259
|
}
|
|
3278
3260
|
return true;
|
|
3279
3261
|
},
|
|
3280
|
-
|
|
3262
|
+
paramCount: { min: 1 },
|
|
3281
3263
|
},
|
|
3282
3264
|
'>=': {
|
|
3283
3265
|
evaluate: function (_a) {
|
|
@@ -3301,7 +3283,7 @@ var miscNormalExpression = {
|
|
|
3301
3283
|
}
|
|
3302
3284
|
return true;
|
|
3303
3285
|
},
|
|
3304
|
-
|
|
3286
|
+
paramCount: { min: 1 },
|
|
3305
3287
|
},
|
|
3306
3288
|
'<=': {
|
|
3307
3289
|
evaluate: function (_a) {
|
|
@@ -3325,14 +3307,14 @@ var miscNormalExpression = {
|
|
|
3325
3307
|
}
|
|
3326
3308
|
return true;
|
|
3327
3309
|
},
|
|
3328
|
-
|
|
3310
|
+
paramCount: { min: 1 },
|
|
3329
3311
|
},
|
|
3330
3312
|
'!': {
|
|
3331
3313
|
evaluate: function (_a) {
|
|
3332
3314
|
var _b = __read(_a, 1), first = _b[0];
|
|
3333
3315
|
return !first;
|
|
3334
3316
|
},
|
|
3335
|
-
|
|
3317
|
+
paramCount: 1,
|
|
3336
3318
|
},
|
|
3337
3319
|
'epoch>iso_date': {
|
|
3338
3320
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3340,7 +3322,7 @@ var miscNormalExpression = {
|
|
|
3340
3322
|
assertNumber(ms, sourceCodeInfo);
|
|
3341
3323
|
return new Date(ms).toISOString();
|
|
3342
3324
|
},
|
|
3343
|
-
|
|
3325
|
+
paramCount: 1,
|
|
3344
3326
|
},
|
|
3345
3327
|
'iso_date>epoch': {
|
|
3346
3328
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3350,7 +3332,7 @@ var miscNormalExpression = {
|
|
|
3350
3332
|
assertNumber(ms, sourceCodeInfo, { finite: true });
|
|
3351
3333
|
return ms;
|
|
3352
3334
|
},
|
|
3353
|
-
|
|
3335
|
+
paramCount: 1,
|
|
3354
3336
|
},
|
|
3355
3337
|
'write!': {
|
|
3356
3338
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3360,20 +3342,21 @@ var miscNormalExpression = {
|
|
|
3360
3342
|
return asAny(params[params.length - 1], sourceCodeInfo);
|
|
3361
3343
|
return null;
|
|
3362
3344
|
},
|
|
3345
|
+
paramCount: {},
|
|
3363
3346
|
},
|
|
3364
3347
|
'boolean': {
|
|
3365
3348
|
evaluate: function (_a) {
|
|
3366
3349
|
var _b = __read(_a, 1), value = _b[0];
|
|
3367
3350
|
return !!value;
|
|
3368
3351
|
},
|
|
3369
|
-
|
|
3352
|
+
paramCount: 1,
|
|
3370
3353
|
},
|
|
3371
3354
|
'compare': {
|
|
3372
3355
|
evaluate: function (_a) {
|
|
3373
3356
|
var _b = __read(_a, 2), a = _b[0], b = _b[1];
|
|
3374
3357
|
return compare(a, b);
|
|
3375
3358
|
},
|
|
3376
|
-
|
|
3359
|
+
paramCount: 2,
|
|
3377
3360
|
},
|
|
3378
3361
|
'json_parse': {
|
|
3379
3362
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3382,7 +3365,7 @@ var miscNormalExpression = {
|
|
|
3382
3365
|
// eslint-disable-next-line ts/no-unsafe-return
|
|
3383
3366
|
return JSON.parse(first);
|
|
3384
3367
|
},
|
|
3385
|
-
|
|
3368
|
+
paramCount: 1,
|
|
3386
3369
|
},
|
|
3387
3370
|
'json_stringify': {
|
|
3388
3371
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3393,7 +3376,7 @@ var miscNormalExpression = {
|
|
|
3393
3376
|
assertNumber(second, sourceCodeInfo);
|
|
3394
3377
|
return JSON.stringify(first, null, second);
|
|
3395
3378
|
},
|
|
3396
|
-
|
|
3379
|
+
paramCount: { min: 1, max: 2 },
|
|
3397
3380
|
},
|
|
3398
3381
|
};
|
|
3399
3382
|
|
|
@@ -3407,7 +3390,7 @@ var assertNormalExpression = {
|
|
|
3407
3390
|
throw new AssertionError(message, sourceCodeInfo);
|
|
3408
3391
|
return asAny(value, sourceCodeInfo);
|
|
3409
3392
|
},
|
|
3410
|
-
|
|
3393
|
+
paramCount: { min: 1, max: 2 },
|
|
3411
3394
|
},
|
|
3412
3395
|
'assert=': {
|
|
3413
3396
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3417,7 +3400,7 @@ var assertNormalExpression = {
|
|
|
3417
3400
|
throw new AssertionError("Expected ".concat(first, " to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3418
3401
|
return null;
|
|
3419
3402
|
},
|
|
3420
|
-
|
|
3403
|
+
paramCount: { min: 2, max: 3 },
|
|
3421
3404
|
},
|
|
3422
3405
|
'assert!=': {
|
|
3423
3406
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3427,7 +3410,7 @@ var assertNormalExpression = {
|
|
|
3427
3410
|
throw new AssertionError("Expected ".concat(first, " not to be ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3428
3411
|
return null;
|
|
3429
3412
|
},
|
|
3430
|
-
|
|
3413
|
+
paramCount: { min: 2, max: 3 },
|
|
3431
3414
|
},
|
|
3432
3415
|
'assert_equal': {
|
|
3433
3416
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3438,7 +3421,7 @@ var assertNormalExpression = {
|
|
|
3438
3421
|
}
|
|
3439
3422
|
return null;
|
|
3440
3423
|
},
|
|
3441
|
-
|
|
3424
|
+
paramCount: { min: 2, max: 3 },
|
|
3442
3425
|
},
|
|
3443
3426
|
'assert_not_equal': {
|
|
3444
3427
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3449,7 +3432,7 @@ var assertNormalExpression = {
|
|
|
3449
3432
|
}
|
|
3450
3433
|
return null;
|
|
3451
3434
|
},
|
|
3452
|
-
|
|
3435
|
+
paramCount: { min: 2, max: 3 },
|
|
3453
3436
|
},
|
|
3454
3437
|
'assert_gt': {
|
|
3455
3438
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3459,7 +3442,7 @@ var assertNormalExpression = {
|
|
|
3459
3442
|
throw new AssertionError("Expected ".concat(first, " to be grater than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3460
3443
|
return null;
|
|
3461
3444
|
},
|
|
3462
|
-
|
|
3445
|
+
paramCount: { min: 2, max: 3 },
|
|
3463
3446
|
},
|
|
3464
3447
|
'assert_gte': {
|
|
3465
3448
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3469,7 +3452,7 @@ var assertNormalExpression = {
|
|
|
3469
3452
|
throw new AssertionError("Expected ".concat(first, " to be grater than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3470
3453
|
return null;
|
|
3471
3454
|
},
|
|
3472
|
-
|
|
3455
|
+
paramCount: { min: 2, max: 3 },
|
|
3473
3456
|
},
|
|
3474
3457
|
'assert_lt': {
|
|
3475
3458
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3479,7 +3462,7 @@ var assertNormalExpression = {
|
|
|
3479
3462
|
throw new AssertionError("Expected ".concat(first, " to be less than ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3480
3463
|
return null;
|
|
3481
3464
|
},
|
|
3482
|
-
|
|
3465
|
+
paramCount: { min: 2, max: 3 },
|
|
3483
3466
|
},
|
|
3484
3467
|
'assert_lte': {
|
|
3485
3468
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3489,7 +3472,7 @@ var assertNormalExpression = {
|
|
|
3489
3472
|
throw new AssertionError("Expected ".concat(first, " to be less than or equal to ").concat(second, ".").concat(message), sourceCodeInfo);
|
|
3490
3473
|
return null;
|
|
3491
3474
|
},
|
|
3492
|
-
|
|
3475
|
+
paramCount: { min: 2, max: 3 },
|
|
3493
3476
|
},
|
|
3494
3477
|
'assert_true': {
|
|
3495
3478
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3499,7 +3482,7 @@ var assertNormalExpression = {
|
|
|
3499
3482
|
throw new AssertionError("Expected ".concat(first, " to be true.").concat(message), sourceCodeInfo);
|
|
3500
3483
|
return null;
|
|
3501
3484
|
},
|
|
3502
|
-
|
|
3485
|
+
paramCount: { min: 1, max: 2 },
|
|
3503
3486
|
},
|
|
3504
3487
|
'assert_false': {
|
|
3505
3488
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3509,7 +3492,7 @@ var assertNormalExpression = {
|
|
|
3509
3492
|
throw new AssertionError("Expected ".concat(first, " to be false.").concat(message), sourceCodeInfo);
|
|
3510
3493
|
return null;
|
|
3511
3494
|
},
|
|
3512
|
-
|
|
3495
|
+
paramCount: { min: 1, max: 2 },
|
|
3513
3496
|
},
|
|
3514
3497
|
'assert_truthy': {
|
|
3515
3498
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3519,7 +3502,7 @@ var assertNormalExpression = {
|
|
|
3519
3502
|
throw new AssertionError("Expected ".concat(first, " to be truthy.").concat(message), sourceCodeInfo);
|
|
3520
3503
|
return null;
|
|
3521
3504
|
},
|
|
3522
|
-
|
|
3505
|
+
paramCount: { min: 1, max: 2 },
|
|
3523
3506
|
},
|
|
3524
3507
|
'assert_falsy': {
|
|
3525
3508
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3529,7 +3512,7 @@ var assertNormalExpression = {
|
|
|
3529
3512
|
throw new AssertionError("Expected ".concat(first, " to be falsy.").concat(message), sourceCodeInfo);
|
|
3530
3513
|
return null;
|
|
3531
3514
|
},
|
|
3532
|
-
|
|
3515
|
+
paramCount: { min: 1, max: 2 },
|
|
3533
3516
|
},
|
|
3534
3517
|
'assert_null': {
|
|
3535
3518
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3539,7 +3522,7 @@ var assertNormalExpression = {
|
|
|
3539
3522
|
throw new AssertionError("Expected ".concat(first, " to be nil.").concat(message), sourceCodeInfo);
|
|
3540
3523
|
return null;
|
|
3541
3524
|
},
|
|
3542
|
-
|
|
3525
|
+
paramCount: { min: 1, max: 2 },
|
|
3543
3526
|
},
|
|
3544
3527
|
'assert_throws': {
|
|
3545
3528
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3555,7 +3538,7 @@ var assertNormalExpression = {
|
|
|
3555
3538
|
}
|
|
3556
3539
|
throw new AssertionError("Expected function to throw.".concat(message), sourceCodeInfo);
|
|
3557
3540
|
},
|
|
3558
|
-
|
|
3541
|
+
paramCount: { min: 1, max: 2 },
|
|
3559
3542
|
},
|
|
3560
3543
|
'assert_throws_error': {
|
|
3561
3544
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3576,7 +3559,7 @@ var assertNormalExpression = {
|
|
|
3576
3559
|
}
|
|
3577
3560
|
throw new AssertionError("Expected function to throw \"".concat(throwMessage, "\".").concat(message), sourceCodeInfo);
|
|
3578
3561
|
},
|
|
3579
|
-
|
|
3562
|
+
paramCount: { min: 2, max: 3 },
|
|
3580
3563
|
},
|
|
3581
3564
|
'assert_not_throws': {
|
|
3582
3565
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -3592,7 +3575,7 @@ var assertNormalExpression = {
|
|
|
3592
3575
|
}
|
|
3593
3576
|
return null;
|
|
3594
3577
|
},
|
|
3595
|
-
|
|
3578
|
+
paramCount: { min: 1, max: 2 },
|
|
3596
3579
|
},
|
|
3597
3580
|
};
|
|
3598
3581
|
|
|
@@ -3608,7 +3591,7 @@ var objectNormalExpression = {
|
|
|
3608
3591
|
}
|
|
3609
3592
|
return result;
|
|
3610
3593
|
},
|
|
3611
|
-
|
|
3594
|
+
paramCount: { even: true },
|
|
3612
3595
|
},
|
|
3613
3596
|
keys: {
|
|
3614
3597
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3616,7 +3599,7 @@ var objectNormalExpression = {
|
|
|
3616
3599
|
assertObj(obj, sourceCodeInfo);
|
|
3617
3600
|
return Object.keys(obj);
|
|
3618
3601
|
},
|
|
3619
|
-
|
|
3602
|
+
paramCount: 1,
|
|
3620
3603
|
},
|
|
3621
3604
|
vals: {
|
|
3622
3605
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3624,7 +3607,7 @@ var objectNormalExpression = {
|
|
|
3624
3607
|
assertObj(obj, sourceCodeInfo);
|
|
3625
3608
|
return Object.values(obj);
|
|
3626
3609
|
},
|
|
3627
|
-
|
|
3610
|
+
paramCount: 1,
|
|
3628
3611
|
},
|
|
3629
3612
|
entries: {
|
|
3630
3613
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3632,7 +3615,7 @@ var objectNormalExpression = {
|
|
|
3632
3615
|
assertObj(obj, sourceCodeInfo);
|
|
3633
3616
|
return Object.entries(obj);
|
|
3634
3617
|
},
|
|
3635
|
-
|
|
3618
|
+
paramCount: 1,
|
|
3636
3619
|
},
|
|
3637
3620
|
find: {
|
|
3638
3621
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3643,7 +3626,7 @@ var objectNormalExpression = {
|
|
|
3643
3626
|
return [key, obj[key]];
|
|
3644
3627
|
return null;
|
|
3645
3628
|
},
|
|
3646
|
-
|
|
3629
|
+
paramCount: 2,
|
|
3647
3630
|
},
|
|
3648
3631
|
dissoc: {
|
|
3649
3632
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3654,7 +3637,7 @@ var objectNormalExpression = {
|
|
|
3654
3637
|
delete newObj[key];
|
|
3655
3638
|
return newObj;
|
|
3656
3639
|
},
|
|
3657
|
-
|
|
3640
|
+
paramCount: 2,
|
|
3658
3641
|
},
|
|
3659
3642
|
merge: {
|
|
3660
3643
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -3667,7 +3650,7 @@ var objectNormalExpression = {
|
|
|
3667
3650
|
return __assign(__assign({}, result), obj);
|
|
3668
3651
|
}, __assign({}, first));
|
|
3669
3652
|
},
|
|
3670
|
-
|
|
3653
|
+
paramCount: { min: 0 },
|
|
3671
3654
|
},
|
|
3672
3655
|
merge_with: {
|
|
3673
3656
|
evaluate: function (params, sourceCodeInfo, contextStack, _a) {
|
|
@@ -3690,7 +3673,7 @@ var objectNormalExpression = {
|
|
|
3690
3673
|
return result;
|
|
3691
3674
|
}, __assign({}, first));
|
|
3692
3675
|
},
|
|
3693
|
-
|
|
3676
|
+
paramCount: { min: 2 },
|
|
3694
3677
|
},
|
|
3695
3678
|
zipmap: {
|
|
3696
3679
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3705,7 +3688,7 @@ var objectNormalExpression = {
|
|
|
3705
3688
|
}
|
|
3706
3689
|
return result;
|
|
3707
3690
|
},
|
|
3708
|
-
|
|
3691
|
+
paramCount: 2,
|
|
3709
3692
|
},
|
|
3710
3693
|
select_keys: {
|
|
3711
3694
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3718,7 +3701,7 @@ var objectNormalExpression = {
|
|
|
3718
3701
|
return result;
|
|
3719
3702
|
}, {});
|
|
3720
3703
|
},
|
|
3721
|
-
|
|
3704
|
+
paramCount: 2,
|
|
3722
3705
|
},
|
|
3723
3706
|
};
|
|
3724
3707
|
|
|
@@ -3728,42 +3711,42 @@ var predicatesNormalExpression = {
|
|
|
3728
3711
|
var _b = __read(_a, 1), first = _b[0];
|
|
3729
3712
|
return isLitsFunction(first);
|
|
3730
3713
|
},
|
|
3731
|
-
|
|
3714
|
+
paramCount: 1,
|
|
3732
3715
|
},
|
|
3733
3716
|
'string?': {
|
|
3734
3717
|
evaluate: function (_a) {
|
|
3735
3718
|
var _b = __read(_a, 1), first = _b[0];
|
|
3736
3719
|
return typeof first === 'string';
|
|
3737
3720
|
},
|
|
3738
|
-
|
|
3721
|
+
paramCount: 1,
|
|
3739
3722
|
},
|
|
3740
3723
|
'number?': {
|
|
3741
3724
|
evaluate: function (_a) {
|
|
3742
3725
|
var _b = __read(_a, 1), first = _b[0];
|
|
3743
3726
|
return typeof first === 'number';
|
|
3744
3727
|
},
|
|
3745
|
-
|
|
3728
|
+
paramCount: 1,
|
|
3746
3729
|
},
|
|
3747
3730
|
'integer?': {
|
|
3748
3731
|
evaluate: function (_a) {
|
|
3749
3732
|
var _b = __read(_a, 1), first = _b[0];
|
|
3750
3733
|
return typeof first === 'number' && isNumber(first, { integer: true });
|
|
3751
3734
|
},
|
|
3752
|
-
|
|
3735
|
+
paramCount: 1,
|
|
3753
3736
|
},
|
|
3754
3737
|
'boolean?': {
|
|
3755
3738
|
evaluate: function (_a) {
|
|
3756
3739
|
var _b = __read(_a, 1), first = _b[0];
|
|
3757
3740
|
return typeof first === 'boolean';
|
|
3758
3741
|
},
|
|
3759
|
-
|
|
3742
|
+
paramCount: 1,
|
|
3760
3743
|
},
|
|
3761
3744
|
'nil?': {
|
|
3762
3745
|
evaluate: function (_a) {
|
|
3763
3746
|
var _b = __read(_a, 1), first = _b[0];
|
|
3764
3747
|
return first === null || first === undefined;
|
|
3765
3748
|
},
|
|
3766
|
-
|
|
3749
|
+
paramCount: 1,
|
|
3767
3750
|
},
|
|
3768
3751
|
'zero?': {
|
|
3769
3752
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3771,7 +3754,7 @@ var predicatesNormalExpression = {
|
|
|
3771
3754
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3772
3755
|
return first === 0;
|
|
3773
3756
|
},
|
|
3774
|
-
|
|
3757
|
+
paramCount: 1,
|
|
3775
3758
|
},
|
|
3776
3759
|
'pos?': {
|
|
3777
3760
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3779,7 +3762,7 @@ var predicatesNormalExpression = {
|
|
|
3779
3762
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3780
3763
|
return first > 0;
|
|
3781
3764
|
},
|
|
3782
|
-
|
|
3765
|
+
paramCount: 1,
|
|
3783
3766
|
},
|
|
3784
3767
|
'neg?': {
|
|
3785
3768
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3787,7 +3770,7 @@ var predicatesNormalExpression = {
|
|
|
3787
3770
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3788
3771
|
return first < 0;
|
|
3789
3772
|
},
|
|
3790
|
-
|
|
3773
|
+
paramCount: 1,
|
|
3791
3774
|
},
|
|
3792
3775
|
'even?': {
|
|
3793
3776
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3795,7 +3778,7 @@ var predicatesNormalExpression = {
|
|
|
3795
3778
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3796
3779
|
return first % 2 === 0;
|
|
3797
3780
|
},
|
|
3798
|
-
|
|
3781
|
+
paramCount: 1,
|
|
3799
3782
|
},
|
|
3800
3783
|
'odd?': {
|
|
3801
3784
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3803,42 +3786,42 @@ var predicatesNormalExpression = {
|
|
|
3803
3786
|
assertNumber(first, sourceCodeInfo, { finite: true });
|
|
3804
3787
|
return isNumber(first, { integer: true }) && first % 2 !== 0;
|
|
3805
3788
|
},
|
|
3806
|
-
|
|
3789
|
+
paramCount: 1,
|
|
3807
3790
|
},
|
|
3808
3791
|
'array?': {
|
|
3809
3792
|
evaluate: function (_a) {
|
|
3810
3793
|
var _b = __read(_a, 1), first = _b[0];
|
|
3811
3794
|
return Array.isArray(first);
|
|
3812
3795
|
},
|
|
3813
|
-
|
|
3796
|
+
paramCount: 1,
|
|
3814
3797
|
},
|
|
3815
3798
|
'coll?': {
|
|
3816
3799
|
evaluate: function (_a) {
|
|
3817
3800
|
var _b = __read(_a, 1), first = _b[0];
|
|
3818
3801
|
return isColl(first);
|
|
3819
3802
|
},
|
|
3820
|
-
|
|
3803
|
+
paramCount: 1,
|
|
3821
3804
|
},
|
|
3822
3805
|
'seq?': {
|
|
3823
3806
|
evaluate: function (_a) {
|
|
3824
3807
|
var _b = __read(_a, 1), first = _b[0];
|
|
3825
3808
|
return isSeq(first);
|
|
3826
3809
|
},
|
|
3827
|
-
|
|
3810
|
+
paramCount: 1,
|
|
3828
3811
|
},
|
|
3829
3812
|
'object?': {
|
|
3830
3813
|
evaluate: function (_a) {
|
|
3831
3814
|
var _b = __read(_a, 1), first = _b[0];
|
|
3832
3815
|
return isObj(first);
|
|
3833
3816
|
},
|
|
3834
|
-
|
|
3817
|
+
paramCount: 1,
|
|
3835
3818
|
},
|
|
3836
3819
|
'regexp?': {
|
|
3837
3820
|
evaluate: function (_a) {
|
|
3838
3821
|
var _b = __read(_a, 1), value = _b[0];
|
|
3839
3822
|
return isRegularExpression(value);
|
|
3840
3823
|
},
|
|
3841
|
-
|
|
3824
|
+
paramCount: 1,
|
|
3842
3825
|
},
|
|
3843
3826
|
'finite?': {
|
|
3844
3827
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3846,7 +3829,7 @@ var predicatesNormalExpression = {
|
|
|
3846
3829
|
assertNumber(value, sourceCodeInfo);
|
|
3847
3830
|
return Number.isFinite(value);
|
|
3848
3831
|
},
|
|
3849
|
-
|
|
3832
|
+
paramCount: 1,
|
|
3850
3833
|
},
|
|
3851
3834
|
'nan?': {
|
|
3852
3835
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3854,7 +3837,7 @@ var predicatesNormalExpression = {
|
|
|
3854
3837
|
assertNumber(value, sourceCodeInfo);
|
|
3855
3838
|
return Number.isNaN(value);
|
|
3856
3839
|
},
|
|
3857
|
-
|
|
3840
|
+
paramCount: 1,
|
|
3858
3841
|
},
|
|
3859
3842
|
'positive_infinity?': {
|
|
3860
3843
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3862,7 +3845,7 @@ var predicatesNormalExpression = {
|
|
|
3862
3845
|
assertNumber(value, sourceCodeInfo);
|
|
3863
3846
|
return value === Number.POSITIVE_INFINITY;
|
|
3864
3847
|
},
|
|
3865
|
-
|
|
3848
|
+
paramCount: 1,
|
|
3866
3849
|
},
|
|
3867
3850
|
'negative_infinity?': {
|
|
3868
3851
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3870,21 +3853,21 @@ var predicatesNormalExpression = {
|
|
|
3870
3853
|
assertNumber(value, sourceCodeInfo);
|
|
3871
3854
|
return value === Number.NEGATIVE_INFINITY;
|
|
3872
3855
|
},
|
|
3873
|
-
|
|
3856
|
+
paramCount: 1,
|
|
3874
3857
|
},
|
|
3875
3858
|
'true?': {
|
|
3876
3859
|
evaluate: function (_a) {
|
|
3877
3860
|
var _b = __read(_a, 1), value = _b[0];
|
|
3878
3861
|
return value === true;
|
|
3879
3862
|
},
|
|
3880
|
-
|
|
3863
|
+
paramCount: 1,
|
|
3881
3864
|
},
|
|
3882
3865
|
'false?': {
|
|
3883
3866
|
evaluate: function (_a) {
|
|
3884
3867
|
var _b = __read(_a, 1), value = _b[0];
|
|
3885
3868
|
return value === false;
|
|
3886
3869
|
},
|
|
3887
|
-
|
|
3870
|
+
paramCount: 1,
|
|
3888
3871
|
},
|
|
3889
3872
|
'empty?': {
|
|
3890
3873
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3898,7 +3881,7 @@ var predicatesNormalExpression = {
|
|
|
3898
3881
|
return coll.length === 0;
|
|
3899
3882
|
return Object.keys(coll).length === 0;
|
|
3900
3883
|
},
|
|
3901
|
-
|
|
3884
|
+
paramCount: 1,
|
|
3902
3885
|
},
|
|
3903
3886
|
'not_empty?': {
|
|
3904
3887
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3912,7 +3895,7 @@ var predicatesNormalExpression = {
|
|
|
3912
3895
|
return coll.length > 0;
|
|
3913
3896
|
return Object.keys(coll).length > 0;
|
|
3914
3897
|
},
|
|
3915
|
-
|
|
3898
|
+
paramCount: 1,
|
|
3916
3899
|
},
|
|
3917
3900
|
};
|
|
3918
3901
|
|
|
@@ -3931,7 +3914,7 @@ var regexpNormalExpression = {
|
|
|
3931
3914
|
_b.f = flags,
|
|
3932
3915
|
_b;
|
|
3933
3916
|
},
|
|
3934
|
-
|
|
3917
|
+
paramCount: { min: 1, max: 2 },
|
|
3935
3918
|
},
|
|
3936
3919
|
match: {
|
|
3937
3920
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3945,7 +3928,7 @@ var regexpNormalExpression = {
|
|
|
3945
3928
|
return __spreadArray([], __read(match), false);
|
|
3946
3929
|
return null;
|
|
3947
3930
|
},
|
|
3948
|
-
|
|
3931
|
+
paramCount: 2,
|
|
3949
3932
|
},
|
|
3950
3933
|
replace: {
|
|
3951
3934
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3956,7 +3939,7 @@ var regexpNormalExpression = {
|
|
|
3956
3939
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f)) : regexp;
|
|
3957
3940
|
return str.replace(matcher, value);
|
|
3958
3941
|
},
|
|
3959
|
-
|
|
3942
|
+
paramCount: 3,
|
|
3960
3943
|
},
|
|
3961
3944
|
replace_all: {
|
|
3962
3945
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3967,7 +3950,7 @@ var regexpNormalExpression = {
|
|
|
3967
3950
|
var matcher = isRegularExpression(regexp) ? new RegExp(regexp.s, "".concat(regexp.f.includes('g') ? regexp.f : "".concat(regexp.f, "g"))) : regexp;
|
|
3968
3951
|
return str.replaceAll(matcher, value);
|
|
3969
3952
|
},
|
|
3970
|
-
|
|
3953
|
+
paramCount: 3,
|
|
3971
3954
|
},
|
|
3972
3955
|
};
|
|
3973
3956
|
|
|
@@ -3983,7 +3966,7 @@ var stringNormalExpression = {
|
|
|
3983
3966
|
assertNumber(third, sourceCodeInfo, { gte: second });
|
|
3984
3967
|
return (first).substring(second, third);
|
|
3985
3968
|
},
|
|
3986
|
-
|
|
3969
|
+
paramCount: { min: 2, max: 3 },
|
|
3987
3970
|
},
|
|
3988
3971
|
'string_repeat': {
|
|
3989
3972
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -3992,7 +3975,7 @@ var stringNormalExpression = {
|
|
|
3992
3975
|
assertNumber(count, sourceCodeInfo, { integer: true, nonNegative: true });
|
|
3993
3976
|
return str.repeat(count);
|
|
3994
3977
|
},
|
|
3995
|
-
|
|
3978
|
+
paramCount: 2,
|
|
3996
3979
|
},
|
|
3997
3980
|
'str': {
|
|
3998
3981
|
evaluate: function (params) {
|
|
@@ -4007,6 +3990,7 @@ var stringNormalExpression = {
|
|
|
4007
3990
|
return result + paramStr;
|
|
4008
3991
|
}, '');
|
|
4009
3992
|
},
|
|
3993
|
+
paramCount: {},
|
|
4010
3994
|
},
|
|
4011
3995
|
'number': {
|
|
4012
3996
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4017,7 +4001,7 @@ var stringNormalExpression = {
|
|
|
4017
4001
|
throw new LitsError("Could not convert '".concat(str, "' to a number."), sourceCodeInfo);
|
|
4018
4002
|
return number;
|
|
4019
4003
|
},
|
|
4020
|
-
|
|
4004
|
+
paramCount: 1,
|
|
4021
4005
|
},
|
|
4022
4006
|
'from_char_code': {
|
|
4023
4007
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4031,7 +4015,7 @@ var stringNormalExpression = {
|
|
|
4031
4015
|
throw new LitsError(error, sourceCodeInfo);
|
|
4032
4016
|
}
|
|
4033
4017
|
},
|
|
4034
|
-
|
|
4018
|
+
paramCount: 1,
|
|
4035
4019
|
},
|
|
4036
4020
|
'to_char_code': {
|
|
4037
4021
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4039,7 +4023,7 @@ var stringNormalExpression = {
|
|
|
4039
4023
|
assertString(str, sourceCodeInfo, { nonEmpty: true });
|
|
4040
4024
|
return asNonUndefined(str.codePointAt(0), sourceCodeInfo);
|
|
4041
4025
|
},
|
|
4042
|
-
|
|
4026
|
+
paramCount: 1,
|
|
4043
4027
|
},
|
|
4044
4028
|
'lower_case': {
|
|
4045
4029
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4047,7 +4031,7 @@ var stringNormalExpression = {
|
|
|
4047
4031
|
assertString(str, sourceCodeInfo);
|
|
4048
4032
|
return str.toLowerCase();
|
|
4049
4033
|
},
|
|
4050
|
-
|
|
4034
|
+
paramCount: 1,
|
|
4051
4035
|
},
|
|
4052
4036
|
'upper_case': {
|
|
4053
4037
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4055,7 +4039,7 @@ var stringNormalExpression = {
|
|
|
4055
4039
|
assertString(str, sourceCodeInfo);
|
|
4056
4040
|
return str.toUpperCase();
|
|
4057
4041
|
},
|
|
4058
|
-
|
|
4042
|
+
paramCount: 1,
|
|
4059
4043
|
},
|
|
4060
4044
|
'trim': {
|
|
4061
4045
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4063,7 +4047,7 @@ var stringNormalExpression = {
|
|
|
4063
4047
|
assertString(str, sourceCodeInfo);
|
|
4064
4048
|
return str.trim();
|
|
4065
4049
|
},
|
|
4066
|
-
|
|
4050
|
+
paramCount: 1,
|
|
4067
4051
|
},
|
|
4068
4052
|
'trim_left': {
|
|
4069
4053
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4071,7 +4055,7 @@ var stringNormalExpression = {
|
|
|
4071
4055
|
assertString(str, sourceCodeInfo);
|
|
4072
4056
|
return str.replace(/^\s+/, '');
|
|
4073
4057
|
},
|
|
4074
|
-
|
|
4058
|
+
paramCount: 1,
|
|
4075
4059
|
},
|
|
4076
4060
|
'trim_right': {
|
|
4077
4061
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4079,7 +4063,7 @@ var stringNormalExpression = {
|
|
|
4079
4063
|
assertString(str, sourceCodeInfo);
|
|
4080
4064
|
return str.replace(/\s+$/, '');
|
|
4081
4065
|
},
|
|
4082
|
-
|
|
4066
|
+
paramCount: 1,
|
|
4083
4067
|
},
|
|
4084
4068
|
'++': {
|
|
4085
4069
|
evaluate: function (params, sourceCodeInfo) {
|
|
@@ -4103,7 +4087,7 @@ var stringNormalExpression = {
|
|
|
4103
4087
|
return "".concat(acc).concat(str);
|
|
4104
4088
|
}, first === null ? '' : "".concat(first));
|
|
4105
4089
|
},
|
|
4106
|
-
|
|
4090
|
+
paramCount: {},
|
|
4107
4091
|
},
|
|
4108
4092
|
'join': {
|
|
4109
4093
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4113,7 +4097,7 @@ var stringNormalExpression = {
|
|
|
4113
4097
|
assertString(delimiter, sourceCodeInfo);
|
|
4114
4098
|
return stringList.join(delimiter);
|
|
4115
4099
|
},
|
|
4116
|
-
|
|
4100
|
+
paramCount: 2,
|
|
4117
4101
|
},
|
|
4118
4102
|
'split': {
|
|
4119
4103
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4127,7 +4111,7 @@ var stringNormalExpression = {
|
|
|
4127
4111
|
: new RegExp(stringOrRegExpValue.s, stringOrRegExpValue.f);
|
|
4128
4112
|
return str.split(delimiter, limit);
|
|
4129
4113
|
},
|
|
4130
|
-
|
|
4114
|
+
paramCount: { min: 2, max: 3 },
|
|
4131
4115
|
},
|
|
4132
4116
|
'split_lines': {
|
|
4133
4117
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4135,7 +4119,7 @@ var stringNormalExpression = {
|
|
|
4135
4119
|
assertString(str, sourceCodeInfo);
|
|
4136
4120
|
return str.split((/\r\n|\n|\r/)).filter(function (line) { return line !== ''; });
|
|
4137
4121
|
},
|
|
4138
|
-
|
|
4122
|
+
paramCount: 1,
|
|
4139
4123
|
},
|
|
4140
4124
|
'pad_left': {
|
|
4141
4125
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4146,7 +4130,7 @@ var stringNormalExpression = {
|
|
|
4146
4130
|
assertString(padString, sourceCodeInfo);
|
|
4147
4131
|
return str.padStart(length, padString);
|
|
4148
4132
|
},
|
|
4149
|
-
|
|
4133
|
+
paramCount: { min: 2, max: 3 },
|
|
4150
4134
|
},
|
|
4151
4135
|
'pad_right': {
|
|
4152
4136
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4157,7 +4141,7 @@ var stringNormalExpression = {
|
|
|
4157
4141
|
assertString(padString, sourceCodeInfo);
|
|
4158
4142
|
return str.padEnd(length, padString);
|
|
4159
4143
|
},
|
|
4160
|
-
|
|
4144
|
+
paramCount: { min: 2, max: 3 },
|
|
4161
4145
|
},
|
|
4162
4146
|
'template': {
|
|
4163
4147
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4188,7 +4172,7 @@ var stringNormalExpression = {
|
|
|
4188
4172
|
}
|
|
4189
4173
|
}
|
|
4190
4174
|
},
|
|
4191
|
-
|
|
4175
|
+
paramCount: { min: 1, max: 10 },
|
|
4192
4176
|
},
|
|
4193
4177
|
'encode_base64': {
|
|
4194
4178
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4199,7 +4183,7 @@ var stringNormalExpression = {
|
|
|
4199
4183
|
return String.fromCharCode(Number.parseInt(p1, 16));
|
|
4200
4184
|
}));
|
|
4201
4185
|
},
|
|
4202
|
-
|
|
4186
|
+
paramCount: 1,
|
|
4203
4187
|
},
|
|
4204
4188
|
'decode_base64': {
|
|
4205
4189
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4217,7 +4201,7 @@ var stringNormalExpression = {
|
|
|
4217
4201
|
throw new LitsError(error, sourceCodeInfo);
|
|
4218
4202
|
}
|
|
4219
4203
|
},
|
|
4220
|
-
|
|
4204
|
+
paramCount: 1,
|
|
4221
4205
|
},
|
|
4222
4206
|
'encode_uri_component': {
|
|
4223
4207
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4225,7 +4209,7 @@ var stringNormalExpression = {
|
|
|
4225
4209
|
assertString(value, sourceCodeInfo);
|
|
4226
4210
|
return encodeURIComponent(value);
|
|
4227
4211
|
},
|
|
4228
|
-
|
|
4212
|
+
paramCount: 1,
|
|
4229
4213
|
},
|
|
4230
4214
|
'decode_uri_component': {
|
|
4231
4215
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4238,7 +4222,7 @@ var stringNormalExpression = {
|
|
|
4238
4222
|
throw new LitsError(error, sourceCodeInfo);
|
|
4239
4223
|
}
|
|
4240
4224
|
},
|
|
4241
|
-
|
|
4225
|
+
paramCount: 1,
|
|
4242
4226
|
},
|
|
4243
4227
|
'blank?': {
|
|
4244
4228
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4249,7 +4233,7 @@ var stringNormalExpression = {
|
|
|
4249
4233
|
assertString(value, sourceCodeInfo);
|
|
4250
4234
|
return blankRegexp.test(value);
|
|
4251
4235
|
},
|
|
4252
|
-
|
|
4236
|
+
paramCount: 1,
|
|
4253
4237
|
},
|
|
4254
4238
|
'capitalize': {
|
|
4255
4239
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4257,7 +4241,7 @@ var stringNormalExpression = {
|
|
|
4257
4241
|
assertString(str, sourceCodeInfo);
|
|
4258
4242
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
4259
4243
|
},
|
|
4260
|
-
|
|
4244
|
+
paramCount: 1,
|
|
4261
4245
|
},
|
|
4262
4246
|
};
|
|
4263
4247
|
var doubleDollarRegexp = /\$\$/g;
|
|
@@ -4288,14 +4272,14 @@ var functionalNormalExpression = {
|
|
|
4288
4272
|
var applyArray = __spreadArray(__spreadArray([], __read(params.slice(0, -1)), false), __read(last), false);
|
|
4289
4273
|
return executeFunction(func, applyArray, contextStack, sourceCodeInfo);
|
|
4290
4274
|
},
|
|
4291
|
-
|
|
4275
|
+
paramCount: { min: 2 },
|
|
4292
4276
|
},
|
|
4293
4277
|
identity: {
|
|
4294
4278
|
evaluate: function (_a) {
|
|
4295
4279
|
var _b = __read(_a, 1), value = _b[0];
|
|
4296
4280
|
return toAny(value);
|
|
4297
4281
|
},
|
|
4298
|
-
|
|
4282
|
+
paramCount: 1,
|
|
4299
4283
|
},
|
|
4300
4284
|
partial: {
|
|
4301
4285
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4309,7 +4293,7 @@ var functionalNormalExpression = {
|
|
|
4309
4293
|
_b.p = params,
|
|
4310
4294
|
_b;
|
|
4311
4295
|
},
|
|
4312
|
-
|
|
4296
|
+
paramCount: { min: 1 },
|
|
4313
4297
|
},
|
|
4314
4298
|
comp: {
|
|
4315
4299
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4327,6 +4311,7 @@ var functionalNormalExpression = {
|
|
|
4327
4311
|
_a.f = fns,
|
|
4328
4312
|
_a;
|
|
4329
4313
|
},
|
|
4314
|
+
paramCount: {},
|
|
4330
4315
|
},
|
|
4331
4316
|
constantly: {
|
|
4332
4317
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4339,7 +4324,7 @@ var functionalNormalExpression = {
|
|
|
4339
4324
|
_b.v = toAny(value),
|
|
4340
4325
|
_b;
|
|
4341
4326
|
},
|
|
4342
|
-
|
|
4327
|
+
paramCount: 1,
|
|
4343
4328
|
},
|
|
4344
4329
|
juxt: {
|
|
4345
4330
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4351,7 +4336,7 @@ var functionalNormalExpression = {
|
|
|
4351
4336
|
_a.f = fns,
|
|
4352
4337
|
_a;
|
|
4353
4338
|
},
|
|
4354
|
-
|
|
4339
|
+
paramCount: { min: 1 },
|
|
4355
4340
|
},
|
|
4356
4341
|
complement: {
|
|
4357
4342
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4364,7 +4349,7 @@ var functionalNormalExpression = {
|
|
|
4364
4349
|
_b.f = toAny(fn),
|
|
4365
4350
|
_b;
|
|
4366
4351
|
},
|
|
4367
|
-
|
|
4352
|
+
paramCount: 1,
|
|
4368
4353
|
},
|
|
4369
4354
|
every_pred: {
|
|
4370
4355
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4376,7 +4361,7 @@ var functionalNormalExpression = {
|
|
|
4376
4361
|
_a.f = fns,
|
|
4377
4362
|
_a;
|
|
4378
4363
|
},
|
|
4379
|
-
|
|
4364
|
+
paramCount: { min: 1 },
|
|
4380
4365
|
},
|
|
4381
4366
|
some_pred: {
|
|
4382
4367
|
evaluate: function (fns, sourceCodeInfo) {
|
|
@@ -4388,7 +4373,7 @@ var functionalNormalExpression = {
|
|
|
4388
4373
|
_a.f = fns,
|
|
4389
4374
|
_a;
|
|
4390
4375
|
},
|
|
4391
|
-
|
|
4376
|
+
paramCount: { min: 1 },
|
|
4392
4377
|
},
|
|
4393
4378
|
fnil: {
|
|
4394
4379
|
evaluate: function (_a, sourceCodeInfo) {
|
|
@@ -4402,7 +4387,7 @@ var functionalNormalExpression = {
|
|
|
4402
4387
|
_b.p = params,
|
|
4403
4388
|
_b;
|
|
4404
4389
|
},
|
|
4405
|
-
|
|
4390
|
+
paramCount: { min: 2 },
|
|
4406
4391
|
},
|
|
4407
4392
|
};
|
|
4408
4393
|
|
|
@@ -4421,7 +4406,7 @@ var andSpecialExpression = {
|
|
|
4421
4406
|
};
|
|
4422
4407
|
return node;
|
|
4423
4408
|
},
|
|
4424
|
-
|
|
4409
|
+
paramCount: {},
|
|
4425
4410
|
evaluate: function (node, contextStack, _a) {
|
|
4426
4411
|
var e_1, _b;
|
|
4427
4412
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4465,14 +4450,14 @@ function getCommonPolishSpecialExpressionParser(name) {
|
|
|
4465
4450
|
|
|
4466
4451
|
var commentSpecialExpression = {
|
|
4467
4452
|
polishParse: getCommonPolishSpecialExpressionParser('comment'),
|
|
4468
|
-
|
|
4453
|
+
paramCount: {},
|
|
4469
4454
|
evaluate: function () { return null; },
|
|
4470
4455
|
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4471
4456
|
};
|
|
4472
4457
|
|
|
4473
4458
|
var condSpecialExpression = {
|
|
4474
4459
|
polishParse: getCommonPolishSpecialExpressionParser('cond'),
|
|
4475
|
-
|
|
4460
|
+
paramCount: { even: true },
|
|
4476
4461
|
evaluate: function (node, contextStack, _a) {
|
|
4477
4462
|
var e_1, _b;
|
|
4478
4463
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4502,7 +4487,7 @@ var condSpecialExpression = {
|
|
|
4502
4487
|
|
|
4503
4488
|
var switchSpecialExpression = {
|
|
4504
4489
|
polishParse: getCommonPolishSpecialExpressionParser('switch'),
|
|
4505
|
-
|
|
4490
|
+
paramCount: { odd: true },
|
|
4506
4491
|
evaluate: function (node, contextStack, _a) {
|
|
4507
4492
|
var e_1, _b;
|
|
4508
4493
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4533,7 +4518,7 @@ var switchSpecialExpression = {
|
|
|
4533
4518
|
|
|
4534
4519
|
var declaredSpecialExpression = {
|
|
4535
4520
|
polishParse: getCommonPolishSpecialExpressionParser('defined?'),
|
|
4536
|
-
|
|
4521
|
+
paramCount: 1,
|
|
4537
4522
|
evaluate: function (node, contextStack) {
|
|
4538
4523
|
var lookUpResult = contextStack.lookUp(node.p[0]);
|
|
4539
4524
|
return lookUpResult !== null;
|
|
@@ -4580,7 +4565,7 @@ var defSpecialExpression = {
|
|
|
4580
4565
|
assertSymbolNode(node.p[0], (_b = getTokenDebugData(node.token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
4581
4566
|
return node;
|
|
4582
4567
|
},
|
|
4583
|
-
|
|
4568
|
+
paramCount: 2,
|
|
4584
4569
|
evaluate: function (node, contextStack, _a) {
|
|
4585
4570
|
var _b;
|
|
4586
4571
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4605,7 +4590,7 @@ var defSpecialExpression = {
|
|
|
4605
4590
|
|
|
4606
4591
|
var doSpecialExpression = {
|
|
4607
4592
|
polishParse: getCommonPolishSpecialExpressionParser('do'),
|
|
4608
|
-
|
|
4593
|
+
paramCount: {},
|
|
4609
4594
|
evaluate: function (node, contextStack, _a) {
|
|
4610
4595
|
var e_1, _b;
|
|
4611
4596
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4677,7 +4662,7 @@ var defnSpecialExpression = {
|
|
|
4677
4662
|
};
|
|
4678
4663
|
return node;
|
|
4679
4664
|
},
|
|
4680
|
-
|
|
4665
|
+
paramCount: {},
|
|
4681
4666
|
evaluate: function (node, contextStack, _a) {
|
|
4682
4667
|
var _b;
|
|
4683
4668
|
var _c, _d;
|
|
@@ -4716,7 +4701,7 @@ var fnSpecialExpression = {
|
|
|
4716
4701
|
};
|
|
4717
4702
|
return node;
|
|
4718
4703
|
},
|
|
4719
|
-
|
|
4704
|
+
paramCount: {},
|
|
4720
4705
|
evaluate: function (node, contextStack, _a) {
|
|
4721
4706
|
var _b;
|
|
4722
4707
|
var _c;
|
|
@@ -4941,7 +4926,7 @@ function parseFunctionArguments(tokenStream, parseState, parsers) {
|
|
|
4941
4926
|
|
|
4942
4927
|
var ifSpecialExpression = {
|
|
4943
4928
|
polishParse: getCommonPolishSpecialExpressionParser('if'),
|
|
4944
|
-
|
|
4929
|
+
paramCount: { min: 2, max: 3 },
|
|
4945
4930
|
evaluate: function (node, contextStack, _a) {
|
|
4946
4931
|
var _b;
|
|
4947
4932
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4965,7 +4950,7 @@ var ifSpecialExpression = {
|
|
|
4965
4950
|
|
|
4966
4951
|
var unlessSpecialExpression = {
|
|
4967
4952
|
polishParse: getCommonPolishSpecialExpressionParser('unless'),
|
|
4968
|
-
|
|
4953
|
+
paramCount: { min: 2, max: 3 },
|
|
4969
4954
|
evaluate: function (node, contextStack, _a) {
|
|
4970
4955
|
var _b;
|
|
4971
4956
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5002,7 +4987,7 @@ var letSpecialExpression = {
|
|
|
5002
4987
|
};
|
|
5003
4988
|
return node;
|
|
5004
4989
|
},
|
|
5005
|
-
|
|
4990
|
+
paramCount: 0,
|
|
5006
4991
|
evaluate: function (node, contextStack, _a) {
|
|
5007
4992
|
var e_1, _b;
|
|
5008
4993
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5057,7 +5042,7 @@ var loopSpecialExpression = {
|
|
|
5057
5042
|
};
|
|
5058
5043
|
return node;
|
|
5059
5044
|
},
|
|
5060
|
-
|
|
5045
|
+
paramCount: {},
|
|
5061
5046
|
evaluate: function (node, contextStack, _a) {
|
|
5062
5047
|
var _b;
|
|
5063
5048
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5323,7 +5308,7 @@ var forSpecialExpression = {
|
|
|
5323
5308
|
};
|
|
5324
5309
|
return node;
|
|
5325
5310
|
},
|
|
5326
|
-
|
|
5311
|
+
paramCount: 1,
|
|
5327
5312
|
evaluate: function (node, contextStack, helpers) { return evaluateLoop(true, node, contextStack, helpers.evaluateAstNode); },
|
|
5328
5313
|
findUnresolvedIdentifiers: function (node, contextStack, _a) {
|
|
5329
5314
|
var findUnresolvedIdentifiers = _a.findUnresolvedIdentifiers, builtin = _a.builtin;
|
|
@@ -5345,7 +5330,7 @@ var doseqSpecialExpression = {
|
|
|
5345
5330
|
};
|
|
5346
5331
|
return node;
|
|
5347
5332
|
},
|
|
5348
|
-
|
|
5333
|
+
paramCount: 1,
|
|
5349
5334
|
evaluate: function (node, contextStack, helpers) {
|
|
5350
5335
|
evaluateLoop(false, node, contextStack, helpers.evaluateAstNode);
|
|
5351
5336
|
return null;
|
|
@@ -5358,7 +5343,7 @@ var doseqSpecialExpression = {
|
|
|
5358
5343
|
|
|
5359
5344
|
var orSpecialExpression = {
|
|
5360
5345
|
polishParse: getCommonPolishSpecialExpressionParser('||'),
|
|
5361
|
-
|
|
5346
|
+
paramCount: {},
|
|
5362
5347
|
evaluate: function (node, contextStack, _a) {
|
|
5363
5348
|
var e_1, _b;
|
|
5364
5349
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5388,7 +5373,7 @@ var orSpecialExpression = {
|
|
|
5388
5373
|
|
|
5389
5374
|
var qqSpecialExpression = {
|
|
5390
5375
|
polishParse: getCommonPolishSpecialExpressionParser('??'),
|
|
5391
|
-
|
|
5376
|
+
paramCount: { min: 1, max: 2 },
|
|
5392
5377
|
evaluate: function (node, contextStack, _a) {
|
|
5393
5378
|
var _b;
|
|
5394
5379
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5420,7 +5405,7 @@ var recurSpecialExpression = {
|
|
|
5420
5405
|
};
|
|
5421
5406
|
return node;
|
|
5422
5407
|
},
|
|
5423
|
-
|
|
5408
|
+
paramCount: {},
|
|
5424
5409
|
evaluate: function (node, contextStack, _a) {
|
|
5425
5410
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5426
5411
|
var params = node.p.map(function (paramNode) { return evaluateAstNode(paramNode, contextStack); });
|
|
@@ -5434,7 +5419,7 @@ var recurSpecialExpression = {
|
|
|
5434
5419
|
|
|
5435
5420
|
var throwSpecialExpression = {
|
|
5436
5421
|
polishParse: getCommonPolishSpecialExpressionParser('throw'),
|
|
5437
|
-
|
|
5422
|
+
paramCount: 1,
|
|
5438
5423
|
evaluate: function (node, contextStack, _a) {
|
|
5439
5424
|
var _b, _c;
|
|
5440
5425
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5475,7 +5460,7 @@ var trySpecialExpression = {
|
|
|
5475
5460
|
};
|
|
5476
5461
|
return node;
|
|
5477
5462
|
},
|
|
5478
|
-
|
|
5463
|
+
paramCount: 1,
|
|
5479
5464
|
evaluate: function (node, contextStack, _a) {
|
|
5480
5465
|
var _b;
|
|
5481
5466
|
var _c;
|
|
@@ -5912,8 +5897,9 @@ function evaluate(ast, contextStack) {
|
|
|
5912
5897
|
var e_1, _a;
|
|
5913
5898
|
var result = null;
|
|
5914
5899
|
var safeAstNode = ast.hasDebugData ? JSON.parse(JSON.stringify(ast)) : ast;
|
|
5915
|
-
if (safeAstNode.hasDebugData)
|
|
5900
|
+
if (safeAstNode.hasDebugData) {
|
|
5916
5901
|
removeCommenNodes(safeAstNode);
|
|
5902
|
+
}
|
|
5917
5903
|
try {
|
|
5918
5904
|
for (var _b = __values(safeAstNode.b), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
5919
5905
|
var node = _c.value;
|
|
@@ -6119,6 +6105,20 @@ function analyze(ast, params) {
|
|
|
6119
6105
|
};
|
|
6120
6106
|
}
|
|
6121
6107
|
|
|
6108
|
+
function minifyTokenStream(tokenStream) {
|
|
6109
|
+
var tokens = tokenStream.tokens.filter(function (token) {
|
|
6110
|
+
if (isP_CommentToken(token)
|
|
6111
|
+
|| isA_CommentToken(token)
|
|
6112
|
+
|| isA_MultiLineCommentToken(token)
|
|
6113
|
+
|| isA_WhitespaceToken(token)
|
|
6114
|
+
|| isP_WhitespaceToken(token)) {
|
|
6115
|
+
return false;
|
|
6116
|
+
}
|
|
6117
|
+
return true;
|
|
6118
|
+
});
|
|
6119
|
+
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
6120
|
+
}
|
|
6121
|
+
|
|
6122
6122
|
function parseSymbol(tokenStream, parseState) {
|
|
6123
6123
|
var _a;
|
|
6124
6124
|
var tkn = asToken(tokenStream.tokens[parseState.position++]);
|
|
@@ -6308,7 +6308,6 @@ function getPrecedence(operatorSign) {
|
|
|
6308
6308
|
}
|
|
6309
6309
|
}
|
|
6310
6310
|
function createNamedNormalExpressionNode(name, params, token) {
|
|
6311
|
-
var _a;
|
|
6312
6311
|
var node = {
|
|
6313
6312
|
t: AstNodeType.NormalExpression,
|
|
6314
6313
|
n: name,
|
|
@@ -6317,7 +6316,7 @@ function createNamedNormalExpressionNode(name, params, token) {
|
|
|
6317
6316
|
};
|
|
6318
6317
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
6319
6318
|
if (builtinExpression) {
|
|
6320
|
-
(
|
|
6319
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
6321
6320
|
}
|
|
6322
6321
|
return node;
|
|
6323
6322
|
}
|
|
@@ -6418,7 +6417,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6418
6417
|
AlgebraicParser.prototype.parse = function () {
|
|
6419
6418
|
var nodes = [];
|
|
6420
6419
|
while (!this.isAtEnd()) {
|
|
6421
|
-
nodes.push(this.parseExpression());
|
|
6420
|
+
nodes.push(this.parseExpression(0, true));
|
|
6422
6421
|
if (!isA_OperatorToken(this.peek(), ';')) {
|
|
6423
6422
|
break;
|
|
6424
6423
|
}
|
|
@@ -6426,9 +6425,10 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6426
6425
|
}
|
|
6427
6426
|
return nodes;
|
|
6428
6427
|
};
|
|
6429
|
-
AlgebraicParser.prototype.parseExpression = function (precedence) {
|
|
6430
|
-
var _a;
|
|
6428
|
+
AlgebraicParser.prototype.parseExpression = function (precedence, moduleScope) {
|
|
6429
|
+
var _a, _b;
|
|
6431
6430
|
if (precedence === void 0) { precedence = 0; }
|
|
6431
|
+
if (moduleScope === void 0) { moduleScope = false; }
|
|
6432
6432
|
var firstToken = this.peek();
|
|
6433
6433
|
var left;
|
|
6434
6434
|
if (isA_SymbolToken(firstToken)) {
|
|
@@ -6464,6 +6464,9 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6464
6464
|
return this.parseFunction(firstToken);
|
|
6465
6465
|
}
|
|
6466
6466
|
else if (isA_ReservedSymbolToken(firstToken, 'export')) {
|
|
6467
|
+
if (!moduleScope) {
|
|
6468
|
+
throw new LitsError('export is only allowed in module scope', (_a = getTokenDebugData(firstToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6469
|
+
}
|
|
6467
6470
|
return this.parseExport(firstToken);
|
|
6468
6471
|
}
|
|
6469
6472
|
left || (left = this.parseOperand());
|
|
@@ -6501,7 +6504,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6501
6504
|
operator = this.peek();
|
|
6502
6505
|
}
|
|
6503
6506
|
if (!left) {
|
|
6504
|
-
throw new LitsError('Expected operand', (
|
|
6507
|
+
throw new LitsError('Expected operand', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6505
6508
|
}
|
|
6506
6509
|
return left;
|
|
6507
6510
|
};
|
|
@@ -6609,32 +6612,6 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6609
6612
|
return parseReservedSymbol(this.tokenStream, this.parseState);
|
|
6610
6613
|
case 'RegexpShorthand':
|
|
6611
6614
|
return parseRegexpShorthand(this.tokenStream, this.parseState);
|
|
6612
|
-
case 'PolNotation': {
|
|
6613
|
-
this.parseState.algebraic = false;
|
|
6614
|
-
var astNodes = [];
|
|
6615
|
-
this.advance();
|
|
6616
|
-
do {
|
|
6617
|
-
astNodes.push(this.parseState.parseToken(this.tokenStream, this.parseState));
|
|
6618
|
-
} while (!isEndNotationToken(this.peek()));
|
|
6619
|
-
this.advance();
|
|
6620
|
-
this.parseState.algebraic = true;
|
|
6621
|
-
if (astNodes.length === 1) {
|
|
6622
|
-
return astNodes[0];
|
|
6623
|
-
}
|
|
6624
|
-
return {
|
|
6625
|
-
t: AstNodeType.SpecialExpression,
|
|
6626
|
-
n: 'do',
|
|
6627
|
-
p: astNodes,
|
|
6628
|
-
token: getTokenDebugData(token) && token,
|
|
6629
|
-
};
|
|
6630
|
-
}
|
|
6631
|
-
case 'AlgNotation': {
|
|
6632
|
-
this.advance();
|
|
6633
|
-
var node = this.parseOperand();
|
|
6634
|
-
assertEndNotationToken(this.peek());
|
|
6635
|
-
this.advance();
|
|
6636
|
-
return node;
|
|
6637
|
-
}
|
|
6638
6615
|
default:
|
|
6639
6616
|
throw new LitsError("Unknown token type: ".concat(tokenType), (_b = getTokenDebugData(token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6640
6617
|
}
|
|
@@ -6739,7 +6716,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6739
6716
|
p: params,
|
|
6740
6717
|
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
6741
6718
|
};
|
|
6742
|
-
builtin.specialExpressions[node.n].
|
|
6719
|
+
assertNumberOfParams(builtin.specialExpressions[node.n].paramCount, node);
|
|
6743
6720
|
return node;
|
|
6744
6721
|
}
|
|
6745
6722
|
case 'fn':
|
|
@@ -6792,7 +6769,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6792
6769
|
}
|
|
6793
6770
|
};
|
|
6794
6771
|
AlgebraicParser.prototype.parseFunctionArguments = function () {
|
|
6795
|
-
var _a, _b, _c, _d
|
|
6772
|
+
var _a, _b, _c, _d;
|
|
6796
6773
|
var firstToken = this.peek();
|
|
6797
6774
|
if (isA_SymbolToken(firstToken)) {
|
|
6798
6775
|
this.advance();
|
|
@@ -6807,62 +6784,54 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
6807
6784
|
}
|
|
6808
6785
|
this.advance();
|
|
6809
6786
|
var rest = false;
|
|
6810
|
-
var letBindingObject;
|
|
6811
6787
|
var args = [];
|
|
6812
6788
|
var restArg;
|
|
6813
|
-
while (!this.isAtEnd() && !isRParenToken(this.peek())) {
|
|
6814
|
-
if (
|
|
6815
|
-
throw new LitsError('Expected right parentheses', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6816
|
-
}
|
|
6817
|
-
if (isLBraceToken(this.peek())) {
|
|
6818
|
-
letBindingObject = this.parseObject();
|
|
6819
|
-
}
|
|
6820
|
-
else {
|
|
6821
|
-
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6822
|
-
if (rest) {
|
|
6823
|
-
throw new LitsError('Multiple spread operators in lambda function', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6824
|
-
}
|
|
6825
|
-
this.advance();
|
|
6826
|
-
rest = true;
|
|
6827
|
-
}
|
|
6828
|
-
var symbolToken = this.peek();
|
|
6829
|
-
if (!isA_SymbolToken(symbolToken)) {
|
|
6830
|
-
throw new LitsError('Expected symbol', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6831
|
-
}
|
|
6789
|
+
while (!this.isAtEnd() && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6790
|
+
if (isA_OperatorToken(this.peek(), '...')) {
|
|
6832
6791
|
if (rest) {
|
|
6833
|
-
|
|
6834
|
-
}
|
|
6835
|
-
else {
|
|
6836
|
-
args.push(symbolToken[1]);
|
|
6792
|
+
throw new LitsError('Multiple spread operators in lambda function', (_a = getTokenDebugData(this.peek())) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo);
|
|
6837
6793
|
}
|
|
6838
6794
|
this.advance();
|
|
6795
|
+
rest = true;
|
|
6796
|
+
}
|
|
6797
|
+
var symbolToken = this.peek();
|
|
6798
|
+
if (!isA_SymbolToken(symbolToken)) {
|
|
6799
|
+
throw new LitsError('Expected symbol', (_b = getTokenDebugData(this.peek())) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
6839
6800
|
}
|
|
6840
|
-
if (
|
|
6841
|
-
|
|
6801
|
+
if (rest) {
|
|
6802
|
+
restArg = symbolToken[1];
|
|
6803
|
+
}
|
|
6804
|
+
else {
|
|
6805
|
+
args.push(symbolToken[1]);
|
|
6806
|
+
}
|
|
6807
|
+
this.advance();
|
|
6808
|
+
if (!isA_OperatorToken(this.peek(), ',') && !isRParenToken(this.peek()) && !isA_SymbolToken(this.peek(), 'let')) {
|
|
6809
|
+
throw new LitsError('Expected comma or closing parenthesis', (_c = getTokenDebugData(this.peek())) === null || _c === void 0 ? void 0 : _c.sourceCodeInfo);
|
|
6842
6810
|
}
|
|
6843
6811
|
if (isA_OperatorToken(this.peek(), ',')) {
|
|
6844
6812
|
this.advance();
|
|
6845
6813
|
}
|
|
6846
6814
|
}
|
|
6847
6815
|
var arity = restArg !== undefined ? { min: args.length } : args.length;
|
|
6816
|
+
// let bindings, to be able to pass on values in the context down to the body
|
|
6817
|
+
// This is needed since lits is dynamically scoped
|
|
6818
|
+
// E.g.
|
|
6819
|
+
// x => y => x + y // would not work, x is not available in the second lambda
|
|
6820
|
+
// x => (y, let x = x) => x + y // would work, x is available in the second lambda
|
|
6821
|
+
var bindingNodess = [];
|
|
6822
|
+
var token = this.peek();
|
|
6823
|
+
while (isA_SymbolToken(token, 'let')) {
|
|
6824
|
+
var letNode = this.parseLet(token, true);
|
|
6825
|
+
bindingNodess.push(letNode.bs[0]);
|
|
6826
|
+
token = this.peek();
|
|
6827
|
+
}
|
|
6848
6828
|
if (!isRParenToken(this.peek())) {
|
|
6849
|
-
throw new LitsError('Expected closing parenthesis', (
|
|
6829
|
+
throw new LitsError('Expected closing parenthesis', (_d = getTokenDebugData(this.peek())) === null || _d === void 0 ? void 0 : _d.sourceCodeInfo);
|
|
6850
6830
|
}
|
|
6851
|
-
var letBindings = letBindingObject ? arrayToPairs(letBindingObject.p) : [];
|
|
6852
6831
|
var functionArguments = {
|
|
6853
6832
|
m: args,
|
|
6854
6833
|
r: restArg,
|
|
6855
|
-
b:
|
|
6856
|
-
var key = pair[0];
|
|
6857
|
-
var value = pair[1];
|
|
6858
|
-
return {
|
|
6859
|
-
t: AstNodeType.Binding,
|
|
6860
|
-
n: key.v,
|
|
6861
|
-
v: value,
|
|
6862
|
-
p: [],
|
|
6863
|
-
token: getTokenDebugData(key.token) && key.token,
|
|
6864
|
-
};
|
|
6865
|
-
}),
|
|
6834
|
+
b: bindingNodess,
|
|
6866
6835
|
};
|
|
6867
6836
|
this.advance();
|
|
6868
6837
|
return {
|
|
@@ -7312,6 +7281,7 @@ var AlgebraicParser = /** @class */ (function () {
|
|
|
7312
7281
|
}
|
|
7313
7282
|
assertA_ReservedSymbolToken(this.peek(), 'end');
|
|
7314
7283
|
this.advance();
|
|
7284
|
+
assertA_OperatorToken(this.peek(), ';');
|
|
7315
7285
|
var fnNode = {
|
|
7316
7286
|
t: AstNodeType.SpecialExpression,
|
|
7317
7287
|
n: 'fn',
|
|
@@ -7474,7 +7444,7 @@ function parseObjectLitteral(tokenStream, parseState) {
|
|
|
7474
7444
|
p: params,
|
|
7475
7445
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
7476
7446
|
};
|
|
7477
|
-
|
|
7447
|
+
assertNumberOfParams({ even: true }, node);
|
|
7478
7448
|
return node;
|
|
7479
7449
|
}
|
|
7480
7450
|
var placeholderRegexp = /^%([1-9]\d?)?$/;
|
|
@@ -7580,7 +7550,7 @@ function parseBinding(tokenStream, parseState) {
|
|
|
7580
7550
|
return node;
|
|
7581
7551
|
}
|
|
7582
7552
|
function parseNormalExpression(tokenStream, parseState) {
|
|
7583
|
-
var _a
|
|
7553
|
+
var _a;
|
|
7584
7554
|
var startBracketToken = tokenStream.hasDebugData ? asLParenToken(tokenStream.tokens[parseState.position]) : undefined;
|
|
7585
7555
|
parseState.position += 1;
|
|
7586
7556
|
var fnNode = parseState.parseToken(tokenStream, parseState);
|
|
@@ -7604,7 +7574,7 @@ function parseNormalExpression(tokenStream, parseState) {
|
|
|
7604
7574
|
};
|
|
7605
7575
|
var builtinExpression = builtin.normalExpressions[node.n];
|
|
7606
7576
|
if (builtinExpression) {
|
|
7607
|
-
(
|
|
7577
|
+
assertNumberOfParams(builtinExpression.paramCount, node);
|
|
7608
7578
|
}
|
|
7609
7579
|
return node;
|
|
7610
7580
|
}
|
|
@@ -7613,7 +7583,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7613
7583
|
var firstToken = asLParenToken(tokenStream.tokens[parseState.position++]);
|
|
7614
7584
|
var nameToken = asP_SymbolToken(tokenStream.tokens[parseState.position++]);
|
|
7615
7585
|
var expressionName = nameToken[1];
|
|
7616
|
-
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse,
|
|
7586
|
+
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.polishParse, paramCount = _b.paramCount;
|
|
7617
7587
|
var node = parse(tokenStream, parseState, firstToken, {
|
|
7618
7588
|
parseExpression: parseExpression,
|
|
7619
7589
|
parseTokensUntilClosingBracket: parseTokensUntilClosingBracket,
|
|
@@ -7622,7 +7592,7 @@ function parseSpecialExpression(tokenStream, parseState) {
|
|
|
7622
7592
|
parseBindings: parseBindings,
|
|
7623
7593
|
parseArgument: parseArgument,
|
|
7624
7594
|
});
|
|
7625
|
-
|
|
7595
|
+
assertNumberOfParams(paramCount, node);
|
|
7626
7596
|
return node;
|
|
7627
7597
|
}
|
|
7628
7598
|
function parsePolishToken(tokenStream, parseState) {
|
|
@@ -7652,47 +7622,12 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7652
7622
|
return parseFnShorthand(tokenStream, parseState);
|
|
7653
7623
|
case 'P_Comment':
|
|
7654
7624
|
return parseComment(tokenStream, parseState);
|
|
7655
|
-
case 'AlgNotation': {
|
|
7656
|
-
parseState.position += 1;
|
|
7657
|
-
parseState.algebraic = true;
|
|
7658
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7659
|
-
var nodes = algebraicParser.parse();
|
|
7660
|
-
assertEndNotationToken(tokenStream.tokens[parseState.position++]);
|
|
7661
|
-
parseState.algebraic = false;
|
|
7662
|
-
if (nodes.length === 1) {
|
|
7663
|
-
return nodes[0];
|
|
7664
|
-
}
|
|
7665
|
-
return {
|
|
7666
|
-
t: AstNodeType.SpecialExpression,
|
|
7667
|
-
n: 'do',
|
|
7668
|
-
p: nodes,
|
|
7669
|
-
token: nodes[0].token,
|
|
7670
|
-
};
|
|
7671
|
-
}
|
|
7672
|
-
case 'PolNotation': {
|
|
7673
|
-
var astNodes = [];
|
|
7674
|
-
parseState.position += 1;
|
|
7675
|
-
do {
|
|
7676
|
-
astNodes.push(parsePolishToken(tokenStream, parseState));
|
|
7677
|
-
} while (!isEndNotationToken(asToken(tokenStream.tokens[parseState.position])));
|
|
7678
|
-
parseState.position += 1;
|
|
7679
|
-
if (astNodes.length === 1) {
|
|
7680
|
-
return astNodes[0];
|
|
7681
|
-
}
|
|
7682
|
-
return {
|
|
7683
|
-
t: AstNodeType.SpecialExpression,
|
|
7684
|
-
n: 'do',
|
|
7685
|
-
p: astNodes,
|
|
7686
|
-
token: astNodes[0].token,
|
|
7687
|
-
};
|
|
7688
|
-
}
|
|
7689
7625
|
case 'P_CollectionAccessor':
|
|
7690
7626
|
case 'P_Modifier':
|
|
7691
7627
|
case 'RParen':
|
|
7692
7628
|
case 'RBracket':
|
|
7693
7629
|
case 'RBrace':
|
|
7694
7630
|
case 'P_Whitespace':
|
|
7695
|
-
case 'EndNotation':
|
|
7696
7631
|
break;
|
|
7697
7632
|
/* v8 ignore next 2 */
|
|
7698
7633
|
default:
|
|
@@ -7702,49 +7637,28 @@ function parsePolishToken(tokenStream, parseState) {
|
|
|
7702
7637
|
}
|
|
7703
7638
|
|
|
7704
7639
|
function parse(tokenStream) {
|
|
7705
|
-
|
|
7706
|
-
var
|
|
7640
|
+
tokenStream = minifyTokenStream(tokenStream);
|
|
7641
|
+
var algebraic = tokenStream.algebraic;
|
|
7707
7642
|
var ast = {
|
|
7708
7643
|
b: [],
|
|
7709
|
-
hasDebugData:
|
|
7644
|
+
hasDebugData: tokenStream.hasDebugData,
|
|
7710
7645
|
};
|
|
7711
7646
|
var parseState = {
|
|
7712
7647
|
position: 0,
|
|
7713
|
-
algebraic: (_a = safeTokenStream.algebraic) !== null && _a !== void 0 ? _a : false,
|
|
7714
7648
|
parseToken: parseToken,
|
|
7715
7649
|
};
|
|
7716
|
-
|
|
7717
|
-
|
|
7650
|
+
if (algebraic) {
|
|
7651
|
+
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7652
|
+
ast.b = algebraicParser.parse();
|
|
7718
7653
|
}
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
|
|
7722
|
-
var tokens = tokenStream.tokens.filter(function (token) {
|
|
7723
|
-
if (isP_CommentToken(token)
|
|
7724
|
-
|| isA_CommentToken(token)
|
|
7725
|
-
|| isA_MultiLineCommentToken(token)
|
|
7726
|
-
|| isA_WhitespaceToken(token)
|
|
7727
|
-
|| isP_WhitespaceToken(token)) {
|
|
7728
|
-
return false;
|
|
7654
|
+
else {
|
|
7655
|
+
while (parseState.position < tokenStream.tokens.length) {
|
|
7656
|
+
ast.b.push(parseToken(tokenStream, parseState));
|
|
7729
7657
|
}
|
|
7730
|
-
|
|
7731
|
-
|
|
7732
|
-
return __assign(__assign({}, tokenStream), { tokens: tokens });
|
|
7658
|
+
}
|
|
7659
|
+
return ast;
|
|
7733
7660
|
}
|
|
7734
7661
|
function parseToken(tokenStream, parseState) {
|
|
7735
|
-
if (parseState.algebraic) {
|
|
7736
|
-
var algebraicParser = new AlgebraicParser(tokenStream, parseState);
|
|
7737
|
-
var nodes = algebraicParser.parse();
|
|
7738
|
-
if (nodes.length === 1) {
|
|
7739
|
-
return nodes[0];
|
|
7740
|
-
}
|
|
7741
|
-
return {
|
|
7742
|
-
t: AstNodeType.SpecialExpression,
|
|
7743
|
-
n: 'do',
|
|
7744
|
-
p: nodes,
|
|
7745
|
-
token: nodes[0].token,
|
|
7746
|
-
};
|
|
7747
|
-
}
|
|
7748
7662
|
return parsePolishToken(tokenStream, parseState);
|
|
7749
7663
|
}
|
|
7750
7664
|
|
|
@@ -7774,15 +7688,6 @@ var tokenizeLBrace = function (input, position) {
|
|
|
7774
7688
|
var tokenizeRBrace = function (input, position) {
|
|
7775
7689
|
return tokenizeSimpleToken('RBrace', '}', input, position);
|
|
7776
7690
|
};
|
|
7777
|
-
var tokenizePolishNotation = function (input, position) {
|
|
7778
|
-
return tokenizeSimpleToken('PolNotation', '$`', input, position);
|
|
7779
|
-
};
|
|
7780
|
-
var tokenizeAlgebraicNotation = function (input, position) {
|
|
7781
|
-
return tokenizeSimpleToken('AlgNotation', '@`', input, position);
|
|
7782
|
-
};
|
|
7783
|
-
var tokenizeEndNotation = function (input, position) {
|
|
7784
|
-
return tokenizeSimpleToken('EndNotation', '`', input, position);
|
|
7785
|
-
};
|
|
7786
7691
|
var tokenizeString = function (input, position) {
|
|
7787
7692
|
if (input[position] !== '"')
|
|
7788
7693
|
return NO_MATCH;
|
|
@@ -7835,9 +7740,6 @@ function tokenizeSimpleToken(type, value, input, position) {
|
|
|
7835
7740
|
return NO_MATCH;
|
|
7836
7741
|
}
|
|
7837
7742
|
var commonTokenizers = [
|
|
7838
|
-
tokenizePolishNotation,
|
|
7839
|
-
tokenizeAlgebraicNotation,
|
|
7840
|
-
tokenizeEndNotation,
|
|
7841
7743
|
tokenizeLParen,
|
|
7842
7744
|
tokenizeRParen,
|
|
7843
7745
|
tokenizeLBracket,
|
|
@@ -8347,7 +8249,6 @@ function getSugar() {
|
|
|
8347
8249
|
|
|
8348
8250
|
function tokenize(input, params) {
|
|
8349
8251
|
var debug = !!params.debug;
|
|
8350
|
-
var notationStack = [params.algebraic ? 'algebraic' : 'polish'];
|
|
8351
8252
|
var position = 0;
|
|
8352
8253
|
var tokenStream = {
|
|
8353
8254
|
tokens: [],
|
|
@@ -8356,7 +8257,7 @@ function tokenize(input, params) {
|
|
|
8356
8257
|
algebraic: !!params.algebraic,
|
|
8357
8258
|
};
|
|
8358
8259
|
while (position < input.length) {
|
|
8359
|
-
var tokenizers =
|
|
8260
|
+
var tokenizers = params.algebraic ? algebraicTokenizers : polishTokenizers;
|
|
8360
8261
|
var tokenDescriptor = getCurrentToken(input, position, tokenizers);
|
|
8361
8262
|
var debugData = debug
|
|
8362
8263
|
? {
|
|
@@ -8373,23 +8274,8 @@ function tokenize(input, params) {
|
|
|
8373
8274
|
addTokenDebugData(token, debugData);
|
|
8374
8275
|
}
|
|
8375
8276
|
tokenStream.tokens.push(token);
|
|
8376
|
-
if (isAlgebraicNotationToken(token)) {
|
|
8377
|
-
notationStack.push('algebraic');
|
|
8378
|
-
}
|
|
8379
|
-
if (isPolishNotationToken(token)) {
|
|
8380
|
-
notationStack.push('polish');
|
|
8381
|
-
}
|
|
8382
|
-
if (isEndNotationToken(token)) {
|
|
8383
|
-
notationStack.pop();
|
|
8384
|
-
if (notationStack.length < 1) {
|
|
8385
|
-
throw new LitsError('Unexpected end directive `.', debugData === null || debugData === void 0 ? void 0 : debugData.sourceCodeInfo);
|
|
8386
|
-
}
|
|
8387
|
-
}
|
|
8388
8277
|
}
|
|
8389
8278
|
}
|
|
8390
|
-
if (notationStack.length > 1) {
|
|
8391
|
-
throw new LitsError('Missing end directive `.', createSourceCodeInfo(input, position, params.filePath));
|
|
8392
|
-
}
|
|
8393
8279
|
applySugar(tokenStream);
|
|
8394
8280
|
return tokenStream;
|
|
8395
8281
|
}
|
|
@@ -8474,9 +8360,6 @@ function untokenizeToken(token) {
|
|
|
8474
8360
|
case 'RBracket': return ']';
|
|
8475
8361
|
case 'LBrace': return '{';
|
|
8476
8362
|
case 'RBrace': return '}';
|
|
8477
|
-
case 'PolNotation': return '$`';
|
|
8478
|
-
case 'AlgNotation': return '@`';
|
|
8479
|
-
case 'EndNotation': return '`';
|
|
8480
8363
|
case 'P_FnShorthand': return '#';
|
|
8481
8364
|
/* v8 ignore next 2 */
|
|
8482
8365
|
default:
|
|
@@ -8601,7 +8484,8 @@ var Lits = /** @class */ (function () {
|
|
|
8601
8484
|
if (tokenizeParams === void 0) { tokenizeParams = {}; }
|
|
8602
8485
|
var debug = this.debug;
|
|
8603
8486
|
var algebraic = this.algebraic;
|
|
8604
|
-
|
|
8487
|
+
var tokenStream = tokenize(program, __assign(__assign({}, tokenizeParams), { debug: debug, algebraic: algebraic }));
|
|
8488
|
+
return tokenizeParams.minify ? minifyTokenStream(tokenStream) : tokenStream;
|
|
8605
8489
|
};
|
|
8606
8490
|
Lits.prototype.parse = function (tokenStream) {
|
|
8607
8491
|
return parse(tokenStream);
|