mlogjs 0.1.11 → 0.2.2

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 (225) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +68 -18
  3. package/build/bin.cjs +69 -0
  4. package/dist/bin.cjs +69 -0
  5. package/dist/index.cjs +1817 -0
  6. package/dist/index.mjs +1813 -0
  7. package/dist/types/Compiler.d.ts +18 -0
  8. package/{build → dist/types}/Scope.d.ts +8 -11
  9. package/dist/types/bin.d.ts +1 -0
  10. package/dist/types/handlers/BlockStatement.d.ts +2 -0
  11. package/dist/types/handlers/CallExpression.d.ts +3 -0
  12. package/dist/types/handlers/ForStatement.d.ts +2 -0
  13. package/{build → dist/types}/handlers/Function.d.ts +0 -0
  14. package/{build → dist/types}/handlers/Identifier.d.ts +0 -0
  15. package/dist/types/handlers/IfStatement.d.ts +2 -0
  16. package/{build → dist/types}/handlers/Literal.d.ts +0 -0
  17. package/{build → dist/types}/handlers/Object.d.ts +0 -0
  18. package/{build → dist/types}/handlers/OperationExpressions.d.ts +0 -0
  19. package/dist/types/handlers/Program.d.ts +2 -0
  20. package/dist/types/handlers/Statements.d.ts +5 -0
  21. package/dist/types/handlers/TemplateExpression.d.ts +2 -0
  22. package/dist/types/handlers/VariableDeclaration.d.ts +3 -0
  23. package/dist/types/handlers/WhileStatement.d.ts +2 -0
  24. package/{build → dist/types}/handlers/index.d.ts +0 -0
  25. package/dist/types/index.d.ts +1 -0
  26. package/dist/types/initScope.d.ts +2 -0
  27. package/{build → dist/types}/instructions/AddressResolver.d.ts +1 -1
  28. package/{build → dist/types}/instructions/ControlInstructions.d.ts +0 -0
  29. package/{build → dist/types}/instructions/EndInstruction.d.ts +0 -0
  30. package/{build → dist/types}/instructions/InstructionBase.d.ts +2 -2
  31. package/{build → dist/types}/instructions/JumpInstruction.d.ts +1 -1
  32. package/{build → dist/types}/instructions/OperationInstruction.d.ts +1 -1
  33. package/{build → dist/types}/instructions/SetCounterInstruction.d.ts +0 -0
  34. package/{build → dist/types}/instructions/SetInstruction.d.ts +0 -0
  35. package/{build → dist/types}/instructions/ZeroSpaceInstruction.d.ts +0 -0
  36. package/{build → dist/types}/instructions/index.d.ts +0 -0
  37. package/dist/types/macros/Building.d.ts +11 -0
  38. package/dist/types/macros/Function.d.ts +12 -0
  39. package/{build → dist/types}/macros/Math.d.ts +0 -0
  40. package/{build/macros/Blocks.d.ts → dist/types/macros/Memory.d.ts} +1 -1
  41. package/dist/types/macros/Namespace.d.ts +21 -0
  42. package/{build/macros/Draw.d.ts → dist/types/macros/Other.d.ts} +1 -1
  43. package/dist/types/macros/RawValue.d.ts +5 -0
  44. package/dist/types/macros/commands/Control.d.ts +5 -0
  45. package/dist/types/macros/commands/Draw.d.ts +5 -0
  46. package/dist/types/macros/commands/DrawFlush.d.ts +5 -0
  47. package/dist/types/macros/commands/GetLink.d.ts +5 -0
  48. package/dist/types/macros/commands/Lookup.d.ts +5 -0
  49. package/dist/types/macros/commands/Print.d.ts +5 -0
  50. package/dist/types/macros/commands/PrintFlush.d.ts +5 -0
  51. package/dist/types/macros/commands/Radar.d.ts +7 -0
  52. package/dist/types/macros/commands/Sensor.d.ts +5 -0
  53. package/dist/types/macros/commands/UnitBind.d.ts +5 -0
  54. package/dist/types/macros/commands/UnitControl.d.ts +5 -0
  55. package/dist/types/macros/commands/UnitLocate.d.ts +5 -0
  56. package/dist/types/macros/commands/UnitRadar.d.ts +5 -0
  57. package/dist/types/macros/commands/Wait.d.ts +5 -0
  58. package/dist/types/macros/commands/index.d.ts +14 -0
  59. package/dist/types/macros/index.d.ts +7 -0
  60. package/{build → dist/types}/operators.d.ts +3 -0
  61. package/dist/types/types.d.ts +100 -0
  62. package/{build → dist/types}/utils.d.ts +1 -0
  63. package/{build → dist/types}/values/BaseValue.d.ts +0 -0
  64. package/{build → dist/types}/values/FunctionValue.d.ts +1 -1
  65. package/{build → dist/types}/values/LiteralValue.d.ts +0 -0
  66. package/dist/types/values/ObjectValue.d.ts +19 -0
  67. package/{build → dist/types}/values/StoreValue.d.ts +0 -0
  68. package/{build → dist/types}/values/TempValue.d.ts +0 -0
  69. package/{build → dist/types}/values/VoidValue.d.ts +3 -1
  70. package/{build → dist/types}/values/index.d.ts +0 -0
  71. package/{docs → doc}/README.md +9 -17
  72. package/lib/commands.d.ts +326 -0
  73. package/lib/eslib/index.d.ts +3 -0
  74. package/lib/eslib/lib.d.ts +9 -0
  75. package/lib/eslib/lib.es2015.collection.d.ts +89 -0
  76. package/lib/eslib/lib.es2015.core.d.ts +16 -0
  77. package/lib/eslib/lib.es2015.d.ts +30 -0
  78. package/lib/eslib/lib.es2015.generator.d.ts +79 -0
  79. package/lib/eslib/lib.es2015.iterable.d.ts +70 -0
  80. package/lib/eslib/lib.es5.d.ts +295 -0
  81. package/lib/eslib/lib.es6.d.ts +18 -0
  82. package/lib/globals.d.ts +328 -0
  83. package/lib/helpers.d.ts +23 -0
  84. package/lib/index.d.ts +7 -0
  85. package/lib/kinds.d.ts +36 -0
  86. package/lib/memory.d.ts +17 -0
  87. package/lib/traits.d.ts +120 -0
  88. package/lib/util.d.ts +32 -0
  89. package/package.json +63 -37
  90. package/.gitattributes +0 -2
  91. package/build/Compiler.d.ts +0 -18
  92. package/build/Compiler.js +0 -93
  93. package/build/Compiler.js.map +0 -1
  94. package/build/Scope.js +0 -61
  95. package/build/Scope.js.map +0 -1
  96. package/build/bin.d.ts +0 -2
  97. package/build/bin.js +0 -35
  98. package/build/bin.js.map +0 -1
  99. package/build/handlers/BlockStatement.d.ts +0 -2
  100. package/build/handlers/BlockStatement.js +0 -14
  101. package/build/handlers/BlockStatement.js.map +0 -1
  102. package/build/handlers/CallExpression.d.ts +0 -3
  103. package/build/handlers/CallExpression.js +0 -20
  104. package/build/handlers/CallExpression.js.map +0 -1
  105. package/build/handlers/ForStatement.d.ts +0 -2
  106. package/build/handlers/ForStatement.js +0 -32
  107. package/build/handlers/ForStatement.js.map +0 -1
  108. package/build/handlers/Function.js +0 -33
  109. package/build/handlers/Function.js.map +0 -1
  110. package/build/handlers/Identifier.js +0 -8
  111. package/build/handlers/Identifier.js.map +0 -1
  112. package/build/handlers/IfStatement.d.ts +0 -2
  113. package/build/handlers/IfStatement.js +0 -25
  114. package/build/handlers/IfStatement.js.map +0 -1
  115. package/build/handlers/Literal.js +0 -16
  116. package/build/handlers/Literal.js.map +0 -1
  117. package/build/handlers/Object.js +0 -44
  118. package/build/handlers/Object.js.map +0 -1
  119. package/build/handlers/OperationExpressions.js +0 -32
  120. package/build/handlers/OperationExpressions.js.map +0 -1
  121. package/build/handlers/Program.d.ts +0 -2
  122. package/build/handlers/Program.js +0 -9
  123. package/build/handlers/Program.js.map +0 -1
  124. package/build/handlers/Statements.d.ts +0 -5
  125. package/build/handlers/Statements.js +0 -28
  126. package/build/handlers/Statements.js.map +0 -1
  127. package/build/handlers/TemplateExpression.d.ts +0 -2
  128. package/build/handlers/TemplateExpression.js +0 -18
  129. package/build/handlers/TemplateExpression.js.map +0 -1
  130. package/build/handlers/VariableDeclaration.d.ts +0 -3
  131. package/build/handlers/VariableDeclaration.js +0 -32
  132. package/build/handlers/VariableDeclaration.js.map +0 -1
  133. package/build/handlers/WhileStatement.d.ts +0 -2
  134. package/build/handlers/WhileStatement.js +0 -23
  135. package/build/handlers/WhileStatement.js.map +0 -1
  136. package/build/handlers/index.js +0 -27
  137. package/build/handlers/index.js.map +0 -1
  138. package/build/index.d.ts +0 -1
  139. package/build/index.js +0 -8
  140. package/build/index.js.map +0 -1
  141. package/build/instructions/AddressResolver.js +0 -32
  142. package/build/instructions/AddressResolver.js.map +0 -1
  143. package/build/instructions/ControlInstructions.js +0 -23
  144. package/build/instructions/ControlInstructions.js.map +0 -1
  145. package/build/instructions/EndInstruction.js +0 -11
  146. package/build/instructions/EndInstruction.js.map +0 -1
  147. package/build/instructions/InstructionBase.js +0 -21
  148. package/build/instructions/InstructionBase.js.map +0 -1
  149. package/build/instructions/JumpInstruction.js +0 -22
  150. package/build/instructions/JumpInstruction.js.map +0 -1
  151. package/build/instructions/OperationInstruction.js +0 -11
  152. package/build/instructions/OperationInstruction.js.map +0 -1
  153. package/build/instructions/SetCounterInstruction.js +0 -11
  154. package/build/instructions/SetCounterInstruction.js.map +0 -1
  155. package/build/instructions/SetInstruction.js +0 -11
  156. package/build/instructions/SetInstruction.js.map +0 -1
  157. package/build/instructions/ZeroSpaceInstruction.js +0 -11
  158. package/build/instructions/ZeroSpaceInstruction.js.map +0 -1
  159. package/build/instructions/index.js +0 -22
  160. package/build/instructions/index.js.map +0 -1
  161. package/build/macros/Blocks.js +0 -137
  162. package/build/macros/Blocks.js.map +0 -1
  163. package/build/macros/Draw.js +0 -34
  164. package/build/macros/Draw.js.map +0 -1
  165. package/build/macros/Function.d.ts +0 -12
  166. package/build/macros/Function.js +0 -20
  167. package/build/macros/Function.js.map +0 -1
  168. package/build/macros/Math.js +0 -57
  169. package/build/macros/Math.js.map +0 -1
  170. package/build/macros/Other.d.ts +0 -8
  171. package/build/macros/Other.js +0 -29
  172. package/build/macros/Other.js.map +0 -1
  173. package/build/macros/TypeFactory.d.ts +0 -8
  174. package/build/macros/TypeFactory.js +0 -22
  175. package/build/macros/TypeFactory.js.map +0 -1
  176. package/build/macros/index.d.ts +0 -5
  177. package/build/macros/index.js +0 -18
  178. package/build/macros/index.js.map +0 -1
  179. package/build/operators.js +0 -39
  180. package/build/operators.js.map +0 -1
  181. package/build/scopes/FunctionScope.d.ts +0 -5
  182. package/build/scopes/FunctionScope.js +0 -13
  183. package/build/scopes/FunctionScope.js.map +0 -1
  184. package/build/scopes/LoopScope.d.ts +0 -5
  185. package/build/scopes/LoopScope.js +0 -13
  186. package/build/scopes/LoopScope.js.map +0 -1
  187. package/build/scopes/Scope.d.ts +0 -36
  188. package/build/scopes/Scope.js +0 -93
  189. package/build/scopes/Scope.js.map +0 -1
  190. package/build/scopes/index.d.ts +0 -3
  191. package/build/scopes/index.js +0 -16
  192. package/build/scopes/index.js.map +0 -1
  193. package/build/types.d.ts +0 -49
  194. package/build/types.js +0 -24
  195. package/build/types.js.map +0 -1
  196. package/build/utils.js +0 -9
  197. package/build/utils.js.map +0 -1
  198. package/build/values/BaseValue.js +0 -102
  199. package/build/values/BaseValue.js.map +0 -1
  200. package/build/values/FunctionValue.js +0 -101
  201. package/build/values/FunctionValue.js.map +0 -1
  202. package/build/values/LiteralValue.js +0 -89
  203. package/build/values/LiteralValue.js.map +0 -1
  204. package/build/values/ObjectValue.d.ts +0 -17
  205. package/build/values/ObjectValue.js +0 -50
  206. package/build/values/ObjectValue.js.map +0 -1
  207. package/build/values/StoreValue.js +0 -31
  208. package/build/values/StoreValue.js.map +0 -1
  209. package/build/values/TempValue.js +0 -53
  210. package/build/values/TempValue.js.map +0 -1
  211. package/build/values/VoidValue.js +0 -31
  212. package/build/values/VoidValue.js.map +0 -1
  213. package/build/values/index.js +0 -19
  214. package/build/values/index.js.map +0 -1
  215. package/dist/bundle.js +0 -553
  216. package/docs/.nojekyll +0 -0
  217. package/docs/_coverpage.md +0 -8
  218. package/docs/_sidebar.md +0 -3
  219. package/docs/data-types.md +0 -56
  220. package/docs/getting-started.md +0 -19
  221. package/docs/index.html +0 -41
  222. package/docs/mlogjs.png +0 -0
  223. package/mlogjs.d.ts +0 -72
  224. package/tsconfig.json +0 -22
  225. package/webpack.config.js +0 -22
