minecraft-datapack-language 16.0.17__tar.gz → 16.0.19__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.17 → minecraft_datapack_language-16.0.19}/PKG-INFO +1 -1
- minecraft_datapack_language-16.0.19/docs/_data/version.yml +3 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/examples.md +101 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/language-reference.md +32 -1
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/_version.py +3 -3
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/cli.py +2 -35
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/mdl_compiler.py +66 -1
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/mdl_parser.py +2 -2
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language.egg-info/PKG-INFO +1 -1
- minecraft_datapack_language-16.0.17/docs/_data/version.yml +0 -3
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.cursor/rules/aispec.mdc +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.github/actions/mdl-compile/action.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.github/workflows/ci.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.github/workflows/docs.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.github/workflows/pypi.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.github/workflows/release.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.github/workflows/update-website-version.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.gitignore +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/load1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/main__else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/main__if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/testfunc.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/data/test1/function/testfunc__while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/load1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/main__else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/main__if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/testfunc.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/data/test1/function/testfunc__while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.mdl-out-test1-confirm/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.tmp_compile_bwe.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.tmp_compile_bwe2.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.tmp_compile_bwe3.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.tmp_verify_loops.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/LICENSE +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/Makefile +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/README.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/advancements/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/advancements/first_spell.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/advancements/other_advancement.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/advancements/test_advancement.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/comprehensive_error_test.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/complex_scopes/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/complex_scopes/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_basic_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_complex_if_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_complex_expressions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_complex_expressions_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_variable_substitution_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_with_raw_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_with_scopes_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_with_tellraw_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_with_tellraw_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_control_with_tellraw_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_if_else_else_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_if_else_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_else_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_else_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_2_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/comprehensive_control_test/function/test_nested_if_if_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/control_test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/control_test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/control_test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/if_test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/if_test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/conditional_demo_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/conditional_demo_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/conditional_demo_if_3_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/conditional_demo_if_3_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/conditional_demo_if_3_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/conditional_demo_if_3_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/countdown_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/countdown_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/increase_tick_per_player_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/increase_tick_per_player_if_1_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/loop_demo_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/loop_demo_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/loop_demo_while_body_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/loop_demo_while_body_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/loop_demo_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_else_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_7.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/main_while_body_7.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/scoreboard_demo_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/scoreboard_demo_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/scoreboard_demo_while_body_3_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/start_game_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/start_game_if_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/start_game_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/start_game_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_while_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_while_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_while_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_basic_while_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_if_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_if_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_body_2_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_body_2_else_1_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_body_2_if_1_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_nested_control_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_scope_scenarios_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_scope_scenarios_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_scope_scenarios_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_scope_scenarios_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_while_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_while_while_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_while_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_complex_while_while_body_6.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_complex_expressions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_complex_expressions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_complex_expressions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_complex_expressions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_error_handling_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_error_handling_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_error_handling_while_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_error_handling_while_body_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_body_4_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_performance_while_body_4_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_scoped_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_scoped_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_scoped_functions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_scoped_functions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_variable_substitution_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_variable_substitution_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_variable_substitution_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_variable_substitution_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_assignments_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_assignments_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_assignments_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_assignments_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_functions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_functions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_functions_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_functions_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_raw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_raw_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_raw_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_scopes_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_scopes_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_scopes_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_scopes_if_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_tellraw_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_tellraw_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_tellraw_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_tellraw_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_control_with_tellraw_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_if_else_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_if_else_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_if_else_else_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_if_else_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_if_else_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_if_else_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_else_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_else_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_else_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_1_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_1_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_1_if_0_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_1_if_0_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_2_else_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_nested_if_if_2_if_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_while_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_while_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_while_body_4.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_conditionals_while_body_5.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_interactions_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_interactions_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_scope_interactions_if_3.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_while_break_while_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_while_break_while_body_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_while_break_while_body_2_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/test_while_break_while_body_2_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/tick_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/tick_if_2.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/tick_if_2_while_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/tick_if_2_while_body_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/weapon_effects_else_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test/function/weapon_effects_if_1.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test_final_template_fixed/function/main_else_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/test_final_template_fixed/function/main_if_8.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/while_test/function/main_while_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/data/while_test/function/main_while_body_0.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/dist.zip +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/.env +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/404.html +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/Gemfile +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/README.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_config.yml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/cli-reference.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/contributing.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/docs-hub.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/documentation.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/getting-started.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/multi-file-projects.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/python-bindings.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_docs/vscode-extension.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_includes/head-custom.html +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_includes/navigation.html +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_layouts/default.html +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_layouts/page.html +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_plugins/test_version.rb +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/_plugins/version_reader.rb +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/assets/css/style.css +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/docs.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/downloads.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/icons/icon-64.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/docs/index.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/examples/hello_world.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/examples/macros_example.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/examples/scope_examples.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/examples/simple_counter.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/icons/icon-64.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/item_modifiers/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/item_modifiers/enchant_tool.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/item_modifiers/test_item_modifier.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/loot_tables/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/loot_tables/epic_loot.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/loot_tables/main_loot.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/loot_tables/test_loot.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/mdllocal.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/__init__.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/ast_nodes.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/dir_map.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/mdl_errors.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/mdl_lexer.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/mdl_linter.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/python_api.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language/utils.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language.egg-info/SOURCES.txt +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language.egg-info/dependency_links.txt +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language.egg-info/entry_points.txt +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language.egg-info/requires.txt +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/minecraft_datapack_language.egg-info/top_level.txt +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/multi_scope_example.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/my_awesome_pack/README.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/my_awesome_pack/minecraft_datapack_language.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/predicates/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/predicates/has_mana.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/predicates/other_predicate.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/predicates/test_predicate.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/pyproject.toml +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/pytest.ini +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/custom_pickaxe.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/first.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/inlet.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/main_recipe.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/outlet.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/pipe.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/second.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/test_recipe.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/recipes/wrench.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scope_demo.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scoreboard_test.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/UpdateMDL.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/bootstrap.ps1 +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/bootstrap.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/build_pkg.ps1 +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/build_pkg.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/dev_build.ps1 +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/dev_build.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/dev_setup.ps1 +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/dev_setup.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/git-bash/bootstrap-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/git-bash/build_pkg-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/git-bash/test_cli-gitbash.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/release.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/test_cli.ps1 +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/test_cli.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/test_dev.ps1 +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/test_dev.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/update_docs.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/scripts/update_version_info.sh +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/setup.cfg +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/structures/diamond_sword.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/structures/test_structure.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/structures/workshop.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tellraw_variables_test.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/temp_output/data/minecraft/tags/function/load.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/temp_output/data/test/function/helper.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/temp_output/data/test/function/load.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/temp_output/data/test/function/main.mcfunction +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/temp_output/pack.mcmeta +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/test_all_registry.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/test_complex_scenarios.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/test_comprehensive_fixes.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/test_if_else_while.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/test_project/complex_test.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/test_simple.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/__init__.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/run_all_tests.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_cli.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_codegen_naming_and_logic.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_compiler_fixes.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_complex_scenarios.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_comprehensive_end_to_end.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_examples.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_macros.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_python_api.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_python_bindings.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_scheduledwhile.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tests/test_user_regression_test1.py +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tmp_local_cli_out.zip +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tmp_test1.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tmp_test1.mdl~ +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/tmp_test1_confirm.mdl +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/README.md +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/favicon-16.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/favicon-32.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/favicon-48.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/favicon-64.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/icon-1024.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/icon-128.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/icon-256.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/icons/icon-512.png +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/language-configuration.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/package-lock.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/package.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/snippets/mdl.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/src/extension.ts +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/syntaxes/mdl.tmLanguage.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/vscode-extension/themes/mdl-color-theme.json +0 -0
- {minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/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.19
|
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.17 → minecraft_datapack_language-16.0.19}/docs/_docs/examples.md
RENAMED
@@ -22,6 +22,107 @@ function hello:main {
|
|
22
22
|
on_load hello:main;
|
23
23
|
```
|
24
24
|
|
25
|
+
## Logical Operators and Precedence
|
26
|
+
|
27
|
+
```mdl
|
28
|
+
pack "logicalops" "Generated by MDL CLI" 82;
|
29
|
+
namespace "logicalops";
|
30
|
+
|
31
|
+
// Variables
|
32
|
+
var num a<@s> = 0;
|
33
|
+
var num b<@s> = 0;
|
34
|
+
|
35
|
+
// Main function
|
36
|
+
function logicalops:main {
|
37
|
+
say "Hello from logicalops!";
|
38
|
+
exec logicalops:add<@a>;
|
39
|
+
}
|
40
|
+
|
41
|
+
function logicalops:init {
|
42
|
+
a<@s> = 1;
|
43
|
+
b<@s> = 2;
|
44
|
+
}
|
45
|
+
|
46
|
+
function logicalops:add {
|
47
|
+
var result<@s> = $a<@s>$ + $b<@s>$;
|
48
|
+
say "Result: $result$";
|
49
|
+
}
|
50
|
+
|
51
|
+
function logicalops:subtract {
|
52
|
+
var result<@s> = $a<@s>$ - $b<@s>$;
|
53
|
+
say "Result: $result$";
|
54
|
+
}
|
55
|
+
|
56
|
+
function logicalops:multiply {
|
57
|
+
var result<@s> = $a<@s>$ * $b<@s>$;
|
58
|
+
say "Result: $result$";
|
59
|
+
}
|
60
|
+
|
61
|
+
function logicalops:divide {
|
62
|
+
var result<@s> = $a<@s>$ / $b<@s>$;
|
63
|
+
say "Result: $result$";
|
64
|
+
}
|
65
|
+
|
66
|
+
function logicalops:andop {
|
67
|
+
if $a<@s>$ > 0 && $b<@s>$ > 0 {
|
68
|
+
say "Both are greater than 0";
|
69
|
+
} else {
|
70
|
+
say "At least one is not greater than 0";
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
function logicalops:orop {
|
75
|
+
if $a<@s>$ > 0 || $b<@s>$ > 0 {
|
76
|
+
say "At least one is greater than 0";
|
77
|
+
} else {
|
78
|
+
say "Both are not greater than 0";
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
function logicalops:notop {
|
83
|
+
if !$a<@s>$ > 0 {
|
84
|
+
say "a is not greater than 0";
|
85
|
+
} else {
|
86
|
+
say "a is greater than 0";
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
function logicalops:whileloop {
|
91
|
+
a<@s> = 0;
|
92
|
+
while $a<@s>$ < 10 {
|
93
|
+
say "a is less than 10";
|
94
|
+
a<@s> = $a<@s>$ + 1;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
function logicalops:scheduledwhileloop {
|
99
|
+
// the scheduledwhile is just like the while loop, but it is scheduled to run every tick. This is useful for large calculations that would exceed the command recursion limit.
|
100
|
+
a<@s> = 0;
|
101
|
+
scheduledwhile $a<@s>$ < 10 {
|
102
|
+
say "a is less than 10";
|
103
|
+
a<@s> = $a<@s>$ + 1;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
function logicalops:complexops {
|
108
|
+
var c<@s> = 5;
|
109
|
+
var d<@s> = 10;
|
110
|
+
var e<@s> = 15;
|
111
|
+
var f<@s> = 20;
|
112
|
+
var g<@s> = 2;
|
113
|
+
var h<@s> = 0;
|
114
|
+
h<@s> = $h<@s>$ - 1;
|
115
|
+
|
116
|
+
var result<@s> = ($c<@s>$ + $d<@s>$ - $e<@s>$ * $f<@s>$ / $g<@s>$) * $h<@s>$;
|
117
|
+
|
118
|
+
if !$result<@s>$ == 135 {
|
119
|
+
say "Result is not 135, there is an issue!";
|
120
|
+
} else {
|
121
|
+
say "Result is -135, everything is good!";
|
122
|
+
}
|
123
|
+
}
|
124
|
+
```
|
125
|
+
|
25
126
|
## Counter with Scoped Variables
|
26
127
|
|
27
128
|
Demonstrates variables with different scopes:
|
@@ -314,6 +314,11 @@ exec utils:helper; // Execute from different namesp
|
|
314
314
|
< (less than)
|
315
315
|
>= (greater than or equal)
|
316
316
|
<= (less than or equal)
|
317
|
+
|
318
|
+
// Logical
|
319
|
+
&& (logical AND)
|
320
|
+
|| (logical OR)
|
321
|
+
! (logical NOT)
|
317
322
|
```
|
318
323
|
|
319
324
|
### Expression Examples
|
@@ -324,10 +329,29 @@ player_score<@s> = $x<@a>$ + $y<@p>$ * $z<@r>$;
|
|
324
329
|
// Parentheses for precedence
|
325
330
|
player_score<@s> = ($x<@s>$ + $y<@s>$) * 2;
|
326
331
|
|
327
|
-
//
|
332
|
+
// Comparisons
|
328
333
|
if $score<@s>$ > 10 {
|
329
334
|
exec game:reward;
|
330
335
|
}
|
336
|
+
|
337
|
+
// Logical operators
|
338
|
+
if $a<@s>$ > 0 && $b<@s>$ > 0 {
|
339
|
+
say "Both are greater than 0";
|
340
|
+
}
|
341
|
+
|
342
|
+
if $a<@s>$ > 0 || $b<@s>$ > 0 {
|
343
|
+
say "At least one is greater than 0";
|
344
|
+
}
|
345
|
+
|
346
|
+
// NOT negates the entire comparison when used like: !$a<@s>$ > 0
|
347
|
+
if !$a<@s>$ > 0 {
|
348
|
+
say "a is not greater than 0";
|
349
|
+
}
|
350
|
+
|
351
|
+
// Complex logical expression with parentheses
|
352
|
+
if ($a<@s>$ > 0 && $b<@s>$ > 0) || $c<@s>$ > 0 {
|
353
|
+
say "Condition satisfied";
|
354
|
+
}
|
331
355
|
```
|
332
356
|
|
333
357
|
## Reserved Names
|
@@ -1224,6 +1248,13 @@ def _parse_comparison(self) -> Any:
|
|
1224
1248
|
3. **Terms**: Addition, subtraction
|
1225
1249
|
4. **Comparisons**: Greater, less, equal, not equal
|
1226
1250
|
|
1251
|
+
### Logical Operators - Compilation Notes
|
1252
|
+
|
1253
|
+
- Logical expressions compile into temporary boolean scoreboard values (1 true, 0 false) checked via `execute if/unless`.
|
1254
|
+
- `&&` is compiled as a chain of `execute if` conditions; `||` sets the result true if either operand is true.
|
1255
|
+
- `!` negates the entire operand. For comparisons like `!$a<@s>$ > 0`, the comparison is evaluated first, then negated.
|
1256
|
+
- `!=` is compiled using equality with inversion (`unless score ... = ...`) because Minecraft lacks a direct not-equal comparator.
|
1257
|
+
|
1227
1258
|
### AST Traversal and Code Generation
|
1228
1259
|
|
1229
1260
|
The AST is designed to support efficient code generation:
|
@@ -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.19'
|
32
|
+
__version_tuple__ = version_tuple = (16, 0, 19)
|
33
33
|
|
34
|
-
__commit_id__ = commit_id = '
|
34
|
+
__commit_id__ = commit_id = 'gabc769e06'
|
@@ -235,32 +235,14 @@ def new_command(args):
|
|
235
235
|
template_content = f'''pack "{pack_name}" "Generated by MDL CLI" {pack_format};
|
236
236
|
namespace "{project_name}";
|
237
237
|
|
238
|
-
// Variables
|
239
|
-
var num counter<@s> = 0;
|
240
|
-
var num global_timer<@a> = 0;
|
241
|
-
|
242
|
-
// Main function
|
243
238
|
function {project_name}:main {{
|
244
239
|
say "Hello from {project_name}!";
|
245
|
-
|
246
|
-
// Variable example
|
247
|
-
counter<@s> = 10;
|
248
|
-
say "Counter: $counter<@s>$";
|
249
|
-
|
250
|
-
// Conditional example
|
251
|
-
if $counter<@s>$ > 5 {{
|
252
|
-
say "High counter!";
|
253
|
-
}} else {{
|
254
|
-
say "Try again!";
|
255
|
-
}}
|
256
240
|
}}
|
257
241
|
|
258
|
-
// Init function (avoid reserved names like 'load' or 'tick')
|
259
242
|
function {project_name}:init {{
|
260
|
-
say "Datapack initialized
|
243
|
+
say "Datapack initialized!";
|
261
244
|
}}
|
262
245
|
|
263
|
-
// Hook to run on load
|
264
246
|
on_load {project_name}:init;
|
265
247
|
'''
|
266
248
|
|
@@ -285,24 +267,9 @@ A Minecraft datapack created with MDL (Minecraft Datapack Language).
|
|
285
267
|
- Run `/reload` in-game
|
286
268
|
|
287
269
|
3. **Run the main function:**
|
288
|
-
```
|
270
|
+
```
|
289
271
|
/function {project_name}:main
|
290
272
|
```
|
291
|
-
|
292
|
-
## Features
|
293
|
-
|
294
|
-
- **Variables**: Player-scoped counter and global timer
|
295
|
-
- **Control Flow**: If/else statements
|
296
|
-
- **Functions**: Main function and load hook
|
297
|
-
- **Automatic Execution**: Runs on datapack load
|
298
|
-
|
299
|
-
## Development
|
300
|
-
|
301
|
-
- Edit `{project_name}.mdl` to modify the datapack
|
302
|
-
- Use `mdl check {project_name}.mdl` to validate syntax
|
303
|
-
- Use `mdl build --mdl {project_name}.mdl -o dist` to rebuild
|
304
|
-
|
305
|
-
For more information, visit: https://www.mcmdl.com
|
306
273
|
'''
|
307
274
|
|
308
275
|
with open(readme_file, 'w', encoding='utf-8') as f:
|
@@ -12,7 +12,7 @@ from .ast_nodes import (
|
|
12
12
|
Program, PackDeclaration, NamespaceDeclaration, TagDeclaration,
|
13
13
|
VariableDeclaration, VariableAssignment, VariableSubstitution, FunctionDeclaration,
|
14
14
|
FunctionCall, IfStatement, WhileLoop, ScheduledWhileLoop, HookDeclaration, RawBlock, MacroLine,
|
15
|
-
SayCommand, BinaryExpression, LiteralExpression, ParenthesizedExpression
|
15
|
+
SayCommand, BinaryExpression, UnaryExpression, LiteralExpression, ParenthesizedExpression
|
16
16
|
)
|
17
17
|
from .dir_map import get_dir_map, DirMap
|
18
18
|
from .mdl_errors import MDLCompilerError
|
@@ -809,6 +809,42 @@ class MDLCompiler:
|
|
809
809
|
objective = self.variables.get(expression.name, expression.name)
|
810
810
|
scope = expression.scope.strip("<>")
|
811
811
|
return f"score {scope} {objective}"
|
812
|
+
elif isinstance(expression, UnaryExpression):
|
813
|
+
# Handle logical NOT elsewhere; here support unary minus for arithmetic
|
814
|
+
op = self._normalize_operator(expression.operator)
|
815
|
+
if op == '!':
|
816
|
+
# For values, ! is not meaningful; fallback to boolean temp
|
817
|
+
bool_var = self._compile_boolean_expression(expression)
|
818
|
+
return f"score @s {bool_var}"
|
819
|
+
if op == '-':
|
820
|
+
# If operand is a literal, constant-fold
|
821
|
+
if isinstance(expression.operand, LiteralExpression) and isinstance(expression.operand.value, (int, float)):
|
822
|
+
try:
|
823
|
+
v = float(expression.operand.value)
|
824
|
+
v = -v
|
825
|
+
if v.is_integer():
|
826
|
+
return str(int(v))
|
827
|
+
return str(v)
|
828
|
+
except Exception:
|
829
|
+
pass
|
830
|
+
# Otherwise, compute 0 - <operand>
|
831
|
+
rhs = self._expression_to_value(expression.operand)
|
832
|
+
temp_var = self._generate_temp_variable_name()
|
833
|
+
self._store_temp_command(f"scoreboard players set @s {temp_var} 0")
|
834
|
+
if isinstance(expression.operand, VariableSubstitution) or (isinstance(rhs, str) and rhs.startswith("score ")):
|
835
|
+
parts = str(rhs).split()
|
836
|
+
if len(parts) >= 3:
|
837
|
+
scope = parts[1]
|
838
|
+
obj = parts[2]
|
839
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} -= {scope} {obj}")
|
840
|
+
else:
|
841
|
+
self._store_temp_command(f"scoreboard players operation @s {temp_var} -= {rhs}")
|
842
|
+
else:
|
843
|
+
# rhs is a literal number string
|
844
|
+
self._store_temp_command(f"scoreboard players remove @s {temp_var} {rhs}")
|
845
|
+
return f"score @s {temp_var}"
|
846
|
+
# Fallback
|
847
|
+
return self._expression_to_value(expression.operand)
|
812
848
|
elif isinstance(expression, BinaryExpression):
|
813
849
|
# For complex expressions, we need to use temporary variables
|
814
850
|
temp_var = self._generate_temp_variable_name()
|
@@ -898,6 +934,18 @@ class MDLCompiler:
|
|
898
934
|
def unwrap(e: Any) -> Any:
|
899
935
|
while isinstance(e, ParenthesizedExpression):
|
900
936
|
e = e.expression
|
937
|
+
# Collapse unary minus literal for better comparisons
|
938
|
+
try:
|
939
|
+
from .ast_nodes import UnaryExpression as _UExpr, LiteralExpression as _LExpr
|
940
|
+
if isinstance(e, _UExpr) and self._normalize_operator(getattr(e, 'operator', None)) == '-' and isinstance(e.operand, _LExpr) and isinstance(e.operand.value, (int, float)):
|
941
|
+
try:
|
942
|
+
v = float(e.operand.value)
|
943
|
+
v = -v
|
944
|
+
return LiteralExpression(value=v, type="number")
|
945
|
+
except Exception:
|
946
|
+
return e
|
947
|
+
except Exception:
|
948
|
+
pass
|
901
949
|
return e
|
902
950
|
|
903
951
|
# Handle logical operators by compiling to a boolean temp scoreboard var
|
@@ -915,6 +963,23 @@ class MDLCompiler:
|
|
915
963
|
left = unwrap(expression.left)
|
916
964
|
right = unwrap(expression.right)
|
917
965
|
op_sym = self._normalize_operator(expression.operator)
|
966
|
+
# Treat a leading logical NOT on a comparator operand as negating the entire comparison
|
967
|
+
# Example: !$a > 0 => NOT ( $a > 0 )
|
968
|
+
if op_sym in (">", ">=", "<", "<=", "==", "!="):
|
969
|
+
try:
|
970
|
+
from .ast_nodes import UnaryExpression as _UnaryExpr
|
971
|
+
except Exception:
|
972
|
+
_UnaryExpr = None
|
973
|
+
if _UnaryExpr is not None and isinstance(left, _UnaryExpr) and self._normalize_operator(getattr(left, 'operator', None)) == '!':
|
974
|
+
# Build condition for (left.operand op right) and invert
|
975
|
+
inner = BinaryExpression(left=left.operand, operator=expression.operator, right=right)
|
976
|
+
cond_str, inv = self._build_condition(inner)
|
977
|
+
return (cond_str, not inv)
|
978
|
+
if _UnaryExpr is not None and isinstance(right, _UnaryExpr) and self._normalize_operator(getattr(right, 'operator', None)) == '!':
|
979
|
+
# Build condition for (left op right.operand) and invert
|
980
|
+
inner = BinaryExpression(left=left, operator=expression.operator, right=right.operand)
|
981
|
+
cond_str, inv = self._build_condition(inner)
|
982
|
+
return (cond_str, not inv)
|
918
983
|
# Variable vs literal
|
919
984
|
if op_sym and isinstance(left, VariableSubstitution) and isinstance(right, LiteralExpression) and isinstance(right.value, (int, float)):
|
920
985
|
objective = self.variables.get(left.name, left.name)
|
@@ -527,8 +527,8 @@ class MDLParser:
|
|
527
527
|
return expr
|
528
528
|
|
529
529
|
def _parse_unary(self) -> Any:
|
530
|
-
"""Parse unary expressions (logical NOT)."""
|
531
|
-
if not self._is_at_end() and self._peek().type in [TokenType.NOT]:
|
530
|
+
"""Parse unary expressions (logical NOT, unary minus)."""
|
531
|
+
if not self._is_at_end() and self._peek().type in [TokenType.NOT, TokenType.MINUS]:
|
532
532
|
operator = self._peek().type
|
533
533
|
self._advance()
|
534
534
|
operand = self._parse_unary()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 16.0.
|
3
|
+
Version: 16.0.19
|
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.17 → minecraft_datapack_language-16.0.19}/.cursor/rules/aispec.mdc
RENAMED
File without changes
|
File without changes
|
{minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.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.17 → minecraft_datapack_language-16.0.19}/.tmp_compile_bwe.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.tmp_compile_bwe2.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.tmp_compile_bwe3.py
RENAMED
File without changes
|
{minecraft_datapack_language-16.0.17 → minecraft_datapack_language-16.0.19}/.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
|