@grey-ts/transpiler 0.2.0 → 0.3.1
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/index.js +36 -7
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -174,8 +174,11 @@ var apiNameMap = {
|
|
|
174
174
|
"String.isMatch": "is_match",
|
|
175
175
|
"String.toInt": "to_int",
|
|
176
176
|
"String.length": "len",
|
|
177
|
+
"String.toLowerCase": "lower",
|
|
178
|
+
"String.toUpperCase": "upper",
|
|
177
179
|
"Object.size": "len",
|
|
178
|
-
"Array.length": "len"
|
|
180
|
+
"Array.length": "len",
|
|
181
|
+
"Array.shift": "pull"
|
|
179
182
|
};
|
|
180
183
|
var propertyAccessReplacements = {
|
|
181
184
|
"Math.PI": "pi",
|
|
@@ -516,7 +519,7 @@ var utilFunctions2 = {
|
|
|
516
519
|
array_push: [
|
|
517
520
|
"array_push = function(target, items)",
|
|
518
521
|
"\tfor item in items",
|
|
519
|
-
"\t\ttarget.push(item)",
|
|
522
|
+
"\t\ttarget.push(@item)",
|
|
520
523
|
"\tend for",
|
|
521
524
|
"\treturn target.len",
|
|
522
525
|
"end function"
|
|
@@ -526,12 +529,16 @@ var utilFunctions2 = {
|
|
|
526
529
|
"array_unshift = function(target, items)",
|
|
527
530
|
"\tif not items.len then return target.len",
|
|
528
531
|
"\tfor i in range(items.len-1)",
|
|
529
|
-
"\t\ttarget.insert(0, items[i])",
|
|
532
|
+
"\t\ttarget.insert(0, @items[i])",
|
|
530
533
|
"\tend for",
|
|
531
534
|
"\treturn target.len",
|
|
532
535
|
"end function"
|
|
533
536
|
].join(`
|
|
534
537
|
`),
|
|
538
|
+
array_reverse: `array_reverse = function(arr)
|
|
539
|
+
arr.reverse
|
|
540
|
+
return arr
|
|
541
|
+
end function`,
|
|
535
542
|
str_starts_with: [
|
|
536
543
|
"str_starts_with = function(str, search, pos = 0)",
|
|
537
544
|
"\tif pos < 0 then pos = 0",
|
|
@@ -822,8 +829,24 @@ CallTransformer.register("Array.unshift", (name, args) => {
|
|
|
822
829
|
throw "Invalid argument count";
|
|
823
830
|
return callUtilFunction("array_unshift", name.slice(0, name.lastIndexOf(".")), args[0]);
|
|
824
831
|
});
|
|
825
|
-
CallTransformer.register("Array.
|
|
826
|
-
|
|
832
|
+
CallTransformer.register("Array.toString", (name) => {
|
|
833
|
+
const arrayName = name.slice(0, name.lastIndexOf("."));
|
|
834
|
+
return `str(${arrayName})`;
|
|
835
|
+
});
|
|
836
|
+
CallTransformer.register("Array.reverse", (name) => {
|
|
837
|
+
return callUtilFunction("array_reverse", name.slice(0, name.lastIndexOf(".")));
|
|
838
|
+
});
|
|
839
|
+
CallTransformer.register("Object.toString", (name) => {
|
|
840
|
+
const objectName = name.slice(0, name.lastIndexOf("."));
|
|
841
|
+
return `str(${objectName})`;
|
|
842
|
+
});
|
|
843
|
+
CallTransformer.register("Number.toString", (name) => {
|
|
844
|
+
const number = name.slice(0, name.lastIndexOf("."));
|
|
845
|
+
return `str(${number})`;
|
|
846
|
+
});
|
|
847
|
+
CallTransformer.register("Function.toString", (name) => {
|
|
848
|
+
const func = name.slice(0, name.lastIndexOf("."));
|
|
849
|
+
return `str(@${func})`;
|
|
827
850
|
});
|
|
828
851
|
CallTransformer.register("String.startsWith", (name, args) => {
|
|
829
852
|
if (!args.length)
|
|
@@ -843,6 +866,9 @@ CallTransformer.register("String.repeat", (name, args) => {
|
|
|
843
866
|
CallTransformer.register("String.slice", (name, args) => {
|
|
844
867
|
return name.slice(0, name.lastIndexOf(".")) + `[${args[0] ?? ""}:${args[1] ?? ""}]`;
|
|
845
868
|
});
|
|
869
|
+
CallTransformer.register("String.toString", (name) => {
|
|
870
|
+
return name.slice(0, name.lastIndexOf("."));
|
|
871
|
+
});
|
|
846
872
|
CallTransformer.register("Math.min", (name, args) => {
|
|
847
873
|
return callUtilFunction("math_min", `${args.join(",")}`);
|
|
848
874
|
});
|
|
@@ -862,6 +888,9 @@ CallTransformer.register("ObjectConstructor.assign", (name, args) => {
|
|
|
862
888
|
CallTransformer.register("ObjectConstructor.keys", (name, args) => {
|
|
863
889
|
return `${args[0]}.indexes`;
|
|
864
890
|
});
|
|
891
|
+
CallTransformer.register("ObjectConstructor.values", (name, args) => {
|
|
892
|
+
return `${args[0]}.values`;
|
|
893
|
+
});
|
|
865
894
|
CallTransformer.register("GreyHack.include", (name, args, node, ctx) => {
|
|
866
895
|
if (!node.arguments.length)
|
|
867
896
|
return "";
|
|
@@ -955,7 +984,7 @@ function handleCallArgs(callNode, ctx) {
|
|
|
955
984
|
} else {
|
|
956
985
|
const processedItems = [];
|
|
957
986
|
for (const item of restItems) {
|
|
958
|
-
if (item[
|
|
987
|
+
if (!item.startsWith("[") || !item.endsWith("]")) {
|
|
959
988
|
processedItems.push(item);
|
|
960
989
|
continue;
|
|
961
990
|
}
|
|
@@ -1086,7 +1115,7 @@ function handleUnaryExpression(node) {
|
|
|
1086
1115
|
if (operator === "-")
|
|
1087
1116
|
return `-${operand}`;
|
|
1088
1117
|
if (operator === "+")
|
|
1089
|
-
return
|
|
1118
|
+
return `str(${operand}).val()`;
|
|
1090
1119
|
if (operator === "~")
|
|
1091
1120
|
return `bitwise("~", ${operand})`;
|
|
1092
1121
|
throw `Couldn't handle this UnaryExpression: ${node.getText()}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grey-ts/transpiler",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"author": "Okka",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"bin": {
|
|
@@ -39,6 +39,6 @@
|
|
|
39
39
|
"typescript": "^5"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@grey-ts/types": "^1.
|
|
42
|
+
"@grey-ts/types": "^1.5.0"
|
|
43
43
|
}
|
|
44
44
|
}
|