mlogjs 0.2.1 → 0.3.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 (234) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/build/Compiler.js +104 -99
  4. package/build/Compiler.js.map +1 -1
  5. package/build/CompilerError.js +11 -0
  6. package/build/CompilerError.js.map +1 -0
  7. package/build/Scope.js +70 -60
  8. package/build/Scope.js.map +1 -1
  9. package/build/bin.js +74 -60
  10. package/build/bin.js.map +1 -1
  11. package/build/handlers/BlockStatement.js +13 -13
  12. package/build/handlers/BlockStatement.js.map +1 -1
  13. package/build/handlers/CallExpression.js +19 -19
  14. package/build/handlers/CallExpression.js.map +1 -1
  15. package/build/handlers/File.js +9 -0
  16. package/build/handlers/File.js.map +1 -0
  17. package/build/handlers/ForStatement.js +31 -31
  18. package/build/handlers/ForStatement.js.map +1 -1
  19. package/build/handlers/Function.js +46 -35
  20. package/build/handlers/Function.js.map +1 -1
  21. package/build/handlers/Identifier.js +7 -7
  22. package/build/handlers/IfStatement.js +24 -24
  23. package/build/handlers/IfStatement.js.map +1 -1
  24. package/build/handlers/Literal.js +14 -17
  25. package/build/handlers/Literal.js.map +1 -1
  26. package/build/handlers/Object.js +54 -43
  27. package/build/handlers/Object.js.map +1 -1
  28. package/build/handlers/OperationExpressions.js +37 -32
  29. package/build/handlers/OperationExpressions.js.map +1 -1
  30. package/build/handlers/Program.js +8 -8
  31. package/build/handlers/Program.js.map +1 -1
  32. package/build/handlers/Statements.js +29 -29
  33. package/build/handlers/Statements.js.map +1 -1
  34. package/build/handlers/TemplateExpression.js +17 -17
  35. package/build/handlers/TemplateExpression.js.map +1 -1
  36. package/build/handlers/VariableDeclaration.js +71 -55
  37. package/build/handlers/VariableDeclaration.js.map +1 -1
  38. package/build/handlers/WhileStatement.js +22 -22
  39. package/build/handlers/WhileStatement.js.map +1 -1
  40. package/build/handlers/index.js +31 -30
  41. package/build/handlers/index.js.map +1 -1
  42. package/build/index.js +7 -7
  43. package/build/index.js.map +1 -1
  44. package/build/initScope.js +39 -39
  45. package/build/instructions/AddressResolver.js +30 -30
  46. package/build/instructions/ControlInstructions.js +22 -22
  47. package/build/instructions/EndInstruction.js +10 -10
  48. package/build/instructions/InstructionBase.js +20 -20
  49. package/build/instructions/InstructionBase.js.map +1 -1
  50. package/build/instructions/JumpInstruction.js +21 -21
  51. package/build/instructions/JumpInstruction.js.map +1 -1
  52. package/build/instructions/OperationInstruction.js +10 -10
  53. package/build/instructions/OperationInstruction.js.map +1 -1
  54. package/build/instructions/SetCounterInstruction.js +10 -10
  55. package/build/instructions/SetInstruction.js +10 -10
  56. package/build/instructions/ZeroSpaceInstruction.js +10 -10
  57. package/build/instructions/index.js +25 -25
  58. package/build/macros/Building.js +88 -80
  59. package/build/macros/Building.js.map +1 -1
  60. package/build/macros/Function.js +19 -19
  61. package/build/macros/Function.js.map +1 -1
  62. package/build/macros/Math.js +61 -56
  63. package/build/macros/Math.js.map +1 -1
  64. package/build/macros/Memory.js +62 -60
  65. package/build/macros/Memory.js.map +1 -1
  66. package/build/macros/Namespace.js +110 -97
  67. package/build/macros/Namespace.js.map +1 -1
  68. package/build/macros/Other.js +20 -19
  69. package/build/macros/Other.js.map +1 -1
  70. package/build/macros/RawValue.js +16 -15
  71. package/build/macros/RawValue.js.map +1 -1
  72. package/build/macros/commands/Control.js +25 -24
  73. package/build/macros/commands/Control.js.map +1 -1
  74. package/build/macros/commands/Draw.js +39 -38
  75. package/build/macros/commands/Draw.js.map +1 -1
  76. package/build/macros/commands/DrawFlush.js +17 -16
  77. package/build/macros/commands/DrawFlush.js.map +1 -1
  78. package/build/macros/commands/GetLink.js +24 -20
  79. package/build/macros/commands/GetLink.js.map +1 -1
  80. package/build/macros/commands/Lookup.js +24 -23
  81. package/build/macros/commands/Lookup.js.map +1 -1
  82. package/build/macros/commands/Print.js +17 -13
  83. package/build/macros/commands/Print.js.map +1 -1
  84. package/build/macros/commands/PrintFlush.js +17 -16
  85. package/build/macros/commands/PrintFlush.js.map +1 -1
  86. package/build/macros/commands/Radar.js +64 -60
  87. package/build/macros/commands/Radar.js.map +1 -1
  88. package/build/macros/commands/Sensor.js +20 -19
  89. package/build/macros/commands/Sensor.js.map +1 -1
  90. package/build/macros/commands/UnitBind.js +17 -16
  91. package/build/macros/commands/UnitBind.js.map +1 -1
  92. package/build/macros/commands/UnitControl.js +72 -67
  93. package/build/macros/commands/UnitControl.js.map +1 -1
  94. package/build/macros/commands/UnitLocate.js +75 -54
  95. package/build/macros/commands/UnitLocate.js.map +1 -1
  96. package/build/macros/commands/UnitRadar.js +47 -40
  97. package/build/macros/commands/UnitRadar.js.map +1 -1
  98. package/build/macros/commands/Wait.js +18 -17
  99. package/build/macros/commands/Wait.js.map +1 -1
  100. package/build/macros/commands/index.js +32 -32
  101. package/build/macros/index.js +39 -39
  102. package/build/operators.js +101 -101
  103. package/build/operators.js.map +1 -1
  104. package/build/types.js +27 -27
  105. package/build/types.js.map +1 -1
  106. package/build/utils.js +17 -12
  107. package/build/utils.js.map +1 -1
  108. package/build/values/BaseValue.js +111 -111
  109. package/build/values/BaseValue.js.map +1 -1
  110. package/build/values/FunctionValue.js +115 -103
  111. package/build/values/FunctionValue.js.map +1 -1
  112. package/build/values/LiteralValue.js +88 -87
  113. package/build/values/LiteralValue.js.map +1 -1
  114. package/build/values/ObjectValue.js +54 -49
  115. package/build/values/ObjectValue.js.map +1 -1
  116. package/build/values/StoreValue.js +31 -30
  117. package/build/values/StoreValue.js.map +1 -1
  118. package/build/values/TempValue.js +77 -66
  119. package/build/values/TempValue.js.map +1 -1
  120. package/build/values/VoidValue.js +31 -30
  121. package/build/values/VoidValue.js.map +1 -1
  122. package/build/values/index.js +22 -22
  123. package/dist/bin.cjs +82 -0
  124. package/dist/bin.cjs.map +1 -0
  125. package/dist/index.cjs +2220 -0
  126. package/dist/index.cjs.map +1 -0
  127. package/dist/index.mjs +2195 -0
  128. package/dist/index.mjs.map +1 -0
  129. package/dist/types/Compiler.d.ts +26 -0
  130. package/dist/types/CompilerError.d.ts +9 -0
  131. package/dist/types/Scope.d.ts +24 -0
  132. package/dist/types/bin.d.ts +1 -0
  133. package/dist/types/handlers/BlockStatement.d.ts +2 -0
  134. package/dist/types/handlers/CallExpression.d.ts +3 -0
  135. package/dist/types/handlers/File.d.ts +2 -0
  136. package/dist/types/handlers/ForStatement.d.ts +2 -0
  137. package/{build → dist/types}/handlers/Function.d.ts +5 -4
  138. package/{build → dist/types}/handlers/Identifier.d.ts +2 -2
  139. package/dist/types/handlers/IfStatement.d.ts +2 -0
  140. package/dist/types/handlers/Literal.d.ts +5 -0
  141. package/{build → dist/types}/handlers/Object.d.ts +6 -4
  142. package/{build → dist/types}/handlers/OperationExpressions.d.ts +8 -7
  143. package/dist/types/handlers/Program.d.ts +2 -0
  144. package/dist/types/handlers/Statements.d.ts +5 -0
  145. package/dist/types/handlers/TemplateExpression.d.ts +2 -0
  146. package/dist/types/handlers/Typescript.d.ts +7 -0
  147. package/dist/types/handlers/VariableDeclaration.d.ts +3 -0
  148. package/dist/types/handlers/WhileStatement.d.ts +3 -0
  149. package/{build → dist/types}/handlers/index.d.ts +16 -14
  150. package/dist/types/index.d.ts +2 -0
  151. package/{build → dist/types}/initScope.d.ts +5 -2
  152. package/{build → dist/types}/instructions/AddressResolver.d.ts +12 -12
  153. package/{build → dist/types}/instructions/ControlInstructions.d.ts +8 -11
  154. package/{build → dist/types}/instructions/EndInstruction.d.ts +4 -4
  155. package/{build → dist/types}/instructions/InstructionBase.d.ts +10 -10
  156. package/{build → dist/types}/instructions/JumpInstruction.d.ts +15 -15
  157. package/{build → dist/types}/instructions/OperationInstruction.d.ts +5 -5
  158. package/{build → dist/types}/instructions/SetCounterInstruction.d.ts +5 -5
  159. package/{build → dist/types}/instructions/SetInstruction.d.ts +6 -5
  160. package/{build → dist/types}/instructions/ZeroSpaceInstruction.d.ts +4 -4
  161. package/{build → dist/types}/instructions/index.d.ts +9 -9
  162. package/{build → dist/types}/macros/Building.d.ts +10 -11
  163. package/dist/types/macros/Entities.d.ts +11 -0
  164. package/dist/types/macros/Function.d.ts +13 -0
  165. package/dist/types/macros/GetGlobal.d.ts +5 -0
  166. package/{build → dist/types}/macros/Math.d.ts +5 -5
  167. package/{build → dist/types}/macros/Memory.d.ts +5 -5
  168. package/{build → dist/types}/macros/Namespace.d.ts +16 -21
  169. package/{build → dist/types}/macros/Other.d.ts +5 -5
  170. package/{build → dist/types}/macros/RawValue.d.ts +5 -5
  171. package/{build → dist/types}/macros/commands/Control.d.ts +5 -5
  172. package/dist/types/macros/commands/Draw.d.ts +5 -0
  173. package/{build → dist/types}/macros/commands/DrawFlush.d.ts +5 -5
  174. package/{build/macros/commands/Draw.d.ts → dist/types/macros/commands/End.d.ts} +5 -5
  175. package/{build → dist/types}/macros/commands/GetLink.d.ts +5 -5
  176. package/{build → dist/types}/macros/commands/Lookup.d.ts +5 -5
  177. package/{build → dist/types}/macros/commands/Print.d.ts +5 -5
  178. package/{build → dist/types}/macros/commands/PrintFlush.d.ts +5 -5
  179. package/{build → dist/types}/macros/commands/Radar.d.ts +7 -7
  180. package/{build → dist/types}/macros/commands/Sensor.d.ts +5 -5
  181. package/{build → dist/types}/macros/commands/UnitBind.d.ts +5 -5
  182. package/dist/types/macros/commands/UnitControl.d.ts +5 -0
  183. package/{build → dist/types}/macros/commands/UnitLocate.d.ts +5 -5
  184. package/{build → dist/types}/macros/commands/UnitRadar.d.ts +5 -5
  185. package/{build → dist/types}/macros/commands/Wait.d.ts +5 -5
  186. package/{build → dist/types}/macros/commands/index.d.ts +15 -14
  187. package/{build → dist/types}/macros/index.d.ts +6 -7
  188. package/{build → dist/types}/operators.d.ts +25 -25
  189. package/dist/types/types.d.ts +224 -0
  190. package/dist/types/utils.d.ts +30 -0
  191. package/dist/types/values/BaseValue.d.ts +7 -0
  192. package/dist/types/values/DestructuringValue.d.ts +17 -0
  193. package/dist/types/values/FunctionValue.d.ts +47 -0
  194. package/{build → dist/types}/values/LiteralValue.d.ts +13 -12
  195. package/dist/types/values/ObjectValue.d.ts +23 -0
  196. package/dist/types/values/SenseableValue.d.ts +23 -0
  197. package/dist/types/values/StackValue.d.ts +16 -0
  198. package/dist/types/values/StoreValue.d.ts +15 -0
  199. package/{build → dist/types}/values/TempValue.d.ts +19 -12
  200. package/dist/types/values/ValueOwner.d.ts +27 -0
  201. package/dist/types/values/VoidValue.d.ts +16 -0
  202. package/{build → dist/types}/values/index.d.ts +7 -6
  203. package/lib/commands.d.ts +242 -36
  204. package/lib/eslib/lib.es5.d.ts +1 -1
  205. package/lib/globals.d.ts +172 -159
  206. package/lib/helpers.d.ts +2 -2
  207. package/lib/memory.d.ts +1 -1
  208. package/lib/traits.d.ts +130 -110
  209. package/package.json +33 -38
  210. package/build/Compiler.d.ts +0 -18
  211. package/build/Scope.d.ts +0 -26
  212. package/build/bin.d.ts +0 -2
  213. package/build/handlers/BlockStatement.d.ts +0 -2
  214. package/build/handlers/CallExpression.d.ts +0 -3
  215. package/build/handlers/ForStatement.d.ts +0 -2
  216. package/build/handlers/IfStatement.d.ts +0 -2
  217. package/build/handlers/Literal.d.ts +0 -2
  218. package/build/handlers/Program.d.ts +0 -2
  219. package/build/handlers/Statements.d.ts +0 -5
  220. package/build/handlers/TemplateExpression.d.ts +0 -2
  221. package/build/handlers/VariableDeclaration.d.ts +0 -3
  222. package/build/handlers/WhileStatement.d.ts +0 -2
  223. package/build/index.d.ts +0 -1
  224. package/build/macros/Function.d.ts +0 -12
  225. package/build/macros/commands/UnitControl.d.ts +0 -5
  226. package/build/types.d.ts +0 -49
  227. package/build/utils.d.ts +0 -3
  228. package/build/values/BaseValue.d.ts +0 -5
  229. package/build/values/FunctionValue.d.ts +0 -34
  230. package/build/values/ObjectValue.d.ts +0 -17
  231. package/build/values/StoreValue.d.ts +0 -11
  232. package/build/values/VoidValue.d.ts +0 -11
  233. package/dist/mlogjs.es.js +0 -6366
  234. package/dist/mlogjs.umd.js +0 -8
