mlogjs 0.2.2 → 0.3.0-beta.0

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 (188) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/build/Compiler.js +105 -0
  4. package/build/Compiler.js.map +1 -0
  5. package/build/CompilerError.js +11 -0
  6. package/build/CompilerError.js.map +1 -0
  7. package/build/Scope.js +71 -0
  8. package/build/Scope.js.map +1 -0
  9. package/build/bin.js +75 -0
  10. package/build/bin.js.map +1 -0
  11. package/build/handlers/BlockStatement.js +14 -0
  12. package/build/handlers/BlockStatement.js.map +1 -0
  13. package/build/handlers/CallExpression.js +20 -0
  14. package/build/handlers/CallExpression.js.map +1 -0
  15. package/build/handlers/File.js +9 -0
  16. package/build/handlers/File.js.map +1 -0
  17. package/build/handlers/ForStatement.js +32 -0
  18. package/build/handlers/ForStatement.js.map +1 -0
  19. package/build/handlers/Function.js +47 -0
  20. package/build/handlers/Function.js.map +1 -0
  21. package/build/handlers/Identifier.js +8 -0
  22. package/build/handlers/Identifier.js.map +1 -0
  23. package/build/handlers/IfStatement.js +25 -0
  24. package/build/handlers/IfStatement.js.map +1 -0
  25. package/build/handlers/Literal.js +15 -0
  26. package/build/handlers/Literal.js.map +1 -0
  27. package/build/handlers/Object.js +55 -0
  28. package/build/handlers/Object.js.map +1 -0
  29. package/build/handlers/OperationExpressions.js +38 -0
  30. package/build/handlers/OperationExpressions.js.map +1 -0
  31. package/build/handlers/Program.js +9 -0
  32. package/build/handlers/Program.js.map +1 -0
  33. package/build/handlers/Statements.js +30 -0
  34. package/build/handlers/Statements.js.map +1 -0
  35. package/build/handlers/TemplateExpression.js +18 -0
  36. package/build/handlers/TemplateExpression.js.map +1 -0
  37. package/build/handlers/VariableDeclaration.js +72 -0
  38. package/build/handlers/VariableDeclaration.js.map +1 -0
  39. package/build/handlers/WhileStatement.js +23 -0
  40. package/build/handlers/WhileStatement.js.map +1 -0
  41. package/build/handlers/index.js +32 -0
  42. package/build/handlers/index.js.map +1 -0
  43. package/build/index.js +8 -0
  44. package/build/index.js.map +1 -0
  45. package/build/initScope.js +40 -0
  46. package/build/initScope.js.map +1 -0
  47. package/build/instructions/AddressResolver.js +31 -0
  48. package/build/instructions/AddressResolver.js.map +1 -0
  49. package/build/instructions/ControlInstructions.js +23 -0
  50. package/build/instructions/ControlInstructions.js.map +1 -0
  51. package/build/instructions/EndInstruction.js +11 -0
  52. package/build/instructions/EndInstruction.js.map +1 -0
  53. package/build/instructions/InstructionBase.js +21 -0
  54. package/build/instructions/InstructionBase.js.map +1 -0
  55. package/build/instructions/JumpInstruction.js +22 -0
  56. package/build/instructions/JumpInstruction.js.map +1 -0
  57. package/build/instructions/OperationInstruction.js +11 -0
  58. package/build/instructions/OperationInstruction.js.map +1 -0
  59. package/build/instructions/SetCounterInstruction.js +11 -0
  60. package/build/instructions/SetCounterInstruction.js.map +1 -0
  61. package/build/instructions/SetInstruction.js +11 -0
  62. package/build/instructions/SetInstruction.js.map +1 -0
  63. package/build/instructions/ZeroSpaceInstruction.js +11 -0
  64. package/build/instructions/ZeroSpaceInstruction.js.map +1 -0
  65. package/build/instructions/index.js +26 -0
  66. package/build/instructions/index.js.map +1 -0
  67. package/build/macros/Building.js +89 -0
  68. package/build/macros/Building.js.map +1 -0
  69. package/build/macros/Function.js +20 -0
  70. package/build/macros/Function.js.map +1 -0
  71. package/build/macros/Math.js +62 -0
  72. package/build/macros/Math.js.map +1 -0
  73. package/build/macros/Memory.js +63 -0
  74. package/build/macros/Memory.js.map +1 -0
  75. package/build/macros/Namespace.js +111 -0
  76. package/build/macros/Namespace.js.map +1 -0
  77. package/build/macros/Other.js +21 -0
  78. package/build/macros/Other.js.map +1 -0
  79. package/build/macros/RawValue.js +17 -0
  80. package/build/macros/RawValue.js.map +1 -0
  81. package/build/macros/commands/Control.js +26 -0
  82. package/build/macros/commands/Control.js.map +1 -0
  83. package/build/macros/commands/Draw.js +40 -0
  84. package/build/macros/commands/Draw.js.map +1 -0
  85. package/build/macros/commands/DrawFlush.js +18 -0
  86. package/build/macros/commands/DrawFlush.js.map +1 -0
  87. package/build/macros/commands/GetLink.js +25 -0
  88. package/build/macros/commands/GetLink.js.map +1 -0
  89. package/build/macros/commands/Lookup.js +25 -0
  90. package/build/macros/commands/Lookup.js.map +1 -0
  91. package/build/macros/commands/Print.js +18 -0
  92. package/build/macros/commands/Print.js.map +1 -0
  93. package/build/macros/commands/PrintFlush.js +18 -0
  94. package/build/macros/commands/PrintFlush.js.map +1 -0
  95. package/build/macros/commands/Radar.js +65 -0
  96. package/build/macros/commands/Radar.js.map +1 -0
  97. package/build/macros/commands/Sensor.js +21 -0
  98. package/build/macros/commands/Sensor.js.map +1 -0
  99. package/build/macros/commands/UnitBind.js +18 -0
  100. package/build/macros/commands/UnitBind.js.map +1 -0
  101. package/build/macros/commands/UnitControl.js +73 -0
  102. package/build/macros/commands/UnitControl.js.map +1 -0
  103. package/build/macros/commands/UnitLocate.js +76 -0
  104. package/build/macros/commands/UnitLocate.js.map +1 -0
  105. package/build/macros/commands/UnitRadar.js +48 -0
  106. package/build/macros/commands/UnitRadar.js.map +1 -0
  107. package/build/macros/commands/Wait.js +19 -0
  108. package/build/macros/commands/Wait.js.map +1 -0
  109. package/build/macros/commands/index.js +33 -0
  110. package/build/macros/commands/index.js.map +1 -0
  111. package/build/macros/index.js +40 -0
  112. package/build/macros/index.js.map +1 -0
  113. package/build/operators.js +102 -0
  114. package/build/operators.js.map +1 -0
  115. package/build/types.js +28 -0
  116. package/build/types.js.map +1 -0
  117. package/build/utils.js +18 -0
  118. package/build/utils.js.map +1 -0
  119. package/build/values/BaseValue.js +112 -0
  120. package/build/values/BaseValue.js.map +1 -0
  121. package/build/values/FunctionValue.js +116 -0
  122. package/build/values/FunctionValue.js.map +1 -0
  123. package/build/values/LiteralValue.js +89 -0
  124. package/build/values/LiteralValue.js.map +1 -0
  125. package/build/values/ObjectValue.js +55 -0
  126. package/build/values/ObjectValue.js.map +1 -0
  127. package/build/values/StoreValue.js +32 -0
  128. package/build/values/StoreValue.js.map +1 -0
  129. package/build/values/TempValue.js +78 -0
  130. package/build/values/TempValue.js.map +1 -0
  131. package/build/values/VoidValue.js +32 -0
  132. package/build/values/VoidValue.js.map +1 -0
  133. package/build/values/index.js +23 -0
  134. package/build/values/index.js.map +1 -0
  135. package/dist/bin.cjs +17 -4
  136. package/dist/bin.cjs.map +1 -0
  137. package/dist/index.cjs +940 -570
  138. package/dist/index.cjs.map +1 -0
  139. package/dist/index.mjs +918 -569
  140. package/dist/index.mjs.map +1 -0
  141. package/dist/types/Compiler.d.ts +11 -3
  142. package/dist/types/CompilerError.d.ts +9 -0
  143. package/dist/types/Scope.d.ts +10 -9
  144. package/dist/types/handlers/File.d.ts +2 -0
  145. package/dist/types/handlers/Function.d.ts +1 -0
  146. package/dist/types/handlers/Literal.d.ts +4 -1
  147. package/dist/types/handlers/Object.d.ts +2 -0
  148. package/dist/types/handlers/OperationExpressions.d.ts +1 -0
  149. package/dist/types/handlers/Typescript.d.ts +7 -0
  150. package/dist/types/handlers/VariableDeclaration.d.ts +2 -2
  151. package/dist/types/handlers/WhileStatement.d.ts +1 -0
  152. package/dist/types/handlers/index.d.ts +2 -0
  153. package/dist/types/index.d.ts +2 -1
  154. package/dist/types/initScope.d.ts +3 -0
  155. package/dist/types/instructions/ControlInstructions.d.ts +0 -3
  156. package/dist/types/instructions/InstructionBase.d.ts +2 -2
  157. package/dist/types/instructions/SetInstruction.d.ts +1 -0
  158. package/dist/types/macros/Building.d.ts +1 -2
  159. package/dist/types/macros/Entities.d.ts +11 -0
  160. package/dist/types/macros/Function.d.ts +2 -1
  161. package/dist/types/macros/GetGlobal.d.ts +5 -0
  162. package/dist/types/macros/Namespace.d.ts +0 -5
  163. package/dist/types/macros/commands/End.d.ts +5 -0
  164. package/dist/types/macros/commands/index.d.ts +1 -0
  165. package/dist/types/macros/index.d.ts +0 -1
  166. package/dist/types/operators.d.ts +1 -1
  167. package/dist/types/types.d.ts +121 -12
  168. package/dist/types/utils.d.ts +22 -1
  169. package/dist/types/values/BaseValue.d.ts +3 -1
  170. package/dist/types/values/DestructuringValue.d.ts +17 -0
  171. package/dist/types/values/FunctionValue.d.ts +21 -8
  172. package/dist/types/values/LiteralValue.d.ts +2 -1
  173. package/dist/types/values/ObjectValue.d.ts +5 -1
  174. package/dist/types/values/SenseableValue.d.ts +23 -0
  175. package/dist/types/values/StackValue.d.ts +16 -0
  176. package/dist/types/values/StoreValue.d.ts +7 -3
  177. package/dist/types/values/TempValue.d.ts +9 -2
  178. package/dist/types/values/ValueOwner.d.ts +27 -0
  179. package/dist/types/values/VoidValue.d.ts +8 -5
  180. package/dist/types/values/index.d.ts +2 -1
  181. package/lib/commands.d.ts +242 -36
  182. package/lib/globals.d.ts +172 -159
  183. package/lib/helpers.d.ts +2 -2
  184. package/lib/memory.d.ts +1 -1
  185. package/lib/traits.d.ts +130 -109
  186. package/package.json +23 -18
  187. package/build/bin.cjs +0 -69
  188. package/doc/README.md +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sensor.js","sourceRoot":"","sources":["../../../src/macros/commands/Sensor.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAAkE;AAClE,uDAAoD;AAEpD,MAAa,MAAO,SAAQ,iBAAa;IACvC,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,QAAQ,YAAY,mBAAU,CAAC;gBACnC,MAAM,IAAI,6BAAa,CAAC,qCAAqC,CAAC,CAAC;YAEjE,IAAI,CAAC,CAAC,MAAM,YAAY,oBAAW,CAAC;gBAClC,MAAM,IAAI,6BAAa,CAAC,mCAAmC,CAAC,CAAC;YAE/D,MAAM,IAAI,GAAG,IAAI,kBAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,8BAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAbD,wBAaC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnitBind = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const CompilerError_1 = require("../../CompilerError");
