redscript-mc 2.0.0 → 2.1.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 (643) hide show
  1. package/.claudeignore +21 -0
  2. package/README.md +48 -16
  3. package/README.zh.md +2 -2
  4. package/dist/cli.js +0 -0
  5. package/dist/src/__tests__/budget.test.js +261 -0
  6. package/dist/src/__tests__/diagnostics.test.js +2 -3
  7. package/dist/src/__tests__/e2e/coroutine.test.d.ts +7 -0
  8. package/dist/src/__tests__/e2e/coroutine.test.js +132 -0
  9. package/dist/{src2 → src}/__tests__/e2e/macros.test.js +1 -1
  10. package/dist/{src2 → src}/__tests__/e2e/migrate.test.js +1 -1
  11. package/dist/src/__tests__/e2e/stdlib-e2e.test.d.ts +10 -0
  12. package/dist/src/__tests__/e2e/stdlib-e2e.test.js +324 -0
  13. package/dist/src/__tests__/enum.test.d.ts +10 -0
  14. package/dist/src/__tests__/enum.test.js +389 -0
  15. package/dist/src/__tests__/generics.test.d.ts +14 -0
  16. package/dist/src/__tests__/generics.test.js +367 -0
  17. package/dist/{src2 → src}/__tests__/hir/desugar.test.js +2 -2
  18. package/dist/src/__tests__/incremental.test.d.ts +5 -0
  19. package/dist/src/__tests__/incremental.test.js +308 -0
  20. package/dist/src/__tests__/lsp.test.d.ts +7 -0
  21. package/dist/src/__tests__/lsp.test.js +321 -0
  22. package/dist/src/__tests__/mc-syntax.test.js +1 -6
  23. package/dist/src/__tests__/mc-version.test.d.ts +10 -0
  24. package/dist/src/__tests__/mc-version.test.js +154 -0
  25. package/dist/{src2 → src}/__tests__/mir/arithmetic.test.js +2 -2
  26. package/dist/{src2 → src}/__tests__/mir/control-flow.test.js +2 -2
  27. package/dist/src/__tests__/modules.test.d.ts +7 -0
  28. package/dist/src/__tests__/modules.test.js +333 -0
  29. package/dist/src/__tests__/optimizer/coroutine.test.d.ts +12 -0
  30. package/dist/src/__tests__/optimizer/coroutine.test.js +251 -0
  31. package/dist/src/__tests__/optimizer/interprocedural.test.js +145 -0
  32. package/dist/src/__tests__/optimizer/lir/const_imm.test.js +138 -0
  33. package/dist/src/__tests__/optimizer/lir/dead_slot.test.js +141 -0
  34. package/dist/src/__tests__/optimizer/lir/peephole.test.js +126 -0
  35. package/dist/src/__tests__/optimizer/lir/pipeline.test.js +84 -0
  36. package/dist/src/__tests__/optimizer/nbt-batch.test.js +110 -0
  37. package/dist/src/__tests__/optimizer/selector-cache.test.js +103 -0
  38. package/dist/src/__tests__/optimizer/unroll.test.js +206 -0
  39. package/dist/src/__tests__/option.test.d.ts +14 -0
  40. package/dist/src/__tests__/option.test.js +275 -0
  41. package/dist/src/__tests__/schedule.test.d.ts +7 -0
  42. package/dist/src/__tests__/schedule.test.js +98 -0
  43. package/dist/src/__tests__/sourcemap.test.d.ts +7 -0
  44. package/dist/src/__tests__/sourcemap.test.js +227 -0
  45. package/dist/src/__tests__/stdlib-include.test.js +86 -0
  46. package/dist/src/__tests__/tuple.test.d.ts +11 -0
  47. package/dist/src/__tests__/tuple.test.js +202 -0
  48. package/dist/src/__tests__/typechecker-strict.test.d.ts +10 -0
  49. package/dist/src/__tests__/typechecker-strict.test.js +197 -0
  50. package/dist/src/ast/types.d.ts +56 -2
  51. package/dist/src/cache/deps.d.ts +41 -0
  52. package/dist/src/cache/deps.js +158 -0
  53. package/dist/src/cache/incremental.d.ts +35 -0
  54. package/dist/src/cache/incremental.js +165 -0
  55. package/dist/src/cache/index.d.ts +37 -0
  56. package/dist/src/cache/index.js +152 -0
  57. package/dist/src/cli.js +83 -45
  58. package/dist/src/compile.d.ts +3 -2
  59. package/dist/src/compile.js +34 -11
  60. package/dist/src/diagnostics/index.d.ts +1 -1
  61. package/dist/src/diagnostics/index.js +8 -11
  62. package/dist/src/emit/compile.d.ts +31 -0
  63. package/dist/src/emit/compile.js +143 -0
  64. package/dist/{src2 → src}/emit/index.d.ts +9 -0
  65. package/dist/{src2 → src}/emit/index.js +59 -8
  66. package/dist/src/emit/modules.d.ts +29 -0
  67. package/dist/src/emit/modules.js +492 -0
  68. package/dist/src/emit/sourcemap.d.ts +53 -0
  69. package/dist/src/emit/sourcemap.js +73 -0
  70. package/dist/{src2 → src}/hir/lower.d.ts +1 -1
  71. package/dist/{src2 → src}/hir/lower.js +22 -1
  72. package/dist/src/hir/monomorphize.d.ts +22 -0
  73. package/dist/src/hir/monomorphize.js +379 -0
  74. package/dist/{src2 → src}/hir/types.d.ts +35 -2
  75. package/dist/src/index.d.ts +19 -2
  76. package/dist/src/index.js +36 -14
  77. package/dist/src/lexer/index.d.ts +1 -1
  78. package/dist/src/lexer/index.js +1 -0
  79. package/dist/src/lir/budget.d.ts +37 -0
  80. package/dist/src/lir/budget.js +280 -0
  81. package/dist/{src2 → src}/lir/lower.js +19 -0
  82. package/dist/{src2 → src}/lir/types.d.ts +7 -4
  83. package/dist/src/lsp/main.d.ts +8 -0
  84. package/dist/src/lsp/main.js +11 -0
  85. package/dist/src/lsp/server.d.ts +11 -0
  86. package/dist/src/lsp/server.js +403 -0
  87. package/dist/{src2 → src}/mir/lower.d.ts +1 -1
  88. package/dist/{src2 → src}/mir/lower.js +244 -10
  89. package/dist/{src2 → src}/mir/types.d.ts +10 -2
  90. package/dist/src/optimizer/coroutine.d.ts +34 -0
  91. package/dist/src/optimizer/coroutine.js +789 -0
  92. package/dist/src/optimizer/dce.d.ts +8 -34
  93. package/dist/src/optimizer/dce.js +146 -629
  94. package/dist/src/optimizer/interprocedural.d.ts +14 -0
  95. package/dist/src/optimizer/interprocedural.js +186 -0
  96. package/dist/src/optimizer/lir/const_imm.d.ts +12 -0
  97. package/dist/src/optimizer/lir/const_imm.js +139 -0
  98. package/dist/src/optimizer/lir/dead_slot.d.ts +14 -0
  99. package/dist/src/optimizer/lir/dead_slot.js +130 -0
  100. package/dist/src/optimizer/lir/peephole.d.ts +21 -0
  101. package/dist/src/optimizer/lir/peephole.js +52 -0
  102. package/dist/src/optimizer/lir/pipeline.d.ts +10 -0
  103. package/dist/src/optimizer/lir/pipeline.js +34 -0
  104. package/dist/src/optimizer/nbt-batch.d.ts +11 -0
  105. package/dist/src/optimizer/nbt-batch.js +51 -0
  106. package/dist/{src2 → src}/optimizer/pipeline.d.ts +4 -0
  107. package/dist/{src2 → src}/optimizer/pipeline.js +17 -1
  108. package/dist/src/optimizer/selector-cache.d.ts +22 -0
  109. package/dist/src/optimizer/selector-cache.js +100 -0
  110. package/dist/src/optimizer/unroll.d.ts +32 -0
  111. package/dist/src/optimizer/unroll.js +348 -0
  112. package/dist/src/parser/index.d.ts +8 -0
  113. package/dist/src/parser/index.js +204 -14
  114. package/dist/src/repl.d.ts +1 -1
  115. package/dist/src/typechecker/index.d.ts +4 -0
  116. package/dist/src/typechecker/index.js +198 -13
  117. package/dist/src/types/mc-version.d.ts +24 -0
  118. package/dist/src/types/mc-version.js +49 -0
  119. package/docs/ROADMAP.md +395 -0
  120. package/docs/compiler-pipeline-redesign.md +27 -10
  121. package/editors/vscode/out/extension.js +25176 -8000
  122. package/editors/vscode/package-lock.json +90 -6
  123. package/editors/vscode/package.json +3 -2
  124. package/editors/vscode/src/extension.ts +97 -67
  125. package/editors/vscode/syntaxes/redscript.tmLanguage.json +34 -0
  126. package/examples/coroutine-demo.mcrs +50 -0
  127. package/examples/enum-demo.mcrs +95 -0
  128. package/examples/scheduler-demo.mcrs +59 -0
  129. package/examples/showcase.mcrs +3 -3
  130. package/jest.config.js +1 -1
  131. package/package.json +9 -3
  132. package/src/__tests__/budget.test.ts +297 -0
  133. package/src/__tests__/diagnostics.test.ts +2 -3
  134. package/src/__tests__/e2e/coroutine.test.ts +142 -0
  135. package/{src2 → src}/__tests__/e2e/macros.test.ts +1 -1
  136. package/{src2 → src}/__tests__/e2e/migrate.test.ts +1 -1
  137. package/src/__tests__/e2e/stdlib-e2e.test.ts +348 -0
  138. package/src/__tests__/enum.test.ts +425 -0
  139. package/src/__tests__/generics.test.ts +390 -0
  140. package/{src2 → src}/__tests__/hir/desugar.test.ts +2 -2
  141. package/src/__tests__/incremental.test.ts +337 -0
  142. package/src/__tests__/lsp.test.ts +359 -0
  143. package/src/__tests__/mc-syntax.test.ts +1 -7
  144. package/src/__tests__/mc-version.test.ts +178 -0
  145. package/{src2 → src}/__tests__/mir/arithmetic.test.ts +2 -2
  146. package/{src2 → src}/__tests__/mir/control-flow.test.ts +2 -2
  147. package/src/__tests__/modules.test.ts +365 -0
  148. package/src/__tests__/optimizer/coroutine.test.ts +312 -0
  149. package/src/__tests__/optimizer/interprocedural.test.ts +174 -0
  150. package/src/__tests__/optimizer/lir/const_imm.test.ts +151 -0
  151. package/src/__tests__/optimizer/lir/dead_slot.test.ts +156 -0
  152. package/src/__tests__/optimizer/lir/peephole.test.ts +136 -0
  153. package/src/__tests__/optimizer/lir/pipeline.test.ts +113 -0
  154. package/src/__tests__/optimizer/nbt-batch.test.ts +119 -0
  155. package/src/__tests__/optimizer/selector-cache.test.ts +112 -0
  156. package/src/__tests__/optimizer/unroll.test.ts +231 -0
  157. package/src/__tests__/option.test.ts +299 -0
  158. package/src/__tests__/schedule.test.ts +105 -0
  159. package/src/__tests__/sourcemap.test.ts +254 -0
  160. package/src/__tests__/stdlib-include.test.ts +61 -0
  161. package/src/__tests__/tuple.test.ts +220 -0
  162. package/src/__tests__/typechecker-strict.test.ts +216 -0
  163. package/src/ast/types.ts +33 -2
  164. package/src/cache/deps.ts +132 -0
  165. package/src/cache/incremental.ts +173 -0
  166. package/src/cache/index.ts +135 -0
  167. package/src/cli.ts +96 -45
  168. package/src/compile.ts +46 -17
  169. package/src/diagnostics/index.ts +8 -11
  170. package/src/emit/compile.ts +179 -0
  171. package/{src2 → src}/emit/index.ts +72 -8
  172. package/src/emit/modules.ts +581 -0
  173. package/src/emit/sourcemap.ts +101 -0
  174. package/{src2 → src}/hir/lower.ts +29 -2
  175. package/src/hir/monomorphize.ts +416 -0
  176. package/{src2 → src}/hir/types.ts +15 -3
  177. package/src/index.ts +29 -10
  178. package/src/lexer/index.ts +2 -1
  179. package/src/lir/budget.ts +321 -0
  180. package/{src2 → src}/lir/lower.ts +32 -1
  181. package/{src2 → src}/lir/types.ts +7 -3
  182. package/src/lsp/main.ts +9 -0
  183. package/src/lsp/server.ts +469 -0
  184. package/{src2 → src}/mir/lower.ts +251 -8
  185. package/{src2 → src}/mir/types.ts +12 -1
  186. package/src/optimizer/coroutine.ts +996 -0
  187. package/{src2 → src}/optimizer/dce.ts +2 -1
  188. package/src/optimizer/interprocedural.ts +177 -0
  189. package/src/optimizer/lir/const_imm.ts +143 -0
  190. package/src/optimizer/lir/dead_slot.ts +123 -0
  191. package/src/optimizer/lir/peephole.ts +57 -0
  192. package/src/optimizer/lir/pipeline.ts +37 -0
  193. package/src/optimizer/nbt-batch.ts +50 -0
  194. package/{src2 → src}/optimizer/pipeline.ts +16 -1
  195. package/src/optimizer/selector-cache.ts +103 -0
  196. package/src/optimizer/unroll.ts +386 -0
  197. package/src/parser/index.ts +212 -15
  198. package/src/repl.ts +1 -1
  199. package/src/stdlib/math.mcrs +4 -4
  200. package/src/templates/quest.mcrs +4 -4
  201. package/src/typechecker/index.ts +215 -15
  202. package/src/types/mc-version.ts +46 -0
  203. package/tsconfig.json +1 -1
  204. package/.claude/commands/build-test.md +0 -10
  205. package/.claude/commands/deploy-demo.md +0 -12
  206. package/.claude/commands/stage-status.md +0 -13
  207. package/.claude/settings.json +0 -12
  208. package/CLAUDE.md +0 -231
  209. package/dist/__tests__/cli.test.js +0 -278
  210. package/dist/__tests__/codegen.test.js +0 -152
  211. package/dist/__tests__/compile-all.test.d.ts +0 -10
  212. package/dist/__tests__/compile-all.test.js +0 -108
  213. package/dist/__tests__/dce.test.js +0 -138
  214. package/dist/__tests__/diagnostics.test.d.ts +0 -4
  215. package/dist/__tests__/diagnostics.test.js +0 -149
  216. package/dist/__tests__/e2e.test.d.ts +0 -6
  217. package/dist/__tests__/e2e.test.js +0 -1847
  218. package/dist/__tests__/entity-types.test.js +0 -203
  219. package/dist/__tests__/formatter.test.js +0 -40
  220. package/dist/__tests__/lexer.test.js +0 -343
  221. package/dist/__tests__/lowering.test.js +0 -1015
  222. package/dist/__tests__/macro.test.d.ts +0 -8
  223. package/dist/__tests__/macro.test.js +0 -305
  224. package/dist/__tests__/mc-integration.test.d.ts +0 -12
  225. package/dist/__tests__/mc-integration.test.js +0 -819
  226. package/dist/__tests__/mc-syntax.test.js +0 -124
  227. package/dist/__tests__/nbt.test.js +0 -82
  228. package/dist/__tests__/optimizer-advanced.test.js +0 -124
  229. package/dist/__tests__/optimizer.test.js +0 -149
  230. package/dist/__tests__/parser.test.d.ts +0 -1
  231. package/dist/__tests__/parser.test.js +0 -807
  232. package/dist/__tests__/repl.test.d.ts +0 -1
  233. package/dist/__tests__/repl.test.js +0 -27
  234. package/dist/__tests__/runtime.test.d.ts +0 -1
  235. package/dist/__tests__/runtime.test.js +0 -289
  236. package/dist/__tests__/stdlib-advanced.test.d.ts +0 -4
  237. package/dist/__tests__/stdlib-advanced.test.js +0 -378
  238. package/dist/__tests__/stdlib-bigint.test.d.ts +0 -7
  239. package/dist/__tests__/stdlib-bigint.test.js +0 -428
  240. package/dist/__tests__/stdlib-math.test.d.ts +0 -7
  241. package/dist/__tests__/stdlib-math.test.js +0 -352
  242. package/dist/__tests__/stdlib-vec.test.d.ts +0 -4
  243. package/dist/__tests__/stdlib-vec.test.js +0 -264
  244. package/dist/__tests__/structure-optimizer.test.d.ts +0 -1
  245. package/dist/__tests__/structure-optimizer.test.js +0 -33
  246. package/dist/__tests__/typechecker.test.d.ts +0 -1
  247. package/dist/__tests__/typechecker.test.js +0 -552
  248. package/dist/__tests__/var-allocator.test.d.ts +0 -1
  249. package/dist/__tests__/var-allocator.test.js +0 -69
  250. package/dist/ast/types.d.ts +0 -514
  251. package/dist/ast/types.js +0 -9
  252. package/dist/builtins/metadata.d.ts +0 -36
  253. package/dist/builtins/metadata.js +0 -1014
  254. package/dist/cli.d.ts +0 -11
  255. package/dist/codegen/cmdblock/index.d.ts +0 -26
  256. package/dist/codegen/cmdblock/index.js +0 -45
  257. package/dist/codegen/mcfunction/index.d.ts +0 -40
  258. package/dist/codegen/mcfunction/index.js +0 -606
  259. package/dist/codegen/structure/index.d.ts +0 -24
  260. package/dist/codegen/structure/index.js +0 -279
  261. package/dist/codegen/var-allocator.d.ts +0 -45
  262. package/dist/codegen/var-allocator.js +0 -104
  263. package/dist/compile.d.ts +0 -68
  264. package/dist/data/arena/function/__load.mcfunction +0 -6
  265. package/dist/data/arena/function/__tick.mcfunction +0 -2
  266. package/dist/data/arena/function/announce_leaders/else_1.mcfunction +0 -3
  267. package/dist/data/arena/function/announce_leaders/foreach_0/merge_2.mcfunction +0 -1
  268. package/dist/data/arena/function/announce_leaders/foreach_0/then_0.mcfunction +0 -3
  269. package/dist/data/arena/function/announce_leaders/foreach_0.mcfunction +0 -7
  270. package/dist/data/arena/function/announce_leaders/foreach_1/merge_2.mcfunction +0 -1
  271. package/dist/data/arena/function/announce_leaders/foreach_1/then_0.mcfunction +0 -4
  272. package/dist/data/arena/function/announce_leaders/foreach_1.mcfunction +0 -6
  273. package/dist/data/arena/function/announce_leaders/merge_2.mcfunction +0 -1
  274. package/dist/data/arena/function/announce_leaders/then_0.mcfunction +0 -4
  275. package/dist/data/arena/function/announce_leaders.mcfunction +0 -6
  276. package/dist/data/arena/function/arena_tick/merge_2.mcfunction +0 -1
  277. package/dist/data/arena/function/arena_tick/then_0.mcfunction +0 -4
  278. package/dist/data/arena/function/arena_tick.mcfunction +0 -11
  279. package/dist/data/counter/function/__load.mcfunction +0 -5
  280. package/dist/data/counter/function/__tick.mcfunction +0 -2
  281. package/dist/data/counter/function/counter_tick/merge_2.mcfunction +0 -1
  282. package/dist/data/counter/function/counter_tick/then_0.mcfunction +0 -3
  283. package/dist/data/counter/function/counter_tick.mcfunction +0 -11
  284. package/dist/data/gcd2/function/__load.mcfunction +0 -3
  285. package/dist/data/gcd2/function/abs/merge_2.mcfunction +0 -3
  286. package/dist/data/gcd2/function/abs/then_0.mcfunction +0 -5
  287. package/dist/data/gcd2/function/abs.mcfunction +0 -7
  288. package/dist/data/gcd2/function/gcd/loop_body_1.mcfunction +0 -7
  289. package/dist/data/gcd2/function/gcd/loop_check_0.mcfunction +0 -5
  290. package/dist/data/gcd2/function/gcd/loop_exit_2.mcfunction +0 -3
  291. package/dist/data/gcd2/function/gcd.mcfunction +0 -14
  292. package/dist/data/gcd3/function/__load.mcfunction +0 -3
  293. package/dist/data/gcd3/function/abs/merge_2.mcfunction +0 -3
  294. package/dist/data/gcd3/function/abs/then_0.mcfunction +0 -5
  295. package/dist/data/gcd3/function/abs.mcfunction +0 -7
  296. package/dist/data/gcd3/function/gcd/loop_body_1.mcfunction +0 -7
  297. package/dist/data/gcd3/function/gcd/loop_check_0.mcfunction +0 -5
  298. package/dist/data/gcd3/function/gcd/loop_exit_2.mcfunction +0 -3
  299. package/dist/data/gcd3/function/gcd.mcfunction +0 -14
  300. package/dist/data/gcd3/function/test.mcfunction +0 -7
  301. package/dist/data/gcd3nm/function/__load.mcfunction +0 -3
  302. package/dist/data/gcd3nm/function/abs/merge_2.mcfunction +0 -3
  303. package/dist/data/gcd3nm/function/abs/then_0.mcfunction +0 -5
  304. package/dist/data/gcd3nm/function/abs.mcfunction +0 -7
  305. package/dist/data/gcd3nm/function/gcd/loop_body_1.mcfunction +0 -7
  306. package/dist/data/gcd3nm/function/gcd/loop_check_0.mcfunction +0 -5
  307. package/dist/data/gcd3nm/function/gcd/loop_exit_2.mcfunction +0 -3
  308. package/dist/data/gcd3nm/function/gcd.mcfunction +0 -14
  309. package/dist/data/gcd3nm/function/test.mcfunction +0 -7
  310. package/dist/data/gcd_test/function/__load.mcfunction +0 -3
  311. package/dist/data/gcd_test/function/abs/merge_2.mcfunction +0 -3
  312. package/dist/data/gcd_test/function/abs/then_0.mcfunction +0 -5
  313. package/dist/data/gcd_test/function/abs.mcfunction +0 -7
  314. package/dist/data/gcd_test/function/gcd/loop_body_1.mcfunction +0 -7
  315. package/dist/data/gcd_test/function/gcd/loop_check_0.mcfunction +0 -5
  316. package/dist/data/gcd_test/function/gcd/loop_exit_2.mcfunction +0 -3
  317. package/dist/data/gcd_test/function/gcd.mcfunction +0 -14
  318. package/dist/data/isqrttest/function/__load.mcfunction +0 -6
  319. package/dist/data/isqrttest/function/isqrt/loop_body_4.mcfunction +0 -12
  320. package/dist/data/isqrttest/function/isqrt/loop_check_3.mcfunction +0 -5
  321. package/dist/data/isqrttest/function/isqrt/loop_exit_5.mcfunction +0 -3
  322. package/dist/data/isqrttest/function/isqrt/merge_2.mcfunction +0 -4
  323. package/dist/data/isqrttest/function/isqrt/merge_8.mcfunction +0 -6
  324. package/dist/data/isqrttest/function/isqrt/then_0.mcfunction +0 -3
  325. package/dist/data/isqrttest/function/isqrt/then_6.mcfunction +0 -3
  326. package/dist/data/isqrttest/function/isqrt.mcfunction +0 -7
  327. package/dist/data/isqrttest/function/test.mcfunction +0 -6
  328. package/dist/data/mathtest/function/__load.mcfunction +0 -3
  329. package/dist/data/mathtest/function/abs/merge_2.mcfunction +0 -3
  330. package/dist/data/mathtest/function/abs/then_0.mcfunction +0 -5
  331. package/dist/data/mathtest/function/abs.mcfunction +0 -6
  332. package/dist/data/mathtest/function/test.mcfunction +0 -5
  333. package/dist/data/minecraft/tags/function/load.json +0 -5
  334. package/dist/data/minecraft/tags/function/tick.json +0 -5
  335. package/dist/data/mypack/function/__load.mcfunction +0 -13
  336. package/dist/data/mypack/function/_atan_init.mcfunction +0 -2
  337. package/dist/data/mypack/function/abs/merge_2.mcfunction +0 -3
  338. package/dist/data/mypack/function/abs/then_0.mcfunction +0 -5
  339. package/dist/data/mypack/function/abs.mcfunction +0 -6
  340. package/dist/data/mypack/function/atan2_fixed/__sgi_1.mcfunction +0 -2
  341. package/dist/data/mypack/function/atan2_fixed/else_34.mcfunction +0 -3
  342. package/dist/data/mypack/function/atan2_fixed/loop_body_31.mcfunction +0 -19
  343. package/dist/data/mypack/function/atan2_fixed/loop_check_30.mcfunction +0 -5
  344. package/dist/data/mypack/function/atan2_fixed/loop_exit_32.mcfunction +0 -6
  345. package/dist/data/mypack/function/atan2_fixed/merge_11.mcfunction +0 -6
  346. package/dist/data/mypack/function/atan2_fixed/merge_14.mcfunction +0 -3
  347. package/dist/data/mypack/function/atan2_fixed/merge_17.mcfunction +0 -6
  348. package/dist/data/mypack/function/atan2_fixed/merge_2.mcfunction +0 -5
  349. package/dist/data/mypack/function/atan2_fixed/merge_20.mcfunction +0 -5
  350. package/dist/data/mypack/function/atan2_fixed/merge_23.mcfunction +0 -5
  351. package/dist/data/mypack/function/atan2_fixed/merge_26.mcfunction +0 -6
  352. package/dist/data/mypack/function/atan2_fixed/merge_29.mcfunction +0 -4
  353. package/dist/data/mypack/function/atan2_fixed/merge_38.mcfunction +0 -5
  354. package/dist/data/mypack/function/atan2_fixed/merge_41.mcfunction +0 -5
  355. package/dist/data/mypack/function/atan2_fixed/merge_44.mcfunction +0 -5
  356. package/dist/data/mypack/function/atan2_fixed/merge_47.mcfunction +0 -5
  357. package/dist/data/mypack/function/atan2_fixed/merge_5.mcfunction +0 -5
  358. package/dist/data/mypack/function/atan2_fixed/merge_8.mcfunction +0 -3
  359. package/dist/data/mypack/function/atan2_fixed/then_0.mcfunction +0 -5
  360. package/dist/data/mypack/function/atan2_fixed/then_12.mcfunction +0 -3
  361. package/dist/data/mypack/function/atan2_fixed/then_15.mcfunction +0 -5
  362. package/dist/data/mypack/function/atan2_fixed/then_18.mcfunction +0 -5
  363. package/dist/data/mypack/function/atan2_fixed/then_21.mcfunction +0 -3
  364. package/dist/data/mypack/function/atan2_fixed/then_24.mcfunction +0 -3
  365. package/dist/data/mypack/function/atan2_fixed/then_27.mcfunction +0 -6
  366. package/dist/data/mypack/function/atan2_fixed/then_3.mcfunction +0 -3
  367. package/dist/data/mypack/function/atan2_fixed/then_33.mcfunction +0 -5
  368. package/dist/data/mypack/function/atan2_fixed/then_36.mcfunction +0 -5
  369. package/dist/data/mypack/function/atan2_fixed/then_39.mcfunction +0 -5
  370. package/dist/data/mypack/function/atan2_fixed/then_42.mcfunction +0 -3
  371. package/dist/data/mypack/function/atan2_fixed/then_45.mcfunction +0 -5
  372. package/dist/data/mypack/function/atan2_fixed/then_6.mcfunction +0 -3
  373. package/dist/data/mypack/function/atan2_fixed/then_9.mcfunction +0 -5
  374. package/dist/data/mypack/function/atan2_fixed.mcfunction +0 -7
  375. package/dist/data/mypack/function/my_game.mcfunction +0 -10
  376. package/dist/data/quiz/function/__load.mcfunction +0 -16
  377. package/dist/data/quiz/function/__tick.mcfunction +0 -6
  378. package/dist/data/quiz/function/__trigger_quiz_a_dispatch.mcfunction +0 -4
  379. package/dist/data/quiz/function/__trigger_quiz_b_dispatch.mcfunction +0 -4
  380. package/dist/data/quiz/function/__trigger_quiz_c_dispatch.mcfunction +0 -4
  381. package/dist/data/quiz/function/__trigger_quiz_start_dispatch.mcfunction +0 -4
  382. package/dist/data/quiz/function/answer_a.mcfunction +0 -4
  383. package/dist/data/quiz/function/answer_b.mcfunction +0 -4
  384. package/dist/data/quiz/function/answer_c.mcfunction +0 -4
  385. package/dist/data/quiz/function/ask_question/else_1.mcfunction +0 -5
  386. package/dist/data/quiz/function/ask_question/else_4.mcfunction +0 -5
  387. package/dist/data/quiz/function/ask_question/else_7.mcfunction +0 -4
  388. package/dist/data/quiz/function/ask_question/merge_2.mcfunction +0 -1
  389. package/dist/data/quiz/function/ask_question/merge_5.mcfunction +0 -2
  390. package/dist/data/quiz/function/ask_question/merge_8.mcfunction +0 -2
  391. package/dist/data/quiz/function/ask_question/then_0.mcfunction +0 -4
  392. package/dist/data/quiz/function/ask_question/then_3.mcfunction +0 -4
  393. package/dist/data/quiz/function/ask_question/then_6.mcfunction +0 -4
  394. package/dist/data/quiz/function/ask_question.mcfunction +0 -7
  395. package/dist/data/quiz/function/finish_quiz.mcfunction +0 -6
  396. package/dist/data/quiz/function/handle_answer/else_1.mcfunction +0 -5
  397. package/dist/data/quiz/function/handle_answer/else_10.mcfunction +0 -3
  398. package/dist/data/quiz/function/handle_answer/else_16.mcfunction +0 -3
  399. package/dist/data/quiz/function/handle_answer/else_4.mcfunction +0 -3
  400. package/dist/data/quiz/function/handle_answer/else_7.mcfunction +0 -5
  401. package/dist/data/quiz/function/handle_answer/merge_11.mcfunction +0 -2
  402. package/dist/data/quiz/function/handle_answer/merge_14.mcfunction +0 -2
  403. package/dist/data/quiz/function/handle_answer/merge_17.mcfunction +0 -2
  404. package/dist/data/quiz/function/handle_answer/merge_2.mcfunction +0 -8
  405. package/dist/data/quiz/function/handle_answer/merge_5.mcfunction +0 -2
  406. package/dist/data/quiz/function/handle_answer/merge_8.mcfunction +0 -2
  407. package/dist/data/quiz/function/handle_answer/then_0.mcfunction +0 -5
  408. package/dist/data/quiz/function/handle_answer/then_12.mcfunction +0 -5
  409. package/dist/data/quiz/function/handle_answer/then_15.mcfunction +0 -6
  410. package/dist/data/quiz/function/handle_answer/then_3.mcfunction +0 -6
  411. package/dist/data/quiz/function/handle_answer/then_6.mcfunction +0 -5
  412. package/dist/data/quiz/function/handle_answer/then_9.mcfunction +0 -6
  413. package/dist/data/quiz/function/handle_answer.mcfunction +0 -11
  414. package/dist/data/quiz/function/start_quiz.mcfunction +0 -5
  415. package/dist/data/reqtest/function/__load.mcfunction +0 -4
  416. package/dist/data/reqtest/function/_table_init.mcfunction +0 -2
  417. package/dist/data/reqtest/function/no_trig.mcfunction +0 -3
  418. package/dist/data/reqtest/function/use_table.mcfunction +0 -4
  419. package/dist/data/reqtest2/function/__load.mcfunction +0 -3
  420. package/dist/data/reqtest2/function/no_trig.mcfunction +0 -3
  421. package/dist/data/runtime/function/__load.mcfunction +0 -5
  422. package/dist/data/runtime/function/__tick.mcfunction +0 -2
  423. package/dist/data/runtime/function/counter_tick/then_0.mcfunction +0 -3
  424. package/dist/data/runtime/function/counter_tick.mcfunction +0 -13
  425. package/dist/data/shop/function/__load.mcfunction +0 -7
  426. package/dist/data/shop/function/__tick.mcfunction +0 -3
  427. package/dist/data/shop/function/__trigger_shop_buy_dispatch.mcfunction +0 -4
  428. package/dist/data/shop/function/complete_purchase/else_1.mcfunction +0 -5
  429. package/dist/data/shop/function/complete_purchase/else_4.mcfunction +0 -5
  430. package/dist/data/shop/function/complete_purchase/else_7.mcfunction +0 -3
  431. package/dist/data/shop/function/complete_purchase/merge_2.mcfunction +0 -2
  432. package/dist/data/shop/function/complete_purchase/merge_5.mcfunction +0 -2
  433. package/dist/data/shop/function/complete_purchase/merge_8.mcfunction +0 -2
  434. package/dist/data/shop/function/complete_purchase/then_0.mcfunction +0 -4
  435. package/dist/data/shop/function/complete_purchase/then_3.mcfunction +0 -4
  436. package/dist/data/shop/function/complete_purchase/then_6.mcfunction +0 -4
  437. package/dist/data/shop/function/complete_purchase.mcfunction +0 -7
  438. package/dist/data/shop/function/handle_shop_trigger.mcfunction +0 -3
  439. package/dist/data/swap_test/function/__load.mcfunction +0 -3
  440. package/dist/data/swap_test/function/gcd_old/loop_body_1.mcfunction +0 -7
  441. package/dist/data/swap_test/function/gcd_old/loop_check_0.mcfunction +0 -5
  442. package/dist/data/swap_test/function/gcd_old/loop_exit_2.mcfunction +0 -3
  443. package/dist/data/swap_test/function/gcd_old.mcfunction +0 -8
  444. package/dist/data/turret/function/__load.mcfunction +0 -5
  445. package/dist/data/turret/function/__tick.mcfunction +0 -4
  446. package/dist/data/turret/function/__trigger_deploy_turret_dispatch.mcfunction +0 -4
  447. package/dist/data/turret/function/deploy_turret.mcfunction +0 -8
  448. package/dist/data/turret/function/turret_tick/at_1.mcfunction +0 -2
  449. package/dist/data/turret/function/turret_tick/foreach_0.mcfunction +0 -2
  450. package/dist/data/turret/function/turret_tick/foreach_2.mcfunction +0 -2
  451. package/dist/data/turret/function/turret_tick/tick_body.mcfunction +0 -3
  452. package/dist/data/turret/function/turret_tick/tick_skip.mcfunction +0 -1
  453. package/dist/data/turret/function/turret_tick.mcfunction +0 -5
  454. package/dist/diagnostics/index.d.ts +0 -44
  455. package/dist/diagnostics/index.js +0 -140
  456. package/dist/events/types.d.ts +0 -35
  457. package/dist/events/types.js +0 -59
  458. package/dist/formatter/index.d.ts +0 -1
  459. package/dist/formatter/index.js +0 -26
  460. package/dist/gcd2.map.json +0 -15
  461. package/dist/gcd3.map.json +0 -17
  462. package/dist/gcd_test.map.json +0 -15
  463. package/dist/index.d.ts +0 -62
  464. package/dist/ir/builder.d.ts +0 -33
  465. package/dist/ir/builder.js +0 -99
  466. package/dist/ir/types.d.ts +0 -132
  467. package/dist/ir/types.js +0 -15
  468. package/dist/isqrttest.map.json +0 -15
  469. package/dist/lexer/index.d.ts +0 -37
  470. package/dist/lexer/index.js +0 -569
  471. package/dist/lowering/index.d.ts +0 -188
  472. package/dist/lowering/index.js +0 -3405
  473. package/dist/mathtest.map.json +0 -6
  474. package/dist/mc-test/client.d.ts +0 -128
  475. package/dist/mc-test/client.js +0 -174
  476. package/dist/mc-test/runner.d.ts +0 -28
  477. package/dist/mc-test/runner.js +0 -150
  478. package/dist/mc-test/setup.d.ts +0 -11
  479. package/dist/mc-test/setup.js +0 -98
  480. package/dist/mc-validator/index.d.ts +0 -17
  481. package/dist/mc-validator/index.js +0 -322
  482. package/dist/mypack.map.json +0 -27
  483. package/dist/nbt/index.d.ts +0 -86
  484. package/dist/nbt/index.js +0 -250
  485. package/dist/optimizer/commands.d.ts +0 -38
  486. package/dist/optimizer/commands.js +0 -451
  487. package/dist/optimizer/dce.d.ts +0 -34
  488. package/dist/optimizer/dce.js +0 -639
  489. package/dist/optimizer/passes.d.ts +0 -34
  490. package/dist/optimizer/passes.js +0 -243
  491. package/dist/optimizer/structure.d.ts +0 -9
  492. package/dist/optimizer/structure.js +0 -356
  493. package/dist/pack.mcmeta +0 -6
  494. package/dist/parser/index.d.ts +0 -93
  495. package/dist/parser/index.js +0 -1687
  496. package/dist/repl.d.ts +0 -16
  497. package/dist/repl.js +0 -165
  498. package/dist/reqtest.map.json +0 -4
  499. package/dist/reqtest2.map.json +0 -4
  500. package/dist/runtime/index.d.ts +0 -107
  501. package/dist/runtime/index.js +0 -1409
  502. package/dist/runtime.map.json +0 -7
  503. package/dist/src/__tests__/codegen.test.d.ts +0 -1
  504. package/dist/src/__tests__/codegen.test.js +0 -152
  505. package/dist/src/__tests__/e2e.test.d.ts +0 -6
  506. package/dist/src/__tests__/e2e.test.js +0 -1789
  507. package/dist/src/__tests__/entity-types.test.d.ts +0 -1
  508. package/dist/src/__tests__/entity-types.test.js +0 -203
  509. package/dist/src/__tests__/lowering.test.d.ts +0 -1
  510. package/dist/src/__tests__/lowering.test.js +0 -1015
  511. package/dist/src/__tests__/macro.test.d.ts +0 -8
  512. package/dist/src/__tests__/macro.test.js +0 -306
  513. package/dist/src/__tests__/nbt.test.d.ts +0 -1
  514. package/dist/src/__tests__/nbt.test.js +0 -82
  515. package/dist/src/__tests__/optimizer-advanced.test.d.ts +0 -1
  516. package/dist/src/__tests__/optimizer-advanced.test.js +0 -124
  517. package/dist/src/__tests__/optimizer.test.d.ts +0 -1
  518. package/dist/src/__tests__/optimizer.test.js +0 -149
  519. package/dist/src/__tests__/runtime.test.d.ts +0 -1
  520. package/dist/src/__tests__/runtime.test.js +0 -289
  521. package/dist/src/__tests__/stdlib-advanced.test.d.ts +0 -4
  522. package/dist/src/__tests__/stdlib-advanced.test.js +0 -374
  523. package/dist/src/__tests__/stdlib-bigint.test.d.ts +0 -7
  524. package/dist/src/__tests__/stdlib-bigint.test.js +0 -426
  525. package/dist/src/__tests__/stdlib-math.test.d.ts +0 -7
  526. package/dist/src/__tests__/stdlib-math.test.js +0 -351
  527. package/dist/src/__tests__/stdlib-vec.test.d.ts +0 -4
  528. package/dist/src/__tests__/stdlib-vec.test.js +0 -263
  529. package/dist/src/__tests__/structure-optimizer.test.d.ts +0 -1
  530. package/dist/src/__tests__/structure-optimizer.test.js +0 -33
  531. package/dist/src/__tests__/var-allocator.test.d.ts +0 -1
  532. package/dist/src/__tests__/var-allocator.test.js +0 -69
  533. package/dist/src/codegen/cmdblock/index.d.ts +0 -26
  534. package/dist/src/codegen/cmdblock/index.js +0 -45
  535. package/dist/src/codegen/mcfunction/index.d.ts +0 -40
  536. package/dist/src/codegen/mcfunction/index.js +0 -606
  537. package/dist/src/codegen/structure/index.d.ts +0 -24
  538. package/dist/src/codegen/structure/index.js +0 -279
  539. package/dist/src/codegen/var-allocator.d.ts +0 -45
  540. package/dist/src/codegen/var-allocator.js +0 -104
  541. package/dist/src/ir/builder.d.ts +0 -33
  542. package/dist/src/ir/builder.js +0 -99
  543. package/dist/src/ir/types.d.ts +0 -132
  544. package/dist/src/ir/types.js +0 -15
  545. package/dist/src/lowering/index.d.ts +0 -188
  546. package/dist/src/lowering/index.js +0 -3405
  547. package/dist/src/optimizer/commands.d.ts +0 -38
  548. package/dist/src/optimizer/commands.js +0 -451
  549. package/dist/src/optimizer/passes.d.ts +0 -34
  550. package/dist/src/optimizer/passes.js +0 -243
  551. package/dist/src/optimizer/structure.d.ts +0 -9
  552. package/dist/src/optimizer/structure.js +0 -356
  553. package/dist/src2/__tests__/optimizer/dce.test.d.ts +0 -1
  554. package/dist/src2/emit/compile.d.ts +0 -19
  555. package/dist/src2/emit/compile.js +0 -80
  556. package/dist/src2/optimizer/dce.d.ts +0 -8
  557. package/dist/src2/optimizer/dce.js +0 -155
  558. package/dist/swap_test.map.json +0 -14
  559. package/dist/tsconfig.tsbuildinfo +0 -1
  560. package/dist/typechecker/index.d.ts +0 -61
  561. package/dist/typechecker/index.js +0 -1034
  562. package/dist/types/entity-hierarchy.d.ts +0 -29
  563. package/dist/types/entity-hierarchy.js +0 -107
  564. package/examples/spiral.mcrs +0 -43
  565. package/src/examples/arena.mcrs +0 -44
  566. package/src/examples/counter.mcrs +0 -12
  567. package/src/examples/new_features_demo.mcrs +0 -193
  568. package/src/examples/rpg.mcrs +0 -13
  569. package/src/examples/stdlib_demo.mcrs +0 -181
  570. package/src2/emit/compile.ts +0 -99
  571. /package/dist/{__tests__/cli.test.d.ts → src/__tests__/budget.test.d.ts} +0 -0
  572. /package/dist/{src2 → src}/__tests__/e2e/basic.test.d.ts +0 -0
  573. /package/dist/{src2 → src}/__tests__/e2e/basic.test.js +0 -0
  574. /package/dist/{src2 → src}/__tests__/e2e/macros.test.d.ts +0 -0
  575. /package/dist/{src2 → src}/__tests__/e2e/migrate.test.d.ts +0 -0
  576. /package/dist/{src2 → src}/__tests__/hir/desugar.test.d.ts +0 -0
  577. /package/dist/{src2 → src}/__tests__/lir/lower.test.d.ts +0 -0
  578. /package/dist/{src2 → src}/__tests__/lir/lower.test.js +0 -0
  579. /package/dist/{src2 → src}/__tests__/lir/types.test.d.ts +0 -0
  580. /package/dist/{src2 → src}/__tests__/lir/types.test.js +0 -0
  581. /package/dist/{src2 → src}/__tests__/lir/verify.test.d.ts +0 -0
  582. /package/dist/{src2 → src}/__tests__/lir/verify.test.js +0 -0
  583. /package/dist/{src2 → src}/__tests__/mir/arithmetic.test.d.ts +0 -0
  584. /package/dist/{src2 → src}/__tests__/mir/control-flow.test.d.ts +0 -0
  585. /package/dist/{src2 → src}/__tests__/mir/verify.test.d.ts +0 -0
  586. /package/dist/{src2 → src}/__tests__/mir/verify.test.js +0 -0
  587. /package/dist/{src2 → src}/__tests__/optimizer/block_merge.test.d.ts +0 -0
  588. /package/dist/{src2 → src}/__tests__/optimizer/block_merge.test.js +0 -0
  589. /package/dist/{src2 → src}/__tests__/optimizer/branch_simplify.test.d.ts +0 -0
  590. /package/dist/{src2 → src}/__tests__/optimizer/branch_simplify.test.js +0 -0
  591. /package/dist/{src2 → src}/__tests__/optimizer/constant_fold.test.d.ts +0 -0
  592. /package/dist/{src2 → src}/__tests__/optimizer/constant_fold.test.js +0 -0
  593. /package/dist/{src2 → src}/__tests__/optimizer/copy_prop.test.d.ts +0 -0
  594. /package/dist/{src2 → src}/__tests__/optimizer/copy_prop.test.js +0 -0
  595. /package/dist/{__tests__ → src/__tests__/optimizer}/dce.test.d.ts +0 -0
  596. /package/dist/{src2 → src}/__tests__/optimizer/dce.test.js +0 -0
  597. /package/dist/{__tests__/codegen.test.d.ts → src/__tests__/optimizer/interprocedural.test.d.ts} +0 -0
  598. /package/dist/{__tests__/entity-types.test.d.ts → src/__tests__/optimizer/lir/const_imm.test.d.ts} +0 -0
  599. /package/dist/{__tests__/formatter.test.d.ts → src/__tests__/optimizer/lir/dead_slot.test.d.ts} +0 -0
  600. /package/dist/{__tests__/lexer.test.d.ts → src/__tests__/optimizer/lir/peephole.test.d.ts} +0 -0
  601. /package/dist/{src2/__tests__/optimizer → src/__tests__/optimizer/lir}/pipeline.test.d.ts +0 -0
  602. /package/dist/{__tests__/lowering.test.d.ts → src/__tests__/optimizer/nbt-batch.test.d.ts} +0 -0
  603. /package/dist/{__tests__/mc-syntax.test.d.ts → src/__tests__/optimizer/pipeline.test.d.ts} +0 -0
  604. /package/dist/{src2 → src}/__tests__/optimizer/pipeline.test.js +0 -0
  605. /package/dist/{__tests__/nbt.test.d.ts → src/__tests__/optimizer/selector-cache.test.d.ts} +0 -0
  606. /package/dist/{__tests__/optimizer-advanced.test.d.ts → src/__tests__/optimizer/unroll.test.d.ts} +0 -0
  607. /package/dist/{__tests__/optimizer.test.d.ts → src/__tests__/stdlib-include.test.d.ts} +0 -0
  608. /package/dist/{src2 → src}/hir/types.js +0 -0
  609. /package/dist/{src2 → src}/lir/lower.d.ts +0 -0
  610. /package/dist/{src2 → src}/lir/types.js +0 -0
  611. /package/dist/{src2 → src}/lir/verify.d.ts +0 -0
  612. /package/dist/{src2 → src}/lir/verify.js +0 -0
  613. /package/dist/{src2 → src}/mir/macro.d.ts +0 -0
  614. /package/dist/{src2 → src}/mir/macro.js +0 -0
  615. /package/dist/{src2 → src}/mir/types.js +0 -0
  616. /package/dist/{src2 → src}/mir/verify.d.ts +0 -0
  617. /package/dist/{src2 → src}/mir/verify.js +0 -0
  618. /package/dist/{src2 → src}/optimizer/block_merge.d.ts +0 -0
  619. /package/dist/{src2 → src}/optimizer/block_merge.js +0 -0
  620. /package/dist/{src2 → src}/optimizer/branch_simplify.d.ts +0 -0
  621. /package/dist/{src2 → src}/optimizer/branch_simplify.js +0 -0
  622. /package/dist/{src2 → src}/optimizer/constant_fold.d.ts +0 -0
  623. /package/dist/{src2 → src}/optimizer/constant_fold.js +0 -0
  624. /package/dist/{src2 → src}/optimizer/copy_prop.d.ts +0 -0
  625. /package/dist/{src2 → src}/optimizer/copy_prop.js +0 -0
  626. /package/{src2 → src}/__tests__/e2e/basic.test.ts +0 -0
  627. /package/{src2 → src}/__tests__/lir/lower.test.ts +0 -0
  628. /package/{src2 → src}/__tests__/lir/types.test.ts +0 -0
  629. /package/{src2 → src}/__tests__/lir/verify.test.ts +0 -0
  630. /package/{src2 → src}/__tests__/mir/verify.test.ts +0 -0
  631. /package/{src2 → src}/__tests__/optimizer/block_merge.test.ts +0 -0
  632. /package/{src2 → src}/__tests__/optimizer/branch_simplify.test.ts +0 -0
  633. /package/{src2 → src}/__tests__/optimizer/constant_fold.test.ts +0 -0
  634. /package/{src2 → src}/__tests__/optimizer/copy_prop.test.ts +0 -0
  635. /package/{src2 → src}/__tests__/optimizer/dce.test.ts +0 -0
  636. /package/{src2 → src}/__tests__/optimizer/pipeline.test.ts +0 -0
  637. /package/{src2 → src}/lir/verify.ts +0 -0
  638. /package/{src2 → src}/mir/macro.ts +0 -0
  639. /package/{src2 → src}/mir/verify.ts +0 -0
  640. /package/{src2 → src}/optimizer/block_merge.ts +0 -0
  641. /package/{src2 → src}/optimizer/branch_simplify.ts +0 -0
  642. /package/{src2 → src}/optimizer/constant_fold.ts +0 -0
  643. /package/{src2 → src}/optimizer/copy_prop.ts +0 -0
