@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.
Files changed (2) hide show
  1. package/dist/index.js +36 -7
  2. 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.shift", (name) => {
826
- return `${name.slice(0, name.lastIndexOf("."))}.pull`;
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[0] !== "[") {
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 `${operand}.val()`;
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.2.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.3.0"
42
+ "@grey-ts/types": "^1.5.0"
43
43
  }
44
44
  }