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
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Wei, JeanJPNM
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,18 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
https://
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
<div markdown="1" align="center">
|
|
2
|
+
|
|
3
|
+
[][docs]
|
|
4
|
+
|
|
5
|
+
# **JavaScript [MLog](https://mindustrygame.github.io/wiki/logic/0-introduction/) Compiler**
|
|
6
|
+
|
|
7
|
+
[][ci]
|
|
8
|
+
[][npm]
|
|
9
|
+
[][docs]
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
- Optimzing compiler
|
|
16
|
+
- Easy to use
|
|
17
|
+
- Fully Typed API
|
|
18
|
+
- Macros
|
|
19
|
+
- All Instructions and Variables
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
#### In the terminal
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm i -g mlogjs
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
#### Creating `hello.js`
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
const message1 = getBuilding("message1")
|
|
35
|
+
print("Hello world")
|
|
36
|
+
printFlush(message1)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### Compile
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
mlogjs hello.js hello.mlog
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Resources
|
|
46
|
+
|
|
47
|
+
- [Discord](https://discord.gg/SvgjCtZnR5)
|
|
48
|
+
- [Documentation][docs]
|
|
49
|
+
- [NPM package][npm]
|
|
50
|
+
- [GitHub Action CI][ci]
|
|
51
|
+
|
|
52
|
+
## Maintainers
|
|
53
|
+
|
|
54
|
+
Massive thanks to [@JeanJPNM](https://github.com/JeanJPNM) for adding new features!
|
|
55
|
+
|
|
56
|
+
## Contribute
|
|
57
|
+
|
|
58
|
+
Help and suggestions are welcomed!
|
|
59
|
+
|
|
60
|
+
## License
|
|
61
|
+
|
|
62
|
+
MIT
|
|
63
|
+
|
|
64
|
+
<!-- url -->
|
|
65
|
+
|
|
66
|
+
[npm]: https://www.npmjs.com/package/mlogjs
|
|
67
|
+
[ci]: https://github.com/weisrc/mlogjs/actions/workflows/ci.yml
|
|
68
|
+
[docs]: https://mlogjs.github.io/mlogjs
|
package/build/Compiler.js
CHANGED
|
@@ -24,57 +24,35 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.Compiler = void 0;
|
|
27
|
+
const parser_1 = require("@babel/parser");
|
|
28
|
+
const CompilerError_1 = require("./CompilerError");
|
|
27
29
|
const handlers = __importStar(require("./handlers"));
|
|
28
|
-
const
|
|
30
|
+
const initScope_1 = require("./initScope");
|
|
29
31
|
const instructions_1 = require("./instructions");
|
|
30
32
|
const Scope_1 = require("./Scope");
|
|
31
|
-
const macros_1 = require("./macros");
|
|
32
|
-
const utils_1 = require("./utils");
|
|
33
|
-
const Namespace_1 = require("./macros/Namespace");
|
|
34
|
-
const RawValue_1 = require("./macros/RawValue");
|
|
35
33
|
class Compiler {
|
|
36
|
-
constructor(stackName) {
|
|
34
|
+
constructor({ stackName, compactNames = false } = {}) {
|
|
37
35
|
this.handlers = handlers;
|
|
38
36
|
this.usingStack = !!stackName;
|
|
39
37
|
this.stackName = stackName;
|
|
38
|
+
this.compactNames = compactNames;
|
|
40
39
|
}
|
|
41
40
|
compile(script) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
scope.hardSet("Math", new macros_1.MlogMath(scope));
|
|
58
|
-
scope.hardSet("Memory", new macros_1.MemoryBuilder(scope));
|
|
59
|
-
// commands
|
|
60
|
-
scope.hardSet("draw", new macros_1.commands.Draw(scope));
|
|
61
|
-
scope.hardSet("print", new macros_1.commands.Print(scope));
|
|
62
|
-
scope.hardSet("printFlush", new macros_1.commands.PrintFlush(scope));
|
|
63
|
-
scope.hardSet("drawFlush", new macros_1.commands.DrawFlush(scope));
|
|
64
|
-
scope.hardSet("getLink", new macros_1.commands.GetLink(scope));
|
|
65
|
-
scope.hardSet("control", new macros_1.commands.Control(scope));
|
|
66
|
-
scope.hardSet("radar", new macros_1.commands.Radar(scope));
|
|
67
|
-
scope.hardSet("sensor", new macros_1.commands.Sensor(scope));
|
|
68
|
-
scope.hardSet("wait", new macros_1.commands.Wait(scope));
|
|
69
|
-
scope.hardSet("lookup", new macros_1.commands.Lookup(scope));
|
|
70
|
-
scope.hardSet("unitBind", new macros_1.commands.UnitBind(scope));
|
|
71
|
-
scope.hardSet("unitControl", new macros_1.commands.UnitControl(scope));
|
|
72
|
-
scope.hardSet("unitRadar", new macros_1.commands.UnitRadar(scope));
|
|
73
|
-
scope.hardSet("unitLocate", new macros_1.commands.UnitLocate(scope));
|
|
74
|
-
const valueInst = this.handle(scope, program);
|
|
75
|
-
valueInst[1].push(new instructions_1.EndInstruction(), ...scope.inst);
|
|
76
|
-
this.resolve(valueInst);
|
|
77
|
-
return this.serialize(valueInst) + "\n";
|
|
41
|
+
let output;
|
|
42
|
+
try {
|
|
43
|
+
const program = this.parse(script);
|
|
44
|
+
const scope = new Scope_1.Scope({});
|
|
45
|
+
(0, initScope_1.initScope)(scope);
|
|
46
|
+
const valueInst = this.handle(scope, program);
|
|
47
|
+
valueInst[1].push(new instructions_1.EndInstruction(), ...scope.inst);
|
|
48
|
+
this.resolve(valueInst);
|
|
49
|
+
output = this.serialize(valueInst) + "\n";
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
const nodeStack = error instanceof CompilerError_1.CompilerError ? error.nodeStack : [];
|
|
53
|
+
return [null, error, nodeStack];
|
|
54
|
+
}
|
|
55
|
+
return [output, null, []];
|
|
78
56
|
}
|
|
79
57
|
resolve(valueInst) {
|
|
80
58
|
let i = 0;
|
|
@@ -85,32 +63,39 @@ class Compiler {
|
|
|
85
63
|
}
|
|
86
64
|
}
|
|
87
65
|
serialize(resLines) {
|
|
88
|
-
const [
|
|
66
|
+
const [, inst] = resLines;
|
|
89
67
|
return inst.filter(l => !l.hidden).join("\n");
|
|
90
68
|
}
|
|
91
69
|
parse(script) {
|
|
92
|
-
return (0,
|
|
70
|
+
return (0, parser_1.parse)(script, {
|
|
71
|
+
ranges: true,
|
|
72
|
+
plugins: ["typescript"],
|
|
73
|
+
});
|
|
93
74
|
}
|
|
94
75
|
handle(scope, node) {
|
|
95
76
|
try {
|
|
96
77
|
const handler = this.handlers[node.type];
|
|
97
78
|
if (!handler)
|
|
98
|
-
throw
|
|
79
|
+
throw new CompilerError_1.CompilerError("Missing handler for " + node.type);
|
|
99
80
|
return handler(this, scope, node, null);
|
|
100
81
|
}
|
|
101
82
|
catch (error) {
|
|
102
|
-
|
|
83
|
+
if (error instanceof CompilerError_1.CompilerError) {
|
|
84
|
+
error.nodeStack.push(node);
|
|
85
|
+
}
|
|
86
|
+
throw error;
|
|
103
87
|
}
|
|
104
88
|
}
|
|
105
89
|
handleEval(scope, node) {
|
|
106
90
|
const [res, inst] = this.handle(scope, node);
|
|
91
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
107
92
|
const [evaluated, evaluatedLines] = res.eval(scope);
|
|
108
93
|
return [evaluated, [...inst, ...evaluatedLines]];
|
|
109
94
|
}
|
|
110
95
|
handleMany(scope, nodes, handler = this.handle.bind(this)) {
|
|
111
96
|
const lines = [];
|
|
112
97
|
for (const node of nodes) {
|
|
113
|
-
const [
|
|
98
|
+
const [, nodeLines] = handler(scope, node);
|
|
114
99
|
lines.push(...nodeLines);
|
|
115
100
|
}
|
|
116
101
|
return [null, lines];
|
package/build/Compiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compiler.js","sourceRoot":"","sources":["../src/Compiler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Compiler.js","sourceRoot":"","sources":["../src/Compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompilerError = void 0;
|
|
4
|
+
class CompilerError extends Error {
|
|
5
|
+
constructor(message, nodeStack = []) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.nodeStack = nodeStack;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.CompilerError = CompilerError;
|
|
11
|
+
//# sourceMappingURL=CompilerError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompilerError.js","sourceRoot":"","sources":["../src/CompilerError.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAc,SAAQ,KAAK;IAMtC,YAAY,OAAe,EAAS,YAAuB,EAAE;QAC3D,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,cAAS,GAAT,SAAS,CAAgB;IAE7D,CAAC;CACF;AATD,sCASC"}
|
package/build/Scope.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Scope = void 0;
|
|
4
4
|
const values_1 = require("./values");
|
|
5
|
+
const CompilerError_1 = require("./CompilerError");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
5
7
|
class Scope {
|
|
6
8
|
constructor(values, parent = null, stacked = false, ntemp = 0, name = "", inst = []) {
|
|
7
|
-
this.stacked = false;
|
|
8
|
-
this.ntemp = 0;
|
|
9
|
-
this.data = values;
|
|
10
9
|
this.parent = parent;
|
|
11
10
|
this.stacked = stacked;
|
|
12
11
|
this.ntemp = ntemp;
|
|
13
12
|
this.name = name;
|
|
14
13
|
this.inst = inst;
|
|
14
|
+
this.data = values;
|
|
15
15
|
}
|
|
16
16
|
copy() {
|
|
17
|
-
const scope = new Scope(
|
|
17
|
+
const scope = new Scope({ ...this.data }, this.parent, this.stacked, this.ntemp, this.name, this.inst);
|
|
18
18
|
scope.break = this.break;
|
|
19
19
|
scope.continue = this.continue;
|
|
20
20
|
scope.function = this.function;
|
|
@@ -27,7 +27,7 @@ class Scope {
|
|
|
27
27
|
return scope;
|
|
28
28
|
}
|
|
29
29
|
createFunction(name, stacked) {
|
|
30
|
-
return new Scope({}, this, stacked
|
|
30
|
+
return new Scope({}, this, stacked ?? this.stacked, 0, name, this.inst);
|
|
31
31
|
}
|
|
32
32
|
has(name) {
|
|
33
33
|
if (name in this.data)
|
|
@@ -42,11 +42,11 @@ class Scope {
|
|
|
42
42
|
return value;
|
|
43
43
|
if (this.parent)
|
|
44
44
|
return this.parent.get(name);
|
|
45
|
-
throw
|
|
45
|
+
throw new CompilerError_1.CompilerError(`${name} is not declared.`);
|
|
46
46
|
}
|
|
47
47
|
set(name, value) {
|
|
48
48
|
if (name in this.data)
|
|
49
|
-
throw
|
|
49
|
+
throw new CompilerError_1.CompilerError(`${name} is already declared.`);
|
|
50
50
|
return this.hardSet(name, value);
|
|
51
51
|
}
|
|
52
52
|
hardSet(name, value) {
|
|
@@ -56,6 +56,16 @@ class Scope {
|
|
|
56
56
|
make(name, storeName) {
|
|
57
57
|
return this.set(name, this.stacked ? null : new values_1.StoreValue(this, storeName));
|
|
58
58
|
}
|
|
59
|
+
makeTempName() {
|
|
60
|
+
const result = this.formatName(`${utils_1.internalPrefix}t${this.ntemp}`);
|
|
61
|
+
this.ntemp++;
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
formatName(name) {
|
|
65
|
+
if (!this.name)
|
|
66
|
+
return name;
|
|
67
|
+
return `${name}:${this.name}`;
|
|
68
|
+
}
|
|
59
69
|
}
|
|
60
70
|
exports.Scope = Scope;
|
|
61
71
|
//# sourceMappingURL=Scope.js.map
|
package/build/Scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;
|
|
1
|
+
{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
|
package/build/bin.js
CHANGED
|
@@ -1,42 +1,75 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
"use strict";
|
|
3
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
4
|
};
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
const fs_1 = require("fs");
|
|
7
|
+
const helpers_1 = require("yargs/helpers");
|
|
8
8
|
const _1 = require(".");
|
|
9
|
+
const cli_highlight_1 = require("cli-highlight");
|
|
9
10
|
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
-
const
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const path_1 = require("path");
|
|
11
13
|
(0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
|
|
12
14
|
.command("$0 [path] [out]", "compiles your Javascript file to MLog", yargs => {
|
|
13
15
|
return yargs
|
|
14
16
|
.positional("path", {
|
|
15
17
|
describe: "path of the file to compile",
|
|
18
|
+
type: "string",
|
|
16
19
|
})
|
|
17
20
|
.positional("out", {
|
|
18
21
|
describe: "path of the output file",
|
|
22
|
+
type: "string",
|
|
23
|
+
})
|
|
24
|
+
.option("compact-names", {
|
|
25
|
+
type: "boolean",
|
|
26
|
+
default: false,
|
|
27
|
+
describe: "Wether the compiler should preserve or compact variable and function names",
|
|
19
28
|
});
|
|
20
29
|
}, argv => {
|
|
21
30
|
const path = argv.path;
|
|
22
|
-
const out = argv.out;
|
|
23
31
|
if (!path)
|
|
24
32
|
return console.log("missing required path argument");
|
|
25
|
-
if (!out)
|
|
26
|
-
return console.log("missing output path");
|
|
27
33
|
if (!(0, fs_1.existsSync)(path))
|
|
28
34
|
return console.log(`file at ${path} does not exist`);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
const out = argv.out ?? defaultOutPath(path);
|
|
36
|
+
if (path == out)
|
|
37
|
+
return console.log("The out path cannot be the same as the input path");
|
|
38
|
+
const compiler = new _1.Compiler({
|
|
39
|
+
compactNames: argv["compact-names"],
|
|
40
|
+
});
|
|
41
|
+
const code = (0, fs_1.readFileSync)(path, "utf8");
|
|
42
|
+
const [output, error, [node]] = compiler.compile(code);
|
|
43
|
+
if (error) {
|
|
44
|
+
let start = error.loc;
|
|
45
|
+
let end = start;
|
|
46
|
+
if (node) {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
48
|
+
start = node.loc.start;
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
50
|
+
end = node.loc.end;
|
|
51
|
+
}
|
|
52
|
+
const lines = code.split("\n");
|
|
53
|
+
console.log(chalk_1.default.cyanBright([(0, path_1.resolve)(path), start.line, start.column].join(":")));
|
|
54
|
+
for (let i = Math.max(start.line - 3, 0); i < Math.min(end.line + 2, lines.length); i++) {
|
|
55
|
+
const n = i + 1;
|
|
56
|
+
const head = chalk_1.default.gray(`${n} | `.padStart(6, " "));
|
|
57
|
+
console.log(head + (0, cli_highlight_1.highlight)(lines[i], { language: "js" }));
|
|
58
|
+
if (n === start.line) {
|
|
59
|
+
console.log(chalk_1.default.red(" ".repeat(6 + start.column) + "^ " + error.message));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return;
|
|
36
63
|
}
|
|
64
|
+
(0, fs_1.writeFileSync)(out, output);
|
|
65
|
+
console.log(`Success: Compiled ${path}. Your compiled code is at ${out}.`);
|
|
37
66
|
})
|
|
38
67
|
.help()
|
|
39
68
|
.scriptName("mlogjs")
|
|
40
69
|
.demandCommand()
|
|
41
70
|
.parse();
|
|
71
|
+
function defaultOutPath(path) {
|
|
72
|
+
const parsed = (0, path_1.parse)(path);
|
|
73
|
+
return (0, path_1.join)(parsed.dir, `${parsed.name}.mlog`);
|
|
74
|
+
}
|
|
42
75
|
//# sourceMappingURL=bin.js.map
|
package/build/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockStatement.js","sourceRoot":"","sources":["../../src/handlers/BlockStatement.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"BlockStatement.js","sourceRoot":"","sources":["../../src/handlers/BlockStatement.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAA4B,CACrD,CAAC,EACD,KAAK,EACL,IAAuB,EACvB,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,uBAAuB;IACvB,8BAA8B;IAC9B,uKAAuK;IACvK,2BAA2B;IAC3B,IAAI;IACJ,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallExpression.js","sourceRoot":"","sources":["../../src/handlers/CallExpression.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"CallExpression.js","sourceRoot":"","sources":["../../src/handlers/CallExpression.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAA4B,CACrD,CAAC,EACD,KAAK,EACL,IAAuB,EACvB,EAAE;IACF,MAAM,IAAI,GAAmB,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrC,+CAA+C;QAC/C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAEzB,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAEvB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB;AAEW,QAAA,aAAa,GAAG,sBAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.File = void 0;
|
|
4
|
+
const Scope_1 = require("../Scope");
|
|
5
|
+
const File = (c, scope, node) => {
|
|
6
|
+
return c.handle(scope ?? new Scope_1.Scope({}), node.program);
|
|
7
|
+
};
|
|
8
|
+
exports.File = File;
|
|
9
|
+
//# sourceMappingURL=File.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/handlers/File.ts"],"names":[],"mappings":";;;AAAA,oCAAiC;AAG1B,MAAM,IAAI,GAA4B,CAAC,CAAC,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;IACvE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,aAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForStatement.js","sourceRoot":"","sources":["../../src/handlers/ForStatement.ts"],"names":[],"mappings":";;;AAAA,kDAA8E;AAE9E,sCAAyC;AAElC,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"ForStatement.js","sourceRoot":"","sources":["../../src/handlers/ForStatement.ts"],"names":[],"mappings":";;;AAAA,kDAA8E;AAE9E,sCAAyC;AAElC,MAAM,YAAY,GAAmB,CAC1C,CAAC,EACD,KAAK,EACL,IAAqB,EACrB,EAAE;IACF,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI;QACjC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC,IAAI,qBAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,aAAa,GAAG,IAAI,qBAAY,CAAC,KAAK,EAAE,IAAa,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,qBAAY,CAAC,KAAK,EAAE,IAAa,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,IAAI,8BAAe,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,IAAI,8BAAe,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO;QACL,IAAI;QACJ;YACE,GAAG,QAAQ;YACX,aAAa;YACb,GAAG,SAAS;YACZ,IAAI,8BAAe,CACjB,WAAW,EACX,wBAAS,CAAC,KAAK,EACf,IAAI,EACJ,IAAI,qBAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAC3B;YACD,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG,WAAW;YACd,IAAI,8BAAe,CAAC,aAAa,EAAE,wBAAS,CAAC,MAAM,CAAC;YACpD,WAAW;SACZ;KACF,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,YAAY,gBAoCvB"}
|
|
@@ -1,36 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FunctionExpression = exports.FunctionDeclaration = exports.ArrowFunctionExpression = void 0;
|
|
3
|
+
exports.ObjectMethod = exports.FunctionExpression = exports.FunctionDeclaration = exports.ArrowFunctionExpression = void 0;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
const FunctionValue_1 = require("../values/FunctionValue");
|
|
6
6
|
const ArrowFunctionExpression = (c, scope, node) => {
|
|
7
7
|
const name = (0, utils_1.nodeName)(node);
|
|
8
|
-
|
|
8
|
+
const functionScope = scope.createFunction(name);
|
|
9
9
|
let { params, body } = node;
|
|
10
10
|
if (node.expression) {
|
|
11
11
|
body = {
|
|
12
12
|
type: "BlockStatement",
|
|
13
|
-
body: [
|
|
13
|
+
body: [
|
|
14
|
+
{ ...body, type: "ReturnStatement", argument: body },
|
|
15
|
+
],
|
|
14
16
|
};
|
|
15
17
|
}
|
|
16
18
|
const paramNames = [];
|
|
17
19
|
const paramStores = [];
|
|
18
20
|
for (const id of params) {
|
|
19
21
|
paramNames.push(id.name);
|
|
20
|
-
paramStores.push(
|
|
22
|
+
paramStores.push(functionScope.make(id.name, c.compactNames ? (0, utils_1.nodeName)(id) : functionScope.formatName(id.name)));
|
|
21
23
|
}
|
|
22
24
|
return [
|
|
23
|
-
new FunctionValue_1.FunctionValue(
|
|
25
|
+
new FunctionValue_1.FunctionValue({
|
|
26
|
+
scope: functionScope,
|
|
27
|
+
name,
|
|
28
|
+
paramNames,
|
|
29
|
+
paramStores,
|
|
30
|
+
body: body,
|
|
31
|
+
c,
|
|
32
|
+
renameable: true,
|
|
33
|
+
}),
|
|
24
34
|
[],
|
|
25
35
|
];
|
|
26
36
|
};
|
|
27
37
|
exports.ArrowFunctionExpression = ArrowFunctionExpression;
|
|
28
38
|
const FunctionDeclaration = (c, scope, node) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
];
|
|
39
|
+
const functionIns = (0, exports.ArrowFunctionExpression)(c, scope, node, null);
|
|
40
|
+
const name = node.id.name;
|
|
41
|
+
functionIns[0].rename?.(c.compactNames ? (0, utils_1.nodeName)(node) : scope.formatName(name));
|
|
42
|
+
return [scope.set(name, functionIns[0]), []];
|
|
33
43
|
};
|
|
34
44
|
exports.FunctionDeclaration = FunctionDeclaration;
|
|
35
45
|
exports.FunctionExpression = exports.ArrowFunctionExpression;
|
|
46
|
+
exports.ObjectMethod = exports.ArrowFunctionExpression;
|
|
36
47
|
//# sourceMappingURL=Function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Function.js","sourceRoot":"","sources":["../../src/handlers/Function.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Function.js","sourceRoot":"","sources":["../../src/handlers/Function.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AAEpC,2DAAwD;AAEjD,MAAM,uBAAuB,GAAa,CAC/C,CAAC,EACD,KAAK,EACL,IAAgC,EAChC,EAAE;IACF,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE5B,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,IAAI,GAAG;YACL,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE;gBACJ,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAqB,EAAE;aACtE;SACmB,CAAC;KACxB;IAED,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,KAAK,MAAM,EAAE,IAAI,MAAyB,EAAE;QAC1C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,WAAW,CAAC,IAAI,CACd,aAAa,CAAC,IAAI,CAChB,EAAE,CAAC,IAAI,EACP,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAClE,CACF,CAAC;KACH;IAED,OAAO;QACL,IAAI,6BAAa,CAAC;YAChB,KAAK,EAAE,aAAa;YACpB,IAAI;YACJ,UAAU;YACV,WAAW;YACX,IAAI,EAAE,IAAyB;YAC/B,CAAC;YACD,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,EAAE;KACH,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,uBAAuB,2BA2ClC;AAEK,MAAM,mBAAmB,GAAa,CAC3C,CAAC,EACD,KAAK,EACL,IAA4B,EAC5B,EAAE;IACF,MAAM,WAAW,GAAG,IAAA,+BAAuB,EAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,IAAI,GAAI,IAAI,CAAC,EAAoB,CAAC,IAAI,CAAC;IAC7C,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACrB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CACzD,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAXW,QAAA,mBAAmB,uBAW9B;AAEW,QAAA,kBAAkB,GAAa,+BAAuB,CAAC;AACvD,QAAA,YAAY,GAAa,+BAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IfStatement.js","sourceRoot":"","sources":["../../src/handlers/IfStatement.ts"],"names":[],"mappings":";;;AAAA,kDAAmE;AACnE,kDAA4C;AAE5C,sCAAyC;AAElC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"IfStatement.js","sourceRoot":"","sources":["../../src/handlers/IfStatement.ts"],"names":[],"mappings":";;;AAAA,kDAAmE;AACnE,kDAA4C;AAE5C,sCAAyC;AAElC,MAAM,WAAW,GAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;IAC5E,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,IAAI,YAAY,qBAAY,EAAE;QAChC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrB;IAED,MAAM,SAAS,GAAG,IAAI,qBAAY,CAAC,KAAK,EAAE,IAAa,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CACP,GAAG,QAAQ,EACX,IAAI,8BAAe,CACjB,SAAS,EACT,wBAAS,CAAC,KAAK,EACf,IAAI,EACJ,IAAI,qBAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAC3B,EACD,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACtC,IAAI,8BAAe,CAAC,SAAS,CAAC,CAC/B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,qBAAY,CAAC,KAAK,EAAE,IAAa,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,SAAS;QAChB,IAAI,CAAC,IAAI,CACP,IAAI,8BAAe,CAAC,WAAW,EAAE,wBAAS,CAAC,MAAM,CAAC,EAClD,IAAI,8BAAe,CAAC,SAAS,CAAC,EAC9B,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACrC,IAAI,8BAAe,CAAC,WAAW,CAAC,CACjC,CAAC;IACJ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC;AA/BW,QAAA,WAAW,eA+BtB"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.BooleanLiteral = exports.NullLiteral = exports.StringLiteral = exports.NumericLiteral = void 0;
|
|
4
4
|
const values_1 = require("../values");
|
|
5
|
-
const Literal = (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
throw Error("Cannot create literal " + typeof value);
|
|
16
|
-
};
|
|
17
|
-
exports.Literal = Literal;
|
|
5
|
+
const Literal = (_c, scope, node) => [new values_1.LiteralValue(scope, node.value), []];
|
|
6
|
+
exports.NumericLiteral = Literal;
|
|
7
|
+
exports.StringLiteral = Literal;
|
|
8
|
+
const NullLiteral = (_c, scope) => [
|
|
9
|
+
new values_1.LiteralValue(scope, null),
|
|
10
|
+
[],
|
|
11
|
+
];
|
|
12
|
+
exports.NullLiteral = NullLiteral;
|
|
13
|
+
const BooleanLiteral = (_c, scope, node) => [new values_1.LiteralValue(scope, +node.value), []];
|
|
14
|
+
exports.BooleanLiteral = BooleanLiteral;
|
|
18
15
|
//# sourceMappingURL=Literal.js.map
|