minecraft-datapack-language 16.0.13__tar.gz → 16.0.15__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.13/minecraft_datapack_language.egg-info → minecraft_datapack_language-16.0.15}/PKG-INFO +1 -1
- minecraft_datapack_language-16.0.15/docs/_data/version.yml +3 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/downloads.md +3 -1
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/_version.py +3 -3
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/mdl_compiler.py +80 -22
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15/minecraft_datapack_language.egg-info}/PKG-INFO +1 -1
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/run_all_tests.py +37 -11
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_python_bindings.py +53 -0
- minecraft_datapack_language-16.0.13/docs/_data/version.yml +0 -3
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.cursor/rules/aispec.mdc +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.github/actions/mdl-compile/action.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.github/workflows/ci.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.github/workflows/docs.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.github/workflows/pypi.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.github/workflows/release.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.github/workflows/update-website-version.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.gitignore +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/load1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/main__else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/main__if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/testfunc.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/load1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/main__else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/main__if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/testfunc.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/data/test1/function/testfunc__while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.mdl-out-test1-confirm/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.tmp_compile_bwe.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.tmp_compile_bwe2.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.tmp_compile_bwe3.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.tmp_verify_loops.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/COMPILER_FIXES_SUMMARY.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/CONDITIONALS_IMPLEMENTATION.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/LICENSE +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/Makefile +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/README.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/advancements/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/advancements/first_spell.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/advancements/other_advancement.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/advancements/test_advancement.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/comprehensive_error_test.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/complex_scopes/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/complex_scopes/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_basic_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_complex_if_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_complex_expressions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_complex_expressions_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_variable_substitution_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_with_raw_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_with_scopes_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_with_tellraw_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_with_tellraw_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_control_with_tellraw_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_if_else_else_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_if_else_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_else_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_else_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/comprehensive_control_test/function/test_nested_if_if_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/control_test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/control_test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/control_test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/if_test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/if_test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/conditional_demo_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/conditional_demo_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/conditional_demo_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/conditional_demo_if_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/conditional_demo_if_3_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/conditional_demo_if_3_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/countdown_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/countdown_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/increase_tick_per_player_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/increase_tick_per_player_if_1_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/loop_demo_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/loop_demo_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/loop_demo_while_body_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/loop_demo_while_body_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/loop_demo_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_else_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_7.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/main_while_body_7.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/scoreboard_demo_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/scoreboard_demo_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/scoreboard_demo_while_body_3_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/start_game_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/start_game_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/start_game_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/start_game_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_while_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_while_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_while_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_basic_while_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_body_2_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_body_2_else_1_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_body_2_if_1_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_nested_control_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_scope_scenarios_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_scope_scenarios_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_scope_scenarios_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_scope_scenarios_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_while_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_while_while_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_while_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_complex_while_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_complex_expressions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_complex_expressions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_complex_expressions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_complex_expressions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_error_handling_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_error_handling_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_error_handling_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_error_handling_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_body_4_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_performance_while_body_4_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_scoped_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_scoped_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_scoped_functions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_scoped_functions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_variable_substitution_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_variable_substitution_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_variable_substitution_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_variable_substitution_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_assignments_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_assignments_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_assignments_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_assignments_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_functions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_functions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_raw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_raw_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_raw_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_scopes_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_scopes_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_scopes_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_scopes_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_tellraw_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_tellraw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_tellraw_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_tellraw_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_control_with_tellraw_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_if_else_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_if_else_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_else_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_else_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_1_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_1_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_1_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_1_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_while_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_conditionals_while_body_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_interactions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_interactions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_scope_interactions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_while_break_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_while_break_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_while_break_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/test_while_break_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/tick_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/tick_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/tick_if_2_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/tick_if_2_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/weapon_effects_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test/function/weapon_effects_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test_final_template_fixed/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/test_final_template_fixed/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/while_test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/data/while_test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/dist.zip +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/.env +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/404.html +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/Gemfile +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/README.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_config.yml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/cli-reference.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/contributing.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/docs-hub.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/documentation.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/examples.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/getting-started.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/language-reference.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/multi-file-projects.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/python-bindings.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_docs/vscode-extension.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_includes/head-custom.html +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_includes/navigation.html +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_layouts/default.html +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_layouts/page.html +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_plugins/test_version.rb +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/_plugins/version_reader.rb +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/assets/css/style.css +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/docs.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/icons/icon-64.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/index.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/examples/hello_world.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/examples/macros_example.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/examples/scope_examples.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/examples/simple_counter.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/icons/icon-64.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/item_modifiers/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/item_modifiers/enchant_tool.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/item_modifiers/test_item_modifier.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/loot_tables/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/loot_tables/epic_loot.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/loot_tables/main_loot.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/loot_tables/test_loot.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/mdllocal.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/__init__.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/ast_nodes.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/cli.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/dir_map.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/mdl_errors.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/mdl_lexer.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/mdl_linter.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/mdl_parser.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/python_api.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language/utils.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language.egg-info/SOURCES.txt +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language.egg-info/dependency_links.txt +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language.egg-info/entry_points.txt +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language.egg-info/requires.txt +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/minecraft_datapack_language.egg-info/top_level.txt +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/multi_scope_example.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/my_awesome_pack/README.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/my_awesome_pack/minecraft_datapack_language.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/predicates/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/predicates/has_mana.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/predicates/other_predicate.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/predicates/test_predicate.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/pyproject.toml +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/pytest.ini +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/custom_pickaxe.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/first.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/inlet.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/main_recipe.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/outlet.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/pipe.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/second.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/test_recipe.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/recipes/wrench.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scope_demo.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scoreboard_test.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/UpdateMDL.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/bootstrap.ps1 +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/bootstrap.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/build_pkg.ps1 +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/build_pkg.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/dev_build.ps1 +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/dev_build.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/dev_setup.ps1 +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/dev_setup.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/git-bash/bootstrap-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/git-bash/build_pkg-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/git-bash/test_cli-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/release.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/test_cli.ps1 +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/test_cli.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/test_dev.ps1 +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/test_dev.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/update_docs.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/scripts/update_version_info.sh +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/setup.cfg +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/structures/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/structures/test_structure.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/structures/workshop.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tellraw_variables_test.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/temp_output/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/temp_output/data/test/function/helper.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/temp_output/data/test/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/temp_output/data/test/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/temp_output/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/test_all_registry.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/test_complex_scenarios.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/test_comprehensive_fixes.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/test_if_else_while.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/test_project/complex_test.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/test_simple.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/__init__.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_cli.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_codegen_naming_and_logic.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_compiler_fixes.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_complex_scenarios.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_comprehensive_end_to_end.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_examples.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_macros.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_python_api.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_scheduledwhile.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/test_user_regression_test1.py +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tmp_local_cli_out.zip +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tmp_test1.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tmp_test1.mdl~ +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tmp_test1_confirm.mdl +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/README.md +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/language-configuration.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/package-lock.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/package.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/snippets/mdl.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/src/extension.ts +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/syntaxes/mdl.tmLanguage.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/vscode-extension/themes/mdl-color-theme.json +0 -0
- {minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/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.15
|
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
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/docs/downloads.md
RENAMED
@@ -350,17 +350,19 @@ MDL is open source software licensed under the MIT License. See the [LICENSE](ht
|
|
350
350
|
}
|
351
351
|
|
352
352
|
[data-theme="dark"] .install-code {
|
353
|
-
background: #
|
353
|
+
background: #191d23 !important;
|
354
354
|
border-color: #30363d;
|
355
355
|
}
|
356
356
|
|
357
357
|
.install-code code {
|
358
358
|
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
359
359
|
color: #24292e;
|
360
|
+
border: 0;
|
360
361
|
}
|
361
362
|
|
362
363
|
[data-theme="dark"] .install-code code {
|
363
364
|
color: #e6edf3;
|
365
|
+
background: inherit !important;
|
364
366
|
}
|
365
367
|
|
366
368
|
.releases-section {
|
@@ -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.15'
|
32
|
+
__version_tuple__ = version_tuple = (16, 0, 15)
|
33
33
|
|
34
|
-
__commit_id__ = commit_id = '
|
34
|
+
__commit_id__ = commit_id = 'g86e8af6ba'
|
@@ -819,12 +819,58 @@ class MDLCompiler:
|
|
819
819
|
else:
|
820
820
|
return str(expression)
|
821
821
|
|
822
|
+
def _normalize_operator(self, op_in: Any) -> Optional[str]:
|
823
|
+
"""Normalize operator tokens/strings to Minecraft execute/scoreboard symbols.
|
824
|
+
Returns one of: '>', '>=', '<', '<=', '==', '!=' or None if unknown.
|
825
|
+
"""
|
826
|
+
# Direct symbol passthrough
|
827
|
+
if op_in in ('>', '>=', '<', '<=', '==', '!='):
|
828
|
+
return op_in
|
829
|
+
# TokenType instances
|
830
|
+
try:
|
831
|
+
if op_in == TokenType.GREATER:
|
832
|
+
return '>'
|
833
|
+
if op_in == TokenType.GREATER_EQUAL:
|
834
|
+
return '>='
|
835
|
+
if op_in == TokenType.LESS:
|
836
|
+
return '<'
|
837
|
+
if op_in == TokenType.LESS_EQUAL:
|
838
|
+
return '<='
|
839
|
+
if op_in == TokenType.EQUAL:
|
840
|
+
return '=='
|
841
|
+
if op_in == TokenType.NOT_EQUAL:
|
842
|
+
return '!='
|
843
|
+
except Exception:
|
844
|
+
pass
|
845
|
+
# String names from bindings or parser
|
846
|
+
if isinstance(op_in, str):
|
847
|
+
upper = op_in.upper()
|
848
|
+
if upper == 'GREATER':
|
849
|
+
return '>'
|
850
|
+
if upper == 'GREATER_EQUAL':
|
851
|
+
return '>='
|
852
|
+
if upper == 'LESS':
|
853
|
+
return '<'
|
854
|
+
if upper == 'LESS_EQUAL':
|
855
|
+
return '<='
|
856
|
+
if upper == 'EQUAL' or upper == 'EQ':
|
857
|
+
return '=='
|
858
|
+
if upper == 'NOT_EQUAL' or upper == 'NE':
|
859
|
+
return '!='
|
860
|
+
return None
|
861
|
+
|
822
862
|
def _expression_to_condition(self, expression: Any) -> str:
|
823
863
|
"""Legacy: Convert expression to a naive condition string (internal use)."""
|
824
864
|
if isinstance(expression, BinaryExpression):
|
825
865
|
left = self._expression_to_value(expression.left)
|
826
866
|
right = self._expression_to_value(expression.right)
|
827
|
-
|
867
|
+
op_sym = self._normalize_operator(expression.operator)
|
868
|
+
# Minecraft scoreboard uses '=' instead of '=='
|
869
|
+
if op_sym == '==':
|
870
|
+
op_text = '='
|
871
|
+
else:
|
872
|
+
op_text = op_sym if op_sym is not None else str(expression.operator)
|
873
|
+
return f"{left} {op_text} {right}"
|
828
874
|
else:
|
829
875
|
return self._expression_to_value(expression)
|
830
876
|
|
@@ -835,12 +881,18 @@ class MDLCompiler:
|
|
835
881
|
# Default: generic expression string, no inversion
|
836
882
|
invert_then = False
|
837
883
|
|
884
|
+
# Helpers local to this method to keep concerns contained
|
885
|
+
def unwrap(e: Any) -> Any:
|
886
|
+
while isinstance(e, ParenthesizedExpression):
|
887
|
+
e = e.expression
|
888
|
+
return e
|
889
|
+
|
838
890
|
if isinstance(expression, BinaryExpression):
|
839
|
-
left = expression.left
|
840
|
-
right = expression.right
|
841
|
-
|
891
|
+
left = unwrap(expression.left)
|
892
|
+
right = unwrap(expression.right)
|
893
|
+
op_sym = self._normalize_operator(expression.operator)
|
842
894
|
# Variable vs literal
|
843
|
-
if isinstance(left, VariableSubstitution) and isinstance(right, LiteralExpression) and isinstance(right.value, (int, float)):
|
895
|
+
if op_sym and isinstance(left, VariableSubstitution) and isinstance(right, LiteralExpression) and isinstance(right.value, (int, float)):
|
844
896
|
objective = self.variables.get(left.name, left.name)
|
845
897
|
scope = left.scope.strip("<>")
|
846
898
|
# Normalize number
|
@@ -850,41 +902,47 @@ class MDLCompiler:
|
|
850
902
|
v = None
|
851
903
|
if v is not None:
|
852
904
|
n = int(v) if float(v).is_integer() else v
|
853
|
-
if
|
905
|
+
if op_sym == ">":
|
854
906
|
rng = f"{int(n)+1}.." if isinstance(n, int) else f"{v+1}.."
|
855
907
|
return (f"score {scope} {objective} matches {rng}", False)
|
856
|
-
if
|
908
|
+
if op_sym == ">=":
|
857
909
|
rng = f"{int(n)}.."
|
858
910
|
return (f"score {scope} {objective} matches {rng}", False)
|
859
|
-
if
|
911
|
+
if op_sym == "<":
|
860
912
|
rng = f"..{int(n)-1}"
|
861
913
|
return (f"score {scope} {objective} matches {rng}", False)
|
862
|
-
if
|
914
|
+
if op_sym == "<=":
|
863
915
|
rng = f"..{int(n)}"
|
864
916
|
return (f"score {scope} {objective} matches {rng}", False)
|
865
|
-
if
|
917
|
+
if op_sym == "==":
|
866
918
|
rng = f"{int(n)}"
|
867
919
|
return (f"score {scope} {objective} matches {rng}", False)
|
868
|
-
if
|
920
|
+
if op_sym == "!=":
|
869
921
|
rng = f"{int(n)}"
|
870
922
|
return (f"score {scope} {objective} matches {rng}", True)
|
923
|
+
# Literal vs variable (swap sides)
|
924
|
+
if op_sym and isinstance(left, LiteralExpression) and isinstance(left.value, (int, float)) and isinstance(right, VariableSubstitution):
|
925
|
+
# Swap by inverting the operator appropriately, then reuse logic
|
926
|
+
invert_map = {
|
927
|
+
">": "<",
|
928
|
+
">=": "<=",
|
929
|
+
"<": ">",
|
930
|
+
"<=": ">=",
|
931
|
+
"==": "==",
|
932
|
+
"!=": "!="
|
933
|
+
}
|
934
|
+
swapped = BinaryExpression(left=right, operator=invert_map.get(op_sym, op_sym), right=left)
|
935
|
+
return self._build_condition(swapped)
|
871
936
|
# Variable vs variable
|
872
|
-
if isinstance(left, VariableSubstitution) and isinstance(right, VariableSubstitution):
|
937
|
+
if op_sym and isinstance(left, VariableSubstitution) and isinstance(right, VariableSubstitution):
|
873
938
|
lobj = self.variables.get(left.name, left.name)
|
874
939
|
lscope = left.scope.strip("<>")
|
875
940
|
robj = self.variables.get(right.name, right.name)
|
876
941
|
rscope = right.scope.strip("<>")
|
877
|
-
if
|
878
|
-
|
879
|
-
TokenType.GREATER: ">",
|
880
|
-
TokenType.GREATER_EQUAL: ">=",
|
881
|
-
TokenType.LESS: "<",
|
882
|
-
TokenType.LESS_EQUAL: "<=",
|
883
|
-
TokenType.EQUAL: "="
|
884
|
-
}
|
885
|
-
comp = comp_map[op]
|
942
|
+
if op_sym in (">", ">=", "<", "<=", "=="):
|
943
|
+
comp = op_sym if op_sym != "==" else "="
|
886
944
|
return (f"score {lscope} {lobj} {comp} {rscope} {robj}", False)
|
887
|
-
if
|
945
|
+
if op_sym == "!=":
|
888
946
|
# Use equals with inversion
|
889
947
|
return (f"score {lscope} {lobj} = {rscope} {robj}", True)
|
890
948
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 16.0.
|
3
|
+
Version: 16.0.15
|
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
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/tests/run_all_tests.py
RENAMED
@@ -12,7 +12,11 @@ from pathlib import Path
|
|
12
12
|
|
13
13
|
|
14
14
|
def run_test_suite(name, command, description=""):
|
15
|
-
"""Run a test suite and return results.
|
15
|
+
"""Run a test suite and return results.
|
16
|
+
|
17
|
+
If command is a list, execute without a shell to avoid shell expansions.
|
18
|
+
If command is a string, execute via the shell (backward compatible).
|
19
|
+
"""
|
16
20
|
print(f"\n{'='*60}")
|
17
21
|
print(f"Running {name}")
|
18
22
|
if description:
|
@@ -22,7 +26,8 @@ def run_test_suite(name, command, description=""):
|
|
22
26
|
start_time = time.time()
|
23
27
|
|
24
28
|
try:
|
25
|
-
|
29
|
+
use_shell = isinstance(command, str)
|
30
|
+
result = subprocess.run(command, shell=use_shell, capture_output=True, text=True)
|
26
31
|
duration = time.time() - start_time
|
27
32
|
|
28
33
|
if result.returncode == 0:
|
@@ -64,11 +69,16 @@ def main():
|
|
64
69
|
has_cov = importlib.util.find_spec("pytest_cov") is not None
|
65
70
|
except Exception:
|
66
71
|
has_cov = False
|
67
|
-
base_cmd = "
|
68
|
-
|
72
|
+
base_cmd = [sys.executable, "-m", "pytest", "tests/", "-v"]
|
73
|
+
if has_cov:
|
74
|
+
base_cmd += [
|
75
|
+
"--cov=minecraft_datapack_language",
|
76
|
+
"--cov-report=term-missing",
|
77
|
+
"--cov-report=html:htmlcov",
|
78
|
+
]
|
69
79
|
pytest_result = run_test_suite(
|
70
80
|
"Pytest Suite",
|
71
|
-
|
81
|
+
base_cmd,
|
72
82
|
"Comprehensive pytest suite" + (" with coverage" if has_cov else "")
|
73
83
|
)
|
74
84
|
results.append(("Pytest", pytest_result))
|
@@ -87,7 +97,7 @@ def main():
|
|
87
97
|
if test_path.exists():
|
88
98
|
result = run_test_suite(
|
89
99
|
f"Pytest {test_file}",
|
90
|
-
|
100
|
+
[sys.executable, "-m", "pytest", "-q", f"tests/{test_file}"],
|
91
101
|
description
|
92
102
|
)
|
93
103
|
results.append((test_file, result))
|
@@ -100,7 +110,11 @@ def main():
|
|
100
110
|
# Test complex scenarios
|
101
111
|
complex_result = run_test_suite(
|
102
112
|
"Complex Scenarios Compilation",
|
103
|
-
|
113
|
+
[
|
114
|
+
sys.executable,
|
115
|
+
"-c",
|
116
|
+
"from minecraft_datapack_language.mdl_parser import MDLParser; from minecraft_datapack_language.mdl_compiler import MDLCompiler; import tempfile; from pathlib import Path; source = '''pack \"test\" \"Test pack\" 82; namespace \"test\"; var num counter<@s> = 0; var num health<@s> = 20; var num bonus<@s> = 5; function test:complex_math<@s> { counter<@s> = ($counter<@s>$ + $health<@s>$) * $bonus<@s>$; }'''; parser = MDLParser(); ast = parser.parse(source); compiler = MDLCompiler('temp_output'); compiler.compile(ast); print('Complex expressions compilation successful')",
|
117
|
+
],
|
104
118
|
"Test complex mathematical expressions compilation"
|
105
119
|
)
|
106
120
|
results.append(("Complex Expressions", complex_result))
|
@@ -108,7 +122,11 @@ def main():
|
|
108
122
|
# Test control flow
|
109
123
|
control_result = run_test_suite(
|
110
124
|
"Control Flow Compilation",
|
111
|
-
|
125
|
+
[
|
126
|
+
sys.executable,
|
127
|
+
"-c",
|
128
|
+
"from minecraft_datapack_language.mdl_parser import MDLParser; from minecraft_datapack_language.mdl_compiler import MDLCompiler; import tempfile; from pathlib import Path; source = '''pack \"test\" \"Test pack\" 82; namespace \"test\"; var num health<@s> = 20; function test:health_check<@s> { if $health<@s>$ < 10 { say \"Health is low!\"; } else { say \"Health is good!\"; } }'''; parser = MDLParser(); ast = parser.parse(source); compiler = MDLCompiler('temp_output'); compiler.compile(ast); print('Control flow compilation successful')",
|
129
|
+
],
|
112
130
|
"Test if/else control flow compilation"
|
113
131
|
)
|
114
132
|
results.append(("Control Flow", control_result))
|
@@ -116,7 +134,11 @@ def main():
|
|
116
134
|
# Test function execution
|
117
135
|
function_result = run_test_suite(
|
118
136
|
"Function Execution Compilation",
|
119
|
-
|
137
|
+
[
|
138
|
+
sys.executable,
|
139
|
+
"-c",
|
140
|
+
"from minecraft_datapack_language.mdl_parser import MDLParser; from minecraft_datapack_language.mdl_compiler import MDLCompiler; import tempfile; from pathlib import Path; source = '''pack \"test\" \"Test pack\" 82; namespace \"test\"; function test:helper<@s> { say \"Helper function!\"; } function test:main<@s> { exec test:helper<@s>; }'''; parser = MDLParser(); ast = parser.parse(source); compiler = MDLCompiler('temp_output'); compiler.compile(ast); print('Function execution compilation successful')",
|
141
|
+
],
|
120
142
|
"Test function execution with scopes"
|
121
143
|
)
|
122
144
|
results.append(("Function Execution", function_result))
|
@@ -125,7 +147,11 @@ def main():
|
|
125
147
|
print("\nTesting Python bindings...")
|
126
148
|
api_result = run_test_suite(
|
127
149
|
"Python Bindings Basic",
|
128
|
-
|
150
|
+
[
|
151
|
+
sys.executable,
|
152
|
+
"-c",
|
153
|
+
"from minecraft_datapack_language import Pack; import tempfile, shutil; from pathlib import Path; td=tempfile.mkdtemp(); p=Pack('Test','Test pack',82); ns=p.namespace('test'); ns.function('hello','say Hello World!'); p.build(td); output=Path(td)/'data'/'test'/'function'/'hello.mcfunction'; assert output.exists(); print('Python API test successful'); shutil.rmtree(td)",
|
154
|
+
],
|
129
155
|
"Test basic Python bindings functionality"
|
130
156
|
)
|
131
157
|
results.append(("Python Bindings", api_result))
|
@@ -134,7 +160,7 @@ def main():
|
|
134
160
|
print("\nTesting CLI...")
|
135
161
|
cli_result = run_test_suite(
|
136
162
|
"CLI Help",
|
137
|
-
"
|
163
|
+
[sys.executable, "-m", "minecraft_datapack_language.cli", "--help"],
|
138
164
|
"Test CLI help command"
|
139
165
|
)
|
140
166
|
results.append(("CLI Help", cli_result))
|
@@ -56,3 +56,56 @@ def test_bindings_complex_expression():
|
|
56
56
|
# Temp ops are inlined now; footer removed
|
57
57
|
assert 'temp_' in text
|
58
58
|
|
59
|
+
|
60
|
+
def test_bindings_equality_and_inequality_symbols():
|
61
|
+
p = Pack("Bindings3", "desc", 82)
|
62
|
+
ns = p.namespace("cmp")
|
63
|
+
|
64
|
+
def build(fb):
|
65
|
+
fb.declare_var("a", "<@s>", 1)
|
66
|
+
fb.declare_var("b", "<@s>", 1)
|
67
|
+
# Use symbol operators that previously leaked into output
|
68
|
+
cond_eq = binop(var_read("a", "<@s>"), "==", var_read("b", "<@s>"))
|
69
|
+
fb.if_(cond_eq, lambda t: t.say("eq"), lambda e: e.say("neq"))
|
70
|
+
cond_ne = binop(var_read("a", "<@s>"), "!=", var_read("b", "<@s>"))
|
71
|
+
fb.if_(cond_ne, lambda t: t.say("ne_true"), lambda e: e.say("ne_false"))
|
72
|
+
|
73
|
+
ns.function("main", build)
|
74
|
+
|
75
|
+
with tempfile.TemporaryDirectory() as td:
|
76
|
+
p.build(td)
|
77
|
+
func = Path(td) / 'data' / 'cmp' / 'function'
|
78
|
+
main = (func / 'main.mcfunction').read_text()
|
79
|
+
# Equality should map to '=' and inequality should invert the execute
|
80
|
+
assert 'execute if score @s a = @s b' in main
|
81
|
+
assert 'execute unless score @s a = @s b' in main
|
82
|
+
# Ensure invalid raw operators are not present
|
83
|
+
assert '==' not in main
|
84
|
+
assert '!=' not in main
|
85
|
+
|
86
|
+
|
87
|
+
def test_bindings_equality_literal_and_not_equal_word():
|
88
|
+
p = Pack("Bindings4", "desc", 82)
|
89
|
+
ns = p.namespace("lit")
|
90
|
+
|
91
|
+
def build(fb):
|
92
|
+
fb.declare_var("x", "<@s>", 5)
|
93
|
+
# Symbol equality against literal and word-form NOT_EQUAL
|
94
|
+
cond_eq = binop(var_read("x", "<@s>"), "==", num(5))
|
95
|
+
fb.if_(cond_eq, lambda t: t.say("is5"))
|
96
|
+
cond_ne = binop(var_read("x", "<@s>"), "NOT_EQUAL", num(7))
|
97
|
+
fb.if_(cond_ne, lambda t: t.say("not7"))
|
98
|
+
|
99
|
+
ns.function("main", build)
|
100
|
+
|
101
|
+
with tempfile.TemporaryDirectory() as td:
|
102
|
+
p.build(td)
|
103
|
+
func = Path(td) / 'data' / 'lit' / 'function'
|
104
|
+
main = (func / 'main.mcfunction').read_text()
|
105
|
+
# Equality to literal uses matches N
|
106
|
+
assert 'execute if score @s x matches 5' in main
|
107
|
+
# Not equal to literal uses unless matches N
|
108
|
+
assert 'execute unless score @s x matches 7' in main
|
109
|
+
# Ensure invalid raw operators are not present
|
110
|
+
assert '==' not in main
|
111
|
+
assert '!=' not in main
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.cursor/rules/aispec.mdc
RENAMED
File without changes
|
File without changes
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.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.13 → minecraft_datapack_language-16.0.15}/.tmp_compile_bwe.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.tmp_compile_bwe2.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.tmp_compile_bwe3.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.13 → minecraft_datapack_language-16.0.15}/.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
|