@@ -1,16 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./Scope"), exports);
14
- __exportStar(require("./FunctionScope"), exports);
15
- __exportStar(require("./LoopScope"), exports);
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAuB;AACvB,kDAA+B;AAC/B,8CAA2B"}
package/build/types.d.ts DELETED
@@ -1,49 +0,0 @@
1
- export * as es from "estree";
2
- import { Compiler } from "./Compiler";
3
- import { AddressResolver } from "./instructions";
4
- import { LeftRightOperator, UnaryOperator, UpdateOperator } from "./operators";
5
- export interface IInstruction {
6
- hidden: boolean;
7
- resolve(i: number): void;
8
- }
9
- export declare type THandler = (compiler: Compiler, scope: IScope, node: any, arg: any) => TValueInstructions;
10
- export interface IScope {
11
- parent: IScope;
12
- data: {};
13
- name: string;
14
- inst: IInstruction[];
15
- break: AddressResolver;
16
- continue: AddressResolver;
17
- function: IFunctionValue;
18
- ntemp: number;
19
- createScope(): IScope;
20
- createFunction(name: string, stacked?: boolean): IScope;
21
- has(name: string): boolean;
22
- get(name: string): IValue;
23
- set(name: string, value: IValue): IValue;
24
- hardSet(name: string, value: IValue): IValue;
25
- make(name: string, storeName: string): IValue;
26
- copy(): IScope;
27
- }
28
- export declare type IValue = {
29
- [k in UnaryOperator]?: (scope: IScope) => TValueInstructions;
30
- } & {
31
- [k in UpdateOperator]?: (scope: IScope, prefix: boolean) => TValueInstructions;
32
- } & {
33
- [k in LeftRightOperator]?: (scope: IScope, value: IValue) => TValueInstructions;
34
- } & {
35
- scope: IScope;
36
- constant: boolean;
37
- macro: boolean;
38
- eval(scope: IScope): TValueInstructions;
39
- call(scope: IScope, args: IValue[]): TValueInstructions;
40
- get(scope: IScope, name: IValue): TValueInstructions;
41
- };
42
- export declare type TLiteral = string | number;
43
- export interface IBindableValue extends IValue {
44
- data: TLiteral;
45
- }
46
- export interface IFunctionValue extends IValue {
47
- return(scope: IScope, argument: IValue): TValueInstructions;
48
- }
49
- export declare type TValueInstructions = [IValue, IInstruction[]];
package/build/types.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.es = void 0;
23
- exports.es = __importStar(require("estree"));
24
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6B"}
package/build/utils.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nodeName = void 0;
4
- function nodeName(node) {
5
- const { line, column } = node.loc.start;
6
- return line + ":" + column;
7
- }
8
- exports.nodeName = nodeName;
9
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,QAAQ,CAAC,IAAa;IAClC,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACrC,OAAO,IAAI,GAAG,GAAG,GAAG,MAAM,CAAA;AAC9B,CAAC;AAHD,4BAGC"}
@@ -1,102 +0,0 @@
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
- [...inst, new instructions_1.OperationInstruction("sub", temp, new _1.LiteralValue(scope, 0), that)],
14
- ];
15
- }
16
- }
17
- exports.BaseValue = BaseValue;
18
- const operatorMap = {
19
- "==": "equal",
20
- "===": "strictEqual",
21
- "!=": "notEqual",
22
- "!==": "notEqual",
23
- "<": "lessThan",
24
- ">": "greaterThan",
25
- "<=": "lessThanEq",
26
- ">=": "greaterThanEq",
27
- "+": "add",
28
- "-": "sub",
29
- "*": "mul",
30
- "/": "div",
31
- "%": "mod",
32
- "**": "pow",
33
- "|": "or",
34
- "&": "and",
35
- "^": "xor",
36
- ">>": "shr",
37
- ">>>": "shr",
38
- "<<": "shl",
39
- "&&": "land",
40
- "||": "or",
41
- };
42
- for (const key in operatorMap) {
43
- const kind = operatorMap[key];
44
- BaseValue.prototype[key] = function (scope, value) {
45
- const [left, leftInst] = this.eval(scope);
46
- const [right, rightInst] = value.eval(scope);
47
- const temp = new _1.TempValue(scope);
48
- return [
49
- temp,
50
- [...leftInst, ...rightInst, new instructions_1.OperationInstruction(kind, temp, left, right)],
51
- ];
52
- };
53
- }
54
- const unaryOperatorMap = {
55
- "!": "not",
56
- "~": "flip",
57
- };
58
- for (const key in unaryOperatorMap) {
59
- const name = unaryOperatorMap[key];
60
- BaseValue.prototype[key] = function (scope) {
61
- const [that, inst] = this.eval(scope);
62
- const temp = new _1.TempValue(scope);
63
- return [temp, [...inst, new instructions_1.OperationInstruction(name, temp, that)]];
64
- };
65
- }
66
- const assignmentToBinary = {
67
- "+=": "+",
68
- "-=": "-",
69
- "*=": "*",
70
- "/=": "/",
71
- "%=": "%",
72
- "**=": "**",
73
- "|=": "|",
74
- "&=": "&",
75
- "^=": "^",
76
- ">>=": ">>",
77
- ">>>=": ">>>",
78
- "<<=": "<<",
79
- "&&=": "&&",
80
- "||=": "||",
81
- };
82
- for (const op in assignmentToBinary) {
83
- BaseValue.prototype[op] = function (scope, value) {
84
- const [opValue, opInst] = this[assignmentToBinary[op]](scope, value);
85
- const [retValue, retInst] = this["="](scope, opValue);
86
- return [retValue, [...opInst, ...retInst]];
87
- };
88
- }
89
- for (const key of operators_1.updateOperators) {
90
- BaseValue.prototype[key] = function (scope, prefix) {
91
- let [ret, inst] = this.eval(scope);
92
- if (!prefix) {
93
- const temp = new _1.TempValue(scope);
94
- const [tempValue, tempInst] = temp["="](scope, ret);
95
- ret = tempValue;
96
- inst.push(...tempInst);
97
- }
98
- const kind = key === "++" ? "+=" : "-=";
99
- return [ret, [...inst, ...this[kind](scope, new _1.LiteralValue(scope, 1))[1]]];
100
- };
101
- }
102
- //# sourceMappingURL=BaseValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseValue.js","sourceRoot":"","sources":["../../src/values/BaseValue.ts"],"names":[],"mappings":"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"}
@@ -1,101 +0,0 @@
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 = [new instructions_1.AddressResolver(this.addr), ...this.c.handle(this.scope, this.body)[1]];
35
- this.inst.push(new instructions_1.SetCounterInstruction(this.ret));
36
- }
37
- normalReturn(scope, arg) {
38
- const argInst = arg ? this.temp["="](scope, arg)[1] : [];
39
- return [null, [...argInst, new instructions_1.SetCounterInstruction(this.ret)]];
40
- }
41
- normalCall(scope, args) {
42
- if (!this.bundled)
43
- this.scope.inst.push(...this.inst);
44
- this.bundled = true;
45
- const callAddressLiteral = new LiteralValue_1.LiteralValue(scope, null);
46
- const inst = this.paramStores
47
- .map((param, i) => param["="](scope, args[i])[1])
48
- .reduce((s, c) => s.concat(c), [])
49
- .concat(...this.ret["="](scope, callAddressLiteral)[1], new instructions_1.JumpInstruction(this.addr, instructions_1.EJumpKind.Always), new instructions_1.AddressResolver(callAddressLiteral));
50
- return [this.temp, inst];
51
- }
52
- inlineReturn(scope, arg) {
53
- const argInst = arg ? this.inlineTemp["="](scope, arg)[1] : [];
54
- return [null, [...argInst, new instructions_1.ReturnInstruction(this.inlineEnd)]];
55
- }
56
- inlineCall(scope, args) {
57
- // create return value
58
- this.inlineTemp = new TempValue_1.TempValue(scope);
59
- this.inlineEnd = new LiteralValue_1.LiteralValue(scope, null);
60
- // make a copy of the function scope
61
- const fnScope = this.scope.copy();
62
- // hard set variables within the function scope
63
- this.paramNames.forEach((name, i) => fnScope.hardSet(name, args[i]));
64
- this.tryingInline = true;
65
- let inst = this.c.handle(fnScope, this.body)[1];
66
- this.tryingInline = false;
67
- // removing useless instruction
68
- // get the last instructions
69
- // const [jump] = inst.slice(-1);
70
- // if (jump instanceof JumpInstruction) {
71
- // // remove useless jump
72
- // if (jump.args[1] === this.inlineEnd) inst.pop();
73
- // }
74
- inst.push(new instructions_1.AddressResolver(this.inlineEnd));
75
- // return the function value
76
- return [this.inlineTemp, inst];
77
- }
78
- call(scope, args) {
79
- if (args.length !== this.paramStores.length)
80
- throw new Error("Cannot call: argument count not matching.");
81
- const inlineCall = this.inlineCall(scope, args);
82
- const inlineSize = inlineCall[1].filter((i) => !i.hidden).length;
83
- if (this.inline || inlineSize <= this.callSize)
84
- return inlineCall;
85
- return this.normalCall(scope, args);
86
- }
87
- return(scope, arg) {
88
- if (arg && arg.macro) {
89
- this.inline = true;
90
- return [null, []];
91
- }
92
- if (this.inline || this.tryingInline)
93
- return this.inlineReturn(scope, arg);
94
- return this.normalReturn(scope, arg);
95
- }
96
- eval(scope) {
97
- return [this, []];
98
- }
99
- }
100
- exports.FunctionValue = FunctionValue;
101
- //# sourceMappingURL=FunctionValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FunctionValue.js","sourceRoot":"","sources":["../../src/values/FunctionValue.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
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) => Math.pow(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
- ;
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
- }
89
- //# sourceMappingURL=LiteralValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiteralValue.js","sourceRoot":"","sources":["../../src/values/LiteralValue.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { IScope, IValue, TValueInstructions } from "../types";
2
- import { LiteralValue } from "./LiteralValue";
3
- import { VoidValue } from "./VoidValue";
4
- export declare class ObjectValue extends VoidValue {
5
- constant: boolean;
6
- macro: boolean;
7
- data: {
8
- [k: string]: IValue;
9
- };
10
- constructor(scope: IScope, data?: {
11
- [k: string]: IValue;
12
- });
13
- typeof(scope: IScope): TValueInstructions;
14
- get(scope: IScope, key: LiteralValue): TValueInstructions;
15
- eval(scope: IScope): TValueInstructions;
16
- call(scope: IScope, args: IValue[]): TValueInstructions;
17
- }
@@ -1,50 +0,0 @@
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
- }
50
- //# sourceMappingURL=ObjectValue.js.map
@@ -1 +0,0 @@
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;IAKzC,YAAY,KAAa,EAAE,OAAgC,EAAE;QAC5D,KAAK,CAAC,KAAK,CAAC,CAAC;QALd,aAAQ,GAAG,IAAI,CAAC;QAChB,UAAK,GAAG,IAAI,CAAC;QAKZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,OAAO,CAAC,IAAI,2BAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QACnC,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;IAChC,CAAC;IAED,IAAI,CAAC,KAAa;QACjB,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;IAC9B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAc;QACjC,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;IAChC,CAAC;CACD;AAjCD,kCAiCC;AAED,KAAK,MAAM,EAAE,IAAI,qBAAS,EAAE;IAC3B,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,UAA6B,GAAG,IAAW;QACtE,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,CAAA;QAC7B,aAAa;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;CACF"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StoreValue = void 0;
4
- const _1 = require(".");
5
- const instructions_1 = require("../instructions");
6
- class StoreValue extends _1.BaseValue {
7
- constructor(scope, name) {
8
- super(scope);
9
- this.constant = false;
10
- this.name = name;
11
- }
12
- typeof(scope) {
13
- return [new _1.LiteralValue(scope, "store"), []];
14
- }
15
- "="(scope, value) {
16
- if (this.constant)
17
- throw new Error(`Cannot assign to unmutable store '${this.name}'.`);
18
- if (value instanceof _1.TempValue && value.canProxy)
19
- return value.proxy(this);
20
- const [evalValue, evalInst] = value.eval(scope);
21
- return [this, [...evalInst, new instructions_1.SetInstruction(this, evalValue)]];
22
- }
23
- eval(scope) {
24
- return [this, []];
25
- }
26
- toString() {
27
- return this.name;
28
- }
29
- }
30
- exports.StoreValue = StoreValue;
31
- //# sourceMappingURL=StoreValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreValue.js","sourceRoot":"","sources":["../../src/values/StoreValue.ts"],"names":[],"mappings":";;;AAAA,wBAAuD;AACvD,kDAAiD;AAIjD,MAAa,UAAW,SAAQ,YAAS;IAGxC,YAAY,KAAa,EAAE,IAAY;QACtC,KAAK,CAAC,KAAK,CAAC,CAAC;QAFd,aAAQ,GAAG,KAAK,CAAC;QAGhB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,OAAO,CAAC,IAAI,eAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,KAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACvF,IAAI,KAAK,YAAY,YAAS,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,IAAI,6BAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,KAAa;QACjB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnB,CAAC;IACD,QAAQ;QACP,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;CACD;AAxBD,gCAwBC"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TempValue = void 0;
4
- const instructions_1 = require("../instructions");
5
- const operators_1 = require("../operators");
6
- const _1 = require("./");
7
- const LiteralValue_1 = require("./LiteralValue");
8
- class TempValue extends _1.StoreValue {
9
- constructor(scope, name) {
10
- super(scope, name !== null && name !== void 0 ? name : "t" + scope.ntemp + (scope.name ? ":" + scope.name : ""));
11
- this.canProxy = true;
12
- if (!name)
13
- scope.ntemp++;
14
- }
15
- eval(scope) {
16
- return super.eval(scope);
17
- }
18
- "="(scope, value) {
19
- if (this.proxied) {
20
- this.noProxy();
21
- return [this, [new instructions_1.SetInstruction(this, value)]];
22
- }
23
- if (value instanceof LiteralValue_1.LiteralValue && this.canProxy) {
24
- return this.proxy(value);
25
- }
26
- return super["="](scope, value);
27
- }
28
- proxy(value) {
29
- if (!this.canProxy) {
30
- console.log(this.proxied);
31
- throw new Error("Cannot proxy (canProxy = false).");
32
- }
33
- if (this.proxied)
34
- throw new Error("Cannot proxy multiple times.");
35
- this.proxied = value;
36
- this.canProxy = false;
37
- for (const key of [...operators_1.operators, "eval", "get", "call", "toString", "proxy"]) {
38
- if (key !== "=" && key in value)
39
- this[key] = (...args) => value[key].apply(value, args);
40
- }
41
- this.setInst = new instructions_1.SetInstruction(this, value);
42
- this.setInst.hidden = true;
43
- return [this, [this.setInst]];
44
- }
45
- noProxy() {
46
- this.setInst.hidden = false;
47
- for (const key of [...operators_1.operators, "eval", "get", "call", "toString", "proxy"]) {
48
- this[key] = TempValue.prototype[key];
49
- }
50
- }
51
- }
52
- exports.TempValue = TempValue;
53
- //# sourceMappingURL=TempValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TempValue.js","sourceRoot":"","sources":["../../src/values/TempValue.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AACjD,4CAAyC;AAEzC,yBAAgC;AAChC,iDAA8C;AAE9C,MAAa,SAAU,SAAQ,aAAU;IAKxC,YAAY,KAAa,EAAE,IAAa;QACvC,KAAK,CAAC,KAAK,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAJhF,aAAQ,GAAG,IAAI,CAAC;QAKf,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,KAAa;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAGD,GAAG,CAAC,KAAa,EAAE,KAAa;QAC/B,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,6BAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;SAChD;QACD,IAAI,KAAK,YAAY,2BAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACzB;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACnD;QACD,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,qBAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAU,EAAE;YACtF,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,KAAK;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC7F;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;QAC1B,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACN,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;QAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,qBAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAU,EAAE;YACtF,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;SACpC;IACF,CAAC;CACD;AAhDD,8BAgDC"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VoidValue = void 0;
4
- const operators_1 = require("../operators");
5
- class VoidValue {
6
- constructor(scope) {
7
- this.constant = false;
8
- this.macro = false;
9
- this.scope = scope;
10
- }
11
- eval(scope) {
12
- throw new Error(`${this} cannot eval.`);
13
- }
14
- call(scope, args) {
15
- throw new Error(`${this} cannot call.`);
16
- }
17
- get(scope, name) {
18
- throw new Error(`${this} cannot get.`);
19
- }
20
- toString() {
21
- return "void";
22
- }
23
- }
24
- exports.VoidValue = VoidValue;
25
- for (const key of operators_1.operators) {
26
- VoidValue.prototype[key] = function () {
27
- console.log(this);
28
- throw new Error(`${this} cannot '${key}' operation.`);
29
- };
30
- }
31
- //# sourceMappingURL=VoidValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VoidValue.js","sourceRoot":"","sources":["../../src/values/VoidValue.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAEzC,MAAa,SAAS;IAIrB,YAAY,KAAa;QAFzB,aAAQ,GAAG,KAAK,CAAC;QACjB,UAAK,GAAG,KAAK,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,KAAa;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,KAAa,EAAE,IAAc;QACjC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;IACzC,CAAC;IACD,GAAG,CAAC,KAAa,EAAE,IAAY;QAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;IACxC,CAAC;IACD,QAAQ;QACP,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAnBD,8BAmBC;AAED,KAAK,MAAM,GAAG,IAAI,qBAAS,EAAE;IAC5B,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,YAAY,GAAG,cAAc,CAAC,CAAC;IACvD,CAAC,CAAC;CACF"}