minecraft-datapack-language 16.0.19__tar.gz → 16.0.20__tar.gz
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.
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/PKG-INFO +1 -1
- minecraft_datapack_language-16.0.20/docs/_data/version.yml +3 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/_version.py +3 -3
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/mdl_compiler.py +93 -10
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language.egg-info/PKG-INFO +1 -1
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language.egg-info/SOURCES.txt +1 -0
- minecraft_datapack_language-16.0.20/tests/test_arithmetic_codegen.py +80 -0
- minecraft_datapack_language-16.0.19/docs/_data/version.yml +0 -3
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.cursor/rules/aispec.mdc +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/actions/mdl-compile/action.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/workflows/ci.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/workflows/docs.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/workflows/pypi.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/workflows/release.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/workflows/update-website-version.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.gitignore +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/load1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/main__else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/main__if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/testfunc.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/load1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/main__else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/main__if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/testfunc.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/data/test1/function/testfunc__while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.mdl-out-test1-confirm/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_compile_bwe.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_compile_bwe2.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_compile_bwe3.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_verify_loops.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/LICENSE +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/Makefile +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/README.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/advancements/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/advancements/first_spell.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/advancements/other_advancement.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/advancements/test_advancement.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/comprehensive_error_test.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/complex_scopes/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/complex_scopes/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_basic_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_complex_if_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_complex_expressions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_complex_expressions_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_variable_substitution_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_with_raw_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_with_scopes_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_with_tellraw_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_with_tellraw_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_control_with_tellraw_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_if_else_else_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_if_else_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_else_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_else_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/comprehensive_control_test/function/test_nested_if_if_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/control_test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/control_test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/control_test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/if_test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/if_test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/conditional_demo_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/conditional_demo_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/conditional_demo_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/conditional_demo_if_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/conditional_demo_if_3_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/conditional_demo_if_3_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/countdown_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/countdown_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/increase_tick_per_player_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/increase_tick_per_player_if_1_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/loop_demo_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/loop_demo_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/loop_demo_while_body_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/loop_demo_while_body_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/loop_demo_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_else_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_7.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/main_while_body_7.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/scoreboard_demo_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/scoreboard_demo_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/scoreboard_demo_while_body_3_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/start_game_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/start_game_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/start_game_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/start_game_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_while_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_while_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_while_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_basic_while_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_body_2_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_body_2_else_1_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_body_2_if_1_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_nested_control_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_scope_scenarios_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_scope_scenarios_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_scope_scenarios_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_scope_scenarios_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_while_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_while_while_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_while_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_complex_while_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_complex_expressions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_complex_expressions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_complex_expressions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_complex_expressions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_error_handling_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_error_handling_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_error_handling_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_error_handling_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_body_4_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_performance_while_body_4_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_scoped_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_scoped_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_scoped_functions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_scoped_functions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_variable_substitution_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_variable_substitution_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_variable_substitution_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_variable_substitution_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_assignments_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_assignments_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_assignments_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_assignments_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_functions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_functions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_raw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_raw_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_raw_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_scopes_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_scopes_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_scopes_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_scopes_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_tellraw_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_tellraw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_tellraw_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_tellraw_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_control_with_tellraw_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_if_else_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_if_else_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_else_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_else_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_1_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_1_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_1_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_1_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_while_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_conditionals_while_body_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_interactions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_interactions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_scope_interactions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_while_break_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_while_break_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_while_break_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/test_while_break_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/tick_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/tick_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/tick_if_2_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/tick_if_2_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/weapon_effects_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test/function/weapon_effects_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test_final_template_fixed/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/test_final_template_fixed/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/while_test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/data/while_test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/dist.zip +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/.env +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/404.html +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/Gemfile +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/README.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_config.yml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/cli-reference.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/contributing.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/docs-hub.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/documentation.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/examples.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/getting-started.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/language-reference.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/multi-file-projects.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/python-bindings.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_docs/vscode-extension.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_includes/head-custom.html +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_includes/navigation.html +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_layouts/default.html +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_layouts/page.html +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_plugins/test_version.rb +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/_plugins/version_reader.rb +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/assets/css/style.css +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/docs.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/downloads.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/icons/icon-64.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/docs/index.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/examples/hello_world.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/examples/macros_example.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/examples/scope_examples.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/examples/simple_counter.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/icons/icon-64.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/item_modifiers/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/item_modifiers/enchant_tool.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/item_modifiers/test_item_modifier.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/loot_tables/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/loot_tables/epic_loot.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/loot_tables/main_loot.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/loot_tables/test_loot.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/mdllocal.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/__init__.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/ast_nodes.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/cli.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/dir_map.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/mdl_errors.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/mdl_lexer.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/mdl_linter.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/mdl_parser.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/python_api.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language/utils.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language.egg-info/dependency_links.txt +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language.egg-info/entry_points.txt +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language.egg-info/requires.txt +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/minecraft_datapack_language.egg-info/top_level.txt +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/multi_scope_example.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/my_awesome_pack/README.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/my_awesome_pack/minecraft_datapack_language.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/predicates/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/predicates/has_mana.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/predicates/other_predicate.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/predicates/test_predicate.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/pyproject.toml +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/pytest.ini +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/custom_pickaxe.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/first.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/inlet.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/main_recipe.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/outlet.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/pipe.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/second.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/test_recipe.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/recipes/wrench.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scope_demo.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scoreboard_test.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/UpdateMDL.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/bootstrap.ps1 +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/bootstrap.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/build_pkg.ps1 +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/build_pkg.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/dev_build.ps1 +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/dev_build.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/dev_setup.ps1 +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/dev_setup.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/git-bash/bootstrap-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/git-bash/build_pkg-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/git-bash/test_cli-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/release.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/test_cli.ps1 +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/test_cli.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/test_dev.ps1 +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/test_dev.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/update_docs.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/scripts/update_version_info.sh +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/setup.cfg +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/structures/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/structures/test_structure.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/structures/workshop.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tellraw_variables_test.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/temp_output/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/temp_output/data/test/function/helper.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/temp_output/data/test/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/temp_output/data/test/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/temp_output/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/test_all_registry.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/test_complex_scenarios.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/test_comprehensive_fixes.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/test_if_else_while.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/test_project/complex_test.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/test_simple.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/__init__.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/run_all_tests.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_cli.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_codegen_naming_and_logic.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_compiler_fixes.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_complex_scenarios.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_comprehensive_end_to_end.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_examples.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_macros.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_python_api.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_python_bindings.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_scheduledwhile.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tests/test_user_regression_test1.py +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tmp_local_cli_out.zip +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tmp_test1.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tmp_test1.mdl~ +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/tmp_test1_confirm.mdl +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/README.md +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/language-configuration.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/package-lock.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/package.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/snippets/mdl.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/src/extension.ts +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/syntaxes/mdl.tmLanguage.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/themes/mdl-color-theme.json +0 -0
- {minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/vscode-extension/tsconfig.json +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 16.0.
|
3
|
+
Version: 16.0.20
|
4
4
|
Summary: Compile MDL language with explicit scoping into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
|
5
5
|
Project-URL: Homepage, https://www.mcmdl.com
|
6
6
|
Project-URL: Documentation, https://www.mcmdl.com/docs
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
28
28
|
commit_id: COMMIT_ID
|
29
29
|
__commit_id__: COMMIT_ID
|
30
30
|
|
31
|
-
__version__ = version = '16.0.
|
32
|
-
__version_tuple__ = version_tuple = (16, 0,
|
31
|
+
__version__ = version = '16.0.20'
|
32
|
+
__version_tuple__ = version_tuple = (16, 0, 20)
|
33
33
|
|
34
|
-
__commit_id__ = commit_id = '
|
34
|
+
__commit_id__ = commit_id = 'g16beed4e1'
|
@@ -1137,7 +1137,8 @@ class MDLCompiler:
|
|
1137
1137
|
obj = parts[2]
|
1138
1138
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} = {scope} {obj}")
|
1139
1139
|
else:
|
1140
|
-
self.
|
1140
|
+
lit = self._normalize_integer_literal_string(str(left_value), ctx="addition left operand")
|
1141
|
+
self._store_temp_command(f"scoreboard players set @s {temp_var} {lit}")
|
1141
1142
|
# Add right value
|
1142
1143
|
if isinstance(expression.right, VariableSubstitution) or (isinstance(right_value, str) and right_value.startswith("score ")):
|
1143
1144
|
parts = str(right_value).split()
|
@@ -1145,7 +1146,13 @@ class MDLCompiler:
|
|
1145
1146
|
obj = parts[2]
|
1146
1147
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} += {scope} {obj}")
|
1147
1148
|
else:
|
1148
|
-
self.
|
1149
|
+
lit = self._normalize_integer_literal_string(str(right_value), ctx="addition right operand")
|
1150
|
+
if lit == "0":
|
1151
|
+
pass
|
1152
|
+
elif lit.startswith("-"):
|
1153
|
+
self._store_temp_command(f"scoreboard players remove @s {temp_var} {lit[1:]}")
|
1154
|
+
else:
|
1155
|
+
self._store_temp_command(f"scoreboard players add @s {temp_var} {lit}")
|
1149
1156
|
|
1150
1157
|
elif expression.operator == "MINUS":
|
1151
1158
|
if isinstance(expression.left, BinaryExpression):
|
@@ -1157,7 +1164,8 @@ class MDLCompiler:
|
|
1157
1164
|
obj = parts[2]
|
1158
1165
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} = {scope} {obj}")
|
1159
1166
|
else:
|
1160
|
-
self.
|
1167
|
+
lit = self._normalize_integer_literal_string(str(left_value), ctx="subtraction left operand")
|
1168
|
+
self._store_temp_command(f"scoreboard players set @s {temp_var} {lit}")
|
1161
1169
|
# Subtract right value
|
1162
1170
|
if isinstance(expression.right, VariableSubstitution) or (isinstance(right_value, str) and right_value.startswith("score ")):
|
1163
1171
|
parts = str(right_value).split()
|
@@ -1165,7 +1173,14 @@ class MDLCompiler:
|
|
1165
1173
|
obj = parts[2]
|
1166
1174
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} -= {scope} {obj}")
|
1167
1175
|
else:
|
1168
|
-
self.
|
1176
|
+
lit = self._normalize_integer_literal_string(str(right_value), ctx="subtraction right operand")
|
1177
|
+
if lit == "0":
|
1178
|
+
pass
|
1179
|
+
elif lit.startswith("-"):
|
1180
|
+
# x - (-k) == x + k
|
1181
|
+
self._store_temp_command(f"scoreboard players add @s {temp_var} {lit[1:]}")
|
1182
|
+
else:
|
1183
|
+
self._store_temp_command(f"scoreboard players remove @s {temp_var} {lit}")
|
1169
1184
|
|
1170
1185
|
elif expression.operator == "MULTIPLY":
|
1171
1186
|
if isinstance(expression.left, BinaryExpression):
|
@@ -1185,8 +1200,13 @@ class MDLCompiler:
|
|
1185
1200
|
# For literal values, keep explicit multiply command for compatibility
|
1186
1201
|
if isinstance(expression.right, LiteralExpression):
|
1187
1202
|
# Normalize number formatting (e.g., 2.0 -> 2)
|
1188
|
-
literal_str = self._expression_to_value(expression.right)
|
1189
|
-
|
1203
|
+
literal_str = self._normalize_integer_literal_string(self._expression_to_value(expression.right), ctx="multiply literal")
|
1204
|
+
if literal_str == "0":
|
1205
|
+
self._store_temp_command(f"scoreboard players set @s {temp_var} 0")
|
1206
|
+
elif literal_str == "1":
|
1207
|
+
pass
|
1208
|
+
else:
|
1209
|
+
self._store_temp_command(f"scoreboard players multiply @s {temp_var} {literal_str}")
|
1190
1210
|
else:
|
1191
1211
|
# If right_value is a score reference string, strip the leading 'score '
|
1192
1212
|
if isinstance(right_value, str) and right_value.startswith("score "):
|
@@ -1198,7 +1218,17 @@ class MDLCompiler:
|
|
1198
1218
|
else:
|
1199
1219
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= {right_value}")
|
1200
1220
|
else:
|
1201
|
-
|
1221
|
+
# If RHS is a numeric literal string (incl. negatives), use multiply
|
1222
|
+
if self._is_numeric_literal_string(right_value):
|
1223
|
+
lit = self._normalize_integer_literal_string(str(right_value), ctx="multiply literal string")
|
1224
|
+
if lit == "0":
|
1225
|
+
self._store_temp_command(f"scoreboard players set @s {temp_var} 0")
|
1226
|
+
elif lit == "1":
|
1227
|
+
pass
|
1228
|
+
else:
|
1229
|
+
self._store_temp_command(f"scoreboard players multiply @s {temp_var} {lit}")
|
1230
|
+
else:
|
1231
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} *= {right_value}")
|
1202
1232
|
|
1203
1233
|
elif expression.operator == "DIVIDE":
|
1204
1234
|
if isinstance(expression.left, BinaryExpression):
|
@@ -1218,8 +1248,17 @@ class MDLCompiler:
|
|
1218
1248
|
# For literal values, keep explicit divide command for compatibility
|
1219
1249
|
if isinstance(expression.right, LiteralExpression):
|
1220
1250
|
# Normalize number formatting (e.g., 2.0 -> 2)
|
1221
|
-
|
1222
|
-
|
1251
|
+
lit = self._normalize_integer_literal_string(self._expression_to_value(expression.right), ctx="divide literal")
|
1252
|
+
if lit == "0":
|
1253
|
+
raise MDLCompilerError("Division by zero literal is not allowed", "Use a non-zero integer literal")
|
1254
|
+
if lit == "1":
|
1255
|
+
pass
|
1256
|
+
elif lit.startswith("-"):
|
1257
|
+
abs_lit = lit[1:]
|
1258
|
+
self._store_temp_command(f"scoreboard players divide @s {temp_var} {abs_lit}")
|
1259
|
+
self._store_temp_command(f"scoreboard players multiply @s {temp_var} -1")
|
1260
|
+
else:
|
1261
|
+
self._store_temp_command(f"scoreboard players divide @s {temp_var} {lit}")
|
1223
1262
|
else:
|
1224
1263
|
# If right_value is a score reference string, strip the leading 'score '
|
1225
1264
|
if isinstance(right_value, str) and right_value.startswith("score "):
|
@@ -1231,7 +1270,21 @@ class MDLCompiler:
|
|
1231
1270
|
else:
|
1232
1271
|
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= {right_value}")
|
1233
1272
|
else:
|
1234
|
-
|
1273
|
+
# If RHS is a numeric literal string (incl. negatives), use divide
|
1274
|
+
if self._is_numeric_literal_string(right_value):
|
1275
|
+
lit = self._normalize_integer_literal_string(str(right_value), ctx="divide literal string")
|
1276
|
+
if lit == "0":
|
1277
|
+
raise MDLCompilerError("Division by zero literal is not allowed", "Use a non-zero integer literal")
|
1278
|
+
if lit == "1":
|
1279
|
+
pass
|
1280
|
+
elif lit.startswith("-"):
|
1281
|
+
abs_lit = lit[1:]
|
1282
|
+
self._store_temp_command(f"scoreboard players divide @s {temp_var} {abs_lit}")
|
1283
|
+
self._store_temp_command(f"scoreboard players multiply @s {temp_var} -1")
|
1284
|
+
else:
|
1285
|
+
self._store_temp_command(f"scoreboard players divide @s {temp_var} {lit}")
|
1286
|
+
else:
|
1287
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} /= {right_value}")
|
1235
1288
|
else:
|
1236
1289
|
# For other operators, just set the value
|
1237
1290
|
self._store_temp_command(f"scoreboard players set @s {temp_var} 0")
|
@@ -1243,6 +1296,36 @@ class MDLCompiler:
|
|
1243
1296
|
else:
|
1244
1297
|
# Fallback: do nothing, but keep behavior predictable
|
1245
1298
|
pass
|
1299
|
+
|
1300
|
+
def _is_numeric_literal_string(self, s: Any) -> bool:
|
1301
|
+
"""Return True if s is a string representing an integer literal (incl. negatives)."""
|
1302
|
+
if not isinstance(s, str):
|
1303
|
+
return False
|
1304
|
+
try:
|
1305
|
+
# Allow floats that are integer-valued like "2.0" by casting then checking is_integer
|
1306
|
+
if "." in s:
|
1307
|
+
f = float(s)
|
1308
|
+
return f.is_integer()
|
1309
|
+
int(s)
|
1310
|
+
return True
|
1311
|
+
except Exception:
|
1312
|
+
return False
|
1313
|
+
|
1314
|
+
def _normalize_integer_literal_string(self, s: str, ctx: str = "") -> str:
|
1315
|
+
"""Normalize a numeric literal string to an integer string, or raise MDLCompilerError.
|
1316
|
+
Accepts negatives and floats that are mathematically integers (e.g., "2.0").
|
1317
|
+
"""
|
1318
|
+
try:
|
1319
|
+
f = float(s)
|
1320
|
+
except Exception:
|
1321
|
+
raise MDLCompilerError(f"Expected integer literal, got '{s}'", f"Invalid numeric literal in {ctx}")
|
1322
|
+
if not float(f).is_integer():
|
1323
|
+
raise MDLCompilerError(f"Scoreboards are integer-only; got non-integer '{s}'", f"Use integers in {ctx}")
|
1324
|
+
n = int(f)
|
1325
|
+
# Normalize -0 to 0
|
1326
|
+
if n == 0:
|
1327
|
+
return "0"
|
1328
|
+
return str(n)
|
1246
1329
|
|
1247
1330
|
def _generate_temp_variable_name(self) -> str:
|
1248
1331
|
"""Generate a unique temporary variable name."""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 16.0.
|
3
|
+
Version: 16.0.20
|
4
4
|
Summary: Compile MDL language with explicit scoping into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
|
5
5
|
Project-URL: Homepage, https://www.mcmdl.com
|
6
6
|
Project-URL: Documentation, https://www.mcmdl.com/docs
|
@@ -374,6 +374,7 @@ temp_output/data/test/function/main.mcfunction
|
|
374
374
|
test_project/complex_test.mdl
|
375
375
|
tests/__init__.py
|
376
376
|
tests/run_all_tests.py
|
377
|
+
tests/test_arithmetic_codegen.py
|
377
378
|
tests/test_cli.py
|
378
379
|
tests/test_codegen_naming_and_logic.py
|
379
380
|
tests/test_compiler_fixes.py
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import os
|
2
|
+
import re
|
3
|
+
import pytest
|
4
|
+
from minecraft_datapack_language.mdl_parser import MDLParser
|
5
|
+
from minecraft_datapack_language.mdl_compiler import MDLCompiler
|
6
|
+
from minecraft_datapack_language.mdl_errors import MDLCompilerError
|
7
|
+
|
8
|
+
def compile_snippet(src: str, outdir: str):
|
9
|
+
parser = MDLParser("test.mdl")
|
10
|
+
program = parser.parse(src)
|
11
|
+
compiler = MDLCompiler(output_dir=outdir)
|
12
|
+
return compiler.compile(program, source_dir=outdir)
|
13
|
+
|
14
|
+
def test_add_remove_literal(tmp_path):
|
15
|
+
src = '''
|
16
|
+
pack "p" "d" 82;
|
17
|
+
namespace "p";
|
18
|
+
function p:f {
|
19
|
+
var x<@s> = 1;
|
20
|
+
x<@s> = $x<@s>$ + 5;
|
21
|
+
x<@s> = $x<@s>$ + -3;
|
22
|
+
}
|
23
|
+
'''
|
24
|
+
out = compile_snippet(src, str(tmp_path))
|
25
|
+
# find function file under either 'functions' or 'function'
|
26
|
+
candidates = [
|
27
|
+
os.path.join(out, "data", "p", "functions", "f.mcfunction"),
|
28
|
+
os.path.join(out, "data", "p", "function", "f.mcfunction"),
|
29
|
+
]
|
30
|
+
for fn in candidates:
|
31
|
+
if os.path.exists(fn):
|
32
|
+
break
|
33
|
+
else:
|
34
|
+
raise FileNotFoundError("f.mcfunction not found in expected directories")
|
35
|
+
text = open(fn, "r", encoding="utf-8").read()
|
36
|
+
# We compile via temps: expect add/remove on a temp variable, not directly on x
|
37
|
+
assert re.search(r"players add @s (temp_\\d+|x) 5", text) is not None
|
38
|
+
assert re.search(r"players (remove|add) @s (temp_\\d+|x) 3", text) is not None
|
39
|
+
|
40
|
+
def test_multiply_divide_literal(tmp_path):
|
41
|
+
src = '''
|
42
|
+
pack "p" "d" 82;
|
43
|
+
namespace "p";
|
44
|
+
function p:f {
|
45
|
+
var x<@s> = 2;
|
46
|
+
x<@s> = $x<@s>$ * 3;
|
47
|
+
x<@s> = $x<@s>$ * -1;
|
48
|
+
x<@s> = $x<@s>$ / 2;
|
49
|
+
}
|
50
|
+
'''
|
51
|
+
out = compile_snippet(src, str(tmp_path))
|
52
|
+
candidates = [
|
53
|
+
os.path.join(out, "data", "p", "functions", "f.mcfunction"),
|
54
|
+
os.path.join(out, "data", "p", "function", "f.mcfunction"),
|
55
|
+
]
|
56
|
+
for fn in candidates:
|
57
|
+
if os.path.exists(fn):
|
58
|
+
break
|
59
|
+
else:
|
60
|
+
raise FileNotFoundError("f.mcfunction not found in expected directories")
|
61
|
+
text = open(fn, "r", encoding="utf-8").read()
|
62
|
+
assert re.search(r"players multiply @s (temp_\\d+|x) 3", text) is not None
|
63
|
+
assert re.search(r"players multiply @s (temp_\\d+|x) -1", text) is not None
|
64
|
+
assert re.search(r"players divide @s (temp_\\d+|x) 2", text) is not None
|
65
|
+
|
66
|
+
def test_divide_by_zero_error(tmp_path):
|
67
|
+
src = '''
|
68
|
+
pack "p" "d" 82;
|
69
|
+
namespace "p";
|
70
|
+
function p:f {
|
71
|
+
var x<@s> = 2;
|
72
|
+
x<@s> = $x<@s>$ / 0;
|
73
|
+
}
|
74
|
+
'''
|
75
|
+
with pytest.raises(MDLCompilerError) as ei:
|
76
|
+
compile_snippet(src, str(tmp_path))
|
77
|
+
msg = str(ei.value).lower()
|
78
|
+
assert ("divide" in msg) or ("division" in msg) or ("integer" in msg)
|
79
|
+
|
80
|
+
|
{minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.cursor/rules/aispec.mdc
RENAMED
File without changes
|
File without changes
|
{minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.github/workflows/ci.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_compile_bwe.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_compile_bwe2.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_compile_bwe3.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.19 → minecraft_datapack_language-16.0.20}/.tmp_verify_loops.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|