redscript-mc 2.3.0 → 2.4.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 (1540) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/__tests__/cli.test.d.ts +1 -0
  3. package/dist/__tests__/cli.test.js +278 -0
  4. package/dist/__tests__/codegen.test.d.ts +1 -0
  5. package/dist/__tests__/codegen.test.js +152 -0
  6. package/dist/__tests__/compile-all.test.d.ts +10 -0
  7. package/dist/__tests__/compile-all.test.js +108 -0
  8. package/dist/__tests__/dce.test.d.ts +1 -0
  9. package/dist/__tests__/dce.test.js +138 -0
  10. package/dist/__tests__/diagnostics.test.d.ts +4 -0
  11. package/dist/__tests__/diagnostics.test.js +149 -0
  12. package/dist/__tests__/e2e.test.d.ts +6 -0
  13. package/dist/__tests__/e2e.test.js +1847 -0
  14. package/dist/__tests__/entity-types.test.d.ts +1 -0
  15. package/dist/__tests__/entity-types.test.js +203 -0
  16. package/dist/__tests__/formatter.test.d.ts +1 -0
  17. package/dist/__tests__/formatter.test.js +40 -0
  18. package/dist/__tests__/lexer.test.d.ts +1 -0
  19. package/dist/__tests__/lexer.test.js +343 -0
  20. package/dist/__tests__/lowering.test.d.ts +1 -0
  21. package/dist/__tests__/lowering.test.js +1015 -0
  22. package/dist/__tests__/macro.test.d.ts +8 -0
  23. package/dist/__tests__/macro.test.js +305 -0
  24. package/dist/__tests__/mc-integration.test.d.ts +12 -0
  25. package/dist/__tests__/mc-integration.test.js +819 -0
  26. package/dist/__tests__/mc-syntax.test.d.ts +1 -0
  27. package/dist/__tests__/mc-syntax.test.js +124 -0
  28. package/dist/__tests__/nbt.test.d.ts +1 -0
  29. package/dist/__tests__/nbt.test.js +82 -0
  30. package/dist/__tests__/optimizer-advanced.test.d.ts +1 -0
  31. package/dist/__tests__/optimizer-advanced.test.js +124 -0
  32. package/dist/__tests__/optimizer.test.d.ts +1 -0
  33. package/dist/__tests__/optimizer.test.js +149 -0
  34. package/dist/__tests__/parser.test.d.ts +1 -0
  35. package/dist/__tests__/parser.test.js +807 -0
  36. package/dist/__tests__/repl.test.d.ts +1 -0
  37. package/dist/__tests__/repl.test.js +27 -0
  38. package/dist/__tests__/runtime.test.d.ts +1 -0
  39. package/dist/__tests__/runtime.test.js +289 -0
  40. package/dist/__tests__/stdlib-advanced.test.d.ts +4 -0
  41. package/dist/__tests__/stdlib-advanced.test.js +378 -0
  42. package/dist/__tests__/stdlib-bigint.test.d.ts +7 -0
  43. package/dist/__tests__/stdlib-bigint.test.js +428 -0
  44. package/dist/__tests__/stdlib-math.test.d.ts +7 -0
  45. package/dist/__tests__/stdlib-math.test.js +352 -0
  46. package/dist/__tests__/stdlib-vec.test.d.ts +4 -0
  47. package/dist/__tests__/stdlib-vec.test.js +264 -0
  48. package/dist/__tests__/structure-optimizer.test.d.ts +1 -0
  49. package/dist/__tests__/structure-optimizer.test.js +33 -0
  50. package/dist/__tests__/typechecker.test.d.ts +1 -0
  51. package/dist/__tests__/typechecker.test.js +552 -0
  52. package/dist/__tests__/var-allocator.test.d.ts +1 -0
  53. package/dist/__tests__/var-allocator.test.js +69 -0
  54. package/dist/ast/types.d.ts +514 -0
  55. package/dist/ast/types.js +9 -0
  56. package/dist/builtins/metadata.d.ts +36 -0
  57. package/dist/builtins/metadata.js +1014 -0
  58. package/dist/cli.d.ts +11 -0
  59. package/dist/cli.js +0 -0
  60. package/dist/codegen/cmdblock/index.d.ts +26 -0
  61. package/dist/codegen/cmdblock/index.js +45 -0
  62. package/dist/codegen/mcfunction/index.d.ts +40 -0
  63. package/dist/codegen/mcfunction/index.js +606 -0
  64. package/dist/codegen/structure/index.d.ts +24 -0
  65. package/dist/codegen/structure/index.js +279 -0
  66. package/dist/codegen/var-allocator.d.ts +45 -0
  67. package/dist/codegen/var-allocator.js +104 -0
  68. package/dist/compile.d.ts +68 -0
  69. package/dist/data/arena/function/__load.mcfunction +6 -0
  70. package/dist/data/arena/function/__tick.mcfunction +2 -0
  71. package/dist/data/arena/function/announce_leaders/else_1.mcfunction +3 -0
  72. package/dist/data/arena/function/announce_leaders/foreach_0/merge_2.mcfunction +1 -0
  73. package/dist/data/arena/function/announce_leaders/foreach_0/then_0.mcfunction +3 -0
  74. package/dist/data/arena/function/announce_leaders/foreach_0.mcfunction +7 -0
  75. package/dist/data/arena/function/announce_leaders/foreach_1/merge_2.mcfunction +1 -0
  76. package/dist/data/arena/function/announce_leaders/foreach_1/then_0.mcfunction +4 -0
  77. package/dist/data/arena/function/announce_leaders/foreach_1.mcfunction +6 -0
  78. package/dist/data/arena/function/announce_leaders/merge_2.mcfunction +1 -0
  79. package/dist/data/arena/function/announce_leaders/then_0.mcfunction +4 -0
  80. package/dist/data/arena/function/announce_leaders.mcfunction +6 -0
  81. package/dist/data/arena/function/arena_tick/merge_2.mcfunction +1 -0
  82. package/dist/data/arena/function/arena_tick/then_0.mcfunction +4 -0
  83. package/dist/data/arena/function/arena_tick.mcfunction +11 -0
  84. package/dist/data/capture_the_flag/function/add_to_team.mcfunction +5 -0
  85. package/dist/data/capture_the_flag/function/angry_at.mcfunction +1 -0
  86. package/dist/data/capture_the_flag/function/assign_teams.mcfunction +1 -0
  87. package/dist/data/capture_the_flag/function/assign_teams__foreach_t1.mcfunction +8 -0
  88. package/dist/data/capture_the_flag/function/assign_teams__foreach_t1__else_2.mcfunction +8 -0
  89. package/dist/data/capture_the_flag/function/assign_teams__foreach_t1__merge_1.mcfunction +3 -0
  90. package/dist/data/capture_the_flag/function/assign_teams__foreach_t1__then_0.mcfunction +8 -0
  91. package/dist/data/capture_the_flag/function/barrier_wall.mcfunction +1 -0
  92. package/dist/data/capture_the_flag/function/buff_all.mcfunction +22 -0
  93. package/dist/data/capture_the_flag/function/check_flag_capture.mcfunction +2 -0
  94. package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t0.mcfunction +8 -0
  95. package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t0__merge_1.mcfunction +1 -0
  96. package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t0__then_0.mcfunction +7 -0
  97. package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t1.mcfunction +8 -0
  98. package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t1__merge_1.mcfunction +1 -0
  99. package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t1__then_0.mcfunction +7 -0
  100. package/dist/data/capture_the_flag/function/check_flag_pickup.mcfunction +2 -0
  101. package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t0.mcfunction +8 -0
  102. package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t0__merge_1.mcfunction +1 -0
  103. package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t0__then_0.mcfunction +7 -0
  104. package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t1.mcfunction +8 -0
  105. package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t1__merge_1.mcfunction +1 -0
  106. package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t1__then_0.mcfunction +7 -0
  107. package/dist/data/capture_the_flag/function/check_win.mcfunction +4 -0
  108. package/dist/data/capture_the_flag/function/cleanup_teams.mcfunction +8 -0
  109. package/dist/data/capture_the_flag/function/clear_area.mcfunction +1 -0
  110. package/dist/data/capture_the_flag/function/clear_effect.mcfunction +1 -0
  111. package/dist/data/capture_the_flag/function/clear_effects.mcfunction +1 -0
  112. package/dist/data/capture_the_flag/function/clear_inventory.mcfunction +1 -0
  113. package/dist/data/capture_the_flag/function/create_blue_team.mcfunction +10 -0
  114. package/dist/data/capture_the_flag/function/create_green_team.mcfunction +10 -0
  115. package/dist/data/capture_the_flag/function/create_red_team.mcfunction +10 -0
  116. package/dist/data/capture_the_flag/function/create_team.mcfunction +8 -0
  117. package/dist/data/capture_the_flag/function/create_yellow_team.mcfunction +10 -0
  118. package/dist/data/capture_the_flag/function/disable_fire_spread.mcfunction +1 -0
  119. package/dist/data/capture_the_flag/function/disable_keep_inventory.mcfunction +1 -0
  120. package/dist/data/capture_the_flag/function/disable_mob_griefing.mcfunction +1 -0
  121. package/dist/data/capture_the_flag/function/distance_to.mcfunction +6 -0
  122. package/dist/data/capture_the_flag/function/distance_to__const_0_0_0_0.mcfunction +5 -0
  123. package/dist/data/capture_the_flag/function/enable_keep_inventory.mcfunction +1 -0
  124. package/dist/data/capture_the_flag/function/end_game.mcfunction +6 -0
  125. package/dist/data/capture_the_flag/function/end_game__else_2.mcfunction +3 -0
  126. package/dist/data/capture_the_flag/function/end_game__foreach_t7.mcfunction +2 -0
  127. package/dist/data/capture_the_flag/function/end_game__merge_1.mcfunction +1 -0
  128. package/dist/data/capture_the_flag/function/end_game__then_0.mcfunction +3 -0
  129. package/dist/data/capture_the_flag/function/end_sparkles_at.mcfunction +1 -0
  130. package/dist/data/capture_the_flag/function/explosion_effect.mcfunction +1 -0
  131. package/dist/data/capture_the_flag/function/flames.mcfunction +1 -0
  132. package/dist/data/capture_the_flag/function/game_tick.mcfunction +1 -0
  133. package/dist/data/capture_the_flag/function/give_kit_archer.mcfunction +6 -0
  134. package/dist/data/capture_the_flag/function/give_kit_mage.mcfunction +5 -0
  135. package/dist/data/capture_the_flag/function/give_kit_warrior.mcfunction +6 -0
  136. package/dist/data/capture_the_flag/function/glass_box.mcfunction +2 -0
  137. package/dist/data/capture_the_flag/function/glow.mcfunction +1 -0
  138. package/dist/data/capture_the_flag/function/happy_at.mcfunction +1 -0
  139. package/dist/data/capture_the_flag/function/hearts_at.mcfunction +1 -0
  140. package/dist/data/capture_the_flag/function/init.mcfunction +11 -0
  141. package/dist/data/capture_the_flag/function/invisible.mcfunction +1 -0
  142. package/dist/data/capture_the_flag/function/jump.mcfunction +1 -0
  143. package/dist/data/capture_the_flag/function/load.mcfunction +1 -0
  144. package/dist/data/capture_the_flag/function/night_vision.mcfunction +1 -0
  145. package/dist/data/capture_the_flag/function/place_flags.mcfunction +2 -0
  146. package/dist/data/capture_the_flag/function/portal_effect.mcfunction +1 -0
  147. package/dist/data/capture_the_flag/function/regen.mcfunction +1 -0
  148. package/dist/data/capture_the_flag/function/remove_from_teams.mcfunction +3 -0
  149. package/dist/data/capture_the_flag/function/remove_item.mcfunction +1 -0
  150. package/dist/data/capture_the_flag/function/resistance.mcfunction +1 -0
  151. package/dist/data/capture_the_flag/function/set_day.mcfunction +1 -0
  152. package/dist/data/capture_the_flag/function/set_easy.mcfunction +1 -0
  153. package/dist/data/capture_the_flag/function/set_hard.mcfunction +1 -0
  154. package/dist/data/capture_the_flag/function/set_midnight.mcfunction +1 -0
  155. package/dist/data/capture_the_flag/function/set_night.mcfunction +1 -0
  156. package/dist/data/capture_the_flag/function/set_noon.mcfunction +1 -0
  157. package/dist/data/capture_the_flag/function/set_normal.mcfunction +1 -0
  158. package/dist/data/capture_the_flag/function/set_peaceful.mcfunction +1 -0
  159. package/dist/data/capture_the_flag/function/setup_four_teams.mcfunction +4 -0
  160. package/dist/data/capture_the_flag/function/setup_two_teams.mcfunction +2 -0
  161. package/dist/data/capture_the_flag/function/slow_fall.mcfunction +1 -0
  162. package/dist/data/capture_the_flag/function/smoke.mcfunction +1 -0
  163. package/dist/data/capture_the_flag/function/sparkles_at.mcfunction +1 -0
  164. package/dist/data/capture_the_flag/function/speed.mcfunction +1 -0
  165. package/dist/data/capture_the_flag/function/start_game.mcfunction +15 -0
  166. package/dist/data/capture_the_flag/function/start_game__foreach_t10.mcfunction +4 -0
  167. package/dist/data/capture_the_flag/function/strength.mcfunction +1 -0
  168. package/dist/data/capture_the_flag/function/totem_at.mcfunction +1 -0
  169. package/dist/data/capture_the_flag/function/weather_clear.mcfunction +1 -0
  170. package/dist/data/capture_the_flag/function/weather_rain.mcfunction +1 -0
  171. package/dist/data/capture_the_flag/function/weather_thunder.mcfunction +1 -0
  172. package/dist/data/counter/function/__load.mcfunction +5 -0
  173. package/dist/data/counter/function/__tick.mcfunction +2 -0
  174. package/dist/data/counter/function/counter_tick/merge_2.mcfunction +1 -0
  175. package/dist/data/counter/function/counter_tick/then_0.mcfunction +3 -0
  176. package/dist/data/counter/function/counter_tick.mcfunction +11 -0
  177. package/dist/data/gcd2/function/__load.mcfunction +3 -0
  178. package/dist/data/gcd2/function/abs/merge_2.mcfunction +3 -0
  179. package/dist/data/gcd2/function/abs/then_0.mcfunction +5 -0
  180. package/dist/data/gcd2/function/abs.mcfunction +7 -0
  181. package/dist/data/gcd2/function/gcd/loop_body_1.mcfunction +7 -0
  182. package/dist/data/gcd2/function/gcd/loop_check_0.mcfunction +5 -0
  183. package/dist/data/gcd2/function/gcd/loop_exit_2.mcfunction +3 -0
  184. package/dist/data/gcd2/function/gcd.mcfunction +14 -0
  185. package/dist/data/gcd3/function/__load.mcfunction +3 -0
  186. package/dist/data/gcd3/function/abs/merge_2.mcfunction +3 -0
  187. package/dist/data/gcd3/function/abs/then_0.mcfunction +5 -0
  188. package/dist/data/gcd3/function/abs.mcfunction +7 -0
  189. package/dist/data/gcd3/function/gcd/loop_body_1.mcfunction +7 -0
  190. package/dist/data/gcd3/function/gcd/loop_check_0.mcfunction +5 -0
  191. package/dist/data/gcd3/function/gcd/loop_exit_2.mcfunction +3 -0
  192. package/dist/data/gcd3/function/gcd.mcfunction +14 -0
  193. package/dist/data/gcd3/function/test.mcfunction +7 -0
  194. package/dist/data/gcd3nm/function/__load.mcfunction +3 -0
  195. package/dist/data/gcd3nm/function/abs/merge_2.mcfunction +3 -0
  196. package/dist/data/gcd3nm/function/abs/then_0.mcfunction +5 -0
  197. package/dist/data/gcd3nm/function/abs.mcfunction +7 -0
  198. package/dist/data/gcd3nm/function/gcd/loop_body_1.mcfunction +7 -0
  199. package/dist/data/gcd3nm/function/gcd/loop_check_0.mcfunction +5 -0
  200. package/dist/data/gcd3nm/function/gcd/loop_exit_2.mcfunction +3 -0
  201. package/dist/data/gcd3nm/function/gcd.mcfunction +14 -0
  202. package/dist/data/gcd3nm/function/test.mcfunction +7 -0
  203. package/dist/data/gcd_test/function/__load.mcfunction +3 -0
  204. package/dist/data/gcd_test/function/abs/merge_2.mcfunction +3 -0
  205. package/dist/data/gcd_test/function/abs/then_0.mcfunction +5 -0
  206. package/dist/data/gcd_test/function/abs.mcfunction +7 -0
  207. package/dist/data/gcd_test/function/gcd/loop_body_1.mcfunction +7 -0
  208. package/dist/data/gcd_test/function/gcd/loop_check_0.mcfunction +5 -0
  209. package/dist/data/gcd_test/function/gcd/loop_exit_2.mcfunction +3 -0
  210. package/dist/data/gcd_test/function/gcd.mcfunction +14 -0
  211. package/dist/data/hunger_games/function/angry_at.mcfunction +1 -0
  212. package/dist/data/hunger_games/function/barrier_wall.mcfunction +1 -0
  213. package/dist/data/hunger_games/function/buff_all.mcfunction +22 -0
  214. package/dist/data/hunger_games/function/check_alive.mcfunction +3 -0
  215. package/dist/data/hunger_games/function/check_alive__foreach_t3.mcfunction +10 -0
  216. package/dist/data/hunger_games/function/check_alive__foreach_t3__merge_1.mcfunction +1 -0
  217. package/dist/data/hunger_games/function/check_alive__foreach_t3__then_0.mcfunction +5 -0
  218. package/dist/data/hunger_games/function/check_border_damage.mcfunction +1 -0
  219. package/dist/data/hunger_games/function/check_border_damage__foreach_t0.mcfunction +1 -0
  220. package/dist/data/hunger_games/function/clear_area.mcfunction +1 -0
  221. package/dist/data/hunger_games/function/clear_effect.mcfunction +1 -0
  222. package/dist/data/hunger_games/function/clear_effects.mcfunction +1 -0
  223. package/dist/data/hunger_games/function/countdown_tick.mcfunction +1 -0
  224. package/dist/data/hunger_games/function/create_health_bar.mcfunction +24 -0
  225. package/dist/data/hunger_games/function/create_progress_bar.mcfunction +24 -0
  226. package/dist/data/hunger_games/function/create_progress_bar__const_0_0_0.mcfunction +21 -0
  227. package/dist/data/hunger_games/function/create_timer_bar.mcfunction +30 -0
  228. package/dist/data/hunger_games/function/declare_winner.mcfunction +13 -0
  229. package/dist/data/hunger_games/function/disable_fire_spread.mcfunction +1 -0
  230. package/dist/data/hunger_games/function/disable_keep_inventory.mcfunction +1 -0
  231. package/dist/data/hunger_games/function/disable_mob_griefing.mcfunction +1 -0
  232. package/dist/data/hunger_games/function/enable_keep_inventory.mcfunction +1 -0
  233. package/dist/data/hunger_games/function/end_game_no_winner.mcfunction +3 -0
  234. package/dist/data/hunger_games/function/end_sparkles_at.mcfunction +1 -0
  235. package/dist/data/hunger_games/function/explosion_effect.mcfunction +1 -0
  236. package/dist/data/hunger_games/function/flames.mcfunction +1 -0
  237. package/dist/data/hunger_games/function/game_tick.mcfunction +1 -0
  238. package/dist/data/hunger_games/function/glass_box.mcfunction +2 -0
  239. package/dist/data/hunger_games/function/glow.mcfunction +1 -0
  240. package/dist/data/hunger_games/function/happy_at.mcfunction +1 -0
  241. package/dist/data/hunger_games/function/hearts_at.mcfunction +1 -0
  242. package/dist/data/hunger_games/function/hide_bar.mcfunction +4 -0
  243. package/dist/data/hunger_games/function/init.mcfunction +7 -0
  244. package/dist/data/hunger_games/function/invisible.mcfunction +1 -0
  245. package/dist/data/hunger_games/function/jump.mcfunction +1 -0
  246. package/dist/data/hunger_games/function/load.mcfunction +1 -0
  247. package/dist/data/hunger_games/function/main_game_tick.mcfunction +4 -0
  248. package/dist/data/hunger_games/function/night_vision.mcfunction +1 -0
  249. package/dist/data/hunger_games/function/on_player_death.mcfunction +14 -0
  250. package/dist/data/hunger_games/function/portal_effect.mcfunction +1 -0
  251. package/dist/data/hunger_games/function/regen.mcfunction +1 -0
  252. package/dist/data/hunger_games/function/remove_bar.mcfunction +3 -0
  253. package/dist/data/hunger_games/function/remove_bar__const_0.mcfunction +2 -0
  254. package/dist/data/hunger_games/function/reset_game.mcfunction +3 -0
  255. package/dist/data/hunger_games/function/reset_game__foreach_t0.mcfunction +9 -0
  256. package/dist/data/hunger_games/function/resistance.mcfunction +1 -0
  257. package/dist/data/hunger_games/function/set_day.mcfunction +1 -0
  258. package/dist/data/hunger_games/function/set_easy.mcfunction +1 -0
  259. package/dist/data/hunger_games/function/set_hard.mcfunction +1 -0
  260. package/dist/data/hunger_games/function/set_midnight.mcfunction +1 -0
  261. package/dist/data/hunger_games/function/set_night.mcfunction +1 -0
  262. package/dist/data/hunger_games/function/set_noon.mcfunction +1 -0
  263. package/dist/data/hunger_games/function/set_normal.mcfunction +1 -0
  264. package/dist/data/hunger_games/function/set_peaceful.mcfunction +1 -0
  265. package/dist/data/hunger_games/function/show_bar.mcfunction +4 -0
  266. package/dist/data/hunger_games/function/shrink_border.mcfunction +1 -0
  267. package/dist/data/hunger_games/function/slow_fall.mcfunction +1 -0
  268. package/dist/data/hunger_games/function/smoke.mcfunction +1 -0
  269. package/dist/data/hunger_games/function/sparkles_at.mcfunction +1 -0
  270. package/dist/data/hunger_games/function/speed.mcfunction +1 -0
  271. package/dist/data/hunger_games/function/start_countdown.mcfunction +3 -0
  272. package/dist/data/hunger_games/function/start_countdown__foreach_t0.mcfunction +16 -0
  273. package/dist/data/hunger_games/function/start_game.mcfunction +4 -0
  274. package/dist/data/hunger_games/function/start_game__foreach_t3.mcfunction +4 -0
  275. package/dist/data/hunger_games/function/strength.mcfunction +1 -0
  276. package/dist/data/hunger_games/function/totem_at.mcfunction +1 -0
  277. package/dist/data/hunger_games/function/update_bar.mcfunction +5 -0
  278. package/dist/data/hunger_games/function/update_bar__const_0_0.mcfunction +3 -0
  279. package/dist/data/hunger_games/function/update_bar_color.mcfunction +7 -0
  280. package/dist/data/hunger_games/function/update_bar_color__else_2.mcfunction +5 -0
  281. package/dist/data/hunger_games/function/update_bar_color__else_5.mcfunction +4 -0
  282. package/dist/data/hunger_games/function/update_bar_color__merge_1.mcfunction +1 -0
  283. package/dist/data/hunger_games/function/update_bar_color__merge_4.mcfunction +1 -0
  284. package/dist/data/hunger_games/function/update_bar_color__then_0.mcfunction +4 -0
  285. package/dist/data/hunger_games/function/update_bar_color__then_3.mcfunction +4 -0
  286. package/dist/data/hunger_games/function/weather_clear.mcfunction +1 -0
  287. package/dist/data/hunger_games/function/weather_rain.mcfunction +1 -0
  288. package/dist/data/hunger_games/function/weather_thunder.mcfunction +1 -0
  289. package/dist/data/isqrttest/function/__load.mcfunction +6 -0
  290. package/dist/data/isqrttest/function/isqrt/loop_body_4.mcfunction +12 -0
  291. package/dist/data/isqrttest/function/isqrt/loop_check_3.mcfunction +5 -0
  292. package/dist/data/isqrttest/function/isqrt/loop_exit_5.mcfunction +3 -0
  293. package/dist/data/isqrttest/function/isqrt/merge_2.mcfunction +4 -0
  294. package/dist/data/isqrttest/function/isqrt/merge_8.mcfunction +6 -0
  295. package/dist/data/isqrttest/function/isqrt/then_0.mcfunction +3 -0
  296. package/dist/data/isqrttest/function/isqrt/then_6.mcfunction +3 -0
  297. package/dist/data/isqrttest/function/isqrt.mcfunction +7 -0
  298. package/dist/data/isqrttest/function/test.mcfunction +6 -0
  299. package/dist/data/macrotest/function/get_element.mcfunction +2 -0
  300. package/dist/data/macrotest/function/load.mcfunction +1 -0
  301. package/dist/data/macrotest/function/test_dynamic_index.mcfunction +2 -0
  302. package/dist/data/mathtest/function/__load.mcfunction +3 -0
  303. package/dist/data/mathtest/function/abs/merge_2.mcfunction +3 -0
  304. package/dist/data/mathtest/function/abs/then_0.mcfunction +5 -0
  305. package/dist/data/mathtest/function/abs.mcfunction +6 -0
  306. package/dist/data/mathtest/function/test.mcfunction +5 -0
  307. package/dist/data/minecraft/tags/function/load.json +5 -0
  308. package/dist/data/minecraft/tags/function/tick.json +5 -0
  309. package/dist/data/mypack/function/__load.mcfunction +13 -0
  310. package/dist/data/mypack/function/_atan_init.mcfunction +2 -0
  311. package/dist/data/mypack/function/abs/merge_2.mcfunction +3 -0
  312. package/dist/data/mypack/function/abs/then_0.mcfunction +5 -0
  313. package/dist/data/mypack/function/abs.mcfunction +6 -0
  314. package/dist/data/mypack/function/atan2_fixed/__sgi_1.mcfunction +2 -0
  315. package/dist/data/mypack/function/atan2_fixed/else_34.mcfunction +3 -0
  316. package/dist/data/mypack/function/atan2_fixed/loop_body_31.mcfunction +19 -0
  317. package/dist/data/mypack/function/atan2_fixed/loop_check_30.mcfunction +5 -0
  318. package/dist/data/mypack/function/atan2_fixed/loop_exit_32.mcfunction +6 -0
  319. package/dist/data/mypack/function/atan2_fixed/merge_11.mcfunction +6 -0
  320. package/dist/data/mypack/function/atan2_fixed/merge_14.mcfunction +3 -0
  321. package/dist/data/mypack/function/atan2_fixed/merge_17.mcfunction +6 -0
  322. package/dist/data/mypack/function/atan2_fixed/merge_2.mcfunction +5 -0
  323. package/dist/data/mypack/function/atan2_fixed/merge_20.mcfunction +5 -0
  324. package/dist/data/mypack/function/atan2_fixed/merge_23.mcfunction +5 -0
  325. package/dist/data/mypack/function/atan2_fixed/merge_26.mcfunction +6 -0
  326. package/dist/data/mypack/function/atan2_fixed/merge_29.mcfunction +4 -0
  327. package/dist/data/mypack/function/atan2_fixed/merge_38.mcfunction +5 -0
  328. package/dist/data/mypack/function/atan2_fixed/merge_41.mcfunction +5 -0
  329. package/dist/data/mypack/function/atan2_fixed/merge_44.mcfunction +5 -0
  330. package/dist/data/mypack/function/atan2_fixed/merge_47.mcfunction +5 -0
  331. package/dist/data/mypack/function/atan2_fixed/merge_5.mcfunction +5 -0
  332. package/dist/data/mypack/function/atan2_fixed/merge_8.mcfunction +3 -0
  333. package/dist/data/mypack/function/atan2_fixed/then_0.mcfunction +5 -0
  334. package/dist/data/mypack/function/atan2_fixed/then_12.mcfunction +3 -0
  335. package/dist/data/mypack/function/atan2_fixed/then_15.mcfunction +5 -0
  336. package/dist/data/mypack/function/atan2_fixed/then_18.mcfunction +5 -0
  337. package/dist/data/mypack/function/atan2_fixed/then_21.mcfunction +3 -0
  338. package/dist/data/mypack/function/atan2_fixed/then_24.mcfunction +3 -0
  339. package/dist/data/mypack/function/atan2_fixed/then_27.mcfunction +6 -0
  340. package/dist/data/mypack/function/atan2_fixed/then_3.mcfunction +3 -0
  341. package/dist/data/mypack/function/atan2_fixed/then_33.mcfunction +5 -0
  342. package/dist/data/mypack/function/atan2_fixed/then_36.mcfunction +5 -0
  343. package/dist/data/mypack/function/atan2_fixed/then_39.mcfunction +5 -0
  344. package/dist/data/mypack/function/atan2_fixed/then_42.mcfunction +3 -0
  345. package/dist/data/mypack/function/atan2_fixed/then_45.mcfunction +5 -0
  346. package/dist/data/mypack/function/atan2_fixed/then_6.mcfunction +3 -0
  347. package/dist/data/mypack/function/atan2_fixed/then_9.mcfunction +5 -0
  348. package/dist/data/mypack/function/atan2_fixed.mcfunction +7 -0
  349. package/dist/data/mypack/function/my_game.mcfunction +10 -0
  350. package/dist/data/parkour_race/function/angry_at.mcfunction +1 -0
  351. package/dist/data/parkour_race/function/barrier_wall.mcfunction +1 -0
  352. package/dist/data/parkour_race/function/buff_all.mcfunction +22 -0
  353. package/dist/data/parkour_race/function/check_checkpoints.mcfunction +11 -0
  354. package/dist/data/parkour_race/function/check_checkpoints__exec_t11.mcfunction +4 -0
  355. package/dist/data/parkour_race/function/check_checkpoints__exec_t13.mcfunction +3 -0
  356. package/dist/data/parkour_race/function/check_checkpoints__exec_t5.mcfunction +4 -0
  357. package/dist/data/parkour_race/function/check_checkpoints__exec_t7.mcfunction +4 -0
  358. package/dist/data/parkour_race/function/check_checkpoints__exec_t9.mcfunction +4 -0
  359. package/dist/data/parkour_race/function/check_checkpoints__merge_1.mcfunction +5 -0
  360. package/dist/data/parkour_race/function/check_checkpoints__merge_3.mcfunction +5 -0
  361. package/dist/data/parkour_race/function/check_checkpoints__merge_5.mcfunction +5 -0
  362. package/dist/data/parkour_race/function/check_checkpoints__merge_7.mcfunction +5 -0
  363. package/dist/data/parkour_race/function/check_checkpoints__merge_9.mcfunction +1 -0
  364. package/dist/data/parkour_race/function/check_checkpoints__then_0.mcfunction +2 -0
  365. package/dist/data/parkour_race/function/check_checkpoints__then_2.mcfunction +2 -0
  366. package/dist/data/parkour_race/function/check_checkpoints__then_4.mcfunction +2 -0
  367. package/dist/data/parkour_race/function/check_checkpoints__then_6.mcfunction +2 -0
  368. package/dist/data/parkour_race/function/check_checkpoints__then_8.mcfunction +2 -0
  369. package/dist/data/parkour_race/function/check_fall.mcfunction +1 -0
  370. package/dist/data/parkour_race/function/check_fall__exec_t1.mcfunction +10 -0
  371. package/dist/data/parkour_race/function/clear_area.mcfunction +1 -0
  372. package/dist/data/parkour_race/function/clear_effect.mcfunction +1 -0
  373. package/dist/data/parkour_race/function/clear_effects.mcfunction +1 -0
  374. package/dist/data/parkour_race/function/create_health_bar.mcfunction +24 -0
  375. package/dist/data/parkour_race/function/create_progress_bar.mcfunction +24 -0
  376. package/dist/data/parkour_race/function/create_timer_bar.mcfunction +30 -0
  377. package/dist/data/parkour_race/function/disable_fire_spread.mcfunction +1 -0
  378. package/dist/data/parkour_race/function/disable_keep_inventory.mcfunction +1 -0
  379. package/dist/data/parkour_race/function/disable_mob_griefing.mcfunction +1 -0
  380. package/dist/data/parkour_race/function/enable_keep_inventory.mcfunction +1 -0
  381. package/dist/data/parkour_race/function/end_sparkles_at.mcfunction +1 -0
  382. package/dist/data/parkour_race/function/explosion_effect.mcfunction +1 -0
  383. package/dist/data/parkour_race/function/finish_race.mcfunction +20 -0
  384. package/dist/data/parkour_race/function/finish_race__else_2.mcfunction +4 -0
  385. package/dist/data/parkour_race/function/finish_race__else_5.mcfunction +3 -0
  386. package/dist/data/parkour_race/function/finish_race__merge_1.mcfunction +3 -0
  387. package/dist/data/parkour_race/function/finish_race__merge_4.mcfunction +1 -0
  388. package/dist/data/parkour_race/function/finish_race__then_0.mcfunction +8 -0
  389. package/dist/data/parkour_race/function/finish_race__then_3.mcfunction +10 -0
  390. package/dist/data/parkour_race/function/flames.mcfunction +1 -0
  391. package/dist/data/parkour_race/function/glass_box.mcfunction +2 -0
  392. package/dist/data/parkour_race/function/glow.mcfunction +1 -0
  393. package/dist/data/parkour_race/function/happy_at.mcfunction +1 -0
  394. package/dist/data/parkour_race/function/hearts_at.mcfunction +1 -0
  395. package/dist/data/parkour_race/function/hide_bar.mcfunction +4 -0
  396. package/dist/data/parkour_race/function/init.mcfunction +18 -0
  397. package/dist/data/parkour_race/function/invisible.mcfunction +1 -0
  398. package/dist/data/parkour_race/function/jump.mcfunction +1 -0
  399. package/dist/data/parkour_race/function/load.mcfunction +1 -0
  400. package/dist/data/parkour_race/function/night_vision.mcfunction +1 -0
  401. package/dist/data/parkour_race/function/portal_effect.mcfunction +1 -0
  402. package/dist/data/parkour_race/function/quit_race.mcfunction +10 -0
  403. package/dist/data/parkour_race/function/quit_race__merge_1.mcfunction +1 -0
  404. package/dist/data/parkour_race/function/quit_race__then_0.mcfunction +11 -0
  405. package/dist/data/parkour_race/function/race_tick.mcfunction +1 -0
  406. package/dist/data/parkour_race/function/race_tick__foreach_t0.mcfunction +10 -0
  407. package/dist/data/parkour_race/function/race_tick__foreach_t0__merge_1.mcfunction +1 -0
  408. package/dist/data/parkour_race/function/race_tick__foreach_t0__then_0.mcfunction +13 -0
  409. package/dist/data/parkour_race/function/reach_checkpoint.mcfunction +11 -0
  410. package/dist/data/parkour_race/function/regen.mcfunction +1 -0
  411. package/dist/data/parkour_race/function/remove_bar.mcfunction +3 -0
  412. package/dist/data/parkour_race/function/resistance.mcfunction +1 -0
  413. package/dist/data/parkour_race/function/respawn_at_checkpoint.mcfunction +7 -0
  414. package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_1.mcfunction +5 -0
  415. package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_3.mcfunction +5 -0
  416. package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_5.mcfunction +5 -0
  417. package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_7.mcfunction +5 -0
  418. package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_9.mcfunction +1 -0
  419. package/dist/data/parkour_race/function/respawn_at_checkpoint__then_0.mcfunction +6 -0
  420. package/dist/data/parkour_race/function/respawn_at_checkpoint__then_2.mcfunction +6 -0
  421. package/dist/data/parkour_race/function/respawn_at_checkpoint__then_4.mcfunction +6 -0
  422. package/dist/data/parkour_race/function/respawn_at_checkpoint__then_6.mcfunction +6 -0
  423. package/dist/data/parkour_race/function/respawn_at_checkpoint__then_8.mcfunction +6 -0
  424. package/dist/data/parkour_race/function/set_day.mcfunction +1 -0
  425. package/dist/data/parkour_race/function/set_easy.mcfunction +1 -0
  426. package/dist/data/parkour_race/function/set_hard.mcfunction +1 -0
  427. package/dist/data/parkour_race/function/set_midnight.mcfunction +1 -0
  428. package/dist/data/parkour_race/function/set_night.mcfunction +1 -0
  429. package/dist/data/parkour_race/function/set_noon.mcfunction +1 -0
  430. package/dist/data/parkour_race/function/set_normal.mcfunction +1 -0
  431. package/dist/data/parkour_race/function/set_peaceful.mcfunction +1 -0
  432. package/dist/data/parkour_race/function/show_bar.mcfunction +4 -0
  433. package/dist/data/parkour_race/function/show_leaderboard.mcfunction +4 -0
  434. package/dist/data/parkour_race/function/slow_fall.mcfunction +1 -0
  435. package/dist/data/parkour_race/function/smoke.mcfunction +1 -0
  436. package/dist/data/parkour_race/function/sparkles_at.mcfunction +1 -0
  437. package/dist/data/parkour_race/function/speed.mcfunction +1 -0
  438. package/dist/data/parkour_race/function/start_race.mcfunction +10 -0
  439. package/dist/data/parkour_race/function/start_race__merge_1.mcfunction +23 -0
  440. package/dist/data/parkour_race/function/start_race__then_0.mcfunction +1 -0
  441. package/dist/data/parkour_race/function/strength.mcfunction +1 -0
  442. package/dist/data/parkour_race/function/totem_at.mcfunction +1 -0
  443. package/dist/data/parkour_race/function/update_bar.mcfunction +5 -0
  444. package/dist/data/parkour_race/function/update_bar_color.mcfunction +7 -0
  445. package/dist/data/parkour_race/function/update_bar_color__else_2.mcfunction +5 -0
  446. package/dist/data/parkour_race/function/update_bar_color__else_5.mcfunction +4 -0
  447. package/dist/data/parkour_race/function/update_bar_color__merge_1.mcfunction +1 -0
  448. package/dist/data/parkour_race/function/update_bar_color__merge_4.mcfunction +1 -0
  449. package/dist/data/parkour_race/function/update_bar_color__then_0.mcfunction +4 -0
  450. package/dist/data/parkour_race/function/update_bar_color__then_3.mcfunction +4 -0
  451. package/dist/data/parkour_race/function/weather_clear.mcfunction +1 -0
  452. package/dist/data/parkour_race/function/weather_rain.mcfunction +1 -0
  453. package/dist/data/parkour_race/function/weather_thunder.mcfunction +1 -0
  454. package/dist/data/quiz/function/__load.mcfunction +16 -0
  455. package/dist/data/quiz/function/__tick.mcfunction +6 -0
  456. package/dist/data/quiz/function/__trigger_quiz_a_dispatch.mcfunction +4 -0
  457. package/dist/data/quiz/function/__trigger_quiz_b_dispatch.mcfunction +4 -0
  458. package/dist/data/quiz/function/__trigger_quiz_c_dispatch.mcfunction +4 -0
  459. package/dist/data/quiz/function/__trigger_quiz_start_dispatch.mcfunction +4 -0
  460. package/dist/data/quiz/function/answer_a.mcfunction +4 -0
  461. package/dist/data/quiz/function/answer_b.mcfunction +4 -0
  462. package/dist/data/quiz/function/answer_c.mcfunction +4 -0
  463. package/dist/data/quiz/function/ask_question/else_1.mcfunction +5 -0
  464. package/dist/data/quiz/function/ask_question/else_4.mcfunction +5 -0
  465. package/dist/data/quiz/function/ask_question/else_7.mcfunction +4 -0
  466. package/dist/data/quiz/function/ask_question/merge_2.mcfunction +1 -0
  467. package/dist/data/quiz/function/ask_question/merge_5.mcfunction +2 -0
  468. package/dist/data/quiz/function/ask_question/merge_8.mcfunction +2 -0
  469. package/dist/data/quiz/function/ask_question/then_0.mcfunction +4 -0
  470. package/dist/data/quiz/function/ask_question/then_3.mcfunction +4 -0
  471. package/dist/data/quiz/function/ask_question/then_6.mcfunction +4 -0
  472. package/dist/data/quiz/function/ask_question.mcfunction +7 -0
  473. package/dist/data/quiz/function/finish_quiz.mcfunction +6 -0
  474. package/dist/data/quiz/function/handle_answer/else_1.mcfunction +5 -0
  475. package/dist/data/quiz/function/handle_answer/else_10.mcfunction +3 -0
  476. package/dist/data/quiz/function/handle_answer/else_16.mcfunction +3 -0
  477. package/dist/data/quiz/function/handle_answer/else_4.mcfunction +3 -0
  478. package/dist/data/quiz/function/handle_answer/else_7.mcfunction +5 -0
  479. package/dist/data/quiz/function/handle_answer/merge_11.mcfunction +2 -0
  480. package/dist/data/quiz/function/handle_answer/merge_14.mcfunction +2 -0
  481. package/dist/data/quiz/function/handle_answer/merge_17.mcfunction +2 -0
  482. package/dist/data/quiz/function/handle_answer/merge_2.mcfunction +8 -0
  483. package/dist/data/quiz/function/handle_answer/merge_5.mcfunction +2 -0
  484. package/dist/data/quiz/function/handle_answer/merge_8.mcfunction +2 -0
  485. package/dist/data/quiz/function/handle_answer/then_0.mcfunction +5 -0
  486. package/dist/data/quiz/function/handle_answer/then_12.mcfunction +5 -0
  487. package/dist/data/quiz/function/handle_answer/then_15.mcfunction +6 -0
  488. package/dist/data/quiz/function/handle_answer/then_3.mcfunction +6 -0
  489. package/dist/data/quiz/function/handle_answer/then_6.mcfunction +5 -0
  490. package/dist/data/quiz/function/handle_answer/then_9.mcfunction +6 -0
  491. package/dist/data/quiz/function/handle_answer.mcfunction +11 -0
  492. package/dist/data/quiz/function/start_quiz.mcfunction +5 -0
  493. package/dist/data/rawtest/function/load.mcfunction +1 -0
  494. package/dist/data/rawtest/function/test.mcfunction +2 -0
  495. package/dist/data/reqtest/function/__load.mcfunction +4 -0
  496. package/dist/data/reqtest/function/_table_init.mcfunction +2 -0
  497. package/dist/data/reqtest/function/no_trig.mcfunction +3 -0
  498. package/dist/data/reqtest/function/use_table.mcfunction +4 -0
  499. package/dist/data/reqtest2/function/__load.mcfunction +3 -0
  500. package/dist/data/reqtest2/function/no_trig.mcfunction +3 -0
  501. package/dist/data/runtime/function/__load.mcfunction +5 -0
  502. package/dist/data/runtime/function/__tick.mcfunction +2 -0
  503. package/dist/data/runtime/function/counter_tick/then_0.mcfunction +3 -0
  504. package/dist/data/runtime/function/counter_tick.mcfunction +13 -0
  505. package/dist/data/shop/function/__load.mcfunction +7 -0
  506. package/dist/data/shop/function/__tick.mcfunction +3 -0
  507. package/dist/data/shop/function/__trigger_shop_buy_dispatch.mcfunction +4 -0
  508. package/dist/data/shop/function/complete_purchase/else_1.mcfunction +5 -0
  509. package/dist/data/shop/function/complete_purchase/else_4.mcfunction +5 -0
  510. package/dist/data/shop/function/complete_purchase/else_7.mcfunction +3 -0
  511. package/dist/data/shop/function/complete_purchase/merge_2.mcfunction +2 -0
  512. package/dist/data/shop/function/complete_purchase/merge_5.mcfunction +2 -0
  513. package/dist/data/shop/function/complete_purchase/merge_8.mcfunction +2 -0
  514. package/dist/data/shop/function/complete_purchase/then_0.mcfunction +4 -0
  515. package/dist/data/shop/function/complete_purchase/then_3.mcfunction +4 -0
  516. package/dist/data/shop/function/complete_purchase/then_6.mcfunction +4 -0
  517. package/dist/data/shop/function/complete_purchase.mcfunction +7 -0
  518. package/dist/data/shop/function/handle_shop_trigger.mcfunction +3 -0
  519. package/dist/data/swap_test/function/__load.mcfunction +3 -0
  520. package/dist/data/swap_test/function/gcd_old/loop_body_1.mcfunction +7 -0
  521. package/dist/data/swap_test/function/gcd_old/loop_check_0.mcfunction +5 -0
  522. package/dist/data/swap_test/function/gcd_old/loop_exit_2.mcfunction +3 -0
  523. package/dist/data/swap_test/function/gcd_old.mcfunction +8 -0
  524. package/dist/data/test/function/_atan_init.mcfunction +4 -0
  525. package/dist/data/test/function/_hsl_chroma_x.mcfunction +11 -0
  526. package/dist/data/test/function/_hsl_chroma_x__merge_1.mcfunction +6 -0
  527. package/dist/data/test/function/_hsl_chroma_x__then_0.mcfunction +4 -0
  528. package/dist/data/test/function/_math_init.mcfunction +4 -0
  529. package/dist/data/test/function/aabb_contains.mcfunction +13 -0
  530. package/dist/data/test/function/aabb_contains__merge_1.mcfunction +4 -0
  531. package/dist/data/test/function/aabb_contains__merge_10.mcfunction +4 -0
  532. package/dist/data/test/function/aabb_contains__merge_13.mcfunction +4 -0
  533. package/dist/data/test/function/aabb_contains__merge_16.mcfunction +2 -0
  534. package/dist/data/test/function/aabb_contains__merge_4.mcfunction +4 -0
  535. package/dist/data/test/function/aabb_contains__merge_7.mcfunction +4 -0
  536. package/dist/data/test/function/aabb_contains__then_0.mcfunction +2 -0
  537. package/dist/data/test/function/aabb_contains__then_12.mcfunction +2 -0
  538. package/dist/data/test/function/aabb_contains__then_15.mcfunction +2 -0
  539. package/dist/data/test/function/aabb_contains__then_3.mcfunction +2 -0
  540. package/dist/data/test/function/aabb_contains__then_6.mcfunction +2 -0
  541. package/dist/data/test/function/aabb_contains__then_9.mcfunction +2 -0
  542. package/dist/data/test/function/add2d_x.mcfunction +5 -0
  543. package/dist/data/test/function/add2d_y.mcfunction +5 -0
  544. package/dist/data/test/function/add3d_x.mcfunction +5 -0
  545. package/dist/data/test/function/add3d_y.mcfunction +5 -0
  546. package/dist/data/test/function/add3d_z.mcfunction +5 -0
  547. package/dist/data/test/function/angle_diff.mcfunction +13 -0
  548. package/dist/data/test/function/angle_diff__merge_1.mcfunction +1 -0
  549. package/dist/data/test/function/angle_diff__then_0.mcfunction +4 -0
  550. package/dist/data/test/function/angle_normalize.mcfunction +3 -0
  551. package/dist/data/test/function/angle_normalize__loop_body_1.mcfunction +4 -0
  552. package/dist/data/test/function/angle_normalize__loop_body_4.mcfunction +4 -0
  553. package/dist/data/test/function/angle_normalize__loop_exit_2.mcfunction +1 -0
  554. package/dist/data/test/function/angle_normalize__loop_exit_5.mcfunction +1 -0
  555. package/dist/data/test/function/angle_normalize__loop_header_0.mcfunction +5 -0
  556. package/dist/data/test/function/angle_normalize__loop_header_3.mcfunction +5 -0
  557. package/dist/data/test/function/approx_eq.mcfunction +11 -0
  558. package/dist/data/test/function/approx_eq__merge_1.mcfunction +4 -0
  559. package/dist/data/test/function/approx_eq__merge_3.mcfunction +2 -0
  560. package/dist/data/test/function/approx_eq__then_0.mcfunction +4 -0
  561. package/dist/data/test/function/approx_eq__then_2.mcfunction +2 -0
  562. package/dist/data/test/function/atan2_fixed.mcfunction +7 -0
  563. package/dist/data/test/function/atan2_fixed__else_30.mcfunction +2 -0
  564. package/dist/data/test/function/atan2_fixed__loop_body_26.mcfunction +22 -0
  565. package/dist/data/test/function/atan2_fixed__loop_exit_27.mcfunction +6 -0
  566. package/dist/data/test/function/atan2_fixed__loop_header_25.mcfunction +4 -0
  567. package/dist/data/test/function/atan2_fixed__merge_1.mcfunction +5 -0
  568. package/dist/data/test/function/atan2_fixed__merge_10.mcfunction +6 -0
  569. package/dist/data/test/function/atan2_fixed__merge_12.mcfunction +2 -0
  570. package/dist/data/test/function/atan2_fixed__merge_16.mcfunction +6 -0
  571. package/dist/data/test/function/atan2_fixed__merge_18.mcfunction +5 -0
  572. package/dist/data/test/function/atan2_fixed__merge_20.mcfunction +5 -0
  573. package/dist/data/test/function/atan2_fixed__merge_22.mcfunction +5 -0
  574. package/dist/data/test/function/atan2_fixed__merge_24.mcfunction +3 -0
  575. package/dist/data/test/function/atan2_fixed__merge_29.mcfunction +1 -0
  576. package/dist/data/test/function/atan2_fixed__merge_3.mcfunction +5 -0
  577. package/dist/data/test/function/atan2_fixed__merge_32.mcfunction +5 -0
  578. package/dist/data/test/function/atan2_fixed__merge_34.mcfunction +5 -0
  579. package/dist/data/test/function/atan2_fixed__merge_36.mcfunction +3 -0
  580. package/dist/data/test/function/atan2_fixed__merge_40.mcfunction +3 -0
  581. package/dist/data/test/function/atan2_fixed__merge_6.mcfunction +2 -0
  582. package/dist/data/test/function/atan2_fixed__then_0.mcfunction +5 -0
  583. package/dist/data/test/function/atan2_fixed__then_11.mcfunction +2 -0
  584. package/dist/data/test/function/atan2_fixed__then_15.mcfunction +4 -0
  585. package/dist/data/test/function/atan2_fixed__then_17.mcfunction +4 -0
  586. package/dist/data/test/function/atan2_fixed__then_19.mcfunction +2 -0
  587. package/dist/data/test/function/atan2_fixed__then_2.mcfunction +2 -0
  588. package/dist/data/test/function/atan2_fixed__then_21.mcfunction +2 -0
  589. package/dist/data/test/function/atan2_fixed__then_23.mcfunction +5 -0
  590. package/dist/data/test/function/atan2_fixed__then_28.mcfunction +4 -0
  591. package/dist/data/test/function/atan2_fixed__then_31.mcfunction +4 -0
  592. package/dist/data/test/function/atan2_fixed__then_33.mcfunction +5 -0
  593. package/dist/data/test/function/atan2_fixed__then_35.mcfunction +1 -0
  594. package/dist/data/test/function/atan2_fixed__then_39.mcfunction +3 -0
  595. package/dist/data/test/function/atan2_fixed__then_5.mcfunction +2 -0
  596. package/dist/data/test/function/atan2_fixed__then_9.mcfunction +5 -0
  597. package/dist/data/test/function/avg3.mcfunction +11 -0
  598. package/dist/data/test/function/avg5.mcfunction +17 -0
  599. package/dist/data/test/function/bernoulli.mcfunction +13 -0
  600. package/dist/data/test/function/bernoulli__merge_1.mcfunction +7 -0
  601. package/dist/data/test/function/bernoulli__merge_3.mcfunction +2 -0
  602. package/dist/data/test/function/bernoulli__then_0.mcfunction +4 -0
  603. package/dist/data/test/function/bernoulli__then_2.mcfunction +2 -0
  604. package/dist/data/test/function/bigint3_add_hi.mcfunction +11 -0
  605. package/dist/data/test/function/bigint3_add_lo.mcfunction +8 -0
  606. package/dist/data/test/function/bigint3_add_mid.mcfunction +11 -0
  607. package/dist/data/test/function/bigint3_borrow_lo.mcfunction +6 -0
  608. package/dist/data/test/function/bigint3_borrow_lo__merge_1.mcfunction +2 -0
  609. package/dist/data/test/function/bigint3_borrow_lo__then_0.mcfunction +2 -0
  610. package/dist/data/test/function/bigint3_borrow_mid.mcfunction +9 -0
  611. package/dist/data/test/function/bigint3_borrow_mid__merge_1.mcfunction +2 -0
  612. package/dist/data/test/function/bigint3_borrow_mid__then_0.mcfunction +2 -0
  613. package/dist/data/test/function/bigint3_carry_lo.mcfunction +8 -0
  614. package/dist/data/test/function/bigint3_carry_mid.mcfunction +11 -0
  615. package/dist/data/test/function/bigint3_cmp.mcfunction +10 -0
  616. package/dist/data/test/function/bigint3_cmp__merge_1.mcfunction +4 -0
  617. package/dist/data/test/function/bigint3_cmp__merge_10.mcfunction +4 -0
  618. package/dist/data/test/function/bigint3_cmp__merge_13.mcfunction +4 -0
  619. package/dist/data/test/function/bigint3_cmp__merge_16.mcfunction +2 -0
  620. package/dist/data/test/function/bigint3_cmp__merge_4.mcfunction +4 -0
  621. package/dist/data/test/function/bigint3_cmp__merge_7.mcfunction +4 -0
  622. package/dist/data/test/function/bigint3_cmp__then_0.mcfunction +2 -0
  623. package/dist/data/test/function/bigint3_cmp__then_12.mcfunction +2 -0
  624. package/dist/data/test/function/bigint3_cmp__then_15.mcfunction +2 -0
  625. package/dist/data/test/function/bigint3_cmp__then_3.mcfunction +2 -0
  626. package/dist/data/test/function/bigint3_cmp__then_6.mcfunction +2 -0
  627. package/dist/data/test/function/bigint3_cmp__then_9.mcfunction +2 -0
  628. package/dist/data/test/function/bigint3_div_chunk.mcfunction +11 -0
  629. package/dist/data/test/function/bigint3_mul1_hi.mcfunction +8 -0
  630. package/dist/data/test/function/bigint3_mul1_lo.mcfunction +8 -0
  631. package/dist/data/test/function/bigint3_mul1_mid.mcfunction +2 -0
  632. package/dist/data/test/function/bigint3_rem_chunk.mcfunction +11 -0
  633. package/dist/data/test/function/bigint3_sub_hi.mcfunction +8 -0
  634. package/dist/data/test/function/bigint3_sub_lo.mcfunction +6 -0
  635. package/dist/data/test/function/bigint3_sub_lo__merge_1.mcfunction +5 -0
  636. package/dist/data/test/function/bigint3_sub_lo__then_0.mcfunction +3 -0
  637. package/dist/data/test/function/bigint3_sub_mid.mcfunction +13 -0
  638. package/dist/data/test/function/bigint3_sub_mid__merge_1.mcfunction +1 -0
  639. package/dist/data/test/function/bigint3_sub_mid__then_0.mcfunction +4 -0
  640. package/dist/data/test/function/bigint3_to_int32.mcfunction +14 -0
  641. package/dist/data/test/function/bigint_base.mcfunction +2 -0
  642. package/dist/data/test/function/bit_and.mcfunction +6 -0
  643. package/dist/data/test/function/bit_and__loop_body_1.mcfunction +10 -0
  644. package/dist/data/test/function/bit_and__loop_exit_2.mcfunction +1 -0
  645. package/dist/data/test/function/bit_and__loop_header_0.mcfunction +5 -0
  646. package/dist/data/test/function/bit_and__merge_4.mcfunction +8 -0
  647. package/dist/data/test/function/bit_and__merge_6.mcfunction +1 -0
  648. package/dist/data/test/function/bit_and__then_3.mcfunction +10 -0
  649. package/dist/data/test/function/bit_and__then_5.mcfunction +4 -0
  650. package/dist/data/test/function/bit_clear.mcfunction +5 -0
  651. package/dist/data/test/function/bit_clear__loop_body_1.mcfunction +8 -0
  652. package/dist/data/test/function/bit_clear__loop_exit_2.mcfunction +10 -0
  653. package/dist/data/test/function/bit_clear__loop_header_0.mcfunction +4 -0
  654. package/dist/data/test/function/bit_clear__merge_4.mcfunction +1 -0
  655. package/dist/data/test/function/bit_clear__then_3.mcfunction +3 -0
  656. package/dist/data/test/function/bit_get.mcfunction +5 -0
  657. package/dist/data/test/function/bit_get__loop_body_1.mcfunction +8 -0
  658. package/dist/data/test/function/bit_get__loop_exit_2.mcfunction +6 -0
  659. package/dist/data/test/function/bit_get__loop_header_0.mcfunction +4 -0
  660. package/dist/data/test/function/bit_not.mcfunction +5 -0
  661. package/dist/data/test/function/bit_not__loop_body_1.mcfunction +10 -0
  662. package/dist/data/test/function/bit_not__loop_exit_2.mcfunction +1 -0
  663. package/dist/data/test/function/bit_not__loop_header_0.mcfunction +5 -0
  664. package/dist/data/test/function/bit_not__merge_4.mcfunction +8 -0
  665. package/dist/data/test/function/bit_not__then_3.mcfunction +4 -0
  666. package/dist/data/test/function/bit_or.mcfunction +6 -0
  667. package/dist/data/test/function/bit_or__loop_body_1.mcfunction +10 -0
  668. package/dist/data/test/function/bit_or__loop_exit_2.mcfunction +1 -0
  669. package/dist/data/test/function/bit_or__loop_header_0.mcfunction +5 -0
  670. package/dist/data/test/function/bit_or__merge_4.mcfunction +10 -0
  671. package/dist/data/test/function/bit_or__merge_6.mcfunction +8 -0
  672. package/dist/data/test/function/bit_or__merge_8.mcfunction +1 -0
  673. package/dist/data/test/function/bit_or__then_3.mcfunction +4 -0
  674. package/dist/data/test/function/bit_or__then_5.mcfunction +10 -0
  675. package/dist/data/test/function/bit_or__then_7.mcfunction +4 -0
  676. package/dist/data/test/function/bit_set.mcfunction +5 -0
  677. package/dist/data/test/function/bit_set__loop_body_1.mcfunction +8 -0
  678. package/dist/data/test/function/bit_set__loop_exit_2.mcfunction +10 -0
  679. package/dist/data/test/function/bit_set__loop_header_0.mcfunction +4 -0
  680. package/dist/data/test/function/bit_set__merge_4.mcfunction +1 -0
  681. package/dist/data/test/function/bit_set__then_3.mcfunction +3 -0
  682. package/dist/data/test/function/bit_shl.mcfunction +5 -0
  683. package/dist/data/test/function/bit_shl__loop_body_1.mcfunction +8 -0
  684. package/dist/data/test/function/bit_shl__loop_exit_2.mcfunction +1 -0
  685. package/dist/data/test/function/bit_shl__loop_header_0.mcfunction +4 -0
  686. package/dist/data/test/function/bit_shr.mcfunction +5 -0
  687. package/dist/data/test/function/bit_shr__loop_body_1.mcfunction +8 -0
  688. package/dist/data/test/function/bit_shr__loop_exit_2.mcfunction +1 -0
  689. package/dist/data/test/function/bit_shr__loop_header_0.mcfunction +4 -0
  690. package/dist/data/test/function/bit_toggle.mcfunction +5 -0
  691. package/dist/data/test/function/bit_toggle__loop_body_1.mcfunction +8 -0
  692. package/dist/data/test/function/bit_toggle__loop_exit_2.mcfunction +10 -0
  693. package/dist/data/test/function/bit_toggle__loop_header_0.mcfunction +4 -0
  694. package/dist/data/test/function/bit_toggle__merge_4.mcfunction +3 -0
  695. package/dist/data/test/function/bit_toggle__then_3.mcfunction +3 -0
  696. package/dist/data/test/function/bit_xor.mcfunction +6 -0
  697. package/dist/data/test/function/bit_xor__loop_body_1.mcfunction +14 -0
  698. package/dist/data/test/function/bit_xor__loop_exit_2.mcfunction +1 -0
  699. package/dist/data/test/function/bit_xor__loop_header_0.mcfunction +5 -0
  700. package/dist/data/test/function/bit_xor__merge_4.mcfunction +8 -0
  701. package/dist/data/test/function/bit_xor__then_3.mcfunction +4 -0
  702. package/dist/data/test/function/cbrt_fx.mcfunction +6 -0
  703. package/dist/data/test/function/cbrt_fx__loop_body_6.mcfunction +8 -0
  704. package/dist/data/test/function/cbrt_fx__loop_exit_7.mcfunction +1 -0
  705. package/dist/data/test/function/cbrt_fx__loop_header_5.mcfunction +5 -0
  706. package/dist/data/test/function/cbrt_fx__merge_1.mcfunction +9 -0
  707. package/dist/data/test/function/cbrt_fx__merge_11.mcfunction +6 -0
  708. package/dist/data/test/function/cbrt_fx__merge_13.mcfunction +4 -0
  709. package/dist/data/test/function/cbrt_fx__merge_4.mcfunction +2 -0
  710. package/dist/data/test/function/cbrt_fx__merge_9.mcfunction +14 -0
  711. package/dist/data/test/function/cbrt_fx__then_0.mcfunction +2 -0
  712. package/dist/data/test/function/cbrt_fx__then_10.mcfunction +2 -0
  713. package/dist/data/test/function/cbrt_fx__then_12.mcfunction +2 -0
  714. package/dist/data/test/function/cbrt_fx__then_3.mcfunction +2 -0
  715. package/dist/data/test/function/cbrt_fx__then_8.mcfunction +2 -0
  716. package/dist/data/test/function/ceil_div.mcfunction +9 -0
  717. package/dist/data/test/function/chebyshev.mcfunction +15 -0
  718. package/dist/data/test/function/chebyshev3d.mcfunction +20 -0
  719. package/dist/data/test/function/chebyshev3d__merge_1.mcfunction +5 -0
  720. package/dist/data/test/function/chebyshev3d__merge_3.mcfunction +5 -0
  721. package/dist/data/test/function/chebyshev3d__merge_5.mcfunction +5 -0
  722. package/dist/data/test/function/chebyshev3d__merge_7.mcfunction +4 -0
  723. package/dist/data/test/function/chebyshev3d__merge_9.mcfunction +1 -0
  724. package/dist/data/test/function/chebyshev3d__then_0.mcfunction +4 -0
  725. package/dist/data/test/function/chebyshev3d__then_2.mcfunction +4 -0
  726. package/dist/data/test/function/chebyshev3d__then_4.mcfunction +4 -0
  727. package/dist/data/test/function/chebyshev3d__then_6.mcfunction +2 -0
  728. package/dist/data/test/function/chebyshev3d__then_8.mcfunction +2 -0
  729. package/dist/data/test/function/chebyshev__merge_1.mcfunction +5 -0
  730. package/dist/data/test/function/chebyshev__merge_3.mcfunction +4 -0
  731. package/dist/data/test/function/chebyshev__merge_5.mcfunction +1 -0
  732. package/dist/data/test/function/chebyshev__then_0.mcfunction +4 -0
  733. package/dist/data/test/function/chebyshev__then_2.mcfunction +4 -0
  734. package/dist/data/test/function/chebyshev__then_4.mcfunction +1 -0
  735. package/dist/data/test/function/chunk_hi.mcfunction +5 -0
  736. package/dist/data/test/function/chunk_lo.mcfunction +5 -0
  737. package/dist/data/test/function/clamp3.mcfunction +7 -0
  738. package/dist/data/test/function/clamp3__merge_1.mcfunction +4 -0
  739. package/dist/data/test/function/clamp3__merge_4.mcfunction +1 -0
  740. package/dist/data/test/function/clamp3__then_0.mcfunction +1 -0
  741. package/dist/data/test/function/clamp3__then_3.mcfunction +1 -0
  742. package/dist/data/test/function/combinations.mcfunction +7 -0
  743. package/dist/data/test/function/combinations__loop_body_9.mcfunction +15 -0
  744. package/dist/data/test/function/combinations__loop_exit_10.mcfunction +1 -0
  745. package/dist/data/test/function/combinations__loop_header_8.mcfunction +4 -0
  746. package/dist/data/test/function/combinations__merge_1.mcfunction +4 -0
  747. package/dist/data/test/function/combinations__merge_4.mcfunction +7 -0
  748. package/dist/data/test/function/combinations__merge_7.mcfunction +3 -0
  749. package/dist/data/test/function/combinations__then_0.mcfunction +2 -0
  750. package/dist/data/test/function/combinations__then_3.mcfunction +2 -0
  751. package/dist/data/test/function/combinations__then_6.mcfunction +4 -0
  752. package/dist/data/test/function/cos_fixed.mcfunction +7 -0
  753. package/dist/data/test/function/cos_hp.mcfunction +6 -0
  754. package/dist/data/test/function/cross2d.mcfunction +11 -0
  755. package/dist/data/test/function/cross3d_x.mcfunction +11 -0
  756. package/dist/data/test/function/cross3d_y.mcfunction +11 -0
  757. package/dist/data/test/function/cross3d_z.mcfunction +11 -0
  758. package/dist/data/test/function/cylinder_contains.mcfunction +21 -0
  759. package/dist/data/test/function/cylinder_contains__merge_1.mcfunction +2 -0
  760. package/dist/data/test/function/cylinder_contains__then_0.mcfunction +2 -0
  761. package/dist/data/test/function/distance2d_fixed.mcfunction +13 -0
  762. package/dist/data/test/function/distance3d_fixed.mcfunction +18 -0
  763. package/dist/data/test/function/divfix.mcfunction +7 -0
  764. package/dist/data/test/function/divfix__merge_1.mcfunction +6 -0
  765. package/dist/data/test/function/divfix__then_0.mcfunction +2 -0
  766. package/dist/data/test/function/dot2d.mcfunction +11 -0
  767. package/dist/data/test/function/dot3d.mcfunction +17 -0
  768. package/dist/data/test/function/exp_dist_approx.mcfunction +13 -0
  769. package/dist/data/test/function/exp_dist_approx__merge_1.mcfunction +16 -0
  770. package/dist/data/test/function/exp_dist_approx__merge_3.mcfunction +11 -0
  771. package/dist/data/test/function/exp_dist_approx__merge_5.mcfunction +1 -0
  772. package/dist/data/test/function/exp_dist_approx__then_0.mcfunction +4 -0
  773. package/dist/data/test/function/exp_dist_approx__then_2.mcfunction +2 -0
  774. package/dist/data/test/function/exp_dist_approx__then_4.mcfunction +2 -0
  775. package/dist/data/test/function/exp_fx.mcfunction +17 -0
  776. package/dist/data/test/function/exp_fx__loop_body_10.mcfunction +8 -0
  777. package/dist/data/test/function/exp_fx__loop_body_5.mcfunction +8 -0
  778. package/dist/data/test/function/exp_fx__loop_exit_11.mcfunction +1 -0
  779. package/dist/data/test/function/exp_fx__loop_exit_6.mcfunction +1 -0
  780. package/dist/data/test/function/exp_fx__loop_header_4.mcfunction +4 -0
  781. package/dist/data/test/function/exp_fx__loop_header_9.mcfunction +4 -0
  782. package/dist/data/test/function/exp_fx__merge_1.mcfunction +48 -0
  783. package/dist/data/test/function/exp_fx__merge_3.mcfunction +5 -0
  784. package/dist/data/test/function/exp_fx__merge_8.mcfunction +1 -0
  785. package/dist/data/test/function/exp_fx__then_0.mcfunction +7 -0
  786. package/dist/data/test/function/exp_fx__then_2.mcfunction +2 -0
  787. package/dist/data/test/function/exp_fx__then_7.mcfunction +5 -0
  788. package/dist/data/test/function/factorial.mcfunction +6 -0
  789. package/dist/data/test/function/factorial__loop_body_4.mcfunction +7 -0
  790. package/dist/data/test/function/factorial__loop_exit_5.mcfunction +1 -0
  791. package/dist/data/test/function/factorial__loop_header_3.mcfunction +4 -0
  792. package/dist/data/test/function/factorial__merge_1.mcfunction +3 -0
  793. package/dist/data/test/function/factorial__then_0.mcfunction +2 -0
  794. package/dist/data/test/function/format_time_h.mcfunction +5 -0
  795. package/dist/data/test/function/format_time_m.mcfunction +8 -0
  796. package/dist/data/test/function/format_time_s.mcfunction +8 -0
  797. package/dist/data/test/function/gamma_int.mcfunction +6 -0
  798. package/dist/data/test/function/gamma_int__merge_1.mcfunction +6 -0
  799. package/dist/data/test/function/gamma_int__then_0.mcfunction +2 -0
  800. package/dist/data/test/function/gcd.mcfunction +8 -0
  801. package/dist/data/test/function/gcd__loop_body_5.mcfunction +5 -0
  802. package/dist/data/test/function/gcd__loop_exit_6.mcfunction +1 -0
  803. package/dist/data/test/function/gcd__loop_header_4.mcfunction +5 -0
  804. package/dist/data/test/function/gcd__merge_1.mcfunction +6 -0
  805. package/dist/data/test/function/gcd__merge_3.mcfunction +1 -0
  806. package/dist/data/test/function/gcd__then_0.mcfunction +4 -0
  807. package/dist/data/test/function/gcd__then_2.mcfunction +4 -0
  808. package/dist/data/test/function/hsl_to_b.mcfunction +24 -0
  809. package/dist/data/test/function/hsl_to_b__merge_1.mcfunction +30 -0
  810. package/dist/data/test/function/hsl_to_b__merge_12.mcfunction +5 -0
  811. package/dist/data/test/function/hsl_to_b__merge_15.mcfunction +3 -0
  812. package/dist/data/test/function/hsl_to_b__merge_3.mcfunction +5 -0
  813. package/dist/data/test/function/hsl_to_b__merge_6.mcfunction +5 -0
  814. package/dist/data/test/function/hsl_to_b__merge_9.mcfunction +5 -0
  815. package/dist/data/test/function/hsl_to_b__then_0.mcfunction +4 -0
  816. package/dist/data/test/function/hsl_to_b__then_11.mcfunction +3 -0
  817. package/dist/data/test/function/hsl_to_b__then_14.mcfunction +3 -0
  818. package/dist/data/test/function/hsl_to_b__then_2.mcfunction +1 -0
  819. package/dist/data/test/function/hsl_to_b__then_5.mcfunction +1 -0
  820. package/dist/data/test/function/hsl_to_b__then_8.mcfunction +3 -0
  821. package/dist/data/test/function/hsl_to_g.mcfunction +24 -0
  822. package/dist/data/test/function/hsl_to_g__merge_1.mcfunction +30 -0
  823. package/dist/data/test/function/hsl_to_g__merge_12.mcfunction +5 -0
  824. package/dist/data/test/function/hsl_to_g__merge_15.mcfunction +1 -0
  825. package/dist/data/test/function/hsl_to_g__merge_3.mcfunction +5 -0
  826. package/dist/data/test/function/hsl_to_g__merge_6.mcfunction +5 -0
  827. package/dist/data/test/function/hsl_to_g__merge_9.mcfunction +5 -0
  828. package/dist/data/test/function/hsl_to_g__then_0.mcfunction +4 -0
  829. package/dist/data/test/function/hsl_to_g__then_11.mcfunction +3 -0
  830. package/dist/data/test/function/hsl_to_g__then_14.mcfunction +1 -0
  831. package/dist/data/test/function/hsl_to_g__then_2.mcfunction +3 -0
  832. package/dist/data/test/function/hsl_to_g__then_5.mcfunction +3 -0
  833. package/dist/data/test/function/hsl_to_g__then_8.mcfunction +3 -0
  834. package/dist/data/test/function/hsl_to_packed.mcfunction +24 -0
  835. package/dist/data/test/function/hsl_to_r.mcfunction +24 -0
  836. package/dist/data/test/function/hsl_to_r__merge_1.mcfunction +30 -0
  837. package/dist/data/test/function/hsl_to_r__merge_12.mcfunction +5 -0
  838. package/dist/data/test/function/hsl_to_r__merge_15.mcfunction +3 -0
  839. package/dist/data/test/function/hsl_to_r__merge_3.mcfunction +5 -0
  840. package/dist/data/test/function/hsl_to_r__merge_6.mcfunction +5 -0
  841. package/dist/data/test/function/hsl_to_r__merge_9.mcfunction +5 -0
  842. package/dist/data/test/function/hsl_to_r__then_0.mcfunction +4 -0
  843. package/dist/data/test/function/hsl_to_r__then_11.mcfunction +1 -0
  844. package/dist/data/test/function/hsl_to_r__then_14.mcfunction +3 -0
  845. package/dist/data/test/function/hsl_to_r__then_2.mcfunction +3 -0
  846. package/dist/data/test/function/hsl_to_r__then_5.mcfunction +3 -0
  847. package/dist/data/test/function/hsl_to_r__then_8.mcfunction +1 -0
  848. package/dist/data/test/function/init_trig.mcfunction +1 -0
  849. package/dist/data/test/function/int32_to_bigint3_hi.mcfunction +6 -0
  850. package/dist/data/test/function/int32_to_bigint3_hi__merge_1.mcfunction +4 -0
  851. package/dist/data/test/function/int32_to_bigint3_hi__then_0.mcfunction +4 -0
  852. package/dist/data/test/function/int32_to_bigint3_lo.mcfunction +6 -0
  853. package/dist/data/test/function/int32_to_bigint3_lo__merge_1.mcfunction +4 -0
  854. package/dist/data/test/function/int32_to_bigint3_lo__then_0.mcfunction +4 -0
  855. package/dist/data/test/function/int32_to_bigint3_mid.mcfunction +6 -0
  856. package/dist/data/test/function/int32_to_bigint3_mid__merge_1.mcfunction +7 -0
  857. package/dist/data/test/function/int32_to_bigint3_mid__then_0.mcfunction +4 -0
  858. package/dist/data/test/function/isqrt.mcfunction +6 -0
  859. package/dist/data/test/function/isqrt__loop_body_10.mcfunction +8 -0
  860. package/dist/data/test/function/isqrt__loop_body_13.mcfunction +12 -0
  861. package/dist/data/test/function/isqrt__loop_body_7.mcfunction +8 -0
  862. package/dist/data/test/function/isqrt__loop_exit_11.mcfunction +2 -0
  863. package/dist/data/test/function/isqrt__loop_exit_14.mcfunction +1 -0
  864. package/dist/data/test/function/isqrt__loop_exit_8.mcfunction +9 -0
  865. package/dist/data/test/function/isqrt__loop_header_12.mcfunction +5 -0
  866. package/dist/data/test/function/isqrt__loop_header_6.mcfunction +5 -0
  867. package/dist/data/test/function/isqrt__loop_header_9.mcfunction +4 -0
  868. package/dist/data/test/function/isqrt__merge_1.mcfunction +5 -0
  869. package/dist/data/test/function/isqrt__merge_16.mcfunction +5 -0
  870. package/dist/data/test/function/isqrt__merge_4.mcfunction +3 -0
  871. package/dist/data/test/function/isqrt__then_0.mcfunction +2 -0
  872. package/dist/data/test/function/isqrt__then_15.mcfunction +1 -0
  873. package/dist/data/test/function/isqrt__then_3.mcfunction +2 -0
  874. package/dist/data/test/function/lcm.mcfunction +12 -0
  875. package/dist/data/test/function/lcm__merge_1.mcfunction +5 -0
  876. package/dist/data/test/function/lcm__then_0.mcfunction +2 -0
  877. package/dist/data/test/function/length2d_fixed.mcfunction +15 -0
  878. package/dist/data/test/function/length3d_fixed.mcfunction +20 -0
  879. package/dist/data/test/function/lerp.mcfunction +13 -0
  880. package/dist/data/test/function/lerp2d_x.mcfunction +13 -0
  881. package/dist/data/test/function/lerp2d_y.mcfunction +13 -0
  882. package/dist/data/test/function/list_avg.mcfunction +9 -0
  883. package/dist/data/test/function/list_clamp_all.mcfunction +6 -0
  884. package/dist/data/test/function/list_clamp_all__loop_body_1.mcfunction +4 -0
  885. package/dist/data/test/function/list_clamp_all__loop_exit_2.mcfunction +1 -0
  886. package/dist/data/test/function/list_clamp_all__loop_header_0.mcfunction +4 -0
  887. package/dist/data/test/function/list_clamp_all__merge_4.mcfunction +4 -0
  888. package/dist/data/test/function/list_clamp_all__merge_6.mcfunction +4 -0
  889. package/dist/data/test/function/list_clamp_all__then_3.mcfunction +1 -0
  890. package/dist/data/test/function/list_clamp_all__then_5.mcfunction +1 -0
  891. package/dist/data/test/function/list_contains.mcfunction +5 -0
  892. package/dist/data/test/function/list_contains__loop_body_1.mcfunction +4 -0
  893. package/dist/data/test/function/list_contains__loop_exit_2.mcfunction +2 -0
  894. package/dist/data/test/function/list_contains__loop_header_0.mcfunction +4 -0
  895. package/dist/data/test/function/list_contains__merge_4.mcfunction +4 -0
  896. package/dist/data/test/function/list_contains__then_3.mcfunction +2 -0
  897. package/dist/data/test/function/list_count_if_gt.mcfunction +6 -0
  898. package/dist/data/test/function/list_count_if_gt__loop_body_1.mcfunction +4 -0
  899. package/dist/data/test/function/list_count_if_gt__loop_exit_2.mcfunction +1 -0
  900. package/dist/data/test/function/list_count_if_gt__loop_header_0.mcfunction +4 -0
  901. package/dist/data/test/function/list_count_if_gt__merge_4.mcfunction +4 -0
  902. package/dist/data/test/function/list_count_if_gt__then_3.mcfunction +4 -0
  903. package/dist/data/test/function/list_fill.mcfunction +3 -0
  904. package/dist/data/test/function/list_fill__loop_body_1.mcfunction +4 -0
  905. package/dist/data/test/function/list_fill__loop_exit_2.mcfunction +1 -0
  906. package/dist/data/test/function/list_fill__loop_header_0.mcfunction +4 -0
  907. package/dist/data/test/function/list_index_of.mcfunction +5 -0
  908. package/dist/data/test/function/list_index_of__loop_body_1.mcfunction +4 -0
  909. package/dist/data/test/function/list_index_of__loop_exit_2.mcfunction +2 -0
  910. package/dist/data/test/function/list_index_of__loop_header_0.mcfunction +4 -0
  911. package/dist/data/test/function/list_index_of__merge_4.mcfunction +4 -0
  912. package/dist/data/test/function/list_index_of__then_3.mcfunction +1 -0
  913. package/dist/data/test/function/list_max.mcfunction +5 -0
  914. package/dist/data/test/function/list_max3.mcfunction +8 -0
  915. package/dist/data/test/function/list_max3__merge_1.mcfunction +4 -0
  916. package/dist/data/test/function/list_max3__merge_3.mcfunction +1 -0
  917. package/dist/data/test/function/list_max3__then_0.mcfunction +2 -0
  918. package/dist/data/test/function/list_max3__then_2.mcfunction +2 -0
  919. package/dist/data/test/function/list_max5.mcfunction +10 -0
  920. package/dist/data/test/function/list_max5__merge_1.mcfunction +4 -0
  921. package/dist/data/test/function/list_max5__merge_3.mcfunction +4 -0
  922. package/dist/data/test/function/list_max5__merge_5.mcfunction +4 -0
  923. package/dist/data/test/function/list_max5__merge_7.mcfunction +1 -0
  924. package/dist/data/test/function/list_max5__then_0.mcfunction +2 -0
  925. package/dist/data/test/function/list_max5__then_2.mcfunction +2 -0
  926. package/dist/data/test/function/list_max5__then_4.mcfunction +2 -0
  927. package/dist/data/test/function/list_max5__then_6.mcfunction +2 -0
  928. package/dist/data/test/function/list_max__loop_body_1.mcfunction +4 -0
  929. package/dist/data/test/function/list_max__loop_exit_2.mcfunction +1 -0
  930. package/dist/data/test/function/list_max__loop_header_0.mcfunction +4 -0
  931. package/dist/data/test/function/list_max__merge_4.mcfunction +4 -0
  932. package/dist/data/test/function/list_max__then_3.mcfunction +2 -0
  933. package/dist/data/test/function/list_min.mcfunction +5 -0
  934. package/dist/data/test/function/list_min3.mcfunction +8 -0
  935. package/dist/data/test/function/list_min3__merge_1.mcfunction +4 -0
  936. package/dist/data/test/function/list_min3__merge_3.mcfunction +1 -0
  937. package/dist/data/test/function/list_min3__then_0.mcfunction +2 -0
  938. package/dist/data/test/function/list_min3__then_2.mcfunction +2 -0
  939. package/dist/data/test/function/list_min5.mcfunction +10 -0
  940. package/dist/data/test/function/list_min5__merge_1.mcfunction +4 -0
  941. package/dist/data/test/function/list_min5__merge_3.mcfunction +4 -0
  942. package/dist/data/test/function/list_min5__merge_5.mcfunction +4 -0
  943. package/dist/data/test/function/list_min5__merge_7.mcfunction +1 -0
  944. package/dist/data/test/function/list_min5__then_0.mcfunction +2 -0
  945. package/dist/data/test/function/list_min5__then_2.mcfunction +2 -0
  946. package/dist/data/test/function/list_min5__then_4.mcfunction +2 -0
  947. package/dist/data/test/function/list_min5__then_6.mcfunction +2 -0
  948. package/dist/data/test/function/list_min__loop_body_1.mcfunction +4 -0
  949. package/dist/data/test/function/list_min__loop_exit_2.mcfunction +1 -0
  950. package/dist/data/test/function/list_min__loop_header_0.mcfunction +4 -0
  951. package/dist/data/test/function/list_min__merge_4.mcfunction +4 -0
  952. package/dist/data/test/function/list_min__then_3.mcfunction +2 -0
  953. package/dist/data/test/function/list_reverse.mcfunction +6 -0
  954. package/dist/data/test/function/list_reverse__loop_body_1.mcfunction +9 -0
  955. package/dist/data/test/function/list_reverse__loop_exit_2.mcfunction +1 -0
  956. package/dist/data/test/function/list_reverse__loop_header_0.mcfunction +4 -0
  957. package/dist/data/test/function/list_sort_asc.mcfunction +4 -0
  958. package/dist/data/test/function/list_sort_asc__loop_body_1.mcfunction +2 -0
  959. package/dist/data/test/function/list_sort_asc__loop_body_4.mcfunction +4 -0
  960. package/dist/data/test/function/list_sort_asc__loop_exit_2.mcfunction +1 -0
  961. package/dist/data/test/function/list_sort_asc__loop_exit_5.mcfunction +4 -0
  962. package/dist/data/test/function/list_sort_asc__loop_header_0.mcfunction +6 -0
  963. package/dist/data/test/function/list_sort_asc__loop_header_3.mcfunction +8 -0
  964. package/dist/data/test/function/list_sort_asc__merge_7.mcfunction +4 -0
  965. package/dist/data/test/function/list_sort_asc__then_6.mcfunction +1 -0
  966. package/dist/data/test/function/list_sort_desc.mcfunction +4 -0
  967. package/dist/data/test/function/list_sort_desc__loop_body_1.mcfunction +2 -0
  968. package/dist/data/test/function/list_sort_desc__loop_body_4.mcfunction +4 -0
  969. package/dist/data/test/function/list_sort_desc__loop_exit_2.mcfunction +1 -0
  970. package/dist/data/test/function/list_sort_desc__loop_exit_5.mcfunction +4 -0
  971. package/dist/data/test/function/list_sort_desc__loop_header_0.mcfunction +6 -0
  972. package/dist/data/test/function/list_sort_desc__loop_header_3.mcfunction +8 -0
  973. package/dist/data/test/function/list_sort_desc__merge_7.mcfunction +4 -0
  974. package/dist/data/test/function/list_sort_desc__then_6.mcfunction +1 -0
  975. package/dist/data/test/function/list_sum.mcfunction +5 -0
  976. package/dist/data/test/function/list_sum3.mcfunction +8 -0
  977. package/dist/data/test/function/list_sum4.mcfunction +11 -0
  978. package/dist/data/test/function/list_sum5.mcfunction +14 -0
  979. package/dist/data/test/function/list_sum__loop_body_1.mcfunction +7 -0
  980. package/dist/data/test/function/list_sum__loop_exit_2.mcfunction +1 -0
  981. package/dist/data/test/function/list_sum__loop_header_0.mcfunction +4 -0
  982. package/dist/data/test/function/ln.mcfunction +9 -0
  983. package/dist/data/test/function/ln__loop_body_1.mcfunction +8 -0
  984. package/dist/data/test/function/ln__loop_body_4.mcfunction +8 -0
  985. package/dist/data/test/function/ln__loop_exit_2.mcfunction +1 -0
  986. package/dist/data/test/function/ln__loop_exit_5.mcfunction +37 -0
  987. package/dist/data/test/function/ln__loop_header_0.mcfunction +4 -0
  988. package/dist/data/test/function/ln__loop_header_3.mcfunction +7 -0
  989. package/dist/data/test/function/load.mcfunction +1 -0
  990. package/dist/data/test/function/log10_fx.mcfunction +11 -0
  991. package/dist/data/test/function/log2_fx.mcfunction +11 -0
  992. package/dist/data/test/function/log2_int.mcfunction +6 -0
  993. package/dist/data/test/function/log2_int__loop_body_4.mcfunction +8 -0
  994. package/dist/data/test/function/log2_int__loop_exit_5.mcfunction +1 -0
  995. package/dist/data/test/function/log2_int__loop_header_3.mcfunction +5 -0
  996. package/dist/data/test/function/log2_int__merge_1.mcfunction +3 -0
  997. package/dist/data/test/function/log2_int__then_0.mcfunction +2 -0
  998. package/dist/data/test/function/loga_fx.mcfunction +11 -0
  999. package/dist/data/test/function/loga_fx__merge_1.mcfunction +9 -0
  1000. package/dist/data/test/function/loga_fx__then_0.mcfunction +2 -0
  1001. package/dist/data/test/function/manhattan.mcfunction +15 -0
  1002. package/dist/data/test/function/manhattan3d.mcfunction +20 -0
  1003. package/dist/data/test/function/manhattan3d__merge_1.mcfunction +5 -0
  1004. package/dist/data/test/function/manhattan3d__merge_3.mcfunction +5 -0
  1005. package/dist/data/test/function/manhattan3d__merge_5.mcfunction +5 -0
  1006. package/dist/data/test/function/manhattan3d__then_0.mcfunction +4 -0
  1007. package/dist/data/test/function/manhattan3d__then_2.mcfunction +4 -0
  1008. package/dist/data/test/function/manhattan3d__then_4.mcfunction +4 -0
  1009. package/dist/data/test/function/manhattan__merge_1.mcfunction +5 -0
  1010. package/dist/data/test/function/manhattan__merge_3.mcfunction +3 -0
  1011. package/dist/data/test/function/manhattan__then_0.mcfunction +4 -0
  1012. package/dist/data/test/function/manhattan__then_2.mcfunction +4 -0
  1013. package/dist/data/test/function/map.mcfunction +13 -0
  1014. package/dist/data/test/function/map__merge_1.mcfunction +11 -0
  1015. package/dist/data/test/function/map__then_0.mcfunction +1 -0
  1016. package/dist/data/test/function/mc_day_angle.mcfunction +16 -0
  1017. package/dist/data/test/function/midpoint.mcfunction +8 -0
  1018. package/dist/data/test/function/mulfix.mcfunction +8 -0
  1019. package/dist/data/test/function/neg2d_x.mcfunction +4 -0
  1020. package/dist/data/test/function/neg2d_y.mcfunction +4 -0
  1021. package/dist/data/test/function/neg3d_x.mcfunction +4 -0
  1022. package/dist/data/test/function/neg3d_y.mcfunction +4 -0
  1023. package/dist/data/test/function/neg3d_z.mcfunction +4 -0
  1024. package/dist/data/test/function/next_lcg.mcfunction +7 -0
  1025. package/dist/data/test/function/normal_approx12.mcfunction +16 -0
  1026. package/dist/data/test/function/normal_approx12__merge_1.mcfunction +18 -0
  1027. package/dist/data/test/function/normal_approx12__merge_11.mcfunction +18 -0
  1028. package/dist/data/test/function/normal_approx12__merge_13.mcfunction +18 -0
  1029. package/dist/data/test/function/normal_approx12__merge_15.mcfunction +18 -0
  1030. package/dist/data/test/function/normal_approx12__merge_17.mcfunction +18 -0
  1031. package/dist/data/test/function/normal_approx12__merge_19.mcfunction +18 -0
  1032. package/dist/data/test/function/normal_approx12__merge_21.mcfunction +18 -0
  1033. package/dist/data/test/function/normal_approx12__merge_23.mcfunction +9 -0
  1034. package/dist/data/test/function/normal_approx12__merge_3.mcfunction +18 -0
  1035. package/dist/data/test/function/normal_approx12__merge_5.mcfunction +18 -0
  1036. package/dist/data/test/function/normal_approx12__merge_7.mcfunction +18 -0
  1037. package/dist/data/test/function/normal_approx12__merge_9.mcfunction +18 -0
  1038. package/dist/data/test/function/normal_approx12__then_0.mcfunction +4 -0
  1039. package/dist/data/test/function/normal_approx12__then_10.mcfunction +4 -0
  1040. package/dist/data/test/function/normal_approx12__then_12.mcfunction +4 -0
  1041. package/dist/data/test/function/normal_approx12__then_14.mcfunction +4 -0
  1042. package/dist/data/test/function/normal_approx12__then_16.mcfunction +4 -0
  1043. package/dist/data/test/function/normal_approx12__then_18.mcfunction +4 -0
  1044. package/dist/data/test/function/normal_approx12__then_2.mcfunction +4 -0
  1045. package/dist/data/test/function/normal_approx12__then_20.mcfunction +4 -0
  1046. package/dist/data/test/function/normal_approx12__then_22.mcfunction +4 -0
  1047. package/dist/data/test/function/normal_approx12__then_4.mcfunction +4 -0
  1048. package/dist/data/test/function/normal_approx12__then_6.mcfunction +4 -0
  1049. package/dist/data/test/function/normal_approx12__then_8.mcfunction +4 -0
  1050. package/dist/data/test/function/normalize2d_x.mcfunction +12 -0
  1051. package/dist/data/test/function/normalize2d_x__merge_1.mcfunction +6 -0
  1052. package/dist/data/test/function/normalize2d_x__then_0.mcfunction +2 -0
  1053. package/dist/data/test/function/normalize2d_y.mcfunction +12 -0
  1054. package/dist/data/test/function/normalize2d_y__merge_1.mcfunction +6 -0
  1055. package/dist/data/test/function/normalize2d_y__then_0.mcfunction +2 -0
  1056. package/dist/data/test/function/parabola_land_t.mcfunction +7 -0
  1057. package/dist/data/test/function/parabola_x.mcfunction +8 -0
  1058. package/dist/data/test/function/parabola_y.mcfunction +17 -0
  1059. package/dist/data/test/function/pcg_next_hi.mcfunction +8 -0
  1060. package/dist/data/test/function/pcg_next_lo.mcfunction +7 -0
  1061. package/dist/data/test/function/pcg_output.mcfunction +15 -0
  1062. package/dist/data/test/function/pcg_output__merge_1.mcfunction +1 -0
  1063. package/dist/data/test/function/pcg_output__then_0.mcfunction +4 -0
  1064. package/dist/data/test/function/popcount.mcfunction +5 -0
  1065. package/dist/data/test/function/popcount__loop_body_1.mcfunction +8 -0
  1066. package/dist/data/test/function/popcount__loop_exit_2.mcfunction +1 -0
  1067. package/dist/data/test/function/popcount__loop_header_0.mcfunction +5 -0
  1068. package/dist/data/test/function/popcount__merge_4.mcfunction +8 -0
  1069. package/dist/data/test/function/popcount__then_3.mcfunction +4 -0
  1070. package/dist/data/test/function/pow_int.mcfunction +7 -0
  1071. package/dist/data/test/function/pow_int__loop_body_4.mcfunction +8 -0
  1072. package/dist/data/test/function/pow_int__loop_exit_5.mcfunction +1 -0
  1073. package/dist/data/test/function/pow_int__loop_header_3.mcfunction +5 -0
  1074. package/dist/data/test/function/pow_int__merge_1.mcfunction +4 -0
  1075. package/dist/data/test/function/pow_int__merge_7.mcfunction +8 -0
  1076. package/dist/data/test/function/pow_int__then_0.mcfunction +2 -0
  1077. package/dist/data/test/function/pow_int__then_6.mcfunction +4 -0
  1078. package/dist/data/test/function/quadratic_disc.mcfunction +12 -0
  1079. package/dist/data/test/function/quadratic_x1.mcfunction +8 -0
  1080. package/dist/data/test/function/quadratic_x1__merge_1.mcfunction +14 -0
  1081. package/dist/data/test/function/quadratic_x1__merge_4.mcfunction +15 -0
  1082. package/dist/data/test/function/quadratic_x1__then_0.mcfunction +2 -0
  1083. package/dist/data/test/function/quadratic_x1__then_3.mcfunction +2 -0
  1084. package/dist/data/test/function/quadratic_x2.mcfunction +8 -0
  1085. package/dist/data/test/function/quadratic_x2__merge_1.mcfunction +14 -0
  1086. package/dist/data/test/function/quadratic_x2__merge_4.mcfunction +15 -0
  1087. package/dist/data/test/function/quadratic_x2__then_0.mcfunction +2 -0
  1088. package/dist/data/test/function/quadratic_x2__then_3.mcfunction +2 -0
  1089. package/dist/data/test/function/random_bool.mcfunction +7 -0
  1090. package/dist/data/test/function/random_bool__merge_1.mcfunction +4 -0
  1091. package/dist/data/test/function/random_bool__then_0.mcfunction +4 -0
  1092. package/dist/data/test/function/random_range.mcfunction +9 -0
  1093. package/dist/data/test/function/random_range__merge_1.mcfunction +7 -0
  1094. package/dist/data/test/function/random_range__then_0.mcfunction +4 -0
  1095. package/dist/data/test/function/rgb_b.mcfunction +5 -0
  1096. package/dist/data/test/function/rgb_g.mcfunction +8 -0
  1097. package/dist/data/test/function/rgb_lerp.mcfunction +71 -0
  1098. package/dist/data/test/function/rgb_pack.mcfunction +14 -0
  1099. package/dist/data/test/function/rgb_r.mcfunction +8 -0
  1100. package/dist/data/test/function/rgb_to_h.mcfunction +8 -0
  1101. package/dist/data/test/function/rgb_to_h__merge_1.mcfunction +4 -0
  1102. package/dist/data/test/function/rgb_to_h__merge_12.mcfunction +4 -0
  1103. package/dist/data/test/function/rgb_to_h__merge_14.mcfunction +1 -0
  1104. package/dist/data/test/function/rgb_to_h__merge_17.mcfunction +9 -0
  1105. package/dist/data/test/function/rgb_to_h__merge_3.mcfunction +5 -0
  1106. package/dist/data/test/function/rgb_to_h__merge_5.mcfunction +4 -0
  1107. package/dist/data/test/function/rgb_to_h__merge_7.mcfunction +8 -0
  1108. package/dist/data/test/function/rgb_to_h__merge_9.mcfunction +4 -0
  1109. package/dist/data/test/function/rgb_to_h__then_0.mcfunction +2 -0
  1110. package/dist/data/test/function/rgb_to_h__then_11.mcfunction +12 -0
  1111. package/dist/data/test/function/rgb_to_h__then_13.mcfunction +4 -0
  1112. package/dist/data/test/function/rgb_to_h__then_16.mcfunction +9 -0
  1113. package/dist/data/test/function/rgb_to_h__then_2.mcfunction +2 -0
  1114. package/dist/data/test/function/rgb_to_h__then_4.mcfunction +2 -0
  1115. package/dist/data/test/function/rgb_to_h__then_6.mcfunction +2 -0
  1116. package/dist/data/test/function/rgb_to_h__then_8.mcfunction +2 -0
  1117. package/dist/data/test/function/rgb_to_l.mcfunction +8 -0
  1118. package/dist/data/test/function/rgb_to_l__merge_1.mcfunction +4 -0
  1119. package/dist/data/test/function/rgb_to_l__merge_3.mcfunction +5 -0
  1120. package/dist/data/test/function/rgb_to_l__merge_5.mcfunction +4 -0
  1121. package/dist/data/test/function/rgb_to_l__merge_7.mcfunction +9 -0
  1122. package/dist/data/test/function/rgb_to_l__then_0.mcfunction +2 -0
  1123. package/dist/data/test/function/rgb_to_l__then_2.mcfunction +2 -0
  1124. package/dist/data/test/function/rgb_to_l__then_4.mcfunction +2 -0
  1125. package/dist/data/test/function/rgb_to_l__then_6.mcfunction +2 -0
  1126. package/dist/data/test/function/rgb_to_s.mcfunction +8 -0
  1127. package/dist/data/test/function/rgb_to_s__merge_1.mcfunction +4 -0
  1128. package/dist/data/test/function/rgb_to_s__merge_12.mcfunction +10 -0
  1129. package/dist/data/test/function/rgb_to_s__merge_3.mcfunction +5 -0
  1130. package/dist/data/test/function/rgb_to_s__merge_5.mcfunction +4 -0
  1131. package/dist/data/test/function/rgb_to_s__merge_7.mcfunction +8 -0
  1132. package/dist/data/test/function/rgb_to_s__merge_9.mcfunction +13 -0
  1133. package/dist/data/test/function/rgb_to_s__then_0.mcfunction +2 -0
  1134. package/dist/data/test/function/rgb_to_s__then_11.mcfunction +8 -0
  1135. package/dist/data/test/function/rgb_to_s__then_2.mcfunction +2 -0
  1136. package/dist/data/test/function/rgb_to_s__then_4.mcfunction +2 -0
  1137. package/dist/data/test/function/rgb_to_s__then_6.mcfunction +2 -0
  1138. package/dist/data/test/function/rgb_to_s__then_8.mcfunction +2 -0
  1139. package/dist/data/test/function/rotate2d_x.mcfunction +20 -0
  1140. package/dist/data/test/function/rotate2d_y.mcfunction +20 -0
  1141. package/dist/data/test/function/scale2d_x.mcfunction +8 -0
  1142. package/dist/data/test/function/scale2d_y.mcfunction +8 -0
  1143. package/dist/data/test/function/scale3d_x.mcfunction +8 -0
  1144. package/dist/data/test/function/scale3d_y.mcfunction +8 -0
  1145. package/dist/data/test/function/scale3d_z.mcfunction +8 -0
  1146. package/dist/data/test/function/seconds_to_ticks.mcfunction +5 -0
  1147. package/dist/data/test/function/sign.mcfunction +6 -0
  1148. package/dist/data/test/function/sign__merge_1.mcfunction +5 -0
  1149. package/dist/data/test/function/sign__merge_4.mcfunction +2 -0
  1150. package/dist/data/test/function/sign__then_0.mcfunction +2 -0
  1151. package/dist/data/test/function/sign__then_3.mcfunction +2 -0
  1152. package/dist/data/test/function/sin_fixed.mcfunction +10 -0
  1153. package/dist/data/test/function/sin_fixed__merge_1.mcfunction +5 -0
  1154. package/dist/data/test/function/sin_fixed__merge_3.mcfunction +5 -0
  1155. package/dist/data/test/function/sin_fixed__merge_6.mcfunction +5 -0
  1156. package/dist/data/test/function/sin_fixed__merge_9.mcfunction +10 -0
  1157. package/dist/data/test/function/sin_fixed__then_0.mcfunction +4 -0
  1158. package/dist/data/test/function/sin_fixed__then_2.mcfunction +6 -0
  1159. package/dist/data/test/function/sin_fixed__then_5.mcfunction +8 -0
  1160. package/dist/data/test/function/sin_fixed__then_8.mcfunction +10 -0
  1161. package/dist/data/test/function/sin_hp.mcfunction +6 -0
  1162. package/dist/data/test/function/smootherstep.mcfunction +11 -0
  1163. package/dist/data/test/function/smootherstep__merge_1.mcfunction +13 -0
  1164. package/dist/data/test/function/smootherstep__merge_4.mcfunction +5 -0
  1165. package/dist/data/test/function/smootherstep__merge_6.mcfunction +27 -0
  1166. package/dist/data/test/function/smootherstep__then_0.mcfunction +2 -0
  1167. package/dist/data/test/function/smootherstep__then_3.mcfunction +2 -0
  1168. package/dist/data/test/function/smootherstep__then_5.mcfunction +2 -0
  1169. package/dist/data/test/function/smoothstep.mcfunction +11 -0
  1170. package/dist/data/test/function/smoothstep__merge_1.mcfunction +13 -0
  1171. package/dist/data/test/function/smoothstep__merge_4.mcfunction +5 -0
  1172. package/dist/data/test/function/smoothstep__merge_6.mcfunction +15 -0
  1173. package/dist/data/test/function/smoothstep__then_0.mcfunction +2 -0
  1174. package/dist/data/test/function/smoothstep__then_3.mcfunction +2 -0
  1175. package/dist/data/test/function/smoothstep__then_5.mcfunction +2 -0
  1176. package/dist/data/test/function/solve2x2_x.mcfunction +18 -0
  1177. package/dist/data/test/function/solve2x2_x__merge_1.mcfunction +12 -0
  1178. package/dist/data/test/function/solve2x2_x__then_0.mcfunction +2 -0
  1179. package/dist/data/test/function/solve2x2_y.mcfunction +18 -0
  1180. package/dist/data/test/function/solve2x2_y__merge_1.mcfunction +12 -0
  1181. package/dist/data/test/function/solve2x2_y__then_0.mcfunction +2 -0
  1182. package/dist/data/test/function/sort2_max.mcfunction +6 -0
  1183. package/dist/data/test/function/sort2_max__merge_1.mcfunction +1 -0
  1184. package/dist/data/test/function/sort2_max__then_0.mcfunction +1 -0
  1185. package/dist/data/test/function/sort2_min.mcfunction +6 -0
  1186. package/dist/data/test/function/sort2_min__merge_1.mcfunction +1 -0
  1187. package/dist/data/test/function/sort2_min__then_0.mcfunction +1 -0
  1188. package/dist/data/test/function/sort3.mcfunction +11 -0
  1189. package/dist/data/test/function/sort3__merge_1.mcfunction +4 -0
  1190. package/dist/data/test/function/sort3__merge_10.mcfunction +1 -0
  1191. package/dist/data/test/function/sort3__merge_3.mcfunction +4 -0
  1192. package/dist/data/test/function/sort3__merge_5.mcfunction +5 -0
  1193. package/dist/data/test/function/sort3__merge_7.mcfunction +5 -0
  1194. package/dist/data/test/function/sort3__then_0.mcfunction +4 -0
  1195. package/dist/data/test/function/sort3__then_2.mcfunction +4 -0
  1196. package/dist/data/test/function/sort3__then_4.mcfunction +4 -0
  1197. package/dist/data/test/function/sort3__then_6.mcfunction +1 -0
  1198. package/dist/data/test/function/sort3__then_9.mcfunction +1 -0
  1199. package/dist/data/test/function/sort4.mcfunction +13 -0
  1200. package/dist/data/test/function/sort4__merge_1.mcfunction +4 -0
  1201. package/dist/data/test/function/sort4__merge_11.mcfunction +5 -0
  1202. package/dist/data/test/function/sort4__merge_14.mcfunction +5 -0
  1203. package/dist/data/test/function/sort4__merge_17.mcfunction +1 -0
  1204. package/dist/data/test/function/sort4__merge_3.mcfunction +4 -0
  1205. package/dist/data/test/function/sort4__merge_5.mcfunction +4 -0
  1206. package/dist/data/test/function/sort4__merge_7.mcfunction +4 -0
  1207. package/dist/data/test/function/sort4__merge_9.mcfunction +5 -0
  1208. package/dist/data/test/function/sort4__then_0.mcfunction +4 -0
  1209. package/dist/data/test/function/sort4__then_10.mcfunction +1 -0
  1210. package/dist/data/test/function/sort4__then_13.mcfunction +1 -0
  1211. package/dist/data/test/function/sort4__then_16.mcfunction +1 -0
  1212. package/dist/data/test/function/sort4__then_2.mcfunction +4 -0
  1213. package/dist/data/test/function/sort4__then_4.mcfunction +4 -0
  1214. package/dist/data/test/function/sort4__then_6.mcfunction +4 -0
  1215. package/dist/data/test/function/sort4__then_8.mcfunction +4 -0
  1216. package/dist/data/test/function/sort5.mcfunction +15 -0
  1217. package/dist/data/test/function/sort5__merge_1.mcfunction +4 -0
  1218. package/dist/data/test/function/sort5__merge_11.mcfunction +4 -0
  1219. package/dist/data/test/function/sort5__merge_13.mcfunction +4 -0
  1220. package/dist/data/test/function/sort5__merge_15.mcfunction +4 -0
  1221. package/dist/data/test/function/sort5__merge_17.mcfunction +5 -0
  1222. package/dist/data/test/function/sort5__merge_19.mcfunction +5 -0
  1223. package/dist/data/test/function/sort5__merge_22.mcfunction +5 -0
  1224. package/dist/data/test/function/sort5__merge_25.mcfunction +5 -0
  1225. package/dist/data/test/function/sort5__merge_28.mcfunction +1 -0
  1226. package/dist/data/test/function/sort5__merge_3.mcfunction +4 -0
  1227. package/dist/data/test/function/sort5__merge_5.mcfunction +4 -0
  1228. package/dist/data/test/function/sort5__merge_7.mcfunction +4 -0
  1229. package/dist/data/test/function/sort5__merge_9.mcfunction +4 -0
  1230. package/dist/data/test/function/sort5__then_0.mcfunction +4 -0
  1231. package/dist/data/test/function/sort5__then_10.mcfunction +4 -0
  1232. package/dist/data/test/function/sort5__then_12.mcfunction +4 -0
  1233. package/dist/data/test/function/sort5__then_14.mcfunction +4 -0
  1234. package/dist/data/test/function/sort5__then_16.mcfunction +4 -0
  1235. package/dist/data/test/function/sort5__then_18.mcfunction +1 -0
  1236. package/dist/data/test/function/sort5__then_2.mcfunction +4 -0
  1237. package/dist/data/test/function/sort5__then_21.mcfunction +1 -0
  1238. package/dist/data/test/function/sort5__then_24.mcfunction +1 -0
  1239. package/dist/data/test/function/sort5__then_27.mcfunction +1 -0
  1240. package/dist/data/test/function/sort5__then_4.mcfunction +4 -0
  1241. package/dist/data/test/function/sort5__then_6.mcfunction +4 -0
  1242. package/dist/data/test/function/sort5__then_8.mcfunction +4 -0
  1243. package/dist/data/test/function/sphere_contains.mcfunction +29 -0
  1244. package/dist/data/test/function/sphere_contains__merge_1.mcfunction +2 -0
  1245. package/dist/data/test/function/sphere_contains__then_0.mcfunction +2 -0
  1246. package/dist/data/test/function/sqrt_fixed.mcfunction +8 -0
  1247. package/dist/data/test/function/sqrt_fx.mcfunction +11 -0
  1248. package/dist/data/test/function/sub2d_x.mcfunction +5 -0
  1249. package/dist/data/test/function/sub2d_y.mcfunction +5 -0
  1250. package/dist/data/test/function/sub3d_x.mcfunction +5 -0
  1251. package/dist/data/test/function/sub3d_y.mcfunction +5 -0
  1252. package/dist/data/test/function/sub3d_z.mcfunction +5 -0
  1253. package/dist/data/test/function/tick_to_ms.mcfunction +5 -0
  1254. package/dist/data/test/function/tick_to_seconds.mcfunction +5 -0
  1255. package/dist/data/test/function/tile_center.mcfunction +10 -0
  1256. package/dist/data/test/function/tile_of.mcfunction +7 -0
  1257. package/dist/data/test/function/tile_of__merge_1.mcfunction +7 -0
  1258. package/dist/data/test/function/tile_of__then_0.mcfunction +3 -0
  1259. package/dist/data/test/function/timer/done.mcfunction +5 -0
  1260. package/dist/data/test/function/timer/elapsed.mcfunction +2 -0
  1261. package/dist/data/test/function/timer/new.mcfunction +5 -0
  1262. package/dist/data/test/function/timer/pause.mcfunction +1 -0
  1263. package/dist/data/test/function/timer/remaining.mcfunction +10 -0
  1264. package/dist/data/test/function/timer/remaining__merge_1.mcfunction +2 -0
  1265. package/dist/data/test/function/timer/remaining__then_0.mcfunction +1 -0
  1266. package/dist/data/test/function/timer/reset.mcfunction +1 -0
  1267. package/dist/data/test/function/timer/start.mcfunction +1 -0
  1268. package/dist/data/test/function/timer/tick.mcfunction +9 -0
  1269. package/dist/data/test/function/timer/tick__merge_1.mcfunction +1 -0
  1270. package/dist/data/test/function/timer/tick__merge_3.mcfunction +1 -0
  1271. package/dist/data/test/function/timer/tick__then_0.mcfunction +4 -0
  1272. package/dist/data/test/function/timer/tick__then_2.mcfunction +4 -0
  1273. package/dist/data/test/function/uniform_frac.mcfunction +12 -0
  1274. package/dist/data/test/function/uniform_frac__merge_1.mcfunction +4 -0
  1275. package/dist/data/test/function/uniform_frac__then_0.mcfunction +4 -0
  1276. package/dist/data/test/function/uniform_int.mcfunction +14 -0
  1277. package/dist/data/test/function/uniform_int__merge_1.mcfunction +9 -0
  1278. package/dist/data/test/function/uniform_int__then_0.mcfunction +4 -0
  1279. package/dist/data/test/function/weighted2.mcfunction +17 -0
  1280. package/dist/data/test/function/weighted2__merge_1.mcfunction +6 -0
  1281. package/dist/data/test/function/weighted2__merge_3.mcfunction +2 -0
  1282. package/dist/data/test/function/weighted2__then_0.mcfunction +4 -0
  1283. package/dist/data/test/function/weighted2__then_2.mcfunction +2 -0
  1284. package/dist/data/test/function/weighted3.mcfunction +20 -0
  1285. package/dist/data/test/function/weighted3__merge_1.mcfunction +7 -0
  1286. package/dist/data/test/function/weighted3__merge_3.mcfunction +6 -0
  1287. package/dist/data/test/function/weighted3__merge_6.mcfunction +2 -0
  1288. package/dist/data/test/function/weighted3__then_0.mcfunction +4 -0
  1289. package/dist/data/test/function/weighted3__then_2.mcfunction +2 -0
  1290. package/dist/data/test/function/weighted3__then_5.mcfunction +2 -0
  1291. package/dist/data/turret/function/__load.mcfunction +5 -0
  1292. package/dist/data/turret/function/__tick.mcfunction +4 -0
  1293. package/dist/data/turret/function/__trigger_deploy_turret_dispatch.mcfunction +4 -0
  1294. package/dist/data/turret/function/deploy_turret.mcfunction +8 -0
  1295. package/dist/data/turret/function/turret_tick/at_1.mcfunction +2 -0
  1296. package/dist/data/turret/function/turret_tick/foreach_0.mcfunction +2 -0
  1297. package/dist/data/turret/function/turret_tick/foreach_2.mcfunction +2 -0
  1298. package/dist/data/turret/function/turret_tick/tick_body.mcfunction +3 -0
  1299. package/dist/data/turret/function/turret_tick/tick_skip.mcfunction +1 -0
  1300. package/dist/data/turret/function/turret_tick.mcfunction +5 -0
  1301. package/dist/diagnostics/index.d.ts +44 -0
  1302. package/dist/diagnostics/index.js +140 -0
  1303. package/dist/events/types.d.ts +35 -0
  1304. package/dist/events/types.js +59 -0
  1305. package/dist/formatter/index.d.ts +1 -0
  1306. package/dist/formatter/index.js +26 -0
  1307. package/dist/gcd2.map.json +15 -0
  1308. package/dist/gcd3.map.json +17 -0
  1309. package/dist/gcd_test.map.json +15 -0
  1310. package/dist/index.d.ts +62 -0
  1311. package/dist/ir/builder.d.ts +33 -0
  1312. package/dist/ir/builder.js +99 -0
  1313. package/dist/ir/types.d.ts +132 -0
  1314. package/dist/ir/types.js +15 -0
  1315. package/dist/isqrttest.map.json +15 -0
  1316. package/dist/lexer/index.d.ts +37 -0
  1317. package/dist/lexer/index.js +569 -0
  1318. package/dist/lowering/index.d.ts +188 -0
  1319. package/dist/lowering/index.js +3405 -0
  1320. package/dist/mathtest.map.json +6 -0
  1321. package/dist/mc-test/client.d.ts +128 -0
  1322. package/dist/mc-test/client.js +174 -0
  1323. package/dist/mc-test/runner.d.ts +28 -0
  1324. package/dist/mc-test/runner.js +150 -0
  1325. package/dist/mc-test/setup.d.ts +11 -0
  1326. package/dist/mc-test/setup.js +98 -0
  1327. package/dist/mc-validator/index.d.ts +17 -0
  1328. package/dist/mc-validator/index.js +322 -0
  1329. package/dist/mypack.map.json +27 -0
  1330. package/dist/nbt/index.d.ts +86 -0
  1331. package/dist/nbt/index.js +250 -0
  1332. package/dist/optimizer/commands.d.ts +38 -0
  1333. package/dist/optimizer/commands.js +451 -0
  1334. package/dist/optimizer/dce.d.ts +34 -0
  1335. package/dist/optimizer/dce.js +639 -0
  1336. package/dist/optimizer/passes.d.ts +34 -0
  1337. package/dist/optimizer/passes.js +243 -0
  1338. package/dist/optimizer/structure.d.ts +9 -0
  1339. package/dist/optimizer/structure.js +356 -0
  1340. package/dist/pack.mcmeta +6 -0
  1341. package/dist/parser/index.d.ts +93 -0
  1342. package/dist/parser/index.js +1687 -0
  1343. package/dist/repl.d.ts +16 -0
  1344. package/dist/repl.js +165 -0
  1345. package/dist/reqtest.map.json +4 -0
  1346. package/dist/reqtest2.map.json +4 -0
  1347. package/dist/runtime/index.d.ts +107 -0
  1348. package/dist/runtime/index.js +1409 -0
  1349. package/dist/runtime.map.json +7 -0
  1350. package/dist/src/__tests__/array-dynamic.test.d.ts +12 -0
  1351. package/dist/src/__tests__/array-dynamic.test.js +131 -0
  1352. package/dist/src/__tests__/array-param.test.d.ts +9 -0
  1353. package/dist/src/__tests__/array-param.test.js +69 -0
  1354. package/dist/src/__tests__/array-write.test.d.ts +11 -0
  1355. package/dist/src/__tests__/array-write.test.js +149 -0
  1356. package/dist/src/__tests__/codegen.test.d.ts +1 -0
  1357. package/dist/src/__tests__/codegen.test.js +152 -0
  1358. package/dist/src/__tests__/debug-compile.test.d.ts +1 -0
  1359. package/dist/src/__tests__/debug-compile.test.js +24 -0
  1360. package/dist/src/__tests__/debug-compile2.test.d.ts +1 -0
  1361. package/dist/src/__tests__/debug-compile2.test.js +19 -0
  1362. package/dist/src/__tests__/debug-compile3.test.d.ts +1 -0
  1363. package/dist/src/__tests__/debug-compile3.test.js +22 -0
  1364. package/dist/src/__tests__/debug-wm.test.d.ts +1 -0
  1365. package/dist/src/__tests__/debug-wm.test.js +50 -0
  1366. package/dist/src/__tests__/debug_gen.d.ts +1 -0
  1367. package/dist/src/__tests__/debug_gen.js +24 -0
  1368. package/dist/src/__tests__/debug_scoreboard.test.d.ts +1 -0
  1369. package/dist/src/__tests__/debug_scoreboard.test.js +19 -0
  1370. package/dist/src/__tests__/debug_scoreboard2.test.d.ts +1 -0
  1371. package/dist/src/__tests__/debug_scoreboard2.test.js +27 -0
  1372. package/dist/src/__tests__/debug_scoreboard3.test.d.ts +1 -0
  1373. package/dist/src/__tests__/debug_scoreboard3.test.js +37 -0
  1374. package/dist/src/__tests__/e2e.test.d.ts +6 -0
  1375. package/dist/src/__tests__/e2e.test.js +1789 -0
  1376. package/dist/src/__tests__/entity-types.test.d.ts +1 -0
  1377. package/dist/src/__tests__/entity-types.test.js +203 -0
  1378. package/dist/src/__tests__/lowering.test.d.ts +1 -0
  1379. package/dist/src/__tests__/lowering.test.js +1015 -0
  1380. package/dist/src/__tests__/macro.test.d.ts +8 -0
  1381. package/dist/src/__tests__/macro.test.js +306 -0
  1382. package/dist/src/__tests__/nbt.test.d.ts +1 -0
  1383. package/dist/src/__tests__/nbt.test.js +82 -0
  1384. package/dist/src/__tests__/optimizer-advanced.test.d.ts +1 -0
  1385. package/dist/src/__tests__/optimizer-advanced.test.js +124 -0
  1386. package/dist/src/__tests__/optimizer.test.d.ts +1 -0
  1387. package/dist/src/__tests__/optimizer.test.js +149 -0
  1388. package/dist/src/__tests__/runtime.test.d.ts +1 -0
  1389. package/dist/src/__tests__/runtime.test.js +289 -0
  1390. package/dist/src/__tests__/stdlib/math.test.d.ts +5 -0
  1391. package/dist/src/__tests__/stdlib/math.test.js +121 -0
  1392. package/dist/src/__tests__/stdlib-advanced.test.d.ts +4 -0
  1393. package/dist/src/__tests__/stdlib-advanced.test.js +374 -0
  1394. package/dist/src/__tests__/stdlib-bigint.test.d.ts +7 -0
  1395. package/dist/src/__tests__/stdlib-bigint.test.js +426 -0
  1396. package/dist/src/__tests__/stdlib-math.test.d.ts +7 -0
  1397. package/dist/src/__tests__/stdlib-math.test.js +351 -0
  1398. package/dist/src/__tests__/stdlib-vec.test.d.ts +4 -0
  1399. package/dist/src/__tests__/stdlib-vec.test.js +263 -0
  1400. package/dist/src/__tests__/structure-optimizer.test.d.ts +1 -0
  1401. package/dist/src/__tests__/structure-optimizer.test.js +33 -0
  1402. package/dist/src/__tests__/timer-debug.test.d.ts +1 -0
  1403. package/dist/src/__tests__/timer-debug.test.js +33 -0
  1404. package/dist/src/__tests__/var-allocator.test.d.ts +1 -0
  1405. package/dist/src/__tests__/var-allocator.test.js +69 -0
  1406. package/dist/src/ast/types.d.ts +7 -0
  1407. package/dist/src/codegen/cmdblock/index.d.ts +26 -0
  1408. package/dist/src/codegen/cmdblock/index.js +45 -0
  1409. package/dist/src/codegen/mcfunction/index.d.ts +40 -0
  1410. package/dist/src/codegen/mcfunction/index.js +606 -0
  1411. package/dist/src/codegen/structure/index.d.ts +24 -0
  1412. package/dist/src/codegen/structure/index.js +279 -0
  1413. package/dist/src/codegen/var-allocator.d.ts +45 -0
  1414. package/dist/src/codegen/var-allocator.js +104 -0
  1415. package/dist/src/emit/modules.js +5 -0
  1416. package/dist/src/hir/lower.js +29 -0
  1417. package/dist/src/hir/monomorphize.js +2 -0
  1418. package/dist/src/hir/types.d.ts +9 -2
  1419. package/dist/src/ir/builder.d.ts +33 -0
  1420. package/dist/src/ir/builder.js +99 -0
  1421. package/dist/src/ir/types.d.ts +132 -0
  1422. package/dist/src/ir/types.js +15 -0
  1423. package/dist/src/lir/lower.js +131 -0
  1424. package/dist/src/lowering/index.d.ts +188 -0
  1425. package/dist/src/lowering/index.js +3405 -0
  1426. package/dist/src/lsp/main.js +0 -0
  1427. package/dist/src/mir/lower.js +166 -15
  1428. package/dist/src/mir/macro.js +5 -0
  1429. package/dist/src/mir/types.d.ts +12 -0
  1430. package/dist/src/mir/verify.js +7 -0
  1431. package/dist/src/optimizer/commands.d.ts +38 -0
  1432. package/dist/src/optimizer/commands.js +451 -0
  1433. package/dist/src/optimizer/copy_prop.js +5 -0
  1434. package/dist/src/optimizer/coroutine.js +12 -0
  1435. package/dist/src/optimizer/dce.js +9 -0
  1436. package/dist/src/optimizer/passes.d.ts +34 -0
  1437. package/dist/src/optimizer/passes.js +243 -0
  1438. package/dist/src/optimizer/structure.d.ts +9 -0
  1439. package/dist/src/optimizer/structure.js +356 -0
  1440. package/dist/src/optimizer/unroll.js +3 -0
  1441. package/dist/src/parser/index.js +5 -0
  1442. package/dist/src/typechecker/index.js +5 -0
  1443. package/dist/src2/__tests__/e2e/basic.test.d.ts +8 -0
  1444. package/dist/src2/__tests__/e2e/basic.test.js +140 -0
  1445. package/dist/src2/__tests__/e2e/macros.test.d.ts +9 -0
  1446. package/dist/src2/__tests__/e2e/macros.test.js +182 -0
  1447. package/dist/src2/__tests__/e2e/migrate.test.d.ts +13 -0
  1448. package/dist/src2/__tests__/e2e/migrate.test.js +2739 -0
  1449. package/dist/src2/__tests__/hir/desugar.test.d.ts +1 -0
  1450. package/dist/src2/__tests__/hir/desugar.test.js +234 -0
  1451. package/dist/src2/__tests__/lir/lower.test.d.ts +1 -0
  1452. package/dist/src2/__tests__/lir/lower.test.js +559 -0
  1453. package/dist/src2/__tests__/lir/types.test.d.ts +1 -0
  1454. package/dist/src2/__tests__/lir/types.test.js +185 -0
  1455. package/dist/src2/__tests__/lir/verify.test.d.ts +1 -0
  1456. package/dist/src2/__tests__/lir/verify.test.js +221 -0
  1457. package/dist/src2/__tests__/mir/arithmetic.test.d.ts +1 -0
  1458. package/dist/src2/__tests__/mir/arithmetic.test.js +130 -0
  1459. package/dist/src2/__tests__/mir/control-flow.test.d.ts +1 -0
  1460. package/dist/src2/__tests__/mir/control-flow.test.js +205 -0
  1461. package/dist/src2/__tests__/mir/verify.test.d.ts +1 -0
  1462. package/dist/src2/__tests__/mir/verify.test.js +223 -0
  1463. package/dist/src2/__tests__/optimizer/block_merge.test.d.ts +1 -0
  1464. package/dist/src2/__tests__/optimizer/block_merge.test.js +78 -0
  1465. package/dist/src2/__tests__/optimizer/branch_simplify.test.d.ts +1 -0
  1466. package/dist/src2/__tests__/optimizer/branch_simplify.test.js +58 -0
  1467. package/dist/src2/__tests__/optimizer/constant_fold.test.d.ts +1 -0
  1468. package/dist/src2/__tests__/optimizer/constant_fold.test.js +131 -0
  1469. package/dist/src2/__tests__/optimizer/copy_prop.test.d.ts +1 -0
  1470. package/dist/src2/__tests__/optimizer/copy_prop.test.js +91 -0
  1471. package/dist/src2/__tests__/optimizer/dce.test.d.ts +1 -0
  1472. package/dist/src2/__tests__/optimizer/dce.test.js +76 -0
  1473. package/dist/src2/__tests__/optimizer/pipeline.test.d.ts +1 -0
  1474. package/dist/src2/__tests__/optimizer/pipeline.test.js +102 -0
  1475. package/dist/src2/emit/compile.d.ts +19 -0
  1476. package/dist/src2/emit/compile.js +80 -0
  1477. package/dist/src2/emit/index.d.ts +17 -0
  1478. package/dist/src2/emit/index.js +172 -0
  1479. package/dist/src2/hir/lower.d.ts +15 -0
  1480. package/dist/src2/hir/lower.js +378 -0
  1481. package/dist/src2/hir/types.d.ts +373 -0
  1482. package/dist/src2/hir/types.js +16 -0
  1483. package/dist/src2/lir/lower.d.ts +15 -0
  1484. package/dist/src2/lir/lower.js +453 -0
  1485. package/dist/src2/lir/types.d.ts +136 -0
  1486. package/dist/src2/lir/types.js +11 -0
  1487. package/dist/src2/lir/verify.d.ts +14 -0
  1488. package/dist/src2/lir/verify.js +113 -0
  1489. package/dist/src2/mir/lower.d.ts +9 -0
  1490. package/dist/src2/mir/lower.js +1030 -0
  1491. package/dist/src2/mir/macro.d.ts +22 -0
  1492. package/dist/src2/mir/macro.js +168 -0
  1493. package/dist/src2/mir/types.d.ts +183 -0
  1494. package/dist/src2/mir/types.js +11 -0
  1495. package/dist/src2/mir/verify.d.ts +16 -0
  1496. package/dist/src2/mir/verify.js +216 -0
  1497. package/dist/src2/optimizer/block_merge.d.ts +12 -0
  1498. package/dist/src2/optimizer/block_merge.js +84 -0
  1499. package/dist/src2/optimizer/branch_simplify.d.ts +9 -0
  1500. package/dist/src2/optimizer/branch_simplify.js +28 -0
  1501. package/dist/src2/optimizer/constant_fold.d.ts +10 -0
  1502. package/dist/src2/optimizer/constant_fold.js +85 -0
  1503. package/dist/src2/optimizer/copy_prop.d.ts +9 -0
  1504. package/dist/src2/optimizer/copy_prop.js +113 -0
  1505. package/dist/src2/optimizer/dce.d.ts +8 -0
  1506. package/dist/src2/optimizer/dce.js +155 -0
  1507. package/dist/src2/optimizer/pipeline.d.ts +10 -0
  1508. package/dist/src2/optimizer/pipeline.js +42 -0
  1509. package/dist/swap_test.map.json +14 -0
  1510. package/dist/tsconfig.tsbuildinfo +1 -0
  1511. package/dist/typechecker/index.d.ts +61 -0
  1512. package/dist/typechecker/index.js +1034 -0
  1513. package/dist/types/entity-hierarchy.d.ts +29 -0
  1514. package/dist/types/entity-hierarchy.js +107 -0
  1515. package/editors/vscode/package-lock.json +3 -3
  1516. package/editors/vscode/package.json +1 -1
  1517. package/package.json +1 -1
  1518. package/src/__tests__/array-dynamic.test.ts +147 -0
  1519. package/src/__tests__/array-param.test.ts +77 -0
  1520. package/src/__tests__/array-write.test.ts +169 -0
  1521. package/src/__tests__/stdlib/math.test.ts +102 -0
  1522. package/src/ast/types.ts +1 -0
  1523. package/src/emit/modules.ts +5 -0
  1524. package/src/hir/lower.ts +30 -0
  1525. package/src/hir/monomorphize.ts +2 -0
  1526. package/src/hir/types.ts +3 -1
  1527. package/src/lir/lower.ts +151 -0
  1528. package/src/mir/lower.ts +184 -14
  1529. package/src/mir/macro.ts +5 -0
  1530. package/src/mir/types.ts +2 -0
  1531. package/src/mir/verify.ts +7 -0
  1532. package/src/optimizer/copy_prop.ts +5 -0
  1533. package/src/optimizer/coroutine.ts +9 -0
  1534. package/src/optimizer/dce.ts +6 -0
  1535. package/src/optimizer/unroll.ts +3 -0
  1536. package/src/parser/index.ts +9 -0
  1537. package/src/stdlib/list.mcrs +117 -70
  1538. package/src/stdlib/math.mcrs +137 -0
  1539. package/src/stdlib/timer.mcrs +32 -0
  1540. package/src/typechecker/index.ts +6 -0