@@ -1,104 +1,116 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FunctionValue = void 0;
4
- const instructions_1 = require("../instructions");
5
- const LiteralValue_1 = require("./LiteralValue");
6
- const StoreValue_1 = require("./StoreValue");
7
- const TempValue_1 = require("./TempValue");
8
- const VoidValue_1 = require("./VoidValue");
9
- class FunctionValue extends VoidValue_1.VoidValue {
10
- constructor(scope, name, paramNames, paramStores, body, c) {
11
- super(scope);
12
- this.constant = true;
13
- this.macro = true;
14
- this.bundled = false;
15
- this.name = name;
16
- this.paramNames = paramNames;
17
- this.paramStores = paramStores;
18
- this.body = body;
19
- this.c = c;
20
- this.callSize = paramStores.length + 2;
21
- scope.function = this;
22
- this.createValues();
23
- this.createInst();
24
- }
25
- createValues() {
26
- this.addr = new LiteralValue_1.LiteralValue(this.scope, null);
27
- this.temp = new StoreValue_1.StoreValue(this.scope, "f" + this.name);
28
- this.ret = new StoreValue_1.StoreValue(this.scope, "r" + this.name);
29
- }
30
- typeof(scope) {
31
- return [new LiteralValue_1.LiteralValue(scope, "function"), []];
32
- }
33
- createInst() {
34
- this.inst = [
35
- new instructions_1.AddressResolver(this.addr),
36
- ...this.c.handle(this.scope, this.body)[1],
37
- ];
38
- this.inst.push(new instructions_1.SetCounterInstruction(this.ret));
39
- }
40
- normalReturn(scope, arg) {
41
- const argInst = arg ? this.temp["="](scope, arg)[1] : [];
42
- return [null, [...argInst, new instructions_1.SetCounterInstruction(this.ret)]];
43
- }
44
- normalCall(scope, args) {
45
- if (!this.bundled)
46
- this.scope.inst.push(...this.inst);
47
- this.bundled = true;
48
- const callAddressLiteral = new LiteralValue_1.LiteralValue(scope, null);
49
- const inst = this.paramStores
50
- .map((param, i) => param["="](scope, args[i])[1])
51
- .reduce((s, c) => s.concat(c), [])
52
- .concat(...this.ret["="](scope, callAddressLiteral)[1], new instructions_1.JumpInstruction(this.addr, instructions_1.EJumpKind.Always), new instructions_1.AddressResolver(callAddressLiteral));
53
- return [this.temp, inst];
54
- }
55
- inlineReturn(scope, arg) {
56
- const argInst = arg ? this.inlineTemp["="](scope, arg)[1] : [];
57
- return [null, [...argInst, new instructions_1.ReturnInstruction(this.inlineEnd)]];
58
- }
59
- inlineCall(scope, args) {
60
- // create return value
61
- this.inlineTemp = new TempValue_1.TempValue(scope);
62
- this.inlineEnd = new LiteralValue_1.LiteralValue(scope, null);
63
- // make a copy of the function scope
64
- const fnScope = this.scope.copy();
65
- // hard set variables within the function scope
66
- this.paramNames.forEach((name, i) => fnScope.hardSet(name, args[i]));
67
- this.tryingInline = true;
68
- let inst = this.c.handle(fnScope, this.body)[1];
69
- this.tryingInline = false;
70
- // removing useless instruction
71
- // get the last instructions
72
- // const [jump] = inst.slice(-1);
73
- // if (jump instanceof JumpInstruction) {
74
- // // remove useless jump
75
- // if (jump.args[1] === this.inlineEnd) inst.pop();
76
- // }
77
- inst.push(new instructions_1.AddressResolver(this.inlineEnd));
78
- // return the function value
79
- return [this.inlineTemp, inst];
80
- }
81
- call(scope, args) {
82
- if (args.length !== this.paramStores.length)
83
- throw new Error("Cannot call: argument count not matching.");
84
- const inlineCall = this.inlineCall(scope, args);
85
- const inlineSize = inlineCall[1].filter(i => !i.hidden).length;
86
- if (this.inline || inlineSize <= this.callSize)
87
- return inlineCall;
88
- return this.normalCall(scope, args);
89
- }
90
- return(scope, arg) {
91
- if (arg && arg.macro) {
92
- this.inline = true;
93
- return [null, []];
94
- }
95
- if (this.inline || this.tryingInline)
96
- return this.inlineReturn(scope, arg);
97
- return this.normalReturn(scope, arg);
98
- }
99
- eval(scope) {
100
- return [this, []];
101
- }
102
- }
103
- exports.FunctionValue = FunctionValue;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FunctionValue = void 0;
4
+ const utils_1 = require("src/utils");
5
+ const CompilerError_1 = require("../CompilerError");
6
+ const instructions_1 = require("../instructions");
7
+ const LiteralValue_1 = require("./LiteralValue");
8
+ const StoreValue_1 = require("./StoreValue");
9
+ const TempValue_1 = require("./TempValue");
10
+ const VoidValue_1 = require("./VoidValue");
11
+ class FunctionValue extends VoidValue_1.VoidValue {
12
+ constructor({ scope, name, paramNames, paramStores, body, c, renameable = false, }) {
13
+ super(scope);
14
+ this.constant = true;
15
+ this.macro = true;
16
+ this.bundled = false;
17
+ this.initialized = false;
18
+ this.name = name;
19
+ this.paramNames = paramNames;
20
+ this.paramStores = paramStores;
21
+ this.body = body;
22
+ this.c = c;
23
+ this.renameable = renameable;
24
+ this.callSize = paramStores.length + 2;
25
+ scope.function = this;
26
+ }
27
+ typeof(scope) {
28
+ return [new LiteralValue_1.LiteralValue(scope, "function"), []];
29
+ }
30
+ ensureInit() {
31
+ if (this.initialized)
32
+ return;
33
+ this.initialized = true;
34
+ this.addr = new LiteralValue_1.LiteralValue(this.scope, null);
35
+ this.temp = new StoreValue_1.StoreValue(this.scope, `${utils_1.internalPrefix}f${this.name}`);
36
+ this.ret = new StoreValue_1.StoreValue(this.scope, `${utils_1.internalPrefix}r${this.name}`);
37
+ this.inst = [
38
+ new instructions_1.AddressResolver(this.addr),
39
+ ...this.c.handle(this.scope, this.body)[1],
40
+ ];
41
+ this.inst.push(new instructions_1.SetCounterInstruction(this.ret));
42
+ }
43
+ normalReturn(scope, arg) {
44
+ const argInst = arg ? this.temp["="](scope, arg)[1] : [];
45
+ return [null, [...argInst, new instructions_1.SetCounterInstruction(this.ret)]];
46
+ }
47
+ normalCall(scope, args) {
48
+ if (!this.bundled)
49
+ this.scope.inst.push(...this.inst);
50
+ this.bundled = true;
51
+ const callAddressLiteral = new LiteralValue_1.LiteralValue(scope, null);
52
+ const inst = this.paramStores
53
+ .map((param, i) => param["="](scope, args[i])[1])
54
+ .reduce((s, c) => s.concat(c), [])
55
+ .concat(...this.ret["="](scope, callAddressLiteral)[1], new instructions_1.JumpInstruction(this.addr, instructions_1.EJumpKind.Always), new instructions_1.AddressResolver(callAddressLiteral));
56
+ return [this.temp, inst];
57
+ }
58
+ inlineReturn(scope, arg) {
59
+ const argInst = arg ? this.inlineTemp["="](scope, arg)[1] : [];
60
+ return [null, [...argInst, new instructions_1.ReturnInstruction(this.inlineEnd)]];
61
+ }
62
+ inlineCall(scope, args) {
63
+ // create return value
64
+ this.inlineTemp = new TempValue_1.TempValue({ scope });
65
+ this.inlineEnd = new LiteralValue_1.LiteralValue(scope, null);
66
+ // make a copy of the function scope
67
+ const fnScope = this.scope.copy();
68
+ // hard set variables within the function scope
69
+ this.paramNames.forEach((name, i) => fnScope.hardSet(name, args[i]));
70
+ this.tryingInline = true;
71
+ const inst = this.c.handle(fnScope, this.body)[1];
72
+ this.tryingInline = false;
73
+ // removing useless instruction
74
+ // get the last instructions
75
+ // const [jump] = inst.slice(-1);
76
+ // if (jump instanceof JumpInstruction) {
77
+ // // remove useless jump
78
+ // if (jump.args[1] === this.inlineEnd) inst.pop();
79
+ // }
80
+ inst.push(new instructions_1.AddressResolver(this.inlineEnd));
81
+ // return the function value
82
+ return [this.inlineTemp, inst];
83
+ }
84
+ call(scope, args) {
85
+ this.ensureInit();
86
+ if (args.length !== this.paramStores.length)
87
+ throw new CompilerError_1.CompilerError("Cannot call: argument count not matching.");
88
+ const inlineCall = this.inlineCall(scope, args);
89
+ const inlineSize = inlineCall[1].filter(i => !i.hidden).length;
90
+ if (this.inline || inlineSize <= this.callSize)
91
+ return inlineCall;
92
+ return this.normalCall(scope, args);
93
+ }
94
+ return(scope, arg) {
95
+ this.ensureInit();
96
+ if (arg && arg.macro) {
97
+ this.inline = true;
98
+ return [null, []];
99
+ }
100
+ if (this.inline || this.tryingInline)
101
+ return this.inlineReturn(scope, arg);
102
+ return this.normalReturn(scope, arg);
103
+ }
104
+ eval(_scope) {
105
+ return [this, []];
106
+ }
107
+ rename(name) {
108
+ if (!this.renameable)
109
+ return;
110
+ this.name = name;
111
+ this.scope.name = name;
112
+ this.renameable = false;
113
+ }
114
+ }
115
+ exports.FunctionValue = FunctionValue;
104
116
  //# sourceMappingURL=FunctionValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionValue.js","sourceRoot":"","sources":["../../src/values/FunctionValue.ts"],"names":[],"mappings":";;;AACA,kDAMyB;AASzB,iDAA8C;AAC9C,6CAA0C;AAC1C,2CAAwC;AACxC,2CAAwC;AAExC,MAAa,aAAc,SAAQ,qBAAS;IAqC1C,YACE,KAAa,EACb,IAAY,EACZ,UAAoB,EACpB,WAAyB,EACzB,IAAuB,EACvB,CAAW;QAEX,KAAK,CAAC,KAAK,CAAC,CAAC;QA5Cf,aAAQ,GAAG,IAAI,CAAC;QAChB,UAAK,GAAG,IAAI,CAAC;QAeL,YAAO,GAAY,KAAK,CAAC;QA8B/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAvCO,YAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,CAAC,IAAI,2BAAY,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,GAAG;YACV,IAAI,8BAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,oCAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAyBO,YAAY,CAAC,KAAa,EAAE,GAAW;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,oCAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,IAAc;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,kBAAkB,GAAG,IAAI,2BAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAmB,IAAI,CAAC,WAAW;aAC1C,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACjC,MAAM,CACL,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC9C,IAAI,8BAAe,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAS,CAAC,MAAM,CAAC,EAChD,IAAI,8BAAe,CAAC,kBAAkB,CAAC,CACxC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,GAAW;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,gCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,IAAc;QAC9C,sBAAsB;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,2BAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/C,oCAAoC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,+CAA+C;QAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,+BAA+B;QAC/B,4BAA4B;QAC5B,iCAAiC;QACjC,yCAAyC;QACzC,0BAA0B;QAC1B,oDAAoD;QACpD,IAAI;QAEJ,IAAI,CAAC,IAAI,CAAC,IAAI,8BAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAE/C,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAc;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM;YACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAC/D,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,GAAW;QAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,CAAC;CACF;AAtID,sCAsIC"}