8
+ class UnitBind extends __1.MacroFunction {
9
+ constructor(scope) {
10
+ super(scope, type => {
11
+ if (!(type instanceof values_1.StoreValue))
12
+ throw new CompilerError_1.CompilerError("The unitBind type must be a store");
13
+ return [null, [new instructions_1.InstructionBase("ubind", type)]];
14
+ });
15
+ }
16
+ }
17
+ exports.UnitBind = UnitBind;
18
+ //# sourceMappingURL=UnitBind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitBind.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitBind.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAA0C;AAC1C,uDAAoD;AAEpD,MAAa,QAAS,SAAQ,iBAAmB;IAC/C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,CAAC,IAAI,YAAY,mBAAU,CAAC;gBAC/B,MAAM,IAAI,6BAAa,CAAC,mCAAmC,CAAC,CAAC;YAE/D,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,8BAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AATD,4BASC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnitControl = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const Building_1 = require("../Building");
8
+ const CompilerError_1 = require("../../CompilerError");
9
+ const validModes = [
10
+ "idle",
11
+ "stop",
12
+ "move",
13
+ "approach",
14
+ "boost",
15
+ "pathfind",
16
+ "target",
17
+ "targetp",
18
+ "itemDrop",
19
+ "itemTake",
20
+ "payDrop",
21
+ "payTake",
22
+ "payEnter",
23
+ "mine",
24
+ "flag",
25
+ "build",
26
+ "getBlock",
27
+ "within",
28
+ ];
29
+ class UnitControl extends __1.MacroFunction {
30
+ constructor(scope) {
31
+ super(scope, (mode, ...args) => {
32
+ if (!(mode instanceof values_1.LiteralValue) || typeof mode.data !== "string")
33
+ throw new CompilerError_1.CompilerError("The unitControl mode must be a string literal");
34
+ if (!validModes.includes(mode.data))
35
+ throw new CompilerError_1.CompilerError("Invalid unitControl mode");
36
+ if (args.some(value => !(value instanceof values_1.StoreValue ||
37
+ value instanceof values_1.LiteralValue ||
38
+ value instanceof values_1.ObjectValue)))
39
+ throw new CompilerError_1.CompilerError("The others arguments of unitControl must be literals or stores");
40
+ let result = null;
41
+ let extraArgs = [];
42
+ switch (mode.data) {
43
+ case "getBlock": {
44
+ const outType = new values_1.TempValue({ scope });
45
+ const outBuilding = new Building_1.Building({
46
+ scope,
47
+ name: scope.makeTempName(),
48
+ renameable: true,
49
+ });
50
+ result = new values_1.ObjectValue(scope, {
51
+ 0: outType,
52
+ 1: outBuilding,
53
+ length: new values_1.LiteralValue(scope, 2),
54
+ });
55
+ extraArgs = [outType, outBuilding, new values_1.LiteralValue(scope, 0)];
56
+ break;
57
+ }
58
+ case "within": {
59
+ const temp = new values_1.TempValue({ scope });
60
+ result = temp;
61
+ extraArgs = [temp, new values_1.LiteralValue(scope, 0)];
62
+ break;
63
+ }
64
+ }
65
+ return [
66
+ result,
67
+ [new instructions_1.InstructionBase("ucontrol", mode.data, ...args, ...extraArgs)],
68
+ ];
69
+ });
70
+ }
71
+ }
72
+ exports.UnitControl = UnitControl;
73
+ //# sourceMappingURL=UnitControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitControl.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitControl.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAAgF;AAChF,0CAAuC;AACvC,uDAAoD;AAEpD,MAAM,UAAU,GAAG;IACjB,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;CACT,CAAC;AAEF,MAAa,WAAY,SAAQ,iBAA4B;IAC3D,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE;YAC7B,IAAI,CAAC,CAAC,IAAI,YAAY,qBAAY,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAClE,MAAM,IAAI,6BAAa,CACrB,+CAA+C,CAChD,CAAC;YAEJ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjC,MAAM,IAAI,6BAAa,CAAC,0BAA0B,CAAC,CAAC;YAEtD,IACE,IAAI,CAAC,IAAI,CACP,KAAK,CAAC,EAAE,CACN,CAAC,CACC,KAAK,YAAY,mBAAU;gBAC3B,KAAK,YAAY,qBAAY;gBAC7B,KAAK,YAAY,oBAAW,CAC7B,CACJ;gBAED,MAAM,IAAI,6BAAa,CACrB,gEAAgE,CACjE,CAAC;YAEJ,IAAI,MAAM,GAAmC,IAAI,CAAC;YAClD,IAAI,SAAS,GAAa,EAAE,CAAC;YAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,UAAU,CAAC,CAAC;oBACf,MAAM,OAAO,GAAG,IAAI,kBAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBACzC,MAAM,WAAW,GAAG,IAAI,mBAAQ,CAAC;wBAC/B,KAAK;wBACL,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;wBAC1B,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBAEH,MAAM,GAAG,IAAI,oBAAW,CAAC,KAAK,EAAE;wBAC9B,CAAC,EAAE,OAAO;wBACV,CAAC,EAAE,WAAW;wBACd,MAAM,EAAE,IAAI,qBAAY,CAAC,KAAK,EAAE,CAAC,CAAC;qBACnC,CAAC,CAAC;oBACH,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,qBAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/D,MAAM;iBACP;gBACD,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,IAAI,GAAG,IAAI,kBAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtC,MAAM,GAAG,IAAI,CAAC;oBACd,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,qBAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/C,MAAM;iBACP;aACF;YAED,OAAO;gBACL,MAAM;gBACN,CAAC,IAAI,8BAAe,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;aACpE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA1DD,kCA0DC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnitLocate = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const Building_1 = require("../Building");
8
+ const CompilerError_1 = require("../../CompilerError");
9
+ const validFinds = ["ore", "building", "spawn", "damaged"];
10
+ const validBuildingGroups = [
11
+ "core",
12
+ "storage",
13
+ "generator",
14
+ "turret",
15
+ "factory",
16
+ "repair",
17
+ "rally",
18
+ "battery",
19
+ "reactor",
20
+ ];
21
+ class UnitLocate extends __1.MacroFunction {
22
+ constructor(scope) {
23
+ super(scope, (find, ...args) => {
24
+ if (!(find instanceof values_1.LiteralValue && typeof find.data === "string"))
25
+ throw new CompilerError_1.CompilerError("The unitLocate find must be a string literal");
26
+ if (!validFinds.includes(find.data))
27
+ throw new CompilerError_1.CompilerError("Invalid find value");
28
+ if (args.some(value => !(value instanceof values_1.StoreValue || value instanceof values_1.LiteralValue)))
29
+ throw new CompilerError_1.CompilerError("The others arguments of unitLocate must be literals or stores");
30
+ const outFound = new values_1.TempValue({ scope });
31
+ const outX = new values_1.TempValue({ scope });
32
+ const outY = new values_1.TempValue({ scope });
33
+ const outBuilding = new Building_1.Building({
34
+ scope,
35
+ name: scope.makeTempName(),
36
+ renameable: true,
37
+ });
38
+ const outArgs = [outX, outY, outFound, outBuilding];
39
+ let inputArgs = [];
40
+ switch (find.data) {
41
+ case "ore": {
42
+ const [ore] = args;
43
+ inputArgs = [find.data, "core", "true", ore];
44
+ break;
45
+ }
46
+ case "building": {
47
+ const [group, enemy] = args;
48
+ if (!(group instanceof values_1.LiteralValue && typeof group.data === "string")) {
49
+ throw new CompilerError_1.CompilerError("The building group must be a string literal");
50
+ }
51
+ if (!validBuildingGroups.includes(group.data))
52
+ throw new CompilerError_1.CompilerError("Invalid building group");
53
+ inputArgs = [find.data, group.data, enemy, "@copper"];
54
+ break;
55
+ }
56
+ case "spawn":
57
+ case "damaged": {
58
+ inputArgs = [find.data, "core", "true", "@copper"];
59
+ break;
60
+ }
61
+ }
62
+ return [
63
+ new values_1.ObjectValue(scope, {
64
+ 0: outFound,
65
+ 1: outX,
66
+ 2: outY,
67
+ 3: outBuilding,
68
+ length: new values_1.LiteralValue(scope, find.data === "ore" ? 3 : 4),
69
+ }),
70
+ [new instructions_1.InstructionBase("ulocate", ...inputArgs, ...outArgs)],
71
+ ];
72
+ });
73
+ }
74
+ }
75
+ exports.UnitLocate = UnitLocate;
76
+ //# sourceMappingURL=UnitLocate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitLocate.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitLocate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnitRadar = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const Radar_1 = require("./Radar");
8
+ const CompilerError_1 = require("../../CompilerError");
9
+ const Namespace_1 = require("../Namespace");
10
+ class UnitRadar extends __1.MacroFunction {
11
+ constructor(scope) {
12
+ super(scope, (filter1, filter2, filter3, order, sort) => {
13
+ if (!(filter1 instanceof values_1.LiteralValue) ||
14
+ typeof filter1.data !== "string" ||
15
+ !(filter2 instanceof values_1.LiteralValue) ||
16
+ typeof filter2.data !== "string" ||
17
+ !(filter3 instanceof values_1.LiteralValue) ||
18
+ typeof filter3.data !== "string")
19
+ throw new CompilerError_1.CompilerError("The filters must be string literals");
20
+ if (!Radar_1.validRadarFilters.includes(filter1.data))
21
+ throw new CompilerError_1.CompilerError("Invalid value for filter1");
22
+ if (!Radar_1.validRadarFilters.includes(filter2.data))
23
+ throw new CompilerError_1.CompilerError("Invalid value for filter2");
24
+ if (!Radar_1.validRadarFilters.includes(filter3.data))
25
+ throw new CompilerError_1.CompilerError("Invalid value for filter3");
26
+ if (!(order instanceof values_1.LiteralValue || order instanceof values_1.StoreValue))
27
+ throw new CompilerError_1.CompilerError("The radar order must be a literal or a store");
28
+ if (!(sort instanceof values_1.LiteralValue) || typeof sort.data !== "string")
29
+ throw new CompilerError_1.CompilerError("The radar sort must be a string literal");
30
+ if (!Radar_1.validRadarSorts.includes(sort.data))
31
+ throw new CompilerError_1.CompilerError("Invalid sort value");
32
+ const outUnit = new Namespace_1.Unit({
33
+ scope,
34
+ name: scope.makeTempName(),
35
+ renameable: true,
36
+ });
37
+ return [
38
+ outUnit,
39
+ [
40
+ new instructions_1.InstructionBase("uradar", filter1.data, filter2.data, filter3.data, sort.data, "0", // I don't know why, but mindustry requires this extra parameter
41
+ order, outUnit),
42
+ ],
43
+ ];
44
+ });
45
+ }
46
+ }
47
+ exports.UnitRadar = UnitRadar;
48
+ //# sourceMappingURL=UnitRadar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitRadar.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitRadar.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAAwD;AACxD,mCAA6D;AAC7D,uDAAoD;AACpD,4CAAoC;AAEpC,MAAa,SAAU,SAAQ,iBAAa;IAC1C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtD,IACE,CAAC,CAAC,OAAO,YAAY,qBAAY,CAAC;gBAClC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAChC,CAAC,CAAC,OAAO,YAAY,qBAAY,CAAC;gBAClC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAChC,CAAC,CAAC,OAAO,YAAY,qBAAY,CAAC;gBAClC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAEhC,MAAM,IAAI,6BAAa,CAAC,qCAAqC,CAAC,CAAC;YAEjE,IAAI,CAAC,yBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3C,MAAM,IAAI,6BAAa,CAAC,2BAA2B,CAAC,CAAC;YACvD,IAAI,CAAC,yBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3C,MAAM,IAAI,6BAAa,CAAC,2BAA2B,CAAC,CAAC;YACvD,IAAI,CAAC,yBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3C,MAAM,IAAI,6BAAa,CAAC,2BAA2B,CAAC,CAAC;YAEvD,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAY,IAAI,KAAK,YAAY,mBAAU,CAAC;gBACjE,MAAM,IAAI,6BAAa,CAAC,8CAA8C,CAAC,CAAC;YAE1E,IAAI,CAAC,CAAC,IAAI,YAAY,qBAAY,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAClE,MAAM,IAAI,6BAAa,CAAC,yCAAyC,CAAC,CAAC;YAErE,IAAI,CAAC,uBAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtC,MAAM,IAAI,6BAAa,CAAC,oBAAoB,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,IAAI,gBAAI,CAAC;gBACvB,KAAK;gBACL,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;gBAC1B,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO;gBACP;oBACE,IAAI,8BAAe,CACjB,QAAQ,EACR,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,IAAI,EACT,GAAG,EAAE,gEAAgE;oBACrE,KAAK,EACL,OAAO,CACR;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApDD,8BAoDC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Wait = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const CompilerError_1 = require("../../CompilerError");
8
+ class Wait extends __1.MacroFunction {
9
+ constructor(scope) {
10
+ super(scope, seconds => {
11
+ if (!(seconds instanceof values_1.StoreValue) &&
12
+ !(seconds instanceof values_1.LiteralValue && typeof seconds.data === "number"))
13
+ throw new CompilerError_1.CompilerError("The wait seconds must be either a number literal or a store");
14
+ return [null, [new instructions_1.InstructionBase("wait", seconds)]];
15
+ });
16
+ }
17
+ }
18
+ exports.Wait = Wait;
19
+ //# sourceMappingURL=Wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wait.js","sourceRoot":"","sources":["../../../src/macros/commands/Wait.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAAwD;AACxD,uDAAoD;AAEpD,MAAa,IAAK,SAAQ,iBAAmB;IAC3C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACrB,IACE,CAAC,CAAC,OAAO,YAAY,mBAAU,CAAC;gBAChC,CAAC,CAAC,OAAO,YAAY,qBAAY,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAEtE,MAAM,IAAI,6BAAa,CACrB,6DAA6D,CAC9D,CAAC;YAEJ,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,8BAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAdD,oBAcC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Radar = void 0;
18
+ __exportStar(require("./Draw"), exports);
19
+ __exportStar(require("./Print"), exports);
20
+ __exportStar(require("./PrintFlush"), exports);
21
+ __exportStar(require("./DrawFlush"), exports);
22
+ __exportStar(require("./GetLink"), exports);
23
+ __exportStar(require("./Control"), exports);
24
+ var Radar_1 = require("./Radar");
25
+ Object.defineProperty(exports, "Radar", { enumerable: true, get: function () { return Radar_1.Radar; } });
26
+ __exportStar(require("./Sensor"), exports);
27
+ __exportStar(require("./Wait"), exports);
28
+ __exportStar(require("./Lookup"), exports);
29
+ __exportStar(require("./UnitBind"), exports);
30
+ __exportStar(require("./UnitControl"), exports);
31
+ __exportStar(require("./UnitRadar"), exports);
32
+ __exportStar(require("./UnitLocate"), exports);
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/macros/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,6CAA2B;AAC3B,gDAA8B;AAC9B,8CAA4B;AAC5B,+CAA6B"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.VarsNamespace = exports.NamespaceMacro = exports.BuildingBuilder = exports.commands = void 0;
30
+ __exportStar(require("./Function"), exports);
31
+ __exportStar(require("./Math"), exports);
32
+ __exportStar(require("./Other"), exports);
33
+ exports.commands = __importStar(require("./commands"));
34
+ __exportStar(require("./Memory"), exports);
35
+ var Building_1 = require("./Building");
36
+ Object.defineProperty(exports, "BuildingBuilder", { enumerable: true, get: function () { return Building_1.BuildingBuilder; } });
37
+ var Namespace_1 = require("./Namespace");
38
+ Object.defineProperty(exports, "NamespaceMacro", { enumerable: true, get: function () { return Namespace_1.NamespaceMacro; } });
39
+ Object.defineProperty(exports, "VarsNamespace", { enumerable: true, get: function () { return Namespace_1.VarsNamespace; } });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/macros/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,yCAAuB;AACvB,0CAAwB;AACxB,uDAAuC;AACvC,2CAAyB;AACzB,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,yCAA4D;AAAnD,2GAAA,cAAc,OAAA;AAAE,0GAAA,aAAa,OAAA"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.operatorMap = exports.operators = exports.singleOperators = exports.updateOperators = exports.unaryOperators = exports.leftRightOperators = exports.assignmentOperators = exports.bitwiseAssignmentOperators = exports.logicalAssignmentOperators = exports.arithmeticAssignmentOperators = exports.logicalOperators = exports.binaryOperators = exports.bitwiseBinaryOperators = exports.comparisonBinaryOperators = exports.arithmeticBinaryOperators = void 0;
4
+ exports.arithmeticBinaryOperators = [
5
+ "*",
6
+ "**",
7
+ "+",
8
+ "-",
9
+ "/",
10
+ "%",
11
+ ];
12
+ exports.comparisonBinaryOperators = [
13
+ "!=",
14
+ "!==",
15
+ "<",
16
+ "<=",
17
+ "==",
18
+ "===",
19
+ ">",
20
+ ">=",
21
+ ];
22
+ exports.bitwiseBinaryOperators = [
23
+ "&",
24
+ "<<",
25
+ ">>",
26
+ ">>>",
27
+ "^",
28
+ "|",
29
+ ];
30
+ exports.binaryOperators = [
31
+ ...exports.arithmeticBinaryOperators,
32
+ ...exports.comparisonBinaryOperators,
33
+ ...exports.bitwiseBinaryOperators,
34
+ "instanceof",
35
+ "in",
36
+ ];
37
+ exports.logicalOperators = ["&&", "??", "||"];
38
+ exports.arithmeticAssignmentOperators = [
39
+ "%=",
40
+ "&=",
41
+ "*=",
42
+ "**=",
43
+ "+=",
44
+ "-=",
45
+ "/=",
46
+ ];
47
+ exports.logicalAssignmentOperators = ["&&=", "||="];
48
+ exports.bitwiseAssignmentOperators = [
49
+ "<<=",
50
+ ">>=",
51
+ ">>>=",
52
+ "^=",
53
+ "|=",
54
+ ];
55
+ exports.assignmentOperators = [
56
+ ...exports.arithmeticAssignmentOperators,
57
+ ...exports.logicalAssignmentOperators,
58
+ ...exports.bitwiseAssignmentOperators,
59
+ "=",
60
+ ];
61
+ exports.leftRightOperators = [
62
+ ...exports.binaryOperators,
63
+ ...exports.logicalOperators,
64
+ ...exports.assignmentOperators,
65
+ ];
66
+ exports.unaryOperators = [
67
+ "!",
68
+ "u+",
69
+ "u-",
70
+ "delete",
71
+ "typeof",
72
+ "void",
73
+ "~",
74
+ ];
75
+ exports.updateOperators = ["++", "--"];
76
+ exports.singleOperators = [...exports.unaryOperators, ...exports.updateOperators];
77
+ exports.operators = [...exports.leftRightOperators, ...exports.singleOperators];
78
+ exports.operatorMap = {
79
+ "==": "equal",
80
+ "===": "strictEqual",
81
+ "!=": "notEqual",
82
+ "!==": "notEqual",
83
+ "<": "lessThan",
84
+ ">": "greaterThan",
85
+ "<=": "lessThanEq",
86
+ ">=": "greaterThanEq",
87
+ "+": "add",
88
+ "-": "sub",
89
+ "*": "mul",
90
+ "/": "div",
91
+ "%": "mod",
92
+ "**": "pow",
93
+ "|": "or",
94
+ "&": "and",
95
+ "^": "xor",
96
+ ">>": "shr",
97
+ ">>>": "shr",
98
+ "<<": "shl",
99
+ "&&": "land",
100
+ "||": "or",
101
+ };
102
+ //# sourceMappingURL=operators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG;IACvC,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACK,CAAC;AACE,QAAA,yBAAyB,GAAG;IACvC,IAAI;IACJ,KAAK;IACL,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,GAAG;IACH,IAAI;CACI,CAAC;AACE,QAAA,sBAAsB,GAAG;IACpC,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,GAAG;IACH,GAAG;CACK,CAAC;AACE,QAAA,eAAe,GAAG;IAC7B,GAAG,iCAAyB;IAC5B,GAAG,iCAAyB;IAC5B,GAAG,8BAAsB;IACzB,YAAY;IACZ,IAAI;CACI,CAAC;AAGE,QAAA,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAG/C,QAAA,6BAA6B,GAAG;IAC3C,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;CACI,CAAC;AACE,QAAA,0BAA0B,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AACrD,QAAA,0BAA0B,GAAG;IACxC,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;CACI,CAAC;AACE,QAAA,mBAAmB,GAAG;IACjC,GAAG,qCAA6B;IAChC,GAAG,kCAA0B;IAC7B,GAAG,kCAA0B;IAC7B,GAAG;CACK,CAAC;AAGE,QAAA,kBAAkB,GAAG;IAChC,GAAG,uBAAe;IAClB,GAAG,wBAAgB;IACnB,GAAG,2BAAmB;CACd,CAAC;AAIE,QAAA,cAAc,GAAG;IAC5B,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,GAAG;CACK,CAAC;AAGE,QAAA,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAGxC,QAAA,eAAe,GAAG,CAAC,GAAG,sBAAc,EAAE,GAAG,uBAAe,CAAU,CAAC;AAInE,QAAA,SAAS,GAAG,CAAC,GAAG,0BAAkB,EAAE,GAAG,uBAAe,CAAU,CAAC;AAGjE,QAAA,WAAW,GAIpB;IACF,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,IAAI;CACF,CAAC"}
package/build/types.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.es = void 0;
27
+ exports.es = __importStar(require("@babel/types"));
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC"}
package/build/utils.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.camelToDashCase = exports.nodeName = exports.internalPrefix = void 0;
4
+ /**
5
+ * The prefix for internal variables inside the compiler output
6
+ */
7
+ exports.internalPrefix = "&";
8
+ function nodeName(node) {
9
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
10
+ const { line, column } = node.loc.start;
11
+ return `${line}:${column}`;
12
+ }
13
+ exports.nodeName = nodeName;
14
+ function camelToDashCase(name) {
15
+ return name.replace(/[A-Z]/g, str => `-${str.toLowerCase()}`);
16
+ }
17
+ exports.camelToDashCase = camelToDashCase;
18
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,cAAc,GAAG,GAAG,CAAC;AAElC,SAAgB,QAAQ,CAAC,IAAa;IACpC,oEAAoE;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAI,CAAC,KAAK,CAAC;IACzC,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AAC7B,CAAC;AAJD,4BAIC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseValue = void 0;
4
+ const instructions_1 = require("../instructions");
5
+ const operators_1 = require("../operators");
6
+ const _1 = require(".");
7
+ class BaseValue extends _1.VoidValue {
8
+ "u-"(scope) {
9
+ const [that, inst] = this.eval(scope);
10
+ const temp = new _1.TempValue({ scope });
11
+ return [
12
+ temp,
13
+ [
14
+ ...inst,
15
+ new instructions_1.OperationInstruction("sub", temp, new _1.LiteralValue(scope, 0), that),
16
+ ],
17
+ ];
18
+ }
19
+ }
20
+ exports.BaseValue = BaseValue;
21
+ const operatorMap = {
22
+ "==": "equal",
23
+ "===": "strictEqual",
24
+ "!=": "notEqual",
25
+ "!==": "notEqual",
26
+ "<": "lessThan",
27
+ ">": "greaterThan",
28
+ "<=": "lessThanEq",
29
+ ">=": "greaterThanEq",
30
+ "+": "add",
31
+ "-": "sub",
32
+ "*": "mul",
33
+ "/": "div",
34
+ "%": "mod",
35
+ "**": "pow",
36
+ "|": "or",
37
+ "&": "and",
38
+ "^": "xor",
39
+ ">>": "shr",
40
+ ">>>": "shr",
41
+ "<<": "shl",
42
+ "&&": "land",
43
+ "||": "or",
44
+ };
45
+ for (const key in operatorMap) {
46
+ const kind = operatorMap[key];
47
+ BaseValue.prototype[key] = function (scope, value) {
48
+ const [left, leftInst] = this.eval(scope);
49
+ const [right, rightInst] = value.eval(scope);
50
+ const temp = new _1.TempValue({ scope });
51
+ return [
52
+ temp,
53
+ [
54
+ ...leftInst,
55
+ ...rightInst,
56
+ new instructions_1.OperationInstruction(kind, temp, left, right),
57
+ ],
58
+ ];
59
+ };
60
+ }
61
+ const unaryOperatorMap = {
62
+ "!": "not",
63
+ "~": "flip",
64
+ };
65
+ for (const key in unaryOperatorMap) {
66
+ const name = unaryOperatorMap[key];
67
+ BaseValue.prototype[key] = function (scope) {
68
+ const [that, inst] = this.eval(scope);
69
+ const temp = new _1.TempValue({ scope });
70
+ return [temp, [...inst, new instructions_1.OperationInstruction(name, temp, that, null)]];
71
+ };
72
+ }
73
+ const assignmentToBinary = {
74
+ "+=": "+",
75
+ "-=": "-",
76
+ "*=": "*",
77
+ "/=": "/",
78
+ "%=": "%",
79
+ "**=": "**",
80
+ "|=": "|",
81
+ "&=": "&",
82
+ "^=": "^",
83
+ ">>=": ">>",
84
+ ">>>=": ">>>",
85
+ "<<=": "<<",
86
+ "&&=": "&&",
87
+ "||=": "||",
88
+ };
89
+ for (const op in assignmentToBinary) {
90
+ BaseValue.prototype[op] = function (scope, value) {
91
+ const [opValue, opInst] = this[assignmentToBinary[op]](scope, value);
92
+ const [retValue, retInst] = this["="](scope, opValue);
93
+ return [retValue, [...opInst, ...retInst]];
94
+ };
95
+ }
96
+ for (const key of operators_1.updateOperators) {
97
+ BaseValue.prototype[key] = function (scope, prefix) {
98
+ let [ret, inst] = this.eval(scope);
99
+ if (!prefix) {
100
+ const temp = new _1.TempValue({ scope });
101
+ const [tempValue, tempInst] = temp["="](scope, ret);
102
+ ret = tempValue;
103
+ inst.push(...tempInst);
104
+ }
105
+ const kind = key === "++" ? "+=" : "-=";
106
+ return [
107
+ ret,
108
+ [...inst, ...this[kind](scope, new _1.LiteralValue(scope, 1))[1]],
109
+ ];
110
+ };
111
+ }
112
+ //# sourceMappingURL=BaseValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseValue.js","sourceRoot":"","sources":["../../src/values/BaseValue.ts"],"names":[],"mappings":"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"}