mlogjs 0.2.0 → 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.
- package/LICENSE +21 -21
- package/README.md +68 -18
- package/build/Compiler.js +32 -47
- package/build/Compiler.js.map +1 -1
- package/build/CompilerError.js +11 -0
- package/build/CompilerError.js.map +1 -0
- package/build/Scope.js +17 -7
- package/build/Scope.js.map +1 -1
- package/build/bin.js +45 -12
- package/build/bin.js.map +1 -1
- package/build/handlers/BlockStatement.js.map +1 -1
- package/build/handlers/CallExpression.js.map +1 -1
- package/build/handlers/File.js +9 -0
- package/build/handlers/File.js.map +1 -0
- package/build/handlers/ForStatement.js.map +1 -1
- package/build/handlers/Function.js +20 -9
- package/build/handlers/Function.js.map +1 -1
- package/build/handlers/IfStatement.js.map +1 -1
- package/build/handlers/Literal.js +11 -14
- package/build/handlers/Literal.js.map +1 -1
- package/build/handlers/Object.js +16 -5
- package/build/handlers/Object.js.map +1 -1
- package/build/handlers/OperationExpressions.js +6 -1
- package/build/handlers/OperationExpressions.js.map +1 -1
- package/build/handlers/Program.js +1 -1
- package/build/handlers/Program.js.map +1 -1
- package/build/handlers/Statements.js.map +1 -1
- package/build/handlers/TemplateExpression.js.map +1 -1
- package/build/handlers/VariableDeclaration.js +25 -9
- package/build/handlers/VariableDeclaration.js.map +1 -1
- package/build/handlers/WhileStatement.js.map +1 -1
- package/build/handlers/index.js +1 -0
- package/build/handlers/index.js.map +1 -1
- package/build/index.js +5 -5
- package/build/index.js.map +1 -1
- package/build/initScope.js +40 -0
- package/build/initScope.js.map +1 -0
- package/build/instructions/InstructionBase.js +1 -1
- package/build/instructions/InstructionBase.js.map +1 -1
- package/build/instructions/JumpInstruction.js +1 -1
- package/build/instructions/JumpInstruction.js.map +1 -1
- package/build/instructions/OperationInstruction.js.map +1 -1
- package/build/macros/Building.js +16 -8
- package/build/macros/Building.js.map +1 -1
- package/build/macros/Function.js +1 -1
- package/build/macros/Function.js.map +1 -1
- package/build/macros/Math.js +13 -8
- package/build/macros/Math.js.map +1 -1
- package/build/macros/Memory.js +7 -5
- package/build/macros/Memory.js.map +1 -1
- package/build/macros/Namespace.js +24 -11
- package/build/macros/Namespace.js.map +1 -1
- package/build/macros/Other.js +2 -1
- package/build/macros/Other.js.map +1 -1
- package/build/macros/RawValue.js +2 -1
- package/build/macros/RawValue.js.map +1 -1
- package/build/macros/commands/{control.js → Control.js} +4 -3
- package/build/macros/commands/Control.js.map +1 -0
- package/build/macros/commands/Draw.js +4 -3
- package/build/macros/commands/Draw.js.map +1 -1
- package/build/macros/commands/DrawFlush.js +2 -1
- package/build/macros/commands/DrawFlush.js.map +1 -1
- package/build/macros/commands/GetLink.js +8 -4
- package/build/macros/commands/GetLink.js.map +1 -1
- package/build/macros/commands/Lookup.js +5 -4
- package/build/macros/commands/Lookup.js.map +1 -1
- package/build/macros/commands/Print.js +5 -1
- package/build/macros/commands/Print.js.map +1 -1
- package/build/macros/commands/PrintFlush.js +2 -1
- package/build/macros/commands/PrintFlush.js.map +1 -1
- package/build/macros/commands/Radar.js +16 -12
- package/build/macros/commands/Radar.js.map +1 -1
- package/build/macros/commands/Sensor.js +4 -3
- package/build/macros/commands/Sensor.js.map +1 -1
- package/build/macros/commands/UnitBind.js +2 -1
- package/build/macros/commands/UnitBind.js.map +1 -1
- package/build/macros/commands/UnitControl.js +13 -8
- package/build/macros/commands/UnitControl.js.map +1 -1
- package/build/macros/commands/UnitLocate.js +29 -8
- package/build/macros/commands/UnitLocate.js.map +1 -1
- package/build/macros/commands/UnitRadar.js +17 -10
- package/build/macros/commands/UnitRadar.js.map +1 -1
- package/build/macros/commands/Wait.js +2 -1
- package/build/macros/commands/Wait.js.map +1 -1
- package/build/operators.js.map +1 -1
- package/build/types.js +1 -1
- package/build/types.js.map +1 -1
- package/build/utils.js +7 -2
- package/build/utils.js.map +1 -1
- package/build/values/BaseValue.js +5 -5
- package/build/values/BaseValue.js.map +1 -1
- package/build/values/FunctionValue.js +25 -13
- package/build/values/FunctionValue.js.map +1 -1
- package/build/values/LiteralValue.js +5 -4
- package/build/values/LiteralValue.js.map +1 -1
- package/build/values/ObjectValue.js +11 -6
- package/build/values/ObjectValue.js.map +1 -1
- package/build/values/StoreValue.js +3 -2
- package/build/values/StoreValue.js.map +1 -1
- package/build/values/TempValue.js +18 -7
- package/build/values/TempValue.js.map +1 -1
- package/build/values/VoidValue.js +8 -7
- package/build/values/VoidValue.js.map +1 -1
- package/dist/bin.cjs +82 -0
- package/dist/bin.cjs.map +1 -0
- package/dist/index.cjs +2187 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +2162 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types/Compiler.d.ts +26 -0
- package/dist/types/CompilerError.d.ts +9 -0
- package/dist/types/Scope.d.ts +24 -0
- package/dist/types/bin.d.ts +1 -0
- package/dist/types/handlers/BlockStatement.d.ts +2 -0
- package/dist/types/handlers/CallExpression.d.ts +3 -0
- package/dist/types/handlers/File.d.ts +2 -0
- package/dist/types/handlers/ForStatement.d.ts +2 -0
- package/{build → dist/types}/handlers/Function.d.ts +1 -0
- package/{build → dist/types}/handlers/Identifier.d.ts +0 -0
- package/dist/types/handlers/IfStatement.d.ts +2 -0
- package/dist/types/handlers/Literal.d.ts +5 -0
- package/{build → dist/types}/handlers/Object.d.ts +2 -0
- package/{build → dist/types}/handlers/OperationExpressions.d.ts +1 -0
- package/dist/types/handlers/Program.d.ts +2 -0
- package/dist/types/handlers/Statements.d.ts +5 -0
- package/dist/types/handlers/TemplateExpression.d.ts +2 -0
- package/dist/types/handlers/Typescript.d.ts +7 -0
- package/dist/types/handlers/VariableDeclaration.d.ts +3 -0
- package/dist/types/handlers/WhileStatement.d.ts +3 -0
- package/{build → dist/types}/handlers/index.d.ts +2 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/initScope.d.ts +5 -0
- package/{build → dist/types}/instructions/AddressResolver.d.ts +1 -1
- package/{build → dist/types}/instructions/ControlInstructions.d.ts +0 -3
- package/{build → dist/types}/instructions/EndInstruction.d.ts +0 -0
- package/{build → dist/types}/instructions/InstructionBase.d.ts +4 -4
- package/{build → dist/types}/instructions/JumpInstruction.d.ts +1 -1
- package/{build → dist/types}/instructions/OperationInstruction.d.ts +1 -1
- package/{build → dist/types}/instructions/SetCounterInstruction.d.ts +0 -0
- package/{build → dist/types}/instructions/SetInstruction.d.ts +1 -0
- package/{build → dist/types}/instructions/ZeroSpaceInstruction.d.ts +0 -0
- package/{build → dist/types}/instructions/index.d.ts +0 -0
- package/{build → dist/types}/macros/Building.d.ts +1 -2
- package/dist/types/macros/Entities.d.ts +11 -0
- package/dist/types/macros/Function.d.ts +13 -0
- package/{build/macros/Draw.d.ts → dist/types/macros/GetGlobal.d.ts} +1 -1
- package/{build → dist/types}/macros/Math.d.ts +0 -0
- package/{build → dist/types}/macros/Memory.d.ts +0 -0
- package/{build → dist/types}/macros/Namespace.d.ts +0 -5
- package/{build → dist/types}/macros/Other.d.ts +0 -0
- package/{build → dist/types}/macros/RawValue.d.ts +0 -0
- package/{build/macros/commands/Asm.d.ts → dist/types/macros/commands/Control.d.ts} +1 -1
- package/{build/macros/helpers/GetVar.d.ts → dist/types/macros/commands/Draw.d.ts} +1 -1
- package/{build → dist/types}/macros/commands/DrawFlush.d.ts +1 -1
- package/{build/macros/commands/Draw.d.ts → dist/types/macros/commands/End.d.ts} +1 -1
- package/{build → dist/types}/macros/commands/GetLink.d.ts +0 -0
- package/{build → dist/types}/macros/commands/Lookup.d.ts +0 -0
- package/{build → dist/types}/macros/commands/Print.d.ts +1 -1
- package/{build → dist/types}/macros/commands/PrintFlush.d.ts +1 -1
- package/{build → dist/types}/macros/commands/Radar.d.ts +0 -0
- package/{build → dist/types}/macros/commands/Sensor.d.ts +0 -0
- package/{build → dist/types}/macros/commands/UnitBind.d.ts +1 -1
- package/dist/types/macros/commands/UnitControl.d.ts +5 -0
- package/{build → dist/types}/macros/commands/UnitLocate.d.ts +0 -0
- package/{build → dist/types}/macros/commands/UnitRadar.d.ts +0 -0
- package/{build → dist/types}/macros/commands/Wait.d.ts +1 -1
- package/{build → dist/types}/macros/commands/index.d.ts +1 -0
- package/{build → dist/types}/macros/index.d.ts +0 -1
- package/{build → dist/types}/operators.d.ts +1 -1
- package/dist/types/types.d.ts +209 -0
- package/dist/types/utils.d.ts +24 -0
- package/dist/types/values/BaseValue.d.ts +7 -0
- package/dist/types/values/DestructuringValue.d.ts +17 -0
- package/{build → dist/types}/values/FunctionValue.d.ts +21 -8
- package/{build → dist/types}/values/LiteralValue.d.ts +2 -1
- package/dist/types/values/ObjectValue.d.ts +23 -0
- package/dist/types/values/SenseableValue.d.ts +23 -0
- package/dist/types/values/StackValue.d.ts +16 -0
- package/{build → dist/types}/values/StoreValue.d.ts +7 -3
- package/{build → dist/types}/values/TempValue.d.ts +9 -2
- package/dist/types/values/ValueOwner.d.ts +27 -0
- package/dist/types/values/VoidValue.d.ts +16 -0
- package/{build → dist/types}/values/index.d.ts +2 -1
- package/lib/commands.d.ts +532 -326
- package/lib/eslib/index.d.ts +3 -3
- package/lib/eslib/lib.d.ts +9 -9
- package/lib/eslib/lib.es2015.collection.d.ts +89 -89
- package/lib/eslib/lib.es2015.core.d.ts +16 -16
- package/lib/eslib/lib.es2015.d.ts +30 -30
- package/lib/eslib/lib.es2015.generator.d.ts +79 -79
- package/lib/eslib/lib.es2015.iterable.d.ts +70 -70
- package/lib/eslib/lib.es5.d.ts +295 -295
- package/lib/eslib/lib.es6.d.ts +18 -18
- package/lib/globals.d.ts +341 -328
- package/lib/helpers.d.ts +23 -23
- package/lib/index.d.ts +7 -7
- package/lib/kinds.d.ts +36 -36
- package/lib/memory.d.ts +17 -17
- package/lib/traits.d.ts +141 -121
- package/lib/util.d.ts +32 -32
- package/package.json +68 -48
- package/build/Compiler.d.ts +0 -18
- package/build/Scope.d.ts +0 -26
- package/build/bin.d.ts +0 -2
- package/build/handlers/BlockStatement.d.ts +0 -2
- package/build/handlers/CallExpression.d.ts +0 -3
- package/build/handlers/ForStatement.d.ts +0 -2
- package/build/handlers/IfStatement.d.ts +0 -2
- package/build/handlers/Literal.d.ts +0 -2
- package/build/handlers/Program.d.ts +0 -2
- package/build/handlers/Statements.d.ts +0 -5
- package/build/handlers/TemplateExpression.d.ts +0 -2
- package/build/handlers/VariableDeclaration.d.ts +0 -3
- package/build/handlers/WhileStatement.d.ts +0 -2
- package/build/index.d.ts +0 -1
- package/build/macros/Blocks.d.ts +0 -5
- package/build/macros/Blocks.js +0 -143
- package/build/macros/Blocks.js.map +0 -1
- package/build/macros/Draw.js +0 -39
- package/build/macros/Draw.js.map +0 -1
- package/build/macros/Function.d.ts +0 -12
- package/build/macros/Items.d.ts +0 -5
- package/build/macros/Items.js +0 -20
- package/build/macros/Items.js.map +0 -1
- package/build/macros/Liquids.d.ts +0 -5
- package/build/macros/Liquids.js +0 -18
- package/build/macros/Liquids.js.map +0 -1
- package/build/macros/Symbol.d.ts +0 -0
- package/build/macros/Symbol.js +0 -1
- package/build/macros/Symbol.js.map +0 -1
- package/build/macros/SymbolNamespace.d.ts +0 -0
- package/build/macros/SymbolNamespace.js +0 -1
- package/build/macros/SymbolNamespace.js.map +0 -1
- package/build/macros/TypeFactory.d.ts +0 -8
- package/build/macros/TypeFactory.js +0 -22
- package/build/macros/TypeFactory.js.map +0 -1
- package/build/macros/Units.d.ts +0 -5
- package/build/macros/Units.js +0 -18
- package/build/macros/Units.js.map +0 -1
- package/build/macros/Vars.d.ts +0 -5
- package/build/macros/Vars.js +0 -18
- package/build/macros/Vars.js.map +0 -1
- package/build/macros/commands/Asm.js +0 -21
- package/build/macros/commands/Asm.js.map +0 -1
- package/build/macros/commands/UnitControl.d.ts +0 -5
- package/build/macros/commands/control.d.ts +0 -5
- package/build/macros/commands/control.js.map +0 -1
- package/build/macros/commands/io.d.ts +0 -8
- package/build/macros/commands/io.js +0 -47
- package/build/macros/commands/io.js.map +0 -1
- package/build/macros/helpers/GetBuilding.d.ts +0 -5
- package/build/macros/helpers/GetBuilding.js +0 -16
- package/build/macros/helpers/GetBuilding.js.map +0 -1
- package/build/macros/helpers/GetVar.js +0 -16
- package/build/macros/helpers/GetVar.js.map +0 -1
- package/build/macros/helpers/index.d.ts +0 -2
- package/build/macros/helpers/index.js +0 -15
- package/build/macros/helpers/index.js.map +0 -1
- package/build/types.d.ts +0 -49
- package/build/utils.d.ts +0 -3
- package/build/values/BaseValue.d.ts +0 -5
- package/build/values/ObjectValue.d.ts +0 -17
- package/build/values/VoidValue.d.ts +0 -11
- package/dist/bundle.js +0 -1
|
@@ -5,20 +5,36 @@ const instructions_1 = require("../../instructions");
|
|
|
5
5
|
const __1 = require("..");
|
|
6
6
|
const values_1 = require("../../values");
|
|
7
7
|
const Building_1 = require("../Building");
|
|
8
|
+
const CompilerError_1 = require("../../CompilerError");
|
|
8
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
|
+
];
|
|
9
21
|
class UnitLocate extends __1.MacroFunction {
|
|
10
22
|
constructor(scope) {
|
|
11
23
|
super(scope, (find, ...args) => {
|
|
12
24
|
if (!(find instanceof values_1.LiteralValue && typeof find.data === "string"))
|
|
13
|
-
throw new
|
|
25
|
+
throw new CompilerError_1.CompilerError("The unitLocate find must be a string literal");
|
|
14
26
|
if (!validFinds.includes(find.data))
|
|
15
|
-
throw new
|
|
27
|
+
throw new CompilerError_1.CompilerError("Invalid find value");
|
|
16
28
|
if (args.some(value => !(value instanceof values_1.StoreValue || value instanceof values_1.LiteralValue)))
|
|
17
|
-
throw new
|
|
18
|
-
const outFound = new values_1.TempValue(scope);
|
|
19
|
-
const outX = new values_1.TempValue(scope);
|
|
20
|
-
const outY = new values_1.TempValue(scope);
|
|
21
|
-
const outBuilding = new
|
|
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
|
+
});
|
|
22
38
|
const outArgs = [outX, outY, outFound, outBuilding];
|
|
23
39
|
let inputArgs = [];
|
|
24
40
|
switch (find.data) {
|
|
@@ -29,6 +45,11 @@ class UnitLocate extends __1.MacroFunction {
|
|
|
29
45
|
}
|
|
30
46
|
case "building": {
|
|
31
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");
|
|
32
53
|
inputArgs = [find.data, group.data, enemy, "@copper"];
|
|
33
54
|
break;
|
|
34
55
|
}
|
|
@@ -43,7 +64,7 @@ class UnitLocate extends __1.MacroFunction {
|
|
|
43
64
|
0: outFound,
|
|
44
65
|
1: outX,
|
|
45
66
|
2: outY,
|
|
46
|
-
3:
|
|
67
|
+
3: outBuilding,
|
|
47
68
|
length: new values_1.LiteralValue(scope, find.data === "ore" ? 3 : 4),
|
|
48
69
|
}),
|
|
49
70
|
[new instructions_1.InstructionBase("ulocate", ...inputArgs, ...outArgs)],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitLocate.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitLocate.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAAgF;
|
|
1
|
+
{"version":3,"file":"UnitLocate.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitLocate.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ const instructions_1 = require("../../instructions");
|
|
|
5
5
|
const __1 = require("..");
|
|
6
6
|
const values_1 = require("../../values");
|
|
7
7
|
const Radar_1 = require("./Radar");
|
|
8
|
+
const CompilerError_1 = require("../../CompilerError");
|
|
9
|
+
const Namespace_1 = require("../Namespace");
|
|
8
10
|
class UnitRadar extends __1.MacroFunction {
|
|
9
11
|
constructor(scope) {
|
|
10
12
|
super(scope, (filter1, filter2, filter3, order, sort) => {
|
|
@@ -14,24 +16,29 @@ class UnitRadar extends __1.MacroFunction {
|
|
|
14
16
|
typeof filter2.data !== "string" ||
|
|
15
17
|
!(filter3 instanceof values_1.LiteralValue) ||
|
|
16
18
|
typeof filter3.data !== "string")
|
|
17
|
-
throw new
|
|
19
|
+
throw new CompilerError_1.CompilerError("The filters must be string literals");
|
|
18
20
|
if (!Radar_1.validRadarFilters.includes(filter1.data))
|
|
19
|
-
throw new
|
|
21
|
+
throw new CompilerError_1.CompilerError("Invalid value for filter1");
|
|
20
22
|
if (!Radar_1.validRadarFilters.includes(filter2.data))
|
|
21
|
-
throw new
|
|
23
|
+
throw new CompilerError_1.CompilerError("Invalid value for filter2");
|
|
22
24
|
if (!Radar_1.validRadarFilters.includes(filter3.data))
|
|
23
|
-
throw new
|
|
25
|
+
throw new CompilerError_1.CompilerError("Invalid value for filter3");
|
|
24
26
|
if (!(order instanceof values_1.LiteralValue || order instanceof values_1.StoreValue))
|
|
25
|
-
throw new
|
|
27
|
+
throw new CompilerError_1.CompilerError("The radar order must be a literal or a store");
|
|
26
28
|
if (!(sort instanceof values_1.LiteralValue) || typeof sort.data !== "string")
|
|
27
|
-
throw new
|
|
29
|
+
throw new CompilerError_1.CompilerError("The radar sort must be a string literal");
|
|
28
30
|
if (!Radar_1.validRadarSorts.includes(sort.data))
|
|
29
|
-
throw new
|
|
30
|
-
const
|
|
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
|
+
});
|
|
31
37
|
return [
|
|
32
|
-
|
|
38
|
+
outUnit,
|
|
33
39
|
[
|
|
34
|
-
new instructions_1.InstructionBase("uradar", filter1.data, filter2.data, filter3.data,
|
|
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),
|
|
35
42
|
],
|
|
36
43
|
];
|
|
37
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitRadar.js","sourceRoot":"","sources":["../../../src/macros/commands/UnitRadar.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,
|
|
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"}
|
|
@@ -4,12 +4,13 @@ exports.Wait = void 0;
|
|
|
4
4
|
const instructions_1 = require("../../instructions");
|
|
5
5
|
const __1 = require("..");
|
|
6
6
|
const values_1 = require("../../values");
|
|
7
|
+
const CompilerError_1 = require("../../CompilerError");
|
|
7
8
|
class Wait extends __1.MacroFunction {
|
|
8
9
|
constructor(scope) {
|
|
9
10
|
super(scope, seconds => {
|
|
10
11
|
if (!(seconds instanceof values_1.StoreValue) &&
|
|
11
12
|
!(seconds instanceof values_1.LiteralValue && typeof seconds.data === "number"))
|
|
12
|
-
throw new
|
|
13
|
+
throw new CompilerError_1.CompilerError("The wait seconds must be either a number literal or a store");
|
|
13
14
|
return [null, [new instructions_1.InstructionBase("wait", seconds)]];
|
|
14
15
|
});
|
|
15
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wait.js","sourceRoot":"","sources":["../../../src/macros/commands/Wait.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,0BAAmC;AAEnC,yCAAwD;
|
|
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"}
|
package/build/operators.js.map
CHANGED
|
@@ -1 +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,
|
|
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
CHANGED
|
@@ -24,5 +24,5 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.es = void 0;
|
|
27
|
-
exports.es = __importStar(require("
|
|
27
|
+
exports.es = __importStar(require("@babel/types"));
|
|
28
28
|
//# sourceMappingURL=types.js.map
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC"}
|
package/build/utils.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.camelToDashCase = exports.nodeName = void 0;
|
|
3
|
+
exports.camelToDashCase = exports.nodeName = exports.internalPrefix = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The prefix for internal variables inside the compiler output
|
|
6
|
+
*/
|
|
7
|
+
exports.internalPrefix = "&";
|
|
4
8
|
function nodeName(node) {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5
10
|
const { line, column } = node.loc.start;
|
|
6
|
-
return line
|
|
11
|
+
return `${line}:${column}`;
|
|
7
12
|
}
|
|
8
13
|
exports.nodeName = nodeName;
|
|
9
14
|
function camelToDashCase(name) {
|
package/build/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,QAAQ,CAAC,IAAa;IACpC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,
|
|
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"}
|
|
@@ -7,7 +7,7 @@ const _1 = require(".");
|
|
|
7
7
|
class BaseValue extends _1.VoidValue {
|
|
8
8
|
"u-"(scope) {
|
|
9
9
|
const [that, inst] = this.eval(scope);
|
|
10
|
-
const temp = new _1.TempValue(scope);
|
|
10
|
+
const temp = new _1.TempValue({ scope });
|
|
11
11
|
return [
|
|
12
12
|
temp,
|
|
13
13
|
[
|
|
@@ -47,7 +47,7 @@ for (const key in operatorMap) {
|
|
|
47
47
|
BaseValue.prototype[key] = function (scope, value) {
|
|
48
48
|
const [left, leftInst] = this.eval(scope);
|
|
49
49
|
const [right, rightInst] = value.eval(scope);
|
|
50
|
-
const temp = new _1.TempValue(scope);
|
|
50
|
+
const temp = new _1.TempValue({ scope });
|
|
51
51
|
return [
|
|
52
52
|
temp,
|
|
53
53
|
[
|
|
@@ -66,8 +66,8 @@ for (const key in unaryOperatorMap) {
|
|
|
66
66
|
const name = unaryOperatorMap[key];
|
|
67
67
|
BaseValue.prototype[key] = function (scope) {
|
|
68
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)]];
|
|
69
|
+
const temp = new _1.TempValue({ scope });
|
|
70
|
+
return [temp, [...inst, new instructions_1.OperationInstruction(name, temp, that, null)]];
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
const assignmentToBinary = {
|
|
@@ -97,7 +97,7 @@ for (const key of operators_1.updateOperators) {
|
|
|
97
97
|
BaseValue.prototype[key] = function (scope, prefix) {
|
|
98
98
|
let [ret, inst] = this.eval(scope);
|
|
99
99
|
if (!prefix) {
|
|
100
|
-
const temp = new _1.TempValue(scope);
|
|
100
|
+
const temp = new _1.TempValue({ scope });
|
|
101
101
|
const [tempValue, tempInst] = temp["="](scope, ret);
|
|
102
102
|
ret = tempValue;
|
|
103
103
|
inst.push(...tempInst);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseValue.js","sourceRoot":"","sources":["../../src/values/BaseValue.ts"],"names":[],"mappings":";;;AAAA,kDAAuD;AACvD,4CAMsB;AAEtB,wBAAuD;AAEvD,MAAa,SAAU,SAAQ,YAAS;IACtC,IAAI,CAAC,KAAa;QAChB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,YAAS,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseValue.js","sourceRoot":"","sources":["../../src/values/BaseValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FunctionValue = void 0;
|
|
4
|
+
const utils_1 = require("src/utils");
|
|
5
|
+
const CompilerError_1 = require("../CompilerError");
|
|
4
6
|
const instructions_1 = require("../instructions");
|
|
5
7
|
const LiteralValue_1 = require("./LiteralValue");
|
|
6
8
|
const StoreValue_1 = require("./StoreValue");
|
|
7
9
|
const TempValue_1 = require("./TempValue");
|
|
8
10
|
const VoidValue_1 = require("./VoidValue");
|
|
9
11
|
class FunctionValue extends VoidValue_1.VoidValue {
|
|
10
|
-
constructor(scope, name, paramNames, paramStores, body, c) {
|
|
12
|
+
constructor({ scope, name, paramNames, paramStores, body, c, renameable = false, }) {
|
|
11
13
|
super(scope);
|
|
12
14
|
this.constant = true;
|
|
13
15
|
this.macro = true;
|
|
14
16
|
this.bundled = false;
|
|
17
|
+
this.initialized = false;
|
|
15
18
|
this.name = name;
|
|
16
19
|
this.paramNames = paramNames;
|
|
17
20
|
this.paramStores = paramStores;
|
|
18
21
|
this.body = body;
|
|
19
22
|
this.c = c;
|
|
23
|
+
this.renameable = renameable;
|
|
20
24
|
this.callSize = paramStores.length + 2;
|
|
21
25
|
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
26
|
}
|
|
30
27
|
typeof(scope) {
|
|
31
28
|
return [new LiteralValue_1.LiteralValue(scope, "function"), []];
|
|
32
29
|
}
|
|
33
|
-
|
|
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}`);
|
|
34
37
|
this.inst = [
|
|
35
38
|
new instructions_1.AddressResolver(this.addr),
|
|
36
39
|
...this.c.handle(this.scope, this.body)[1],
|
|
@@ -58,14 +61,14 @@ class FunctionValue extends VoidValue_1.VoidValue {
|
|
|
58
61
|
}
|
|
59
62
|
inlineCall(scope, args) {
|
|
60
63
|
// create return value
|
|
61
|
-
this.inlineTemp = new TempValue_1.TempValue(scope);
|
|
64
|
+
this.inlineTemp = new TempValue_1.TempValue({ scope });
|
|
62
65
|
this.inlineEnd = new LiteralValue_1.LiteralValue(scope, null);
|
|
63
66
|
// make a copy of the function scope
|
|
64
67
|
const fnScope = this.scope.copy();
|
|
65
68
|
// hard set variables within the function scope
|
|
66
69
|
this.paramNames.forEach((name, i) => fnScope.hardSet(name, args[i]));
|
|
67
70
|
this.tryingInline = true;
|
|
68
|
-
|
|
71
|
+
const inst = this.c.handle(fnScope, this.body)[1];
|
|
69
72
|
this.tryingInline = false;
|
|
70
73
|
// removing useless instruction
|
|
71
74
|
// get the last instructions
|
|
@@ -79,8 +82,9 @@ class FunctionValue extends VoidValue_1.VoidValue {
|
|
|
79
82
|
return [this.inlineTemp, inst];
|
|
80
83
|
}
|
|
81
84
|
call(scope, args) {
|
|
85
|
+
this.ensureInit();
|
|
82
86
|
if (args.length !== this.paramStores.length)
|
|
83
|
-
throw new
|
|
87
|
+
throw new CompilerError_1.CompilerError("Cannot call: argument count not matching.");
|
|
84
88
|
const inlineCall = this.inlineCall(scope, args);
|
|
85
89
|
const inlineSize = inlineCall[1].filter(i => !i.hidden).length;
|
|
86
90
|
if (this.inline || inlineSize <= this.callSize)
|
|
@@ -88,6 +92,7 @@ class FunctionValue extends VoidValue_1.VoidValue {
|
|
|
88
92
|
return this.normalCall(scope, args);
|
|
89
93
|
}
|
|
90
94
|
return(scope, arg) {
|
|
95
|
+
this.ensureInit();
|
|
91
96
|
if (arg && arg.macro) {
|
|
92
97
|
this.inline = true;
|
|
93
98
|
return [null, []];
|
|
@@ -96,9 +101,16 @@ class FunctionValue extends VoidValue_1.VoidValue {
|
|
|
96
101
|
return this.inlineReturn(scope, arg);
|
|
97
102
|
return this.normalReturn(scope, arg);
|
|
98
103
|
}
|
|
99
|
-
eval(
|
|
104
|
+
eval(_scope) {
|
|
100
105
|
return [this, []];
|
|
101
106
|
}
|
|
107
|
+
rename(name) {
|
|
108
|
+
if (!this.renameable)
|
|
109
|
+
return;
|
|
110
|
+
this.name = name;
|
|
111
|
+
this.scope.name = name;
|
|
112
|
+
this.renameable = false;
|
|
113
|
+
}
|
|
102
114
|
}
|
|
103
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":";;;
|
|
1
|
+
{"version":3,"file":"FunctionValue.js","sourceRoot":"","sources":["../../src/values/FunctionValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LiteralValue = void 0;
|
|
4
4
|
const _1 = require(".");
|
|
5
|
+
const CompilerError_1 = require("../CompilerError");
|
|
5
6
|
const literalMethods = {
|
|
6
7
|
length: function (scope) {
|
|
7
8
|
if (typeof this.data !== "string")
|
|
8
|
-
throw new
|
|
9
|
+
throw new CompilerError_1.CompilerError("Length method only works on string literal values.");
|
|
9
10
|
return new LiteralValue(scope, this.data.length);
|
|
10
11
|
},
|
|
11
12
|
};
|
|
@@ -15,7 +16,7 @@ class LiteralValue extends _1.BaseValue {
|
|
|
15
16
|
this.constant = true;
|
|
16
17
|
this.data = data;
|
|
17
18
|
}
|
|
18
|
-
eval(
|
|
19
|
+
eval(_scope) {
|
|
19
20
|
return [this, []];
|
|
20
21
|
}
|
|
21
22
|
toString() {
|
|
@@ -26,7 +27,7 @@ class LiteralValue extends _1.BaseValue {
|
|
|
26
27
|
return super.get(scope, name);
|
|
27
28
|
const method = literalMethods[name.data];
|
|
28
29
|
if (!method)
|
|
29
|
-
throw new
|
|
30
|
+
throw new CompilerError_1.CompilerError(`Method ${name.data} does not exist on literal values.`);
|
|
30
31
|
return [method.apply(this, [scope]), []];
|
|
31
32
|
}
|
|
32
33
|
get num() {
|
|
@@ -55,7 +56,7 @@ const operatorMap = {
|
|
|
55
56
|
"*": (a, b) => a * b,
|
|
56
57
|
"/": (a, b) => a / b,
|
|
57
58
|
"%": (a, b) => a % b,
|
|
58
|
-
"**": (a, b) =>
|
|
59
|
+
"**": (a, b) => a ** b,
|
|
59
60
|
"|": (a, b) => a | b,
|
|
60
61
|
"&": (a, b) => a & b,
|
|
61
62
|
"^": (a, b) => a ^ b,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiteralValue.js","sourceRoot":"","sources":["../../src/values/LiteralValue.ts"],"names":[],"mappings":";;;AAOA,wBAA8B;
|
|
1
|
+
{"version":3,"file":"LiteralValue.js","sourceRoot":"","sources":["../../src/values/LiteralValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ObjectValue = void 0;
|
|
4
|
+
const CompilerError_1 = require("../CompilerError");
|
|
4
5
|
const operators_1 = require("../operators");
|
|
5
6
|
const LiteralValue_1 = require("./LiteralValue");
|
|
6
7
|
const VoidValue_1 = require("./VoidValue");
|
|
@@ -15,12 +16,16 @@ class ObjectValue extends VoidValue_1.VoidValue {
|
|
|
15
16
|
return [new LiteralValue_1.LiteralValue(scope, "object"), []];
|
|
16
17
|
}
|
|
17
18
|
get(scope, key) {
|
|
18
|
-
|
|
19
|
-
|
|
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];
|
|
20
24
|
return [member, []];
|
|
25
|
+
}
|
|
21
26
|
const { $get } = this.data;
|
|
22
27
|
if (!$get)
|
|
23
|
-
throw new
|
|
28
|
+
throw new CompilerError_1.CompilerError("Cannot get undefined member.");
|
|
24
29
|
return $get.call(scope, [key]);
|
|
25
30
|
}
|
|
26
31
|
eval(scope) {
|
|
@@ -39,11 +44,11 @@ class ObjectValue extends VoidValue_1.VoidValue {
|
|
|
39
44
|
exports.ObjectValue = ObjectValue;
|
|
40
45
|
for (const op of operators_1.operators) {
|
|
41
46
|
ObjectValue.prototype[op] = function (...args) {
|
|
42
|
-
const $ = this.data[
|
|
47
|
+
const $ = this.data[`$${op}`];
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-unsafe-return
|
|
43
49
|
if (!$)
|
|
44
50
|
return VoidValue_1.VoidValue.prototype[op].apply(this, args);
|
|
45
|
-
|
|
46
|
-
// @ts-ignore
|
|
51
|
+
const [scope, ...fnArgs] = args;
|
|
47
52
|
return $.call(scope, fnArgs);
|
|
48
53
|
};
|
|
49
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectValue.js","sourceRoot":"","sources":["../../src/values/ObjectValue.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;
|
|
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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StoreValue = void 0;
|
|
4
4
|
const _1 = require(".");
|
|
5
|
+
const CompilerError_1 = require("../CompilerError");
|
|
5
6
|
const instructions_1 = require("../instructions");
|
|
6
7
|
class StoreValue extends _1.BaseValue {
|
|
7
8
|
constructor(scope, name) {
|
|
@@ -14,13 +15,13 @@ class StoreValue extends _1.BaseValue {
|
|
|
14
15
|
}
|
|
15
16
|
"="(scope, value) {
|
|
16
17
|
if (this.constant)
|
|
17
|
-
throw new
|
|
18
|
+
throw new CompilerError_1.CompilerError(`Cannot assign to unmutable store '${this.name}'.`);
|
|
18
19
|
if (value instanceof _1.TempValue && value.canProxy)
|
|
19
20
|
return value.proxy(this);
|
|
20
21
|
const [evalValue, evalInst] = value.eval(scope);
|
|
21
22
|
return [this, [...evalInst, new instructions_1.SetInstruction(this, evalValue)]];
|
|
22
23
|
}
|
|
23
|
-
eval(
|
|
24
|
+
eval(_scope) {
|
|
24
25
|
return [this, []];
|
|
25
26
|
}
|
|
26
27
|
toString() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreValue.js","sourceRoot":"","sources":["../../src/values/StoreValue.ts"],"names":[],"mappings":";;;AAAA,wBAAuD;AACvD,kDAAiD;
|
|
1
|
+
{"version":3,"file":"StoreValue.js","sourceRoot":"","sources":["../../src/values/StoreValue.ts"],"names":[],"mappings":";;;AAAA,wBAAuD;AACvD,oDAAiD;AACjD,kDAAiD;AAGjD,MAAa,UAAW,SAAQ,YAAS;IAGvC,YAAY,KAAa,EAAE,IAAY;QACrC,KAAK,CAAC,KAAK,CAAC,CAAC;QAFf,aAAQ,GAAG,KAAK,CAAC;QAGf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,CAAC,IAAI,eAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,KAAa;QAC9B,IAAI,IAAI,CAAC,QAAQ;YACf,MAAM,IAAI,6BAAa,CACrB,qCAAqC,IAAI,CAAC,IAAI,IAAI,CACnD,CAAC;QACJ,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;IACpE,CAAC;IACD,IAAI,CAAC,MAAc;QACjB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AA3BD,gCA2BC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TempValue = void 0;
|
|
4
|
+
const CompilerError_1 = require("../CompilerError");
|
|
4
5
|
const instructions_1 = require("../instructions");
|
|
5
6
|
const operators_1 = require("../operators");
|
|
6
7
|
const _1 = require("./");
|
|
7
8
|
const LiteralValue_1 = require("./LiteralValue");
|
|
8
9
|
class TempValue extends _1.StoreValue {
|
|
9
|
-
constructor(scope, name) {
|
|
10
|
-
super(scope, name
|
|
10
|
+
constructor({ scope, name, renameable = true }) {
|
|
11
|
+
super(scope, name ?? scope.makeTempName());
|
|
11
12
|
this.canProxy = true;
|
|
12
|
-
|
|
13
|
-
scope.ntemp++;
|
|
13
|
+
this.renameable = renameable;
|
|
14
14
|
}
|
|
15
15
|
eval(scope) {
|
|
16
16
|
return super.eval(scope);
|
|
@@ -28,10 +28,10 @@ class TempValue extends _1.StoreValue {
|
|
|
28
28
|
proxy(value) {
|
|
29
29
|
if (!this.canProxy) {
|
|
30
30
|
console.log(this.proxied);
|
|
31
|
-
throw new
|
|
31
|
+
throw new CompilerError_1.CompilerError("Cannot proxy (canProxy = false).");
|
|
32
32
|
}
|
|
33
33
|
if (this.proxied)
|
|
34
|
-
throw new
|
|
34
|
+
throw new CompilerError_1.CompilerError("Cannot proxy multiple times.");
|
|
35
35
|
this.proxied = value;
|
|
36
36
|
this.canProxy = false;
|
|
37
37
|
for (const key of [
|
|
@@ -41,9 +41,13 @@ class TempValue extends _1.StoreValue {
|
|
|
41
41
|
"call",
|
|
42
42
|
"toString",
|
|
43
43
|
"proxy",
|
|
44
|
+
"rename",
|
|
44
45
|
]) {
|
|
45
46
|
if (key !== "=" && key in value)
|
|
46
|
-
this[key] = (...args) =>
|
|
47
|
+
this[key] = (...args) => {
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-unsafe-return
|
|
49
|
+
return value[key].apply(value, args);
|
|
50
|
+
};
|
|
47
51
|
}
|
|
48
52
|
this.setInst = new instructions_1.SetInstruction(this, value);
|
|
49
53
|
this.setInst.hidden = true;
|
|
@@ -58,10 +62,17 @@ class TempValue extends _1.StoreValue {
|
|
|
58
62
|
"call",
|
|
59
63
|
"toString",
|
|
60
64
|
"proxy",
|
|
65
|
+
"rename",
|
|
61
66
|
]) {
|
|
62
67
|
this[key] = TempValue.prototype[key];
|
|
63
68
|
}
|
|
64
69
|
}
|
|
70
|
+
rename(name) {
|
|
71
|
+
if (!this.renameable)
|
|
72
|
+
return;
|
|
73
|
+
this.name = name;
|
|
74
|
+
this.renameable = false;
|
|
75
|
+
}
|
|
65
76
|
}
|
|
66
77
|
exports.TempValue = TempValue;
|
|
67
78
|
//# sourceMappingURL=TempValue.js.map
|