1
+ {"version":3,"file":"FunctionValue.js","sourceRoot":"","sources":["../../src/values/FunctionValue.ts"],"names":[],"mappings":"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"}
@@ -1,88 +1,89 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LiteralValue = void 0;
4
- const _1 = require(".");
5
- const literalMethods = {
6
- length: function (scope) {
7
- if (typeof this.data !== "string")
8
- throw new Error("Length method only works on string literal values.");
9
- return new LiteralValue(scope, this.data.length);
10
- },
11
- };
12
- class LiteralValue extends _1.BaseValue {
13
- constructor(scope, data) {
14
- super(scope);
15
- this.constant = true;
16
- this.data = data;
17
- }
18
- eval(scope) {
19
- return [this, []];
20
- }
21
- toString() {
22
- return JSON.stringify(this.data);
23
- }
24
- get(scope, name) {
25
- if (!(name instanceof LiteralValue && typeof name.data === "string"))
26
- return super.get(scope, name);
27
- const method = literalMethods[name.data];
28
- if (!method)
29
- throw new Error(`Method ${name.data} does not exist on literal values.`);
30
- return [method.apply(this, [scope]), []];
31
- }
32
- get num() {
33
- if (this.data === null)
34
- return 0;
35
- if (typeof this.data === "string")
36
- return 1;
37
- return this.data;
38
- }
39
- typeof(scope) {
40
- return [new LiteralValue(scope, "literal"), []];
41
- }
42
- }
43
- exports.LiteralValue = LiteralValue;
44
- const operatorMap = {
45
- "==": (a, b) => +(a == b),
46
- "===": (a, b) => +(a === b),
47
- "!=": (a, b) => +(a != b),
48
- "!==": (a, b) => +(a !== b),
49
- "<": (a, b) => +(a < b),
50
- ">": (a, b) => +(a > b),
51
- "<=": (a, b) => +(a <= b),
52
- ">=": (a, b) => +(a >= b),
53
- "+": (a, b) => a + b,
54
- "-": (a, b) => a - b,
55
- "*": (a, b) => a * b,
56
- "/": (a, b) => a / b,
57
- "%": (a, b) => a % b,
58
- "**": (a, b) => a ** b,
59
- "|": (a, b) => a | b,
60
- "&": (a, b) => a & b,
61
- "^": (a, b) => a ^ b,
62
- ">>": (a, b) => a >> b,
63
- ">>>": (a, b) => a >> b,
64
- "<<": (a, b) => a << b,
65
- "&&": (a, b) => +(a && b),
66
- "||": (a, b) => +(a || b),
67
- };
68
- for (const key in operatorMap) {
69
- const fn = operatorMap[key];
70
- LiteralValue.prototype[key] = function (scope, value) {
71
- if (!(value instanceof LiteralValue)) {
72
- return _1.BaseValue.prototype[key].apply(this, [scope, value]);
73
- }
74
- return [new LiteralValue(scope, fn(this.num, value.num)), []];
75
- };
76
- }
77
- const unaryOperatorMap = {
78
- "!": v => +!v,
79
- "~": v => ~v,
80
- "u-": v => -v,
81
- };
82
- for (const key in unaryOperatorMap) {
83
- LiteralValue.prototype[key] = function (scope) {
84
- const fn = unaryOperatorMap[key];
85
- return [new LiteralValue(scope, fn(this.num)), []];
86
- };
87
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiteralValue = void 0;
4
+ const _1 = require(".");
5
+ const CompilerError_1 = require("../CompilerError");
6
+ const literalMethods = {
7
+ length: function (scope) {
8
+ if (typeof this.data !== "string")
9
+ throw new CompilerError_1.CompilerError("Length method only works on string literal values.");
10
+ return new LiteralValue(scope, this.data.length);
11
+ },
12
+ };
13
+ class LiteralValue extends _1.BaseValue {
14
+ constructor(scope, data) {
15
+ super(scope);
16
+ this.constant = true;
17
+ this.data = data;
18
+ }
19
+ eval(_scope) {
20
+ return [this, []];
21
+ }
22
+ toString() {
23
+ return JSON.stringify(this.data);
24
+ }
25
+ get(scope, name) {
26
+ if (!(name instanceof LiteralValue && typeof name.data === "string"))
27
+ return super.get(scope, name);
28
+ const method = literalMethods[name.data];
29
+ if (!method)
30
+ throw new CompilerError_1.CompilerError(`Method ${name.data} does not exist on literal values.`);
31
+ return [method.apply(this, [scope]), []];
32
+ }
33
+ get num() {
34
+ if (this.data === null)
35
+ return 0;
36
+ if (typeof this.data === "string")
37
+ return 1;
38
+ return this.data;
39
+ }
40
+ typeof(scope) {
41
+ return [new LiteralValue(scope, "literal"), []];
42
+ }
43
+ }
44
+ exports.LiteralValue = LiteralValue;
45
+ const operatorMap = {
46
+ "==": (a, b) => +(a == b),
47
+ "===": (a, b) => +(a === b),
48
+ "!=": (a, b) => +(a != b),
49
+ "!==": (a, b) => +(a !== b),
50
+ "<": (a, b) => +(a < b),
51
+ ">": (a, b) => +(a > b),
52
+ "<=": (a, b) => +(a <= b),
53
+ ">=": (a, b) => +(a >= b),
54
+ "+": (a, b) => a + b,
55
+ "-": (a, b) => a - b,
56
+ "*": (a, b) => a * b,
57
+ "/": (a, b) => a / b,
58
+ "%": (a, b) => a % b,
59
+ "**": (a, b) => a ** b,
60
+ "|": (a, b) => a | b,
61
+ "&": (a, b) => a & b,
62
+ "^": (a, b) => a ^ b,
63
+ ">>": (a, b) => a >> b,
64
+ ">>>": (a, b) => a >> b,
65
+ "<<": (a, b) => a << b,
66
+ "&&": (a, b) => +(a && b),
67
+ "||": (a, b) => +(a || b),
68
+ };
69
+ for (const key in operatorMap) {
70
+ const fn = operatorMap[key];
71
+ LiteralValue.prototype[key] = function (scope, value) {
72
+ if (!(value instanceof LiteralValue)) {
73
+ return _1.BaseValue.prototype[key].apply(this, [scope, value]);
74
+ }
75
+ return [new LiteralValue(scope, fn(this.num, value.num)), []];
76
+ };
77
+ }
78
+ const unaryOperatorMap = {
79
+ "!": v => +!v,
80
+ "~": v => ~v,
81
+ "u-": v => -v,
82
+ };
83
+ for (const key in unaryOperatorMap) {
84
+ LiteralValue.prototype[key] = function (scope) {
85
+ const fn = unaryOperatorMap[key];
86
+ return [new LiteralValue(scope, fn(this.num)), []];
87
+ };
88
+ }
88
89
  //# sourceMappingURL=LiteralValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiteralValue.js","sourceRoot":"","sources":["../../src/values/LiteralValue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiteralValue.js","sourceRoot":"","sources":["../../src/values/LiteralValue.ts"],"names":[],"mappings":";;;AAOA,wBAA8B;AAE9B,oDAAiD;AAEjD,MAAM,cAAc,GAGhB;IACF,MAAM,EAAE,UAA8B,KAAa;QACjD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC/B,MAAM,IAAI,6BAAa,CACrB,oDAAoD,CACrD,CAAC;QACJ,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF,CAAC;AAEF,MAAa,YAAa,SAAQ,YAAS;IAGzC,YAAY,KAAa,EAAE,IAAc;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;QAFf,aAAQ,GAAG,IAAI,CAAC;QAGd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAc;QACjB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,GAAG,CAAC,KAAa,EAAE,IAAY;QAC7B,IAAI,CAAC,CAAC,IAAI,YAAY,YAAY,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;YAClE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,6BAAa,CACrB,UAAU,IAAI,CAAC,IAAI,oCAAoC,CACxD,CAAC;QACJ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG;QACL,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QACjC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAhCD,oCAgCC;AAKD,MAAM,WAAW,GAEb;IACF,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACjB,CAAC;AAEX,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;IAE7B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAQ,CAAiB,CAAC;IACjD,YAAY,CAAC,SAAS,CAAC,GAAQ,CAAC,GAAG,UAEjC,KAAa,EACb,KAAmB;QAEnB,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE;YACpC,OAAO,YAAS,CAAC,SAAS,CAAC,GAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SAClE;QACD,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;CACH;AAED,MAAM,gBAAgB,GAKlB;IACF,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACb,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACL,CAAC;AAEX,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;IAElC,YAAY,CAAC,SAAS,CAAC,GAAQ,CAAC,GAAG,UAEjC,KAAa;QAEb,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;CACH"}
@@ -1,50 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectValue = void 0;
4
- const operators_1 = require("../operators");
5
- const LiteralValue_1 = require("./LiteralValue");
6
- const VoidValue_1 = require("./VoidValue");
7
- class ObjectValue extends VoidValue_1.VoidValue {
8
- constructor(scope, data = {}) {
9
- super(scope);
10
- this.constant = true;
11
- this.macro = true;
12
- this.data = data;
13
- }
14
- typeof(scope) {
15
- return [new LiteralValue_1.LiteralValue(scope, "object"), []];
16
- }
17
- get(scope, key) {
18
- const member = this.data[key.data];
19
- if (member)
20
- return [member, []];
21
- const { $get } = this.data;
22
- if (!$get)
23
- throw new Error("Cannot get undefined member.");
24
- return $get.call(scope, [key]);
25
- }
26
- eval(scope) {
27
- const { $eval } = this.data;
28
- if (!$eval)
29
- return [this, []];
30
- return $eval.call(scope, []);
31
- }
32
- call(scope, args) {
33
- const { $call } = this.data;
34
- if (!$call)
35
- return super.call(scope, args);
36
- return $call.call(scope, args);
37
- }
38
- }
39
- exports.ObjectValue = ObjectValue;
40
- for (const op of operators_1.operators) {
41
- ObjectValue.prototype[op] = function (...args) {
42
- const $ = this.data["$" + op];
43
- if (!$)
44
- return VoidValue_1.VoidValue.prototype[op].apply(this, args);
45
- let [scope, ...fnArgs] = args;
46
- // @ts-ignore
47
- return $.call(scope, fnArgs);
48
- };
49
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectValue = void 0;
4
+ const CompilerError_1 = require("../CompilerError");
5
+ const operators_1 = require("../operators");
6
+ const LiteralValue_1 = require("./LiteralValue");
7
+ const VoidValue_1 = require("./VoidValue");
8
+ class ObjectValue extends VoidValue_1.VoidValue {
9
+ constructor(scope, data = {}) {
10
+ super(scope);
11
+ this.constant = true;
12
+ this.macro = true;
13
+ this.data = data;
14
+ }
15
+ typeof(scope) {
16
+ return [new LiteralValue_1.LiteralValue(scope, "object"), []];
17
+ }
18
+ get(scope, key) {
19
+ // avoids naming collisions with keys like
20
+ // constructor or toString
21
+ if (Object.prototype.hasOwnProperty.call(this.data, key.data)) {
22
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
23
+ const member = this.data[key.data];
24
+ return [member, []];
25
+ }
26
+ const { $get } = this.data;
27
+ if (!$get)
28
+ throw new CompilerError_1.CompilerError("Cannot get undefined member.");
29
+ return $get.call(scope, [key]);
30
+ }
31
+ eval(scope) {
32
+ const { $eval } = this.data;
33
+ if (!$eval)
34
+ return [this, []];
35
+ return $eval.call(scope, []);
36
+ }
37
+ call(scope, args) {
38
+ const { $call } = this.data;
39
+ if (!$call)
40
+ return super.call(scope, args);
41
+ return $call.call(scope, args);
42
+ }
43
+ }
44
+ exports.ObjectValue = ObjectValue;
45
+ for (const op of operators_1.operators) {
46
+ ObjectValue.prototype[op] = function (...args) {
47
+ const $ = this.data[`$${op}`];
48
+ // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-unsafe-return
49
+ if (!$)
50
+ return VoidValue_1.VoidValue.prototype[op].apply(this, args);
51
+ const [scope, ...fnArgs] = args;
52
+ return $.call(scope, fnArgs);
53
+ };
54
+ }
50
55
  //# sourceMappingURL=ObjectValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectValue.js","sourceRoot":"","sources":["../../src/values/ObjectValue.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAEzC,iDAA8C;AAC9C,2CAAwC;AAExC,MAAa,WAAY,SAAQ,qBAAS;IAKxC,YAAY,KAAa,EAAE,OAAgC,EAAE;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QALf,aAAQ,GAAG,IAAI,CAAC;QAChB,UAAK,GAAG,IAAI,CAAC;QAKX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,CAAC,IAAI,2BAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAc;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAjCD,kCAiCC;AAED,KAAK,MAAM,EAAE,IAAI,qBAAS,EAAE;IAC1B,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,UAA6B,GAAG,IAAW;QACrE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO,qBAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAC9B,aAAa;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"ObjectValue.js","sourceRoot":"","sources":["../../src/values/ObjectValue.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,4CAAyC;AAOzC,iDAA8C;AAC9C,2CAAwC;AAOxC,MAAa,WAAY,SAAQ,qBAAS;IAKxC,YAAY,KAAa,EAAE,OAAyB,EAAE;QACpD,KAAK,CAAC,KAAK,CAAC,CAAC;QALf,aAAQ,GAAG,IAAI,CAAC;QAChB,UAAK,GAAG,IAAI,CAAC;QAKX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,CAAC,IAAI,2BAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QAClC,0CAA0C;QAC1C,0BAA0B;QAC1B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7D,oEAAoE;YACpE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACpC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACrB;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,6BAAa,CAAC,8BAA8B,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAc;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAtCD,kCAsCC;AAED,KAAK,MAAM,EAAE,IAAI,qBAAS,EAAE;IAC1B,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,UAE1B,GAAG,IAA0B;QAE7B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,6FAA6F;QAC7F,IAAI,CAAC,CAAC;YAAE,OAAQ,qBAAS,CAAC,SAAS,CAAC,EAAE,CAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAChC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC;CACH"}