ticbuild 1.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.
Files changed (290) hide show
  1. package/.attachments/support_me_on_kofi_beige.png +0 -0
  2. package/.env.example +3 -0
  3. package/.prettierignore +10 -0
  4. package/LICENSE +15 -0
  5. package/README.md +429 -0
  6. package/debug/obj/resolvedManifest.ticbuild.jsonc +108 -0
  7. package/dist/backend/ImportedResource.d.ts +11 -0
  8. package/dist/backend/ImportedResource.d.ts.map +1 -0
  9. package/dist/backend/ImportedResource.js +53 -0
  10. package/dist/backend/ImportedResource.js.map +1 -0
  11. package/dist/backend/ImportedResourceTypes.d.ts +24 -0
  12. package/dist/backend/ImportedResourceTypes.d.ts.map +1 -0
  13. package/dist/backend/ImportedResourceTypes.js +35 -0
  14. package/dist/backend/ImportedResourceTypes.js.map +1 -0
  15. package/dist/backend/codeBanking.test.d.ts +2 -0
  16. package/dist/backend/codeBanking.test.d.ts.map +1 -0
  17. package/dist/backend/codeBanking.test.js.map +1 -0
  18. package/dist/backend/importResources.d.ts +4 -0
  19. package/dist/backend/importResources.d.ts.map +1 -0
  20. package/dist/backend/importResources.js +58 -0
  21. package/dist/backend/importResources.js.map +1 -0
  22. package/dist/backend/importUtils.d.ts +14 -0
  23. package/dist/backend/importUtils.d.ts.map +1 -0
  24. package/dist/backend/importUtils.js +77 -0
  25. package/dist/backend/importUtils.js.map +1 -0
  26. package/dist/backend/importers/LuaCodeImporter.d.ts +47 -0
  27. package/dist/backend/importers/LuaCodeImporter.d.ts.map +1 -0
  28. package/dist/backend/importers/LuaCodeImporter.js +196 -0
  29. package/dist/backend/importers/LuaCodeImporter.js.map +1 -0
  30. package/dist/backend/importers/LuaCodeImporter.test.d.ts +2 -0
  31. package/dist/backend/importers/LuaCodeImporter.test.d.ts.map +1 -0
  32. package/dist/backend/importers/LuaCodeImporter.test.js.map +1 -0
  33. package/dist/backend/importers/binaryResourceImporter.d.ts +22 -0
  34. package/dist/backend/importers/binaryResourceImporter.d.ts.map +1 -0
  35. package/dist/backend/importers/binaryResourceImporter.js +53 -0
  36. package/dist/backend/importers/binaryResourceImporter.js.map +1 -0
  37. package/dist/backend/importers/luaImporter.d.ts +1 -0
  38. package/dist/backend/importers/luaImporter.d.ts.map +1 -0
  39. package/dist/backend/importers/luaImporter.js +3 -0
  40. package/dist/backend/importers/luaImporter.js.map +1 -0
  41. package/dist/backend/importers/textResourceImporter.d.ts +23 -0
  42. package/dist/backend/importers/textResourceImporter.d.ts.map +1 -0
  43. package/dist/backend/importers/textResourceImporter.js +55 -0
  44. package/dist/backend/importers/textResourceImporter.js.map +1 -0
  45. package/dist/backend/importers/tic80CartImporter.d.ts +21 -0
  46. package/dist/backend/importers/tic80CartImporter.d.ts.map +1 -0
  47. package/dist/backend/importers/tic80CartImporter.js +96 -0
  48. package/dist/backend/importers/tic80CartImporter.js.map +1 -0
  49. package/dist/backend/loadAllImports.d.ts +1 -0
  50. package/dist/backend/loadAllImports.d.ts.map +1 -0
  51. package/dist/backend/loadAllImports.js +3 -0
  52. package/dist/backend/loadAllImports.js.map +1 -0
  53. package/dist/backend/luaBinaryEncoding.d.ts +6 -0
  54. package/dist/backend/luaBinaryEncoding.d.ts.map +1 -0
  55. package/dist/backend/luaBinaryEncoding.js +94 -0
  56. package/dist/backend/luaBinaryEncoding.js.map +1 -0
  57. package/dist/backend/luaPreprocessor.d.ts +8 -0
  58. package/dist/backend/luaPreprocessor.d.ts.map +1 -0
  59. package/dist/backend/luaPreprocessor.js +862 -0
  60. package/dist/backend/luaPreprocessor.js.map +1 -0
  61. package/dist/backend/luaPreprocessor.test.d.ts +2 -0
  62. package/dist/backend/luaPreprocessor.test.d.ts.map +1 -0
  63. package/dist/backend/luaPreprocessor.test.js.map +1 -0
  64. package/dist/backend/manifestLoader.d.ts +19 -0
  65. package/dist/backend/manifestLoader.d.ts.map +1 -0
  66. package/dist/backend/manifestLoader.js +142 -0
  67. package/dist/backend/manifestLoader.js.map +1 -0
  68. package/dist/backend/manifestLoader.test.d.ts +2 -0
  69. package/dist/backend/manifestLoader.test.d.ts.map +1 -0
  70. package/dist/backend/manifestLoader.test.js.map +1 -0
  71. package/dist/backend/manifestTypes.d.ts +454 -0
  72. package/dist/backend/manifestTypes.d.ts.map +1 -0
  73. package/dist/backend/manifestTypes.js +28 -0
  74. package/dist/backend/manifestTypes.js.map +1 -0
  75. package/dist/backend/project.d.ts +24 -0
  76. package/dist/backend/project.d.ts.map +1 -0
  77. package/dist/backend/project.js +159 -0
  78. package/dist/backend/project.js.map +1 -0
  79. package/dist/backend/projectCore.d.ts +34 -0
  80. package/dist/backend/projectCore.d.ts.map +1 -0
  81. package/dist/backend/projectCore.js +226 -0
  82. package/dist/backend/projectCore.js.map +1 -0
  83. package/dist/backend/tic80Resolver.d.ts +6 -0
  84. package/dist/backend/tic80Resolver.d.ts.map +1 -0
  85. package/dist/backend/tic80Resolver.js +66 -0
  86. package/dist/backend/tic80Resolver.js.map +1 -0
  87. package/dist/buildInfo.d.ts +9 -0
  88. package/dist/buildInfo.d.ts.map +1 -0
  89. package/dist/buildInfo.js +13 -0
  90. package/dist/buildInfo.js.map +1 -0
  91. package/dist/frontend/build.d.ts +3 -0
  92. package/dist/frontend/build.d.ts.map +1 -0
  93. package/dist/frontend/build.js +8 -0
  94. package/dist/frontend/build.js.map +1 -0
  95. package/dist/frontend/codeBankWarnings.test.d.ts +2 -0
  96. package/dist/frontend/codeBankWarnings.test.d.ts.map +1 -0
  97. package/dist/frontend/codeBankWarnings.test.js.map +1 -0
  98. package/dist/frontend/core.d.ts +3 -0
  99. package/dist/frontend/core.d.ts.map +1 -0
  100. package/dist/frontend/core.js +259 -0
  101. package/dist/frontend/core.js.map +1 -0
  102. package/dist/frontend/init.d.ts +7 -0
  103. package/dist/frontend/init.d.ts.map +1 -0
  104. package/dist/frontend/init.js +95 -0
  105. package/dist/frontend/init.js.map +1 -0
  106. package/dist/frontend/parseOptions.d.ts +7 -0
  107. package/dist/frontend/parseOptions.d.ts.map +1 -0
  108. package/dist/frontend/parseOptions.js +68 -0
  109. package/dist/frontend/parseOptions.js.map +1 -0
  110. package/dist/frontend/run.d.ts +3 -0
  111. package/dist/frontend/run.d.ts.map +1 -0
  112. package/dist/frontend/run.js +63 -0
  113. package/dist/frontend/run.js.map +1 -0
  114. package/dist/frontend/watch.d.ts +3 -0
  115. package/dist/frontend/watch.d.ts.map +1 -0
  116. package/dist/frontend/watch.js +208 -0
  117. package/dist/frontend/watch.js.map +1 -0
  118. package/dist/index.d.ts +3 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +191 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/obj/resolvedManifest.ticbuild.jsonc +110 -0
  123. package/dist/obj/variables.json +19 -0
  124. package/dist/utils/algorithms.d.ts +4 -0
  125. package/dist/utils/algorithms.d.ts.map +1 -0
  126. package/dist/utils/algorithms.js +15 -0
  127. package/dist/utils/algorithms.js.map +1 -0
  128. package/dist/utils/algorithms.test.d.ts +2 -0
  129. package/dist/utils/algorithms.test.d.ts.map +1 -0
  130. package/dist/utils/algorithms.test.js.map +1 -0
  131. package/dist/utils/bin.d.ts +4 -0
  132. package/dist/utils/bin.d.ts.map +1 -0
  133. package/dist/utils/bin.js +16 -0
  134. package/dist/utils/bin.js.map +1 -0
  135. package/dist/utils/charMap.d.ts +28 -0
  136. package/dist/utils/charMap.d.ts.map +1 -0
  137. package/dist/utils/charMap.js +31 -0
  138. package/dist/utils/charMap.js.map +1 -0
  139. package/dist/utils/console.d.ts +10 -0
  140. package/dist/utils/console.d.ts.map +1 -0
  141. package/dist/utils/console.js +66 -0
  142. package/dist/utils/console.js.map +1 -0
  143. package/dist/utils/encoding/b85.d.ts +5 -0
  144. package/dist/utils/encoding/b85.d.ts.map +1 -0
  145. package/dist/utils/encoding/b85.js +136 -0
  146. package/dist/utils/encoding/b85.js.map +1 -0
  147. package/dist/utils/encoding/codecRegistry.d.ts +333 -0
  148. package/dist/utils/encoding/codecRegistry.d.ts.map +1 -0
  149. package/dist/utils/encoding/codecRegistry.js +81 -0
  150. package/dist/utils/encoding/codecRegistry.js.map +1 -0
  151. package/dist/utils/encoding/hex.d.ts +3 -0
  152. package/dist/utils/encoding/hex.d.ts.map +1 -0
  153. package/dist/utils/encoding/hex.js +30 -0
  154. package/dist/utils/encoding/hex.js.map +1 -0
  155. package/dist/utils/encoding/lz.d.ts +12 -0
  156. package/dist/utils/encoding/lz.d.ts.map +1 -0
  157. package/dist/utils/encoding/lz.js +271 -0
  158. package/dist/utils/encoding/lz.js.map +1 -0
  159. package/dist/utils/enum.d.ts +45 -0
  160. package/dist/utils/enum.d.ts.map +1 -0
  161. package/dist/utils/enum.js +135 -0
  162. package/dist/utils/enum.js.map +1 -0
  163. package/dist/utils/errorHandling.d.ts +13 -0
  164. package/dist/utils/errorHandling.d.ts.map +1 -0
  165. package/dist/utils/errorHandling.js +18 -0
  166. package/dist/utils/errorHandling.js.map +1 -0
  167. package/dist/utils/fileSystem.d.ts +16 -0
  168. package/dist/utils/fileSystem.d.ts.map +1 -0
  169. package/dist/utils/fileSystem.js +161 -0
  170. package/dist/utils/fileSystem.js.map +1 -0
  171. package/dist/utils/help.d.ts +7 -0
  172. package/dist/utils/help.d.ts.map +1 -0
  173. package/dist/utils/help.js +87 -0
  174. package/dist/utils/help.js.map +1 -0
  175. package/dist/utils/lua/luaUtils.d.ts +1 -0
  176. package/dist/utils/lua/luaUtils.d.ts.map +1 -0
  177. package/dist/utils/lua/luaUtils.js +3 -0
  178. package/dist/utils/lua/luaUtils.js.map +1 -0
  179. package/dist/utils/lua/lua_alias_expressions.d.ts +20 -0
  180. package/dist/utils/lua/lua_alias_expressions.d.ts.map +1 -0
  181. package/dist/utils/lua/lua_alias_expressions.js +233 -0
  182. package/dist/utils/lua/lua_alias_expressions.js.map +1 -0
  183. package/dist/utils/lua/lua_alias_literals.d.ts +20 -0
  184. package/dist/utils/lua/lua_alias_literals.d.ts.map +1 -0
  185. package/dist/utils/lua/lua_alias_literals.js +165 -0
  186. package/dist/utils/lua/lua_alias_literals.js.map +1 -0
  187. package/dist/utils/lua/lua_alias_shared.d.ts +31 -0
  188. package/dist/utils/lua/lua_alias_shared.d.ts.map +1 -0
  189. package/dist/utils/lua/lua_alias_shared.js +415 -0
  190. package/dist/utils/lua/lua_alias_shared.js.map +1 -0
  191. package/dist/utils/lua/lua_ast.d.ts +9 -0
  192. package/dist/utils/lua/lua_ast.d.ts.map +1 -0
  193. package/dist/utils/lua/lua_ast.js +90 -0
  194. package/dist/utils/lua/lua_ast.js.map +1 -0
  195. package/dist/utils/lua/lua_fundamentals.d.ts +14 -0
  196. package/dist/utils/lua/lua_fundamentals.d.ts.map +1 -0
  197. package/dist/utils/lua/lua_fundamentals.js +93 -0
  198. package/dist/utils/lua/lua_fundamentals.js.map +1 -0
  199. package/dist/utils/lua/lua_pack_locals.d.ts +3 -0
  200. package/dist/utils/lua/lua_pack_locals.d.ts.map +1 -0
  201. package/dist/utils/lua/lua_pack_locals.js +206 -0
  202. package/dist/utils/lua/lua_pack_locals.js.map +1 -0
  203. package/dist/utils/lua/lua_processor.d.ts +65 -0
  204. package/dist/utils/lua/lua_processor.d.ts.map +1 -0
  205. package/dist/utils/lua/lua_processor.js +1153 -0
  206. package/dist/utils/lua/lua_processor.js.map +1 -0
  207. package/dist/utils/lua/lua_processor.test.d.ts +2 -0
  208. package/dist/utils/lua/lua_processor.test.d.ts.map +1 -0
  209. package/dist/utils/lua/lua_processor.test.js.map +1 -0
  210. package/dist/utils/lua/lua_remove_unused_functions.d.ts +6 -0
  211. package/dist/utils/lua/lua_remove_unused_functions.d.ts.map +1 -0
  212. package/dist/utils/lua/lua_remove_unused_functions.js +474 -0
  213. package/dist/utils/lua/lua_remove_unused_functions.js.map +1 -0
  214. package/dist/utils/lua/lua_remove_unused_locals.d.ts +3 -0
  215. package/dist/utils/lua/lua_remove_unused_locals.d.ts.map +1 -0
  216. package/dist/utils/lua/lua_remove_unused_locals.js +303 -0
  217. package/dist/utils/lua/lua_remove_unused_locals.js.map +1 -0
  218. package/dist/utils/lua/lua_rename_allowed_table_keys.d.ts +3 -0
  219. package/dist/utils/lua/lua_rename_allowed_table_keys.d.ts.map +1 -0
  220. package/dist/utils/lua/lua_rename_allowed_table_keys.js +157 -0
  221. package/dist/utils/lua/lua_rename_allowed_table_keys.js.map +1 -0
  222. package/dist/utils/lua/lua_rename_table_fields.d.ts +3 -0
  223. package/dist/utils/lua/lua_rename_table_fields.d.ts.map +1 -0
  224. package/dist/utils/lua/lua_rename_table_fields.js +427 -0
  225. package/dist/utils/lua/lua_rename_table_fields.js.map +1 -0
  226. package/dist/utils/lua/lua_renamer.d.ts +3 -0
  227. package/dist/utils/lua/lua_renamer.d.ts.map +1 -0
  228. package/dist/utils/lua/lua_renamer.js +229 -0
  229. package/dist/utils/lua/lua_renamer.js.map +1 -0
  230. package/dist/utils/lua/lua_simplify.d.ts +3 -0
  231. package/dist/utils/lua/lua_simplify.d.ts.map +1 -0
  232. package/dist/utils/lua/lua_simplify.js +541 -0
  233. package/dist/utils/lua/lua_simplify.js.map +1 -0
  234. package/dist/utils/lua/lua_utils.d.ts +13 -0
  235. package/dist/utils/lua/lua_utils.d.ts.map +1 -0
  236. package/dist/utils/lua/lua_utils.js +58 -0
  237. package/dist/utils/lua/lua_utils.js.map +1 -0
  238. package/dist/utils/math.d.ts +2 -0
  239. package/dist/utils/math.d.ts.map +1 -0
  240. package/dist/utils/math.js +7 -0
  241. package/dist/utils/math.js.map +1 -0
  242. package/dist/utils/math.test.d.ts +2 -0
  243. package/dist/utils/math.test.d.ts.map +1 -0
  244. package/dist/utils/math.test.js.map +1 -0
  245. package/dist/utils/templates.d.ts +3 -0
  246. package/dist/utils/templates.d.ts.map +1 -0
  247. package/dist/utils/templates.js +57 -0
  248. package/dist/utils/templates.js.map +1 -0
  249. package/dist/utils/tic80/bankSupport.test.d.ts +2 -0
  250. package/dist/utils/tic80/bankSupport.test.d.ts.map +1 -0
  251. package/dist/utils/tic80/bankSupport.test.js.map +1 -0
  252. package/dist/utils/tic80/cartLoader.d.ts +3 -0
  253. package/dist/utils/tic80/cartLoader.d.ts.map +1 -0
  254. package/dist/utils/tic80/cartLoader.js +54 -0
  255. package/dist/utils/tic80/cartLoader.js.map +1 -0
  256. package/dist/utils/tic80/cartWriter.d.ts +5 -0
  257. package/dist/utils/tic80/cartWriter.d.ts.map +1 -0
  258. package/dist/utils/tic80/cartWriter.js +95 -0
  259. package/dist/utils/tic80/cartWriter.js.map +1 -0
  260. package/dist/utils/tic80/launch.d.ts +4 -0
  261. package/dist/utils/tic80/launch.d.ts.map +1 -0
  262. package/dist/utils/tic80/launch.js +36 -0
  263. package/dist/utils/tic80/launch.js.map +1 -0
  264. package/dist/utils/tic80/tic80.d.ts +1149 -0
  265. package/dist/utils/tic80/tic80.d.ts.map +1 -0
  266. package/dist/utils/tic80/tic80.js +114 -0
  267. package/dist/utils/tic80/tic80.js.map +1 -0
  268. package/dist/utils/utils.d.ts +13 -0
  269. package/dist/utils/utils.d.ts.map +1 -0
  270. package/dist/utils/utils.js +109 -0
  271. package/dist/utils/utils.js.map +1 -0
  272. package/dist/utils/versionString.d.ts +12 -0
  273. package/dist/utils/versionString.d.ts.map +1 -0
  274. package/dist/utils/versionString.js +33 -0
  275. package/dist/utils/versionString.js.map +1 -0
  276. package/dist/utils/windowPosition.d.ts +10 -0
  277. package/dist/utils/windowPosition.d.ts.map +1 -0
  278. package/dist/utils/windowPosition.js +222 -0
  279. package/dist/utils/windowPosition.js.map +1 -0
  280. package/example.ticbuild.jsonc +94 -0
  281. package/package.json +51 -0
  282. package/templates/help/build.txt +23 -0
  283. package/templates/help/init.txt +23 -0
  284. package/templates/help/main.txt +41 -0
  285. package/templates/help/run.txt +22 -0
  286. package/templates/help/tic80.txt +8 -0
  287. package/templates/help/watch.txt +24 -0
  288. package/templates/minimal/project.ticbuild.jsonc +43 -0
  289. package/ticbuild-1.0.0.tgz +0 -0
  290. package/ticbuild.schema.json +327 -0
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeUnusedLocalsInAST = removeUnusedLocalsInAST;
4
+ function exprHasSideEffects(expr) {
5
+ switch (expr.type) {
6
+ case "CallExpression":
7
+ case "TableCallExpression":
8
+ case "StringCallExpression":
9
+ return true;
10
+ case "UnaryExpression":
11
+ return exprHasSideEffects(expr.argument);
12
+ case "BinaryExpression":
13
+ case "LogicalExpression":
14
+ return exprHasSideEffects(expr.left) || exprHasSideEffects(expr.right);
15
+ case "MemberExpression":
16
+ return exprHasSideEffects(expr.base);
17
+ case "IndexExpression":
18
+ return exprHasSideEffects(expr.base) || exprHasSideEffects(expr.index);
19
+ case "TableConstructorExpression":
20
+ return expr.fields.some(field => {
21
+ if (field.type === "TableKey" || field.type === "TableKeyString") {
22
+ const keySE = field.key ? exprHasSideEffects(field.key) : false;
23
+ const valSE = field.value ? exprHasSideEffects(field.value) : false;
24
+ return keySE || valSE;
25
+ }
26
+ return field.value ? exprHasSideEffects(field.value) : false;
27
+ });
28
+ case "FunctionDeclaration": {
29
+ // Creating a function value is pure; its body executes later.
30
+ // We still walk the body for free-variable discovery elsewhere.
31
+ return false;
32
+ }
33
+ default:
34
+ return false;
35
+ }
36
+ }
37
+ function collectReadsFromExpression(expr, out) {
38
+ switch (expr.type) {
39
+ case "Identifier":
40
+ out.add(expr.name);
41
+ return;
42
+ case "UnaryExpression":
43
+ collectReadsFromExpression(expr.argument, out);
44
+ return;
45
+ case "BinaryExpression":
46
+ case "LogicalExpression":
47
+ collectReadsFromExpression(expr.left, out);
48
+ collectReadsFromExpression(expr.right, out);
49
+ return;
50
+ case "CallExpression":
51
+ collectReadsFromExpression(expr.base, out);
52
+ expr.arguments.forEach(arg => collectReadsFromExpression(arg, out));
53
+ return;
54
+ case "TableCallExpression":
55
+ collectReadsFromExpression(expr.base, out);
56
+ collectReadsFromExpression(expr.arguments, out);
57
+ return;
58
+ case "StringCallExpression":
59
+ collectReadsFromExpression(expr.base, out);
60
+ collectReadsFromExpression(expr.argument, out);
61
+ return;
62
+ case "MemberExpression":
63
+ collectReadsFromExpression(expr.base, out);
64
+ if (expr.identifier)
65
+ collectReadsFromExpression(expr.identifier, out);
66
+ return;
67
+ case "IndexExpression":
68
+ collectReadsFromExpression(expr.base, out);
69
+ collectReadsFromExpression(expr.index, out);
70
+ return;
71
+ case "TableConstructorExpression":
72
+ expr.fields.forEach(field => {
73
+ if (field.type === "TableKey" || field.type === "TableKeyString") {
74
+ if (field.key)
75
+ collectReadsFromExpression(field.key, out);
76
+ if (field.value)
77
+ collectReadsFromExpression(field.value, out);
78
+ }
79
+ else if (field.type === "TableValue" && field.value) {
80
+ collectReadsFromExpression(field.value, out);
81
+ }
82
+ });
83
+ return;
84
+ case "FunctionDeclaration": {
85
+ const bodyReads = new Set();
86
+ expr.body.forEach(stmt => collectReadsFromStatement(stmt, bodyReads));
87
+ const defs = new Set();
88
+ expr.parameters.forEach(p => {
89
+ if (p.type === "Identifier")
90
+ defs.add(p.name);
91
+ });
92
+ expr.body.forEach(stmt => collectDefsFromStatement(stmt, defs));
93
+ bodyReads.forEach(name => {
94
+ if (!defs.has(name))
95
+ out.add(name);
96
+ });
97
+ return;
98
+ }
99
+ default:
100
+ return;
101
+ }
102
+ }
103
+ function collectReadsFromStatement(stmt, out) {
104
+ switch (stmt.type) {
105
+ case "LocalStatement":
106
+ if (stmt.init)
107
+ stmt.init.forEach(expr => collectReadsFromExpression(expr, out));
108
+ return;
109
+ case "AssignmentStatement":
110
+ stmt.variables.forEach(v => collectReadsFromExpression(v, out));
111
+ stmt.init.forEach(expr => collectReadsFromExpression(expr, out));
112
+ return;
113
+ case "CallStatement":
114
+ collectReadsFromExpression(stmt.expression, out);
115
+ return;
116
+ case "ReturnStatement":
117
+ stmt.arguments.forEach(arg => collectReadsFromExpression(arg, out));
118
+ return;
119
+ case "IfStatement":
120
+ stmt.clauses.forEach(clause => {
121
+ if (clause.type !== "ElseClause" && clause.condition)
122
+ collectReadsFromExpression(clause.condition, out);
123
+ clause.body.forEach(s => collectReadsFromStatement(s, out));
124
+ });
125
+ return;
126
+ case "WhileStatement":
127
+ collectReadsFromExpression(stmt.condition, out);
128
+ stmt.body.forEach(s => collectReadsFromStatement(s, out));
129
+ return;
130
+ case "RepeatStatement":
131
+ stmt.body.forEach(s => collectReadsFromStatement(s, out));
132
+ collectReadsFromExpression(stmt.condition, out);
133
+ return;
134
+ case "ForNumericStatement":
135
+ collectReadsFromExpression(stmt.start, out);
136
+ collectReadsFromExpression(stmt.end, out);
137
+ if (stmt.step)
138
+ collectReadsFromExpression(stmt.step, out);
139
+ stmt.body.forEach(s => collectReadsFromStatement(s, out));
140
+ return;
141
+ case "ForGenericStatement":
142
+ stmt.iterators.forEach(it => collectReadsFromExpression(it, out));
143
+ stmt.body.forEach(s => collectReadsFromStatement(s, out));
144
+ return;
145
+ case "FunctionDeclaration":
146
+ stmt.body.forEach(s => collectReadsFromStatement(s, out));
147
+ return;
148
+ case "DoStatement":
149
+ stmt.body.forEach(s => collectReadsFromStatement(s, out));
150
+ return;
151
+ default:
152
+ return;
153
+ }
154
+ }
155
+ function collectDefsFromStatement(stmt, out) {
156
+ switch (stmt.type) {
157
+ case "LocalStatement":
158
+ stmt.variables.forEach(v => {
159
+ if (v.type === "Identifier")
160
+ out.add(v.name);
161
+ });
162
+ return;
163
+ case "AssignmentStatement":
164
+ stmt.variables.forEach(v => {
165
+ if (v.type === "Identifier")
166
+ out.add(v.name);
167
+ });
168
+ return;
169
+ case "ForNumericStatement":
170
+ if (stmt.variable.type === "Identifier")
171
+ out.add(stmt.variable.name);
172
+ stmt.body.forEach(s => collectDefsFromStatement(s, out));
173
+ return;
174
+ case "ForGenericStatement":
175
+ stmt.variables.forEach(v => {
176
+ if (v.type === "Identifier")
177
+ out.add(v.name);
178
+ });
179
+ stmt.body.forEach(s => collectDefsFromStatement(s, out));
180
+ return;
181
+ case "IfStatement":
182
+ stmt.clauses.forEach(clause => clause.body.forEach(s => collectDefsFromStatement(s, out)));
183
+ return;
184
+ case "WhileStatement":
185
+ case "RepeatStatement":
186
+ case "DoStatement":
187
+ stmt.body.forEach(s => collectDefsFromStatement(s, out));
188
+ return;
189
+ case "FunctionDeclaration":
190
+ if (stmt.identifier && stmt.identifier.type === "Identifier")
191
+ out.add(stmt.identifier.name);
192
+ stmt.body.forEach(s => collectDefsFromStatement(s, out));
193
+ return;
194
+ default:
195
+ return;
196
+ }
197
+ }
198
+ function rewriteChildBlocks(stmt) {
199
+ switch (stmt.type) {
200
+ case "IfStatement":
201
+ stmt.clauses.forEach(clause => {
202
+ clause.body = removeUnusedLocalsInBlock(clause.body);
203
+ });
204
+ return stmt;
205
+ case "WhileStatement":
206
+ stmt.body = removeUnusedLocalsInBlock(stmt.body);
207
+ return stmt;
208
+ case "RepeatStatement":
209
+ stmt.body = removeUnusedLocalsInBlock(stmt.body);
210
+ return stmt;
211
+ case "ForNumericStatement":
212
+ stmt.body = removeUnusedLocalsInBlock(stmt.body);
213
+ return stmt;
214
+ case "ForGenericStatement":
215
+ stmt.body = removeUnusedLocalsInBlock(stmt.body);
216
+ return stmt;
217
+ case "FunctionDeclaration":
218
+ stmt.body = removeUnusedLocalsInBlock(stmt.body);
219
+ return stmt;
220
+ case "DoStatement":
221
+ stmt.body = removeUnusedLocalsInBlock(stmt.body);
222
+ return stmt;
223
+ default:
224
+ return stmt;
225
+ }
226
+ }
227
+ function removeUnusedLocalsInBlock(body) {
228
+ const used = new Set();
229
+ const kept = [];
230
+ for (let i = body.length - 1; i >= 0; i--) {
231
+ const stmt = rewriteChildBlocks(body[i]);
232
+ const reads = new Set();
233
+ collectReadsFromStatement(stmt, reads);
234
+ const defs = new Set();
235
+ switch (stmt.type) {
236
+ case "LocalStatement":
237
+ stmt.variables.forEach(v => {
238
+ if (v.type === "Identifier")
239
+ defs.add(v.name);
240
+ });
241
+ break;
242
+ case "AssignmentStatement":
243
+ stmt.variables.forEach(v => {
244
+ if (v.type === "Identifier")
245
+ defs.add(v.name);
246
+ });
247
+ break;
248
+ case "ForNumericStatement":
249
+ if (stmt.variable.type === "Identifier")
250
+ defs.add(stmt.variable.name);
251
+ break;
252
+ case "ForGenericStatement":
253
+ stmt.variables.forEach(v => {
254
+ if (v.type === "Identifier")
255
+ defs.add(v.name);
256
+ });
257
+ break;
258
+ case "FunctionDeclaration":
259
+ if (stmt.identifier && stmt.identifier.type === "Identifier")
260
+ defs.add(stmt.identifier.name);
261
+ break;
262
+ default:
263
+ break;
264
+ }
265
+ if (stmt.type === "LocalStatement") {
266
+ const hasSideEffects = (stmt.init || []).some(expr => exprHasSideEffects(expr));
267
+ const usedAfter = new Set(used);
268
+ const liveDefs = [...defs].some(name => usedAfter.has(name));
269
+ if (!liveDefs && !hasSideEffects) {
270
+ // Drop the local entirely; since it is removed, do not add its reads.
271
+ continue;
272
+ }
273
+ // used_before = reads ∪ (used_after − defs)
274
+ const nextUsed = new Set();
275
+ used.forEach(name => {
276
+ if (!defs.has(name))
277
+ nextUsed.add(name);
278
+ });
279
+ reads.forEach(name => nextUsed.add(name));
280
+ used.clear();
281
+ nextUsed.forEach(name => used.add(name));
282
+ kept.push(stmt);
283
+ continue;
284
+ }
285
+ // Generic statement: used_before = reads ∪ (used_after − defs)
286
+ const nextUsed = new Set();
287
+ used.forEach(name => {
288
+ if (!defs.has(name))
289
+ nextUsed.add(name);
290
+ });
291
+ reads.forEach(name => nextUsed.add(name));
292
+ used.clear();
293
+ nextUsed.forEach(name => used.add(name));
294
+ kept.push(stmt);
295
+ }
296
+ kept.reverse();
297
+ return kept;
298
+ }
299
+ function removeUnusedLocalsInAST(ast) {
300
+ ast.body = removeUnusedLocalsInBlock(ast.body);
301
+ return ast;
302
+ }
303
+ //# sourceMappingURL=lua_remove_unused_locals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_remove_unused_locals.js","sourceRoot":"","sources":["../../../src/utils/lua/lua_remove_unused_locals.ts"],"names":[],"mappings":";;AAoVA,0DAGC;AArVD,SAAS,kBAAkB,CAAC,IAAyB;IAClD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,gBAAgB,CAAC;QACtB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,sBAAsB;YACxB,OAAO,IAAI,CAAC;QACf,KAAK,iBAAiB;YACnB,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,KAAK,kBAAkB,CAAC;QACxB,KAAK,mBAAmB;YACrB,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,KAAK,kBAAkB;YACpB,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,iBAAiB;YACnB,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,KAAK,4BAA4B;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAChE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACpE,OAAO,KAAK,IAAI,KAAK,CAAC;gBACzB,CAAC;gBACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAChE,CAAC,CAAC,CAAC;QACN,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC1B,8DAA8D;YAC9D,gEAAgE;YAChE,OAAO,KAAK,CAAC;QAChB,CAAC;QACD;YACG,OAAO,KAAK,CAAC;IACnB,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAyB,EAAE,GAAgB;IAC5E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,YAAY;YACd,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QAEV,KAAK,iBAAiB;YACnB,0BAA0B,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO;QAEV,KAAK,kBAAkB,CAAC;QACxB,KAAK,mBAAmB;YACrB,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO;QAEV,KAAK,gBAAgB;YAClB,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO;QAEV,KAAK,qBAAqB;YACvB,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChD,OAAO;QAEV,KAAK,sBAAsB;YACxB,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,0BAA0B,CAAC,IAAI,CAAC,QAA+B,EAAE,GAAG,CAAC,CAAC;YACtE,OAAO;QAEV,KAAK,kBAAkB;YACpB,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,UAAU;gBAChB,0BAA0B,CAAC,IAAI,CAAC,UAAiC,EAAE,GAAG,CAAC,CAAC;YAC3E,OAAO;QAEV,KAAK,iBAAiB;YACnB,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO;QAEV,KAAK,4BAA4B;YAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAChE,IAAI,KAAK,CAAC,GAAG;wBACV,0BAA0B,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC9C,IAAI,KAAK,CAAC,KAAK;wBACZ,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACrD,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAChD,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO;QAEV,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;oBACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAChE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAChB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,OAAO;QACV,CAAC;QAED;YACG,OAAO;IACb,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAwB,EAAE,GAAgB;IAC1E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,gBAAgB;YAClB,IAAI,IAAI,CAAC,IAAI;gBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACjE,OAAO;QAEV,KAAK,eAAe;YACjB,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACjD,OAAO;QAEV,KAAK,iBAAiB;YACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO;QAEV,KAAK,aAAa;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,SAAS;oBACjD,0BAA0B,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,OAAO;QAEV,KAAK,gBAAgB;YAClB,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO;QAEV,KAAK,iBAAiB;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChD,OAAO;QAEV,KAAK,qBAAqB;YACvB,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5C,0BAA0B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,IAAI;gBACV,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,0BAA0B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO;QAEV,KAAK,aAAa;YACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO;QAEV;YACG,OAAO;IACb,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAwB,EAAE,GAAgB;IACzE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,gBAAgB;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;oBACxB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;oBACxB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;gBACpC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;oBACxB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO;QAEV,KAAK,aAAa;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3F,OAAO;QAEV,KAAK,gBAAgB,CAAC;QACtB,KAAK,iBAAiB,CAAC;QACvB,KAAK,aAAa;YACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO;QAEV,KAAK,qBAAqB;YACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,YAAY;gBACzD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO;QAEV;YACG,OAAO;IACb,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAwB;IACjD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,aAAa;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACf,KAAK,gBAAgB;YAClB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACf,KAAK,iBAAiB;YACnB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACf,KAAK,qBAAqB;YACvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACf,KAAK,qBAAqB;YACvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACf,KAAK,qBAAqB;YACvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACf,KAAK,aAAa;YACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACf;YACG,OAAO,IAAI,CAAC;IAClB,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,IAA0B;IAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,IAAI,GAAyB,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,gBAAgB;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;wBACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACT,KAAK,qBAAqB;gBACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;wBACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACT,KAAK,qBAAqB;gBACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;oBACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;YACT,KAAK,qBAAqB;gBACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;wBACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACT,KAAK,qBAAqB;gBACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,YAAY;oBACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM;YACT;gBACG,MAAM;QACZ,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;gBAChC,sEAAsE;gBACtE,SAAS;YACZ,CAAC;YAED,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAChB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,SAAS;QACZ,CAAC;QAED,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAChB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;IACf,OAAO,IAAI,CAAC;AACf,CAAC;AAED,SAAgB,uBAAuB,CAAC,GAAmB;IACxD,GAAG,CAAC,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,GAAG,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as luaparse from "luaparse";
2
+ export declare function renameAllowedTableKeysInAST(ast: luaparse.Chunk, keys: string[] | undefined | null): luaparse.Chunk;
3
+ //# sourceMappingURL=lua_rename_allowed_table_keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_rename_allowed_table_keys.d.ts","sourceRoot":"","sources":["../../../src/utils/lua/lua_rename_allowed_table_keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAmKrC,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAC,SAAS,GAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAc9G"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renameAllowedTableKeysInAST = renameAllowedTableKeysInAST;
4
+ const lua_utils_1 = require("./lua_utils");
5
+ function rewriteExpression(expr, mapping) {
6
+ switch (expr.type) {
7
+ case "Identifier":
8
+ return;
9
+ case "MemberExpression": {
10
+ if (expr.identifier && expr.identifier.type === "Identifier") {
11
+ const mapped = mapping.get(expr.identifier.name);
12
+ if (mapped)
13
+ expr.identifier.name = mapped;
14
+ }
15
+ rewriteExpression(expr.base, mapping);
16
+ return;
17
+ }
18
+ case "IndexExpression": {
19
+ rewriteExpression(expr.base, mapping);
20
+ rewriteExpression(expr.index, mapping);
21
+ if ((0, lua_utils_1.isStringLiteral)(expr.index)) {
22
+ const val = (0, lua_utils_1.stringValue)(expr.index);
23
+ if (val != null) {
24
+ const mapped = mapping.get(val);
25
+ if (mapped) {
26
+ expr.index = { type: "StringLiteral", value: mapped, raw: JSON.stringify(mapped) };
27
+ }
28
+ }
29
+ }
30
+ return;
31
+ }
32
+ case "CallExpression":
33
+ rewriteExpression(expr.base, mapping);
34
+ expr.arguments.forEach(arg => rewriteExpression(arg, mapping));
35
+ return;
36
+ case "TableCallExpression":
37
+ rewriteExpression(expr.base, mapping);
38
+ rewriteExpression(expr.arguments, mapping);
39
+ return;
40
+ case "StringCallExpression":
41
+ rewriteExpression(expr.base, mapping);
42
+ rewriteExpression(expr.argument, mapping);
43
+ return;
44
+ case "BinaryExpression":
45
+ case "LogicalExpression":
46
+ rewriteExpression(expr.left, mapping);
47
+ rewriteExpression(expr.right, mapping);
48
+ return;
49
+ case "UnaryExpression":
50
+ rewriteExpression(expr.argument, mapping);
51
+ return;
52
+ case "FunctionDeclaration":
53
+ expr.body.forEach(stmt => rewriteStatement(stmt, mapping));
54
+ return;
55
+ case "TableConstructorExpression": {
56
+ expr.fields.forEach(field => {
57
+ if (field.type === "TableKeyString" && field.key) {
58
+ if (field.key.type === "Identifier") {
59
+ const mapped = mapping.get(field.key.name);
60
+ if (mapped)
61
+ field.key.name = mapped;
62
+ }
63
+ else if ((0, lua_utils_1.isStringLiteral)(field.key)) {
64
+ const val = (0, lua_utils_1.stringValue)(field.key);
65
+ if (val != null) {
66
+ const mapped = mapping.get(val);
67
+ if (mapped) {
68
+ field.key.value = mapped;
69
+ field.key.raw = JSON.stringify(mapped);
70
+ }
71
+ }
72
+ }
73
+ if (field.value)
74
+ rewriteExpression(field.value, mapping);
75
+ }
76
+ else if (field.type === "TableKey") {
77
+ if (field.key)
78
+ rewriteExpression(field.key, mapping);
79
+ if (field.value)
80
+ rewriteExpression(field.value, mapping);
81
+ }
82
+ else if (field.type === "TableValue" && field.value) {
83
+ rewriteExpression(field.value, mapping);
84
+ }
85
+ });
86
+ return;
87
+ }
88
+ default:
89
+ return;
90
+ }
91
+ }
92
+ function rewriteStatement(stmt, mapping) {
93
+ switch (stmt.type) {
94
+ case "LocalStatement":
95
+ if (stmt.init)
96
+ stmt.init.forEach(expr => rewriteExpression(expr, mapping));
97
+ return;
98
+ case "AssignmentStatement":
99
+ stmt.variables.forEach(v => rewriteExpression(v, mapping));
100
+ stmt.init.forEach(expr => rewriteExpression(expr, mapping));
101
+ return;
102
+ case "CallStatement":
103
+ rewriteExpression(stmt.expression, mapping);
104
+ return;
105
+ case "ReturnStatement":
106
+ stmt.arguments.forEach(arg => rewriteExpression(arg, mapping));
107
+ return;
108
+ case "IfStatement":
109
+ stmt.clauses.forEach(clause => {
110
+ if (clause.type !== "ElseClause" && clause.condition)
111
+ rewriteExpression(clause.condition, mapping);
112
+ clause.body.forEach(s => rewriteStatement(s, mapping));
113
+ });
114
+ return;
115
+ case "WhileStatement":
116
+ rewriteExpression(stmt.condition, mapping);
117
+ stmt.body.forEach(s => rewriteStatement(s, mapping));
118
+ return;
119
+ case "RepeatStatement":
120
+ stmt.body.forEach(s => rewriteStatement(s, mapping));
121
+ rewriteExpression(stmt.condition, mapping);
122
+ return;
123
+ case "ForNumericStatement":
124
+ rewriteExpression(stmt.start, mapping);
125
+ rewriteExpression(stmt.end, mapping);
126
+ if (stmt.step)
127
+ rewriteExpression(stmt.step, mapping);
128
+ stmt.body.forEach(s => rewriteStatement(s, mapping));
129
+ return;
130
+ case "ForGenericStatement":
131
+ stmt.iterators.forEach(it => rewriteExpression(it, mapping));
132
+ stmt.body.forEach(s => rewriteStatement(s, mapping));
133
+ return;
134
+ case "FunctionDeclaration":
135
+ stmt.body.forEach(s => rewriteStatement(s, mapping));
136
+ return;
137
+ case "DoStatement":
138
+ stmt.body.forEach(s => rewriteStatement(s, mapping));
139
+ return;
140
+ default:
141
+ return;
142
+ }
143
+ }
144
+ function renameAllowedTableKeysInAST(ast, keys) {
145
+ const allow = Array.isArray(keys) ? keys.filter(Boolean) : [];
146
+ if (allow.length === 0)
147
+ return ast;
148
+ const mapping = new Map();
149
+ const counter = { value: 0 };
150
+ for (const key of allow) {
151
+ if (!mapping.has(key))
152
+ mapping.set(key, (0, lua_utils_1.nextFreeName)(counter));
153
+ }
154
+ ast.body.forEach(stmt => rewriteStatement(stmt, mapping));
155
+ return ast;
156
+ }
157
+ //# sourceMappingURL=lua_rename_allowed_table_keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_rename_allowed_table_keys.js","sourceRoot":"","sources":["../../../src/utils/lua/lua_rename_allowed_table_keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import * as luaparse from "luaparse";
2
+ export declare function renameTableFieldsInAST(ast: luaparse.Chunk): luaparse.Chunk;
3
+ //# sourceMappingURL=lua_rename_table_fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_rename_table_fields.d.ts","sourceRoot":"","sources":["../../../src/utils/lua/lua_rename_table_fields.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAobrC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAuB1E"}