@@ -0,0 +1,1030 @@
1
+ "use strict";
2
+ /**
3
+ * HIR → MIR Lowering — Stage 3 of the RedScript compiler pipeline.
4
+ *
5
+ * Converts structured HIR (if/while/break/continue) into an explicit CFG
6
+ * with 3-address instructions and unlimited fresh temporaries.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.lowerToMIR = lowerToMIR;
10
+ const macro_1 = require("./macro");
11
+ // ---------------------------------------------------------------------------
12
+ // Public API
13
+ // ---------------------------------------------------------------------------
14
+ function lowerToMIR(hir) {
15
+ // Build struct definitions: name → field names
16
+ const structDefs = new Map();
17
+ for (const s of hir.structs) {
18
+ structDefs.set(s.name, s.fields.map(f => f.name));
19
+ }
20
+ // Build impl method info: typeName → methodName → { hasSelf }
21
+ const implMethods = new Map();
22
+ for (const ib of hir.implBlocks) {
23
+ const methods = new Map();
24
+ for (const m of ib.methods) {
25
+ const hasSelf = m.params.length > 0 && m.params[0].name === 'self';
26
+ methods.set(m.name, { hasSelf });
27
+ }
28
+ implMethods.set(ib.typeName, methods);
29
+ }
30
+ // Pre-scan for macro functions
31
+ const macroInfo = (0, macro_1.detectMacroFunctions)(hir);
32
+ // Build function param info for call_macro generation at call sites
33
+ const fnParamInfo = new Map();
34
+ for (const f of hir.functions) {
35
+ fnParamInfo.set(f.name, f.params);
36
+ }
37
+ for (const ib of hir.implBlocks) {
38
+ for (const m of ib.methods) {
39
+ fnParamInfo.set(`${ib.typeName}::${m.name}`, m.params);
40
+ }
41
+ }
42
+ const allFunctions = [];
43
+ for (const f of hir.functions) {
44
+ const { fn, helpers } = lowerFunction(f, hir.namespace, structDefs, implMethods, macroInfo, fnParamInfo);
45
+ allFunctions.push(fn, ...helpers);
46
+ }
47
+ // Lower impl block methods
48
+ for (const ib of hir.implBlocks) {
49
+ for (const m of ib.methods) {
50
+ const { fn, helpers } = lowerImplMethod(m, ib.typeName, hir.namespace, structDefs, implMethods, macroInfo, fnParamInfo);
51
+ allFunctions.push(fn, ...helpers);
52
+ }
53
+ }
54
+ return {
55
+ functions: allFunctions,
56
+ namespace: hir.namespace,
57
+ objective: `__${hir.namespace}`,
58
+ };
59
+ }
60
+ // ---------------------------------------------------------------------------
61
+ // Function lowering context
62
+ // ---------------------------------------------------------------------------
63
+ class FnContext {
64
+ constructor(namespace, fnName, structDefs = new Map(), implMethods = new Map(), macroInfo = new Map(), fnParamInfo = new Map()) {
65
+ this.tempCounter = 0;
66
+ this.blockCounter = 0;
67
+ this.blocks = [];
68
+ /** Stack of (loopHeader, loopExit, continueTo) for break/continue */
69
+ this.loopStack = [];
70
+ /** Extracted helper functions for execute blocks */
71
+ this.helperFunctions = [];
72
+ /** Struct variable tracking: varName → { typeName, fields: fieldName → temp } */
73
+ this.structVars = new Map();
74
+ this.namespace = namespace;
75
+ this.fnName = fnName;
76
+ this.structDefs = structDefs;
77
+ this.implMethods = implMethods;
78
+ this.macroInfo = macroInfo;
79
+ this.fnParamInfo = fnParamInfo;
80
+ this.currentMacroParams = macroInfo.get(fnName)?.macroParams ?? new Set();
81
+ const entry = this.makeBlock('entry');
82
+ this.currentBlock = entry;
83
+ }
84
+ freshTemp() {
85
+ return `t${this.tempCounter++}`;
86
+ }
87
+ makeBlock(id) {
88
+ const block = {
89
+ id: id ?? `bb${this.blockCounter++}`,
90
+ instrs: [],
91
+ term: { kind: 'return', value: null }, // placeholder
92
+ preds: [],
93
+ };
94
+ this.blocks.push(block);
95
+ return block;
96
+ }
97
+ newBlock(prefix) {
98
+ return this.makeBlock(prefix ? `${prefix}_${this.blockCounter++}` : undefined);
99
+ }
100
+ emit(instr) {
101
+ this.currentBlock.instrs.push(instr);
102
+ }
103
+ terminate(term) {
104
+ this.currentBlock.term = term;
105
+ }
106
+ switchTo(block) {
107
+ this.currentBlock = block;
108
+ }
109
+ current() {
110
+ return this.currentBlock;
111
+ }
112
+ pushLoop(header, exit, continueTo) {
113
+ this.loopStack.push({ header, exit, continueTo: continueTo ?? header });
114
+ }
115
+ popLoop() {
116
+ this.loopStack.pop();
117
+ }
118
+ currentLoop() {
119
+ return this.loopStack[this.loopStack.length - 1];
120
+ }
121
+ getNamespace() {
122
+ return this.namespace;
123
+ }
124
+ getFnName() {
125
+ return this.fnName;
126
+ }
127
+ }
128
+ // ---------------------------------------------------------------------------
129
+ // Function lowering
130
+ // ---------------------------------------------------------------------------
131
+ function lowerFunction(fn, namespace, structDefs = new Map(), implMethods = new Map(), macroInfo = new Map(), fnParamInfo = new Map()) {
132
+ const ctx = new FnContext(namespace, fn.name, structDefs, implMethods, macroInfo, fnParamInfo);
133
+ const fnMacroInfo = macroInfo.get(fn.name);
134
+ // Create temps for parameters
135
+ const params = fn.params.map(p => {
136
+ const t = ctx.freshTemp();
137
+ return { name: t, isMacroParam: fnMacroInfo?.macroParams.has(p.name) ?? false };
138
+ });
139
+ // Map parameter names to their temps
140
+ const scope = new Map();
141
+ fn.params.forEach((p, i) => {
142
+ scope.set(p.name, params[i].name);
143
+ });
144
+ lowerBlock(fn.body, ctx, scope);
145
+ // If the current block doesn't have a real terminator, add void return
146
+ const cur = ctx.current();
147
+ if (isPlaceholderTerm(cur.term)) {
148
+ ctx.terminate({ kind: 'return', value: null });
149
+ }
150
+ // Remove unreachable blocks (dead continuations after return/break/continue)
151
+ const reachable = computeReachable(ctx.blocks, 'entry');
152
+ const liveBlocks = ctx.blocks.filter(b => reachable.has(b.id));
153
+ // Fill predecessor lists
154
+ computePreds(liveBlocks);
155
+ const result = {
156
+ name: fn.name,
157
+ params,
158
+ blocks: liveBlocks,
159
+ entry: 'entry',
160
+ isMacro: fnMacroInfo != null,
161
+ };
162
+ return { fn: result, helpers: ctx.helperFunctions };
163
+ }
164
+ function lowerImplMethod(method, typeName, namespace, structDefs, implMethods, macroInfo = new Map(), fnParamInfo = new Map()) {
165
+ const fnName = `${typeName}::${method.name}`;
166
+ const ctx = new FnContext(namespace, fnName, structDefs, implMethods, macroInfo, fnParamInfo);
167
+ const fields = structDefs.get(typeName) ?? [];
168
+ const hasSelf = method.params.length > 0 && method.params[0].name === 'self';
169
+ const params = [];
170
+ const scope = new Map();
171
+ if (hasSelf) {
172
+ // Self fields become the first N params (one per struct field)
173
+ const selfFields = new Map();
174
+ for (const fieldName of fields) {
175
+ const t = ctx.freshTemp();
176
+ params.push({ name: t, isMacroParam: false });
177
+ selfFields.set(fieldName, t);
178
+ }
179
+ ctx.structVars.set('self', { typeName, fields: selfFields });
180
+ // Remaining params (after self)
181
+ for (let i = 1; i < method.params.length; i++) {
182
+ const t = ctx.freshTemp();
183
+ params.push({ name: t, isMacroParam: false });
184
+ scope.set(method.params[i].name, t);
185
+ }
186
+ }
187
+ else {
188
+ // Static method — regular params
189
+ for (const p of method.params) {
190
+ const t = ctx.freshTemp();
191
+ params.push({ name: t, isMacroParam: false });
192
+ scope.set(p.name, t);
193
+ }
194
+ }
195
+ lowerBlock(method.body, ctx, scope);
196
+ const cur = ctx.current();
197
+ if (isPlaceholderTerm(cur.term)) {
198
+ ctx.terminate({ kind: 'return', value: null });
199
+ }
200
+ const reachable = computeReachable(ctx.blocks, 'entry');
201
+ const liveBlocks = ctx.blocks.filter(b => reachable.has(b.id));
202
+ computePreds(liveBlocks);
203
+ const result = {
204
+ name: fnName,
205
+ params,
206
+ blocks: liveBlocks,
207
+ entry: 'entry',
208
+ isMacro: macroInfo.has(fnName),
209
+ };
210
+ return { fn: result, helpers: ctx.helperFunctions };
211
+ }
212
+ function isPlaceholderTerm(term) {
213
+ // Our placeholder is a return null that was set in makeBlock
214
+ return term.kind === 'return' && term.value === null;
215
+ }
216
+ function computeReachable(blocks, entry) {
217
+ const reachable = new Set();
218
+ const queue = [entry];
219
+ while (queue.length > 0) {
220
+ const id = queue.shift();
221
+ if (reachable.has(id))
222
+ continue;
223
+ reachable.add(id);
224
+ const block = blocks.find(b => b.id === id);
225
+ if (block) {
226
+ for (const t of getTermTargets(block.term)) {
227
+ if (!reachable.has(t))
228
+ queue.push(t);
229
+ }
230
+ }
231
+ }
232
+ return reachable;
233
+ }
234
+ function computePreds(blocks) {
235
+ // Clear all preds
236
+ for (const b of blocks)
237
+ b.preds = [];
238
+ for (const b of blocks) {
239
+ const targets = getTermTargets(b.term);
240
+ for (const t of targets) {
241
+ const target = blocks.find(bb => bb.id === t);
242
+ if (target && !target.preds.includes(b.id)) {
243
+ target.preds.push(b.id);
244
+ }
245
+ }
246
+ }
247
+ }
248
+ function getTermTargets(term) {
249
+ switch (term.kind) {
250
+ case 'jump': return [term.target];
251
+ case 'branch': return [term.then, term.else];
252
+ case 'return': return [];
253
+ default: return [];
254
+ }
255
+ }
256
+ // ---------------------------------------------------------------------------
257
+ // Block / statement lowering
258
+ // ---------------------------------------------------------------------------
259
+ function lowerBlock(stmts, ctx, scope) {
260
+ for (const stmt of stmts) {
261
+ lowerStmt(stmt, ctx, scope);
262
+ }
263
+ }
264
+ function lowerStmt(stmt, ctx, scope) {
265
+ switch (stmt.kind) {
266
+ case 'let': {
267
+ if (stmt.init.kind === 'struct_lit') {
268
+ // Struct literal: create per-field temps
269
+ const typeName = (stmt.type?.kind === 'struct') ? stmt.type.name : '__anon';
270
+ const fieldTemps = new Map();
271
+ for (const field of stmt.init.fields) {
272
+ const val = lowerExpr(field.value, ctx, scope);
273
+ const t = ctx.freshTemp();
274
+ ctx.emit({ kind: 'copy', dst: t, src: val });
275
+ fieldTemps.set(field.name, t);
276
+ }
277
+ ctx.structVars.set(stmt.name, { typeName, fields: fieldTemps });
278
+ }
279
+ else if (stmt.type?.kind === 'struct') {
280
+ // Struct-typed let with non-literal init (e.g., call returning struct)
281
+ const fields = ctx.structDefs.get(stmt.type.name);
282
+ if (fields) {
283
+ lowerExpr(stmt.init, ctx, scope);
284
+ // Copy from return field slots into struct variable temps
285
+ const fieldTemps = new Map();
286
+ for (const fieldName of fields) {
287
+ const t = ctx.freshTemp();
288
+ ctx.emit({ kind: 'copy', dst: t, src: { kind: 'temp', name: `__rf_${fieldName}` } });
289
+ fieldTemps.set(fieldName, t);
290
+ }
291
+ ctx.structVars.set(stmt.name, { typeName: stmt.type.name, fields: fieldTemps });
292
+ }
293
+ else {
294
+ const valOp = lowerExpr(stmt.init, ctx, scope);
295
+ const t = ctx.freshTemp();
296
+ ctx.emit({ kind: 'copy', dst: t, src: valOp });
297
+ scope.set(stmt.name, t);
298
+ }
299
+ }
300
+ else {
301
+ const valOp = lowerExpr(stmt.init, ctx, scope);
302
+ const t = ctx.freshTemp();
303
+ ctx.emit({ kind: 'copy', dst: t, src: valOp });
304
+ scope.set(stmt.name, t);
305
+ }
306
+ break;
307
+ }
308
+ case 'expr': {
309
+ lowerExpr(stmt.expr, ctx, scope);
310
+ break;
311
+ }
312
+ case 'return': {
313
+ if (stmt.value?.kind === 'struct_lit') {
314
+ // Struct return — copy each field to return field slots
315
+ for (const field of stmt.value.fields) {
316
+ const val = lowerExpr(field.value, ctx, scope);
317
+ ctx.emit({ kind: 'copy', dst: `__rf_${field.name}`, src: val });
318
+ }
319
+ ctx.terminate({ kind: 'return', value: null });
320
+ }
321
+ else {
322
+ const val = stmt.value ? lowerExpr(stmt.value, ctx, scope) : null;
323
+ ctx.terminate({ kind: 'return', value: val });
324
+ }
325
+ // Create a dead block for any subsequent statements
326
+ const dead = ctx.newBlock('post_ret');
327
+ ctx.switchTo(dead);
328
+ break;
329
+ }
330
+ case 'break': {
331
+ const loop = ctx.currentLoop();
332
+ if (!loop)
333
+ throw new Error('break outside loop');
334
+ ctx.terminate({ kind: 'jump', target: loop.exit });
335
+ const dead = ctx.newBlock('post_break');
336
+ ctx.switchTo(dead);
337
+ break;
338
+ }
339
+ case 'continue': {
340
+ const loop = ctx.currentLoop();
341
+ if (!loop)
342
+ throw new Error('continue outside loop');
343
+ ctx.terminate({ kind: 'jump', target: loop.continueTo });
344
+ const dead = ctx.newBlock('post_continue');
345
+ ctx.switchTo(dead);
346
+ break;
347
+ }
348
+ case 'if': {
349
+ const condOp = lowerExpr(stmt.cond, ctx, scope);
350
+ const thenBlock = ctx.newBlock('then');
351
+ const mergeBlock = ctx.newBlock('merge');
352
+ const elseBlock = stmt.else_ ? ctx.newBlock('else') : mergeBlock;
353
+ ctx.terminate({ kind: 'branch', cond: condOp, then: thenBlock.id, else: elseBlock.id });
354
+ // Then branch
355
+ ctx.switchTo(thenBlock);
356
+ lowerBlock(stmt.then, ctx, new Map(scope));
357
+ if (isPlaceholderTerm(ctx.current().term)) {
358
+ ctx.terminate({ kind: 'jump', target: mergeBlock.id });
359
+ }
360
+ // Else branch
361
+ if (stmt.else_) {
362
+ ctx.switchTo(elseBlock);
363
+ lowerBlock(stmt.else_, ctx, new Map(scope));
364
+ if (isPlaceholderTerm(ctx.current().term)) {
365
+ ctx.terminate({ kind: 'jump', target: mergeBlock.id });
366
+ }
367
+ }
368
+ ctx.switchTo(mergeBlock);
369
+ break;
370
+ }
371
+ case 'while': {
372
+ const headerBlock = ctx.newBlock('loop_header');
373
+ const bodyBlock = ctx.newBlock('loop_body');
374
+ const exitBlock = ctx.newBlock('loop_exit');
375
+ // If there's a step block (for/for_range), create a latch block that
376
+ // executes the step and then jumps to the header. Continue targets the
377
+ // latch so the increment always runs.
378
+ let latchBlock = null;
379
+ if (stmt.step && stmt.step.length > 0) {
380
+ latchBlock = ctx.newBlock('loop_latch');
381
+ }
382
+ const continueTarget = latchBlock ? latchBlock.id : headerBlock.id;
383
+ // Jump from current block to header
384
+ ctx.terminate({ kind: 'jump', target: headerBlock.id });
385
+ // Header: evaluate condition
386
+ ctx.switchTo(headerBlock);
387
+ const condOp = lowerExpr(stmt.cond, ctx, scope);
388
+ ctx.terminate({ kind: 'branch', cond: condOp, then: bodyBlock.id, else: exitBlock.id });
389
+ // Body
390
+ ctx.switchTo(bodyBlock);
391
+ ctx.pushLoop(headerBlock.id, exitBlock.id, continueTarget);
392
+ lowerBlock(stmt.body, ctx, new Map(scope));
393
+ ctx.popLoop();
394
+ if (isPlaceholderTerm(ctx.current().term)) {
395
+ ctx.terminate({ kind: 'jump', target: continueTarget });
396
+ }
397
+ // Latch block (step): execute increment, then jump to header
398
+ if (latchBlock && stmt.step) {
399
+ ctx.switchTo(latchBlock);
400
+ lowerBlock(stmt.step, ctx, new Map(scope));
401
+ if (isPlaceholderTerm(ctx.current().term)) {
402
+ ctx.terminate({ kind: 'jump', target: headerBlock.id });
403
+ }
404
+ }
405
+ ctx.switchTo(exitBlock);
406
+ break;
407
+ }
408
+ case 'foreach': {
409
+ // foreach is MC-specific entity iteration — lower to call_context
410
+ // For now, extract body into a helper and emit call_context
411
+ const helperName = `${ctx.getFnName()}__foreach_${ctx.freshTemp()}`;
412
+ const subcommands = [];
413
+ // The iterable should be a selector expression
414
+ if (stmt.iterable.kind === 'selector') {
415
+ subcommands.push({ kind: 'as', selector: stmt.iterable.raw });
416
+ }
417
+ if (stmt.executeContext === '@s') {
418
+ subcommands.push({ kind: 'at_self' });
419
+ }
420
+ // Build helper function body as MIR
421
+ const helperCtx = new FnContext(ctx.getNamespace(), helperName, ctx.structDefs, ctx.implMethods);
422
+ const helperScope = new Map(scope);
423
+ lowerBlock(stmt.body, helperCtx, helperScope);
424
+ if (isPlaceholderTerm(helperCtx.current().term)) {
425
+ helperCtx.terminate({ kind: 'return', value: null });
426
+ }
427
+ const helperReachable = computeReachable(helperCtx.blocks, 'entry');
428
+ const helperBlocks = helperCtx.blocks.filter(b => helperReachable.has(b.id));
429
+ computePreds(helperBlocks);
430
+ ctx.helperFunctions.push({
431
+ name: helperName,
432
+ params: [],
433
+ blocks: helperBlocks,
434
+ entry: 'entry',
435
+ isMacro: false,
436
+ });
437
+ ctx.emit({ kind: 'call_context', fn: helperName, subcommands });
438
+ break;
439
+ }
440
+ case 'execute': {
441
+ // Extract body into a helper function, emit call_context
442
+ const helperName = `${ctx.getFnName()}__exec_${ctx.freshTemp()}`;
443
+ const subcommands = stmt.subcommands.map(lowerExecuteSubcmd);
444
+ const helperCtx = new FnContext(ctx.getNamespace(), helperName, ctx.structDefs, ctx.implMethods);
445
+ const helperScope = new Map(scope);
446
+ lowerBlock(stmt.body, helperCtx, helperScope);
447
+ if (isPlaceholderTerm(helperCtx.current().term)) {
448
+ helperCtx.terminate({ kind: 'return', value: null });
449
+ }
450
+ const execReachable = computeReachable(helperCtx.blocks, 'entry');
451
+ const execBlocks = helperCtx.blocks.filter(b => execReachable.has(b.id));
452
+ computePreds(execBlocks);
453
+ ctx.helperFunctions.push({
454
+ name: helperName,
455
+ params: [],
456
+ blocks: execBlocks,
457
+ entry: 'entry',
458
+ isMacro: false,
459
+ });
460
+ ctx.emit({ kind: 'call_context', fn: helperName, subcommands });
461
+ break;
462
+ }
463
+ case 'match': {
464
+ // Lower match as chained if/else
465
+ const matchVal = lowerExpr(stmt.expr, ctx, scope);
466
+ const mergeBlock = ctx.newBlock('match_merge');
467
+ for (let i = 0; i < stmt.arms.length; i++) {
468
+ const arm = stmt.arms[i];
469
+ if (arm.pattern === null) {
470
+ // Default arm — just emit the body
471
+ lowerBlock(arm.body, ctx, new Map(scope));
472
+ if (isPlaceholderTerm(ctx.current().term)) {
473
+ ctx.terminate({ kind: 'jump', target: mergeBlock.id });
474
+ }
475
+ }
476
+ else {
477
+ const patOp = lowerExpr(arm.pattern, ctx, scope);
478
+ const cmpTemp = ctx.freshTemp();
479
+ ctx.emit({ kind: 'cmp', dst: cmpTemp, op: 'eq', a: matchVal, b: patOp });
480
+ const armBody = ctx.newBlock('match_arm');
481
+ const nextArm = ctx.newBlock('match_next');
482
+ ctx.terminate({ kind: 'branch', cond: { kind: 'temp', name: cmpTemp }, then: armBody.id, else: nextArm.id });
483
+ ctx.switchTo(armBody);
484
+ lowerBlock(arm.body, ctx, new Map(scope));
485
+ if (isPlaceholderTerm(ctx.current().term)) {
486
+ ctx.terminate({ kind: 'jump', target: mergeBlock.id });
487
+ }
488
+ ctx.switchTo(nextArm);
489
+ }
490
+ }
491
+ // If no default arm matched, jump to merge
492
+ if (isPlaceholderTerm(ctx.current().term)) {
493
+ ctx.terminate({ kind: 'jump', target: mergeBlock.id });
494
+ }
495
+ ctx.switchTo(mergeBlock);
496
+ break;
497
+ }
498
+ case 'raw': {
499
+ // Raw commands are opaque at MIR level — emit as a call to a synthetic raw function
500
+ // For now, pass through as a call with no args (will be handled in LIR)
501
+ ctx.emit({ kind: 'call', dst: null, fn: `__raw:${stmt.cmd}`, args: [] });
502
+ break;
503
+ }
504
+ default: {
505
+ const _exhaustive = stmt;
506
+ throw new Error(`Unknown HIR statement kind: ${_exhaustive.kind}`);
507
+ }
508
+ }
509
+ }
510
+ // ---------------------------------------------------------------------------
511
+ // Expression lowering → produces an Operand (temp or const)
512
+ // ---------------------------------------------------------------------------
513
+ function lowerExpr(expr, ctx, scope) {
514
+ switch (expr.kind) {
515
+ case 'int_lit':
516
+ return { kind: 'const', value: expr.value };
517
+ case 'float_lit':
518
+ // float is ×1000 fixed-point in RedScript
519
+ return { kind: 'const', value: expr.value };
520
+ case 'byte_lit':
521
+ case 'short_lit':
522
+ case 'long_lit':
523
+ case 'double_lit':
524
+ return { kind: 'const', value: expr.value };
525
+ case 'bool_lit': {
526
+ return { kind: 'const', value: expr.value ? 1 : 0 };
527
+ }
528
+ case 'struct_lit': {
529
+ // Struct literal in expression context (not let/return — those handle it directly).
530
+ // Lower each field value but return a placeholder since the struct
531
+ // is tracked via structVars at the statement level.
532
+ for (const field of expr.fields) {
533
+ lowerExpr(field.value, ctx, scope);
534
+ }
535
+ const t = ctx.freshTemp();
536
+ ctx.emit({ kind: 'const', dst: t, value: 0 });
537
+ return { kind: 'temp', name: t };
538
+ }
539
+ case 'str_lit':
540
+ case 'range_lit':
541
+ case 'array_lit':
542
+ case 'rel_coord':
543
+ case 'local_coord':
544
+ case 'mc_name':
545
+ case 'blockpos':
546
+ case 'selector':
547
+ case 'str_interp':
548
+ case 'f_string':
549
+ case 'is_check':
550
+ case 'lambda': {
551
+ // MC-specific / complex types — opaque at MIR level
552
+ // Emit as const 0 placeholder; these are handled in LIR lowering
553
+ const t = ctx.freshTemp();
554
+ ctx.emit({ kind: 'const', dst: t, value: 0 });
555
+ return { kind: 'temp', name: t };
556
+ }
557
+ case 'ident': {
558
+ const temp = scope.get(expr.name);
559
+ if (temp)
560
+ return { kind: 'temp', name: temp };
561
+ // Unresolved ident — could be a global or external reference
562
+ const t = ctx.freshTemp();
563
+ ctx.emit({ kind: 'copy', dst: t, src: { kind: 'const', value: 0 } });
564
+ scope.set(expr.name, t);
565
+ return { kind: 'temp', name: t };
566
+ }
567
+ case 'binary': {
568
+ // Handle short-circuit && and ||
569
+ if (expr.op === '&&') {
570
+ return lowerShortCircuitAnd(expr, ctx, scope);
571
+ }
572
+ if (expr.op === '||') {
573
+ return lowerShortCircuitOr(expr, ctx, scope);
574
+ }
575
+ const left = lowerExpr(expr.left, ctx, scope);
576
+ const right = lowerExpr(expr.right, ctx, scope);
577
+ const t = ctx.freshTemp();
578
+ // Map HIR binary ops to MIR instructions
579
+ const arithmeticOps = {
580
+ '+': 'add', '-': 'sub', '*': 'mul', '/': 'div', '%': 'mod',
581
+ };
582
+ const cmpOps = {
583
+ '==': 'eq', '!=': 'ne', '<': 'lt', '<=': 'le', '>': 'gt', '>=': 'ge',
584
+ };
585
+ if (expr.op in arithmeticOps) {
586
+ ctx.emit({ kind: arithmeticOps[expr.op], dst: t, a: left, b: right });
587
+ }
588
+ else if (expr.op in cmpOps) {
589
+ ctx.emit({ kind: 'cmp', dst: t, op: cmpOps[expr.op], a: left, b: right });
590
+ }
591
+ else {
592
+ throw new Error(`Unknown binary op: ${expr.op}`);
593
+ }
594
+ return { kind: 'temp', name: t };
595
+ }
596
+ case 'unary': {
597
+ const operand = lowerExpr(expr.operand, ctx, scope);
598
+ const t = ctx.freshTemp();
599
+ if (expr.op === '-') {
600
+ ctx.emit({ kind: 'neg', dst: t, src: operand });
601
+ }
602
+ else if (expr.op === '!') {
603
+ ctx.emit({ kind: 'not', dst: t, src: operand });
604
+ }
605
+ return { kind: 'temp', name: t };
606
+ }
607
+ case 'assign': {
608
+ const val = lowerExpr(expr.value, ctx, scope);
609
+ // Reuse the existing temp for this variable so that updates inside
610
+ // if/while bodies are visible to outer code (we target mutable
611
+ // scoreboard slots, not true SSA registers).
612
+ const existing = scope.get(expr.target);
613
+ const t = existing ?? ctx.freshTemp();
614
+ ctx.emit({ kind: 'copy', dst: t, src: val });
615
+ scope.set(expr.target, t);
616
+ return val;
617
+ }
618
+ case 'member_assign': {
619
+ const val = lowerExpr(expr.value, ctx, scope);
620
+ // Struct field assignment: v.x = val → copy val to v's x temp
621
+ if (expr.obj.kind === 'ident') {
622
+ const sv = ctx.structVars.get(expr.obj.name);
623
+ if (sv) {
624
+ const fieldTemp = sv.fields.get(expr.field);
625
+ if (fieldTemp) {
626
+ ctx.emit({ kind: 'copy', dst: fieldTemp, src: val });
627
+ return val;
628
+ }
629
+ }
630
+ }
631
+ return val;
632
+ }
633
+ case 'member': {
634
+ // Struct field access: v.x → return v's x temp
635
+ if (expr.obj.kind === 'ident') {
636
+ const sv = ctx.structVars.get(expr.obj.name);
637
+ if (sv) {
638
+ const fieldTemp = sv.fields.get(expr.field);
639
+ if (fieldTemp)
640
+ return { kind: 'temp', name: fieldTemp };
641
+ }
642
+ }
643
+ // Fallback: opaque
644
+ const obj = lowerExpr(expr.obj, ctx, scope);
645
+ const t = ctx.freshTemp();
646
+ ctx.emit({ kind: 'copy', dst: t, src: obj });
647
+ return { kind: 'temp', name: t };
648
+ }
649
+ case 'index': {
650
+ const obj = lowerExpr(expr.obj, ctx, scope);
651
+ const idx = lowerExpr(expr.index, ctx, scope);
652
+ const t = ctx.freshTemp();
653
+ ctx.emit({ kind: 'copy', dst: t, src: obj });
654
+ return { kind: 'temp', name: t };
655
+ }
656
+ case 'call': {
657
+ // Handle builtin calls → raw MC commands
658
+ if (macro_1.BUILTIN_SET.has(expr.fn)) {
659
+ const cmd = formatBuiltinCall(expr.fn, expr.args, ctx.currentMacroParams);
660
+ ctx.emit({ kind: 'call', dst: null, fn: `__raw:${cmd}`, args: [] });
661
+ const t = ctx.freshTemp();
662
+ ctx.emit({ kind: 'const', dst: t, value: 0 });
663
+ return { kind: 'temp', name: t };
664
+ }
665
+ // Check for struct instance method call: parser desugars v.method() → call('method', [v, ...])
666
+ if (expr.args.length > 0 && expr.args[0].kind === 'ident') {
667
+ const sv = ctx.structVars.get(expr.args[0].name);
668
+ if (sv) {
669
+ const methodInfo = ctx.implMethods.get(sv.typeName)?.get(expr.fn);
670
+ if (methodInfo?.hasSelf) {
671
+ // Build args: self fields first, then remaining explicit args
672
+ const fields = ctx.structDefs.get(sv.typeName) ?? [];
673
+ const selfArgs = fields.map(f => {
674
+ const temp = sv.fields.get(f);
675
+ return temp ? { kind: 'temp', name: temp } : { kind: 'const', value: 0 };
676
+ });
677
+ const explicitArgs = expr.args.slice(1).map(a => lowerExpr(a, ctx, scope));
678
+ const allArgs = [...selfArgs, ...explicitArgs];
679
+ const t = ctx.freshTemp();
680
+ ctx.emit({ kind: 'call', dst: t, fn: `${sv.typeName}::${expr.fn}`, args: allArgs });
681
+ return { kind: 'temp', name: t };
682
+ }
683
+ }
684
+ }
685
+ // Check if calling a macro function → emit call_macro
686
+ const targetMacro = ctx.macroInfo.get(expr.fn);
687
+ if (targetMacro) {
688
+ const args = expr.args.map(a => lowerExpr(a, ctx, scope));
689
+ const targetParams = ctx.fnParamInfo.get(expr.fn) ?? [];
690
+ const macroArgs = [];
691
+ for (let i = 0; i < targetParams.length && i < args.length; i++) {
692
+ const paramName = targetParams[i].name;
693
+ if (targetMacro.macroParams.has(paramName)) {
694
+ const paramTypeName = targetMacro.paramTypes.get(paramName) ?? 'int';
695
+ const isFloat = paramTypeName === 'float';
696
+ macroArgs.push({
697
+ name: paramName,
698
+ value: args[i],
699
+ type: isFloat ? 'double' : 'int',
700
+ scale: isFloat ? 0.01 : 1,
701
+ });
702
+ }
703
+ }
704
+ const t = ctx.freshTemp();
705
+ ctx.emit({ kind: 'call_macro', dst: t, fn: expr.fn, args: macroArgs });
706
+ return { kind: 'temp', name: t };
707
+ }
708
+ const args = expr.args.map(a => lowerExpr(a, ctx, scope));
709
+ const t = ctx.freshTemp();
710
+ ctx.emit({ kind: 'call', dst: t, fn: expr.fn, args });
711
+ return { kind: 'temp', name: t };
712
+ }
713
+ case 'invoke': {
714
+ // Check for struct method call: v.method(args)
715
+ if (expr.callee.kind === 'member' && expr.callee.obj.kind === 'ident') {
716
+ const sv = ctx.structVars.get(expr.callee.obj.name);
717
+ if (sv) {
718
+ const methodInfo = ctx.implMethods.get(sv.typeName)?.get(expr.callee.field);
719
+ if (methodInfo?.hasSelf) {
720
+ // Build args: self fields first, then explicit args
721
+ const fields = ctx.structDefs.get(sv.typeName) ?? [];
722
+ const selfArgs = fields.map(f => {
723
+ const temp = sv.fields.get(f);
724
+ return temp ? { kind: 'temp', name: temp } : { kind: 'const', value: 0 };
725
+ });
726
+ const explicitArgs = expr.args.map(a => lowerExpr(a, ctx, scope));
727
+ const allArgs = [...selfArgs, ...explicitArgs];
728
+ const t = ctx.freshTemp();
729
+ ctx.emit({ kind: 'call', dst: t, fn: `${sv.typeName}::${expr.callee.field}`, args: allArgs });
730
+ return { kind: 'temp', name: t };
731
+ }
732
+ }
733
+ }
734
+ // Fallback: generic invoke
735
+ const calleeOp = lowerExpr(expr.callee, ctx, scope);
736
+ const args = expr.args.map(a => lowerExpr(a, ctx, scope));
737
+ const t = ctx.freshTemp();
738
+ ctx.emit({ kind: 'call', dst: t, fn: '__invoke', args: [calleeOp, ...args] });
739
+ return { kind: 'temp', name: t };
740
+ }
741
+ case 'static_call': {
742
+ const args = expr.args.map(a => lowerExpr(a, ctx, scope));
743
+ const t = ctx.freshTemp();
744
+ ctx.emit({ kind: 'call', dst: t, fn: `${expr.type}::${expr.method}`, args });
745
+ return { kind: 'temp', name: t };
746
+ }
747
+ default: {
748
+ const _exhaustive = expr;
749
+ throw new Error(`Unknown HIR expression kind: ${_exhaustive.kind}`);
750
+ }
751
+ }
752
+ }
753
+ // ---------------------------------------------------------------------------
754
+ // Short-circuit lowering
755
+ // ---------------------------------------------------------------------------
756
+ function lowerShortCircuitAnd(expr, ctx, scope) {
757
+ // a && b → if(a) { b } else { 0 }
758
+ const left = lowerExpr(expr.left, ctx, scope);
759
+ const result = ctx.freshTemp();
760
+ const evalRight = ctx.newBlock('and_right');
761
+ const merge = ctx.newBlock('and_merge');
762
+ const falseBlock = ctx.newBlock('and_false');
763
+ ctx.terminate({ kind: 'branch', cond: left, then: evalRight.id, else: falseBlock.id });
764
+ ctx.switchTo(evalRight);
765
+ const right = lowerExpr(expr.right, ctx, scope);
766
+ ctx.emit({ kind: 'copy', dst: result, src: right });
767
+ ctx.terminate({ kind: 'jump', target: merge.id });
768
+ ctx.switchTo(falseBlock);
769
+ ctx.emit({ kind: 'const', dst: result, value: 0 });
770
+ ctx.terminate({ kind: 'jump', target: merge.id });
771
+ ctx.switchTo(merge);
772
+ return { kind: 'temp', name: result };
773
+ }
774
+ function lowerShortCircuitOr(expr, ctx, scope) {
775
+ // a || b → if(a) { 1 } else { b }
776
+ const left = lowerExpr(expr.left, ctx, scope);
777
+ const result = ctx.freshTemp();
778
+ const trueBlock = ctx.newBlock('or_true');
779
+ const evalRight = ctx.newBlock('or_right');
780
+ const merge = ctx.newBlock('or_merge');
781
+ ctx.terminate({ kind: 'branch', cond: left, then: trueBlock.id, else: evalRight.id });
782
+ ctx.switchTo(trueBlock);
783
+ ctx.emit({ kind: 'const', dst: result, value: 1 });
784
+ ctx.terminate({ kind: 'jump', target: merge.id });
785
+ ctx.switchTo(evalRight);
786
+ const right = lowerExpr(expr.right, ctx, scope);
787
+ ctx.emit({ kind: 'copy', dst: result, src: right });
788
+ ctx.terminate({ kind: 'jump', target: merge.id });
789
+ ctx.switchTo(merge);
790
+ return { kind: 'temp', name: result };
791
+ }
792
+ // ---------------------------------------------------------------------------
793
+ // Execute subcommand lowering
794
+ // ---------------------------------------------------------------------------
795
+ function lowerExecuteSubcmd(sub) {
796
+ switch (sub.kind) {
797
+ case 'as':
798
+ return { kind: 'as', selector: selectorToString(sub.selector) };
799
+ case 'at':
800
+ return { kind: 'at', selector: selectorToString(sub.selector) };
801
+ case 'positioned':
802
+ return { kind: 'positioned', x: sub.x, y: sub.y, z: sub.z };
803
+ case 'rotated':
804
+ return { kind: 'rotated', yaw: sub.yaw, pitch: sub.pitch };
805
+ case 'in':
806
+ return { kind: 'in', dimension: sub.dimension };
807
+ case 'anchored':
808
+ return { kind: 'anchored', anchor: sub.anchor };
809
+ case 'positioned_as':
810
+ return { kind: 'at', selector: selectorToString(sub.selector) };
811
+ case 'rotated_as':
812
+ return { kind: 'rotated', yaw: '0', pitch: '0' };
813
+ case 'facing':
814
+ return { kind: 'positioned', x: sub.x, y: sub.y, z: sub.z };
815
+ case 'facing_entity':
816
+ return { kind: 'at', selector: selectorToString(sub.selector) };
817
+ case 'align':
818
+ return { kind: 'positioned', x: '0', y: '0', z: '0' };
819
+ case 'on':
820
+ return { kind: 'at_self' };
821
+ case 'summon':
822
+ return { kind: 'at_self' };
823
+ case 'if_entity':
824
+ case 'unless_entity':
825
+ case 'if_block':
826
+ case 'unless_block':
827
+ case 'if_score':
828
+ case 'unless_score':
829
+ case 'if_score_range':
830
+ case 'unless_score_range':
831
+ case 'store_result':
832
+ case 'store_success':
833
+ // These are condition subcommands — pass through as-is for now
834
+ return { kind: 'at_self' };
835
+ default: {
836
+ const _exhaustive = sub;
837
+ throw new Error(`Unknown execute subcommand kind: ${_exhaustive.kind}`);
838
+ }
839
+ }
840
+ }
841
+ function selectorToString(sel) {
842
+ // EntitySelector has kind like '@a', '@e', '@s', etc.
843
+ // Filters are key=value pairs that become [key=value,key=value]
844
+ if (!sel.filters || Object.keys(sel.filters).length === 0) {
845
+ return sel.kind;
846
+ }
847
+ const parts = [];
848
+ for (const [key, value] of Object.entries(sel.filters)) {
849
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
850
+ // Range filter: { min, max } → key=min..max
851
+ const rangeObj = value;
852
+ if (rangeObj.min !== undefined && rangeObj.max !== undefined) {
853
+ parts.push(`${key}=${rangeObj.min}..${rangeObj.max}`);
854
+ }
855
+ else if (rangeObj.max !== undefined) {
856
+ parts.push(`${key}=..${rangeObj.max}`);
857
+ }
858
+ else if (rangeObj.min !== undefined) {
859
+ parts.push(`${key}=${rangeObj.min}..`);
860
+ }
861
+ }
862
+ else {
863
+ parts.push(`${key}=${value}`);
864
+ }
865
+ }
866
+ return `${sel.kind}[${parts.join(',')}]`;
867
+ }
868
+ // ---------------------------------------------------------------------------
869
+ // Builtin call formatting → raw MC command strings
870
+ // ---------------------------------------------------------------------------
871
+ const MACRO_SENTINEL = '\x01';
872
+ /**
873
+ * Format a builtin call as a raw MC command string.
874
+ * If any argument uses a macro param, the command is prefixed with \x01
875
+ * (converted to $ in LIR emission).
876
+ */
877
+ function formatBuiltinCall(fn, args, macroParams) {
878
+ const fmtArgs = args.map(a => exprToCommandArg(a, macroParams));
879
+ const strs = fmtArgs.map(a => a.str);
880
+ const hasMacro = fmtArgs.some(a => a.isMacro);
881
+ let cmd;
882
+ switch (fn) {
883
+ case 'summon': {
884
+ const [type, x, y, z, nbt] = strs;
885
+ const pos = [x ?? '~', y ?? '~', z ?? '~'].join(' ');
886
+ cmd = nbt ? `summon ${type} ${pos} ${nbt}` : `summon ${type} ${pos}`;
887
+ break;
888
+ }
889
+ case 'particle': {
890
+ const [name, x, y, z, ...rest] = strs;
891
+ const pos = [x ?? '~', y ?? '~', z ?? '~'].join(' ');
892
+ const extra = rest.filter(v => v !== undefined);
893
+ cmd = extra.length > 0 ? `particle ${name} ${pos} ${extra.join(' ')}` : `particle ${name} ${pos}`;
894
+ break;
895
+ }
896
+ case 'setblock': {
897
+ const [x, y, z, block] = strs;
898
+ cmd = `setblock ${x} ${y} ${z} ${block}`;
899
+ break;
900
+ }
901
+ case 'fill': {
902
+ const [x1, y1, z1, x2, y2, z2, block] = strs;
903
+ cmd = `fill ${x1} ${y1} ${z1} ${x2} ${y2} ${z2} ${block}`;
904
+ break;
905
+ }
906
+ case 'say':
907
+ cmd = `say ${strs[0] ?? ''}`;
908
+ break;
909
+ case 'tell':
910
+ case 'tellraw':
911
+ cmd = `tellraw ${strs[0]} {"text":"${strs[1]}"}`;
912
+ break;
913
+ case 'title':
914
+ cmd = `title ${strs[0]} title {"text":"${strs[1]}"}`;
915
+ break;
916
+ case 'actionbar':
917
+ cmd = `title ${strs[0]} actionbar {"text":"${strs[1]}"}`;
918
+ break;
919
+ case 'subtitle':
920
+ cmd = `title ${strs[0]} subtitle {"text":"${strs[1]}"}`;
921
+ break;
922
+ case 'title_times':
923
+ cmd = `title ${strs[0]} times ${strs[1]} ${strs[2]} ${strs[3]}`;
924
+ break;
925
+ case 'announce':
926
+ cmd = `tellraw @a {"text":"${strs[0]}"}`;
927
+ break;
928
+ case 'give': {
929
+ const nbt = strs[3] ? strs[3] : '';
930
+ cmd = `give ${strs[0]} ${strs[1]}${nbt} ${strs[2] ?? '1'}`;
931
+ break;
932
+ }
933
+ case 'kill':
934
+ cmd = `kill ${strs[0] ?? '@s'}`;
935
+ break;
936
+ case 'effect':
937
+ cmd = `effect give ${strs[0]} ${strs[1]} ${strs[2] ?? '30'} ${strs[3] ?? '0'}`;
938
+ break;
939
+ case 'effect_clear':
940
+ cmd = strs[1] ? `effect clear ${strs[0]} ${strs[1]}` : `effect clear ${strs[0]}`;
941
+ break;
942
+ case 'playsound':
943
+ cmd = ['playsound', ...strs].filter(Boolean).join(' ');
944
+ break;
945
+ case 'clear':
946
+ cmd = `clear ${strs[0]} ${strs[1] ?? ''}`.trim();
947
+ break;
948
+ case 'weather':
949
+ cmd = `weather ${strs[0]}`;
950
+ break;
951
+ case 'time_set':
952
+ cmd = `time set ${strs[0]}`;
953
+ break;
954
+ case 'time_add':
955
+ cmd = `time add ${strs[0]}`;
956
+ break;
957
+ case 'gamerule':
958
+ cmd = `gamerule ${strs[0]} ${strs[1]}`;
959
+ break;
960
+ case 'tag_add':
961
+ cmd = `tag ${strs[0]} add ${strs[1]}`;
962
+ break;
963
+ case 'tag_remove':
964
+ cmd = `tag ${strs[0]} remove ${strs[1]}`;
965
+ break;
966
+ case 'kick':
967
+ cmd = `kick ${strs[0]} ${strs[1] ?? ''}`.trim();
968
+ break;
969
+ case 'clone':
970
+ cmd = `clone ${strs.join(' ')}`;
971
+ break;
972
+ case 'difficulty':
973
+ cmd = `difficulty ${strs[0]}`;
974
+ break;
975
+ case 'xp_add':
976
+ cmd = `xp add ${strs[0]} ${strs[1]} ${strs[2] ?? 'points'}`;
977
+ break;
978
+ case 'xp_set':
979
+ cmd = `xp set ${strs[0]} ${strs[1]} ${strs[2] ?? 'points'}`;
980
+ break;
981
+ default: cmd = `${fn} ${strs.join(' ')}`;
982
+ }
983
+ return hasMacro ? `${MACRO_SENTINEL}${cmd}` : cmd;
984
+ }
985
+ /** Convert an HIR expression to its MC command string representation */
986
+ function exprToCommandArg(expr, macroParams) {
987
+ switch (expr.kind) {
988
+ case 'int_lit': return { str: String(expr.value), isMacro: false };
989
+ case 'float_lit': return { str: String(expr.value), isMacro: false };
990
+ case 'byte_lit': return { str: String(expr.value), isMacro: false };
991
+ case 'short_lit': return { str: String(expr.value), isMacro: false };
992
+ case 'long_lit': return { str: String(expr.value), isMacro: false };
993
+ case 'double_lit': return { str: String(expr.value), isMacro: false };
994
+ case 'bool_lit': return { str: expr.value ? 'true' : 'false', isMacro: false };
995
+ case 'str_lit': return { str: expr.value, isMacro: false };
996
+ case 'mc_name': return { str: expr.value, isMacro: false };
997
+ case 'selector': return { str: expr.raw, isMacro: false };
998
+ case 'ident':
999
+ if (macroParams.has(expr.name))
1000
+ return { str: `$(${expr.name})`, isMacro: true };
1001
+ return { str: expr.name, isMacro: false };
1002
+ case 'local_coord': {
1003
+ const prefix = expr.value[0]; // ^
1004
+ const rest = expr.value.slice(1);
1005
+ if (rest && /^[a-zA-Z_]\w*$/.test(rest) && macroParams.has(rest)) {
1006
+ return { str: `${prefix}$(${rest})`, isMacro: true };
1007
+ }
1008
+ return { str: expr.value, isMacro: false };
1009
+ }
1010
+ case 'rel_coord': {
1011
+ const prefix = expr.value[0]; // ~
1012
+ const rest = expr.value.slice(1);
1013
+ if (rest && /^[a-zA-Z_]\w*$/.test(rest) && macroParams.has(rest)) {
1014
+ return { str: `${prefix}$(${rest})`, isMacro: true };
1015
+ }
1016
+ return { str: expr.value, isMacro: false };
1017
+ }
1018
+ case 'unary':
1019
+ if (expr.op === '-' && expr.operand.kind === 'float_lit') {
1020
+ return { str: String(-expr.operand.value), isMacro: false };
1021
+ }
1022
+ if (expr.op === '-' && expr.operand.kind === 'int_lit') {
1023
+ return { str: String(-expr.operand.value), isMacro: false };
1024
+ }
1025
+ return { str: '~', isMacro: false };
1026
+ default:
1027
+ return { str: '~', isMacro: false };
1028
+ }
1029
+ }
1030
+ //# sourceMappingURL=lower.js.map