@irrelon/battlescript 3.1.6 → 3.2.1
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/bin/functionality.ts +33 -31
- package/bin/index.js +4249 -2529
- package/bin/index.js.map +1 -1
- package/bin/index.ts +16 -28
- package/dist/bin/functionality.d.ts +1 -1
- package/dist/bin/functionality.d.ts.map +1 -1
- package/dist/exports/typescript/enums/EnumNodeKind.d.ts +7 -1
- package/dist/exports/typescript/enums/EnumNodeKind.d.ts.map +1 -1
- package/dist/exports/typescript/enums/EnumNodeProp.d.ts +3 -1
- package/dist/exports/typescript/enums/EnumNodeProp.d.ts.map +1 -1
- package/dist/exports/typescript/helpers/miniAstLayout.d.ts +4 -0
- package/dist/exports/typescript/helpers/miniAstLayout.d.ts.map +1 -0
- package/dist/index.js +4182 -2584
- package/dist/index.js.map +1 -1
- package/dist/nativeLibraries/time/index.d.ts +3 -0
- package/dist/nativeLibraries/time/index.d.ts.map +1 -0
- package/dist/scripts/createAstNode.d.ts +2 -0
- package/dist/scripts/createAstNode.d.ts.map +1 -0
- package/dist/scripts/exportGen/helpers/generateHelpers.d.ts.map +1 -1
- package/dist/services/fullAst/BattleScriptFromAST.d.ts +9 -2
- package/dist/services/fullAst/BattleScriptFromAST.d.ts.map +1 -1
- package/dist/services/fullAst/BattleScriptToAST.d.ts +10 -2
- package/dist/services/fullAst/BattleScriptToAST.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts +88 -78
- package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptListener.d.ts +121 -0
- package/dist/services/grammar/ts/language/BattleScriptListener.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptParser.d.ts +258 -95
- package/dist/services/grammar/ts/language/BattleScriptParser.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptVisitor.d.ts +77 -0
- package/dist/services/grammar/ts/language/BattleScriptVisitor.d.ts.map +1 -1
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/miniAst/BattleScriptToMiniAST.d.ts.map +1 -1
- package/dist/services/miniAst/MiniAstToFullAst.d.ts +28 -0
- package/dist/services/miniAst/MiniAstToFullAst.d.ts.map +1 -0
- package/dist/services/miniAst/binaryTypeToByteSize.d.ts +1 -1
- package/dist/services/miniAst/index.d.ts +1 -0
- package/dist/services/miniAst/index.d.ts.map +1 -1
- package/dist/services/miniAst/miniAstLayout.d.ts.map +1 -1
- package/dist/services/parser.d.ts +1 -3
- package/dist/services/parser.d.ts.map +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/ast/nodes/AfterDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/AfterDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/AfterExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/AfterExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ArrayExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/ArrayExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/AssignmentPatternNode.d.ts +3 -0
- package/dist/types/ast/nodes/AssignmentPatternNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/AstNode.d.ts +2 -2
- package/dist/types/ast/nodes/AstNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/BinaryExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/BinaryExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/BlockStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/BlockStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/BreakStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/BreakStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/CallExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/CallExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/CancelStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/CancelStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/CatchStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/CatchStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/CommentNode.d.ts +3 -0
- package/dist/types/ast/nodes/CommentNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ConstantDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/ConstantDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ConstantDeclaratorNode.d.ts +3 -0
- package/dist/types/ast/nodes/ConstantDeclaratorNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ContinueStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/ContinueStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/CustomTypeNode.d.ts +3 -0
- package/dist/types/ast/nodes/CustomTypeNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/DataTypeNode.d.ts +3 -0
- package/dist/types/ast/nodes/DataTypeNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/DefineStatementNode.d.ts +14 -0
- package/dist/types/ast/nodes/DefineStatementNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/EnumDeclarationNode.d.ts +14 -0
- package/dist/types/ast/nodes/EnumDeclarationNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/EvaluateCaseNode.d.ts +3 -0
- package/dist/types/ast/nodes/EvaluateCaseNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/EvaluateFallbackNode.d.ts +3 -0
- package/dist/types/ast/nodes/EvaluateFallbackNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/EvaluateStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/EvaluateStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/EventDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/EventDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/EveryDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/EveryDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/EveryExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/EveryExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ExpressionStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/ExpressionStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ForStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/ForStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/FunctionDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/FunctionDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/FunctionDefinitionNode.d.ts +3 -0
- package/dist/types/ast/nodes/FunctionDefinitionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/IdentifierNode.d.ts +3 -0
- package/dist/types/ast/nodes/IdentifierNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/IfStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/IfStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ImportDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/ImportDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/InterfaceNode.d.ts +3 -0
- package/dist/types/ast/nodes/InterfaceNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/InterfacePropertyDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/InterfacePropertyDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralBooleanNode.d.ts +2 -1
- package/dist/types/ast/nodes/LiteralBooleanNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralDoubleNode.d.ts +2 -0
- package/dist/types/ast/nodes/LiteralDoubleNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralFloatNode.d.ts +2 -0
- package/dist/types/ast/nodes/LiteralFloatNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralIntNode.d.ts +2 -1
- package/dist/types/ast/nodes/LiteralIntNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralNullNode.d.ts +2 -1
- package/dist/types/ast/nodes/LiteralNullNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralStringNode.d.ts +2 -1
- package/dist/types/ast/nodes/LiteralStringNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralUndefinedNode.d.ts +2 -1
- package/dist/types/ast/nodes/LiteralUndefinedNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/MemberExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/MemberExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ObjectExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/ObjectExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ObjectPropertyNode.d.ts +3 -0
- package/dist/types/ast/nodes/ObjectPropertyNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/OptimisedAssignmentExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/OptimisedAssignmentExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/OptimisedBinaryExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/OptimisedBinaryExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/OptimisedMemberExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/OptimisedMemberExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/OptimisedUpdateExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/OptimisedUpdateExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProgramDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/ProgramDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProgramPropertyDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/ProgramPropertyDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProtocolDeclarationNode.d.ts +16 -0
- package/dist/types/ast/nodes/ProtocolDeclarationNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/ProtocolTypeNode.d.ts +13 -0
- package/dist/types/ast/nodes/ProtocolTypeNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/RequireStatementNode.d.ts +15 -0
- package/dist/types/ast/nodes/RequireStatementNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/RestElementNode.d.ts +3 -0
- package/dist/types/ast/nodes/RestElementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ReturnStatementNode.d.ts +3 -0
- package/dist/types/ast/nodes/ReturnStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/RootNode.d.ts +3 -0
- package/dist/types/ast/nodes/RootNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StateDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/StateDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StepDeclarationNode.d.ts +14 -0
- package/dist/types/ast/nodes/StepDeclarationNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/TransportStatementNode.d.ts +13 -0
- package/dist/types/ast/nodes/TransportStatementNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/UnaryExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/UnaryExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/UpdateExpressionNode.d.ts +3 -0
- package/dist/types/ast/nodes/UpdateExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/VariableDeclarationNode.d.ts +3 -0
- package/dist/types/ast/nodes/VariableDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/VariableDeclaratorNode.d.ts +3 -0
- package/dist/types/ast/nodes/VariableDeclaratorNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/WildcardNode.d.ts +3 -0
- package/dist/types/ast/nodes/WildcardNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/index.d.ts +6 -0
- package/dist/types/ast/nodes/index.d.ts.map +1 -1
- package/dist/types/ast/unions/ProtocolBodyUnion.d.ts +3 -0
- package/dist/types/ast/unions/ProtocolBodyUnion.d.ts.map +1 -0
- package/dist/types/ast/unions/StepBodyUnion.d.ts +3 -0
- package/dist/types/ast/unions/StepBodyUnion.d.ts.map +1 -0
- package/dist/types/ast/unions/TypeUnion.d.ts +2 -2
- package/dist/types/ast/unions/TypeUnion.d.ts.map +1 -1
- package/package.json +7 -11
package/bin/functionality.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import {readFile, writeFile} from "fs/promises";
|
|
2
2
|
import {basename, dirname, extname, join} from "path";
|
|
3
3
|
import {
|
|
4
|
-
disassembleBytecode,
|
|
5
4
|
fromFullAstToSourceCode,
|
|
6
5
|
fromMiniAstToBinary,
|
|
6
|
+
fromMiniAstToSourceCode,
|
|
7
7
|
fromSourceCodeToBinary,
|
|
8
8
|
fromSourceCodeToFullAst,
|
|
9
9
|
fromSourceCodeToMiniAst,
|
|
10
10
|
miniAstFromBinaryBuffer
|
|
11
11
|
} from "@/services";
|
|
12
12
|
import type {SourceResolverAsync, SourceResolverSync} from "@/types";
|
|
13
|
-
import type {ByteCodeJson} from "@/types/byteCode/ByteCodeJson";
|
|
14
13
|
import {version} from "../package.json";
|
|
15
14
|
import {readFileSync} from "fs";
|
|
16
15
|
import {writeFileSync} from "node:fs";
|
|
@@ -27,7 +26,11 @@ export async function toAst(inputPath: string, outputPath?: string) {
|
|
|
27
26
|
console.log(`[BattleScript ${version}] toAst: ${inputPath}`);
|
|
28
27
|
try {
|
|
29
28
|
const sourceCode = await sourceResolverAsync(inputPath);
|
|
30
|
-
const ast = fromSourceCodeToFullAst(sourceCode, {
|
|
29
|
+
const ast = fromSourceCodeToFullAst(sourceCode, {
|
|
30
|
+
filePath: inputPath,
|
|
31
|
+
includeMetaData: true,
|
|
32
|
+
sourceResolver: sourceResolverSync
|
|
33
|
+
});
|
|
31
34
|
|
|
32
35
|
if (outputPath) {
|
|
33
36
|
await writeFile(outputPath, JSON.stringify(ast, null, 2));
|
|
@@ -81,7 +84,11 @@ export async function toMiniAst(inputPath: string, outputPath: string) {
|
|
|
81
84
|
console.log(`[BattleScript ${version}] toMiniAst: ${inputPath}`);
|
|
82
85
|
try {
|
|
83
86
|
const sourceCode = await sourceResolverAsync(inputPath);
|
|
84
|
-
const ast = fromSourceCodeToMiniAst(sourceCode, {
|
|
87
|
+
const ast = fromSourceCodeToMiniAst(sourceCode, {
|
|
88
|
+
filePath: inputPath,
|
|
89
|
+
includeMetaData: true,
|
|
90
|
+
sourceResolver: sourceResolverSync
|
|
91
|
+
});
|
|
85
92
|
|
|
86
93
|
await writeFile(outputPath, JSON.stringify(ast));
|
|
87
94
|
console.log(`[BattleScript ${version}] Compiled to ${outputPath}`);
|
|
@@ -91,6 +98,20 @@ export async function toMiniAst(inputPath: string, outputPath: string) {
|
|
|
91
98
|
}
|
|
92
99
|
}
|
|
93
100
|
|
|
101
|
+
export async function fromMiniAst(inputPath: string, outputPath: string) {
|
|
102
|
+
console.log(`[BattleScript ${version}] fromMiniAst: ${inputPath}`);
|
|
103
|
+
try {
|
|
104
|
+
const miniAstString = await sourceResolverAsync(inputPath);
|
|
105
|
+
const miniAst = JSON.parse(miniAstString);
|
|
106
|
+
const sourceCode = fromMiniAstToSourceCode(miniAst);
|
|
107
|
+
await writeFile(outputPath, sourceCode);
|
|
108
|
+
console.log(`[BattleScript ${version}] Decompiled to ${outputPath}`);
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error(`[BattleScript ${version}] Error:`, (error as Error).stack);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
94
115
|
export async function toBinary(inputPath: string, outputPath: string) {
|
|
95
116
|
console.log(`[BattleScript ${version}] toBinary: ${inputPath}`);
|
|
96
117
|
try {
|
|
@@ -98,7 +119,12 @@ export async function toBinary(inputPath: string, outputPath: string) {
|
|
|
98
119
|
const sourceCode = await sourceResolverAsync(inputPath);
|
|
99
120
|
|
|
100
121
|
console.log(`[BattleScript ${version}] fromSourceCodeToBinary: ${inputPath}`);
|
|
101
|
-
const binary = fromSourceCodeToBinary(sourceCode, {
|
|
122
|
+
const binary = fromSourceCodeToBinary(sourceCode, {
|
|
123
|
+
includeMetaData: true,
|
|
124
|
+
flatten: true,
|
|
125
|
+
filePath: inputPath,
|
|
126
|
+
sourceResolver: sourceResolverSync
|
|
127
|
+
});
|
|
102
128
|
|
|
103
129
|
console.log(`[BattleScript ${version}] Writing file contents: ${outputPath}`);
|
|
104
130
|
await writeFile(outputPath, Buffer.concat(binary))
|
|
@@ -116,7 +142,8 @@ export async function miniAstToBinary(inputPath: string, outputPath: string) {
|
|
|
116
142
|
const binary = fromMiniAstToBinary(JSON.parse(sourceCode), {
|
|
117
143
|
includeMetaData: true,
|
|
118
144
|
flatten: true,
|
|
119
|
-
filePath: inputPath
|
|
145
|
+
filePath: inputPath,
|
|
146
|
+
sourceResolver: sourceResolverSync
|
|
120
147
|
});
|
|
121
148
|
await writeFile(outputPath, Buffer.concat(binary))
|
|
122
149
|
|
|
@@ -139,31 +166,6 @@ export async function fromBinary(inputPath: string, outputPath: string) {
|
|
|
139
166
|
}
|
|
140
167
|
}
|
|
141
168
|
|
|
142
|
-
// async function toByteCode(inputPath: string, outputPath: string) {
|
|
143
|
-
// try {
|
|
144
|
-
// const sourceCode = await sourceResolverAsync(inputPath);
|
|
145
|
-
// const bcodeJson = fromSourceCodeToByteCode(sourceCode, {includeMetaData: true, flatten: true});
|
|
146
|
-
// await writeFile(outputPath, JSON.stringify(bcodeJson).replace(/\[\[/g, "[\n[").replace(/]]/g, "]\n]").replace(/],/g, "],\n"));
|
|
147
|
-
// console.log(`Compiled to ${outputPath}`);
|
|
148
|
-
// } catch (error) {
|
|
149
|
-
// console.error("Error:", (error as Error).stack);
|
|
150
|
-
// process.exit(1);
|
|
151
|
-
// }
|
|
152
|
-
// }
|
|
153
|
-
|
|
154
|
-
export async function fromByteCode(inputPath: string, outputPath: string) {
|
|
155
|
-
try {
|
|
156
|
-
const byteCodeJsonString = await sourceResolverAsync(inputPath);
|
|
157
|
-
const byteCodeJson: ByteCodeJson = JSON.parse(byteCodeJsonString);
|
|
158
|
-
const code = disassembleBytecode(byteCodeJson);
|
|
159
|
-
await writeFile(outputPath, code.join("\n"));
|
|
160
|
-
console.log(`[BattleScript ${version}] Disassembled to ${outputPath}`);
|
|
161
|
-
} catch (error) {
|
|
162
|
-
console.error(`[BattleScript ${version}] Error:`, (error as Error).stack);
|
|
163
|
-
process.exit(1);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
169
|
export function changeExtension(filePath: string, newExt: string): string {
|
|
168
170
|
const dir = dirname(filePath);
|
|
169
171
|
const base = basename(filePath, extname(filePath));
|