@@ -1,3 +0,0 @@
1
- # block: then_6
2
- scoreboard players set $k rs 270
3
- return 270
@@ -1,5 +0,0 @@
1
- # block: then_9
2
- scoreboard players set $z rs 0
3
- execute if score $o rs > $a rs run scoreboard players set $z rs 1
4
- execute if score $z rs matches 1.. run function mypack:atan2_fixed/then_12
5
- execute if score $z rs matches ..0 run function mypack:atan2_fixed/merge_14
@@ -1,7 +0,0 @@
1
- # block: entry
2
- scoreboard players operation $u rs = $n rs
3
- scoreboard players operation $o rs = $t rs
4
- scoreboard players set $v rs 0
5
- execute if score $o rs = $a rs run scoreboard players set $v rs 1
6
- execute if score $v rs matches 1.. run function mypack:atan2_fixed/then_0
7
- execute if score $v rs matches ..0 run function mypack:atan2_fixed/merge_2
@@ -1,10 +0,0 @@
1
- # block: entry
2
- scoreboard players set $n rs -42
3
- function mypack:abs
4
- scoreboard players operation $l rs = $k rs
5
- execute store result score data rs run scoreboard players get $l rs
6
- scoreboard players set $n rs 3
7
- scoreboard players set $t rs 4
8
- function mypack:atan2_fixed
9
- scoreboard players operation $m rs = $k rs
10
- execute store result score angle rs run scoreboard players get $m rs
@@ -1,16 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard objectives add quiz_start trigger
4
- scoreboard players enable @a quiz_start
5
- scoreboard objectives add quiz_a trigger
6
- scoreboard players enable @a quiz_a
7
- scoreboard objectives add quiz_b trigger
8
- scoreboard players enable @a quiz_b
9
- scoreboard objectives add quiz_c trigger
10
- scoreboard players enable @a quiz_c
11
- scoreboard players set $const_1 rs 1
12
- scoreboard players set $const_2 rs 2
13
- scoreboard players set $const_3 rs 3
14
- scoreboard players set $const_1 rs 1
15
- scoreboard players set $const_2 rs 2
16
- scoreboard players set $const_3 rs 3
@@ -1,6 +0,0 @@
1
- # RedScript tick dispatcher
2
- # Trigger checks
3
- execute as @a[scores={quiz_start=1..}] run function quiz:__trigger_quiz_start_dispatch
4
- execute as @a[scores={quiz_a=1..}] run function quiz:__trigger_quiz_a_dispatch
5
- execute as @a[scores={quiz_b=1..}] run function quiz:__trigger_quiz_b_dispatch
6
- execute as @a[scores={quiz_c=1..}] run function quiz:__trigger_quiz_c_dispatch
@@ -1,4 +0,0 @@
1
- # Trigger dispatch for quiz_a
2
- function quiz:answer_a
3
- scoreboard players set @s quiz_a 0
4
- scoreboard players enable @s quiz_a
@@ -1,4 +0,0 @@
1
- # Trigger dispatch for quiz_b
2
- function quiz:answer_b
3
- scoreboard players set @s quiz_b 0
4
- scoreboard players enable @s quiz_b
@@ -1,4 +0,0 @@
1
- # Trigger dispatch for quiz_c
2
- function quiz:answer_c
3
- scoreboard players set @s quiz_c 0
4
- scoreboard players enable @s quiz_c
@@ -1,4 +0,0 @@
1
- # Trigger dispatch for quiz_start
2
- function quiz:start_quiz
3
- scoreboard players set @s quiz_start 0
4
- scoreboard players enable @s quiz_start
@@ -1,4 +0,0 @@
1
- # block: entry
2
- scoreboard players set $p0 rs 1
3
- function quiz:handle_answer
4
- scoreboard players operation $t0 rs = $ret rs
@@ -1,4 +0,0 @@
1
- # block: entry
2
- scoreboard players set $p0 rs 2
3
- function quiz:handle_answer
4
- scoreboard players operation $t0 rs = $ret rs
@@ -1,4 +0,0 @@
1
- # block: entry
2
- scoreboard players set $p0 rs 3
3
- function quiz:handle_answer
4
- scoreboard players operation $t0 rs = $ret rs
@@ -1,5 +0,0 @@
1
- # block: else_1
2
- scoreboard players set $t2 rs 0
3
- execute if score $question rs = $const_2 rs run scoreboard players set $t2 rs 1
4
- execute if score $t2 rs matches 1.. run function quiz:ask_question/then_3
5
- execute if score $t2 rs matches ..0 run function quiz:ask_question/else_4
@@ -1,5 +0,0 @@
1
- # block: else_4
2
- scoreboard players set $t3 rs 0
3
- execute if score $question rs = $const_3 rs run scoreboard players set $t3 rs 1
4
- execute if score $t3 rs matches 1.. run function quiz:ask_question/then_6
5
- execute if score $t3 rs matches ..0 run function quiz:ask_question/else_7
@@ -1,4 +0,0 @@
1
- # block: else_7
2
- function quiz:finish_quiz
3
- scoreboard players operation $t4 rs = $ret rs
4
- function quiz:ask_question/merge_8
@@ -1 +0,0 @@
1
- # block: merge_2
@@ -1,2 +0,0 @@
1
- # block: merge_5
2
- function quiz:ask_question/merge_2
@@ -1,2 +0,0 @@
1
- # block: merge_8
2
- function quiz:ask_question/merge_5
@@ -1,4 +0,0 @@
1
- # block: then_0
2
- tellraw @s {"text":"Question 1: Which block drops diamonds?"}
3
- tellraw @s {"text":"A) Diamond ore B) Stone C) Oak log"}
4
- function quiz:ask_question/merge_2
@@ -1,4 +0,0 @@
1
- # block: then_3
2
- tellraw @s {"text":"Question 2: Which food restores more hunger?"}
3
- tellraw @s {"text":"A) Bread B) Steak C) Beetroot"}
4
- function quiz:ask_question/merge_5
@@ -1,4 +0,0 @@
1
- # block: then_6
2
- tellraw @s {"text":"Question 3: Which mob explodes?"}
3
- tellraw @s {"text":"A) Cow B) Creeper C) Villager"}
4
- function quiz:ask_question/merge_8
@@ -1,7 +0,0 @@
1
- # block: entry
2
- execute store result score $t0 rs run scoreboard players get @s quiz_question
3
- scoreboard players operation $question rs = $t0 rs
4
- scoreboard players set $t1 rs 0
5
- execute if score $t0 rs = $const_1 rs run scoreboard players set $t1 rs 1
6
- execute if score $t1 rs matches 1.. run function quiz:ask_question/then_0
7
- execute if score $t1 rs matches ..0 run function quiz:ask_question/else_1
@@ -1,6 +0,0 @@
1
- # block: entry
2
- execute store result score $t0 rs run scoreboard players get @s quiz_score
3
- title @s title {"text":"Quiz Complete"}
4
- tellraw @s {"text":"Your final quiz score is recorded in quiz_score."}
5
- scoreboard players set @s quiz_question 0
6
- execute store result score @s quiz_score run scoreboard players get $t1 rs
@@ -1,5 +0,0 @@
1
- # block: else_1
2
- scoreboard players set $t5 rs 0
3
- execute if score $question rs = $const_2 rs run scoreboard players set $t5 rs 1
4
- execute if score $t5 rs matches 1.. run function quiz:handle_answer/then_6
5
- execute if score $t5 rs matches ..0 run function quiz:handle_answer/else_7
@@ -1,3 +0,0 @@
1
- # block: else_10
2
- tellraw @s {"text":"Wrong. The answer was B."}
3
- function quiz:handle_answer/merge_11
@@ -1,3 +0,0 @@
1
- # block: else_16
2
- tellraw @s {"text":"Wrong. The answer was B."}
3
- function quiz:handle_answer/merge_17
@@ -1,3 +0,0 @@
1
- # block: else_4
2
- tellraw @s {"text":"Wrong. The answer was A."}
3
- function quiz:handle_answer/merge_5
@@ -1,5 +0,0 @@
1
- # block: else_7
2
- scoreboard players set $t8 rs 0
3
- execute if score $question rs = $const_3 rs run scoreboard players set $t8 rs 1
4
- execute if score $t8 rs matches 1.. run function quiz:handle_answer/then_12
5
- execute if score $t8 rs matches ..0 run function quiz:handle_answer/merge_14
@@ -1,2 +0,0 @@
1
- # block: merge_11
2
- function quiz:handle_answer/merge_8
@@ -1,2 +0,0 @@
1
- # block: merge_14
2
- function quiz:handle_answer/merge_8
@@ -1,2 +0,0 @@
1
- # block: merge_17
2
- function quiz:handle_answer/merge_14
@@ -1,8 +0,0 @@
1
- # block: merge_2
2
- execute store result score @s quiz_score run scoreboard players get $t11 rs
3
- scoreboard players operation $t12 rs = $question rs
4
- scoreboard players operation $t12 rs += $const_1 rs
5
- scoreboard players operation $question rs = $t12 rs
6
- execute store result score @s quiz_question run scoreboard players get $t13 rs
7
- function quiz:ask_question
8
- scoreboard players operation $t14 rs = $ret rs
@@ -1,2 +0,0 @@
1
- # block: merge_5
2
- function quiz:handle_answer/merge_2
@@ -1,2 +0,0 @@
1
- # block: merge_8
2
- function quiz:handle_answer/merge_2
@@ -1,5 +0,0 @@
1
- # block: then_0
2
- scoreboard players set $t3 rs 0
3
- execute if score $choice rs = $const_1 rs run scoreboard players set $t3 rs 1
4
- execute if score $t3 rs matches 1.. run function quiz:handle_answer/then_3
5
- execute if score $t3 rs matches ..0 run function quiz:handle_answer/else_4
@@ -1,5 +0,0 @@
1
- # block: then_12
2
- scoreboard players set $t9 rs 0
3
- execute if score $choice rs = $const_2 rs run scoreboard players set $t9 rs 1
4
- execute if score $t9 rs matches 1.. run function quiz:handle_answer/then_15
5
- execute if score $t9 rs matches ..0 run function quiz:handle_answer/else_16
@@ -1,6 +0,0 @@
1
- # block: then_15
2
- scoreboard players operation $t10 rs = $score rs
3
- scoreboard players operation $t10 rs += $const_1 rs
4
- scoreboard players operation $score rs = $t10 rs
5
- tellraw @s {"text":"Correct."}
6
- function quiz:handle_answer/merge_17
@@ -1,6 +0,0 @@
1
- # block: then_3
2
- scoreboard players operation $t4 rs = $score rs
3
- scoreboard players operation $t4 rs += $const_1 rs
4
- scoreboard players operation $score rs = $t4 rs
5
- tellraw @s {"text":"Correct."}
6
- function quiz:handle_answer/merge_5
@@ -1,5 +0,0 @@
1
- # block: then_6
2
- scoreboard players set $t6 rs 0
3
- execute if score $choice rs = $const_2 rs run scoreboard players set $t6 rs 1
4
- execute if score $t6 rs matches 1.. run function quiz:handle_answer/then_9
5
- execute if score $t6 rs matches ..0 run function quiz:handle_answer/else_10
@@ -1,6 +0,0 @@
1
- # block: then_9
2
- scoreboard players operation $t7 rs = $score rs
3
- scoreboard players operation $t7 rs += $const_1 rs
4
- scoreboard players operation $score rs = $t7 rs
5
- tellraw @s {"text":"Correct."}
6
- function quiz:handle_answer/merge_11
@@ -1,11 +0,0 @@
1
- # block: entry
2
- scoreboard players operation $choice rs = $p0 rs
3
- scoreboard players operation $choice rs = $p0 rs
4
- execute store result score $t0 rs run scoreboard players get @s quiz_question
5
- scoreboard players operation $question rs = $t0 rs
6
- execute store result score $t1 rs run scoreboard players get @s quiz_score
7
- scoreboard players operation $score rs = $t1 rs
8
- scoreboard players set $t2 rs 0
9
- execute if score $t0 rs = $const_1 rs run scoreboard players set $t2 rs 1
10
- execute if score $t2 rs matches 1.. run function quiz:handle_answer/then_0
11
- execute if score $t2 rs matches ..0 run function quiz:handle_answer/else_1
@@ -1,5 +0,0 @@
1
- # block: entry
2
- scoreboard players set @s quiz_score 0
3
- scoreboard players set @s quiz_question 1
4
- function quiz:ask_question
5
- scoreboard players operation $t0 rs = $ret rs
@@ -1,4 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard players set $a rs 42
4
- function reqtest:_table_init
@@ -1,2 +0,0 @@
1
- # block: entry
2
- scoreboard players set init rs 1
@@ -1,3 +0,0 @@
1
- # block: entry
2
- scoreboard players set $b rs 42
3
- return 42
@@ -1,4 +0,0 @@
1
- # block: entry
2
- execute store result score $c rs run scoreboard players get value rs
3
- scoreboard players operation $b rs = $c rs
4
- return run scoreboard players get $c rs
@@ -1,3 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard players set $a rs 42
@@ -1,3 +0,0 @@
1
- # block: entry
2
- scoreboard players set $b rs 42
3
- return 42
@@ -1,5 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard players set $a rs 0
4
- scoreboard players set $b rs 1
5
- scoreboard players set $c rs 100
@@ -1,2 +0,0 @@
1
- # RedScript tick dispatcher
2
- function runtime:counter_tick
@@ -1,3 +0,0 @@
1
- # block: then_0
2
- say Counter reached another 100 ticks
3
- function runtime:counter_tick/merge_2
@@ -1,13 +0,0 @@
1
- # block: entry
2
- execute store result score $_0 rs run scoreboard players get counter ticks
3
- scoreboard players operation $d rs = $e rs
4
- scoreboard players operation $f rs = $e rs
5
- scoreboard players operation $f rs += $b rs
6
- scoreboard players operation $d rs = $f rs
7
- execute store result score counter ticks run scoreboard players get $d rs
8
- scoreboard players operation $g rs = $f rs
9
- scoreboard players operation $g rs %= $c rs
10
- scoreboard players set $h rs 0
11
- execute if score $g rs = $a rs run scoreboard players set $h rs 1
12
- execute if score $h rs matches 1.. run function runtime:counter_tick/then_0
13
- execute if score $h rs matches ..0 run function runtime:counter_tick/merge_2
@@ -1,7 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard objectives add shop_buy trigger
4
- scoreboard players enable @a shop_buy
5
- scoreboard players set $const_1 rs 1
6
- scoreboard players set $const_2 rs 2
7
- scoreboard players set $const_3 rs 3
@@ -1,3 +0,0 @@
1
- # RedScript tick dispatcher
2
- # Trigger checks
3
- execute as @a[scores={shop_buy=1..}] run function shop:__trigger_shop_buy_dispatch
@@ -1,4 +0,0 @@
1
- # Trigger dispatch for shop_buy
2
- function shop:handle_shop_trigger
3
- scoreboard players set @s shop_buy 0
4
- scoreboard players enable @s shop_buy
@@ -1,5 +0,0 @@
1
- # block: else_1
2
- scoreboard players set $t2 rs 0
3
- execute if score $choice rs = $const_2 rs run scoreboard players set $t2 rs 1
4
- execute if score $t2 rs matches 1.. run function shop:complete_purchase/then_3
5
- execute if score $t2 rs matches ..0 run function shop:complete_purchase/else_4
@@ -1,5 +0,0 @@
1
- # block: else_4
2
- scoreboard players set $t3 rs 0
3
- execute if score $choice rs = $const_3 rs run scoreboard players set $t3 rs 1
4
- execute if score $t3 rs matches 1.. run function shop:complete_purchase/then_6
5
- execute if score $t3 rs matches ..0 run function shop:complete_purchase/else_7
@@ -1,3 +0,0 @@
1
- # block: else_7
2
- tellraw @s {"text":"Invalid shop_choice. Use 1, 2, or 3."}
3
- function shop:complete_purchase/merge_8
@@ -1,2 +0,0 @@
1
- # block: merge_2
2
- scoreboard players set @s shop_choice 0
@@ -1,2 +0,0 @@
1
- # block: merge_5
2
- function shop:complete_purchase/merge_2
@@ -1,2 +0,0 @@
1
- # block: merge_8
2
- function shop:complete_purchase/merge_5
@@ -1,4 +0,0 @@
1
- # block: then_0
2
- give @s minecraft:bread 1
3
- tellraw @s {"text":"You bought bread."}
4
- function shop:complete_purchase/merge_2
@@ -1,4 +0,0 @@
1
- # block: then_3
2
- give @s minecraft:steak 1
3
- tellraw @s {"text":"You bought steak."}
4
- function shop:complete_purchase/merge_5
@@ -1,4 +0,0 @@
1
- # block: then_6
2
- give @s minecraft:diamond 1
3
- tellraw @s {"text":"You bought a diamond."}
4
- function shop:complete_purchase/merge_8
@@ -1,7 +0,0 @@
1
- # block: entry
2
- execute store result score $t0 rs run scoreboard players get @s shop_choice
3
- scoreboard players operation $choice rs = $t0 rs
4
- scoreboard players set $t1 rs 0
5
- execute if score $t0 rs = $const_1 rs run scoreboard players set $t1 rs 1
6
- execute if score $t1 rs matches 1.. run function shop:complete_purchase/then_0
7
- execute if score $t1 rs matches ..0 run function shop:complete_purchase/else_1
@@ -1,3 +0,0 @@
1
- # block: entry
2
- function shop:complete_purchase
3
- scoreboard players operation $t0 rs = $ret rs
@@ -1,3 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard players set $a rs 0
@@ -1,7 +0,0 @@
1
- # block: loop_body_1
2
- scoreboard players operation $k rs = $i rs
3
- scoreboard players operation $l rs = $h rs
4
- scoreboard players operation $l rs %= $i rs
5
- scoreboard players operation $i rs = $l rs
6
- scoreboard players operation $h rs = $k rs
7
- function swap_test:gcd_old/loop_check_0
@@ -1,5 +0,0 @@
1
- # block: loop_check_0
2
- scoreboard players set $j rs 0
3
- execute if score $i rs > $a rs run scoreboard players set $j rs 1
4
- execute if score $j rs matches 1.. run function swap_test:gcd_old/loop_body_1
5
- execute if score $j rs matches ..0 run function swap_test:gcd_old/loop_exit_2
@@ -1,3 +0,0 @@
1
- # block: loop_exit_2
2
- scoreboard players operation $n rs = $h rs
3
- return run scoreboard players get $h rs
@@ -1,8 +0,0 @@
1
- # block: entry
2
- scoreboard players operation $b rs = $c rs
3
- scoreboard players operation $d rs = $e rs
4
- scoreboard players operation $b rs = $f rs
5
- scoreboard players operation $d rs = $g rs
6
- scoreboard players operation $h rs = $f rs
7
- scoreboard players operation $i rs = $g rs
8
- function swap_test:gcd_old/loop_check_0
@@ -1,5 +0,0 @@
1
- # RedScript runtime init
2
- scoreboard objectives add rs dummy
3
- scoreboard players set $__tick_turret_tick rs 0
4
- scoreboard objectives add deploy_turret trigger
5
- scoreboard players enable @a deploy_turret
@@ -1,4 +0,0 @@
1
- # RedScript tick dispatcher
2
- function turret:turret_tick
3
- # Trigger checks
4
- execute as @a[scores={deploy_turret=1..}] run function turret:__trigger_deploy_turret_dispatch
@@ -1,4 +0,0 @@
1
- # Trigger dispatch for deploy_turret
2
- function turret:deploy_turret
3
- scoreboard players set @s deploy_turret 0
4
- scoreboard players enable @s deploy_turret
@@ -1,8 +0,0 @@
1
- # block: entry
2
- summon minecraft:armor_stand 0 64 0 {Invisible:1b,Marker:1b,NoGravity:1b,Tags:["__rs_obj_0"]}
3
- scoreboard players set @e[tag=__rs_obj_0,limit=1] rs 40
4
- tag @e[tag=__rs_obj_0,limit=1] add turret
5
- data modify storage rs:heap turretstate_state.health set value 40
6
- execute store result score $t0 rs run data get storage rs:heap turretstate_state.health
7
- execute store result score turret health run scoreboard players get $t1 rs
8
- say Turret deployed.
@@ -1,2 +0,0 @@
1
- # block: entry
2
- execute as @e[type=zombie,distance=..8] run function turret:turret_tick/foreach_2
@@ -1,2 +0,0 @@
1
- # block: entry
2
- execute at @s run function turret:turret_tick/at_1
@@ -1,2 +0,0 @@
1
- # block: entry
2
- kill @s
@@ -1,3 +0,0 @@
1
- # block: tick_body
2
- scoreboard players set $__tick_turret_tick rs 0
3
- execute as @e[type=armor_stand,tag=turret] run function turret:turret_tick/foreach_0
@@ -1 +0,0 @@
1
- # block: tick_skip
@@ -1,5 +0,0 @@
1
- # block: entry
2
- scoreboard players add $__tick_turret_tick rs 1
3
- execute store success score $__tick_turret_tick_check rs if score $__tick_turret_tick rs matches 20..
4
- execute if score $__tick_turret_tick_check rs matches 1.. run function turret:turret_tick/tick_body
5
- execute if score $__tick_turret_tick_check rs matches ..0 run function turret:turret_tick/tick_skip
@@ -1,44 +0,0 @@
1
- /**
2
- * RedScript Diagnostics
3
- *
4
- * Error reporting with file path, line, column, and formatted error messages.
5
- */
6
- export type DiagnosticKind = 'LexError' | 'ParseError' | 'LoweringError' | 'TypeError';
7
- export interface DiagnosticLocation {
8
- file?: string;
9
- line: number;
10
- col: number;
11
- }
12
- export declare class DiagnosticError extends Error {
13
- readonly kind: DiagnosticKind;
14
- readonly location: DiagnosticLocation;
15
- readonly sourceLines?: string[];
16
- constructor(kind: DiagnosticKind, message: string, location: DiagnosticLocation, sourceLines?: string[]);
17
- /**
18
- * Format the error for display:
19
- * ```
20
- * Error: [ParseError] line 5, col 12: Expected ';' after statement
21
- * 5 | let x = 42
22
- * ^ expected ';'
23
- * ```
24
- */
25
- format(): string;
26
- toString(): string;
27
- }
28
- export declare class DiagnosticCollector {
29
- private diagnostics;
30
- private sourceLines;
31
- private filePath?;
32
- constructor(source?: string, filePath?: string);
33
- error(kind: DiagnosticKind, message: string, line: number, col: number): void;
34
- hasErrors(): boolean;
35
- getErrors(): DiagnosticError[];
36
- formatAll(): string;
37
- throwFirst(): never;
38
- }
39
- /**
40
- * Create a DiagnosticError from a raw error message that includes line/col info
41
- * e.g., "Expected ';' at line 5, col 12"
42
- */
43
- export declare function parseErrorMessage(kind: DiagnosticKind, rawMessage: string, sourceLines?: string[], filePath?: string): DiagnosticError;
44
- export declare function formatError(error: Error | DiagnosticError, source?: string): string;