@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.
Files changed (182) hide show
  1. package/bin/functionality.ts +33 -31
  2. package/bin/index.js +4249 -2529
  3. package/bin/index.js.map +1 -1
  4. package/bin/index.ts +16 -28
  5. package/dist/bin/functionality.d.ts +1 -1
  6. package/dist/bin/functionality.d.ts.map +1 -1
  7. package/dist/exports/typescript/enums/EnumNodeKind.d.ts +7 -1
  8. package/dist/exports/typescript/enums/EnumNodeKind.d.ts.map +1 -1
  9. package/dist/exports/typescript/enums/EnumNodeProp.d.ts +3 -1
  10. package/dist/exports/typescript/enums/EnumNodeProp.d.ts.map +1 -1
  11. package/dist/exports/typescript/helpers/miniAstLayout.d.ts +4 -0
  12. package/dist/exports/typescript/helpers/miniAstLayout.d.ts.map +1 -0
  13. package/dist/index.js +4182 -2584
  14. package/dist/index.js.map +1 -1
  15. package/dist/nativeLibraries/time/index.d.ts +3 -0
  16. package/dist/nativeLibraries/time/index.d.ts.map +1 -0
  17. package/dist/scripts/createAstNode.d.ts +2 -0
  18. package/dist/scripts/createAstNode.d.ts.map +1 -0
  19. package/dist/scripts/exportGen/helpers/generateHelpers.d.ts.map +1 -1
  20. package/dist/services/fullAst/BattleScriptFromAST.d.ts +9 -2
  21. package/dist/services/fullAst/BattleScriptFromAST.d.ts.map +1 -1
  22. package/dist/services/fullAst/BattleScriptToAST.d.ts +10 -2
  23. package/dist/services/fullAst/BattleScriptToAST.d.ts.map +1 -1
  24. package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts +88 -78
  25. package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts.map +1 -1
  26. package/dist/services/grammar/ts/language/BattleScriptListener.d.ts +121 -0
  27. package/dist/services/grammar/ts/language/BattleScriptListener.d.ts.map +1 -1
  28. package/dist/services/grammar/ts/language/BattleScriptParser.d.ts +258 -95
  29. package/dist/services/grammar/ts/language/BattleScriptParser.d.ts.map +1 -1
  30. package/dist/services/grammar/ts/language/BattleScriptVisitor.d.ts +77 -0
  31. package/dist/services/grammar/ts/language/BattleScriptVisitor.d.ts.map +1 -1
  32. package/dist/services/index.d.ts +0 -1
  33. package/dist/services/index.d.ts.map +1 -1
  34. package/dist/services/miniAst/BattleScriptToMiniAST.d.ts.map +1 -1
  35. package/dist/services/miniAst/MiniAstToFullAst.d.ts +28 -0
  36. package/dist/services/miniAst/MiniAstToFullAst.d.ts.map +1 -0
  37. package/dist/services/miniAst/binaryTypeToByteSize.d.ts +1 -1
  38. package/dist/services/miniAst/index.d.ts +1 -0
  39. package/dist/services/miniAst/index.d.ts.map +1 -1
  40. package/dist/services/miniAst/miniAstLayout.d.ts.map +1 -1
  41. package/dist/services/parser.d.ts +1 -3
  42. package/dist/services/parser.d.ts.map +1 -1
  43. package/dist/tsconfig.types.tsbuildinfo +1 -1
  44. package/dist/types/ast/nodes/AfterDeclarationNode.d.ts +3 -0
  45. package/dist/types/ast/nodes/AfterDeclarationNode.d.ts.map +1 -1
  46. package/dist/types/ast/nodes/AfterExpressionNode.d.ts +3 -0
  47. package/dist/types/ast/nodes/AfterExpressionNode.d.ts.map +1 -1
  48. package/dist/types/ast/nodes/ArrayExpressionNode.d.ts +3 -0
  49. package/dist/types/ast/nodes/ArrayExpressionNode.d.ts.map +1 -1
  50. package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts +3 -0
  51. package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts.map +1 -1
  52. package/dist/types/ast/nodes/AssignmentPatternNode.d.ts +3 -0
  53. package/dist/types/ast/nodes/AssignmentPatternNode.d.ts.map +1 -1
  54. package/dist/types/ast/nodes/AstNode.d.ts +2 -2
  55. package/dist/types/ast/nodes/AstNode.d.ts.map +1 -1
  56. package/dist/types/ast/nodes/BinaryExpressionNode.d.ts +3 -0
  57. package/dist/types/ast/nodes/BinaryExpressionNode.d.ts.map +1 -1
  58. package/dist/types/ast/nodes/BlockStatementNode.d.ts +3 -0
  59. package/dist/types/ast/nodes/BlockStatementNode.d.ts.map +1 -1
  60. package/dist/types/ast/nodes/BreakStatementNode.d.ts +3 -0
  61. package/dist/types/ast/nodes/BreakStatementNode.d.ts.map +1 -1
  62. package/dist/types/ast/nodes/CallExpressionNode.d.ts +3 -0
  63. package/dist/types/ast/nodes/CallExpressionNode.d.ts.map +1 -1
  64. package/dist/types/ast/nodes/CancelStatementNode.d.ts +3 -0
  65. package/dist/types/ast/nodes/CancelStatementNode.d.ts.map +1 -1
  66. package/dist/types/ast/nodes/CatchStatementNode.d.ts +3 -0
  67. package/dist/types/ast/nodes/CatchStatementNode.d.ts.map +1 -1
  68. package/dist/types/ast/nodes/CommentNode.d.ts +3 -0
  69. package/dist/types/ast/nodes/CommentNode.d.ts.map +1 -1
  70. package/dist/types/ast/nodes/ConstantDeclarationNode.d.ts +3 -0
  71. package/dist/types/ast/nodes/ConstantDeclarationNode.d.ts.map +1 -1
  72. package/dist/types/ast/nodes/ConstantDeclaratorNode.d.ts +3 -0
  73. package/dist/types/ast/nodes/ConstantDeclaratorNode.d.ts.map +1 -1
  74. package/dist/types/ast/nodes/ContinueStatementNode.d.ts +3 -0
  75. package/dist/types/ast/nodes/ContinueStatementNode.d.ts.map +1 -1
  76. package/dist/types/ast/nodes/CustomTypeNode.d.ts +3 -0
  77. package/dist/types/ast/nodes/CustomTypeNode.d.ts.map +1 -1
  78. package/dist/types/ast/nodes/DataTypeNode.d.ts +3 -0
  79. package/dist/types/ast/nodes/DataTypeNode.d.ts.map +1 -1
  80. package/dist/types/ast/nodes/DefineStatementNode.d.ts +14 -0
  81. package/dist/types/ast/nodes/DefineStatementNode.d.ts.map +1 -0
  82. package/dist/types/ast/nodes/EnumDeclarationNode.d.ts +14 -0
  83. package/dist/types/ast/nodes/EnumDeclarationNode.d.ts.map +1 -0
  84. package/dist/types/ast/nodes/EvaluateCaseNode.d.ts +3 -0
  85. package/dist/types/ast/nodes/EvaluateCaseNode.d.ts.map +1 -1
  86. package/dist/types/ast/nodes/EvaluateFallbackNode.d.ts +3 -0
  87. package/dist/types/ast/nodes/EvaluateFallbackNode.d.ts.map +1 -1
  88. package/dist/types/ast/nodes/EvaluateStatementNode.d.ts +3 -0
  89. package/dist/types/ast/nodes/EvaluateStatementNode.d.ts.map +1 -1
  90. package/dist/types/ast/nodes/EventDeclarationNode.d.ts +3 -0
  91. package/dist/types/ast/nodes/EventDeclarationNode.d.ts.map +1 -1
  92. package/dist/types/ast/nodes/EveryDeclarationNode.d.ts +3 -0
  93. package/dist/types/ast/nodes/EveryDeclarationNode.d.ts.map +1 -1
  94. package/dist/types/ast/nodes/EveryExpressionNode.d.ts +3 -0
  95. package/dist/types/ast/nodes/EveryExpressionNode.d.ts.map +1 -1
  96. package/dist/types/ast/nodes/ExpressionStatementNode.d.ts +3 -0
  97. package/dist/types/ast/nodes/ExpressionStatementNode.d.ts.map +1 -1
  98. package/dist/types/ast/nodes/ForStatementNode.d.ts +3 -0
  99. package/dist/types/ast/nodes/ForStatementNode.d.ts.map +1 -1
  100. package/dist/types/ast/nodes/FunctionDeclarationNode.d.ts +3 -0
  101. package/dist/types/ast/nodes/FunctionDeclarationNode.d.ts.map +1 -1
  102. package/dist/types/ast/nodes/FunctionDefinitionNode.d.ts +3 -0
  103. package/dist/types/ast/nodes/FunctionDefinitionNode.d.ts.map +1 -1
  104. package/dist/types/ast/nodes/IdentifierNode.d.ts +3 -0
  105. package/dist/types/ast/nodes/IdentifierNode.d.ts.map +1 -1
  106. package/dist/types/ast/nodes/IfStatementNode.d.ts +3 -0
  107. package/dist/types/ast/nodes/IfStatementNode.d.ts.map +1 -1
  108. package/dist/types/ast/nodes/ImportDeclarationNode.d.ts +3 -0
  109. package/dist/types/ast/nodes/ImportDeclarationNode.d.ts.map +1 -1
  110. package/dist/types/ast/nodes/InterfaceNode.d.ts +3 -0
  111. package/dist/types/ast/nodes/InterfaceNode.d.ts.map +1 -1
  112. package/dist/types/ast/nodes/InterfacePropertyDeclarationNode.d.ts +3 -0
  113. package/dist/types/ast/nodes/InterfacePropertyDeclarationNode.d.ts.map +1 -1
  114. package/dist/types/ast/nodes/LiteralBooleanNode.d.ts +2 -1
  115. package/dist/types/ast/nodes/LiteralBooleanNode.d.ts.map +1 -1
  116. package/dist/types/ast/nodes/LiteralDoubleNode.d.ts +2 -0
  117. package/dist/types/ast/nodes/LiteralDoubleNode.d.ts.map +1 -1
  118. package/dist/types/ast/nodes/LiteralFloatNode.d.ts +2 -0
  119. package/dist/types/ast/nodes/LiteralFloatNode.d.ts.map +1 -1
  120. package/dist/types/ast/nodes/LiteralIntNode.d.ts +2 -1
  121. package/dist/types/ast/nodes/LiteralIntNode.d.ts.map +1 -1
  122. package/dist/types/ast/nodes/LiteralNullNode.d.ts +2 -1
  123. package/dist/types/ast/nodes/LiteralNullNode.d.ts.map +1 -1
  124. package/dist/types/ast/nodes/LiteralStringNode.d.ts +2 -1
  125. package/dist/types/ast/nodes/LiteralStringNode.d.ts.map +1 -1
  126. package/dist/types/ast/nodes/LiteralUndefinedNode.d.ts +2 -1
  127. package/dist/types/ast/nodes/LiteralUndefinedNode.d.ts.map +1 -1
  128. package/dist/types/ast/nodes/MemberExpressionNode.d.ts +3 -0
  129. package/dist/types/ast/nodes/MemberExpressionNode.d.ts.map +1 -1
  130. package/dist/types/ast/nodes/ObjectExpressionNode.d.ts +3 -0
  131. package/dist/types/ast/nodes/ObjectExpressionNode.d.ts.map +1 -1
  132. package/dist/types/ast/nodes/ObjectPropertyNode.d.ts +3 -0
  133. package/dist/types/ast/nodes/ObjectPropertyNode.d.ts.map +1 -1
  134. package/dist/types/ast/nodes/OptimisedAssignmentExpressionNode.d.ts +3 -0
  135. package/dist/types/ast/nodes/OptimisedAssignmentExpressionNode.d.ts.map +1 -1
  136. package/dist/types/ast/nodes/OptimisedBinaryExpressionNode.d.ts +3 -0
  137. package/dist/types/ast/nodes/OptimisedBinaryExpressionNode.d.ts.map +1 -1
  138. package/dist/types/ast/nodes/OptimisedMemberExpressionNode.d.ts +3 -0
  139. package/dist/types/ast/nodes/OptimisedMemberExpressionNode.d.ts.map +1 -1
  140. package/dist/types/ast/nodes/OptimisedUpdateExpressionNode.d.ts +3 -0
  141. package/dist/types/ast/nodes/OptimisedUpdateExpressionNode.d.ts.map +1 -1
  142. package/dist/types/ast/nodes/ProgramDeclarationNode.d.ts +3 -0
  143. package/dist/types/ast/nodes/ProgramDeclarationNode.d.ts.map +1 -1
  144. package/dist/types/ast/nodes/ProgramPropertyDeclarationNode.d.ts +3 -0
  145. package/dist/types/ast/nodes/ProgramPropertyDeclarationNode.d.ts.map +1 -1
  146. package/dist/types/ast/nodes/ProtocolDeclarationNode.d.ts +16 -0
  147. package/dist/types/ast/nodes/ProtocolDeclarationNode.d.ts.map +1 -0
  148. package/dist/types/ast/nodes/ProtocolTypeNode.d.ts +13 -0
  149. package/dist/types/ast/nodes/ProtocolTypeNode.d.ts.map +1 -0
  150. package/dist/types/ast/nodes/RequireStatementNode.d.ts +15 -0
  151. package/dist/types/ast/nodes/RequireStatementNode.d.ts.map +1 -0
  152. package/dist/types/ast/nodes/RestElementNode.d.ts +3 -0
  153. package/dist/types/ast/nodes/RestElementNode.d.ts.map +1 -1
  154. package/dist/types/ast/nodes/ReturnStatementNode.d.ts +3 -0
  155. package/dist/types/ast/nodes/ReturnStatementNode.d.ts.map +1 -1
  156. package/dist/types/ast/nodes/RootNode.d.ts +3 -0
  157. package/dist/types/ast/nodes/RootNode.d.ts.map +1 -1
  158. package/dist/types/ast/nodes/StateDeclarationNode.d.ts +3 -0
  159. package/dist/types/ast/nodes/StateDeclarationNode.d.ts.map +1 -1
  160. package/dist/types/ast/nodes/StepDeclarationNode.d.ts +14 -0
  161. package/dist/types/ast/nodes/StepDeclarationNode.d.ts.map +1 -0
  162. package/dist/types/ast/nodes/TransportStatementNode.d.ts +13 -0
  163. package/dist/types/ast/nodes/TransportStatementNode.d.ts.map +1 -0
  164. package/dist/types/ast/nodes/UnaryExpressionNode.d.ts +3 -0
  165. package/dist/types/ast/nodes/UnaryExpressionNode.d.ts.map +1 -1
  166. package/dist/types/ast/nodes/UpdateExpressionNode.d.ts +3 -0
  167. package/dist/types/ast/nodes/UpdateExpressionNode.d.ts.map +1 -1
  168. package/dist/types/ast/nodes/VariableDeclarationNode.d.ts +3 -0
  169. package/dist/types/ast/nodes/VariableDeclarationNode.d.ts.map +1 -1
  170. package/dist/types/ast/nodes/VariableDeclaratorNode.d.ts +3 -0
  171. package/dist/types/ast/nodes/VariableDeclaratorNode.d.ts.map +1 -1
  172. package/dist/types/ast/nodes/WildcardNode.d.ts +3 -0
  173. package/dist/types/ast/nodes/WildcardNode.d.ts.map +1 -1
  174. package/dist/types/ast/nodes/index.d.ts +6 -0
  175. package/dist/types/ast/nodes/index.d.ts.map +1 -1
  176. package/dist/types/ast/unions/ProtocolBodyUnion.d.ts +3 -0
  177. package/dist/types/ast/unions/ProtocolBodyUnion.d.ts.map +1 -0
  178. package/dist/types/ast/unions/StepBodyUnion.d.ts +3 -0
  179. package/dist/types/ast/unions/StepBodyUnion.d.ts.map +1 -0
  180. package/dist/types/ast/unions/TypeUnion.d.ts +2 -2
  181. package/dist/types/ast/unions/TypeUnion.d.ts.map +1 -1
  182. package/package.json +7 -11
@@ -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, {filePath: inputPath, includeMetaData: true});
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, {filePath: inputPath, includeMetaData: true});
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, {includeMetaData: true, flatten: true, filePath: inputPath});
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));