@irrelon/battlescript 4.0.1 → 5.0.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/bin/functionality.ts +65 -1
- package/bin/index.js +16436 -14825
- package/bin/index.js.map +1 -1
- package/bin/index.ts +20 -3
- package/dist/bin/functionality.cjs +16357 -14731
- package/dist/bin/functionality.cjs.map +1 -1
- package/dist/bin/functionality.d.ts +4 -0
- package/dist/bin/functionality.d.ts.map +1 -1
- package/dist/bin/{functionality.js → functionality.mjs} +16357 -14733
- package/dist/bin/functionality.mjs.map +1 -0
- package/dist/bin/index.d.ts +2 -2
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/exports/typescript/enums/EnumNodeKind.d.ts +4 -1
- package/dist/exports/typescript/enums/EnumNodeKind.d.ts.map +1 -1
- package/dist/exports/typescript/enums/EnumNodeProp.d.ts +60 -54
- package/dist/exports/typescript/enums/EnumNodeProp.d.ts.map +1 -1
- package/dist/exports/typescript/enums/EnumOperator.d.ts +7 -4
- package/dist/exports/typescript/enums/EnumOperator.d.ts.map +1 -1
- package/dist/exports/typescript/helpers/miniAstLayout.d.ts.map +1 -1
- package/dist/index.cjs +16568 -14962
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +16555 -14963
- package/dist/index.mjs.map +1 -1
- package/dist/nativeLibraries/index.d.ts.map +1 -1
- package/dist/nativeLibraries/time/index.d.ts +1 -1
- package/dist/services/cppGenerator/ProtocolToCpp.d.ts +71 -0
- package/dist/services/cppGenerator/ProtocolToCpp.d.ts.map +1 -0
- package/dist/services/cppGenerator/index.d.ts +2 -0
- package/dist/services/cppGenerator/index.d.ts.map +1 -0
- package/dist/services/fullAst/BattleScriptFromAST.d.ts +11 -1
- package/dist/services/fullAst/BattleScriptFromAST.d.ts.map +1 -1
- package/dist/services/fullAst/BattleScriptToAST.d.ts +7 -4
- package/dist/services/fullAst/BattleScriptToAST.d.ts.map +1 -1
- package/dist/services/fullAst/index.d.ts +1 -0
- package/dist/services/fullAst/index.d.ts.map +1 -1
- package/dist/services/fullAst/normaliseFormatting.d.ts +9 -0
- package/dist/services/fullAst/normaliseFormatting.d.ts.map +1 -0
- package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts +85 -81
- package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptListener.d.ts +49 -5
- package/dist/services/grammar/ts/language/BattleScriptListener.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptParser.d.ts +245 -185
- package/dist/services/grammar/ts/language/BattleScriptParser.d.ts.map +1 -1
- package/dist/services/grammar/ts/language/BattleScriptVisitor.d.ts +31 -3
- package/dist/services/grammar/ts/language/BattleScriptVisitor.d.ts.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/miniAst/BattleScriptToMiniAST.d.ts.map +1 -1
- package/dist/services/miniAst/miniAstLayout.d.ts.map +1 -1
- package/dist/services/parser.d.ts +2 -2
- package/dist/services/parser.d.ts.map +1 -1
- package/dist/services/utils.d.ts +10 -0
- package/dist/services/utils.d.ts.map +1 -1
- package/dist/tests/ast/compoundAssignment.test.d.ts +2 -0
- package/dist/tests/ast/compoundAssignment.test.d.ts.map +1 -0
- package/dist/tests/ast/hex-literal.test.d.ts +2 -0
- package/dist/tests/ast/hex-literal.test.d.ts.map +1 -0
- package/dist/tests/ast/number-literal.test.d.ts +2 -0
- package/dist/tests/ast/number-literal.test.d.ts.map +1 -0
- package/dist/tests/miniAst/ordering.test.d.ts +2 -0
- package/dist/tests/miniAst/ordering.test.d.ts.map +1 -0
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/BattleScriptDiagnostic.d.ts +19 -0
- package/dist/types/BattleScriptDiagnostic.d.ts.map +1 -0
- package/dist/types/BattleScriptTransformerOptions.d.ts +7 -0
- package/dist/types/BattleScriptTransformerOptions.d.ts.map +1 -1
- package/dist/types/VisitOptions.d.ts +6 -0
- package/dist/types/VisitOptions.d.ts.map +1 -1
- package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts +6 -0
- package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts.map +1 -1
- 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/AstNodeBase.d.ts +7 -0
- package/dist/types/ast/nodes/AstNodeBase.d.ts.map +1 -1
- package/dist/types/ast/nodes/CancelStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/CatchStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ConstantDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/EveryExpressionNode.d.ts +1 -0
- package/dist/types/ast/nodes/EveryExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ExportNamedDeclarationNode.d.ts +2 -4
- package/dist/types/ast/nodes/ExportNamedDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ExportSpecifierNode.d.ts +2 -4
- package/dist/types/ast/nodes/ExportSpecifierNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ExpressionStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ForwardStatementNode.d.ts +2 -0
- package/dist/types/ast/nodes/ForwardStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/FunctionDefinitionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/IdentifierNode.d.ts +2 -2
- package/dist/types/ast/nodes/IdentifierNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/IfStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ImportDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ImportSpecifierNode.d.ts +2 -4
- package/dist/types/ast/nodes/ImportSpecifierNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/InterfaceNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/InterfacePropertyDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/LiteralIntNode.d.ts +10 -0
- package/dist/types/ast/nodes/LiteralIntNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ObjectExpressionNode.d.ts +9 -2
- package/dist/types/ast/nodes/ObjectExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/OffsetStatementNode.d.ts +2 -0
- package/dist/types/ast/nodes/OffsetStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/OptimisedAssignmentExpressionNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ParityDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProgramPropertyDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProtocolDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProtocolReadTypeNode.d.ts +2 -0
- package/dist/types/ast/nodes/ProtocolReadTypeNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ProtocolTypeNode.d.ts +2 -0
- package/dist/types/ast/nodes/ProtocolTypeNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/RestElementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/ResumeStatementNode.d.ts +11 -0
- package/dist/types/ast/nodes/ResumeStatementNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/ReturnStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/RewindStatementNode.d.ts +2 -0
- package/dist/types/ast/nodes/RewindStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/RuleStatementNode.d.ts +4 -0
- package/dist/types/ast/nodes/RuleStatementNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StartStatementNode.d.ts +11 -0
- package/dist/types/ast/nodes/StartStatementNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/StateDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StateModuleDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StateModuleEventDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StepDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/StopStatementNode.d.ts +11 -0
- package/dist/types/ast/nodes/StopStatementNode.d.ts.map +1 -0
- package/dist/types/ast/nodes/VariableDeclarationNode.d.ts.map +1 -1
- package/dist/types/ast/nodes/index.d.ts +3 -0
- package/dist/types/ast/nodes/index.d.ts.map +1 -1
- package/dist/types/ast/operators/ArithmaticOperator.d.ts +1 -1
- package/dist/types/ast/operators/ArithmaticOperator.d.ts.map +1 -1
- package/dist/types/ast/operators/OtherOperator.d.ts +1 -1
- package/dist/types/ast/operators/OtherOperator.d.ts.map +1 -1
- package/dist/types/ast/unions/ProtocolBodyUnion.d.ts +2 -2
- package/dist/types/ast/unions/ProtocolBodyUnion.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +6 -4
- package/dist/bin/functionality.js.map +0 -1
package/bin/functionality.ts
CHANGED
|
@@ -7,9 +7,11 @@ import {
|
|
|
7
7
|
fromSourceCodeToBinary,
|
|
8
8
|
fromSourceCodeToFullAst,
|
|
9
9
|
fromSourceCodeToMiniAst,
|
|
10
|
-
miniAstFromBinaryBuffer
|
|
10
|
+
miniAstFromBinaryBuffer,
|
|
11
|
+
generateCppFromProtocolAst
|
|
11
12
|
} from "@/services";
|
|
12
13
|
import type {SourceResolverAsync, SourceResolverSync} from "@/types";
|
|
14
|
+
import type {CppGeneratorOptions} from "@/services/cppGenerator";
|
|
13
15
|
import {version} from "../package.json";
|
|
14
16
|
import {readFileSync} from "fs";
|
|
15
17
|
import {writeFileSync} from "node:fs";
|
|
@@ -24,6 +26,8 @@ export {
|
|
|
24
26
|
miniAstFromBinaryBuffer
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
export type {SourceResolverAsync, SourceResolverSync}
|
|
30
|
+
|
|
27
31
|
export const sourceResolverAsync: SourceResolverAsync = (filePath: string) => {
|
|
28
32
|
return readFile(filePath, "utf-8")
|
|
29
33
|
};
|
|
@@ -179,6 +183,66 @@ export async function fromBinary(inputPath: string, outputPath: string) {
|
|
|
179
183
|
}
|
|
180
184
|
}
|
|
181
185
|
|
|
186
|
+
export async function toCpp(inputPath: string, outputDir?: string, options?: CppGeneratorOptions) {
|
|
187
|
+
console.log(`[BattleScript ${version}] toCpp: ${inputPath}`);
|
|
188
|
+
try {
|
|
189
|
+
const sourceCode = await sourceResolverAsync(inputPath);
|
|
190
|
+
const ast = fromSourceCodeToFullAst(sourceCode, {
|
|
191
|
+
filePath: inputPath,
|
|
192
|
+
includeMetaData: false,
|
|
193
|
+
sourceResolver: sourceResolverSync
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
const result = generateCppFromProtocolAst(ast, options);
|
|
197
|
+
|
|
198
|
+
// Determine output directory
|
|
199
|
+
const outputDirectory = outputDir ?? dirname(inputPath);
|
|
200
|
+
const headerPath = join(outputDirectory, result.headerFileName);
|
|
201
|
+
const sourcePath = join(outputDirectory, result.sourceFileName);
|
|
202
|
+
|
|
203
|
+
await writeFile(headerPath, result.headerContent);
|
|
204
|
+
await writeFile(sourcePath, result.sourceContent);
|
|
205
|
+
|
|
206
|
+
console.log(`[BattleScript ${version}] Generated C++ header: ${headerPath}`);
|
|
207
|
+
console.log(`[BattleScript ${version}] Generated C++ source: ${sourcePath}`);
|
|
208
|
+
|
|
209
|
+
return result;
|
|
210
|
+
} catch (error) {
|
|
211
|
+
console.error(`[BattleScript ${version}] Error:`, (error as Error).stack);
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export function toCppSync(inputPath: string, outputDir?: string, options?: CppGeneratorOptions) {
|
|
217
|
+
console.log(`[BattleScript ${version}] toCppSync: ${inputPath}`);
|
|
218
|
+
try {
|
|
219
|
+
const sourceCode = sourceResolverSync(inputPath);
|
|
220
|
+
const ast = fromSourceCodeToFullAst(sourceCode, {
|
|
221
|
+
filePath: inputPath,
|
|
222
|
+
includeMetaData: false,
|
|
223
|
+
sourceResolver: sourceResolverSync
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
const result = generateCppFromProtocolAst(ast, options);
|
|
227
|
+
|
|
228
|
+
// Determine output directory
|
|
229
|
+
const outputDirectory = outputDir ?? dirname(inputPath);
|
|
230
|
+
const headerPath = join(outputDirectory, result.headerFileName);
|
|
231
|
+
const sourcePath = join(outputDirectory, result.sourceFileName);
|
|
232
|
+
|
|
233
|
+
writeFileSync(headerPath, result.headerContent);
|
|
234
|
+
writeFileSync(sourcePath, result.sourceContent);
|
|
235
|
+
|
|
236
|
+
console.log(`[BattleScript ${version}] Generated C++ header: ${headerPath}`);
|
|
237
|
+
console.log(`[BattleScript ${version}] Generated C++ source: ${sourcePath}`);
|
|
238
|
+
|
|
239
|
+
return result;
|
|
240
|
+
} catch (error) {
|
|
241
|
+
console.error(`[BattleScript ${version}] Error:`, (error as Error).stack);
|
|
242
|
+
process.exit(1);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
182
246
|
export function changeExtension(filePath: string, newExt: string): string {
|
|
183
247
|
const dir = dirname(filePath);
|
|
184
248
|
const base = basename(filePath, extname(filePath));
|