redscript-mc 2.6.2 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +11 -0
- package/CHANGELOG.md +18 -9
- package/RELEASE_NOTES.md +74 -0
- package/ROADMAP.md +131 -167
- package/benchmarks/_shared.ts +468 -0
- package/benchmarks/baseline.json +2816 -0
- package/benchmarks/baseline.md +13 -0
- package/benchmarks/compiler-perf.report.json +207 -0
- package/benchmarks/compiler-perf.ts +76 -0
- package/benchmarks/results.md +13 -0
- package/benchmarks/stdlib-complexity.report.json +2606 -0
- package/benchmarks/stdlib-complexity.ts +54 -0
- package/benchmarks/stdlib-size.md +57 -0
- package/benchmarks/stdlib-size.ts +91 -0
- package/dist/cli.js +0 -0
- package/dist/package.json +54 -0
- package/dist/src/__tests__/budget.test.js +4 -0
- package/dist/src/__tests__/cache/cache-behavior.test.d.ts +10 -0
- package/dist/src/__tests__/cache/cache-behavior.test.js +425 -0
- package/dist/src/__tests__/cache-extra.test.d.ts +5 -0
- package/dist/src/__tests__/cache-extra.test.js +211 -0
- package/dist/src/__tests__/checker/checker-coverage-boost.test.d.ts +5 -0
- package/dist/src/__tests__/checker/checker-coverage-boost.test.js +980 -0
- package/dist/src/__tests__/cli-check-fix.test.js +124 -0
- package/dist/src/__tests__/cli-docs.test.js +101 -0
- package/dist/src/__tests__/cli-init.test.js +97 -0
- package/dist/src/__tests__/cli-publish.test.d.ts +9 -0
- package/dist/src/__tests__/cli-publish.test.js +189 -0
- package/dist/src/__tests__/cli.test.js +76 -0
- package/dist/src/__tests__/compile-preprocess.test.d.ts +11 -0
- package/dist/src/__tests__/compile-preprocess.test.js +328 -0
- package/dist/src/__tests__/compiler/benchmark-decorator.test.js +102 -0
- package/dist/src/__tests__/compiler/break-stmt.test.js +58 -0
- package/dist/src/__tests__/compiler/const-decl.test.js +123 -0
- package/dist/src/__tests__/compiler/continue-stmt.test.js +67 -0
- package/dist/src/__tests__/compiler/coroutine-extended.test.d.ts +17 -0
- package/dist/src/__tests__/compiler/coroutine-extended.test.js +565 -0
- package/dist/src/__tests__/compiler/deprecated.test.d.ts +4 -0
- package/dist/src/__tests__/compiler/deprecated.test.js +285 -0
- package/dist/src/__tests__/compiler/do-while.test.js +120 -0
- package/dist/src/__tests__/compiler/enum-payload.test.d.ts +9 -0
- package/dist/src/__tests__/compiler/enum-payload.test.js +272 -0
- package/dist/src/__tests__/compiler/interface.test.d.ts +10 -0
- package/dist/src/__tests__/compiler/interface.test.js +258 -0
- package/dist/src/__tests__/compiler/labeled-loops.test.js +263 -0
- package/dist/src/__tests__/compiler/match-string.test.js +43 -0
- package/dist/src/__tests__/compiler/memoize.test.js +113 -0
- package/dist/src/__tests__/compiler/method-chain.test.d.ts +5 -0
- package/dist/src/__tests__/compiler/method-chain.test.js +115 -0
- package/dist/src/__tests__/compiler/module-import.test.d.ts +12 -0
- package/dist/src/__tests__/compiler/module-import.test.js +261 -0
- package/dist/src/__tests__/compiler/option-extensions.test.d.ts +6 -0
- package/dist/src/__tests__/compiler/option-extensions.test.js +191 -0
- package/dist/src/__tests__/compiler/profile-decorator.test.js +69 -0
- package/dist/src/__tests__/compiler/string-advanced.test.d.ts +7 -0
- package/dist/src/__tests__/compiler/string-advanced.test.js +281 -0
- package/dist/src/__tests__/compiler/struct-extends.test.js +95 -0
- package/dist/src/__tests__/compiler/throttle-retry.test.js +166 -0
- package/dist/src/__tests__/compiler/tuple-type.test.d.ts +10 -0
- package/dist/src/__tests__/compiler/tuple-type.test.js +229 -0
- package/dist/src/__tests__/compiler/watch-decorator.test.js +65 -0
- package/dist/src/__tests__/config/project-config.test.js +199 -0
- package/dist/src/__tests__/config-decorator.test.d.ts +8 -0
- package/dist/src/__tests__/config-decorator.test.js +142 -0
- package/dist/src/__tests__/diagnostics-extra.test.d.ts +6 -0
- package/dist/src/__tests__/diagnostics-extra.test.js +132 -0
- package/dist/src/__tests__/emit/compile-branches.test.js +132 -0
- package/dist/src/__tests__/emit/compile-coverage.test.d.ts +25 -0
- package/dist/src/__tests__/emit/compile-coverage.test.js +617 -0
- package/dist/src/__tests__/emit/compile-extra-branches.test.d.ts +12 -0
- package/dist/src/__tests__/emit/compile-extra-branches.test.js +225 -0
- package/dist/src/__tests__/emit/compile-mocked-branches.test.d.ts +0 -0
- package/dist/src/__tests__/emit/compile-mocked-branches.test.js +238 -0
- package/dist/src/__tests__/emit/compile.test.js +4 -1
- package/dist/src/__tests__/emit/emit-coverage-boost.test.d.ts +7 -0
- package/dist/src/__tests__/emit/emit-coverage-boost.test.js +130 -0
- package/dist/src/__tests__/emit/execute-chain.test.d.ts +10 -0
- package/dist/src/__tests__/emit/execute-chain.test.js +96 -0
- package/dist/src/__tests__/emit/index-coverage.test.js +222 -0
- package/dist/src/__tests__/emit/index.test.js +2 -1
- package/dist/src/__tests__/emit/modules-branches.test.js +88 -0
- package/dist/src/__tests__/emit/modules-coverage.test.d.ts +15 -0
- package/dist/src/__tests__/emit/modules-coverage.test.js +221 -0
- package/dist/src/__tests__/emit/modules-errors.test.d.ts +12 -0
- package/dist/src/__tests__/emit/modules-errors.test.js +169 -0
- package/dist/src/__tests__/emit/modules-rewrite.test.d.ts +17 -0
- package/dist/src/__tests__/emit/modules-rewrite.test.js +204 -0
- package/dist/src/__tests__/emit/source-map.test.js +167 -0
- package/dist/src/__tests__/enum.test.js +9 -4
- package/dist/src/__tests__/error-recovery.test.d.ts +7 -0
- package/dist/src/__tests__/error-recovery.test.js +217 -0
- package/dist/src/__tests__/events-types-extra.test.d.ts +10 -0
- package/dist/src/__tests__/events-types-extra.test.js +91 -0
- package/dist/src/__tests__/events-types.test.d.ts +4 -0
- package/dist/src/__tests__/events-types.test.js +56 -0
- package/dist/src/__tests__/fmt/edge-cases.test.js +111 -0
- package/dist/src/__tests__/formatter.test.js +13 -5
- package/dist/src/__tests__/generics.test.js +15 -9
- package/dist/src/__tests__/hir/lower-coverage-boost.test.d.ts +11 -0
- package/dist/src/__tests__/hir/lower-coverage-boost.test.js +80 -0
- package/dist/src/__tests__/hir/lower-extra.test.d.ts +9 -0
- package/dist/src/__tests__/hir/lower-extra.test.js +140 -0
- package/dist/src/__tests__/hir/monomorphize-coverage.test.d.ts +5 -0
- package/dist/src/__tests__/hir/monomorphize-coverage.test.js +397 -0
- package/dist/src/__tests__/hir/monomorphize-extra.test.d.ts +15 -0
- package/dist/src/__tests__/hir/monomorphize-extra.test.js +200 -0
- package/dist/src/__tests__/hir/monomorphize-extra2.test.d.ts +16 -0
- package/dist/src/__tests__/hir/monomorphize-extra2.test.js +316 -0
- package/dist/src/__tests__/impl.test.js +12 -8
- package/dist/src/__tests__/incremental.test.js +10 -2
- package/dist/src/__tests__/index-extra.test.d.ts +10 -0
- package/dist/src/__tests__/index-extra.test.js +71 -0
- package/dist/src/__tests__/lexer.test.js +2 -2
- package/dist/src/__tests__/lint/hir-coverage.test.d.ts +6 -0
- package/dist/src/__tests__/lint/hir-coverage.test.js +1613 -0
- package/dist/src/__tests__/lint/rules-coverage.test.d.ts +5 -0
- package/dist/src/__tests__/lint/rules-coverage.test.js +540 -0
- package/dist/src/__tests__/lint/rules.test.d.ts +5 -0
- package/dist/src/__tests__/lint/rules.test.js +208 -0
- package/dist/src/__tests__/lir/lower.test.js +29 -0
- package/dist/src/__tests__/lir/verify.test.js +30 -0
- package/dist/src/__tests__/lsp/completion.test.d.ts +7 -0
- package/dist/src/__tests__/lsp/completion.test.js +583 -0
- package/dist/src/__tests__/lsp/definition.test.d.ts +7 -0
- package/dist/src/__tests__/lsp/definition.test.js +454 -0
- package/dist/src/__tests__/lsp/diagnostics.test.d.ts +10 -0
- package/dist/src/__tests__/lsp/diagnostics.test.js +98 -0
- package/dist/src/__tests__/lsp/hover-docs.test.d.ts +10 -0
- package/dist/src/__tests__/lsp/hover-docs.test.js +210 -0
- package/dist/src/__tests__/lsp/rename.test.js +150 -0
- package/dist/src/__tests__/lsp.test.js +4 -1
- package/dist/src/__tests__/mc-integration/item-entity-events.test.js +4 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-2.test.js +4 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-3.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-3.test.js +1227 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-4.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-4.test.js +1509 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-5.test.d.ts +14 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-5.test.js +1374 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-6.test.d.ts +10 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-6.test.js +759 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-7.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-7.test.js +855 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-8.test.d.ts +9 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-8.test.js +476 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage.test.js +4 -0
- package/dist/src/__tests__/mc-integration/syntax-coverage.test.js +4 -0
- package/dist/src/__tests__/mc-validator-coverage.test.d.ts +13 -0
- package/dist/src/__tests__/mc-validator-coverage.test.js +296 -0
- package/dist/src/__tests__/mc-validator-extra.test.d.ts +13 -0
- package/dist/src/__tests__/mc-validator-extra.test.js +245 -0
- package/dist/src/__tests__/mir/lower-extra.test.d.ts +20 -0
- package/dist/src/__tests__/mir/lower-extra.test.js +361 -0
- package/dist/src/__tests__/mir/lower-extra2.test.d.ts +17 -0
- package/dist/src/__tests__/mir/lower-extra2.test.js +317 -0
- package/dist/src/__tests__/mir/lower-extra3.test.d.ts +19 -0
- package/dist/src/__tests__/mir/lower-extra3.test.js +249 -0
- package/dist/src/__tests__/mir/lower-extra4.test.d.ts +23 -0
- package/dist/src/__tests__/mir/lower-extra4.test.js +606 -0
- package/dist/src/__tests__/mir/lower-extra5.test.d.ts +25 -0
- package/dist/src/__tests__/mir/lower-extra5.test.js +543 -0
- package/dist/src/__tests__/mir/lower-extra6.test.d.ts +16 -0
- package/dist/src/__tests__/mir/lower-extra6.test.js +471 -0
- package/dist/src/__tests__/mir/lower-extra7.test.d.ts +35 -0
- package/dist/src/__tests__/mir/lower-extra7.test.js +921 -0
- package/dist/src/__tests__/mir/lower-extra8.test.d.ts +19 -0
- package/dist/src/__tests__/mir/lower-extra8.test.js +626 -0
- package/dist/src/__tests__/mir/lower-extra9.test.d.ts +14 -0
- package/dist/src/__tests__/mir/lower-extra9.test.js +717 -0
- package/dist/src/__tests__/optimizer/auto-inline.test.js +176 -0
- package/dist/src/__tests__/optimizer/cse.test.d.ts +4 -0
- package/dist/src/__tests__/optimizer/cse.test.js +178 -0
- package/dist/src/__tests__/optimizer/inline_fn.test.js +221 -0
- package/dist/src/__tests__/optimizer/licm.test.js +244 -0
- package/dist/src/__tests__/optimizer/nbt-coalesce.test.js +123 -0
- package/dist/src/__tests__/optimizer/optimizer-extended.test.d.ts +12 -0
- package/dist/src/__tests__/optimizer/optimizer-extended.test.js +993 -0
- package/dist/src/__tests__/optimizer/scoreboard-batch.test.js +116 -0
- package/dist/src/__tests__/optimizer/single-call-inline.test.js +183 -0
- package/dist/src/__tests__/optimizer/strength-reduction.test.js +86 -0
- package/dist/src/__tests__/optimizer/tco-coverage-boost.test.js +65 -0
- package/dist/src/__tests__/optimizer/tco-coverage.test.js +172 -0
- package/dist/src/__tests__/optimizer/tco-edge-cases.test.js +128 -0
- package/dist/src/__tests__/optimizer/tco.test.d.ts +14 -0
- package/dist/src/__tests__/optimizer/tco.test.js +203 -0
- package/dist/src/__tests__/option.test.js +12 -7
- package/dist/src/__tests__/parser/parser-coverage-boost.test.d.ts +43 -0
- package/dist/src/__tests__/parser/parser-coverage-boost.test.js +849 -0
- package/dist/src/__tests__/parser-coverage.test.d.ts +25 -0
- package/dist/src/__tests__/parser-coverage.test.js +491 -0
- package/dist/src/__tests__/parser-extra.test.d.ts +6 -0
- package/dist/src/__tests__/parser-extra.test.js +451 -0
- package/dist/src/__tests__/parser.test.js +12 -0
- package/dist/src/__tests__/repl-extra.test.d.ts +13 -0
- package/dist/src/__tests__/repl-extra.test.js +174 -0
- package/dist/src/__tests__/repl-server-extra.test.d.ts +10 -0
- package/dist/src/__tests__/repl-server-extra.test.js +161 -0
- package/dist/src/__tests__/repl-server.test.d.ts +6 -0
- package/dist/src/__tests__/repl-server.test.js +146 -0
- package/dist/src/__tests__/runtime-extra.test.d.ts +15 -0
- package/dist/src/__tests__/runtime-extra.test.js +732 -0
- package/dist/src/__tests__/singleton-decorator.test.d.ts +11 -0
- package/dist/src/__tests__/singleton-decorator.test.js +260 -0
- package/dist/src/__tests__/sourcemap.test.js +1 -1
- package/dist/src/__tests__/stdlib/advanced.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/advanced.test.js +301 -0
- package/dist/src/__tests__/stdlib/bigint.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bigint.test.js +83 -0
- package/dist/src/__tests__/stdlib/bits.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bits.test.js +96 -0
- package/dist/src/__tests__/stdlib/bossbar.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bossbar.test.js +72 -0
- package/dist/src/__tests__/stdlib/color.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/color.test.js +84 -0
- package/dist/src/__tests__/stdlib/combat.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/combat.test.js +64 -0
- package/dist/src/__tests__/stdlib/cooldown.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/cooldown.test.js +64 -0
- package/dist/src/__tests__/stdlib/dialog.test.js +15 -7
- package/dist/src/__tests__/stdlib/ecs.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/ecs.test.js +81 -0
- package/dist/src/__tests__/stdlib/effects.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/effects.test.js +72 -0
- package/dist/src/__tests__/stdlib/events.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/events.test.js +55 -0
- package/dist/src/__tests__/stdlib/expr.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/expr.test.js +77 -0
- package/dist/src/__tests__/stdlib/fft.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/fft.test.js +82 -0
- package/dist/src/__tests__/stdlib/graph.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/graph.test.js +102 -0
- package/dist/src/__tests__/stdlib/interactions.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/interactions.test.js +60 -0
- package/dist/src/__tests__/stdlib/inventory.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/inventory.test.js +68 -0
- package/dist/src/__tests__/stdlib/linalg.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/linalg.test.js +78 -0
- package/dist/src/__tests__/stdlib/map.test.js +84 -0
- package/dist/src/__tests__/stdlib/math.test.js +19 -6
- package/dist/src/__tests__/stdlib/math_hp.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/math_hp.test.js +80 -0
- package/dist/src/__tests__/stdlib/mobs.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/mobs.test.js +61 -0
- package/dist/src/__tests__/stdlib/noise.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/noise.test.js +73 -0
- package/dist/src/__tests__/stdlib/ode.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/ode.test.js +68 -0
- package/dist/src/__tests__/stdlib/parabola.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/parabola.test.js +77 -0
- package/dist/src/__tests__/stdlib/particles.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/particles.test.js +68 -0
- package/dist/src/__tests__/stdlib/physics.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/physics.test.js +76 -0
- package/dist/src/__tests__/stdlib/player.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/player.test.js +64 -0
- package/dist/src/__tests__/stdlib/quaternion.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/quaternion.test.js +73 -0
- package/dist/src/__tests__/stdlib/queue.test.js +97 -0
- package/dist/src/__tests__/stdlib/random.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/random.test.js +76 -0
- package/dist/src/__tests__/stdlib/result.test.d.ts +12 -0
- package/dist/src/__tests__/stdlib/result.test.js +329 -0
- package/dist/src/__tests__/stdlib/scheduler.test.js +19 -8
- package/dist/src/__tests__/stdlib/set_int.test.js +88 -0
- package/dist/src/__tests__/stdlib/sets.test.d.ts +6 -0
- package/dist/src/__tests__/stdlib/sets.test.js +60 -0
- package/dist/src/__tests__/stdlib/signal.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/signal.test.js +84 -0
- package/dist/src/__tests__/stdlib/spawn.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/spawn.test.js +68 -0
- package/dist/src/__tests__/stdlib/string.test.d.ts +12 -0
- package/dist/src/__tests__/stdlib/string.test.js +231 -0
- package/dist/src/__tests__/stdlib/strings.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/strings.test.js +83 -0
- package/dist/src/__tests__/stdlib/tags.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/tags.test.js +57 -0
- package/dist/src/__tests__/stdlib/teams.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/teams.test.js +72 -0
- package/dist/src/__tests__/stdlib/timer.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/timer.test.js +79 -0
- package/dist/src/__tests__/stdlib/vec.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/vec.test.js +94 -0
- package/dist/src/__tests__/stdlib/world.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/world.test.js +72 -0
- package/dist/src/__tests__/struct-display.test.js +64 -0
- package/dist/src/__tests__/test-framework/runner.test.d.ts +10 -0
- package/dist/src/__tests__/test-framework/runner.test.js +193 -0
- package/dist/src/__tests__/tuner/adapters.test.d.ts +14 -0
- package/dist/src/__tests__/tuner/adapters.test.js +194 -0
- package/dist/src/__tests__/tuner/simulator-extra.test.d.ts +4 -0
- package/dist/src/__tests__/tuner/simulator-extra.test.js +193 -0
- package/dist/src/__tests__/tuple.test.js +10 -4
- package/dist/src/__tests__/typechecker-coverage.test.d.ts +30 -0
- package/dist/src/__tests__/typechecker-coverage.test.js +627 -0
- package/dist/src/__tests__/typechecker.test.js +3 -3
- package/dist/src/__tests__/watch-decorator.test.js +54 -0
- package/dist/src/ast/types.d.ts +102 -3
- package/dist/src/cache/incremental.d.ts +13 -14
- package/dist/src/cache/incremental.js +106 -89
- package/dist/src/cache/index.d.ts +8 -2
- package/dist/src/cache/index.js +18 -6
- package/dist/src/check-fix.d.ts +9 -0
- package/dist/src/check-fix.js +377 -0
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.js +513 -20
- package/dist/src/config/project-config.d.ts +29 -0
- package/dist/src/config/project-config.js +180 -0
- package/dist/src/diagnostics/index.d.ts +9 -0
- package/dist/src/diagnostics/index.js +18 -1
- package/dist/src/docs.d.ts +32 -0
- package/dist/src/docs.js +95 -0
- package/dist/src/emit/compile.d.ts +10 -0
- package/dist/src/emit/compile.js +422 -50
- package/dist/src/emit/index.d.ts +42 -0
- package/dist/src/emit/index.js +339 -14
- package/dist/src/emit/modules.js +21 -3
- package/dist/src/emit/sourcemap.d.ts +23 -27
- package/dist/src/emit/sourcemap.js +52 -30
- package/dist/src/formatter/index.js +190 -17
- package/dist/src/hir/deprecated.d.ts +13 -0
- package/dist/src/hir/deprecated.js +218 -0
- package/dist/src/hir/lower.js +114 -8
- package/dist/src/hir/monomorphize.js +22 -2
- package/dist/src/hir/types.d.ts +65 -1
- package/dist/src/index.d.ts +7 -1
- package/dist/src/index.js +24 -4
- package/dist/src/lexer/index.d.ts +2 -1
- package/dist/src/lexer/index.js +39 -3
- package/dist/src/lint/index.d.ts +45 -0
- package/dist/src/lint/index.js +930 -0
- package/dist/src/lir/lower.js +29 -2
- package/dist/src/lir/types.d.ts +4 -0
- package/dist/src/lsp/rename.d.ts +5 -0
- package/dist/src/lsp/rename.js +502 -0
- package/dist/src/lsp/server.js +96 -20
- package/dist/src/mir/lower.js +775 -34
- package/dist/src/mir/macro.js +36 -2
- package/dist/src/mir/types.d.ts +22 -0
- package/dist/src/mir/verify.js +11 -0
- package/dist/src/optimizer/auto-inline.d.ts +5 -0
- package/dist/src/optimizer/auto-inline.js +87 -0
- package/dist/src/optimizer/copy_prop.js +2 -0
- package/dist/src/optimizer/coroutine.js +3 -0
- package/dist/src/optimizer/cse.d.ts +20 -0
- package/dist/src/optimizer/cse.js +239 -0
- package/dist/src/optimizer/dce.js +2 -0
- package/dist/src/optimizer/inline.d.ts +26 -0
- package/dist/src/optimizer/inline.js +294 -0
- package/dist/src/optimizer/interprocedural.js +5 -0
- package/dist/src/optimizer/licm.d.ts +32 -0
- package/dist/src/optimizer/licm.js +418 -0
- package/dist/src/optimizer/nbt-coalesce.d.ts +24 -0
- package/dist/src/optimizer/nbt-coalesce.js +95 -0
- package/dist/src/optimizer/pipeline.js +16 -2
- package/dist/src/optimizer/scoreboard-batch.d.ts +13 -0
- package/dist/src/optimizer/scoreboard-batch.js +54 -0
- package/dist/src/optimizer/single-call-inline.d.ts +2 -0
- package/dist/src/optimizer/single-call-inline.js +57 -0
- package/dist/src/optimizer/strength_reduction.d.ts +15 -0
- package/dist/src/optimizer/strength_reduction.js +90 -0
- package/dist/src/optimizer/tco.d.ts +53 -0
- package/dist/src/optimizer/tco.js +238 -0
- package/dist/src/optimizer/unroll.js +2 -0
- package/dist/src/parser/index.d.ts +32 -0
- package/dist/src/parser/index.js +421 -59
- package/dist/src/repl-server.d.ts +13 -0
- package/dist/src/repl-server.js +127 -0
- package/dist/src/structs/expand.d.ts +15 -0
- package/dist/src/structs/expand.js +46 -0
- package/dist/src/testing/runner.d.ts +40 -0
- package/dist/src/testing/runner.js +237 -0
- package/dist/src/typechecker/index.d.ts +3 -0
- package/dist/src/typechecker/index.js +263 -9
- package/docs/dev/README-benchmarks.md +48 -0
- package/docs/dev/README-vscode-test.md +251 -0
- package/docs/stdlib/result.md +156 -0
- package/docs/stdlib/result.zh.md +156 -0
- package/editors/vscode/fixtures/test.mcrs +7 -0
- package/editors/vscode/out/extension.js +3923 -374
- package/editors/vscode/out/lsp-server.js +2711 -192
- package/editors/vscode/package-lock.json +9 -4
- package/editors/vscode/package.json +1 -1
- package/examples/display-demo.mcrs +64 -0
- package/examples/game/racing.mcrs +301 -0
- package/examples/game/tower_defense.mcrs +311 -0
- package/examples/math/physics_sim.mcrs +322 -0
- package/examples/rpg/boss_fight.mcrs +313 -0
- package/examples/rpg/health_system.mcrs +237 -0
- package/examples/rpg/inventory.mcrs +265 -0
- package/examples/util/debug_hud.mcrs +279 -0
- package/jest.config.js +10 -0
- package/package.json +12 -3
- package/playground/index.html +823 -0
- package/scripts/gen-docs.ts +533 -0
- package/scripts/update-redscript-docs-stdlib.sh +770 -0
- package/src/__tests__/budget.test.ts +5 -0
- package/src/__tests__/cache/cache-behavior.test.ts +480 -0
- package/src/__tests__/cache-extra.test.ts +199 -0
- package/src/__tests__/checker/checker-coverage-boost.test.ts +1057 -0
- package/src/__tests__/cli-check-fix.test.ts +118 -0
- package/src/__tests__/cli-docs.test.ts +77 -0
- package/src/__tests__/cli-init.test.ts +91 -0
- package/src/__tests__/cli-publish.test.ts +190 -0
- package/src/__tests__/cli.test.ts +117 -1
- package/src/__tests__/compile-preprocess.test.ts +366 -0
- package/src/__tests__/compiler/benchmark-decorator.test.ts +118 -0
- package/src/__tests__/compiler/break-stmt.test.ts +66 -0
- package/src/__tests__/compiler/const-decl.test.ts +141 -0
- package/src/__tests__/compiler/continue-stmt.test.ts +81 -0
- package/src/__tests__/compiler/coroutine-extended.test.ts +723 -0
- package/src/__tests__/compiler/deprecated.test.ts +305 -0
- package/src/__tests__/compiler/do-while.test.ts +130 -0
- package/src/__tests__/compiler/enum-payload.test.ts +299 -0
- package/src/__tests__/compiler/interface.test.ts +287 -0
- package/src/__tests__/compiler/labeled-loops.test.ts +279 -0
- package/src/__tests__/compiler/match-string.test.ts +45 -0
- package/src/__tests__/compiler/memoize.test.ts +126 -0
- package/src/__tests__/compiler/method-chain.test.ts +121 -0
- package/src/__tests__/compiler/module-import.test.ts +240 -0
- package/src/__tests__/compiler/option-extensions.test.ts +207 -0
- package/src/__tests__/compiler/profile-decorator.test.ts +79 -0
- package/src/__tests__/compiler/string-advanced.test.ts +310 -0
- package/src/__tests__/compiler/struct-extends.test.ts +109 -0
- package/src/__tests__/compiler/throttle-retry.test.ts +191 -0
- package/src/__tests__/compiler/tuple-type.test.ts +263 -0
- package/src/__tests__/compiler/watch-decorator.test.ts +72 -0
- package/src/__tests__/config/project-config.test.ts +181 -0
- package/src/__tests__/config-decorator.test.ts +157 -0
- package/src/__tests__/diagnostics-extra.test.ts +155 -0
- package/src/__tests__/emit/compile-branches.test.ts +135 -0
- package/src/__tests__/emit/compile-coverage.test.ts +696 -0
- package/src/__tests__/emit/compile-extra-branches.test.ts +228 -0
- package/src/__tests__/emit/compile-mocked-branches.test.ts +249 -0
- package/src/__tests__/emit/compile.test.ts +6 -1
- package/src/__tests__/emit/emit-coverage-boost.test.ts +139 -0
- package/src/__tests__/emit/execute-chain.test.ts +114 -0
- package/src/__tests__/emit/index-coverage.test.ts +240 -0
- package/src/__tests__/emit/index.test.ts +2 -1
- package/src/__tests__/emit/modules-branches.test.ts +90 -0
- package/src/__tests__/emit/modules-coverage.test.ts +241 -0
- package/src/__tests__/emit/modules-errors.test.ts +192 -0
- package/src/__tests__/emit/modules-rewrite.test.ts +232 -0
- package/src/__tests__/emit/source-map.test.ts +152 -0
- package/src/__tests__/enum.test.ts +9 -4
- package/src/__tests__/error-recovery.test.ts +226 -0
- package/src/__tests__/events-types-extra.test.ts +110 -0
- package/src/__tests__/events-types.test.ts +66 -0
- package/src/__tests__/fmt/edge-cases.test.ts +135 -0
- package/src/__tests__/formatter.test.ts +15 -5
- package/src/__tests__/generics.test.ts +16 -9
- package/src/__tests__/hir/lower-coverage-boost.test.ts +90 -0
- package/src/__tests__/hir/lower-extra.test.ts +151 -0
- package/src/__tests__/hir/monomorphize-coverage.test.ts +432 -0
- package/src/__tests__/hir/monomorphize-extra.test.ts +220 -0
- package/src/__tests__/hir/monomorphize-extra2.test.ts +350 -0
- package/src/__tests__/impl.test.ts +12 -8
- package/src/__tests__/incremental.test.ts +10 -2
- package/src/__tests__/index-extra.test.ts +79 -0
- package/src/__tests__/lexer.test.ts +2 -2
- package/src/__tests__/lint/hir-coverage.test.ts +1716 -0
- package/src/__tests__/lint/rules-coverage.test.ts +598 -0
- package/src/__tests__/lint/rules.test.ts +230 -0
- package/src/__tests__/lir/lower.test.ts +33 -0
- package/src/__tests__/lir/verify.test.ts +33 -0
- package/src/__tests__/lsp/completion.test.ts +687 -0
- package/src/__tests__/lsp/definition.test.ts +499 -0
- package/src/__tests__/lsp/diagnostics.test.ts +108 -0
- package/src/__tests__/lsp/hover-docs.test.ts +222 -0
- package/src/__tests__/lsp/rename.test.ts +161 -0
- package/src/__tests__/lsp.test.ts +4 -1
- package/src/__tests__/mc-integration/item-entity-events.test.ts +5 -0
- package/src/__tests__/mc-integration/stdlib-coverage-2.test.ts +5 -0
- package/src/__tests__/mc-integration/stdlib-coverage-3.test.ts +1105 -0
- package/src/__tests__/mc-integration/stdlib-coverage-4.test.ts +1366 -0
- package/src/__tests__/mc-integration/stdlib-coverage-5.test.ts +1245 -0
- package/src/__tests__/mc-integration/stdlib-coverage-6.test.ts +755 -0
- package/src/__tests__/mc-integration/stdlib-coverage-7.test.ts +771 -0
- package/src/__tests__/mc-integration/stdlib-coverage-8.test.ts +420 -0
- package/src/__tests__/mc-integration/stdlib-coverage.test.ts +5 -0
- package/src/__tests__/mc-integration/syntax-coverage.test.ts +5 -0
- package/src/__tests__/mc-validator-coverage.test.ts +325 -0
- package/src/__tests__/mc-validator-extra.test.ts +252 -0
- package/src/__tests__/mir/lower-extra.test.ts +402 -0
- package/src/__tests__/mir/lower-extra2.test.ts +348 -0
- package/src/__tests__/mir/lower-extra3.test.ts +277 -0
- package/src/__tests__/mir/lower-extra4.test.ts +636 -0
- package/src/__tests__/mir/lower-extra5.test.ts +612 -0
- package/src/__tests__/mir/lower-extra6.test.ts +520 -0
- package/src/__tests__/mir/lower-extra7.test.ts +1045 -0
- package/src/__tests__/mir/lower-extra8.test.ts +704 -0
- package/src/__tests__/mir/lower-extra9.test.ts +821 -0
- package/src/__tests__/optimizer/auto-inline.test.ts +206 -0
- package/src/__tests__/optimizer/cse.test.ts +195 -0
- package/src/__tests__/optimizer/inline_fn.test.ts +263 -0
- package/src/__tests__/optimizer/licm.test.ts +358 -0
- package/src/__tests__/optimizer/nbt-coalesce.test.ts +147 -0
- package/src/__tests__/optimizer/optimizer-extended.test.ts +1081 -0
- package/src/__tests__/optimizer/scoreboard-batch.test.ts +141 -0
- package/src/__tests__/optimizer/single-call-inline.test.ts +220 -0
- package/src/__tests__/optimizer/strength-reduction.test.ts +111 -0
- package/src/__tests__/optimizer/tco-coverage-boost.test.ts +77 -0
- package/src/__tests__/optimizer/tco-coverage.test.ts +195 -0
- package/src/__tests__/optimizer/tco-edge-cases.test.ts +151 -0
- package/src/__tests__/optimizer/tco.test.ts +238 -0
- package/src/__tests__/option.test.ts +14 -7
- package/src/__tests__/parser/parser-coverage-boost.test.ts +964 -0
- package/src/__tests__/parser-coverage.test.ts +576 -0
- package/src/__tests__/parser-extra.test.ts +531 -0
- package/src/__tests__/parser.test.ts +14 -0
- package/src/__tests__/repl-extra.test.ts +195 -0
- package/src/__tests__/repl-server-extra.test.ts +150 -0
- package/src/__tests__/repl-server.test.ts +122 -0
- package/src/__tests__/runtime-extra.test.ts +862 -0
- package/src/__tests__/singleton-decorator.test.ts +285 -0
- package/src/__tests__/sourcemap.test.ts +1 -1
- package/src/__tests__/stdlib/advanced.test.ts +312 -0
- package/src/__tests__/stdlib/bigint.test.ts +57 -0
- package/src/__tests__/stdlib/bits.test.ts +75 -0
- package/src/__tests__/stdlib/bossbar.test.ts +45 -0
- package/src/__tests__/stdlib/color.test.ts +60 -0
- package/src/__tests__/stdlib/combat.test.ts +35 -0
- package/src/__tests__/stdlib/cooldown.test.ts +35 -0
- package/src/__tests__/stdlib/dialog.test.ts +14 -6
- package/src/__tests__/stdlib/ecs.test.ts +54 -0
- package/src/__tests__/stdlib/effects.test.ts +45 -0
- package/src/__tests__/stdlib/events.test.ts +23 -0
- package/src/__tests__/stdlib/expr.test.ts +48 -0
- package/src/__tests__/stdlib/fft.test.ts +54 -0
- package/src/__tests__/stdlib/graph.test.ts +77 -0
- package/src/__tests__/stdlib/interactions.test.ts +30 -0
- package/src/__tests__/stdlib/inventory.test.ts +40 -0
- package/src/__tests__/stdlib/linalg.test.ts +52 -0
- package/src/__tests__/stdlib/map.test.ts +55 -0
- package/src/__tests__/stdlib/math.test.ts +19 -5
- package/src/__tests__/stdlib/math_hp.test.ts +55 -0
- package/src/__tests__/stdlib/mobs.test.ts +40 -0
- package/src/__tests__/stdlib/noise.test.ts +46 -0
- package/src/__tests__/stdlib/ode.test.ts +40 -0
- package/src/__tests__/stdlib/parabola.test.ts +51 -0
- package/src/__tests__/stdlib/particles.test.ts +40 -0
- package/src/__tests__/stdlib/physics.test.ts +50 -0
- package/src/__tests__/stdlib/player.test.ts +35 -0
- package/src/__tests__/stdlib/quaternion.test.ts +46 -0
- package/src/__tests__/stdlib/queue.test.ts +73 -0
- package/src/__tests__/stdlib/random.test.ts +50 -0
- package/src/__tests__/stdlib/result.test.ts +326 -0
- package/src/__tests__/stdlib/scheduler.test.ts +18 -7
- package/src/__tests__/stdlib/set_int.test.ts +62 -0
- package/src/__tests__/stdlib/sets.test.ts +28 -0
- package/src/__tests__/stdlib/signal.test.ts +60 -0
- package/src/__tests__/stdlib/spawn.test.ts +40 -0
- package/src/__tests__/stdlib/string.test.ts +224 -0
- package/src/__tests__/stdlib/strings.test.ts +55 -0
- package/src/__tests__/stdlib/tags.test.ts +32 -0
- package/src/__tests__/stdlib/teams.test.ts +45 -0
- package/src/__tests__/stdlib/timer.test.ts +53 -0
- package/src/__tests__/stdlib/vec.test.ts +72 -0
- package/src/__tests__/stdlib/world.test.ts +45 -0
- package/src/__tests__/struct-display.test.ts +69 -0
- package/src/__tests__/test-framework/runner.test.ts +208 -0
- package/src/__tests__/tuner/adapters.test.ts +232 -0
- package/src/__tests__/tuner/simulator-extra.test.ts +222 -0
- package/src/__tests__/tuple.test.ts +11 -4
- package/src/__tests__/typechecker-coverage.test.ts +671 -0
- package/src/__tests__/typechecker.test.ts +4 -3
- package/src/__tests__/watch-decorator.test.ts +59 -0
- package/src/ast/types.ts +65 -3
- package/src/cache/incremental.ts +128 -99
- package/src/cache/index.ts +35 -8
- package/src/check-fix.ts +425 -0
- package/src/cli.ts +577 -31
- package/src/config/project-config.ts +176 -0
- package/src/diagnostics/index.ts +22 -0
- package/src/docs.ts +98 -0
- package/src/emit/compile.ts +427 -51
- package/src/emit/index.ts +404 -18
- package/src/emit/modules.ts +19 -3
- package/src/emit/sourcemap.ts +64 -43
- package/src/formatter/index.ts +212 -12
- package/src/hir/deprecated.ts +212 -0
- package/src/hir/lower.ts +128 -8
- package/src/hir/monomorphize.ts +24 -2
- package/src/hir/types.ts +26 -1
- package/src/index.ts +26 -4
- package/src/lexer/index.ts +45 -6
- package/src/lint/index.ts +922 -0
- package/src/lir/lower.ts +30 -2
- package/src/lir/types.ts +4 -0
- package/src/lsp/rename.ts +530 -0
- package/src/lsp/server.ts +104 -19
- package/src/mir/lower.ts +785 -40
- package/src/mir/macro.ts +30 -2
- package/src/mir/types.ts +13 -0
- package/src/mir/verify.ts +10 -2
- package/src/optimizer/auto-inline.ts +86 -0
- package/src/optimizer/copy_prop.ts +2 -2
- package/src/optimizer/coroutine.ts +3 -3
- package/src/optimizer/cse.ts +205 -0
- package/src/optimizer/dce.ts +2 -2
- package/src/optimizer/inline.ts +335 -0
- package/src/optimizer/interprocedural.ts +5 -1
- package/src/optimizer/licm.ts +454 -0
- package/src/optimizer/nbt-coalesce.ts +109 -0
- package/src/optimizer/pipeline.ts +16 -2
- package/src/optimizer/scoreboard-batch.ts +52 -0
- package/src/optimizer/single-call-inline.ts +59 -0
- package/src/optimizer/strength_reduction.ts +95 -0
- package/src/optimizer/tco.ts +267 -0
- package/src/optimizer/unroll.ts +2 -2
- package/src/parser/index.ts +426 -53
- package/src/repl-server.ts +102 -0
- package/src/stdlib/advanced.mcrs +271 -101
- package/src/stdlib/bigint.mcrs +97 -11
- package/src/stdlib/bits.mcrs +75 -12
- package/src/stdlib/bossbar.mcrs +37 -8
- package/src/stdlib/calculus.mcrs +82 -26
- package/src/stdlib/color.mcrs +98 -16
- package/src/stdlib/combat.mcrs +23 -5
- package/src/stdlib/cooldown.mcrs +19 -0
- package/src/stdlib/dialog.mcrs +45 -7
- package/src/stdlib/easing.mcrs +132 -12
- package/src/stdlib/ecs.mcrs +142 -25
- package/src/stdlib/effects.mcrs +88 -12
- package/src/stdlib/events.mcrs +21 -2
- package/src/stdlib/expr.mcrs +18 -3
- package/src/stdlib/fft.mcrs +66 -56
- package/src/stdlib/geometry.mcrs +137 -39
- package/src/stdlib/graph.mcrs +73 -0
- package/src/stdlib/heap.mcrs +49 -8
- package/src/stdlib/i18n/zh.yaml +2891 -0
- package/src/stdlib/interactions.mcrs +43 -20
- package/src/stdlib/inventory.mcrs +14 -3
- package/src/stdlib/linalg.mcrs +185 -30
- package/src/stdlib/list.mcrs +168 -18
- package/src/stdlib/map.mcrs +112 -0
- package/src/stdlib/math.mcrs +68 -18
- package/src/stdlib/math_hp.mcrs +124 -33
- package/src/stdlib/matrix.mcrs +133 -20
- package/src/stdlib/mobs.mcrs +87 -0
- package/src/stdlib/noise.mcrs +65 -21
- package/src/stdlib/ode.mcrs +96 -0
- package/src/stdlib/parabola.mcrs +104 -29
- package/src/stdlib/particles.mcrs +78 -21
- package/src/stdlib/pathfind.mcrs +89 -35
- package/src/stdlib/physics.mcrs +134 -26
- package/src/stdlib/player.mcrs +18 -0
- package/src/stdlib/quaternion.mcrs +213 -9
- package/src/stdlib/queue.mcrs +123 -0
- package/src/stdlib/random.mcrs +63 -18
- package/src/stdlib/result.mcrs +111 -0
- package/src/stdlib/scheduler.mcrs +59 -10
- package/src/stdlib/set_int.mcrs +240 -0
- package/src/stdlib/sets.mcrs +49 -19
- package/src/stdlib/signal.mcrs +151 -79
- package/src/stdlib/sort.mcrs +44 -24
- package/src/stdlib/spawn.mcrs +30 -7
- package/src/stdlib/state.mcrs +40 -5
- package/src/stdlib/strings.mcrs +131 -3
- package/src/stdlib/tags.mcrs +2 -2
- package/src/stdlib/teams.mcrs +22 -10
- package/src/stdlib/timer.mcrs +36 -6
- package/src/stdlib/vec.mcrs +44 -9
- package/src/stdlib/world.mcrs +57 -25
- package/src/structs/expand.ts +64 -0
- package/src/testing/runner.ts +271 -0
- package/src/typechecker/index.ts +284 -9
- package/tsconfig.json +2 -1
- package/dist/__tests__/cli.test.js +0 -278
- package/dist/__tests__/codegen.test.js +0 -152
- package/dist/__tests__/compile-all.test.d.ts +0 -10
- package/dist/__tests__/compile-all.test.js +0 -108
- package/dist/__tests__/dce.test.js +0 -138
- package/dist/__tests__/diagnostics.test.d.ts +0 -4
- package/dist/__tests__/diagnostics.test.js +0 -149
- package/dist/__tests__/e2e.test.d.ts +0 -6
- package/dist/__tests__/e2e.test.js +0 -1847
- package/dist/__tests__/entity-types.test.js +0 -203
- package/dist/__tests__/formatter.test.js +0 -40
- package/dist/__tests__/lexer.test.js +0 -343
- package/dist/__tests__/lowering.test.js +0 -1015
- package/dist/__tests__/macro.test.d.ts +0 -8
- package/dist/__tests__/macro.test.js +0 -305
- package/dist/__tests__/mc-integration.test.d.ts +0 -12
- package/dist/__tests__/mc-integration.test.js +0 -819
- package/dist/__tests__/mc-syntax.test.js +0 -124
- package/dist/__tests__/nbt.test.js +0 -82
- package/dist/__tests__/optimizer-advanced.test.js +0 -124
- package/dist/__tests__/optimizer.test.js +0 -149
- package/dist/__tests__/parser.test.js +0 -807
- package/dist/__tests__/repl.test.js +0 -27
- package/dist/__tests__/runtime.test.js +0 -289
- package/dist/__tests__/stdlib-advanced.test.d.ts +0 -4
- package/dist/__tests__/stdlib-advanced.test.js +0 -378
- package/dist/__tests__/stdlib-bigint.test.d.ts +0 -7
- package/dist/__tests__/stdlib-bigint.test.js +0 -428
- package/dist/__tests__/stdlib-math.test.d.ts +0 -7
- package/dist/__tests__/stdlib-math.test.js +0 -352
- package/dist/__tests__/stdlib-vec.test.d.ts +0 -4
- package/dist/__tests__/stdlib-vec.test.js +0 -264
- package/dist/__tests__/structure-optimizer.test.js +0 -33
- package/dist/__tests__/typechecker.test.js +0 -552
- package/dist/__tests__/var-allocator.test.js +0 -69
- package/dist/ast/types.d.ts +0 -514
- package/dist/ast/types.js +0 -9
- package/dist/builtins/metadata.d.ts +0 -36
- package/dist/builtins/metadata.js +0 -1014
- package/dist/cli.d.ts +0 -11
- package/dist/codegen/cmdblock/index.d.ts +0 -26
- package/dist/codegen/cmdblock/index.js +0 -45
- package/dist/codegen/mcfunction/index.d.ts +0 -40
- package/dist/codegen/mcfunction/index.js +0 -606
- package/dist/codegen/structure/index.d.ts +0 -24
- package/dist/codegen/structure/index.js +0 -279
- package/dist/codegen/var-allocator.d.ts +0 -45
- package/dist/codegen/var-allocator.js +0 -104
- package/dist/compile.d.ts +0 -68
- package/dist/data/arena/function/__load.mcfunction +0 -6
- package/dist/data/arena/function/__tick.mcfunction +0 -2
- package/dist/data/arena/function/announce_leaders/else_1.mcfunction +0 -3
- package/dist/data/arena/function/announce_leaders/foreach_0/merge_2.mcfunction +0 -1
- package/dist/data/arena/function/announce_leaders/foreach_0/then_0.mcfunction +0 -3
- package/dist/data/arena/function/announce_leaders/foreach_0.mcfunction +0 -7
- package/dist/data/arena/function/announce_leaders/foreach_1/merge_2.mcfunction +0 -1
- package/dist/data/arena/function/announce_leaders/foreach_1/then_0.mcfunction +0 -4
- package/dist/data/arena/function/announce_leaders/foreach_1.mcfunction +0 -6
- package/dist/data/arena/function/announce_leaders/merge_2.mcfunction +0 -1
- package/dist/data/arena/function/announce_leaders/then_0.mcfunction +0 -4
- package/dist/data/arena/function/announce_leaders.mcfunction +0 -6
- package/dist/data/arena/function/arena_tick/merge_2.mcfunction +0 -1
- package/dist/data/arena/function/arena_tick/then_0.mcfunction +0 -4
- package/dist/data/arena/function/arena_tick.mcfunction +0 -11
- package/dist/data/capture_the_flag/function/add_to_team.mcfunction +0 -5
- package/dist/data/capture_the_flag/function/angry_at.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/assign_teams.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/assign_teams__foreach_t1.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/assign_teams__foreach_t1__else_2.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/assign_teams__foreach_t1__merge_1.mcfunction +0 -3
- package/dist/data/capture_the_flag/function/assign_teams__foreach_t1__then_0.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/barrier_wall.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/buff_all.mcfunction +0 -22
- package/dist/data/capture_the_flag/function/check_flag_capture.mcfunction +0 -2
- package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t0.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t0__then_0.mcfunction +0 -7
- package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t1.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t1__merge_1.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/check_flag_capture__foreach_t1__then_0.mcfunction +0 -7
- package/dist/data/capture_the_flag/function/check_flag_pickup.mcfunction +0 -2
- package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t0.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t0__then_0.mcfunction +0 -7
- package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t1.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t1__merge_1.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/check_flag_pickup__foreach_t1__then_0.mcfunction +0 -7
- package/dist/data/capture_the_flag/function/check_win.mcfunction +0 -4
- package/dist/data/capture_the_flag/function/cleanup_teams.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/clear_area.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/clear_effect.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/clear_effects.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/clear_inventory.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/create_blue_team.mcfunction +0 -10
- package/dist/data/capture_the_flag/function/create_green_team.mcfunction +0 -10
- package/dist/data/capture_the_flag/function/create_red_team.mcfunction +0 -10
- package/dist/data/capture_the_flag/function/create_team.mcfunction +0 -8
- package/dist/data/capture_the_flag/function/create_yellow_team.mcfunction +0 -10
- package/dist/data/capture_the_flag/function/disable_fire_spread.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/disable_keep_inventory.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/disable_mob_griefing.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/distance_to.mcfunction +0 -6
- package/dist/data/capture_the_flag/function/distance_to__const_0_0_0_0.mcfunction +0 -5
- package/dist/data/capture_the_flag/function/enable_keep_inventory.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/end_game.mcfunction +0 -6
- package/dist/data/capture_the_flag/function/end_game__else_2.mcfunction +0 -3
- package/dist/data/capture_the_flag/function/end_game__foreach_t7.mcfunction +0 -2
- package/dist/data/capture_the_flag/function/end_game__merge_1.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/end_game__then_0.mcfunction +0 -3
- package/dist/data/capture_the_flag/function/end_sparkles_at.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/explosion_effect.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/flames.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/game_tick.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/give_kit_archer.mcfunction +0 -6
- package/dist/data/capture_the_flag/function/give_kit_mage.mcfunction +0 -5
- package/dist/data/capture_the_flag/function/give_kit_warrior.mcfunction +0 -6
- package/dist/data/capture_the_flag/function/glass_box.mcfunction +0 -2
- package/dist/data/capture_the_flag/function/glow.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/happy_at.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/hearts_at.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/init.mcfunction +0 -11
- package/dist/data/capture_the_flag/function/invisible.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/jump.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/load.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/night_vision.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/place_flags.mcfunction +0 -2
- package/dist/data/capture_the_flag/function/portal_effect.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/regen.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/remove_from_teams.mcfunction +0 -3
- package/dist/data/capture_the_flag/function/remove_item.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/resistance.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_day.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_easy.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_hard.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_midnight.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_night.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_noon.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_normal.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/set_peaceful.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/setup_four_teams.mcfunction +0 -4
- package/dist/data/capture_the_flag/function/setup_two_teams.mcfunction +0 -2
- package/dist/data/capture_the_flag/function/slow_fall.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/smoke.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/sparkles_at.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/speed.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/start_game.mcfunction +0 -15
- package/dist/data/capture_the_flag/function/start_game__foreach_t10.mcfunction +0 -4
- package/dist/data/capture_the_flag/function/strength.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/totem_at.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/weather_clear.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/weather_rain.mcfunction +0 -1
- package/dist/data/capture_the_flag/function/weather_thunder.mcfunction +0 -1
- package/dist/data/counter/function/__load.mcfunction +0 -5
- package/dist/data/counter/function/__tick.mcfunction +0 -2
- package/dist/data/counter/function/counter_tick/merge_2.mcfunction +0 -1
- package/dist/data/counter/function/counter_tick/then_0.mcfunction +0 -3
- package/dist/data/counter/function/counter_tick.mcfunction +0 -11
- package/dist/data/gcd2/function/__load.mcfunction +0 -3
- package/dist/data/gcd2/function/abs/merge_2.mcfunction +0 -3
- package/dist/data/gcd2/function/abs/then_0.mcfunction +0 -5
- package/dist/data/gcd2/function/abs.mcfunction +0 -7
- package/dist/data/gcd2/function/gcd/loop_body_1.mcfunction +0 -7
- package/dist/data/gcd2/function/gcd/loop_check_0.mcfunction +0 -5
- package/dist/data/gcd2/function/gcd/loop_exit_2.mcfunction +0 -3
- package/dist/data/gcd2/function/gcd.mcfunction +0 -14
- package/dist/data/gcd3/function/__load.mcfunction +0 -3
- package/dist/data/gcd3/function/abs/merge_2.mcfunction +0 -3
- package/dist/data/gcd3/function/abs/then_0.mcfunction +0 -5
- package/dist/data/gcd3/function/abs.mcfunction +0 -7
- package/dist/data/gcd3/function/gcd/loop_body_1.mcfunction +0 -7
- package/dist/data/gcd3/function/gcd/loop_check_0.mcfunction +0 -5
- package/dist/data/gcd3/function/gcd/loop_exit_2.mcfunction +0 -3
- package/dist/data/gcd3/function/gcd.mcfunction +0 -14
- package/dist/data/gcd3/function/test.mcfunction +0 -7
- package/dist/data/gcd3nm/function/__load.mcfunction +0 -3
- package/dist/data/gcd3nm/function/abs/merge_2.mcfunction +0 -3
- package/dist/data/gcd3nm/function/abs/then_0.mcfunction +0 -5
- package/dist/data/gcd3nm/function/abs.mcfunction +0 -7
- package/dist/data/gcd3nm/function/gcd/loop_body_1.mcfunction +0 -7
- package/dist/data/gcd3nm/function/gcd/loop_check_0.mcfunction +0 -5
- package/dist/data/gcd3nm/function/gcd/loop_exit_2.mcfunction +0 -3
- package/dist/data/gcd3nm/function/gcd.mcfunction +0 -14
- package/dist/data/gcd3nm/function/test.mcfunction +0 -7
- package/dist/data/gcd_test/function/__load.mcfunction +0 -3
- package/dist/data/gcd_test/function/abs/merge_2.mcfunction +0 -3
- package/dist/data/gcd_test/function/abs/then_0.mcfunction +0 -5
- package/dist/data/gcd_test/function/abs.mcfunction +0 -7
- package/dist/data/gcd_test/function/gcd/loop_body_1.mcfunction +0 -7
- package/dist/data/gcd_test/function/gcd/loop_check_0.mcfunction +0 -5
- package/dist/data/gcd_test/function/gcd/loop_exit_2.mcfunction +0 -3
- package/dist/data/gcd_test/function/gcd.mcfunction +0 -14
- package/dist/data/hunger_games/function/angry_at.mcfunction +0 -1
- package/dist/data/hunger_games/function/barrier_wall.mcfunction +0 -1
- package/dist/data/hunger_games/function/buff_all.mcfunction +0 -22
- package/dist/data/hunger_games/function/check_alive.mcfunction +0 -3
- package/dist/data/hunger_games/function/check_alive__foreach_t3.mcfunction +0 -10
- package/dist/data/hunger_games/function/check_alive__foreach_t3__merge_1.mcfunction +0 -1
- package/dist/data/hunger_games/function/check_alive__foreach_t3__then_0.mcfunction +0 -5
- package/dist/data/hunger_games/function/check_border_damage.mcfunction +0 -1
- package/dist/data/hunger_games/function/check_border_damage__foreach_t0.mcfunction +0 -1
- package/dist/data/hunger_games/function/clear_area.mcfunction +0 -1
- package/dist/data/hunger_games/function/clear_effect.mcfunction +0 -1
- package/dist/data/hunger_games/function/clear_effects.mcfunction +0 -1
- package/dist/data/hunger_games/function/countdown_tick.mcfunction +0 -1
- package/dist/data/hunger_games/function/create_health_bar.mcfunction +0 -24
- package/dist/data/hunger_games/function/create_progress_bar.mcfunction +0 -24
- package/dist/data/hunger_games/function/create_progress_bar__const_0_0_0.mcfunction +0 -21
- package/dist/data/hunger_games/function/create_timer_bar.mcfunction +0 -30
- package/dist/data/hunger_games/function/declare_winner.mcfunction +0 -13
- package/dist/data/hunger_games/function/disable_fire_spread.mcfunction +0 -1
- package/dist/data/hunger_games/function/disable_keep_inventory.mcfunction +0 -1
- package/dist/data/hunger_games/function/disable_mob_griefing.mcfunction +0 -1
- package/dist/data/hunger_games/function/enable_keep_inventory.mcfunction +0 -1
- package/dist/data/hunger_games/function/end_game_no_winner.mcfunction +0 -3
- package/dist/data/hunger_games/function/end_sparkles_at.mcfunction +0 -1
- package/dist/data/hunger_games/function/explosion_effect.mcfunction +0 -1
- package/dist/data/hunger_games/function/flames.mcfunction +0 -1
- package/dist/data/hunger_games/function/game_tick.mcfunction +0 -1
- package/dist/data/hunger_games/function/glass_box.mcfunction +0 -2
- package/dist/data/hunger_games/function/glow.mcfunction +0 -1
- package/dist/data/hunger_games/function/happy_at.mcfunction +0 -1
- package/dist/data/hunger_games/function/hearts_at.mcfunction +0 -1
- package/dist/data/hunger_games/function/hide_bar.mcfunction +0 -4
- package/dist/data/hunger_games/function/init.mcfunction +0 -7
- package/dist/data/hunger_games/function/invisible.mcfunction +0 -1
- package/dist/data/hunger_games/function/jump.mcfunction +0 -1
- package/dist/data/hunger_games/function/load.mcfunction +0 -1
- package/dist/data/hunger_games/function/main_game_tick.mcfunction +0 -4
- package/dist/data/hunger_games/function/night_vision.mcfunction +0 -1
- package/dist/data/hunger_games/function/on_player_death.mcfunction +0 -14
- package/dist/data/hunger_games/function/portal_effect.mcfunction +0 -1
- package/dist/data/hunger_games/function/regen.mcfunction +0 -1
- package/dist/data/hunger_games/function/remove_bar.mcfunction +0 -3
- package/dist/data/hunger_games/function/remove_bar__const_0.mcfunction +0 -2
- package/dist/data/hunger_games/function/reset_game.mcfunction +0 -3
- package/dist/data/hunger_games/function/reset_game__foreach_t0.mcfunction +0 -9
- package/dist/data/hunger_games/function/resistance.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_day.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_easy.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_hard.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_midnight.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_night.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_noon.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_normal.mcfunction +0 -1
- package/dist/data/hunger_games/function/set_peaceful.mcfunction +0 -1
- package/dist/data/hunger_games/function/show_bar.mcfunction +0 -4
- package/dist/data/hunger_games/function/shrink_border.mcfunction +0 -1
- package/dist/data/hunger_games/function/slow_fall.mcfunction +0 -1
- package/dist/data/hunger_games/function/smoke.mcfunction +0 -1
- package/dist/data/hunger_games/function/sparkles_at.mcfunction +0 -1
- package/dist/data/hunger_games/function/speed.mcfunction +0 -1
- package/dist/data/hunger_games/function/start_countdown.mcfunction +0 -3
- package/dist/data/hunger_games/function/start_countdown__foreach_t0.mcfunction +0 -16
- package/dist/data/hunger_games/function/start_game.mcfunction +0 -4
- package/dist/data/hunger_games/function/start_game__foreach_t3.mcfunction +0 -4
- package/dist/data/hunger_games/function/strength.mcfunction +0 -1
- package/dist/data/hunger_games/function/totem_at.mcfunction +0 -1
- package/dist/data/hunger_games/function/update_bar.mcfunction +0 -5
- package/dist/data/hunger_games/function/update_bar__const_0_0.mcfunction +0 -3
- package/dist/data/hunger_games/function/update_bar_color.mcfunction +0 -7
- package/dist/data/hunger_games/function/update_bar_color__else_2.mcfunction +0 -5
- package/dist/data/hunger_games/function/update_bar_color__else_5.mcfunction +0 -4
- package/dist/data/hunger_games/function/update_bar_color__merge_1.mcfunction +0 -1
- package/dist/data/hunger_games/function/update_bar_color__merge_4.mcfunction +0 -1
- package/dist/data/hunger_games/function/update_bar_color__then_0.mcfunction +0 -4
- package/dist/data/hunger_games/function/update_bar_color__then_3.mcfunction +0 -4
- package/dist/data/hunger_games/function/weather_clear.mcfunction +0 -1
- package/dist/data/hunger_games/function/weather_rain.mcfunction +0 -1
- package/dist/data/hunger_games/function/weather_thunder.mcfunction +0 -1
- package/dist/data/isqrttest/function/__load.mcfunction +0 -6
- package/dist/data/isqrttest/function/isqrt/loop_body_4.mcfunction +0 -12
- package/dist/data/isqrttest/function/isqrt/loop_check_3.mcfunction +0 -5
- package/dist/data/isqrttest/function/isqrt/loop_exit_5.mcfunction +0 -3
- package/dist/data/isqrttest/function/isqrt/merge_2.mcfunction +0 -4
- package/dist/data/isqrttest/function/isqrt/merge_8.mcfunction +0 -6
- package/dist/data/isqrttest/function/isqrt/then_0.mcfunction +0 -3
- package/dist/data/isqrttest/function/isqrt/then_6.mcfunction +0 -3
- package/dist/data/isqrttest/function/isqrt.mcfunction +0 -7
- package/dist/data/isqrttest/function/test.mcfunction +0 -6
- package/dist/data/linalg/function/_vec2d_len_sq_fx.mcfunction +0 -17
- package/dist/data/linalg/function/_vec3d_len_sq_fx.mcfunction +0 -27
- package/dist/data/linalg/function/load.mcfunction +0 -1
- package/dist/data/linalg/function/mat2d_det.mcfunction +0 -16
- package/dist/data/linalg/function/mat2d_mul_r0c0.mcfunction +0 -16
- package/dist/data/linalg/function/mat2d_mul_r0c1.mcfunction +0 -16
- package/dist/data/linalg/function/mat2d_mul_r1c0.mcfunction +0 -16
- package/dist/data/linalg/function/mat2d_mul_r1c1.mcfunction +0 -16
- package/dist/data/linalg/function/mat2d_vecmul_x.mcfunction +0 -16
- package/dist/data/linalg/function/mat2d_vecmul_y.mcfunction +0 -16
- package/dist/data/linalg/function/solve2d_x.mcfunction +0 -27
- package/dist/data/linalg/function/solve2d_y.mcfunction +0 -27
- package/dist/data/linalg/function/vec2d_dist.mcfunction +0 -15
- package/dist/data/linalg/function/vec2d_dot.mcfunction +0 -16
- package/dist/data/linalg/function/vec2d_length.mcfunction +0 -21
- package/dist/data/linalg/function/vec2d_normalize_x.mcfunction +0 -8
- package/dist/data/linalg/function/vec2d_normalize_x__merge_1.mcfunction +0 -10
- package/dist/data/linalg/function/vec2d_normalize_x__then_0.mcfunction +0 -3
- package/dist/data/linalg/function/vec2d_normalize_y.mcfunction +0 -8
- package/dist/data/linalg/function/vec2d_normalize_y__merge_1.mcfunction +0 -10
- package/dist/data/linalg/function/vec2d_normalize_y__then_0.mcfunction +0 -3
- package/dist/data/linalg/function/vec3d_cross_x.mcfunction +0 -16
- package/dist/data/linalg/function/vec3d_cross_y.mcfunction +0 -16
- package/dist/data/linalg/function/vec3d_cross_z.mcfunction +0 -16
- package/dist/data/linalg/function/vec3d_dist.mcfunction +0 -21
- package/dist/data/linalg/function/vec3d_dot.mcfunction +0 -26
- package/dist/data/linalg/function/vec3d_length.mcfunction +0 -31
- package/dist/data/linalg/function/vec3d_normalize_x.mcfunction +0 -9
- package/dist/data/linalg/function/vec3d_normalize_x__merge_1.mcfunction +0 -11
- package/dist/data/linalg/function/vec3d_normalize_x__then_0.mcfunction +0 -3
- package/dist/data/linalg/function/vec3d_normalize_y.mcfunction +0 -9
- package/dist/data/linalg/function/vec3d_normalize_y__merge_1.mcfunction +0 -11
- package/dist/data/linalg/function/vec3d_normalize_y__then_0.mcfunction +0 -3
- package/dist/data/linalg/function/vec3d_normalize_z.mcfunction +0 -9
- package/dist/data/linalg/function/vec3d_normalize_z__merge_1.mcfunction +0 -11
- package/dist/data/linalg/function/vec3d_normalize_z__then_0.mcfunction +0 -3
- package/dist/data/macrotest/function/get_element.mcfunction +0 -2
- package/dist/data/macrotest/function/load.mcfunction +0 -1
- package/dist/data/macrotest/function/test_dynamic_index.mcfunction +0 -2
- package/dist/data/math_hp/function/cos_hp.mcfunction +0 -8
- package/dist/data/math_hp/function/div3_hp.mcfunction +0 -23
- package/dist/data/math_hp/function/div_hp.mcfunction +0 -13
- package/dist/data/math_hp/function/init_div.mcfunction +0 -1
- package/dist/data/math_hp/function/init_trig.mcfunction +0 -1
- package/dist/data/math_hp/function/ln_5term.mcfunction +0 -6
- package/dist/data/math_hp/function/ln_5term__loop_body_1.mcfunction +0 -8
- package/dist/data/math_hp/function/ln_5term__loop_body_4.mcfunction +0 -8
- package/dist/data/math_hp/function/ln_5term__loop_exit_2.mcfunction +0 -1
- package/dist/data/math_hp/function/ln_5term__loop_exit_5.mcfunction +0 -61
- package/dist/data/math_hp/function/ln_5term__loop_header_0.mcfunction +0 -3
- package/dist/data/math_hp/function/ln_5term__loop_header_3.mcfunction +0 -6
- package/dist/data/math_hp/function/load.mcfunction +0 -1
- package/dist/data/math_hp/function/norm3_hp.mcfunction +0 -43
- package/dist/data/math_hp/function/sin_hp.mcfunction +0 -8
- package/dist/data/math_hp/function/sqrt_hp.mcfunction +0 -17
- package/dist/data/math_hp/function/sqrt_hp__merge_1.mcfunction +0 -21
- package/dist/data/math_hp/function/sqrt_hp__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/__load.mcfunction +0 -2
- package/dist/data/mathdemo/function/_atan_init.mcfunction +0 -4
- package/dist/data/mathdemo/function/_math_init.mcfunction +0 -4
- package/dist/data/mathdemo/function/add2d_x.mcfunction +0 -5
- package/dist/data/mathdemo/function/add2d_y.mcfunction +0 -5
- package/dist/data/mathdemo/function/add3d_x.mcfunction +0 -5
- package/dist/data/mathdemo/function/add3d_y.mcfunction +0 -5
- package/dist/data/mathdemo/function/add3d_z.mcfunction +0 -5
- package/dist/data/mathdemo/function/air_drag_fx.mcfunction +0 -2
- package/dist/data/mathdemo/function/apply_drag.mcfunction +0 -8
- package/dist/data/mathdemo/function/apply_gravity.mcfunction +0 -6
- package/dist/data/mathdemo/function/approx_eq.mcfunction +0 -10
- package/dist/data/mathdemo/function/approx_eq__merge_1.mcfunction +0 -3
- package/dist/data/mathdemo/function/approx_eq__merge_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/approx_eq__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/approx_eq__then_2.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed.mcfunction +0 -6
- package/dist/data/mathdemo/function/atan2_fixed__else_30.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__loop_body_26.mcfunction +0 -21
- package/dist/data/mathdemo/function/atan2_fixed__loop_exit_27.mcfunction +0 -5
- package/dist/data/mathdemo/function/atan2_fixed__loop_header_25.mcfunction +0 -3
- package/dist/data/mathdemo/function/atan2_fixed__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_10.mcfunction +0 -5
- package/dist/data/mathdemo/function/atan2_fixed__merge_12.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__merge_16.mcfunction +0 -5
- package/dist/data/mathdemo/function/atan2_fixed__merge_18.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_20.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_22.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_24.mcfunction +0 -3
- package/dist/data/mathdemo/function/atan2_fixed__merge_29.mcfunction +0 -1
- package/dist/data/mathdemo/function/atan2_fixed__merge_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_32.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_34.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__merge_36.mcfunction +0 -3
- package/dist/data/mathdemo/function/atan2_fixed__merge_40.mcfunction +0 -3
- package/dist/data/mathdemo/function/atan2_fixed__merge_6.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__then_11.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__then_15.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__then_17.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__then_19.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__then_2.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__then_21.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__then_23.mcfunction +0 -5
- package/dist/data/mathdemo/function/atan2_fixed__then_28.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__then_31.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__then_33.mcfunction +0 -4
- package/dist/data/mathdemo/function/atan2_fixed__then_35.mcfunction +0 -1
- package/dist/data/mathdemo/function/atan2_fixed__then_39.mcfunction +0 -3
- package/dist/data/mathdemo/function/atan2_fixed__then_5.mcfunction +0 -2
- package/dist/data/mathdemo/function/atan2_fixed__then_9.mcfunction +0 -4
- package/dist/data/mathdemo/function/bounce_v.mcfunction +0 -10
- package/dist/data/mathdemo/function/cbrt_fx.mcfunction +0 -5
- package/dist/data/mathdemo/function/cbrt_fx__loop_body_6.mcfunction +0 -7
- package/dist/data/mathdemo/function/cbrt_fx__loop_exit_7.mcfunction +0 -1
- package/dist/data/mathdemo/function/cbrt_fx__loop_header_5.mcfunction +0 -4
- package/dist/data/mathdemo/function/cbrt_fx__merge_1.mcfunction +0 -8
- package/dist/data/mathdemo/function/cbrt_fx__merge_11.mcfunction +0 -5
- package/dist/data/mathdemo/function/cbrt_fx__merge_13.mcfunction +0 -4
- package/dist/data/mathdemo/function/cbrt_fx__merge_4.mcfunction +0 -2
- package/dist/data/mathdemo/function/cbrt_fx__merge_9.mcfunction +0 -13
- package/dist/data/mathdemo/function/cbrt_fx__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/cbrt_fx__then_10.mcfunction +0 -2
- package/dist/data/mathdemo/function/cbrt_fx__then_12.mcfunction +0 -2
- package/dist/data/mathdemo/function/cbrt_fx__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/cbrt_fx__then_8.mcfunction +0 -2
- package/dist/data/mathdemo/function/ceil_div.mcfunction +0 -9
- package/dist/data/mathdemo/function/chebyshev.mcfunction +0 -14
- package/dist/data/mathdemo/function/chebyshev3d.mcfunction +0 -19
- package/dist/data/mathdemo/function/chebyshev3d__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev3d__merge_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev3d__merge_5.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev3d__merge_7.mcfunction +0 -3
- package/dist/data/mathdemo/function/chebyshev3d__merge_9.mcfunction +0 -1
- package/dist/data/mathdemo/function/chebyshev3d__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev3d__then_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev3d__then_4.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev3d__then_6.mcfunction +0 -2
- package/dist/data/mathdemo/function/chebyshev3d__then_8.mcfunction +0 -2
- package/dist/data/mathdemo/function/chebyshev__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev__merge_3.mcfunction +0 -3
- package/dist/data/mathdemo/function/chebyshev__merge_5.mcfunction +0 -1
- package/dist/data/mathdemo/function/chebyshev__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev__then_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/chebyshev__then_4.mcfunction +0 -1
- package/dist/data/mathdemo/function/circular_x.mcfunction +0 -14
- package/dist/data/mathdemo/function/circular_z.mcfunction +0 -14
- package/dist/data/mathdemo/function/clamp_velocity.mcfunction +0 -5
- package/dist/data/mathdemo/function/clamp_velocity__merge_1.mcfunction +0 -5
- package/dist/data/mathdemo/function/clamp_velocity__merge_4.mcfunction +0 -1
- package/dist/data/mathdemo/function/clamp_velocity__then_0.mcfunction +0 -1
- package/dist/data/mathdemo/function/clamp_velocity__then_3.mcfunction +0 -3
- package/dist/data/mathdemo/function/combinations.mcfunction +0 -6
- package/dist/data/mathdemo/function/combinations__loop_body_9.mcfunction +0 -15
- package/dist/data/mathdemo/function/combinations__loop_exit_10.mcfunction +0 -1
- package/dist/data/mathdemo/function/combinations__loop_header_8.mcfunction +0 -3
- package/dist/data/mathdemo/function/combinations__merge_1.mcfunction +0 -3
- package/dist/data/mathdemo/function/combinations__merge_4.mcfunction +0 -6
- package/dist/data/mathdemo/function/combinations__merge_7.mcfunction +0 -3
- package/dist/data/mathdemo/function/combinations__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/combinations__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/combinations__then_6.mcfunction +0 -4
- package/dist/data/mathdemo/function/cos_fixed.mcfunction +0 -7
- package/dist/data/mathdemo/function/cross2d.mcfunction +0 -11
- package/dist/data/mathdemo/function/cross3d_x.mcfunction +0 -11
- package/dist/data/mathdemo/function/cross3d_y.mcfunction +0 -11
- package/dist/data/mathdemo/function/cross3d_z.mcfunction +0 -11
- package/dist/data/mathdemo/function/demo_easing.mcfunction +0 -12
- package/dist/data/mathdemo/function/demo_math.mcfunction +0 -16
- package/dist/data/mathdemo/function/demo_noise.mcfunction +0 -14
- package/dist/data/mathdemo/function/demo_physics.mcfunction +0 -11
- package/dist/data/mathdemo/function/demo_physics__loop_body_1.mcfunction +0 -9
- package/dist/data/mathdemo/function/demo_physics__loop_body_4.mcfunction +0 -18
- package/dist/data/mathdemo/function/demo_physics__loop_exit_2.mcfunction +0 -6
- package/dist/data/mathdemo/function/demo_physics__loop_exit_5.mcfunction +0 -1
- package/dist/data/mathdemo/function/demo_physics__loop_header_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/demo_physics__loop_header_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/distance2d_fixed.mcfunction +0 -13
- package/dist/data/mathdemo/function/distance3d_fixed.mcfunction +0 -18
- package/dist/data/mathdemo/function/divfix.mcfunction +0 -6
- package/dist/data/mathdemo/function/divfix__merge_1.mcfunction +0 -6
- package/dist/data/mathdemo/function/divfix__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/dot2d.mcfunction +0 -11
- package/dist/data/mathdemo/function/dot3d.mcfunction +0 -17
- package/dist/data/mathdemo/function/ease_in_back.mcfunction +0 -26
- package/dist/data/mathdemo/function/ease_in_bounce.mcfunction +0 -9
- package/dist/data/mathdemo/function/ease_in_cubic.mcfunction +0 -12
- package/dist/data/mathdemo/function/ease_in_expo.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_expo__merge_1.mcfunction +0 -11
- package/dist/data/mathdemo/function/ease_in_expo__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/ease_in_out_back.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_out_back__merge_1.mcfunction +0 -14
- package/dist/data/mathdemo/function/ease_in_out_back__then_0.mcfunction +0 -10
- package/dist/data/mathdemo/function/ease_in_out_bounce.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_out_bounce__merge_1.mcfunction +0 -14
- package/dist/data/mathdemo/function/ease_in_out_bounce__then_0.mcfunction +0 -10
- package/dist/data/mathdemo/function/ease_in_out_cubic.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_out_cubic__merge_1.mcfunction +0 -17
- package/dist/data/mathdemo/function/ease_in_out_cubic__then_0.mcfunction +0 -13
- package/dist/data/mathdemo/function/ease_in_out_quad.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_out_quad__merge_1.mcfunction +0 -12
- package/dist/data/mathdemo/function/ease_in_out_quad__then_0.mcfunction +0 -8
- package/dist/data/mathdemo/function/ease_in_out_sine.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_out_sine__merge_1.mcfunction +0 -14
- package/dist/data/mathdemo/function/ease_in_out_sine__then_0.mcfunction +0 -10
- package/dist/data/mathdemo/function/ease_in_quad.mcfunction +0 -7
- package/dist/data/mathdemo/function/ease_in_quad__const_5000.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_in_quart.mcfunction +0 -12
- package/dist/data/mathdemo/function/ease_in_sine.mcfunction +0 -30
- package/dist/data/mathdemo/function/ease_linear.mcfunction +0 -2
- package/dist/data/mathdemo/function/ease_linear__const_5000.mcfunction +0 -2
- package/dist/data/mathdemo/function/ease_out_back.mcfunction +0 -9
- package/dist/data/mathdemo/function/ease_out_back__const_5000.mcfunction +0 -7
- package/dist/data/mathdemo/function/ease_out_bounce.mcfunction +0 -6
- package/dist/data/mathdemo/function/ease_out_bounce__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/ease_out_bounce__merge_4.mcfunction +0 -4
- package/dist/data/mathdemo/function/ease_out_bounce__merge_7.mcfunction +0 -15
- package/dist/data/mathdemo/function/ease_out_bounce__then_0.mcfunction +0 -11
- package/dist/data/mathdemo/function/ease_out_bounce__then_3.mcfunction +0 -15
- package/dist/data/mathdemo/function/ease_out_bounce__then_6.mcfunction +0 -15
- package/dist/data/mathdemo/function/ease_out_cubic.mcfunction +0 -16
- package/dist/data/mathdemo/function/ease_out_cubic__const_5000.mcfunction +0 -14
- package/dist/data/mathdemo/function/ease_out_expo.mcfunction +0 -5
- package/dist/data/mathdemo/function/ease_out_expo__merge_1.mcfunction +0 -8
- package/dist/data/mathdemo/function/ease_out_expo__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/ease_out_quad.mcfunction +0 -11
- package/dist/data/mathdemo/function/ease_out_quart.mcfunction +0 -16
- package/dist/data/mathdemo/function/ease_out_sine.mcfunction +0 -9
- package/dist/data/mathdemo/function/ease_smooth.mcfunction +0 -23
- package/dist/data/mathdemo/function/ease_smoother.mcfunction +0 -41
- package/dist/data/mathdemo/function/exp_fx.mcfunction +0 -16
- package/dist/data/mathdemo/function/exp_fx__loop_body_10.mcfunction +0 -8
- package/dist/data/mathdemo/function/exp_fx__loop_body_5.mcfunction +0 -8
- package/dist/data/mathdemo/function/exp_fx__loop_exit_11.mcfunction +0 -1
- package/dist/data/mathdemo/function/exp_fx__loop_exit_6.mcfunction +0 -1
- package/dist/data/mathdemo/function/exp_fx__loop_header_4.mcfunction +0 -3
- package/dist/data/mathdemo/function/exp_fx__loop_header_9.mcfunction +0 -3
- package/dist/data/mathdemo/function/exp_fx__merge_1.mcfunction +0 -47
- package/dist/data/mathdemo/function/exp_fx__merge_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/exp_fx__merge_8.mcfunction +0 -1
- package/dist/data/mathdemo/function/exp_fx__then_0.mcfunction +0 -7
- package/dist/data/mathdemo/function/exp_fx__then_2.mcfunction +0 -2
- package/dist/data/mathdemo/function/exp_fx__then_7.mcfunction +0 -5
- package/dist/data/mathdemo/function/factorial.mcfunction +0 -5
- package/dist/data/mathdemo/function/factorial__loop_body_4.mcfunction +0 -7
- package/dist/data/mathdemo/function/factorial__loop_exit_5.mcfunction +0 -1
- package/dist/data/mathdemo/function/factorial__loop_header_3.mcfunction +0 -3
- package/dist/data/mathdemo/function/factorial__merge_1.mcfunction +0 -3
- package/dist/data/mathdemo/function/factorial__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/fbm_1d.mcfunction +0 -9
- package/dist/data/mathdemo/function/fbm_1d__loop_body_1.mcfunction +0 -33
- package/dist/data/mathdemo/function/fbm_1d__loop_exit_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/fbm_1d__loop_header_0.mcfunction +0 -3
- package/dist/data/mathdemo/function/fbm_1d__merge_4.mcfunction +0 -6
- package/dist/data/mathdemo/function/fbm_1d__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/fbm_2d.mcfunction +0 -10
- package/dist/data/mathdemo/function/fbm_2d__loop_body_1.mcfunction +0 -39
- package/dist/data/mathdemo/function/fbm_2d__loop_exit_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/fbm_2d__loop_header_0.mcfunction +0 -3
- package/dist/data/mathdemo/function/fbm_2d__merge_4.mcfunction +0 -6
- package/dist/data/mathdemo/function/fbm_2d__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/friction_decel.mcfunction +0 -5
- package/dist/data/mathdemo/function/friction_decel__merge_1.mcfunction +0 -5
- package/dist/data/mathdemo/function/friction_decel__merge_4.mcfunction +0 -2
- package/dist/data/mathdemo/function/friction_decel__then_0.mcfunction +0 -3
- package/dist/data/mathdemo/function/friction_decel__then_3.mcfunction +0 -3
- package/dist/data/mathdemo/function/gamma_int.mcfunction +0 -5
- package/dist/data/mathdemo/function/gamma_int__merge_1.mcfunction +0 -6
- package/dist/data/mathdemo/function/gamma_int__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/gcd.mcfunction +0 -7
- package/dist/data/mathdemo/function/gcd__loop_body_5.mcfunction +0 -5
- package/dist/data/mathdemo/function/gcd__loop_exit_6.mcfunction +0 -1
- package/dist/data/mathdemo/function/gcd__loop_header_4.mcfunction +0 -4
- package/dist/data/mathdemo/function/gcd__merge_1.mcfunction +0 -5
- package/dist/data/mathdemo/function/gcd__merge_3.mcfunction +0 -1
- package/dist/data/mathdemo/function/gcd__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/gcd__then_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/gravity_fx.mcfunction +0 -2
- package/dist/data/mathdemo/function/hash_1d.mcfunction +0 -15
- package/dist/data/mathdemo/function/hash_1d_pos.mcfunction +0 -9
- package/dist/data/mathdemo/function/hash_1d_pos__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/hash_1d_pos__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/hash_2d.mcfunction +0 -11
- package/dist/data/mathdemo/function/hash_2d_pos.mcfunction +0 -11
- package/dist/data/mathdemo/function/hash_2d_pos__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/hash_2d_pos__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/impact_velocity.mcfunction +0 -5
- package/dist/data/mathdemo/function/impact_velocity__merge_1.mcfunction +0 -16
- package/dist/data/mathdemo/function/impact_velocity__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/is_grounded.mcfunction +0 -5
- package/dist/data/mathdemo/function/is_grounded__merge_1.mcfunction +0 -2
- package/dist/data/mathdemo/function/is_grounded__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/isqrt.mcfunction +0 -5
- package/dist/data/mathdemo/function/isqrt__loop_body_10.mcfunction +0 -8
- package/dist/data/mathdemo/function/isqrt__loop_body_13.mcfunction +0 -11
- package/dist/data/mathdemo/function/isqrt__loop_body_7.mcfunction +0 -8
- package/dist/data/mathdemo/function/isqrt__loop_exit_11.mcfunction +0 -2
- package/dist/data/mathdemo/function/isqrt__loop_exit_14.mcfunction +0 -1
- package/dist/data/mathdemo/function/isqrt__loop_exit_8.mcfunction +0 -9
- package/dist/data/mathdemo/function/isqrt__loop_header_12.mcfunction +0 -4
- package/dist/data/mathdemo/function/isqrt__loop_header_6.mcfunction +0 -4
- package/dist/data/mathdemo/function/isqrt__loop_header_9.mcfunction +0 -3
- package/dist/data/mathdemo/function/isqrt__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/isqrt__merge_16.mcfunction +0 -5
- package/dist/data/mathdemo/function/isqrt__merge_4.mcfunction +0 -3
- package/dist/data/mathdemo/function/isqrt__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/isqrt__then_15.mcfunction +0 -1
- package/dist/data/mathdemo/function/isqrt__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/lcm.mcfunction +0 -11
- package/dist/data/mathdemo/function/lcm__merge_1.mcfunction +0 -5
- package/dist/data/mathdemo/function/lcm__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/length2d_fixed.mcfunction +0 -15
- package/dist/data/mathdemo/function/length3d_fixed.mcfunction +0 -20
- package/dist/data/mathdemo/function/lerp.mcfunction +0 -13
- package/dist/data/mathdemo/function/lerp2d_x.mcfunction +0 -13
- package/dist/data/mathdemo/function/lerp2d_y.mcfunction +0 -13
- package/dist/data/mathdemo/function/ln.mcfunction +0 -9
- package/dist/data/mathdemo/function/ln__loop_body_1.mcfunction +0 -8
- package/dist/data/mathdemo/function/ln__loop_body_4.mcfunction +0 -8
- package/dist/data/mathdemo/function/ln__loop_exit_2.mcfunction +0 -1
- package/dist/data/mathdemo/function/ln__loop_exit_5.mcfunction +0 -37
- package/dist/data/mathdemo/function/ln__loop_header_0.mcfunction +0 -3
- package/dist/data/mathdemo/function/ln__loop_header_3.mcfunction +0 -6
- package/dist/data/mathdemo/function/load.mcfunction +0 -1
- package/dist/data/mathdemo/function/log10_fx.mcfunction +0 -11
- package/dist/data/mathdemo/function/log2_fx.mcfunction +0 -11
- package/dist/data/mathdemo/function/log2_int.mcfunction +0 -5
- package/dist/data/mathdemo/function/log2_int__loop_body_4.mcfunction +0 -8
- package/dist/data/mathdemo/function/log2_int__loop_exit_5.mcfunction +0 -1
- package/dist/data/mathdemo/function/log2_int__loop_header_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/log2_int__merge_1.mcfunction +0 -3
- package/dist/data/mathdemo/function/log2_int__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/loga_fx.mcfunction +0 -10
- package/dist/data/mathdemo/function/loga_fx__merge_1.mcfunction +0 -9
- package/dist/data/mathdemo/function/loga_fx__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/manhattan.mcfunction +0 -14
- package/dist/data/mathdemo/function/manhattan3d.mcfunction +0 -19
- package/dist/data/mathdemo/function/manhattan3d__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan3d__merge_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan3d__merge_5.mcfunction +0 -5
- package/dist/data/mathdemo/function/manhattan3d__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan3d__then_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan3d__then_4.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan__merge_3.mcfunction +0 -3
- package/dist/data/mathdemo/function/manhattan__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/manhattan__then_2.mcfunction +0 -4
- package/dist/data/mathdemo/function/map.mcfunction +0 -12
- package/dist/data/mathdemo/function/map__merge_1.mcfunction +0 -11
- package/dist/data/mathdemo/function/map__then_0.mcfunction +0 -1
- package/dist/data/mathdemo/function/mulfix.mcfunction +0 -8
- package/dist/data/mathdemo/function/neg2d_x.mcfunction +0 -4
- package/dist/data/mathdemo/function/neg2d_y.mcfunction +0 -4
- package/dist/data/mathdemo/function/neg3d_x.mcfunction +0 -4
- package/dist/data/mathdemo/function/neg3d_y.mcfunction +0 -4
- package/dist/data/mathdemo/function/neg3d_z.mcfunction +0 -4
- package/dist/data/mathdemo/function/normalize2d_x.mcfunction +0 -11
- package/dist/data/mathdemo/function/normalize2d_x__merge_1.mcfunction +0 -6
- package/dist/data/mathdemo/function/normalize2d_x__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/normalize2d_y.mcfunction +0 -11
- package/dist/data/mathdemo/function/normalize2d_y__merge_1.mcfunction +0 -6
- package/dist/data/mathdemo/function/normalize2d_y__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/pow_int.mcfunction +0 -6
- package/dist/data/mathdemo/function/pow_int__loop_body_4.mcfunction +0 -7
- package/dist/data/mathdemo/function/pow_int__loop_exit_5.mcfunction +0 -1
- package/dist/data/mathdemo/function/pow_int__loop_header_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/pow_int__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/pow_int__merge_7.mcfunction +0 -8
- package/dist/data/mathdemo/function/pow_int__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/pow_int__then_6.mcfunction +0 -4
- package/dist/data/mathdemo/function/projectile_land_t.mcfunction +0 -5
- package/dist/data/mathdemo/function/projectile_land_t__merge_1.mcfunction +0 -7
- package/dist/data/mathdemo/function/projectile_land_t__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/projectile_max_height.mcfunction +0 -10
- package/dist/data/mathdemo/function/projectile_max_height__const_200.mcfunction +0 -8
- package/dist/data/mathdemo/function/projectile_vy.mcfunction +0 -9
- package/dist/data/mathdemo/function/projectile_x.mcfunction +0 -8
- package/dist/data/mathdemo/function/projectile_y.mcfunction +0 -19
- package/dist/data/mathdemo/function/quadratic_disc.mcfunction +0 -12
- package/dist/data/mathdemo/function/quadratic_x1.mcfunction +0 -7
- package/dist/data/mathdemo/function/quadratic_x1__merge_1.mcfunction +0 -13
- package/dist/data/mathdemo/function/quadratic_x1__merge_4.mcfunction +0 -15
- package/dist/data/mathdemo/function/quadratic_x1__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/quadratic_x1__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/quadratic_x2.mcfunction +0 -7
- package/dist/data/mathdemo/function/quadratic_x2__merge_1.mcfunction +0 -13
- package/dist/data/mathdemo/function/quadratic_x2__merge_4.mcfunction +0 -15
- package/dist/data/mathdemo/function/quadratic_x2__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/quadratic_x2__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/rotate2d_x.mcfunction +0 -20
- package/dist/data/mathdemo/function/rotate2d_y.mcfunction +0 -20
- package/dist/data/mathdemo/function/scale2d_x.mcfunction +0 -8
- package/dist/data/mathdemo/function/scale2d_y.mcfunction +0 -8
- package/dist/data/mathdemo/function/scale3d_x.mcfunction +0 -8
- package/dist/data/mathdemo/function/scale3d_y.mcfunction +0 -8
- package/dist/data/mathdemo/function/scale3d_z.mcfunction +0 -8
- package/dist/data/mathdemo/function/sign.mcfunction +0 -5
- package/dist/data/mathdemo/function/sign__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/sign__merge_4.mcfunction +0 -2
- package/dist/data/mathdemo/function/sign__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/sign__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/sin_fixed.mcfunction +0 -9
- package/dist/data/mathdemo/function/sin_fixed__merge_1.mcfunction +0 -4
- package/dist/data/mathdemo/function/sin_fixed__merge_3.mcfunction +0 -4
- package/dist/data/mathdemo/function/sin_fixed__merge_6.mcfunction +0 -4
- package/dist/data/mathdemo/function/sin_fixed__merge_9.mcfunction +0 -10
- package/dist/data/mathdemo/function/sin_fixed__then_0.mcfunction +0 -4
- package/dist/data/mathdemo/function/sin_fixed__then_2.mcfunction +0 -6
- package/dist/data/mathdemo/function/sin_fixed__then_5.mcfunction +0 -8
- package/dist/data/mathdemo/function/sin_fixed__then_8.mcfunction +0 -10
- package/dist/data/mathdemo/function/smootherstep.mcfunction +0 -10
- package/dist/data/mathdemo/function/smootherstep__merge_1.mcfunction +0 -12
- package/dist/data/mathdemo/function/smootherstep__merge_4.mcfunction +0 -4
- package/dist/data/mathdemo/function/smootherstep__merge_6.mcfunction +0 -27
- package/dist/data/mathdemo/function/smootherstep__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/smootherstep__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/smootherstep__then_5.mcfunction +0 -2
- package/dist/data/mathdemo/function/smoothstep.mcfunction +0 -10
- package/dist/data/mathdemo/function/smoothstep__merge_1.mcfunction +0 -12
- package/dist/data/mathdemo/function/smoothstep__merge_4.mcfunction +0 -4
- package/dist/data/mathdemo/function/smoothstep__merge_6.mcfunction +0 -15
- package/dist/data/mathdemo/function/smoothstep__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/smoothstep__then_3.mcfunction +0 -2
- package/dist/data/mathdemo/function/smoothstep__then_5.mcfunction +0 -2
- package/dist/data/mathdemo/function/solve2x2_x.mcfunction +0 -17
- package/dist/data/mathdemo/function/solve2x2_x__merge_1.mcfunction +0 -12
- package/dist/data/mathdemo/function/solve2x2_x__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/solve2x2_y.mcfunction +0 -17
- package/dist/data/mathdemo/function/solve2x2_y__merge_1.mcfunction +0 -12
- package/dist/data/mathdemo/function/solve2x2_y__then_0.mcfunction +0 -2
- package/dist/data/mathdemo/function/spring_force.mcfunction +0 -11
- package/dist/data/mathdemo/function/spring_update_v.mcfunction +0 -18
- package/dist/data/mathdemo/function/sqrt_fixed.mcfunction +0 -8
- package/dist/data/mathdemo/function/sqrt_fx.mcfunction +0 -11
- package/dist/data/mathdemo/function/sqrt_fx__const_20000.mcfunction +0 -8
- package/dist/data/mathdemo/function/start.mcfunction +0 -6
- package/dist/data/mathdemo/function/sub2d_x.mcfunction +0 -5
- package/dist/data/mathdemo/function/sub2d_y.mcfunction +0 -5
- package/dist/data/mathdemo/function/sub3d_x.mcfunction +0 -5
- package/dist/data/mathdemo/function/sub3d_y.mcfunction +0 -5
- package/dist/data/mathdemo/function/sub3d_z.mcfunction +0 -5
- package/dist/data/mathdemo/function/terrain_height.mcfunction +0 -24
- package/dist/data/mathdemo/function/terrain_height__const_0_0_64_20.mcfunction +0 -17
- package/dist/data/mathdemo/function/terrain_height__const_10_5_64_20.mcfunction +0 -17
- package/dist/data/mathdemo/function/update_pos.mcfunction +0 -5
- package/dist/data/mathdemo/function/value_noise_1d.mcfunction +0 -13
- package/dist/data/mathdemo/function/value_noise_1d__merge_1.mcfunction +0 -39
- package/dist/data/mathdemo/function/value_noise_1d__then_0.mcfunction +0 -7
- package/dist/data/mathdemo/function/value_noise_2d.mcfunction +0 -14
- package/dist/data/mathdemo/function/value_noise_2d__merge_1.mcfunction +0 -12
- package/dist/data/mathdemo/function/value_noise_2d__merge_3.mcfunction +0 -98
- package/dist/data/mathdemo/function/value_noise_2d__then_0.mcfunction +0 -7
- package/dist/data/mathdemo/function/value_noise_2d__then_2.mcfunction +0 -7
- package/dist/data/mathdemo/function/water_drag_fx.mcfunction +0 -2
- package/dist/data/mathtest/function/__load.mcfunction +0 -3
- package/dist/data/mathtest/function/abs/merge_2.mcfunction +0 -3
- package/dist/data/mathtest/function/abs/then_0.mcfunction +0 -5
- package/dist/data/mathtest/function/abs.mcfunction +0 -6
- package/dist/data/mathtest/function/test.mcfunction +0 -5
- package/dist/data/minecraft/tags/function/load.json +0 -5
- package/dist/data/minecraft/tags/function/tick.json +0 -5
- package/dist/data/mypack/function/__load.mcfunction +0 -13
- package/dist/data/mypack/function/_atan_init.mcfunction +0 -2
- package/dist/data/mypack/function/abs/merge_2.mcfunction +0 -3
- package/dist/data/mypack/function/abs/then_0.mcfunction +0 -5
- package/dist/data/mypack/function/abs.mcfunction +0 -6
- package/dist/data/mypack/function/atan2_fixed/__sgi_1.mcfunction +0 -2
- package/dist/data/mypack/function/atan2_fixed/else_34.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/loop_body_31.mcfunction +0 -19
- package/dist/data/mypack/function/atan2_fixed/loop_check_30.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/loop_exit_32.mcfunction +0 -6
- package/dist/data/mypack/function/atan2_fixed/merge_11.mcfunction +0 -6
- package/dist/data/mypack/function/atan2_fixed/merge_14.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/merge_17.mcfunction +0 -6
- package/dist/data/mypack/function/atan2_fixed/merge_2.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_20.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_23.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_26.mcfunction +0 -6
- package/dist/data/mypack/function/atan2_fixed/merge_29.mcfunction +0 -4
- package/dist/data/mypack/function/atan2_fixed/merge_38.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_41.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_44.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_47.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_5.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/merge_8.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_0.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_12.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_15.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_18.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_21.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_24.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_27.mcfunction +0 -6
- package/dist/data/mypack/function/atan2_fixed/then_3.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_33.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_36.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_39.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_42.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_45.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed/then_6.mcfunction +0 -3
- package/dist/data/mypack/function/atan2_fixed/then_9.mcfunction +0 -5
- package/dist/data/mypack/function/atan2_fixed.mcfunction +0 -7
- package/dist/data/mypack/function/my_game.mcfunction +0 -10
- package/dist/data/parkour_race/function/angry_at.mcfunction +0 -1
- package/dist/data/parkour_race/function/barrier_wall.mcfunction +0 -1
- package/dist/data/parkour_race/function/buff_all.mcfunction +0 -22
- package/dist/data/parkour_race/function/check_checkpoints.mcfunction +0 -11
- package/dist/data/parkour_race/function/check_checkpoints__exec_t11.mcfunction +0 -4
- package/dist/data/parkour_race/function/check_checkpoints__exec_t13.mcfunction +0 -3
- package/dist/data/parkour_race/function/check_checkpoints__exec_t5.mcfunction +0 -4
- package/dist/data/parkour_race/function/check_checkpoints__exec_t7.mcfunction +0 -4
- package/dist/data/parkour_race/function/check_checkpoints__exec_t9.mcfunction +0 -4
- package/dist/data/parkour_race/function/check_checkpoints__merge_1.mcfunction +0 -5
- package/dist/data/parkour_race/function/check_checkpoints__merge_3.mcfunction +0 -5
- package/dist/data/parkour_race/function/check_checkpoints__merge_5.mcfunction +0 -5
- package/dist/data/parkour_race/function/check_checkpoints__merge_7.mcfunction +0 -5
- package/dist/data/parkour_race/function/check_checkpoints__merge_9.mcfunction +0 -1
- package/dist/data/parkour_race/function/check_checkpoints__then_0.mcfunction +0 -2
- package/dist/data/parkour_race/function/check_checkpoints__then_2.mcfunction +0 -2
- package/dist/data/parkour_race/function/check_checkpoints__then_4.mcfunction +0 -2
- package/dist/data/parkour_race/function/check_checkpoints__then_6.mcfunction +0 -2
- package/dist/data/parkour_race/function/check_checkpoints__then_8.mcfunction +0 -2
- package/dist/data/parkour_race/function/check_fall.mcfunction +0 -1
- package/dist/data/parkour_race/function/check_fall__exec_t1.mcfunction +0 -10
- package/dist/data/parkour_race/function/clear_area.mcfunction +0 -1
- package/dist/data/parkour_race/function/clear_effect.mcfunction +0 -1
- package/dist/data/parkour_race/function/clear_effects.mcfunction +0 -1
- package/dist/data/parkour_race/function/create_health_bar.mcfunction +0 -24
- package/dist/data/parkour_race/function/create_progress_bar.mcfunction +0 -24
- package/dist/data/parkour_race/function/create_timer_bar.mcfunction +0 -30
- package/dist/data/parkour_race/function/disable_fire_spread.mcfunction +0 -1
- package/dist/data/parkour_race/function/disable_keep_inventory.mcfunction +0 -1
- package/dist/data/parkour_race/function/disable_mob_griefing.mcfunction +0 -1
- package/dist/data/parkour_race/function/enable_keep_inventory.mcfunction +0 -1
- package/dist/data/parkour_race/function/end_sparkles_at.mcfunction +0 -1
- package/dist/data/parkour_race/function/explosion_effect.mcfunction +0 -1
- package/dist/data/parkour_race/function/finish_race.mcfunction +0 -20
- package/dist/data/parkour_race/function/finish_race__else_2.mcfunction +0 -4
- package/dist/data/parkour_race/function/finish_race__else_5.mcfunction +0 -3
- package/dist/data/parkour_race/function/finish_race__merge_1.mcfunction +0 -3
- package/dist/data/parkour_race/function/finish_race__merge_4.mcfunction +0 -1
- package/dist/data/parkour_race/function/finish_race__then_0.mcfunction +0 -8
- package/dist/data/parkour_race/function/finish_race__then_3.mcfunction +0 -10
- package/dist/data/parkour_race/function/flames.mcfunction +0 -1
- package/dist/data/parkour_race/function/glass_box.mcfunction +0 -2
- package/dist/data/parkour_race/function/glow.mcfunction +0 -1
- package/dist/data/parkour_race/function/happy_at.mcfunction +0 -1
- package/dist/data/parkour_race/function/hearts_at.mcfunction +0 -1
- package/dist/data/parkour_race/function/hide_bar.mcfunction +0 -4
- package/dist/data/parkour_race/function/init.mcfunction +0 -18
- package/dist/data/parkour_race/function/invisible.mcfunction +0 -1
- package/dist/data/parkour_race/function/jump.mcfunction +0 -1
- package/dist/data/parkour_race/function/load.mcfunction +0 -1
- package/dist/data/parkour_race/function/night_vision.mcfunction +0 -1
- package/dist/data/parkour_race/function/portal_effect.mcfunction +0 -1
- package/dist/data/parkour_race/function/quit_race.mcfunction +0 -10
- package/dist/data/parkour_race/function/quit_race__merge_1.mcfunction +0 -1
- package/dist/data/parkour_race/function/quit_race__then_0.mcfunction +0 -11
- package/dist/data/parkour_race/function/race_tick.mcfunction +0 -1
- package/dist/data/parkour_race/function/race_tick__foreach_t0.mcfunction +0 -10
- package/dist/data/parkour_race/function/race_tick__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/parkour_race/function/race_tick__foreach_t0__then_0.mcfunction +0 -13
- package/dist/data/parkour_race/function/reach_checkpoint.mcfunction +0 -11
- package/dist/data/parkour_race/function/regen.mcfunction +0 -1
- package/dist/data/parkour_race/function/remove_bar.mcfunction +0 -3
- package/dist/data/parkour_race/function/resistance.mcfunction +0 -1
- package/dist/data/parkour_race/function/respawn_at_checkpoint.mcfunction +0 -7
- package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_1.mcfunction +0 -5
- package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_3.mcfunction +0 -5
- package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_5.mcfunction +0 -5
- package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_7.mcfunction +0 -5
- package/dist/data/parkour_race/function/respawn_at_checkpoint__merge_9.mcfunction +0 -1
- package/dist/data/parkour_race/function/respawn_at_checkpoint__then_0.mcfunction +0 -6
- package/dist/data/parkour_race/function/respawn_at_checkpoint__then_2.mcfunction +0 -6
- package/dist/data/parkour_race/function/respawn_at_checkpoint__then_4.mcfunction +0 -6
- package/dist/data/parkour_race/function/respawn_at_checkpoint__then_6.mcfunction +0 -6
- package/dist/data/parkour_race/function/respawn_at_checkpoint__then_8.mcfunction +0 -6
- package/dist/data/parkour_race/function/set_day.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_easy.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_hard.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_midnight.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_night.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_noon.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_normal.mcfunction +0 -1
- package/dist/data/parkour_race/function/set_peaceful.mcfunction +0 -1
- package/dist/data/parkour_race/function/show_bar.mcfunction +0 -4
- package/dist/data/parkour_race/function/show_leaderboard.mcfunction +0 -4
- package/dist/data/parkour_race/function/slow_fall.mcfunction +0 -1
- package/dist/data/parkour_race/function/smoke.mcfunction +0 -1
- package/dist/data/parkour_race/function/sparkles_at.mcfunction +0 -1
- package/dist/data/parkour_race/function/speed.mcfunction +0 -1
- package/dist/data/parkour_race/function/start_race.mcfunction +0 -10
- package/dist/data/parkour_race/function/start_race__merge_1.mcfunction +0 -23
- package/dist/data/parkour_race/function/start_race__then_0.mcfunction +0 -1
- package/dist/data/parkour_race/function/strength.mcfunction +0 -1
- package/dist/data/parkour_race/function/totem_at.mcfunction +0 -1
- package/dist/data/parkour_race/function/update_bar.mcfunction +0 -5
- package/dist/data/parkour_race/function/update_bar_color.mcfunction +0 -7
- package/dist/data/parkour_race/function/update_bar_color__else_2.mcfunction +0 -5
- package/dist/data/parkour_race/function/update_bar_color__else_5.mcfunction +0 -4
- package/dist/data/parkour_race/function/update_bar_color__merge_1.mcfunction +0 -1
- package/dist/data/parkour_race/function/update_bar_color__merge_4.mcfunction +0 -1
- package/dist/data/parkour_race/function/update_bar_color__then_0.mcfunction +0 -4
- package/dist/data/parkour_race/function/update_bar_color__then_3.mcfunction +0 -4
- package/dist/data/parkour_race/function/weather_clear.mcfunction +0 -1
- package/dist/data/parkour_race/function/weather_rain.mcfunction +0 -1
- package/dist/data/parkour_race/function/weather_thunder.mcfunction +0 -1
- package/dist/data/quiz/function/__load.mcfunction +0 -16
- package/dist/data/quiz/function/__tick.mcfunction +0 -6
- package/dist/data/quiz/function/__trigger_quiz_a_dispatch.mcfunction +0 -4
- package/dist/data/quiz/function/__trigger_quiz_b_dispatch.mcfunction +0 -4
- package/dist/data/quiz/function/__trigger_quiz_c_dispatch.mcfunction +0 -4
- package/dist/data/quiz/function/__trigger_quiz_start_dispatch.mcfunction +0 -4
- package/dist/data/quiz/function/answer_a.mcfunction +0 -4
- package/dist/data/quiz/function/answer_b.mcfunction +0 -4
- package/dist/data/quiz/function/answer_c.mcfunction +0 -4
- package/dist/data/quiz/function/ask_question/else_1.mcfunction +0 -5
- package/dist/data/quiz/function/ask_question/else_4.mcfunction +0 -5
- package/dist/data/quiz/function/ask_question/else_7.mcfunction +0 -4
- package/dist/data/quiz/function/ask_question/merge_2.mcfunction +0 -1
- package/dist/data/quiz/function/ask_question/merge_5.mcfunction +0 -2
- package/dist/data/quiz/function/ask_question/merge_8.mcfunction +0 -2
- package/dist/data/quiz/function/ask_question/then_0.mcfunction +0 -4
- package/dist/data/quiz/function/ask_question/then_3.mcfunction +0 -4
- package/dist/data/quiz/function/ask_question/then_6.mcfunction +0 -4
- package/dist/data/quiz/function/ask_question.mcfunction +0 -7
- package/dist/data/quiz/function/finish_quiz.mcfunction +0 -6
- package/dist/data/quiz/function/handle_answer/else_1.mcfunction +0 -5
- package/dist/data/quiz/function/handle_answer/else_10.mcfunction +0 -3
- package/dist/data/quiz/function/handle_answer/else_16.mcfunction +0 -3
- package/dist/data/quiz/function/handle_answer/else_4.mcfunction +0 -3
- package/dist/data/quiz/function/handle_answer/else_7.mcfunction +0 -5
- package/dist/data/quiz/function/handle_answer/merge_11.mcfunction +0 -2
- package/dist/data/quiz/function/handle_answer/merge_14.mcfunction +0 -2
- package/dist/data/quiz/function/handle_answer/merge_17.mcfunction +0 -2
- package/dist/data/quiz/function/handle_answer/merge_2.mcfunction +0 -8
- package/dist/data/quiz/function/handle_answer/merge_5.mcfunction +0 -2
- package/dist/data/quiz/function/handle_answer/merge_8.mcfunction +0 -2
- package/dist/data/quiz/function/handle_answer/then_0.mcfunction +0 -5
- package/dist/data/quiz/function/handle_answer/then_12.mcfunction +0 -5
- package/dist/data/quiz/function/handle_answer/then_15.mcfunction +0 -6
- package/dist/data/quiz/function/handle_answer/then_3.mcfunction +0 -6
- package/dist/data/quiz/function/handle_answer/then_6.mcfunction +0 -5
- package/dist/data/quiz/function/handle_answer/then_9.mcfunction +0 -6
- package/dist/data/quiz/function/handle_answer.mcfunction +0 -11
- package/dist/data/quiz/function/start_quiz.mcfunction +0 -5
- package/dist/data/rawtest/function/load.mcfunction +0 -1
- package/dist/data/rawtest/function/test.mcfunction +0 -2
- package/dist/data/readme_demo/function/_draw.mcfunction +0 -1
- package/dist/data/readme_demo/function/_init.mcfunction +0 -1
- package/dist/data/readme_demo/function/_math_init.mcfunction +0 -4
- package/dist/data/readme_demo/function/_wave_tick.mcfunction +0 -1
- package/dist/data/readme_demo/function/_wave_tick__foreach_t8.mcfunction +0 -109
- package/dist/data/readme_demo/function/acos_approx.mcfunction +0 -7
- package/dist/data/readme_demo/function/approx_eq.mcfunction +0 -10
- package/dist/data/readme_demo/function/approx_eq__merge_1.mcfunction +0 -3
- package/dist/data/readme_demo/function/approx_eq__merge_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/approx_eq__then_0.mcfunction +0 -4
- package/dist/data/readme_demo/function/approx_eq__then_2.mcfunction +0 -2
- package/dist/data/readme_demo/function/asin_approx.mcfunction +0 -5
- package/dist/data/readme_demo/function/asin_approx__merge_1.mcfunction +0 -3
- package/dist/data/readme_demo/function/asin_approx__merge_10.mcfunction +0 -5
- package/dist/data/readme_demo/function/asin_approx__merge_4.mcfunction +0 -12
- package/dist/data/readme_demo/function/asin_approx__merge_7.mcfunction +0 -14
- package/dist/data/readme_demo/function/asin_approx__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/asin_approx__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/asin_approx__then_6.mcfunction +0 -2
- package/dist/data/readme_demo/function/asin_approx__then_9.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_fx.mcfunction +0 -5
- package/dist/data/readme_demo/function/cbrt_fx__loop_body_6.mcfunction +0 -7
- package/dist/data/readme_demo/function/cbrt_fx__loop_exit_7.mcfunction +0 -1
- package/dist/data/readme_demo/function/cbrt_fx__loop_header_5.mcfunction +0 -4
- package/dist/data/readme_demo/function/cbrt_fx__merge_1.mcfunction +0 -8
- package/dist/data/readme_demo/function/cbrt_fx__merge_11.mcfunction +0 -5
- package/dist/data/readme_demo/function/cbrt_fx__merge_13.mcfunction +0 -4
- package/dist/data/readme_demo/function/cbrt_fx__merge_4.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_fx__merge_9.mcfunction +0 -13
- package/dist/data/readme_demo/function/cbrt_fx__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_fx__then_10.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_fx__then_12.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_fx__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_fx__then_8.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_newton.mcfunction +0 -5
- package/dist/data/readme_demo/function/cbrt_newton__else_7.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_newton__merge_1.mcfunction +0 -11
- package/dist/data/readme_demo/function/cbrt_newton__merge_4.mcfunction +0 -1
- package/dist/data/readme_demo/function/cbrt_newton__merge_6.mcfunction +0 -1
- package/dist/data/readme_demo/function/cbrt_newton__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/cbrt_newton__then_3.mcfunction +0 -17
- package/dist/data/readme_demo/function/cbrt_newton__then_5.mcfunction +0 -11
- package/dist/data/readme_demo/function/ceil_div.mcfunction +0 -9
- package/dist/data/readme_demo/function/combinations.mcfunction +0 -6
- package/dist/data/readme_demo/function/combinations__loop_body_9.mcfunction +0 -15
- package/dist/data/readme_demo/function/combinations__loop_exit_10.mcfunction +0 -1
- package/dist/data/readme_demo/function/combinations__loop_header_8.mcfunction +0 -3
- package/dist/data/readme_demo/function/combinations__merge_1.mcfunction +0 -3
- package/dist/data/readme_demo/function/combinations__merge_4.mcfunction +0 -6
- package/dist/data/readme_demo/function/combinations__merge_7.mcfunction +0 -3
- package/dist/data/readme_demo/function/combinations__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/combinations__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/combinations__then_6.mcfunction +0 -4
- package/dist/data/readme_demo/function/cos_fixed.mcfunction +0 -7
- package/dist/data/readme_demo/function/cubic_disc_fx.mcfunction +0 -26
- package/dist/data/readme_demo/function/cubic_newton.mcfunction +0 -8
- package/dist/data/readme_demo/function/cubic_newton__loop_body_1.mcfunction +0 -55
- package/dist/data/readme_demo/function/cubic_newton__loop_exit_2.mcfunction +0 -1
- package/dist/data/readme_demo/function/cubic_newton__loop_header_0.mcfunction +0 -4
- package/dist/data/readme_demo/function/cubic_newton__merge_10.mcfunction +0 -1
- package/dist/data/readme_demo/function/cubic_newton__merge_4.mcfunction +0 -4
- package/dist/data/readme_demo/function/cubic_newton__merge_6.mcfunction +0 -4
- package/dist/data/readme_demo/function/cubic_newton__merge_8.mcfunction +0 -4
- package/dist/data/readme_demo/function/cubic_newton__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/cubic_newton__then_5.mcfunction +0 -13
- package/dist/data/readme_demo/function/cubic_newton__then_7.mcfunction +0 -4
- package/dist/data/readme_demo/function/cubic_newton__then_9.mcfunction +0 -2
- package/dist/data/readme_demo/function/divfix.mcfunction +0 -6
- package/dist/data/readme_demo/function/divfix__merge_1.mcfunction +0 -6
- package/dist/data/readme_demo/function/divfix__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/exp_fx.mcfunction +0 -16
- package/dist/data/readme_demo/function/exp_fx__loop_body_10.mcfunction +0 -8
- package/dist/data/readme_demo/function/exp_fx__loop_body_5.mcfunction +0 -8
- package/dist/data/readme_demo/function/exp_fx__loop_exit_11.mcfunction +0 -1
- package/dist/data/readme_demo/function/exp_fx__loop_exit_6.mcfunction +0 -1
- package/dist/data/readme_demo/function/exp_fx__loop_header_4.mcfunction +0 -3
- package/dist/data/readme_demo/function/exp_fx__loop_header_9.mcfunction +0 -3
- package/dist/data/readme_demo/function/exp_fx__merge_1.mcfunction +0 -47
- package/dist/data/readme_demo/function/exp_fx__merge_3.mcfunction +0 -4
- package/dist/data/readme_demo/function/exp_fx__merge_8.mcfunction +0 -1
- package/dist/data/readme_demo/function/exp_fx__then_0.mcfunction +0 -7
- package/dist/data/readme_demo/function/exp_fx__then_2.mcfunction +0 -2
- package/dist/data/readme_demo/function/exp_fx__then_7.mcfunction +0 -5
- package/dist/data/readme_demo/function/factorial.mcfunction +0 -5
- package/dist/data/readme_demo/function/factorial__loop_body_4.mcfunction +0 -7
- package/dist/data/readme_demo/function/factorial__loop_exit_5.mcfunction +0 -1
- package/dist/data/readme_demo/function/factorial__loop_header_3.mcfunction +0 -3
- package/dist/data/readme_demo/function/factorial__merge_1.mcfunction +0 -3
- package/dist/data/readme_demo/function/factorial__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/gamma_int.mcfunction +0 -5
- package/dist/data/readme_demo/function/gamma_int__merge_1.mcfunction +0 -6
- package/dist/data/readme_demo/function/gamma_int__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/gcd.mcfunction +0 -7
- package/dist/data/readme_demo/function/gcd__loop_body_5.mcfunction +0 -5
- package/dist/data/readme_demo/function/gcd__loop_exit_6.mcfunction +0 -1
- package/dist/data/readme_demo/function/gcd__loop_header_4.mcfunction +0 -4
- package/dist/data/readme_demo/function/gcd__merge_1.mcfunction +0 -5
- package/dist/data/readme_demo/function/gcd__merge_3.mcfunction +0 -1
- package/dist/data/readme_demo/function/gcd__then_0.mcfunction +0 -4
- package/dist/data/readme_demo/function/gcd__then_2.mcfunction +0 -4
- package/dist/data/readme_demo/function/isqrt.mcfunction +0 -5
- package/dist/data/readme_demo/function/isqrt__loop_body_10.mcfunction +0 -8
- package/dist/data/readme_demo/function/isqrt__loop_body_13.mcfunction +0 -11
- package/dist/data/readme_demo/function/isqrt__loop_body_7.mcfunction +0 -8
- package/dist/data/readme_demo/function/isqrt__loop_exit_11.mcfunction +0 -2
- package/dist/data/readme_demo/function/isqrt__loop_exit_14.mcfunction +0 -1
- package/dist/data/readme_demo/function/isqrt__loop_exit_8.mcfunction +0 -9
- package/dist/data/readme_demo/function/isqrt__loop_header_12.mcfunction +0 -4
- package/dist/data/readme_demo/function/isqrt__loop_header_6.mcfunction +0 -4
- package/dist/data/readme_demo/function/isqrt__loop_header_9.mcfunction +0 -3
- package/dist/data/readme_demo/function/isqrt__merge_1.mcfunction +0 -4
- package/dist/data/readme_demo/function/isqrt__merge_16.mcfunction +0 -5
- package/dist/data/readme_demo/function/isqrt__merge_4.mcfunction +0 -3
- package/dist/data/readme_demo/function/isqrt__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/isqrt__then_15.mcfunction +0 -1
- package/dist/data/readme_demo/function/isqrt__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/lcm.mcfunction +0 -11
- package/dist/data/readme_demo/function/lcm__merge_1.mcfunction +0 -5
- package/dist/data/readme_demo/function/lcm__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/lerp.mcfunction +0 -13
- package/dist/data/readme_demo/function/ln.mcfunction +0 -9
- package/dist/data/readme_demo/function/ln__loop_body_1.mcfunction +0 -8
- package/dist/data/readme_demo/function/ln__loop_body_4.mcfunction +0 -8
- package/dist/data/readme_demo/function/ln__loop_exit_2.mcfunction +0 -1
- package/dist/data/readme_demo/function/ln__loop_exit_5.mcfunction +0 -37
- package/dist/data/readme_demo/function/ln__loop_header_0.mcfunction +0 -3
- package/dist/data/readme_demo/function/ln__loop_header_3.mcfunction +0 -6
- package/dist/data/readme_demo/function/load.mcfunction +0 -1
- package/dist/data/readme_demo/function/log10_fx.mcfunction +0 -11
- package/dist/data/readme_demo/function/log2_fx.mcfunction +0 -11
- package/dist/data/readme_demo/function/log2_int.mcfunction +0 -5
- package/dist/data/readme_demo/function/log2_int__loop_body_4.mcfunction +0 -8
- package/dist/data/readme_demo/function/log2_int__loop_exit_5.mcfunction +0 -1
- package/dist/data/readme_demo/function/log2_int__loop_header_3.mcfunction +0 -4
- package/dist/data/readme_demo/function/log2_int__merge_1.mcfunction +0 -3
- package/dist/data/readme_demo/function/log2_int__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/loga_fx.mcfunction +0 -10
- package/dist/data/readme_demo/function/loga_fx__merge_1.mcfunction +0 -9
- package/dist/data/readme_demo/function/loga_fx__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/map.mcfunction +0 -12
- package/dist/data/readme_demo/function/map__merge_1.mcfunction +0 -11
- package/dist/data/readme_demo/function/map__then_0.mcfunction +0 -1
- package/dist/data/readme_demo/function/mulfix.mcfunction +0 -8
- package/dist/data/readme_demo/function/newton_step.mcfunction +0 -7
- package/dist/data/readme_demo/function/newton_step__merge_1.mcfunction +0 -8
- package/dist/data/readme_demo/function/newton_step__then_0.mcfunction +0 -1
- package/dist/data/readme_demo/function/pow_int.mcfunction +0 -6
- package/dist/data/readme_demo/function/pow_int__loop_body_4.mcfunction +0 -7
- package/dist/data/readme_demo/function/pow_int__loop_exit_5.mcfunction +0 -1
- package/dist/data/readme_demo/function/pow_int__loop_header_3.mcfunction +0 -4
- package/dist/data/readme_demo/function/pow_int__merge_1.mcfunction +0 -4
- package/dist/data/readme_demo/function/pow_int__merge_7.mcfunction +0 -8
- package/dist/data/readme_demo/function/pow_int__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/pow_int__then_6.mcfunction +0 -4
- package/dist/data/readme_demo/function/quadratic_disc.mcfunction +0 -12
- package/dist/data/readme_demo/function/quadratic_x1.mcfunction +0 -7
- package/dist/data/readme_demo/function/quadratic_x1__merge_1.mcfunction +0 -13
- package/dist/data/readme_demo/function/quadratic_x1__merge_4.mcfunction +0 -15
- package/dist/data/readme_demo/function/quadratic_x1__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/quadratic_x1__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/quadratic_x2.mcfunction +0 -7
- package/dist/data/readme_demo/function/quadratic_x2__merge_1.mcfunction +0 -13
- package/dist/data/readme_demo/function/quadratic_x2__merge_4.mcfunction +0 -15
- package/dist/data/readme_demo/function/quadratic_x2__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/quadratic_x2__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/sign.mcfunction +0 -5
- package/dist/data/readme_demo/function/sign__merge_1.mcfunction +0 -4
- package/dist/data/readme_demo/function/sign__merge_4.mcfunction +0 -2
- package/dist/data/readme_demo/function/sign__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/sign__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/simpson_step.mcfunction +0 -16
- package/dist/data/readme_demo/function/sin_fixed.mcfunction +0 -9
- package/dist/data/readme_demo/function/sin_fixed__merge_1.mcfunction +0 -4
- package/dist/data/readme_demo/function/sin_fixed__merge_3.mcfunction +0 -4
- package/dist/data/readme_demo/function/sin_fixed__merge_6.mcfunction +0 -4
- package/dist/data/readme_demo/function/sin_fixed__merge_9.mcfunction +0 -10
- package/dist/data/readme_demo/function/sin_fixed__then_0.mcfunction +0 -4
- package/dist/data/readme_demo/function/sin_fixed__then_2.mcfunction +0 -6
- package/dist/data/readme_demo/function/sin_fixed__then_5.mcfunction +0 -8
- package/dist/data/readme_demo/function/sin_fixed__then_8.mcfunction +0 -10
- package/dist/data/readme_demo/function/smootherstep.mcfunction +0 -10
- package/dist/data/readme_demo/function/smootherstep__merge_1.mcfunction +0 -12
- package/dist/data/readme_demo/function/smootherstep__merge_4.mcfunction +0 -4
- package/dist/data/readme_demo/function/smootherstep__merge_6.mcfunction +0 -27
- package/dist/data/readme_demo/function/smootherstep__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/smootherstep__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/smootherstep__then_5.mcfunction +0 -2
- package/dist/data/readme_demo/function/smoothstep.mcfunction +0 -10
- package/dist/data/readme_demo/function/smoothstep__merge_1.mcfunction +0 -12
- package/dist/data/readme_demo/function/smoothstep__merge_4.mcfunction +0 -4
- package/dist/data/readme_demo/function/smoothstep__merge_6.mcfunction +0 -15
- package/dist/data/readme_demo/function/smoothstep__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/smoothstep__then_3.mcfunction +0 -2
- package/dist/data/readme_demo/function/smoothstep__then_5.mcfunction +0 -2
- package/dist/data/readme_demo/function/solve2x2_x.mcfunction +0 -17
- package/dist/data/readme_demo/function/solve2x2_x__merge_1.mcfunction +0 -12
- package/dist/data/readme_demo/function/solve2x2_x__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/solve2x2_y.mcfunction +0 -17
- package/dist/data/readme_demo/function/solve2x2_y__merge_1.mcfunction +0 -12
- package/dist/data/readme_demo/function/solve2x2_y__then_0.mcfunction +0 -2
- package/dist/data/readme_demo/function/sqrt_fixed.mcfunction +0 -8
- package/dist/data/readme_demo/function/sqrt_fx.mcfunction +0 -8
- package/dist/data/readme_demo/function/start.mcfunction +0 -2
- package/dist/data/readme_demo/function/stop.mcfunction +0 -1
- package/dist/data/readme_demo/function/trapezoid_step.mcfunction +0 -11
- package/dist/data/reqtest/function/__load.mcfunction +0 -4
- package/dist/data/reqtest/function/_table_init.mcfunction +0 -2
- package/dist/data/reqtest/function/no_trig.mcfunction +0 -3
- package/dist/data/reqtest/function/use_table.mcfunction +0 -4
- package/dist/data/reqtest2/function/__load.mcfunction +0 -3
- package/dist/data/reqtest2/function/no_trig.mcfunction +0 -3
- package/dist/data/runtime/function/__load.mcfunction +0 -5
- package/dist/data/runtime/function/__tick.mcfunction +0 -2
- package/dist/data/runtime/function/counter_tick/then_0.mcfunction +0 -3
- package/dist/data/runtime/function/counter_tick.mcfunction +0 -13
- package/dist/data/shop/function/__load.mcfunction +0 -7
- package/dist/data/shop/function/__tick.mcfunction +0 -3
- package/dist/data/shop/function/__trigger_shop_buy_dispatch.mcfunction +0 -4
- package/dist/data/shop/function/complete_purchase/else_1.mcfunction +0 -5
- package/dist/data/shop/function/complete_purchase/else_4.mcfunction +0 -5
- package/dist/data/shop/function/complete_purchase/else_7.mcfunction +0 -3
- package/dist/data/shop/function/complete_purchase/merge_2.mcfunction +0 -2
- package/dist/data/shop/function/complete_purchase/merge_5.mcfunction +0 -2
- package/dist/data/shop/function/complete_purchase/merge_8.mcfunction +0 -2
- package/dist/data/shop/function/complete_purchase/then_0.mcfunction +0 -4
- package/dist/data/shop/function/complete_purchase/then_3.mcfunction +0 -4
- package/dist/data/shop/function/complete_purchase/then_6.mcfunction +0 -4
- package/dist/data/shop/function/complete_purchase.mcfunction +0 -7
- package/dist/data/shop/function/handle_shop_trigger.mcfunction +0 -3
- package/dist/data/stdextra/function/__load.mcfunction +0 -2
- package/dist/data/stdextra/function/load.mcfunction +0 -1
- package/dist/data/stdextra/function/test_bigint.mcfunction +0 -52
- package/dist/data/stdextra/function/test_bits.mcfunction +0 -33
- package/dist/data/stdextra/function/test_list_sort.mcfunction +0 -55
- package/dist/data/stdextra/function/test_random.mcfunction +0 -17
- package/dist/data/stdextra/function/test_random__merge_1.mcfunction +0 -4
- package/dist/data/stdextra/function/test_random__merge_11.mcfunction +0 -1
- package/dist/data/stdextra/function/test_random__merge_3.mcfunction +0 -14
- package/dist/data/stdextra/function/test_random__merge_5.mcfunction +0 -8
- package/dist/data/stdextra/function/test_random__merge_7.mcfunction +0 -1
- package/dist/data/stdextra/function/test_random__merge_9.mcfunction +0 -1
- package/dist/data/stdextra/function/test_random__then_0.mcfunction +0 -4
- package/dist/data/stdextra/function/test_random__then_10.mcfunction +0 -2
- package/dist/data/stdextra/function/test_random__then_2.mcfunction +0 -2
- package/dist/data/stdextra/function/test_random__then_4.mcfunction +0 -4
- package/dist/data/stdextra/function/test_random__then_6.mcfunction +0 -2
- package/dist/data/stdextra/function/test_random__then_8.mcfunction +0 -4
- package/dist/data/swap_test/function/__load.mcfunction +0 -3
- package/dist/data/swap_test/function/gcd_old/loop_body_1.mcfunction +0 -7
- package/dist/data/swap_test/function/gcd_old/loop_check_0.mcfunction +0 -5
- package/dist/data/swap_test/function/gcd_old/loop_exit_2.mcfunction +0 -3
- package/dist/data/swap_test/function/gcd_old.mcfunction +0 -8
- package/dist/data/test/function/__dyn_idx_test_arrays_a.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_b.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_c.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_counter.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_d.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_e.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_g.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_h.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_nums.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_one.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_parent.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_queue.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_rev.mcfunction +0 -1
- package/dist/data/test/function/__dyn_idx_test_arrays_visited.mcfunction +0 -1
- package/dist/data/test/function/__dyn_wrt_test_arrays_f.mcfunction +0 -1
- package/dist/data/test/function/__dyn_wrt_test_arrays_parent.mcfunction +0 -1
- package/dist/data/test/function/__dyn_wrt_test_arrays_r.mcfunction +0 -1
- package/dist/data/test/function/__dyn_wrt_test_arrays_s.mcfunction +0 -1
- package/dist/data/test/function/__dyn_wrt_test_arrays_visited.mcfunction +0 -1
- package/dist/data/test/function/_apply.mcfunction +0 -5
- package/dist/data/test/function/_atan_init.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_1.mcfunction +0 -2
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_1__loop_body_1.mcfunction +0 -17
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_1__loop_body_1_continue.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_1__loop_body_1_yield.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_1__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_1__loop_header_0_exit.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2.mcfunction +0 -2
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__else_8.mcfunction +0 -19
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__loop_body_4.mcfunction +0 -9
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__loop_header_3.mcfunction +0 -3
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__loop_header_3_exit.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_10.mcfunction +0 -11
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_12.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_14.mcfunction +0 -11
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_16.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_18.mcfunction +0 -11
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_20.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_22.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_24.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_7.mcfunction +0 -6
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_7_continue.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__merge_7_yield.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_11.mcfunction +0 -15
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_13.mcfunction +0 -13
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_15.mcfunction +0 -15
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_17.mcfunction +0 -13
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_19.mcfunction +0 -15
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_21.mcfunction +0 -13
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_23.mcfunction +0 -15
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_6.mcfunction +0 -2
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_2__then_9.mcfunction +0 -13
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3.mcfunction +0 -2
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__else_32.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__loop_body_28.mcfunction +0 -6
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__loop_header_27.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__loop_header_27_exit.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__merge_31.mcfunction +0 -6
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__merge_31_continue.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__merge_31_yield.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_3__then_30.mcfunction +0 -2
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_4.mcfunction +0 -2
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_4__loop_body_34.mcfunction +0 -16
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_4__loop_body_34_continue.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_4__loop_body_34_yield.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_4__loop_header_33.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_4__loop_header_33_exit.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_5.mcfunction +0 -16
- package/dist/data/test/function/_coro_pathfind_bfs_coro_cont_5__merge_26.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__call_1.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__call_2.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__call_3.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__call_4.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__call_5.mcfunction +0 -1
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__check_2.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__check_3.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__check_4.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__check_5.mcfunction +0 -4
- package/dist/data/test/function/_coro_pathfind_bfs_coro_tick__done.mcfunction +0 -1
- package/dist/data/test/function/_divider.mcfunction +0 -1
- package/dist/data/test/function/_dump_advanced_phase.mcfunction +0 -4
- package/dist/data/test/function/_dump_advanced_phase__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/_dump_advanced_phase__loop_body_6.mcfunction +0 -10
- package/dist/data/test/function/_dump_advanced_phase__loop_exit_2.mcfunction +0 -20
- package/dist/data/test/function/_dump_advanced_phase__loop_exit_7.mcfunction +0 -12
- package/dist/data/test/function/_dump_advanced_phase__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/_dump_advanced_phase__loop_header_5.mcfunction +0 -4
- package/dist/data/test/function/_dump_advanced_phase__merge_4.mcfunction +0 -4
- package/dist/data/test/function/_dump_advanced_phase__then_3.mcfunction +0 -2
- package/dist/data/test/function/_dump_bigint_phase.mcfunction +0 -28
- package/dist/data/test/function/_dump_math_phase.mcfunction +0 -4
- package/dist/data/test/function/_dump_math_phase__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/_dump_math_phase__loop_exit_2.mcfunction +0 -18
- package/dist/data/test/function/_dump_math_phase__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/_fp.mcfunction +0 -2
- package/dist/data/test/function/_hsl_chroma_x.mcfunction +0 -10
- package/dist/data/test/function/_hsl_chroma_x__merge_1.mcfunction +0 -6
- package/dist/data/test/function/_hsl_chroma_x__then_0.mcfunction +0 -4
- package/dist/data/test/function/_math_init.mcfunction +0 -4
- package/dist/data/test/function/_next_phase.mcfunction +0 -1
- package/dist/data/test/function/_section.mcfunction +0 -3
- package/dist/data/test/function/_section__const_0.mcfunction +0 -3
- package/dist/data/test/function/_tick_advanced_live.mcfunction +0 -5
- package/dist/data/test/function/_tick_advanced_live__foreach_t12.mcfunction +0 -1
- package/dist/data/test/function/_tick_bigint_live.mcfunction +0 -8
- package/dist/data/test/function/_tick_bigint_live__foreach_t11.mcfunction +0 -1
- package/dist/data/test/function/_tick_math.mcfunction +0 -9
- package/dist/data/test/function/_tick_math__foreach_t12.mcfunction +0 -1
- package/dist/data/test/function/_tick_visual.mcfunction +0 -11
- package/dist/data/test/function/_tick_visual__foreach_t12.mcfunction +0 -1
- package/dist/data/test/function/_tick_visual__foreach_t16.mcfunction +0 -8
- package/dist/data/test/function/_tick_visual__foreach_t17.mcfunction +0 -8
- package/dist/data/test/function/_tick_visual__foreach_t21.mcfunction +0 -1
- package/dist/data/test/function/aabb_contains.mcfunction +0 -12
- package/dist/data/test/function/aabb_contains__merge_1.mcfunction +0 -3
- package/dist/data/test/function/aabb_contains__merge_10.mcfunction +0 -3
- package/dist/data/test/function/aabb_contains__merge_13.mcfunction +0 -3
- package/dist/data/test/function/aabb_contains__merge_16.mcfunction +0 -2
- package/dist/data/test/function/aabb_contains__merge_4.mcfunction +0 -3
- package/dist/data/test/function/aabb_contains__merge_7.mcfunction +0 -3
- package/dist/data/test/function/aabb_contains__then_0.mcfunction +0 -2
- package/dist/data/test/function/aabb_contains__then_12.mcfunction +0 -2
- package/dist/data/test/function/aabb_contains__then_15.mcfunction +0 -2
- package/dist/data/test/function/aabb_contains__then_3.mcfunction +0 -2
- package/dist/data/test/function/aabb_contains__then_6.mcfunction +0 -2
- package/dist/data/test/function/aabb_contains__then_9.mcfunction +0 -2
- package/dist/data/test/function/acos_approx.mcfunction +0 -7
- package/dist/data/test/function/add2d_x.mcfunction +0 -5
- package/dist/data/test/function/add2d_y.mcfunction +0 -5
- package/dist/data/test/function/add3d_x.mcfunction +0 -5
- package/dist/data/test/function/add3d_y.mcfunction +0 -5
- package/dist/data/test/function/add3d_z.mcfunction +0 -5
- package/dist/data/test/function/add_to_team.mcfunction +0 -5
- package/dist/data/test/function/air_drag_fx.mcfunction +0 -2
- package/dist/data/test/function/angle_between.mcfunction +0 -28
- package/dist/data/test/function/angle_between__and_false_2.mcfunction +0 -2
- package/dist/data/test/function/angle_between__and_false_8.mcfunction +0 -2
- package/dist/data/test/function/angle_between__and_merge_1.mcfunction +0 -2
- package/dist/data/test/function/angle_between__and_merge_7.mcfunction +0 -2
- package/dist/data/test/function/angle_between__and_right_0.mcfunction +0 -4
- package/dist/data/test/function/angle_between__and_right_6.mcfunction +0 -4
- package/dist/data/test/function/angle_between__merge_10.mcfunction +0 -26
- package/dist/data/test/function/angle_between__merge_4.mcfunction +0 -4
- package/dist/data/test/function/angle_between__then_3.mcfunction +0 -2
- package/dist/data/test/function/angle_between__then_9.mcfunction +0 -2
- package/dist/data/test/function/angle_diff.mcfunction +0 -12
- package/dist/data/test/function/angle_diff__merge_1.mcfunction +0 -1
- package/dist/data/test/function/angle_diff__then_0.mcfunction +0 -4
- package/dist/data/test/function/angle_normalize.mcfunction +0 -3
- package/dist/data/test/function/angle_normalize__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/angle_normalize__loop_body_4.mcfunction +0 -4
- package/dist/data/test/function/angle_normalize__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/angle_normalize__loop_exit_5.mcfunction +0 -1
- package/dist/data/test/function/angle_normalize__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/angle_normalize__loop_header_3.mcfunction +0 -4
- package/dist/data/test/function/angry_at.mcfunction +0 -1
- package/dist/data/test/function/apply_damage.mcfunction +0 -12
- package/dist/data/test/function/apply_damage__else_2.mcfunction +0 -2
- package/dist/data/test/function/apply_damage__merge_1.mcfunction +0 -1
- package/dist/data/test/function/apply_damage__then_0.mcfunction +0 -2
- package/dist/data/test/function/apply_drag.mcfunction +0 -8
- package/dist/data/test/function/apply_gravity.mcfunction +0 -6
- package/dist/data/test/function/approx_eq.mcfunction +0 -10
- package/dist/data/test/function/approx_eq__merge_1.mcfunction +0 -3
- package/dist/data/test/function/approx_eq__merge_3.mcfunction +0 -2
- package/dist/data/test/function/approx_eq__then_0.mcfunction +0 -4
- package/dist/data/test/function/approx_eq__then_2.mcfunction +0 -2
- package/dist/data/test/function/arr_test.mcfunction +0 -4
- package/dist/data/test/function/asin_approx.mcfunction +0 -5
- package/dist/data/test/function/asin_approx__merge_1.mcfunction +0 -3
- package/dist/data/test/function/asin_approx__merge_10.mcfunction +0 -5
- package/dist/data/test/function/asin_approx__merge_4.mcfunction +0 -12
- package/dist/data/test/function/asin_approx__merge_7.mcfunction +0 -14
- package/dist/data/test/function/asin_approx__then_0.mcfunction +0 -2
- package/dist/data/test/function/asin_approx__then_3.mcfunction +0 -2
- package/dist/data/test/function/asin_approx__then_6.mcfunction +0 -2
- package/dist/data/test/function/asin_approx__then_9.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed.mcfunction +0 -6
- package/dist/data/test/function/atan2_fixed__else_30.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__loop_body_26.mcfunction +0 -21
- package/dist/data/test/function/atan2_fixed__loop_exit_27.mcfunction +0 -5
- package/dist/data/test/function/atan2_fixed__loop_header_25.mcfunction +0 -3
- package/dist/data/test/function/atan2_fixed__merge_1.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_10.mcfunction +0 -5
- package/dist/data/test/function/atan2_fixed__merge_12.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__merge_16.mcfunction +0 -5
- package/dist/data/test/function/atan2_fixed__merge_18.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_20.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_22.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_24.mcfunction +0 -3
- package/dist/data/test/function/atan2_fixed__merge_29.mcfunction +0 -1
- package/dist/data/test/function/atan2_fixed__merge_3.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_32.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_34.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__merge_36.mcfunction +0 -3
- package/dist/data/test/function/atan2_fixed__merge_40.mcfunction +0 -3
- package/dist/data/test/function/atan2_fixed__merge_6.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__then_0.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__then_11.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__then_15.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__then_17.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__then_19.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__then_2.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__then_21.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__then_23.mcfunction +0 -5
- package/dist/data/test/function/atan2_fixed__then_28.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__then_31.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__then_33.mcfunction +0 -4
- package/dist/data/test/function/atan2_fixed__then_35.mcfunction +0 -1
- package/dist/data/test/function/atan2_fixed__then_39.mcfunction +0 -3
- package/dist/data/test/function/atan2_fixed__then_5.mcfunction +0 -2
- package/dist/data/test/function/atan2_fixed__then_9.mcfunction +0 -4
- package/dist/data/test/function/avg3.mcfunction +0 -11
- package/dist/data/test/function/avg5.mcfunction +0 -17
- package/dist/data/test/function/barrier_wall.mcfunction +0 -1
- package/dist/data/test/function/bernoulli.mcfunction +0 -12
- package/dist/data/test/function/bernoulli__merge_1.mcfunction +0 -6
- package/dist/data/test/function/bernoulli__merge_3.mcfunction +0 -2
- package/dist/data/test/function/bernoulli__then_0.mcfunction +0 -4
- package/dist/data/test/function/bernoulli__then_2.mcfunction +0 -2
- package/dist/data/test/function/bezier_cubic.mcfunction +0 -36
- package/dist/data/test/function/bezier_quad.mcfunction +0 -20
- package/dist/data/test/function/bigint3_add_hi.mcfunction +0 -11
- package/dist/data/test/function/bigint3_add_lo.mcfunction +0 -8
- package/dist/data/test/function/bigint3_add_mid.mcfunction +0 -11
- package/dist/data/test/function/bigint3_borrow_lo.mcfunction +0 -5
- package/dist/data/test/function/bigint3_borrow_lo__merge_1.mcfunction +0 -2
- package/dist/data/test/function/bigint3_borrow_lo__then_0.mcfunction +0 -2
- package/dist/data/test/function/bigint3_borrow_mid.mcfunction +0 -8
- package/dist/data/test/function/bigint3_borrow_mid__merge_1.mcfunction +0 -2
- package/dist/data/test/function/bigint3_borrow_mid__then_0.mcfunction +0 -2
- package/dist/data/test/function/bigint3_carry_lo.mcfunction +0 -8
- package/dist/data/test/function/bigint3_carry_mid.mcfunction +0 -11
- package/dist/data/test/function/bigint3_cmp.mcfunction +0 -9
- package/dist/data/test/function/bigint3_cmp__merge_1.mcfunction +0 -3
- package/dist/data/test/function/bigint3_cmp__merge_10.mcfunction +0 -3
- package/dist/data/test/function/bigint3_cmp__merge_13.mcfunction +0 -3
- package/dist/data/test/function/bigint3_cmp__merge_16.mcfunction +0 -2
- package/dist/data/test/function/bigint3_cmp__merge_4.mcfunction +0 -3
- package/dist/data/test/function/bigint3_cmp__merge_7.mcfunction +0 -3
- package/dist/data/test/function/bigint3_cmp__then_0.mcfunction +0 -2
- package/dist/data/test/function/bigint3_cmp__then_12.mcfunction +0 -2
- package/dist/data/test/function/bigint3_cmp__then_15.mcfunction +0 -2
- package/dist/data/test/function/bigint3_cmp__then_3.mcfunction +0 -2
- package/dist/data/test/function/bigint3_cmp__then_6.mcfunction +0 -2
- package/dist/data/test/function/bigint3_cmp__then_9.mcfunction +0 -2
- package/dist/data/test/function/bigint3_div_chunk.mcfunction +0 -11
- package/dist/data/test/function/bigint3_mul1_hi.mcfunction +0 -8
- package/dist/data/test/function/bigint3_mul1_lo.mcfunction +0 -8
- package/dist/data/test/function/bigint3_mul1_mid.mcfunction +0 -2
- package/dist/data/test/function/bigint3_rem_chunk.mcfunction +0 -11
- package/dist/data/test/function/bigint3_sub_hi.mcfunction +0 -8
- package/dist/data/test/function/bigint3_sub_lo.mcfunction +0 -5
- package/dist/data/test/function/bigint3_sub_lo__merge_1.mcfunction +0 -5
- package/dist/data/test/function/bigint3_sub_lo__then_0.mcfunction +0 -3
- package/dist/data/test/function/bigint3_sub_mid.mcfunction +0 -12
- package/dist/data/test/function/bigint3_sub_mid__merge_1.mcfunction +0 -1
- package/dist/data/test/function/bigint3_sub_mid__then_0.mcfunction +0 -4
- package/dist/data/test/function/bigint3_to_int32.mcfunction +0 -14
- package/dist/data/test/function/bigint_add.mcfunction +0 -8
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r.mcfunction +0 -6
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r__loop_body_1.mcfunction +0 -22
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__a__b__test_arrays__b__result__test_arrays__r__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r.mcfunction +0 -6
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r__loop_body_1.mcfunction +0 -22
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_add__arr_a__test_arrays__counter__b__test_arrays__one__result__test_arrays__r__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_add__loop_body_1.mcfunction +0 -12
- package/dist/data/test/function/bigint_add__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_add__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_base.mcfunction +0 -2
- package/dist/data/test/function/bigint_chunk.mcfunction +0 -2
- package/dist/data/test/function/bigint_cmp.mcfunction +0 -5
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h.mcfunction +0 -3
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__loop_exit_2.mcfunction +0 -2
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__merge_4.mcfunction +0 -7
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__merge_7.mcfunction +0 -4
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__then_3.mcfunction +0 -2
- package/dist/data/test/function/bigint_cmp__arr_a__test_arrays__g__b__test_arrays__h__then_6.mcfunction +0 -2
- package/dist/data/test/function/bigint_cmp__loop_body_1.mcfunction +0 -3
- package/dist/data/test/function/bigint_cmp__loop_exit_2.mcfunction +0 -2
- package/dist/data/test/function/bigint_cmp__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_cmp__merge_4.mcfunction +0 -3
- package/dist/data/test/function/bigint_cmp__merge_7.mcfunction +0 -4
- package/dist/data/test/function/bigint_cmp__then_3.mcfunction +0 -2
- package/dist/data/test/function/bigint_cmp__then_6.mcfunction +0 -2
- package/dist/data/test/function/bigint_copy.mcfunction +0 -3
- package/dist/data/test/function/bigint_copy__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/bigint_copy__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_copy__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_div_small.mcfunction +0 -6
- package/dist/data/test/function/bigint_div_small__loop_body_1.mcfunction +0 -12
- package/dist/data/test/function/bigint_div_small__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_div_small__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_is_zero.mcfunction +0 -4
- package/dist/data/test/function/bigint_is_zero__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/bigint_is_zero__loop_exit_2.mcfunction +0 -2
- package/dist/data/test/function/bigint_is_zero__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_is_zero__merge_4.mcfunction +0 -4
- package/dist/data/test/function/bigint_is_zero__then_3.mcfunction +0 -2
- package/dist/data/test/function/bigint_leading_zeros.mcfunction +0 -5
- package/dist/data/test/function/bigint_leading_zeros__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/bigint_leading_zeros__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_leading_zeros__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_leading_zeros__merge_4.mcfunction +0 -9
- package/dist/data/test/function/bigint_leading_zeros__then_3.mcfunction +0 -1
- package/dist/data/test/function/bigint_mod_small.mcfunction +0 -6
- package/dist/data/test/function/bigint_mod_small__loop_body_1.mcfunction +0 -12
- package/dist/data/test/function/bigint_mod_small__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_mod_small__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bigint_mul_small.mcfunction +0 -8
- package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f.mcfunction +0 -7
- package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f__loop_body_1.mcfunction +0 -20
- package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_mul_small__arr_a__test_arrays__e__result__test_arrays__f__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_mul_small__loop_body_1.mcfunction +0 -12
- package/dist/data/test/function/bigint_mul_small__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_mul_small__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_shift_left.mcfunction +0 -3
- package/dist/data/test/function/bigint_shift_left__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/bigint_shift_left__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_shift_left__loop_header_0.mcfunction +0 -5
- package/dist/data/test/function/bigint_sub.mcfunction +0 -8
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s.mcfunction +0 -6
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__loop_body_1.mcfunction +0 -13
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__merge_4.mcfunction +0 -4
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__merge_6.mcfunction +0 -7
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__then_3.mcfunction +0 -5
- package/dist/data/test/function/bigint_sub__arr_a__test_arrays__c__b__test_arrays__d__result__test_arrays__s__then_5.mcfunction +0 -2
- package/dist/data/test/function/bigint_sub__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/bigint_sub__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_sub__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bigint_sub__merge_4.mcfunction +0 -4
- package/dist/data/test/function/bigint_sub__merge_6.mcfunction +0 -4
- package/dist/data/test/function/bigint_sub__then_3.mcfunction +0 -5
- package/dist/data/test/function/bigint_sub__then_5.mcfunction +0 -2
- package/dist/data/test/function/bigint_zero.mcfunction +0 -3
- package/dist/data/test/function/bigint_zero__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/bigint_zero__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bigint_zero__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/billboard_y.mcfunction +0 -7
- package/dist/data/test/function/bit_and.mcfunction +0 -6
- package/dist/data/test/function/bit_and__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/bit_and__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bit_and__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bit_and__merge_4.mcfunction +0 -8
- package/dist/data/test/function/bit_and__merge_6.mcfunction +0 -1
- package/dist/data/test/function/bit_and__then_3.mcfunction +0 -9
- package/dist/data/test/function/bit_and__then_5.mcfunction +0 -4
- package/dist/data/test/function/bit_clear.mcfunction +0 -5
- package/dist/data/test/function/bit_clear__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/bit_clear__loop_exit_2.mcfunction +0 -9
- package/dist/data/test/function/bit_clear__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bit_clear__merge_4.mcfunction +0 -1
- package/dist/data/test/function/bit_clear__then_3.mcfunction +0 -3
- package/dist/data/test/function/bit_get.mcfunction +0 -5
- package/dist/data/test/function/bit_get__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/bit_get__loop_exit_2.mcfunction +0 -6
- package/dist/data/test/function/bit_get__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bit_not.mcfunction +0 -5
- package/dist/data/test/function/bit_not__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/bit_not__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bit_not__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bit_not__merge_4.mcfunction +0 -8
- package/dist/data/test/function/bit_not__then_3.mcfunction +0 -4
- package/dist/data/test/function/bit_or.mcfunction +0 -6
- package/dist/data/test/function/bit_or__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/bit_or__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bit_or__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bit_or__merge_4.mcfunction +0 -9
- package/dist/data/test/function/bit_or__merge_6.mcfunction +0 -8
- package/dist/data/test/function/bit_or__merge_8.mcfunction +0 -1
- package/dist/data/test/function/bit_or__then_3.mcfunction +0 -4
- package/dist/data/test/function/bit_or__then_5.mcfunction +0 -9
- package/dist/data/test/function/bit_or__then_7.mcfunction +0 -4
- package/dist/data/test/function/bit_set.mcfunction +0 -5
- package/dist/data/test/function/bit_set__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/bit_set__loop_exit_2.mcfunction +0 -9
- package/dist/data/test/function/bit_set__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bit_set__merge_4.mcfunction +0 -1
- package/dist/data/test/function/bit_set__then_3.mcfunction +0 -3
- package/dist/data/test/function/bit_shl.mcfunction +0 -5
- package/dist/data/test/function/bit_shl__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/bit_shl__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bit_shl__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bit_shr.mcfunction +0 -5
- package/dist/data/test/function/bit_shr__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/bit_shr__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bit_shr__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bit_toggle.mcfunction +0 -5
- package/dist/data/test/function/bit_toggle__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/bit_toggle__loop_exit_2.mcfunction +0 -9
- package/dist/data/test/function/bit_toggle__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/bit_toggle__merge_4.mcfunction +0 -3
- package/dist/data/test/function/bit_toggle__then_3.mcfunction +0 -3
- package/dist/data/test/function/bit_xor.mcfunction +0 -6
- package/dist/data/test/function/bit_xor__loop_body_1.mcfunction +0 -13
- package/dist/data/test/function/bit_xor__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/bit_xor__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/bit_xor__merge_4.mcfunction +0 -8
- package/dist/data/test/function/bit_xor__then_3.mcfunction +0 -4
- package/dist/data/test/function/bounce_v.mcfunction +0 -10
- package/dist/data/test/function/buff_all.mcfunction +0 -22
- package/dist/data/test/function/cbrt_fx.mcfunction +0 -5
- package/dist/data/test/function/cbrt_fx__loop_body_6.mcfunction +0 -7
- package/dist/data/test/function/cbrt_fx__loop_exit_7.mcfunction +0 -1
- package/dist/data/test/function/cbrt_fx__loop_header_5.mcfunction +0 -4
- package/dist/data/test/function/cbrt_fx__merge_1.mcfunction +0 -8
- package/dist/data/test/function/cbrt_fx__merge_11.mcfunction +0 -5
- package/dist/data/test/function/cbrt_fx__merge_13.mcfunction +0 -4
- package/dist/data/test/function/cbrt_fx__merge_4.mcfunction +0 -2
- package/dist/data/test/function/cbrt_fx__merge_9.mcfunction +0 -13
- package/dist/data/test/function/cbrt_fx__then_0.mcfunction +0 -2
- package/dist/data/test/function/cbrt_fx__then_10.mcfunction +0 -2
- package/dist/data/test/function/cbrt_fx__then_12.mcfunction +0 -2
- package/dist/data/test/function/cbrt_fx__then_3.mcfunction +0 -2
- package/dist/data/test/function/cbrt_fx__then_8.mcfunction +0 -2
- package/dist/data/test/function/cbrt_newton.mcfunction +0 -5
- package/dist/data/test/function/cbrt_newton__else_7.mcfunction +0 -2
- package/dist/data/test/function/cbrt_newton__merge_1.mcfunction +0 -11
- package/dist/data/test/function/cbrt_newton__merge_4.mcfunction +0 -1
- package/dist/data/test/function/cbrt_newton__merge_6.mcfunction +0 -1
- package/dist/data/test/function/cbrt_newton__then_0.mcfunction +0 -2
- package/dist/data/test/function/cbrt_newton__then_3.mcfunction +0 -17
- package/dist/data/test/function/cbrt_newton__then_5.mcfunction +0 -11
- package/dist/data/test/function/ceil_div.mcfunction +0 -9
- package/dist/data/test/function/chebyshev.mcfunction +0 -14
- package/dist/data/test/function/chebyshev3d.mcfunction +0 -19
- package/dist/data/test/function/chebyshev3d__merge_1.mcfunction +0 -4
- package/dist/data/test/function/chebyshev3d__merge_3.mcfunction +0 -4
- package/dist/data/test/function/chebyshev3d__merge_5.mcfunction +0 -4
- package/dist/data/test/function/chebyshev3d__merge_7.mcfunction +0 -3
- package/dist/data/test/function/chebyshev3d__merge_9.mcfunction +0 -1
- package/dist/data/test/function/chebyshev3d__then_0.mcfunction +0 -4
- package/dist/data/test/function/chebyshev3d__then_2.mcfunction +0 -4
- package/dist/data/test/function/chebyshev3d__then_4.mcfunction +0 -4
- package/dist/data/test/function/chebyshev3d__then_6.mcfunction +0 -2
- package/dist/data/test/function/chebyshev3d__then_8.mcfunction +0 -2
- package/dist/data/test/function/chebyshev__merge_1.mcfunction +0 -4
- package/dist/data/test/function/chebyshev__merge_3.mcfunction +0 -3
- package/dist/data/test/function/chebyshev__merge_5.mcfunction +0 -1
- package/dist/data/test/function/chebyshev__then_0.mcfunction +0 -4
- package/dist/data/test/function/chebyshev__then_2.mcfunction +0 -4
- package/dist/data/test/function/chebyshev__then_4.mcfunction +0 -1
- package/dist/data/test/function/check_holding_item.mcfunction +0 -1
- package/dist/data/test/function/check_look_down.mcfunction +0 -1
- package/dist/data/test/function/check_look_down__foreach_t0.mcfunction +0 -2
- package/dist/data/test/function/check_look_straight.mcfunction +0 -1
- package/dist/data/test/function/check_look_straight__foreach_t0.mcfunction +0 -2
- package/dist/data/test/function/check_look_up.mcfunction +0 -1
- package/dist/data/test/function/check_look_up__foreach_t0.mcfunction +0 -2
- package/dist/data/test/function/chunk_hi.mcfunction +0 -5
- package/dist/data/test/function/chunk_lo.mcfunction +0 -5
- package/dist/data/test/function/circular_x.mcfunction +0 -14
- package/dist/data/test/function/circular_z.mcfunction +0 -14
- package/dist/data/test/function/clamp3.mcfunction +0 -7
- package/dist/data/test/function/clamp3__merge_1.mcfunction +0 -4
- package/dist/data/test/function/clamp3__merge_4.mcfunction +0 -1
- package/dist/data/test/function/clamp3__then_0.mcfunction +0 -1
- package/dist/data/test/function/clamp3__then_3.mcfunction +0 -1
- package/dist/data/test/function/clamp_circle_x.mcfunction +0 -13
- package/dist/data/test/function/clamp_circle_x__merge_1.mcfunction +0 -10
- package/dist/data/test/function/clamp_circle_x__then_0.mcfunction +0 -1
- package/dist/data/test/function/clamp_circle_y.mcfunction +0 -13
- package/dist/data/test/function/clamp_circle_y__merge_1.mcfunction +0 -10
- package/dist/data/test/function/clamp_circle_y__then_0.mcfunction +0 -1
- package/dist/data/test/function/clamp_velocity.mcfunction +0 -5
- package/dist/data/test/function/clamp_velocity__merge_1.mcfunction +0 -5
- package/dist/data/test/function/clamp_velocity__merge_4.mcfunction +0 -1
- package/dist/data/test/function/clamp_velocity__then_0.mcfunction +0 -1
- package/dist/data/test/function/clamp_velocity__then_3.mcfunction +0 -3
- package/dist/data/test/function/cleanup_teams.mcfunction +0 -8
- package/dist/data/test/function/clear_area.mcfunction +0 -1
- package/dist/data/test/function/clear_effect.mcfunction +0 -1
- package/dist/data/test/function/clear_effects.mcfunction +0 -1
- package/dist/data/test/function/clear_inventory.mcfunction +0 -1
- package/dist/data/test/function/collatz_steps.mcfunction +0 -5
- package/dist/data/test/function/collatz_steps__else_8.mcfunction +0 -6
- package/dist/data/test/function/collatz_steps__loop_body_4.mcfunction +0 -7
- package/dist/data/test/function/collatz_steps__loop_exit_5.mcfunction +0 -1
- package/dist/data/test/function/collatz_steps__loop_header_3.mcfunction +0 -4
- package/dist/data/test/function/collatz_steps__merge_1.mcfunction +0 -3
- package/dist/data/test/function/collatz_steps__merge_7.mcfunction +0 -4
- package/dist/data/test/function/collatz_steps__then_0.mcfunction +0 -2
- package/dist/data/test/function/collatz_steps__then_6.mcfunction +0 -5
- package/dist/data/test/function/combinations.mcfunction +0 -6
- package/dist/data/test/function/combinations__loop_body_9.mcfunction +0 -15
- package/dist/data/test/function/combinations__loop_exit_10.mcfunction +0 -1
- package/dist/data/test/function/combinations__loop_header_8.mcfunction +0 -3
- package/dist/data/test/function/combinations__merge_1.mcfunction +0 -3
- package/dist/data/test/function/combinations__merge_4.mcfunction +0 -6
- package/dist/data/test/function/combinations__merge_7.mcfunction +0 -3
- package/dist/data/test/function/combinations__then_0.mcfunction +0 -2
- package/dist/data/test/function/combinations__then_3.mcfunction +0 -2
- package/dist/data/test/function/combinations__then_6.mcfunction +0 -4
- package/dist/data/test/function/cooldown_ready.mcfunction +0 -7
- package/dist/data/test/function/cooldown_ready__merge_1.mcfunction +0 -4
- package/dist/data/test/function/cooldown_ready__merge_4.mcfunction +0 -2
- package/dist/data/test/function/cooldown_ready__then_0.mcfunction +0 -2
- package/dist/data/test/function/cooldown_ready__then_3.mcfunction +0 -2
- package/dist/data/test/function/cooldown_start.mcfunction +0 -3
- package/dist/data/test/function/cooldown_tick.mcfunction +0 -7
- package/dist/data/test/function/cooldown_tick__else_5.mcfunction +0 -2
- package/dist/data/test/function/cooldown_tick__merge_1.mcfunction +0 -4
- package/dist/data/test/function/cooldown_tick__merge_4.mcfunction +0 -1
- package/dist/data/test/function/cooldown_tick__merge_7.mcfunction +0 -1
- package/dist/data/test/function/cooldown_tick__then_0.mcfunction +0 -1
- package/dist/data/test/function/cooldown_tick__then_3.mcfunction +0 -7
- package/dist/data/test/function/cooldown_tick__then_6.mcfunction +0 -2
- package/dist/data/test/function/cos_fixed.mcfunction +0 -7
- package/dist/data/test/function/cos_fixed__const_0.mcfunction +0 -5
- package/dist/data/test/function/cos_hp.mcfunction +0 -8
- package/dist/data/test/function/count_digits.mcfunction +0 -6
- package/dist/data/test/function/count_digits__loop_body_6.mcfunction +0 -8
- package/dist/data/test/function/count_digits__loop_exit_7.mcfunction +0 -1
- package/dist/data/test/function/count_digits__loop_header_5.mcfunction +0 -4
- package/dist/data/test/function/count_digits__merge_1.mcfunction +0 -4
- package/dist/data/test/function/count_digits__merge_3.mcfunction +0 -2
- package/dist/data/test/function/count_digits__then_0.mcfunction +0 -4
- package/dist/data/test/function/count_digits__then_2.mcfunction +0 -2
- package/dist/data/test/function/create_blue_team.mcfunction +0 -10
- package/dist/data/test/function/create_green_team.mcfunction +0 -10
- package/dist/data/test/function/create_health_bar.mcfunction +0 -24
- package/dist/data/test/function/create_progress_bar.mcfunction +0 -24
- package/dist/data/test/function/create_red_team.mcfunction +0 -10
- package/dist/data/test/function/create_team.mcfunction +0 -8
- package/dist/data/test/function/create_timer_bar.mcfunction +0 -30
- package/dist/data/test/function/create_yellow_team.mcfunction +0 -10
- package/dist/data/test/function/cross2d.mcfunction +0 -11
- package/dist/data/test/function/cross3d_x.mcfunction +0 -11
- package/dist/data/test/function/cross3d_y.mcfunction +0 -11
- package/dist/data/test/function/cross3d_z.mcfunction +0 -11
- package/dist/data/test/function/cubic_disc_fx.mcfunction +0 -26
- package/dist/data/test/function/cubic_newton.mcfunction +0 -8
- package/dist/data/test/function/cubic_newton__loop_body_1.mcfunction +0 -55
- package/dist/data/test/function/cubic_newton__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/cubic_newton__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/cubic_newton__merge_10.mcfunction +0 -1
- package/dist/data/test/function/cubic_newton__merge_4.mcfunction +0 -4
- package/dist/data/test/function/cubic_newton__merge_6.mcfunction +0 -4
- package/dist/data/test/function/cubic_newton__merge_8.mcfunction +0 -4
- package/dist/data/test/function/cubic_newton__then_3.mcfunction +0 -2
- package/dist/data/test/function/cubic_newton__then_5.mcfunction +0 -13
- package/dist/data/test/function/cubic_newton__then_7.mcfunction +0 -4
- package/dist/data/test/function/cubic_newton__then_9.mcfunction +0 -2
- package/dist/data/test/function/curve_length_2d.mcfunction +0 -6
- package/dist/data/test/function/curve_length_2d__loop_body_1.mcfunction +0 -32
- package/dist/data/test/function/curve_length_2d__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/curve_length_2d__loop_header_0.mcfunction +0 -5
- package/dist/data/test/function/cylinder_contains.mcfunction +0 -20
- package/dist/data/test/function/cylinder_contains__merge_1.mcfunction +0 -2
- package/dist/data/test/function/cylinder_contains__then_0.mcfunction +0 -2
- package/dist/data/test/function/damage.mcfunction +0 -9
- package/dist/data/test/function/damage__else_2.mcfunction +0 -2
- package/dist/data/test/function/damage__merge_1.mcfunction +0 -1
- package/dist/data/test/function/damage__then_0.mcfunction +0 -2
- package/dist/data/test/function/debug_bigint.mcfunction +0 -25
- package/dist/data/test/function/deriv_central.mcfunction +0 -7
- package/dist/data/test/function/deriv_central__merge_1.mcfunction +0 -10
- package/dist/data/test/function/deriv_central__then_0.mcfunction +0 -2
- package/dist/data/test/function/deriv_forward.mcfunction +0 -7
- package/dist/data/test/function/deriv_forward__merge_1.mcfunction +0 -8
- package/dist/data/test/function/deriv_forward__then_0.mcfunction +0 -2
- package/dist/data/test/function/digit_sum.mcfunction +0 -6
- package/dist/data/test/function/digit_sum__loop_body_6.mcfunction +0 -11
- package/dist/data/test/function/digit_sum__loop_exit_7.mcfunction +0 -1
- package/dist/data/test/function/digit_sum__loop_header_5.mcfunction +0 -4
- package/dist/data/test/function/digit_sum__merge_1.mcfunction +0 -4
- package/dist/data/test/function/digit_sum__merge_3.mcfunction +0 -2
- package/dist/data/test/function/digit_sum__then_0.mcfunction +0 -4
- package/dist/data/test/function/digit_sum__then_2.mcfunction +0 -2
- package/dist/data/test/function/digital_root.mcfunction +0 -5
- package/dist/data/test/function/digital_root__merge_1.mcfunction +0 -8
- package/dist/data/test/function/digital_root__merge_4.mcfunction +0 -1
- package/dist/data/test/function/digital_root__then_0.mcfunction +0 -2
- package/dist/data/test/function/digital_root__then_3.mcfunction +0 -2
- package/dist/data/test/function/disable_fire_spread.mcfunction +0 -1
- package/dist/data/test/function/disable_keep_inventory.mcfunction +0 -1
- package/dist/data/test/function/disable_mob_griefing.mcfunction +0 -1
- package/dist/data/test/function/distance2d_fixed.mcfunction +0 -13
- package/dist/data/test/function/distance3d_fixed.mcfunction +0 -18
- package/dist/data/test/function/div3_hp.mcfunction +0 -23
- package/dist/data/test/function/div_hp.mcfunction +0 -13
- package/dist/data/test/function/divfix.mcfunction +0 -6
- package/dist/data/test/function/divfix__merge_1.mcfunction +0 -6
- package/dist/data/test/function/divfix__then_0.mcfunction +0 -2
- package/dist/data/test/function/dot2d.mcfunction +0 -11
- package/dist/data/test/function/dot3d.mcfunction +0 -17
- package/dist/data/test/function/draw_circle.mcfunction +0 -8
- package/dist/data/test/function/draw_circle__loop_body_1.mcfunction +0 -34
- package/dist/data/test/function/draw_circle__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/draw_circle__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/draw_helix.mcfunction +0 -10
- package/dist/data/test/function/draw_helix__loop_body_1.mcfunction +0 -42
- package/dist/data/test/function/draw_helix__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/draw_helix__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/draw_line_2d.mcfunction +0 -9
- package/dist/data/test/function/draw_line_2d__loop_body_1.mcfunction +0 -34
- package/dist/data/test/function/draw_line_2d__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/draw_line_2d__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/dump_advanced.mcfunction +0 -1
- package/dist/data/test/function/dump_bigint.mcfunction +0 -1
- package/dist/data/test/function/dump_math.mcfunction +0 -1
- package/dist/data/test/function/ease_in_back.mcfunction +0 -26
- package/dist/data/test/function/ease_in_bounce.mcfunction +0 -9
- package/dist/data/test/function/ease_in_cubic.mcfunction +0 -12
- package/dist/data/test/function/ease_in_expo.mcfunction +0 -5
- package/dist/data/test/function/ease_in_expo__merge_1.mcfunction +0 -11
- package/dist/data/test/function/ease_in_expo__then_0.mcfunction +0 -2
- package/dist/data/test/function/ease_in_out_back.mcfunction +0 -5
- package/dist/data/test/function/ease_in_out_back__merge_1.mcfunction +0 -14
- package/dist/data/test/function/ease_in_out_back__then_0.mcfunction +0 -10
- package/dist/data/test/function/ease_in_out_bounce.mcfunction +0 -5
- package/dist/data/test/function/ease_in_out_bounce__merge_1.mcfunction +0 -14
- package/dist/data/test/function/ease_in_out_bounce__then_0.mcfunction +0 -10
- package/dist/data/test/function/ease_in_out_cubic.mcfunction +0 -5
- package/dist/data/test/function/ease_in_out_cubic__merge_1.mcfunction +0 -17
- package/dist/data/test/function/ease_in_out_cubic__then_0.mcfunction +0 -13
- package/dist/data/test/function/ease_in_out_quad.mcfunction +0 -5
- package/dist/data/test/function/ease_in_out_quad__merge_1.mcfunction +0 -12
- package/dist/data/test/function/ease_in_out_quad__then_0.mcfunction +0 -8
- package/dist/data/test/function/ease_in_out_sine.mcfunction +0 -5
- package/dist/data/test/function/ease_in_out_sine__merge_1.mcfunction +0 -14
- package/dist/data/test/function/ease_in_out_sine__then_0.mcfunction +0 -10
- package/dist/data/test/function/ease_in_quad.mcfunction +0 -7
- package/dist/data/test/function/ease_in_quart.mcfunction +0 -12
- package/dist/data/test/function/ease_in_sine.mcfunction +0 -30
- package/dist/data/test/function/ease_linear.mcfunction +0 -2
- package/dist/data/test/function/ease_out_back.mcfunction +0 -9
- package/dist/data/test/function/ease_out_bounce.mcfunction +0 -6
- package/dist/data/test/function/ease_out_bounce__merge_1.mcfunction +0 -4
- package/dist/data/test/function/ease_out_bounce__merge_4.mcfunction +0 -4
- package/dist/data/test/function/ease_out_bounce__merge_7.mcfunction +0 -15
- package/dist/data/test/function/ease_out_bounce__then_0.mcfunction +0 -11
- package/dist/data/test/function/ease_out_bounce__then_3.mcfunction +0 -15
- package/dist/data/test/function/ease_out_bounce__then_6.mcfunction +0 -15
- package/dist/data/test/function/ease_out_cubic.mcfunction +0 -16
- package/dist/data/test/function/ease_out_expo.mcfunction +0 -5
- package/dist/data/test/function/ease_out_expo__merge_1.mcfunction +0 -8
- package/dist/data/test/function/ease_out_expo__then_0.mcfunction +0 -2
- package/dist/data/test/function/ease_out_quad.mcfunction +0 -11
- package/dist/data/test/function/ease_out_quart.mcfunction +0 -16
- package/dist/data/test/function/ease_out_sine.mcfunction +0 -9
- package/dist/data/test/function/ease_smooth.mcfunction +0 -23
- package/dist/data/test/function/ease_smoother.mcfunction +0 -41
- package/dist/data/test/function/enable_keep_inventory.mcfunction +0 -1
- package/dist/data/test/function/end_sparkles_at.mcfunction +0 -1
- package/dist/data/test/function/enemy_health.mcfunction +0 -2
- package/dist/data/test/function/example_right_click.mcfunction +0 -1
- package/dist/data/test/function/example_right_click__foreach_t0.mcfunction +0 -5
- package/dist/data/test/function/example_right_click__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/test/function/example_right_click__foreach_t0__then_0.mcfunction +0 -3
- package/dist/data/test/function/exp_dist_approx.mcfunction +0 -12
- package/dist/data/test/function/exp_dist_approx__merge_1.mcfunction +0 -15
- package/dist/data/test/function/exp_dist_approx__merge_3.mcfunction +0 -10
- package/dist/data/test/function/exp_dist_approx__merge_5.mcfunction +0 -1
- package/dist/data/test/function/exp_dist_approx__then_0.mcfunction +0 -4
- package/dist/data/test/function/exp_dist_approx__then_2.mcfunction +0 -2
- package/dist/data/test/function/exp_dist_approx__then_4.mcfunction +0 -2
- package/dist/data/test/function/exp_fx.mcfunction +0 -16
- package/dist/data/test/function/exp_fx__loop_body_10.mcfunction +0 -8
- package/dist/data/test/function/exp_fx__loop_body_5.mcfunction +0 -8
- package/dist/data/test/function/exp_fx__loop_exit_11.mcfunction +0 -1
- package/dist/data/test/function/exp_fx__loop_exit_6.mcfunction +0 -1
- package/dist/data/test/function/exp_fx__loop_header_4.mcfunction +0 -3
- package/dist/data/test/function/exp_fx__loop_header_9.mcfunction +0 -3
- package/dist/data/test/function/exp_fx__merge_1.mcfunction +0 -47
- package/dist/data/test/function/exp_fx__merge_3.mcfunction +0 -4
- package/dist/data/test/function/exp_fx__merge_8.mcfunction +0 -1
- package/dist/data/test/function/exp_fx__then_0.mcfunction +0 -7
- package/dist/data/test/function/exp_fx__then_2.mcfunction +0 -2
- package/dist/data/test/function/exp_fx__then_7.mcfunction +0 -5
- package/dist/data/test/function/explosion_effect.mcfunction +0 -1
- package/dist/data/test/function/factorial.mcfunction +0 -5
- package/dist/data/test/function/factorial__loop_body_4.mcfunction +0 -7
- package/dist/data/test/function/factorial__loop_exit_5.mcfunction +0 -1
- package/dist/data/test/function/factorial__loop_header_3.mcfunction +0 -3
- package/dist/data/test/function/factorial__merge_1.mcfunction +0 -3
- package/dist/data/test/function/factorial__then_0.mcfunction +0 -2
- package/dist/data/test/function/fbm_1d.mcfunction +0 -9
- package/dist/data/test/function/fbm_1d__loop_body_1.mcfunction +0 -33
- package/dist/data/test/function/fbm_1d__loop_exit_2.mcfunction +0 -4
- package/dist/data/test/function/fbm_1d__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/fbm_1d__merge_4.mcfunction +0 -6
- package/dist/data/test/function/fbm_1d__then_3.mcfunction +0 -2
- package/dist/data/test/function/fbm_2d.mcfunction +0 -10
- package/dist/data/test/function/fbm_2d__loop_body_1.mcfunction +0 -39
- package/dist/data/test/function/fbm_2d__loop_exit_2.mcfunction +0 -4
- package/dist/data/test/function/fbm_2d__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/fbm_2d__merge_4.mcfunction +0 -6
- package/dist/data/test/function/fbm_2d__then_3.mcfunction +0 -2
- package/dist/data/test/function/fib.mcfunction +0 -5
- package/dist/data/test/function/fib__loop_body_7.mcfunction +0 -8
- package/dist/data/test/function/fib__loop_exit_8.mcfunction +0 -1
- package/dist/data/test/function/fib__loop_header_6.mcfunction +0 -3
- package/dist/data/test/function/fib__merge_1.mcfunction +0 -4
- package/dist/data/test/function/fib__merge_4.mcfunction +0 -4
- package/dist/data/test/function/fib__then_0.mcfunction +0 -2
- package/dist/data/test/function/fib__then_3.mcfunction +0 -2
- package/dist/data/test/function/flames.mcfunction +0 -1
- package/dist/data/test/function/format_time_h.mcfunction +0 -5
- package/dist/data/test/function/format_time_m.mcfunction +0 -8
- package/dist/data/test/function/format_time_s.mcfunction +0 -8
- package/dist/data/test/function/friction_decel.mcfunction +0 -5
- package/dist/data/test/function/friction_decel__merge_1.mcfunction +0 -5
- package/dist/data/test/function/friction_decel__merge_4.mcfunction +0 -2
- package/dist/data/test/function/friction_decel__then_0.mcfunction +0 -3
- package/dist/data/test/function/friction_decel__then_3.mcfunction +0 -3
- package/dist/data/test/function/gamma_int.mcfunction +0 -5
- package/dist/data/test/function/gamma_int__merge_1.mcfunction +0 -6
- package/dist/data/test/function/gamma_int__then_0.mcfunction +0 -2
- package/dist/data/test/function/gather_all.mcfunction +0 -8
- package/dist/data/test/function/gcd.mcfunction +0 -7
- package/dist/data/test/function/gcd__loop_body_5.mcfunction +0 -5
- package/dist/data/test/function/gcd__loop_exit_6.mcfunction +0 -1
- package/dist/data/test/function/gcd__loop_header_4.mcfunction +0 -4
- package/dist/data/test/function/gcd__merge_1.mcfunction +0 -5
- package/dist/data/test/function/gcd__merge_3.mcfunction +0 -1
- package/dist/data/test/function/gcd__then_0.mcfunction +0 -4
- package/dist/data/test/function/gcd__then_2.mcfunction +0 -4
- package/dist/data/test/function/give_kit_archer.mcfunction +0 -6
- package/dist/data/test/function/give_kit_mage.mcfunction +0 -5
- package/dist/data/test/function/give_kit_warrior.mcfunction +0 -6
- package/dist/data/test/function/glass_box.mcfunction +0 -2
- package/dist/data/test/function/glow.mcfunction +0 -1
- package/dist/data/test/function/goto_arena.mcfunction +0 -7
- package/dist/data/test/function/goto_lobby.mcfunction +0 -7
- package/dist/data/test/function/gravity_fx.mcfunction +0 -2
- package/dist/data/test/function/happy_at.mcfunction +0 -1
- package/dist/data/test/function/hash_1d.mcfunction +0 -15
- package/dist/data/test/function/hash_1d_pos.mcfunction +0 -9
- package/dist/data/test/function/hash_1d_pos__merge_1.mcfunction +0 -4
- package/dist/data/test/function/hash_1d_pos__then_0.mcfunction +0 -4
- package/dist/data/test/function/hash_2d.mcfunction +0 -11
- package/dist/data/test/function/hash_2d_pos.mcfunction +0 -11
- package/dist/data/test/function/hash_2d_pos__merge_1.mcfunction +0 -4
- package/dist/data/test/function/hash_2d_pos__then_0.mcfunction +0 -4
- package/dist/data/test/function/hash_int.mcfunction +0 -6
- package/dist/data/test/function/hash_int__merge_1.mcfunction +0 -14
- package/dist/data/test/function/hash_int__merge_3.mcfunction +0 -14
- package/dist/data/test/function/hash_int__merge_5.mcfunction +0 -1
- package/dist/data/test/function/hash_int__then_0.mcfunction +0 -4
- package/dist/data/test/function/hash_int__then_2.mcfunction +0 -4
- package/dist/data/test/function/hash_int__then_4.mcfunction +0 -4
- package/dist/data/test/function/heal.mcfunction +0 -5
- package/dist/data/test/function/heap_new.mcfunction +0 -7
- package/dist/data/test/function/heap_new__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/heap_new__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/heap_new__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/heap_peek.mcfunction +0 -2
- package/dist/data/test/function/heap_pop.mcfunction +0 -4
- package/dist/data/test/function/heap_pop__else_13.mcfunction +0 -2
- package/dist/data/test/function/heap_pop__loop_body_1.mcfunction +0 -14
- package/dist/data/test/function/heap_pop__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/heap_pop__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/heap_pop__merge_10.mcfunction +0 -1
- package/dist/data/test/function/heap_pop__merge_12.mcfunction +0 -1
- package/dist/data/test/function/heap_pop__merge_4.mcfunction +0 -3
- package/dist/data/test/function/heap_pop__merge_6.mcfunction +0 -1
- package/dist/data/test/function/heap_pop__merge_8.mcfunction +0 -3
- package/dist/data/test/function/heap_pop__then_11.mcfunction +0 -2
- package/dist/data/test/function/heap_pop__then_3.mcfunction +0 -3
- package/dist/data/test/function/heap_pop__then_5.mcfunction +0 -2
- package/dist/data/test/function/heap_pop__then_7.mcfunction +0 -3
- package/dist/data/test/function/heap_pop__then_9.mcfunction +0 -2
- package/dist/data/test/function/heap_push.mcfunction +0 -6
- package/dist/data/test/function/heap_push__else_5.mcfunction +0 -2
- package/dist/data/test/function/heap_push__else_8.mcfunction +0 -2
- package/dist/data/test/function/heap_push__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/heap_push__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/heap_push__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/heap_push__merge_4.mcfunction +0 -1
- package/dist/data/test/function/heap_push__merge_7.mcfunction +0 -1
- package/dist/data/test/function/heap_push__then_3.mcfunction +0 -7
- package/dist/data/test/function/heap_push__then_6.mcfunction +0 -2
- package/dist/data/test/function/heap_size.mcfunction +0 -2
- package/dist/data/test/function/hearts_at.mcfunction +0 -1
- package/dist/data/test/function/hide_bar.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_b.mcfunction +0 -23
- package/dist/data/test/function/hsl_to_b__merge_1.mcfunction +0 -29
- package/dist/data/test/function/hsl_to_b__merge_12.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_b__merge_15.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_b__merge_3.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_b__merge_6.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_b__merge_9.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_b__then_0.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_b__then_11.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_b__then_14.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_b__then_2.mcfunction +0 -1
- package/dist/data/test/function/hsl_to_b__then_5.mcfunction +0 -1
- package/dist/data/test/function/hsl_to_b__then_8.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_g.mcfunction +0 -23
- package/dist/data/test/function/hsl_to_g__merge_1.mcfunction +0 -29
- package/dist/data/test/function/hsl_to_g__merge_12.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_g__merge_15.mcfunction +0 -1
- package/dist/data/test/function/hsl_to_g__merge_3.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_g__merge_6.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_g__merge_9.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_g__then_0.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_g__then_11.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_g__then_14.mcfunction +0 -1
- package/dist/data/test/function/hsl_to_g__then_2.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_g__then_5.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_g__then_8.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_packed.mcfunction +0 -24
- package/dist/data/test/function/hsl_to_r.mcfunction +0 -23
- package/dist/data/test/function/hsl_to_r__merge_1.mcfunction +0 -29
- package/dist/data/test/function/hsl_to_r__merge_12.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_r__merge_15.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_r__merge_3.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_r__merge_6.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_r__merge_9.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_r__then_0.mcfunction +0 -4
- package/dist/data/test/function/hsl_to_r__then_11.mcfunction +0 -1
- package/dist/data/test/function/hsl_to_r__then_14.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_r__then_2.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_r__then_5.mcfunction +0 -3
- package/dist/data/test/function/hsl_to_r__then_8.mcfunction +0 -1
- package/dist/data/test/function/impact_velocity.mcfunction +0 -5
- package/dist/data/test/function/impact_velocity__merge_1.mcfunction +0 -16
- package/dist/data/test/function/impact_velocity__then_0.mcfunction +0 -2
- package/dist/data/test/function/init_div.mcfunction +0 -1
- package/dist/data/test/function/init_trig.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort__else_11.mcfunction +0 -2
- package/dist/data/test/function/insertion_sort__else_8.mcfunction +0 -2
- package/dist/data/test/function/insertion_sort__loop_body_1.mcfunction +0 -6
- package/dist/data/test/function/insertion_sort__loop_body_4.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort__loop_exit_5.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/insertion_sort__loop_header_3.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort__merge_10.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort__merge_7.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort__then_6.mcfunction +0 -3
- package/dist/data/test/function/insertion_sort__then_9.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort_desc.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort_desc__else_11.mcfunction +0 -2
- package/dist/data/test/function/insertion_sort_desc__else_8.mcfunction +0 -2
- package/dist/data/test/function/insertion_sort_desc__loop_body_1.mcfunction +0 -6
- package/dist/data/test/function/insertion_sort_desc__loop_body_4.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort_desc__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort_desc__loop_exit_5.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort_desc__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/insertion_sort_desc__loop_header_3.mcfunction +0 -4
- package/dist/data/test/function/insertion_sort_desc__merge_10.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort_desc__merge_7.mcfunction +0 -1
- package/dist/data/test/function/insertion_sort_desc__then_6.mcfunction +0 -3
- package/dist/data/test/function/insertion_sort_desc__then_9.mcfunction +0 -4
- package/dist/data/test/function/int32_to_bigint3_hi.mcfunction +0 -5
- package/dist/data/test/function/int32_to_bigint3_hi__merge_1.mcfunction +0 -4
- package/dist/data/test/function/int32_to_bigint3_hi__then_0.mcfunction +0 -4
- package/dist/data/test/function/int32_to_bigint3_lo.mcfunction +0 -5
- package/dist/data/test/function/int32_to_bigint3_lo__merge_1.mcfunction +0 -4
- package/dist/data/test/function/int32_to_bigint3_lo__then_0.mcfunction +0 -4
- package/dist/data/test/function/int32_to_bigint3_mid.mcfunction +0 -5
- package/dist/data/test/function/int32_to_bigint3_mid__merge_1.mcfunction +0 -7
- package/dist/data/test/function/int32_to_bigint3_mid__then_0.mcfunction +0 -4
- package/dist/data/test/function/integrate_simpson.mcfunction +0 -7
- package/dist/data/test/function/integrate_simpson__loop_body_6.mcfunction +0 -7
- package/dist/data/test/function/integrate_simpson__loop_exit_7.mcfunction +0 -6
- package/dist/data/test/function/integrate_simpson__loop_header_5.mcfunction +0 -5
- package/dist/data/test/function/integrate_simpson__merge_1.mcfunction +0 -8
- package/dist/data/test/function/integrate_simpson__merge_11.mcfunction +0 -4
- package/dist/data/test/function/integrate_simpson__merge_4.mcfunction +0 -5
- package/dist/data/test/function/integrate_simpson__merge_9.mcfunction +0 -7
- package/dist/data/test/function/integrate_simpson__then_0.mcfunction +0 -6
- package/dist/data/test/function/integrate_simpson__then_10.mcfunction +0 -6
- package/dist/data/test/function/integrate_simpson__then_3.mcfunction +0 -4
- package/dist/data/test/function/integrate_simpson__then_8.mcfunction +0 -6
- package/dist/data/test/function/integrate_trapezoid.mcfunction +0 -7
- package/dist/data/test/function/integrate_trapezoid__loop_body_4.mcfunction +0 -7
- package/dist/data/test/function/integrate_trapezoid__loop_exit_5.mcfunction +0 -6
- package/dist/data/test/function/integrate_trapezoid__loop_header_3.mcfunction +0 -5
- package/dist/data/test/function/integrate_trapezoid__merge_1.mcfunction +0 -11
- package/dist/data/test/function/integrate_trapezoid__then_0.mcfunction +0 -2
- package/dist/data/test/function/interactions_init.mcfunction +0 -9
- package/dist/data/test/function/invisible.mcfunction +0 -1
- package/dist/data/test/function/is_grounded.mcfunction +0 -5
- package/dist/data/test/function/is_grounded__merge_1.mcfunction +0 -2
- package/dist/data/test/function/is_grounded__then_0.mcfunction +0 -2
- package/dist/data/test/function/is_op.mcfunction +0 -2
- package/dist/data/test/function/is_op__exec_t1.mcfunction +0 -1
- package/dist/data/test/function/is_prime.mcfunction +0 -5
- package/dist/data/test/function/is_prime__loop_body_10.mcfunction +0 -6
- package/dist/data/test/function/is_prime__loop_exit_11.mcfunction +0 -2
- package/dist/data/test/function/is_prime__loop_header_9.mcfunction +0 -5
- package/dist/data/test/function/is_prime__merge_1.mcfunction +0 -4
- package/dist/data/test/function/is_prime__merge_13.mcfunction +0 -4
- package/dist/data/test/function/is_prime__merge_4.mcfunction +0 -7
- package/dist/data/test/function/is_prime__merge_7.mcfunction +0 -2
- package/dist/data/test/function/is_prime__then_0.mcfunction +0 -2
- package/dist/data/test/function/is_prime__then_12.mcfunction +0 -2
- package/dist/data/test/function/is_prime__then_3.mcfunction +0 -2
- package/dist/data/test/function/is_prime__then_6.mcfunction +0 -2
- package/dist/data/test/function/is_sneaking.mcfunction +0 -5
- package/dist/data/test/function/is_sneaking__merge_1.mcfunction +0 -2
- package/dist/data/test/function/is_sneaking__then_0.mcfunction +0 -2
- package/dist/data/test/function/isqrt.mcfunction +0 -5
- package/dist/data/test/function/isqrt__loop_body_10.mcfunction +0 -8
- package/dist/data/test/function/isqrt__loop_body_13.mcfunction +0 -11
- package/dist/data/test/function/isqrt__loop_body_7.mcfunction +0 -8
- package/dist/data/test/function/isqrt__loop_exit_11.mcfunction +0 -2
- package/dist/data/test/function/isqrt__loop_exit_14.mcfunction +0 -1
- package/dist/data/test/function/isqrt__loop_exit_8.mcfunction +0 -9
- package/dist/data/test/function/isqrt__loop_header_12.mcfunction +0 -4
- package/dist/data/test/function/isqrt__loop_header_6.mcfunction +0 -4
- package/dist/data/test/function/isqrt__loop_header_9.mcfunction +0 -3
- package/dist/data/test/function/isqrt__merge_1.mcfunction +0 -4
- package/dist/data/test/function/isqrt__merge_16.mcfunction +0 -5
- package/dist/data/test/function/isqrt__merge_4.mcfunction +0 -3
- package/dist/data/test/function/isqrt__then_0.mcfunction +0 -2
- package/dist/data/test/function/isqrt__then_15.mcfunction +0 -1
- package/dist/data/test/function/isqrt__then_3.mcfunction +0 -2
- package/dist/data/test/function/julia_iter.mcfunction +0 -9
- package/dist/data/test/function/julia_iter__loop_body_1.mcfunction +0 -36
- package/dist/data/test/function/julia_iter__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/julia_iter__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/julia_iter__merge_4.mcfunction +0 -4
- package/dist/data/test/function/julia_iter__then_3.mcfunction +0 -1
- package/dist/data/test/function/jump.mcfunction +0 -1
- package/dist/data/test/function/lambda_demo.mcfunction +0 -2
- package/dist/data/test/function/launch_up.mcfunction +0 -6
- package/dist/data/test/function/lcm.mcfunction +0 -11
- package/dist/data/test/function/lcm__merge_1.mcfunction +0 -5
- package/dist/data/test/function/lcm__then_0.mcfunction +0 -2
- package/dist/data/test/function/length2d_fixed.mcfunction +0 -15
- package/dist/data/test/function/length3d_fixed.mcfunction +0 -20
- package/dist/data/test/function/lerp.mcfunction +0 -13
- package/dist/data/test/function/lerp2d_x.mcfunction +0 -13
- package/dist/data/test/function/lerp2d_y.mcfunction +0 -13
- package/dist/data/test/function/lerp_angle.mcfunction +0 -7
- package/dist/data/test/function/lerp_angle__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/lerp_angle__loop_body_4.mcfunction +0 -4
- package/dist/data/test/function/lerp_angle__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/lerp_angle__loop_exit_5.mcfunction +0 -8
- package/dist/data/test/function/lerp_angle__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/lerp_angle__loop_header_3.mcfunction +0 -3
- package/dist/data/test/function/list_avg.mcfunction +0 -9
- package/dist/data/test/function/list_clamp_all.mcfunction +0 -6
- package/dist/data/test/function/list_clamp_all__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_clamp_all__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_clamp_all__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_clamp_all__merge_4.mcfunction +0 -4
- package/dist/data/test/function/list_clamp_all__merge_6.mcfunction +0 -4
- package/dist/data/test/function/list_clamp_all__then_3.mcfunction +0 -1
- package/dist/data/test/function/list_clamp_all__then_5.mcfunction +0 -1
- package/dist/data/test/function/list_contains.mcfunction +0 -5
- package/dist/data/test/function/list_contains__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_contains__loop_exit_2.mcfunction +0 -2
- package/dist/data/test/function/list_contains__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_contains__merge_4.mcfunction +0 -4
- package/dist/data/test/function/list_contains__then_3.mcfunction +0 -2
- package/dist/data/test/function/list_count_if_gt.mcfunction +0 -6
- package/dist/data/test/function/list_count_if_gt__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_count_if_gt__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_count_if_gt__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_count_if_gt__merge_4.mcfunction +0 -4
- package/dist/data/test/function/list_count_if_gt__then_3.mcfunction +0 -4
- package/dist/data/test/function/list_fill.mcfunction +0 -3
- package/dist/data/test/function/list_fill__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_fill__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_fill__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_index_of.mcfunction +0 -5
- package/dist/data/test/function/list_index_of__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_index_of__loop_exit_2.mcfunction +0 -2
- package/dist/data/test/function/list_index_of__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_index_of__merge_4.mcfunction +0 -4
- package/dist/data/test/function/list_index_of__then_3.mcfunction +0 -1
- package/dist/data/test/function/list_max.mcfunction +0 -5
- package/dist/data/test/function/list_max3.mcfunction +0 -7
- package/dist/data/test/function/list_max3__merge_1.mcfunction +0 -3
- package/dist/data/test/function/list_max3__merge_3.mcfunction +0 -1
- package/dist/data/test/function/list_max3__then_0.mcfunction +0 -2
- package/dist/data/test/function/list_max3__then_2.mcfunction +0 -2
- package/dist/data/test/function/list_max5.mcfunction +0 -9
- package/dist/data/test/function/list_max5__merge_1.mcfunction +0 -3
- package/dist/data/test/function/list_max5__merge_3.mcfunction +0 -3
- package/dist/data/test/function/list_max5__merge_5.mcfunction +0 -3
- package/dist/data/test/function/list_max5__merge_7.mcfunction +0 -1
- package/dist/data/test/function/list_max5__then_0.mcfunction +0 -2
- package/dist/data/test/function/list_max5__then_2.mcfunction +0 -2
- package/dist/data/test/function/list_max5__then_4.mcfunction +0 -2
- package/dist/data/test/function/list_max5__then_6.mcfunction +0 -2
- package/dist/data/test/function/list_max__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_max__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_max__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_max__merge_4.mcfunction +0 -4
- package/dist/data/test/function/list_max__then_3.mcfunction +0 -2
- package/dist/data/test/function/list_min.mcfunction +0 -5
- package/dist/data/test/function/list_min3.mcfunction +0 -7
- package/dist/data/test/function/list_min3__merge_1.mcfunction +0 -3
- package/dist/data/test/function/list_min3__merge_3.mcfunction +0 -1
- package/dist/data/test/function/list_min3__then_0.mcfunction +0 -2
- package/dist/data/test/function/list_min3__then_2.mcfunction +0 -2
- package/dist/data/test/function/list_min5.mcfunction +0 -9
- package/dist/data/test/function/list_min5__merge_1.mcfunction +0 -3
- package/dist/data/test/function/list_min5__merge_3.mcfunction +0 -3
- package/dist/data/test/function/list_min5__merge_5.mcfunction +0 -3
- package/dist/data/test/function/list_min5__merge_7.mcfunction +0 -1
- package/dist/data/test/function/list_min5__then_0.mcfunction +0 -2
- package/dist/data/test/function/list_min5__then_2.mcfunction +0 -2
- package/dist/data/test/function/list_min5__then_4.mcfunction +0 -2
- package/dist/data/test/function/list_min5__then_6.mcfunction +0 -2
- package/dist/data/test/function/list_min__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/list_min__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_min__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_min__merge_4.mcfunction +0 -4
- package/dist/data/test/function/list_min__then_3.mcfunction +0 -2
- package/dist/data/test/function/list_reverse.mcfunction +0 -6
- package/dist/data/test/function/list_reverse__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/list_reverse__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_reverse__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/list_sort_asc.mcfunction +0 -4
- package/dist/data/test/function/list_sort_asc__loop_body_1.mcfunction +0 -2
- package/dist/data/test/function/list_sort_asc__loop_body_4.mcfunction +0 -3
- package/dist/data/test/function/list_sort_asc__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_sort_asc__loop_exit_5.mcfunction +0 -4
- package/dist/data/test/function/list_sort_asc__loop_header_0.mcfunction +0 -5
- package/dist/data/test/function/list_sort_asc__loop_header_3.mcfunction +0 -7
- package/dist/data/test/function/list_sort_asc__merge_7.mcfunction +0 -4
- package/dist/data/test/function/list_sort_asc__then_6.mcfunction +0 -1
- package/dist/data/test/function/list_sort_desc.mcfunction +0 -4
- package/dist/data/test/function/list_sort_desc__loop_body_1.mcfunction +0 -2
- package/dist/data/test/function/list_sort_desc__loop_body_4.mcfunction +0 -3
- package/dist/data/test/function/list_sort_desc__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_sort_desc__loop_exit_5.mcfunction +0 -4
- package/dist/data/test/function/list_sort_desc__loop_header_0.mcfunction +0 -5
- package/dist/data/test/function/list_sort_desc__loop_header_3.mcfunction +0 -7
- package/dist/data/test/function/list_sort_desc__merge_7.mcfunction +0 -4
- package/dist/data/test/function/list_sort_desc__then_6.mcfunction +0 -1
- package/dist/data/test/function/list_sum.mcfunction +0 -5
- package/dist/data/test/function/list_sum3.mcfunction +0 -8
- package/dist/data/test/function/list_sum4.mcfunction +0 -11
- package/dist/data/test/function/list_sum5.mcfunction +0 -14
- package/dist/data/test/function/list_sum__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/list_sum__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/list_sum__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/ln.mcfunction +0 -9
- package/dist/data/test/function/ln__loop_body_1.mcfunction +0 -8
- package/dist/data/test/function/ln__loop_body_4.mcfunction +0 -8
- package/dist/data/test/function/ln__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/ln__loop_exit_5.mcfunction +0 -37
- package/dist/data/test/function/ln__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/ln__loop_header_3.mcfunction +0 -6
- package/dist/data/test/function/load.mcfunction +0 -1
- package/dist/data/test/function/log10_fx.mcfunction +0 -11
- package/dist/data/test/function/log2_fx.mcfunction +0 -11
- package/dist/data/test/function/log2_int.mcfunction +0 -5
- package/dist/data/test/function/log2_int__loop_body_4.mcfunction +0 -8
- package/dist/data/test/function/log2_int__loop_exit_5.mcfunction +0 -1
- package/dist/data/test/function/log2_int__loop_header_3.mcfunction +0 -4
- package/dist/data/test/function/log2_int__merge_1.mcfunction +0 -3
- package/dist/data/test/function/log2_int__then_0.mcfunction +0 -2
- package/dist/data/test/function/loga_fx.mcfunction +0 -10
- package/dist/data/test/function/loga_fx__merge_1.mcfunction +0 -9
- package/dist/data/test/function/loga_fx__then_0.mcfunction +0 -2
- package/dist/data/test/function/mandelbrot_iter.mcfunction +0 -7
- package/dist/data/test/function/mandelbrot_iter__loop_body_1.mcfunction +0 -36
- package/dist/data/test/function/mandelbrot_iter__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/mandelbrot_iter__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/mandelbrot_iter__merge_4.mcfunction +0 -4
- package/dist/data/test/function/mandelbrot_iter__then_3.mcfunction +0 -1
- package/dist/data/test/function/manhattan.mcfunction +0 -14
- package/dist/data/test/function/manhattan3d.mcfunction +0 -19
- package/dist/data/test/function/manhattan3d__merge_1.mcfunction +0 -4
- package/dist/data/test/function/manhattan3d__merge_3.mcfunction +0 -4
- package/dist/data/test/function/manhattan3d__merge_5.mcfunction +0 -5
- package/dist/data/test/function/manhattan3d__then_0.mcfunction +0 -4
- package/dist/data/test/function/manhattan3d__then_2.mcfunction +0 -4
- package/dist/data/test/function/manhattan3d__then_4.mcfunction +0 -4
- package/dist/data/test/function/manhattan__merge_1.mcfunction +0 -4
- package/dist/data/test/function/manhattan__merge_3.mcfunction +0 -3
- package/dist/data/test/function/manhattan__then_0.mcfunction +0 -4
- package/dist/data/test/function/manhattan__then_2.mcfunction +0 -4
- package/dist/data/test/function/map.mcfunction +0 -12
- package/dist/data/test/function/map__merge_1.mcfunction +0 -11
- package/dist/data/test/function/map__then_0.mcfunction +0 -1
- package/dist/data/test/function/max_heap_pop.mcfunction +0 -4
- package/dist/data/test/function/max_heap_pop__else_13.mcfunction +0 -2
- package/dist/data/test/function/max_heap_pop__loop_body_1.mcfunction +0 -14
- package/dist/data/test/function/max_heap_pop__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/max_heap_pop__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/max_heap_pop__merge_10.mcfunction +0 -1
- package/dist/data/test/function/max_heap_pop__merge_12.mcfunction +0 -1
- package/dist/data/test/function/max_heap_pop__merge_4.mcfunction +0 -3
- package/dist/data/test/function/max_heap_pop__merge_6.mcfunction +0 -1
- package/dist/data/test/function/max_heap_pop__merge_8.mcfunction +0 -3
- package/dist/data/test/function/max_heap_pop__then_11.mcfunction +0 -2
- package/dist/data/test/function/max_heap_pop__then_3.mcfunction +0 -3
- package/dist/data/test/function/max_heap_pop__then_5.mcfunction +0 -2
- package/dist/data/test/function/max_heap_pop__then_7.mcfunction +0 -3
- package/dist/data/test/function/max_heap_pop__then_9.mcfunction +0 -2
- package/dist/data/test/function/max_heap_push.mcfunction +0 -6
- package/dist/data/test/function/max_heap_push__else_5.mcfunction +0 -2
- package/dist/data/test/function/max_heap_push__else_8.mcfunction +0 -2
- package/dist/data/test/function/max_heap_push__loop_body_1.mcfunction +0 -4
- package/dist/data/test/function/max_heap_push__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/max_heap_push__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/max_heap_push__merge_4.mcfunction +0 -1
- package/dist/data/test/function/max_heap_push__merge_7.mcfunction +0 -1
- package/dist/data/test/function/max_heap_push__then_3.mcfunction +0 -7
- package/dist/data/test/function/max_heap_push__then_6.mcfunction +0 -2
- package/dist/data/test/function/mc_day_angle.mcfunction +0 -16
- package/dist/data/test/function/midpoint.mcfunction +0 -8
- package/dist/data/test/function/mod_pow.mcfunction +0 -7
- package/dist/data/test/function/mod_pow__loop_body_6.mcfunction +0 -7
- package/dist/data/test/function/mod_pow__loop_exit_7.mcfunction +0 -1
- package/dist/data/test/function/mod_pow__loop_header_5.mcfunction +0 -4
- package/dist/data/test/function/mod_pow__merge_1.mcfunction +0 -8
- package/dist/data/test/function/mod_pow__merge_4.mcfunction +0 -2
- package/dist/data/test/function/mod_pow__merge_9.mcfunction +0 -10
- package/dist/data/test/function/mod_pow__then_0.mcfunction +0 -2
- package/dist/data/test/function/mod_pow__then_3.mcfunction +0 -4
- package/dist/data/test/function/mod_pow__then_8.mcfunction +0 -6
- package/dist/data/test/function/mulfix.mcfunction +0 -8
- package/dist/data/test/function/neg2d_x.mcfunction +0 -4
- package/dist/data/test/function/neg2d_y.mcfunction +0 -4
- package/dist/data/test/function/neg3d_x.mcfunction +0 -4
- package/dist/data/test/function/neg3d_y.mcfunction +0 -4
- package/dist/data/test/function/neg3d_z.mcfunction +0 -4
- package/dist/data/test/function/newton_sqrt.mcfunction +0 -5
- package/dist/data/test/function/newton_sqrt__loop_body_7.mcfunction +0 -10
- package/dist/data/test/function/newton_sqrt__loop_exit_8.mcfunction +0 -1
- package/dist/data/test/function/newton_sqrt__loop_header_6.mcfunction +0 -3
- package/dist/data/test/function/newton_sqrt__merge_1.mcfunction +0 -4
- package/dist/data/test/function/newton_sqrt__merge_4.mcfunction +0 -6
- package/dist/data/test/function/newton_sqrt__then_0.mcfunction +0 -2
- package/dist/data/test/function/newton_sqrt__then_3.mcfunction +0 -2
- package/dist/data/test/function/newton_step.mcfunction +0 -7
- package/dist/data/test/function/newton_step__merge_1.mcfunction +0 -8
- package/dist/data/test/function/newton_step__then_0.mcfunction +0 -1
- package/dist/data/test/function/next_lcg.mcfunction +0 -7
- package/dist/data/test/function/night_vision.mcfunction +0 -1
- package/dist/data/test/function/noise1d.mcfunction +0 -13
- package/dist/data/test/function/noise1d__merge_1.mcfunction +0 -20
- package/dist/data/test/function/noise1d__merge_3.mcfunction +0 -4
- package/dist/data/test/function/noise1d__merge_5.mcfunction +0 -11
- package/dist/data/test/function/noise1d__then_0.mcfunction +0 -7
- package/dist/data/test/function/noise1d__then_2.mcfunction +0 -4
- package/dist/data/test/function/noise1d__then_4.mcfunction +0 -4
- package/dist/data/test/function/norm3_hp.mcfunction +0 -43
- package/dist/data/test/function/normal_approx12.mcfunction +0 -15
- package/dist/data/test/function/normal_approx12__merge_1.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_11.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_13.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_15.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_17.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_19.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_21.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_23.mcfunction +0 -9
- package/dist/data/test/function/normal_approx12__merge_3.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_5.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_7.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__merge_9.mcfunction +0 -17
- package/dist/data/test/function/normal_approx12__then_0.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_10.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_12.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_14.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_16.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_18.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_2.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_20.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_22.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_4.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_6.mcfunction +0 -4
- package/dist/data/test/function/normal_approx12__then_8.mcfunction +0 -4
- package/dist/data/test/function/normalize2d_x.mcfunction +0 -11
- package/dist/data/test/function/normalize2d_x__merge_1.mcfunction +0 -6
- package/dist/data/test/function/normalize2d_x__then_0.mcfunction +0 -2
- package/dist/data/test/function/normalize2d_y.mcfunction +0 -11
- package/dist/data/test/function/normalize2d_y__merge_1.mcfunction +0 -6
- package/dist/data/test/function/normalize2d_y__then_0.mcfunction +0 -2
- package/dist/data/test/function/on_double_sneak.mcfunction +0 -1
- package/dist/data/test/function/on_double_sneak__foreach_t0.mcfunction +0 -9
- package/dist/data/test/function/on_double_sneak__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/test/function/on_double_sneak__foreach_t0__merge_3.mcfunction +0 -2
- package/dist/data/test/function/on_double_sneak__foreach_t0__then_0.mcfunction +0 -6
- package/dist/data/test/function/on_double_sneak__foreach_t0__then_2.mcfunction +0 -2
- package/dist/data/test/function/on_right_click.mcfunction +0 -1
- package/dist/data/test/function/on_right_click__foreach_t1.mcfunction +0 -5
- package/dist/data/test/function/on_right_click__foreach_t1__merge_1.mcfunction +0 -1
- package/dist/data/test/function/on_right_click__foreach_t1__then_0.mcfunction +0 -3
- package/dist/data/test/function/on_sneak_click.mcfunction +0 -1
- package/dist/data/test/function/on_sneak_click__foreach_t0.mcfunction +0 -7
- package/dist/data/test/function/on_sneak_click__foreach_t0__else_4.mcfunction +0 -3
- package/dist/data/test/function/on_sneak_click__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/test/function/on_sneak_click__foreach_t0__merge_3.mcfunction +0 -1
- package/dist/data/test/function/on_sneak_click__foreach_t0__then_0.mcfunction +0 -4
- package/dist/data/test/function/on_sneak_click__foreach_t0__then_2.mcfunction +0 -3
- package/dist/data/test/function/on_sneak_start.mcfunction +0 -1
- package/dist/data/test/function/on_sneak_start__foreach_t0.mcfunction +0 -5
- package/dist/data/test/function/on_sneak_start__foreach_t0__else_2.mcfunction +0 -2
- package/dist/data/test/function/on_sneak_start__foreach_t0__merge_1.mcfunction +0 -1
- package/dist/data/test/function/on_sneak_start__foreach_t0__then_0.mcfunction +0 -2
- package/dist/data/test/function/parabola_land_t.mcfunction +0 -7
- package/dist/data/test/function/parabola_x.mcfunction +0 -8
- package/dist/data/test/function/parabola_y.mcfunction +0 -17
- package/dist/data/test/function/particle_at_fx.mcfunction +0 -1
- package/dist/data/test/function/particle_dot.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs.mcfunction +0 -11
- package/dist/data/test/function/pathfind_bfs__else_33.mcfunction +0 -4
- package/dist/data/test/function/pathfind_bfs__else_8.mcfunction +0 -19
- package/dist/data/test/function/pathfind_bfs__loop_body_1.mcfunction +0 -10
- package/dist/data/test/function/pathfind_bfs__loop_body_29.mcfunction +0 -6
- package/dist/data/test/function/pathfind_bfs__loop_body_35.mcfunction +0 -9
- package/dist/data/test/function/pathfind_bfs__loop_body_4.mcfunction +0 -9
- package/dist/data/test/function/pathfind_bfs__loop_exit_2.mcfunction +0 -24
- package/dist/data/test/function/pathfind_bfs__loop_exit_30.mcfunction +0 -6
- package/dist/data/test/function/pathfind_bfs__loop_exit_36.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__loop_exit_5.mcfunction +0 -6
- package/dist/data/test/function/pathfind_bfs__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/pathfind_bfs__loop_header_28.mcfunction +0 -4
- package/dist/data/test/function/pathfind_bfs__loop_header_3.mcfunction +0 -3
- package/dist/data/test/function/pathfind_bfs__loop_header_34.mcfunction +0 -4
- package/dist/data/test/function/pathfind_bfs__merge_10.mcfunction +0 -11
- package/dist/data/test/function/pathfind_bfs__merge_12.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__merge_14.mcfunction +0 -11
- package/dist/data/test/function/pathfind_bfs__merge_16.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__merge_18.mcfunction +0 -11
- package/dist/data/test/function/pathfind_bfs__merge_20.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__merge_22.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__merge_24.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__merge_26.mcfunction +0 -5
- package/dist/data/test/function/pathfind_bfs__merge_32.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__merge_7.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__then_11.mcfunction +0 -15
- package/dist/data/test/function/pathfind_bfs__then_13.mcfunction +0 -13
- package/dist/data/test/function/pathfind_bfs__then_15.mcfunction +0 -15
- package/dist/data/test/function/pathfind_bfs__then_17.mcfunction +0 -13
- package/dist/data/test/function/pathfind_bfs__then_19.mcfunction +0 -15
- package/dist/data/test/function/pathfind_bfs__then_21.mcfunction +0 -13
- package/dist/data/test/function/pathfind_bfs__then_23.mcfunction +0 -15
- package/dist/data/test/function/pathfind_bfs__then_25.mcfunction +0 -1
- package/dist/data/test/function/pathfind_bfs__then_31.mcfunction +0 -2
- package/dist/data/test/function/pathfind_bfs__then_6.mcfunction +0 -3
- package/dist/data/test/function/pathfind_bfs__then_9.mcfunction +0 -13
- package/dist/data/test/function/pathfind_bfs_coro.mcfunction +0 -1
- package/dist/data/test/function/pcg_next_hi.mcfunction +0 -8
- package/dist/data/test/function/pcg_next_lo.mcfunction +0 -7
- package/dist/data/test/function/pcg_output.mcfunction +0 -14
- package/dist/data/test/function/pcg_output__merge_1.mcfunction +0 -1
- package/dist/data/test/function/pcg_output__then_0.mcfunction +0 -4
- package/dist/data/test/function/pf_heuristic.mcfunction +0 -14
- package/dist/data/test/function/pf_heuristic__merge_1.mcfunction +0 -4
- package/dist/data/test/function/pf_heuristic__merge_3.mcfunction +0 -6
- package/dist/data/test/function/pf_heuristic__then_0.mcfunction +0 -4
- package/dist/data/test/function/pf_heuristic__then_2.mcfunction +0 -4
- package/dist/data/test/function/pf_is_blocked.mcfunction +0 -7
- package/dist/data/test/function/pf_is_blocked__merge_1.mcfunction +0 -4
- package/dist/data/test/function/pf_is_blocked__merge_10.mcfunction +0 -4
- package/dist/data/test/function/pf_is_blocked__merge_4.mcfunction +0 -4
- package/dist/data/test/function/pf_is_blocked__merge_7.mcfunction +0 -4
- package/dist/data/test/function/pf_is_blocked__then_0.mcfunction +0 -2
- package/dist/data/test/function/pf_is_blocked__then_3.mcfunction +0 -2
- package/dist/data/test/function/pf_is_blocked__then_6.mcfunction +0 -2
- package/dist/data/test/function/pf_is_blocked__then_9.mcfunction +0 -2
- package/dist/data/test/function/pf_new_map.mcfunction +0 -4
- package/dist/data/test/function/pf_new_map__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/pf_new_map__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/pf_new_map__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/pf_noop.mcfunction +0 -1
- package/dist/data/test/function/pf_pack.mcfunction +0 -8
- package/dist/data/test/function/pf_set_blocked.mcfunction +0 -5
- package/dist/data/test/function/pf_set_open.mcfunction +0 -5
- package/dist/data/test/function/pf_unpack_x.mcfunction +0 -5
- package/dist/data/test/function/pf_unpack_z.mcfunction +0 -5
- package/dist/data/test/function/popcount.mcfunction +0 -5
- package/dist/data/test/function/popcount__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/popcount__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/popcount__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/popcount__merge_4.mcfunction +0 -8
- package/dist/data/test/function/popcount__then_3.mcfunction +0 -4
- package/dist/data/test/function/portal_effect.mcfunction +0 -1
- package/dist/data/test/function/pow_int.mcfunction +0 -6
- package/dist/data/test/function/pow_int__loop_body_4.mcfunction +0 -7
- package/dist/data/test/function/pow_int__loop_exit_5.mcfunction +0 -1
- package/dist/data/test/function/pow_int__loop_header_3.mcfunction +0 -4
- package/dist/data/test/function/pow_int__merge_1.mcfunction +0 -4
- package/dist/data/test/function/pow_int__merge_7.mcfunction +0 -8
- package/dist/data/test/function/pow_int__then_0.mcfunction +0 -2
- package/dist/data/test/function/pow_int__then_6.mcfunction +0 -4
- package/dist/data/test/function/projectile_land_t.mcfunction +0 -5
- package/dist/data/test/function/projectile_land_t__merge_1.mcfunction +0 -7
- package/dist/data/test/function/projectile_land_t__then_0.mcfunction +0 -2
- package/dist/data/test/function/projectile_max_height.mcfunction +0 -10
- package/dist/data/test/function/projectile_vy.mcfunction +0 -9
- package/dist/data/test/function/projectile_x.mcfunction +0 -8
- package/dist/data/test/function/projectile_y.mcfunction +0 -19
- package/dist/data/test/function/ptimer/new.mcfunction +0 -3
- package/dist/data/test/function/ptimer/reset.mcfunction +0 -1
- package/dist/data/test/function/ptimer/tick.mcfunction +0 -8
- package/dist/data/test/function/ptimer/tick__merge_1.mcfunction +0 -2
- package/dist/data/test/function/ptimer/tick__then_0.mcfunction +0 -3
- package/dist/data/test/function/quadratic_disc.mcfunction +0 -12
- package/dist/data/test/function/quadratic_x1.mcfunction +0 -7
- package/dist/data/test/function/quadratic_x1__merge_1.mcfunction +0 -13
- package/dist/data/test/function/quadratic_x1__merge_4.mcfunction +0 -15
- package/dist/data/test/function/quadratic_x1__then_0.mcfunction +0 -2
- package/dist/data/test/function/quadratic_x1__then_3.mcfunction +0 -2
- package/dist/data/test/function/quadratic_x2.mcfunction +0 -7
- package/dist/data/test/function/quadratic_x2__merge_1.mcfunction +0 -13
- package/dist/data/test/function/quadratic_x2__merge_4.mcfunction +0 -15
- package/dist/data/test/function/quadratic_x2__then_0.mcfunction +0 -2
- package/dist/data/test/function/quadratic_x2__then_3.mcfunction +0 -2
- package/dist/data/test/function/quat_cos_half.mcfunction +0 -8
- package/dist/data/test/function/quat_sin_half.mcfunction +0 -8
- package/dist/data/test/function/random_bool.mcfunction +0 -6
- package/dist/data/test/function/random_bool__merge_1.mcfunction +0 -4
- package/dist/data/test/function/random_bool__then_0.mcfunction +0 -4
- package/dist/data/test/function/random_range.mcfunction +0 -8
- package/dist/data/test/function/random_range__merge_1.mcfunction +0 -7
- package/dist/data/test/function/random_range__then_0.mcfunction +0 -4
- package/dist/data/test/function/regen.mcfunction +0 -1
- package/dist/data/test/function/remove_bar.mcfunction +0 -3
- package/dist/data/test/function/remove_from_teams.mcfunction +0 -3
- package/dist/data/test/function/remove_item.mcfunction +0 -1
- package/dist/data/test/function/resistance.mcfunction +0 -1
- package/dist/data/test/function/reverse_int.mcfunction +0 -7
- package/dist/data/test/function/reverse_int__loop_body_3.mcfunction +0 -14
- package/dist/data/test/function/reverse_int__loop_exit_4.mcfunction +0 -4
- package/dist/data/test/function/reverse_int__loop_header_2.mcfunction +0 -4
- package/dist/data/test/function/reverse_int__merge_1.mcfunction +0 -2
- package/dist/data/test/function/reverse_int__merge_6.mcfunction +0 -1
- package/dist/data/test/function/reverse_int__then_0.mcfunction +0 -5
- package/dist/data/test/function/reverse_int__then_5.mcfunction +0 -3
- package/dist/data/test/function/rgb_b.mcfunction +0 -5
- package/dist/data/test/function/rgb_g.mcfunction +0 -8
- package/dist/data/test/function/rgb_lerp.mcfunction +0 -71
- package/dist/data/test/function/rgb_pack.mcfunction +0 -14
- package/dist/data/test/function/rgb_r.mcfunction +0 -8
- package/dist/data/test/function/rgb_to_h.mcfunction +0 -7
- package/dist/data/test/function/rgb_to_h__merge_1.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_h__merge_12.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_h__merge_14.mcfunction +0 -1
- package/dist/data/test/function/rgb_to_h__merge_17.mcfunction +0 -9
- package/dist/data/test/function/rgb_to_h__merge_3.mcfunction +0 -4
- package/dist/data/test/function/rgb_to_h__merge_5.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_h__merge_7.mcfunction +0 -7
- package/dist/data/test/function/rgb_to_h__merge_9.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_h__then_0.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_h__then_11.mcfunction +0 -11
- package/dist/data/test/function/rgb_to_h__then_13.mcfunction +0 -4
- package/dist/data/test/function/rgb_to_h__then_16.mcfunction +0 -9
- package/dist/data/test/function/rgb_to_h__then_2.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_h__then_4.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_h__then_6.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_h__then_8.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_l.mcfunction +0 -7
- package/dist/data/test/function/rgb_to_l__merge_1.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_l__merge_3.mcfunction +0 -4
- package/dist/data/test/function/rgb_to_l__merge_5.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_l__merge_7.mcfunction +0 -9
- package/dist/data/test/function/rgb_to_l__then_0.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_l__then_2.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_l__then_4.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_l__then_6.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_s.mcfunction +0 -7
- package/dist/data/test/function/rgb_to_s__merge_1.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_s__merge_12.mcfunction +0 -10
- package/dist/data/test/function/rgb_to_s__merge_3.mcfunction +0 -4
- package/dist/data/test/function/rgb_to_s__merge_5.mcfunction +0 -3
- package/dist/data/test/function/rgb_to_s__merge_7.mcfunction +0 -7
- package/dist/data/test/function/rgb_to_s__merge_9.mcfunction +0 -12
- package/dist/data/test/function/rgb_to_s__then_0.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_s__then_11.mcfunction +0 -8
- package/dist/data/test/function/rgb_to_s__then_2.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_s__then_4.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_s__then_6.mcfunction +0 -2
- package/dist/data/test/function/rgb_to_s__then_8.mcfunction +0 -2
- package/dist/data/test/function/riemann_left.mcfunction +0 -6
- package/dist/data/test/function/riemann_left__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/riemann_left__loop_exit_2.mcfunction +0 -6
- package/dist/data/test/function/riemann_left__loop_header_0.mcfunction +0 -5
- package/dist/data/test/function/riemann_mid.mcfunction +0 -6
- package/dist/data/test/function/riemann_mid__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/riemann_mid__loop_exit_2.mcfunction +0 -6
- package/dist/data/test/function/riemann_mid__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/riemann_right.mcfunction +0 -6
- package/dist/data/test/function/riemann_right__loop_body_1.mcfunction +0 -7
- package/dist/data/test/function/riemann_right__loop_exit_2.mcfunction +0 -6
- package/dist/data/test/function/riemann_right__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/rotate2d_x.mcfunction +0 -20
- package/dist/data/test/function/rotate2d_y.mcfunction +0 -20
- package/dist/data/test/function/rotate_x_y.mcfunction +0 -28
- package/dist/data/test/function/rotate_x_z.mcfunction +0 -28
- package/dist/data/test/function/rotate_y_x.mcfunction +0 -28
- package/dist/data/test/function/rotate_y_z.mcfunction +0 -30
- package/dist/data/test/function/running_m2.mcfunction +0 -16
- package/dist/data/test/function/running_mean.mcfunction +0 -7
- package/dist/data/test/function/running_mean__merge_1.mcfunction +0 -13
- package/dist/data/test/function/running_mean__then_0.mcfunction +0 -1
- package/dist/data/test/function/scale2d_x.mcfunction +0 -8
- package/dist/data/test/function/scale2d_y.mcfunction +0 -8
- package/dist/data/test/function/scale3d_x.mcfunction +0 -8
- package/dist/data/test/function/scale3d_y.mcfunction +0 -8
- package/dist/data/test/function/scale3d_z.mcfunction +0 -8
- package/dist/data/test/function/scale_x.mcfunction +0 -8
- package/dist/data/test/function/scale_y.mcfunction +0 -8
- package/dist/data/test/function/scale_z.mcfunction +0 -8
- package/dist/data/test/function/second_deriv.mcfunction +0 -8
- package/dist/data/test/function/second_deriv__merge_1.mcfunction +0 -14
- package/dist/data/test/function/second_deriv__then_0.mcfunction +0 -2
- package/dist/data/test/function/seconds_to_ticks.mcfunction +0 -5
- package/dist/data/test/function/set_day.mcfunction +0 -1
- package/dist/data/test/function/set_easy.mcfunction +0 -1
- package/dist/data/test/function/set_hard.mcfunction +0 -1
- package/dist/data/test/function/set_midnight.mcfunction +0 -1
- package/dist/data/test/function/set_night.mcfunction +0 -1
- package/dist/data/test/function/set_noon.mcfunction +0 -1
- package/dist/data/test/function/set_normal.mcfunction +0 -1
- package/dist/data/test/function/set_peaceful.mcfunction +0 -1
- package/dist/data/test/function/setup_four_teams.mcfunction +0 -4
- package/dist/data/test/function/setup_two_teams.mcfunction +0 -2
- package/dist/data/test/function/show_bar.mcfunction +0 -4
- package/dist/data/test/function/showcase_load.mcfunction +0 -4
- package/dist/data/test/function/showcase_tick.mcfunction +0 -1
- package/dist/data/test/function/sign.mcfunction +0 -5
- package/dist/data/test/function/sign__merge_1.mcfunction +0 -4
- package/dist/data/test/function/sign__merge_4.mcfunction +0 -2
- package/dist/data/test/function/sign__then_0.mcfunction +0 -2
- package/dist/data/test/function/sign__then_3.mcfunction +0 -2
- package/dist/data/test/function/simpson_step.mcfunction +0 -16
- package/dist/data/test/function/sin_fixed.mcfunction +0 -9
- package/dist/data/test/function/sin_fixed__merge_1.mcfunction +0 -4
- package/dist/data/test/function/sin_fixed__merge_3.mcfunction +0 -4
- package/dist/data/test/function/sin_fixed__merge_6.mcfunction +0 -4
- package/dist/data/test/function/sin_fixed__merge_9.mcfunction +0 -10
- package/dist/data/test/function/sin_fixed__then_0.mcfunction +0 -4
- package/dist/data/test/function/sin_fixed__then_2.mcfunction +0 -6
- package/dist/data/test/function/sin_fixed__then_5.mcfunction +0 -8
- package/dist/data/test/function/sin_fixed__then_8.mcfunction +0 -10
- package/dist/data/test/function/sin_hp.mcfunction +0 -8
- package/dist/data/test/function/slow_fall.mcfunction +0 -1
- package/dist/data/test/function/smoke.mcfunction +0 -1
- package/dist/data/test/function/smootherstep.mcfunction +0 -10
- package/dist/data/test/function/smootherstep__merge_1.mcfunction +0 -12
- package/dist/data/test/function/smootherstep__merge_4.mcfunction +0 -4
- package/dist/data/test/function/smootherstep__merge_6.mcfunction +0 -27
- package/dist/data/test/function/smootherstep__then_0.mcfunction +0 -2
- package/dist/data/test/function/smootherstep__then_3.mcfunction +0 -2
- package/dist/data/test/function/smootherstep__then_5.mcfunction +0 -2
- package/dist/data/test/function/smoothstep.mcfunction +0 -10
- package/dist/data/test/function/smoothstep__merge_1.mcfunction +0 -12
- package/dist/data/test/function/smoothstep__merge_4.mcfunction +0 -4
- package/dist/data/test/function/smoothstep__merge_6.mcfunction +0 -15
- package/dist/data/test/function/smoothstep__then_0.mcfunction +0 -2
- package/dist/data/test/function/smoothstep__then_3.mcfunction +0 -2
- package/dist/data/test/function/smoothstep__then_5.mcfunction +0 -2
- package/dist/data/test/function/solve2x2_x.mcfunction +0 -17
- package/dist/data/test/function/solve2x2_x__merge_1.mcfunction +0 -12
- package/dist/data/test/function/solve2x2_x__then_0.mcfunction +0 -2
- package/dist/data/test/function/solve2x2_y.mcfunction +0 -17
- package/dist/data/test/function/solve2x2_y__merge_1.mcfunction +0 -12
- package/dist/data/test/function/solve2x2_y__then_0.mcfunction +0 -2
- package/dist/data/test/function/sort2_max.mcfunction +0 -5
- package/dist/data/test/function/sort2_max__merge_1.mcfunction +0 -1
- package/dist/data/test/function/sort2_max__then_0.mcfunction +0 -1
- package/dist/data/test/function/sort2_min.mcfunction +0 -5
- package/dist/data/test/function/sort2_min__merge_1.mcfunction +0 -1
- package/dist/data/test/function/sort2_min__then_0.mcfunction +0 -1
- package/dist/data/test/function/sort3.mcfunction +0 -10
- package/dist/data/test/function/sort3__merge_1.mcfunction +0 -3
- package/dist/data/test/function/sort3__merge_10.mcfunction +0 -1
- package/dist/data/test/function/sort3__merge_3.mcfunction +0 -3
- package/dist/data/test/function/sort3__merge_5.mcfunction +0 -4
- package/dist/data/test/function/sort3__merge_7.mcfunction +0 -4
- package/dist/data/test/function/sort3__then_0.mcfunction +0 -4
- package/dist/data/test/function/sort3__then_2.mcfunction +0 -4
- package/dist/data/test/function/sort3__then_4.mcfunction +0 -4
- package/dist/data/test/function/sort3__then_6.mcfunction +0 -1
- package/dist/data/test/function/sort3__then_9.mcfunction +0 -1
- package/dist/data/test/function/sort4.mcfunction +0 -12
- package/dist/data/test/function/sort4__merge_1.mcfunction +0 -3
- package/dist/data/test/function/sort4__merge_11.mcfunction +0 -4
- package/dist/data/test/function/sort4__merge_14.mcfunction +0 -4
- package/dist/data/test/function/sort4__merge_17.mcfunction +0 -1
- package/dist/data/test/function/sort4__merge_3.mcfunction +0 -3
- package/dist/data/test/function/sort4__merge_5.mcfunction +0 -3
- package/dist/data/test/function/sort4__merge_7.mcfunction +0 -3
- package/dist/data/test/function/sort4__merge_9.mcfunction +0 -4
- package/dist/data/test/function/sort4__then_0.mcfunction +0 -4
- package/dist/data/test/function/sort4__then_10.mcfunction +0 -1
- package/dist/data/test/function/sort4__then_13.mcfunction +0 -1
- package/dist/data/test/function/sort4__then_16.mcfunction +0 -1
- package/dist/data/test/function/sort4__then_2.mcfunction +0 -4
- package/dist/data/test/function/sort4__then_4.mcfunction +0 -4
- package/dist/data/test/function/sort4__then_6.mcfunction +0 -4
- package/dist/data/test/function/sort4__then_8.mcfunction +0 -4
- package/dist/data/test/function/sort5.mcfunction +0 -14
- package/dist/data/test/function/sort5__merge_1.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_11.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_13.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_15.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_17.mcfunction +0 -4
- package/dist/data/test/function/sort5__merge_19.mcfunction +0 -4
- package/dist/data/test/function/sort5__merge_22.mcfunction +0 -4
- package/dist/data/test/function/sort5__merge_25.mcfunction +0 -4
- package/dist/data/test/function/sort5__merge_28.mcfunction +0 -1
- package/dist/data/test/function/sort5__merge_3.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_5.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_7.mcfunction +0 -3
- package/dist/data/test/function/sort5__merge_9.mcfunction +0 -3
- package/dist/data/test/function/sort5__then_0.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_10.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_12.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_14.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_16.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_18.mcfunction +0 -1
- package/dist/data/test/function/sort5__then_2.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_21.mcfunction +0 -1
- package/dist/data/test/function/sort5__then_24.mcfunction +0 -1
- package/dist/data/test/function/sort5__then_27.mcfunction +0 -1
- package/dist/data/test/function/sort5__then_4.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_6.mcfunction +0 -4
- package/dist/data/test/function/sort5__then_8.mcfunction +0 -4
- package/dist/data/test/function/sort_merge.mcfunction +0 -10
- package/dist/data/test/function/sort_merge__else_11.mcfunction +0 -7
- package/dist/data/test/function/sort_merge__else_14.mcfunction +0 -2
- package/dist/data/test/function/sort_merge__else_5.mcfunction +0 -3
- package/dist/data/test/function/sort_merge__else_8.mcfunction +0 -7
- package/dist/data/test/function/sort_merge__loop_body_1.mcfunction +0 -3
- package/dist/data/test/function/sort_merge__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/sort_merge__loop_header_0.mcfunction +0 -4
- package/dist/data/test/function/sort_merge__merge_10.mcfunction +0 -1
- package/dist/data/test/function/sort_merge__merge_13.mcfunction +0 -1
- package/dist/data/test/function/sort_merge__merge_4.mcfunction +0 -1
- package/dist/data/test/function/sort_merge__merge_7.mcfunction +0 -1
- package/dist/data/test/function/sort_merge__then_12.mcfunction +0 -7
- package/dist/data/test/function/sort_merge__then_3.mcfunction +0 -3
- package/dist/data/test/function/sort_merge__then_6.mcfunction +0 -3
- package/dist/data/test/function/sort_merge__then_9.mcfunction +0 -7
- package/dist/data/test/function/sparkles_at.mcfunction +0 -1
- package/dist/data/test/function/speed.mcfunction +0 -1
- package/dist/data/test/function/sphere_contains.mcfunction +0 -28
- package/dist/data/test/function/sphere_contains__merge_1.mcfunction +0 -2
- package/dist/data/test/function/sphere_contains__then_0.mcfunction +0 -2
- package/dist/data/test/function/spiral_ring.mcfunction +0 -5
- package/dist/data/test/function/spiral_ring__merge_1.mcfunction +0 -13
- package/dist/data/test/function/spiral_ring__then_0.mcfunction +0 -2
- package/dist/data/test/function/spread_players.mcfunction +0 -1
- package/dist/data/test/function/spring_force.mcfunction +0 -11
- package/dist/data/test/function/spring_update_v.mcfunction +0 -18
- package/dist/data/test/function/sqrt_fixed.mcfunction +0 -8
- package/dist/data/test/function/sqrt_fx.mcfunction +0 -8
- package/dist/data/test/function/sqrt_hp.mcfunction +0 -17
- package/dist/data/test/function/sqrt_hp__merge_1.mcfunction +0 -21
- package/dist/data/test/function/sqrt_hp__then_0.mcfunction +0 -2
- package/dist/data/test/function/start.mcfunction +0 -8
- package/dist/data/test/function/std_dev_approx.mcfunction +0 -5
- package/dist/data/test/function/std_dev_approx__merge_1.mcfunction +0 -13
- package/dist/data/test/function/std_dev_approx__then_0.mcfunction +0 -2
- package/dist/data/test/function/stop.mcfunction +0 -2
- package/dist/data/test/function/stop__foreach_t0.mcfunction +0 -1
- package/dist/data/test/function/str_len.mcfunction +0 -2
- package/dist/data/test/function/strength.mcfunction +0 -1
- package/dist/data/test/function/sub2d_x.mcfunction +0 -5
- package/dist/data/test/function/sub2d_y.mcfunction +0 -5
- package/dist/data/test/function/sub3d_x.mcfunction +0 -5
- package/dist/data/test/function/sub3d_y.mcfunction +0 -5
- package/dist/data/test/function/sub3d_z.mcfunction +0 -5
- package/dist/data/test/function/t.mcfunction +0 -3
- package/dist/data/test/function/teleport_to.mcfunction +0 -9
- package/dist/data/test/function/teleport_to_entity.mcfunction +0 -5
- package/dist/data/test/function/terrain_height.mcfunction +0 -24
- package/dist/data/test/function/test.mcfunction +0 -5
- package/dist/data/test/function/test__loop_body_1.mcfunction +0 -9
- package/dist/data/test/function/test__loop_exit_2.mcfunction +0 -1
- package/dist/data/test/function/test__loop_header_0.mcfunction +0 -3
- package/dist/data/test/function/tick_to_ms.mcfunction +0 -5
- package/dist/data/test/function/tick_to_seconds.mcfunction +0 -5
- package/dist/data/test/function/tile_center.mcfunction +0 -10
- package/dist/data/test/function/tile_of.mcfunction +0 -6
- package/dist/data/test/function/tile_of__merge_1.mcfunction +0 -7
- package/dist/data/test/function/tile_of__then_0.mcfunction +0 -3
- package/dist/data/test/function/timer/done.mcfunction +0 -4
- package/dist/data/test/function/timer/elapsed.mcfunction +0 -2
- package/dist/data/test/function/timer/new.mcfunction +0 -5
- package/dist/data/test/function/timer/pause.mcfunction +0 -1
- package/dist/data/test/function/timer/remaining.mcfunction +0 -9
- package/dist/data/test/function/timer/remaining__merge_1.mcfunction +0 -2
- package/dist/data/test/function/timer/remaining__then_0.mcfunction +0 -1
- package/dist/data/test/function/timer/reset.mcfunction +0 -1
- package/dist/data/test/function/timer/start.mcfunction +0 -1
- package/dist/data/test/function/timer/tick.mcfunction +0 -8
- package/dist/data/test/function/timer/tick__merge_1.mcfunction +0 -1
- package/dist/data/test/function/timer/tick__merge_3.mcfunction +0 -1
- package/dist/data/test/function/timer/tick__then_0.mcfunction +0 -3
- package/dist/data/test/function/timer/tick__then_2.mcfunction +0 -4
- package/dist/data/test/function/totem_at.mcfunction +0 -1
- package/dist/data/test/function/trapezoid_step.mcfunction +0 -11
- package/dist/data/test/function/uniform_frac.mcfunction +0 -11
- package/dist/data/test/function/uniform_frac__merge_1.mcfunction +0 -4
- package/dist/data/test/function/uniform_frac__then_0.mcfunction +0 -4
- package/dist/data/test/function/uniform_int.mcfunction +0 -13
- package/dist/data/test/function/uniform_int__merge_1.mcfunction +0 -9
- package/dist/data/test/function/uniform_int__then_0.mcfunction +0 -4
- package/dist/data/test/function/uniform_scale.mcfunction +0 -8
- package/dist/data/test/function/update_bar.mcfunction +0 -5
- package/dist/data/test/function/update_bar_color.mcfunction +0 -6
- package/dist/data/test/function/update_bar_color__else_2.mcfunction +0 -4
- package/dist/data/test/function/update_bar_color__else_5.mcfunction +0 -4
- package/dist/data/test/function/update_bar_color__merge_1.mcfunction +0 -1
- package/dist/data/test/function/update_bar_color__merge_4.mcfunction +0 -1
- package/dist/data/test/function/update_bar_color__then_0.mcfunction +0 -4
- package/dist/data/test/function/update_bar_color__then_3.mcfunction +0 -4
- package/dist/data/test/function/update_pos.mcfunction +0 -5
- package/dist/data/test/function/value_noise_1d.mcfunction +0 -13
- package/dist/data/test/function/value_noise_1d__merge_1.mcfunction +0 -39
- package/dist/data/test/function/value_noise_1d__then_0.mcfunction +0 -7
- package/dist/data/test/function/value_noise_2d.mcfunction +0 -14
- package/dist/data/test/function/value_noise_2d__merge_1.mcfunction +0 -12
- package/dist/data/test/function/value_noise_2d__merge_3.mcfunction +0 -98
- package/dist/data/test/function/value_noise_2d__then_0.mcfunction +0 -7
- package/dist/data/test/function/value_noise_2d__then_2.mcfunction +0 -7
- package/dist/data/test/function/variance_from_m2.mcfunction +0 -6
- package/dist/data/test/function/variance_from_m2__merge_1.mcfunction +0 -5
- package/dist/data/test/function/variance_from_m2__then_0.mcfunction +0 -2
- package/dist/data/test/function/water_drag_fx.mcfunction +0 -2
- package/dist/data/test/function/weapon_damage.mcfunction +0 -5
- package/dist/data/test/function/weather_clear.mcfunction +0 -1
- package/dist/data/test/function/weather_rain.mcfunction +0 -1
- package/dist/data/test/function/weather_thunder.mcfunction +0 -1
- package/dist/data/test/function/weighted2.mcfunction +0 -16
- package/dist/data/test/function/weighted2__merge_1.mcfunction +0 -5
- package/dist/data/test/function/weighted2__merge_3.mcfunction +0 -2
- package/dist/data/test/function/weighted2__then_0.mcfunction +0 -4
- package/dist/data/test/function/weighted2__then_2.mcfunction +0 -2
- package/dist/data/test/function/weighted3.mcfunction +0 -19
- package/dist/data/test/function/weighted3__merge_1.mcfunction +0 -6
- package/dist/data/test/function/weighted3__merge_3.mcfunction +0 -5
- package/dist/data/test/function/weighted3__merge_6.mcfunction +0 -2
- package/dist/data/test/function/weighted3__then_0.mcfunction +0 -4
- package/dist/data/test/function/weighted3__then_2.mcfunction +0 -2
- package/dist/data/test/function/weighted3__then_5.mcfunction +0 -2
- package/dist/data/test_dmul/function/__double_mul_macro.mcfunction +0 -1
- package/dist/data/test_dmul/function/double_mul_fixed.mcfunction +0 -6
- package/dist/data/test_dmul/function/load.mcfunction +0 -1
- package/dist/data/test_double_fn/function/double_test.mcfunction +0 -2
- package/dist/data/test_double_fn/function/load.mcfunction +0 -1
- package/dist/data/test_double_fn2/function/double_test.mcfunction +0 -2
- package/dist/data/test_double_fn2/function/load.mcfunction +0 -1
- package/dist/data/test_double_pass/function/caller_fn.mcfunction +0 -4
- package/dist/data/test_double_pass/function/consume_double.mcfunction +0 -2
- package/dist/data/test_double_pass/function/load.mcfunction +0 -1
- package/dist/data/test_macro/function/load.mcfunction +0 -1
- package/dist/data/test_macro/function/macro_helper.mcfunction +0 -1
- package/dist/data/test_macro3/function/__dmul_macro.mcfunction +0 -1
- package/dist/data/test_macro3/function/double_mul_test.mcfunction +0 -7
- package/dist/data/test_macro3/function/load.mcfunction +0 -1
- package/dist/data/test_ret_double/function/load.mcfunction +0 -1
- package/dist/data/test_ret_double/function/make_double.mcfunction +0 -3
- package/dist/data/test_ret_double/function/use_it.mcfunction +0 -3
- package/dist/data/turret/function/__load.mcfunction +0 -5
- package/dist/data/turret/function/__tick.mcfunction +0 -4
- package/dist/data/turret/function/__trigger_deploy_turret_dispatch.mcfunction +0 -4
- package/dist/data/turret/function/deploy_turret.mcfunction +0 -8
- package/dist/data/turret/function/turret_tick/at_1.mcfunction +0 -2
- package/dist/data/turret/function/turret_tick/foreach_0.mcfunction +0 -2
- package/dist/data/turret/function/turret_tick/foreach_2.mcfunction +0 -2
- package/dist/data/turret/function/turret_tick/tick_body.mcfunction +0 -3
- package/dist/data/turret/function/turret_tick/tick_skip.mcfunction +0 -1
- package/dist/data/turret/function/turret_tick.mcfunction +0 -5
- package/dist/diagnostics/index.d.ts +0 -44
- package/dist/diagnostics/index.js +0 -140
- package/dist/events/types.d.ts +0 -35
- package/dist/events/types.js +0 -59
- package/dist/formatter/index.d.ts +0 -1
- package/dist/formatter/index.js +0 -26
- package/dist/gcd2.map.json +0 -15
- package/dist/gcd3.map.json +0 -17
- package/dist/gcd_test.map.json +0 -15
- package/dist/index.d.ts +0 -62
- package/dist/ir/builder.d.ts +0 -33
- package/dist/ir/builder.js +0 -99
- package/dist/ir/types.d.ts +0 -132
- package/dist/ir/types.js +0 -15
- package/dist/isqrttest.map.json +0 -15
- package/dist/lexer/index.d.ts +0 -37
- package/dist/lexer/index.js +0 -569
- package/dist/lowering/index.d.ts +0 -188
- package/dist/lowering/index.js +0 -3405
- package/dist/mathtest.map.json +0 -6
- package/dist/mc-test/client.d.ts +0 -128
- package/dist/mc-test/client.js +0 -174
- package/dist/mc-test/runner.d.ts +0 -28
- package/dist/mc-test/runner.js +0 -150
- package/dist/mc-test/setup.d.ts +0 -11
- package/dist/mc-test/setup.js +0 -98
- package/dist/mc-validator/index.d.ts +0 -17
- package/dist/mc-validator/index.js +0 -322
- package/dist/mypack.map.json +0 -27
- package/dist/nbt/index.d.ts +0 -86
- package/dist/nbt/index.js +0 -250
- package/dist/optimizer/commands.d.ts +0 -38
- package/dist/optimizer/commands.js +0 -451
- package/dist/optimizer/dce.d.ts +0 -34
- package/dist/optimizer/dce.js +0 -639
- package/dist/optimizer/passes.d.ts +0 -34
- package/dist/optimizer/passes.js +0 -243
- package/dist/optimizer/structure.d.ts +0 -9
- package/dist/optimizer/structure.js +0 -356
- package/dist/pack.mcmeta +0 -6
- package/dist/parser/index.d.ts +0 -93
- package/dist/parser/index.js +0 -1687
- package/dist/repl.d.ts +0 -16
- package/dist/repl.js +0 -165
- package/dist/reqtest.map.json +0 -4
- package/dist/reqtest2.map.json +0 -4
- package/dist/runtime/index.d.ts +0 -107
- package/dist/runtime/index.js +0 -1409
- package/dist/runtime.map.json +0 -7
- package/dist/src/__tests__/codegen.test.js +0 -152
- package/dist/src/__tests__/debug-compile.test.js +0 -24
- package/dist/src/__tests__/debug-compile2.test.js +0 -19
- package/dist/src/__tests__/debug-compile3.test.js +0 -22
- package/dist/src/__tests__/debug-wm.test.js +0 -50
- package/dist/src/__tests__/debug_gen.js +0 -24
- package/dist/src/__tests__/debug_scoreboard.test.js +0 -19
- package/dist/src/__tests__/debug_scoreboard2.test.js +0 -27
- package/dist/src/__tests__/debug_scoreboard3.test.js +0 -37
- package/dist/src/__tests__/e2e.test.d.ts +0 -6
- package/dist/src/__tests__/e2e.test.js +0 -1789
- package/dist/src/__tests__/entity-types.test.js +0 -203
- package/dist/src/__tests__/lowering.test.js +0 -1015
- package/dist/src/__tests__/macro.test.d.ts +0 -8
- package/dist/src/__tests__/macro.test.js +0 -306
- package/dist/src/__tests__/nbt.test.js +0 -82
- package/dist/src/__tests__/optimizer-advanced.test.js +0 -124
- package/dist/src/__tests__/optimizer.test.js +0 -149
- package/dist/src/__tests__/stdlib-advanced.test.d.ts +0 -4
- package/dist/src/__tests__/stdlib-advanced.test.js +0 -374
- package/dist/src/__tests__/stdlib-bigint.test.d.ts +0 -7
- package/dist/src/__tests__/stdlib-bigint.test.js +0 -426
- package/dist/src/__tests__/stdlib-math.test.d.ts +0 -7
- package/dist/src/__tests__/stdlib-math.test.js +0 -351
- package/dist/src/__tests__/stdlib-vec.test.d.ts +0 -4
- package/dist/src/__tests__/stdlib-vec.test.js +0 -263
- package/dist/src/__tests__/structure-optimizer.test.js +0 -33
- package/dist/src/__tests__/timer-debug.test.js +0 -33
- package/dist/src/__tests__/var-allocator.test.js +0 -69
- package/dist/src/codegen/cmdblock/index.d.ts +0 -26
- package/dist/src/codegen/cmdblock/index.js +0 -45
- package/dist/src/codegen/mcfunction/index.d.ts +0 -40
- package/dist/src/codegen/mcfunction/index.js +0 -606
- package/dist/src/codegen/structure/index.d.ts +0 -24
- package/dist/src/codegen/structure/index.js +0 -279
- package/dist/src/codegen/var-allocator.d.ts +0 -45
- package/dist/src/codegen/var-allocator.js +0 -104
- package/dist/src/ir/builder.d.ts +0 -33
- package/dist/src/ir/builder.js +0 -99
- package/dist/src/ir/types.d.ts +0 -132
- package/dist/src/ir/types.js +0 -15
- package/dist/src/lowering/index.d.ts +0 -188
- package/dist/src/lowering/index.js +0 -3405
- package/dist/src/optimizer/commands.d.ts +0 -38
- package/dist/src/optimizer/commands.js +0 -451
- package/dist/src/optimizer/passes.d.ts +0 -34
- package/dist/src/optimizer/passes.js +0 -243
- package/dist/src/optimizer/structure.d.ts +0 -9
- package/dist/src/optimizer/structure.js +0 -356
- package/dist/src2/__tests__/e2e/basic.test.d.ts +0 -8
- package/dist/src2/__tests__/e2e/basic.test.js +0 -140
- package/dist/src2/__tests__/e2e/macros.test.d.ts +0 -9
- package/dist/src2/__tests__/e2e/macros.test.js +0 -182
- package/dist/src2/__tests__/e2e/migrate.test.d.ts +0 -13
- package/dist/src2/__tests__/e2e/migrate.test.js +0 -2739
- package/dist/src2/__tests__/hir/desugar.test.js +0 -234
- package/dist/src2/__tests__/lir/lower.test.js +0 -559
- package/dist/src2/__tests__/lir/types.test.js +0 -185
- package/dist/src2/__tests__/lir/verify.test.d.ts +0 -1
- package/dist/src2/__tests__/lir/verify.test.js +0 -221
- package/dist/src2/__tests__/mir/arithmetic.test.d.ts +0 -1
- package/dist/src2/__tests__/mir/arithmetic.test.js +0 -130
- package/dist/src2/__tests__/mir/control-flow.test.d.ts +0 -1
- package/dist/src2/__tests__/mir/control-flow.test.js +0 -205
- package/dist/src2/__tests__/mir/verify.test.d.ts +0 -1
- package/dist/src2/__tests__/mir/verify.test.js +0 -223
- package/dist/src2/__tests__/optimizer/block_merge.test.d.ts +0 -1
- package/dist/src2/__tests__/optimizer/block_merge.test.js +0 -78
- package/dist/src2/__tests__/optimizer/branch_simplify.test.d.ts +0 -1
- package/dist/src2/__tests__/optimizer/branch_simplify.test.js +0 -58
- package/dist/src2/__tests__/optimizer/constant_fold.test.d.ts +0 -1
- package/dist/src2/__tests__/optimizer/constant_fold.test.js +0 -131
- package/dist/src2/__tests__/optimizer/copy_prop.test.d.ts +0 -1
- package/dist/src2/__tests__/optimizer/copy_prop.test.js +0 -91
- package/dist/src2/__tests__/optimizer/dce.test.d.ts +0 -1
- package/dist/src2/__tests__/optimizer/dce.test.js +0 -76
- package/dist/src2/__tests__/optimizer/pipeline.test.d.ts +0 -1
- package/dist/src2/__tests__/optimizer/pipeline.test.js +0 -102
- package/dist/src2/emit/compile.d.ts +0 -19
- package/dist/src2/emit/compile.js +0 -80
- package/dist/src2/emit/index.d.ts +0 -17
- package/dist/src2/emit/index.js +0 -172
- package/dist/src2/hir/lower.d.ts +0 -15
- package/dist/src2/hir/lower.js +0 -378
- package/dist/src2/hir/types.d.ts +0 -373
- package/dist/src2/hir/types.js +0 -16
- package/dist/src2/lir/lower.d.ts +0 -15
- package/dist/src2/lir/lower.js +0 -453
- package/dist/src2/lir/types.d.ts +0 -136
- package/dist/src2/lir/types.js +0 -11
- package/dist/src2/lir/verify.d.ts +0 -14
- package/dist/src2/lir/verify.js +0 -113
- package/dist/src2/mir/lower.d.ts +0 -9
- package/dist/src2/mir/lower.js +0 -1030
- package/dist/src2/mir/macro.d.ts +0 -22
- package/dist/src2/mir/macro.js +0 -168
- package/dist/src2/mir/types.d.ts +0 -183
- package/dist/src2/mir/types.js +0 -11
- package/dist/src2/mir/verify.d.ts +0 -16
- package/dist/src2/mir/verify.js +0 -216
- package/dist/src2/optimizer/block_merge.d.ts +0 -12
- package/dist/src2/optimizer/block_merge.js +0 -84
- package/dist/src2/optimizer/branch_simplify.d.ts +0 -9
- package/dist/src2/optimizer/branch_simplify.js +0 -28
- package/dist/src2/optimizer/constant_fold.d.ts +0 -10
- package/dist/src2/optimizer/constant_fold.js +0 -85
- package/dist/src2/optimizer/copy_prop.d.ts +0 -9
- package/dist/src2/optimizer/copy_prop.js +0 -113
- package/dist/src2/optimizer/dce.d.ts +0 -8
- package/dist/src2/optimizer/dce.js +0 -155
- package/dist/src2/optimizer/pipeline.d.ts +0 -10
- package/dist/src2/optimizer/pipeline.js +0 -42
- package/dist/swap_test.map.json +0 -14
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/typechecker/index.d.ts +0 -61
- package/dist/typechecker/index.js +0 -1034
- package/dist/types/entity-hierarchy.d.ts +0 -29
- package/dist/types/entity-hierarchy.js +0 -107
- package/test_trig.ts +0 -43
- /package/dist/{__tests__/cli.test.d.ts → src/__tests__/cli-check-fix.test.d.ts} +0 -0
- /package/dist/{__tests__/codegen.test.d.ts → src/__tests__/cli-docs.test.d.ts} +0 -0
- /package/dist/{__tests__/dce.test.d.ts → src/__tests__/cli-init.test.d.ts} +0 -0
- /package/dist/{__tests__/entity-types.test.d.ts → src/__tests__/compiler/benchmark-decorator.test.d.ts} +0 -0
- /package/dist/{__tests__/formatter.test.d.ts → src/__tests__/compiler/break-stmt.test.d.ts} +0 -0
- /package/dist/{__tests__/lexer.test.d.ts → src/__tests__/compiler/const-decl.test.d.ts} +0 -0
- /package/dist/{__tests__/lowering.test.d.ts → src/__tests__/compiler/continue-stmt.test.d.ts} +0 -0
- /package/dist/{__tests__/mc-syntax.test.d.ts → src/__tests__/compiler/do-while.test.d.ts} +0 -0
- /package/dist/{__tests__/nbt.test.d.ts → src/__tests__/compiler/labeled-loops.test.d.ts} +0 -0
- /package/dist/{__tests__/optimizer-advanced.test.d.ts → src/__tests__/compiler/match-string.test.d.ts} +0 -0
- /package/dist/{__tests__/optimizer.test.d.ts → src/__tests__/compiler/memoize.test.d.ts} +0 -0
- /package/dist/{__tests__/parser.test.d.ts → src/__tests__/compiler/profile-decorator.test.d.ts} +0 -0
- /package/dist/{__tests__/repl.test.d.ts → src/__tests__/compiler/struct-extends.test.d.ts} +0 -0
- /package/dist/{__tests__/runtime.test.d.ts → src/__tests__/compiler/throttle-retry.test.d.ts} +0 -0
- /package/dist/{__tests__/structure-optimizer.test.d.ts → src/__tests__/compiler/watch-decorator.test.d.ts} +0 -0
- /package/dist/{__tests__/typechecker.test.d.ts → src/__tests__/config/project-config.test.d.ts} +0 -0
- /package/dist/{__tests__/var-allocator.test.d.ts → src/__tests__/emit/compile-branches.test.d.ts} +0 -0
- /package/dist/src/__tests__/{codegen.test.d.ts → emit/index-coverage.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug-compile.test.d.ts → emit/modules-branches.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug-compile2.test.d.ts → emit/source-map.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug-compile3.test.d.ts → fmt/edge-cases.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug-wm.test.d.ts → lsp/rename.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug_gen.d.ts → optimizer/auto-inline.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug_scoreboard.test.d.ts → optimizer/inline_fn.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug_scoreboard2.test.d.ts → optimizer/licm.test.d.ts} +0 -0
- /package/dist/src/__tests__/{debug_scoreboard3.test.d.ts → optimizer/nbt-coalesce.test.d.ts} +0 -0
- /package/dist/src/__tests__/{entity-types.test.d.ts → optimizer/scoreboard-batch.test.d.ts} +0 -0
- /package/dist/src/__tests__/{lowering.test.d.ts → optimizer/single-call-inline.test.d.ts} +0 -0
- /package/dist/src/__tests__/{nbt.test.d.ts → optimizer/strength-reduction.test.d.ts} +0 -0
- /package/dist/src/__tests__/{optimizer-advanced.test.d.ts → optimizer/tco-coverage-boost.test.d.ts} +0 -0
- /package/dist/src/__tests__/{optimizer.test.d.ts → optimizer/tco-coverage.test.d.ts} +0 -0
- /package/dist/src/__tests__/{structure-optimizer.test.d.ts → optimizer/tco-edge-cases.test.d.ts} +0 -0
- /package/dist/src/__tests__/{timer-debug.test.d.ts → stdlib/map.test.d.ts} +0 -0
- /package/dist/src/__tests__/{var-allocator.test.d.ts → stdlib/queue.test.d.ts} +0 -0
- /package/dist/{src2/__tests__/hir/desugar.test.d.ts → src/__tests__/stdlib/set_int.test.d.ts} +0 -0
- /package/dist/{src2/__tests__/lir/lower.test.d.ts → src/__tests__/struct-display.test.d.ts} +0 -0
- /package/dist/{src2/__tests__/lir/types.test.d.ts → src/__tests__/watch-decorator.test.d.ts} +0 -0
- /package/docs/{ROADMAP.md → archive/ROADMAP-2026-03-16.md} +0 -0
- /package/docs/{STDLIB_ROADMAP.md → archive/STDLIB_ROADMAP.md} +0 -0
- /package/docs/{compiler-pipeline-redesign.md → archive/compiler-pipeline-redesign.md} +0 -0
- /package/docs/{optimization-ideas.md → archive/optimization-ideas.md} +0 -0
|
@@ -9207,6 +9207,8 @@ var KEYWORDS = {
|
|
|
9207
9207
|
while: "while",
|
|
9208
9208
|
for: "for",
|
|
9209
9209
|
foreach: "foreach",
|
|
9210
|
+
do: "do",
|
|
9211
|
+
repeat: "repeat",
|
|
9210
9212
|
match: "match",
|
|
9211
9213
|
return: "return",
|
|
9212
9214
|
break: "break",
|
|
@@ -9216,6 +9218,7 @@ var KEYWORDS = {
|
|
|
9216
9218
|
in: "in",
|
|
9217
9219
|
is: "is",
|
|
9218
9220
|
struct: "struct",
|
|
9221
|
+
extends: "extends",
|
|
9219
9222
|
impl: "impl",
|
|
9220
9223
|
enum: "enum",
|
|
9221
9224
|
trigger: "trigger",
|
|
@@ -9226,6 +9229,8 @@ var KEYWORDS = {
|
|
|
9226
9229
|
unless: "unless",
|
|
9227
9230
|
declare: "declare",
|
|
9228
9231
|
export: "export",
|
|
9232
|
+
import: "import",
|
|
9233
|
+
interface: "interface",
|
|
9229
9234
|
int: "int",
|
|
9230
9235
|
bool: "bool",
|
|
9231
9236
|
float: "float",
|
|
@@ -9471,7 +9476,13 @@ var Lexer = class {
|
|
|
9471
9476
|
return;
|
|
9472
9477
|
}
|
|
9473
9478
|
if (char === '"') {
|
|
9474
|
-
this.
|
|
9479
|
+
if (this.peek() === '"' && this.peek(1) === '"') {
|
|
9480
|
+
this.advance();
|
|
9481
|
+
this.advance();
|
|
9482
|
+
this.scanMultiLineString(startLine, startCol);
|
|
9483
|
+
} else {
|
|
9484
|
+
this.scanString(startLine, startCol);
|
|
9485
|
+
}
|
|
9475
9486
|
return;
|
|
9476
9487
|
}
|
|
9477
9488
|
if (char === "#") {
|
|
@@ -9510,7 +9521,7 @@ var Lexer = class {
|
|
|
9510
9521
|
return;
|
|
9511
9522
|
}
|
|
9512
9523
|
let value = "@";
|
|
9513
|
-
while (/[a-zA-Z_0-9]/.test(this.peek())) {
|
|
9524
|
+
while (/[a-zA-Z_0-9-]/.test(this.peek())) {
|
|
9514
9525
|
value += this.advance();
|
|
9515
9526
|
}
|
|
9516
9527
|
if (this.peek() === "(") {
|
|
@@ -9539,6 +9550,26 @@ var Lexer = class {
|
|
|
9539
9550
|
}
|
|
9540
9551
|
return result;
|
|
9541
9552
|
}
|
|
9553
|
+
scanMultiLineString(startLine, startCol) {
|
|
9554
|
+
let value = "";
|
|
9555
|
+
while (!this.isAtEnd()) {
|
|
9556
|
+
if (this.peek() === '"' && this.peek(1) === '"' && this.peek(2) === '"') {
|
|
9557
|
+
this.advance();
|
|
9558
|
+
this.advance();
|
|
9559
|
+
this.advance();
|
|
9560
|
+
break;
|
|
9561
|
+
}
|
|
9562
|
+
if (this.peek() === "\\" && this.peek(1) === '"') {
|
|
9563
|
+
this.advance();
|
|
9564
|
+
value += this.advance();
|
|
9565
|
+
continue;
|
|
9566
|
+
}
|
|
9567
|
+
value += this.advance();
|
|
9568
|
+
}
|
|
9569
|
+
if (value.startsWith("\n")) value = value.slice(1);
|
|
9570
|
+
if (value.endsWith("\n")) value = value.slice(0, -1);
|
|
9571
|
+
this.addToken("string_lit", value, startLine, startCol);
|
|
9572
|
+
}
|
|
9542
9573
|
scanString(startLine, startCol) {
|
|
9543
9574
|
let value = "";
|
|
9544
9575
|
let interpolationDepth = 0;
|
|
@@ -9782,6 +9813,8 @@ var Parser = class _Parser {
|
|
|
9782
9813
|
this.inLibraryMode = false;
|
|
9783
9814
|
/** Warnings accumulated during parsing (e.g. deprecated keyword usage). */
|
|
9784
9815
|
this.warnings = [];
|
|
9816
|
+
/** Parse errors collected during error-recovery mode. */
|
|
9817
|
+
this.parseErrors = [];
|
|
9785
9818
|
this.tokens = tokens;
|
|
9786
9819
|
this.sourceLines = source?.split("\n") ?? [];
|
|
9787
9820
|
this.filePath = filePath;
|
|
@@ -9852,6 +9885,60 @@ var Parser = class _Parser {
|
|
|
9852
9885
|
return { kind: "eof", value: "", line: span.line, col: span.col };
|
|
9853
9886
|
}
|
|
9854
9887
|
// -------------------------------------------------------------------------
|
|
9888
|
+
// Error Recovery
|
|
9889
|
+
// -------------------------------------------------------------------------
|
|
9890
|
+
/**
|
|
9891
|
+
* Synchronize to the next top-level declaration boundary after a parse error.
|
|
9892
|
+
* Skips tokens until we find a keyword that starts a top-level declaration,
|
|
9893
|
+
* or a `}` (end of a block), or EOF.
|
|
9894
|
+
*/
|
|
9895
|
+
syncToNextDecl() {
|
|
9896
|
+
const TOP_LEVEL_KEYWORDS = /* @__PURE__ */ new Set([
|
|
9897
|
+
"fn",
|
|
9898
|
+
"struct",
|
|
9899
|
+
"impl",
|
|
9900
|
+
"enum",
|
|
9901
|
+
"const",
|
|
9902
|
+
"let",
|
|
9903
|
+
"export",
|
|
9904
|
+
"declare",
|
|
9905
|
+
"import",
|
|
9906
|
+
"namespace",
|
|
9907
|
+
"module"
|
|
9908
|
+
]);
|
|
9909
|
+
while (!this.check("eof")) {
|
|
9910
|
+
const kind = this.peek().kind;
|
|
9911
|
+
if (kind === "}") {
|
|
9912
|
+
this.advance();
|
|
9913
|
+
return;
|
|
9914
|
+
}
|
|
9915
|
+
if (TOP_LEVEL_KEYWORDS.has(kind)) {
|
|
9916
|
+
return;
|
|
9917
|
+
}
|
|
9918
|
+
if (kind === "ident" && this.peek().value === "import") {
|
|
9919
|
+
return;
|
|
9920
|
+
}
|
|
9921
|
+
this.advance();
|
|
9922
|
+
}
|
|
9923
|
+
}
|
|
9924
|
+
/**
|
|
9925
|
+
* Synchronize to the next statement boundary inside a block after a parse error.
|
|
9926
|
+
* Skips tokens until we reach `;`, `}`, or EOF.
|
|
9927
|
+
*/
|
|
9928
|
+
syncToNextStmt() {
|
|
9929
|
+
while (!this.check("eof")) {
|
|
9930
|
+
const kind = this.peek().kind;
|
|
9931
|
+
if (kind === ";") {
|
|
9932
|
+
this.advance();
|
|
9933
|
+
return;
|
|
9934
|
+
}
|
|
9935
|
+
if (kind === "}") {
|
|
9936
|
+
return;
|
|
9937
|
+
}
|
|
9938
|
+
this.advance();
|
|
9939
|
+
}
|
|
9940
|
+
}
|
|
9941
|
+
// -------------------------------------------------------------------------
|
|
9855
9942
|
// Program
|
|
9856
9943
|
// -------------------------------------------------------------------------
|
|
9857
9944
|
parse(defaultNamespace = "redscript") {
|
|
@@ -9863,6 +9950,7 @@ var Parser = class _Parser {
|
|
|
9863
9950
|
const enums = [];
|
|
9864
9951
|
const consts = [];
|
|
9865
9952
|
const imports = [];
|
|
9953
|
+
const interfaces = [];
|
|
9866
9954
|
let isLibrary = false;
|
|
9867
9955
|
let moduleName;
|
|
9868
9956
|
if (this.check("namespace")) {
|
|
@@ -9883,40 +9971,74 @@ var Parser = class _Parser {
|
|
|
9883
9971
|
this.match(";");
|
|
9884
9972
|
}
|
|
9885
9973
|
while (!this.check("eof")) {
|
|
9886
|
-
|
|
9887
|
-
|
|
9888
|
-
|
|
9889
|
-
|
|
9890
|
-
|
|
9891
|
-
|
|
9892
|
-
|
|
9893
|
-
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
this.
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
declarations.push(this.parseExportedFnDecl());
|
|
9901
|
-
} else if (this.check("ident") && this.peek().value === "import") {
|
|
9902
|
-
this.advance();
|
|
9903
|
-
const importToken = this.peek();
|
|
9904
|
-
const modName = this.expect("ident").value;
|
|
9905
|
-
this.expect("::");
|
|
9906
|
-
let symbol;
|
|
9907
|
-
if (this.check("*")) {
|
|
9974
|
+
try {
|
|
9975
|
+
if (this.check("decorator") && this.peek().value.startsWith("@config")) {
|
|
9976
|
+
const decorToken = this.advance();
|
|
9977
|
+
const decorator = this.parseDecoratorValue(decorToken.value);
|
|
9978
|
+
if (!this.check("let")) {
|
|
9979
|
+
this.error("@config decorator must be followed by a let declaration");
|
|
9980
|
+
}
|
|
9981
|
+
const g = this.parseGlobalDecl(true);
|
|
9982
|
+
g.configKey = decorator.args?.configKey;
|
|
9983
|
+
g.configDefault = decorator.args?.configDefault;
|
|
9984
|
+
globals.push(g);
|
|
9985
|
+
} else if (this.check("let")) {
|
|
9986
|
+
globals.push(this.parseGlobalDecl(true));
|
|
9987
|
+
} else if (this.check("decorator") && this.peek().value === "@singleton") {
|
|
9908
9988
|
this.advance();
|
|
9909
|
-
|
|
9989
|
+
if (!this.check("struct")) {
|
|
9990
|
+
this.error("@singleton decorator must be followed by a struct declaration");
|
|
9991
|
+
}
|
|
9992
|
+
const s = this.parseStructDecl();
|
|
9993
|
+
s.isSingleton = true;
|
|
9994
|
+
structs.push(s);
|
|
9995
|
+
} else if (this.check("struct")) {
|
|
9996
|
+
structs.push(this.parseStructDecl());
|
|
9997
|
+
} else if (this.check("impl")) {
|
|
9998
|
+
implBlocks.push(this.parseImplBlock());
|
|
9999
|
+
} else if (this.check("interface")) {
|
|
10000
|
+
interfaces.push(this.parseInterfaceDecl());
|
|
10001
|
+
} else if (this.check("enum")) {
|
|
10002
|
+
enums.push(this.parseEnumDecl());
|
|
10003
|
+
} else if (this.check("const")) {
|
|
10004
|
+
consts.push(this.parseConstDecl());
|
|
10005
|
+
} else if (this.check("declare")) {
|
|
10006
|
+
this.advance();
|
|
10007
|
+
this.parseDeclareStub();
|
|
10008
|
+
} else if (this.check("export")) {
|
|
10009
|
+
declarations.push(this.parseExportedFnDecl());
|
|
10010
|
+
} else if (this.check("import") || this.check("ident") && this.peek().value === "import") {
|
|
10011
|
+
this.advance();
|
|
10012
|
+
const importToken = this.peek();
|
|
10013
|
+
const modName = this.expect("ident").value;
|
|
10014
|
+
if (this.check("::")) {
|
|
10015
|
+
this.advance();
|
|
10016
|
+
let symbol;
|
|
10017
|
+
if (this.check("*")) {
|
|
10018
|
+
this.advance();
|
|
10019
|
+
symbol = "*";
|
|
10020
|
+
} else {
|
|
10021
|
+
symbol = this.expect("ident").value;
|
|
10022
|
+
}
|
|
10023
|
+
this.match(";");
|
|
10024
|
+
imports.push(this.withLoc({ moduleName: modName, symbol }, importToken));
|
|
10025
|
+
} else {
|
|
10026
|
+
this.match(";");
|
|
10027
|
+
imports.push(this.withLoc({ moduleName: modName, symbol: void 0 }, importToken));
|
|
10028
|
+
}
|
|
9910
10029
|
} else {
|
|
9911
|
-
|
|
10030
|
+
declarations.push(this.parseFnDecl());
|
|
10031
|
+
}
|
|
10032
|
+
} catch (err) {
|
|
10033
|
+
if (err instanceof DiagnosticError) {
|
|
10034
|
+
this.parseErrors.push(err);
|
|
10035
|
+
this.syncToNextDecl();
|
|
10036
|
+
} else {
|
|
10037
|
+
throw err;
|
|
9912
10038
|
}
|
|
9913
|
-
this.match(";");
|
|
9914
|
-
imports.push(this.withLoc({ moduleName: modName, symbol }, importToken));
|
|
9915
|
-
} else {
|
|
9916
|
-
declarations.push(this.parseFnDecl());
|
|
9917
10039
|
}
|
|
9918
10040
|
}
|
|
9919
|
-
return { namespace, moduleName, globals, declarations, structs, implBlocks, enums, consts, imports, isLibrary };
|
|
10041
|
+
return { namespace, moduleName, globals, declarations, structs, implBlocks, enums, consts, imports, interfaces, isLibrary };
|
|
9920
10042
|
}
|
|
9921
10043
|
// -------------------------------------------------------------------------
|
|
9922
10044
|
// Struct Declaration
|
|
@@ -9924,6 +10046,7 @@ var Parser = class _Parser {
|
|
|
9924
10046
|
parseStructDecl() {
|
|
9925
10047
|
const structToken = this.expect("struct");
|
|
9926
10048
|
const name = this.expect("ident").value;
|
|
10049
|
+
const extendsName = this.match("extends") ? this.expect("ident").value : void 0;
|
|
9927
10050
|
this.expect("{");
|
|
9928
10051
|
const fields = [];
|
|
9929
10052
|
while (!this.check("}") && !this.check("eof")) {
|
|
@@ -9934,7 +10057,7 @@ var Parser = class _Parser {
|
|
|
9934
10057
|
this.match(",");
|
|
9935
10058
|
}
|
|
9936
10059
|
this.expect("}");
|
|
9937
|
-
return this.withLoc({ name, fields }, structToken);
|
|
10060
|
+
return this.withLoc({ name, extends: extendsName, fields }, structToken);
|
|
9938
10061
|
}
|
|
9939
10062
|
parseEnumDecl() {
|
|
9940
10063
|
const enumToken = this.expect("enum");
|
|
@@ -9945,6 +10068,19 @@ var Parser = class _Parser {
|
|
|
9945
10068
|
while (!this.check("}") && !this.check("eof")) {
|
|
9946
10069
|
const variantToken = this.expect("ident");
|
|
9947
10070
|
const variant = { name: variantToken.value };
|
|
10071
|
+
if (this.check("(")) {
|
|
10072
|
+
this.advance();
|
|
10073
|
+
const fields = [];
|
|
10074
|
+
while (!this.check(")") && !this.check("eof")) {
|
|
10075
|
+
const fieldName = this.expect("ident").value;
|
|
10076
|
+
this.expect(":");
|
|
10077
|
+
const fieldType = this.parseType();
|
|
10078
|
+
fields.push({ name: fieldName, type: fieldType });
|
|
10079
|
+
if (!this.match(",")) break;
|
|
10080
|
+
}
|
|
10081
|
+
this.expect(")");
|
|
10082
|
+
variant.fields = fields;
|
|
10083
|
+
}
|
|
9948
10084
|
if (this.match("=")) {
|
|
9949
10085
|
const valueToken = this.expect("int_lit");
|
|
9950
10086
|
variant.value = parseInt(valueToken.value, 10);
|
|
@@ -9962,14 +10098,72 @@ var Parser = class _Parser {
|
|
|
9962
10098
|
}
|
|
9963
10099
|
parseImplBlock() {
|
|
9964
10100
|
const implToken = this.expect("impl");
|
|
9965
|
-
|
|
10101
|
+
let traitName;
|
|
10102
|
+
let typeName;
|
|
10103
|
+
const firstName = this.expect("ident").value;
|
|
10104
|
+
if (this.match("for")) {
|
|
10105
|
+
traitName = firstName;
|
|
10106
|
+
typeName = this.expect("ident").value;
|
|
10107
|
+
} else {
|
|
10108
|
+
typeName = firstName;
|
|
10109
|
+
}
|
|
9966
10110
|
this.expect("{");
|
|
9967
10111
|
const methods = [];
|
|
9968
10112
|
while (!this.check("}") && !this.check("eof")) {
|
|
9969
10113
|
methods.push(this.parseFnDecl(typeName));
|
|
9970
10114
|
}
|
|
9971
10115
|
this.expect("}");
|
|
9972
|
-
return this.withLoc({ kind: "impl_block", typeName, methods }, implToken);
|
|
10116
|
+
return this.withLoc({ kind: "impl_block", traitName, typeName, methods }, implToken);
|
|
10117
|
+
}
|
|
10118
|
+
/**
|
|
10119
|
+
* Parse an interface declaration:
|
|
10120
|
+
* interface <Name> {
|
|
10121
|
+
* fn <method>(<params>): <retType>
|
|
10122
|
+
* ...
|
|
10123
|
+
* }
|
|
10124
|
+
* Method signatures have no body — they are prototype-only.
|
|
10125
|
+
*/
|
|
10126
|
+
parseInterfaceDecl() {
|
|
10127
|
+
const ifaceToken = this.expect("interface");
|
|
10128
|
+
const name = this.expect("ident").value;
|
|
10129
|
+
this.expect("{");
|
|
10130
|
+
const methods = [];
|
|
10131
|
+
while (!this.check("}") && !this.check("eof")) {
|
|
10132
|
+
const fnToken = this.expect("fn");
|
|
10133
|
+
const methodName = this.expect("ident").value;
|
|
10134
|
+
this.expect("(");
|
|
10135
|
+
const params = this.parseInterfaceParams();
|
|
10136
|
+
this.expect(")");
|
|
10137
|
+
let returnType;
|
|
10138
|
+
if (this.match(":")) {
|
|
10139
|
+
returnType = this.parseType();
|
|
10140
|
+
}
|
|
10141
|
+
methods.push(this.withLoc({ name: methodName, params, returnType }, fnToken));
|
|
10142
|
+
}
|
|
10143
|
+
this.expect("}");
|
|
10144
|
+
return this.withLoc({ name, methods }, ifaceToken);
|
|
10145
|
+
}
|
|
10146
|
+
/**
|
|
10147
|
+
* Parse interface method params — like parseParams but allows bare `self`
|
|
10148
|
+
* (no `:` required for the first param named 'self').
|
|
10149
|
+
*/
|
|
10150
|
+
parseInterfaceParams() {
|
|
10151
|
+
const params = [];
|
|
10152
|
+
if (!this.check(")")) {
|
|
10153
|
+
do {
|
|
10154
|
+
const paramToken = this.expect("ident");
|
|
10155
|
+
const paramName = paramToken.value;
|
|
10156
|
+
let type;
|
|
10157
|
+
if (params.length === 0 && paramName === "self" && !this.check(":")) {
|
|
10158
|
+
type = { kind: "named", name: "void" };
|
|
10159
|
+
} else {
|
|
10160
|
+
this.expect(":");
|
|
10161
|
+
type = this.parseType();
|
|
10162
|
+
}
|
|
10163
|
+
params.push(this.withLoc({ name: paramName, type }, paramToken));
|
|
10164
|
+
} while (this.match(","));
|
|
10165
|
+
}
|
|
10166
|
+
return params;
|
|
9973
10167
|
}
|
|
9974
10168
|
parseConstDecl() {
|
|
9975
10169
|
const constToken = this.expect("const");
|
|
@@ -9989,8 +10183,12 @@ var Parser = class _Parser {
|
|
|
9989
10183
|
const name = this.expect("ident").value;
|
|
9990
10184
|
this.expect(":");
|
|
9991
10185
|
const type = this.parseType();
|
|
9992
|
-
|
|
9993
|
-
|
|
10186
|
+
let init;
|
|
10187
|
+
if (this.match("=")) {
|
|
10188
|
+
init = this.parseExpr();
|
|
10189
|
+
} else {
|
|
10190
|
+
init = { kind: "int_lit", value: 0 };
|
|
10191
|
+
}
|
|
9994
10192
|
this.match(";");
|
|
9995
10193
|
return this.withLoc({ kind: "global", name, type, init, mutable }, token);
|
|
9996
10194
|
}
|
|
@@ -10006,6 +10204,7 @@ var Parser = class _Parser {
|
|
|
10006
10204
|
}
|
|
10007
10205
|
parseFnDecl(implTypeName) {
|
|
10008
10206
|
const decorators = this.parseDecorators();
|
|
10207
|
+
const watchObjective = decorators.find((decorator) => decorator.name === "watch")?.args?.objective;
|
|
10009
10208
|
let isExported;
|
|
10010
10209
|
const filteredDecorators = decorators.filter((d) => {
|
|
10011
10210
|
if (d.name === "keep") {
|
|
@@ -10043,7 +10242,8 @@ var Parser = class _Parser {
|
|
|
10043
10242
|
decorators: filteredDecorators,
|
|
10044
10243
|
body,
|
|
10045
10244
|
isLibraryFn: this.inLibraryMode || void 0,
|
|
10046
|
-
isExported
|
|
10245
|
+
isExported,
|
|
10246
|
+
watchObjective
|
|
10047
10247
|
},
|
|
10048
10248
|
fnToken
|
|
10049
10249
|
);
|
|
@@ -10076,7 +10276,7 @@ var Parser = class _Parser {
|
|
|
10076
10276
|
return decorators;
|
|
10077
10277
|
}
|
|
10078
10278
|
parseDecoratorValue(value) {
|
|
10079
|
-
const match = value.match(/^@(
|
|
10279
|
+
const match = value.match(/^@([A-Za-z_][A-Za-z0-9_-]*)(?:\((.*)\))?$/s);
|
|
10080
10280
|
if (!match) {
|
|
10081
10281
|
this.error(`Invalid decorator: ${value}`);
|
|
10082
10282
|
}
|
|
@@ -10085,6 +10285,9 @@ var Parser = class _Parser {
|
|
|
10085
10285
|
if (!argsStr) {
|
|
10086
10286
|
return { name };
|
|
10087
10287
|
}
|
|
10288
|
+
if (name === "profile" || name === "benchmark" || name === "memoize") {
|
|
10289
|
+
this.error(`@${name} decorator does not accept arguments`);
|
|
10290
|
+
}
|
|
10088
10291
|
const args = {};
|
|
10089
10292
|
if (name === "on") {
|
|
10090
10293
|
const eventTypeMatch = argsStr.match(/^([A-Za-z_][A-Za-z0-9_]*)$/);
|
|
@@ -10093,10 +10296,12 @@ var Parser = class _Parser {
|
|
|
10093
10296
|
return { name, args };
|
|
10094
10297
|
}
|
|
10095
10298
|
}
|
|
10096
|
-
if (name === "on_trigger" || name === "on_advancement" || name === "on_craft" || name === "on_join_team") {
|
|
10299
|
+
if (name === "watch" || name === "on_trigger" || name === "on_advancement" || name === "on_craft" || name === "on_join_team") {
|
|
10097
10300
|
const strMatch = argsStr.match(/^"([^"]*)"$/);
|
|
10098
10301
|
if (strMatch) {
|
|
10099
|
-
if (name === "
|
|
10302
|
+
if (name === "watch") {
|
|
10303
|
+
args.objective = strMatch[1];
|
|
10304
|
+
} else if (name === "on_trigger") {
|
|
10100
10305
|
args.trigger = strMatch[1];
|
|
10101
10306
|
} else if (name === "on_advancement") {
|
|
10102
10307
|
args.advancement = strMatch[1];
|
|
@@ -10108,6 +10313,31 @@ var Parser = class _Parser {
|
|
|
10108
10313
|
return { name, args };
|
|
10109
10314
|
}
|
|
10110
10315
|
}
|
|
10316
|
+
if (name === "config") {
|
|
10317
|
+
const configMatch = argsStr.match(/^"([^"]+)"\s*,\s*default\s*:\s*(-?\d+(?:\.\d+)?)$/);
|
|
10318
|
+
if (configMatch) {
|
|
10319
|
+
return { name, args: { configKey: configMatch[1], configDefault: parseFloat(configMatch[2]) } };
|
|
10320
|
+
}
|
|
10321
|
+
const keyOnlyMatch = argsStr.match(/^"([^"]+)"$/);
|
|
10322
|
+
if (keyOnlyMatch) {
|
|
10323
|
+
return { name, args: { configKey: keyOnlyMatch[1] } };
|
|
10324
|
+
}
|
|
10325
|
+
this.error(`Invalid @config syntax. Expected: @config("key", default: value) or @config("key")`);
|
|
10326
|
+
}
|
|
10327
|
+
if (name === "deprecated") {
|
|
10328
|
+
const strMatch = argsStr.match(/^"([^"]*)"$/);
|
|
10329
|
+
if (strMatch) {
|
|
10330
|
+
return { name, args: { message: strMatch[1] } };
|
|
10331
|
+
}
|
|
10332
|
+
return { name, args: {} };
|
|
10333
|
+
}
|
|
10334
|
+
if (name === "test") {
|
|
10335
|
+
const strMatch = argsStr.match(/^"([^"]*)"$/);
|
|
10336
|
+
if (strMatch) {
|
|
10337
|
+
return { name, args: { testLabel: strMatch[1] } };
|
|
10338
|
+
}
|
|
10339
|
+
return { name, args: { testLabel: "" } };
|
|
10340
|
+
}
|
|
10111
10341
|
if (name === "require_on_load") {
|
|
10112
10342
|
const rawArgs = [];
|
|
10113
10343
|
for (const part of argsStr.split(",")) {
|
|
@@ -10142,6 +10372,8 @@ var Parser = class _Parser {
|
|
|
10142
10372
|
args.item = val;
|
|
10143
10373
|
} else if (key === "team") {
|
|
10144
10374
|
args.team = val;
|
|
10375
|
+
} else if (key === "max") {
|
|
10376
|
+
args.max = parseInt(val, 10);
|
|
10145
10377
|
}
|
|
10146
10378
|
}
|
|
10147
10379
|
return { name, args };
|
|
@@ -10245,7 +10477,16 @@ var Parser = class _Parser {
|
|
|
10245
10477
|
this.expect("{");
|
|
10246
10478
|
const stmts = [];
|
|
10247
10479
|
while (!this.check("}") && !this.check("eof")) {
|
|
10248
|
-
|
|
10480
|
+
try {
|
|
10481
|
+
stmts.push(this.parseStmt());
|
|
10482
|
+
} catch (err) {
|
|
10483
|
+
if (err instanceof DiagnosticError) {
|
|
10484
|
+
this.parseErrors.push(err);
|
|
10485
|
+
this.syncToNextStmt();
|
|
10486
|
+
} else {
|
|
10487
|
+
throw err;
|
|
10488
|
+
}
|
|
10489
|
+
}
|
|
10249
10490
|
}
|
|
10250
10491
|
this.expect("}");
|
|
10251
10492
|
return stmts;
|
|
@@ -10254,25 +10495,65 @@ var Parser = class _Parser {
|
|
|
10254
10495
|
if (this.check("let")) {
|
|
10255
10496
|
return this.parseLetStmt();
|
|
10256
10497
|
}
|
|
10498
|
+
if (this.check("const")) {
|
|
10499
|
+
return this.parseLocalConstDecl();
|
|
10500
|
+
}
|
|
10257
10501
|
if (this.check("return")) {
|
|
10258
10502
|
return this.parseReturnStmt();
|
|
10259
10503
|
}
|
|
10260
10504
|
if (this.check("break")) {
|
|
10261
10505
|
const token = this.advance();
|
|
10506
|
+
if (this.check("ident")) {
|
|
10507
|
+
const labelToken = this.advance();
|
|
10508
|
+
this.match(";");
|
|
10509
|
+
return this.withLoc({ kind: "break_label", label: labelToken.value }, token);
|
|
10510
|
+
}
|
|
10262
10511
|
this.match(";");
|
|
10263
10512
|
return this.withLoc({ kind: "break" }, token);
|
|
10264
10513
|
}
|
|
10265
10514
|
if (this.check("continue")) {
|
|
10266
10515
|
const token = this.advance();
|
|
10516
|
+
if (this.check("ident")) {
|
|
10517
|
+
const labelToken = this.advance();
|
|
10518
|
+
this.match(";");
|
|
10519
|
+
return this.withLoc({ kind: "continue_label", label: labelToken.value }, token);
|
|
10520
|
+
}
|
|
10267
10521
|
this.match(";");
|
|
10268
10522
|
return this.withLoc({ kind: "continue" }, token);
|
|
10269
10523
|
}
|
|
10270
10524
|
if (this.check("if")) {
|
|
10271
10525
|
return this.parseIfStmt();
|
|
10272
10526
|
}
|
|
10527
|
+
if (this.check("ident") && this.peek(1).kind === ":") {
|
|
10528
|
+
const labelToken = this.advance();
|
|
10529
|
+
const colonToken = this.advance();
|
|
10530
|
+
let loopStmt;
|
|
10531
|
+
if (this.check("while")) {
|
|
10532
|
+
loopStmt = this.parseWhileStmt();
|
|
10533
|
+
} else if (this.check("for")) {
|
|
10534
|
+
loopStmt = this.parseForStmt();
|
|
10535
|
+
} else if (this.check("foreach")) {
|
|
10536
|
+
loopStmt = this.parseForeachStmt();
|
|
10537
|
+
} else if (this.check("repeat")) {
|
|
10538
|
+
loopStmt = this.parseRepeatStmt();
|
|
10539
|
+
} else {
|
|
10540
|
+
throw new DiagnosticError(
|
|
10541
|
+
"ParseError",
|
|
10542
|
+
`Expected loop statement after label '${labelToken.value}:', found '${this.peek().kind}'`,
|
|
10543
|
+
{ line: labelToken.line, col: labelToken.col }
|
|
10544
|
+
);
|
|
10545
|
+
}
|
|
10546
|
+
return this.withLoc({ kind: "labeled_loop", label: labelToken.value, body: loopStmt }, labelToken);
|
|
10547
|
+
}
|
|
10273
10548
|
if (this.check("while")) {
|
|
10274
10549
|
return this.parseWhileStmt();
|
|
10275
10550
|
}
|
|
10551
|
+
if (this.check("do")) {
|
|
10552
|
+
return this.parseDoWhileStmt();
|
|
10553
|
+
}
|
|
10554
|
+
if (this.check("repeat")) {
|
|
10555
|
+
return this.parseRepeatStmt();
|
|
10556
|
+
}
|
|
10276
10557
|
if (this.check("for")) {
|
|
10277
10558
|
return this.parseForStmt();
|
|
10278
10559
|
}
|
|
@@ -10327,6 +10608,16 @@ var Parser = class _Parser {
|
|
|
10327
10608
|
this.match(";");
|
|
10328
10609
|
return this.withLoc({ kind: "let", name, type, init }, letToken);
|
|
10329
10610
|
}
|
|
10611
|
+
parseLocalConstDecl() {
|
|
10612
|
+
const constToken = this.expect("const");
|
|
10613
|
+
const name = this.expect("ident").value;
|
|
10614
|
+
this.expect(":");
|
|
10615
|
+
const type = this.parseType();
|
|
10616
|
+
this.expect("=");
|
|
10617
|
+
const value = this.parseExpr();
|
|
10618
|
+
this.match(";");
|
|
10619
|
+
return this.withLoc({ kind: "const_decl", name, type, value }, constToken);
|
|
10620
|
+
}
|
|
10330
10621
|
parseReturnStmt() {
|
|
10331
10622
|
const returnToken = this.expect("return");
|
|
10332
10623
|
let value;
|
|
@@ -10357,9 +10648,7 @@ var Parser = class _Parser {
|
|
|
10357
10648
|
}
|
|
10358
10649
|
return this.withLoc({ kind: "if_let_some", binding, init, then: then2, else_: else_2 }, ifToken);
|
|
10359
10650
|
}
|
|
10360
|
-
this.
|
|
10361
|
-
const cond = this.parseExpr();
|
|
10362
|
-
this.expect(")");
|
|
10651
|
+
const cond = this.parseParenOptionalCond();
|
|
10363
10652
|
const then = this.parseBlock();
|
|
10364
10653
|
let else_;
|
|
10365
10654
|
if (this.match("else")) {
|
|
@@ -10373,12 +10662,44 @@ var Parser = class _Parser {
|
|
|
10373
10662
|
}
|
|
10374
10663
|
parseWhileStmt() {
|
|
10375
10664
|
const whileToken = this.expect("while");
|
|
10376
|
-
this.
|
|
10377
|
-
|
|
10378
|
-
|
|
10665
|
+
if (this.check("let") && this.peek(1).kind === "ident" && this.peek(1).value === "Some") {
|
|
10666
|
+
this.advance();
|
|
10667
|
+
this.advance();
|
|
10668
|
+
this.expect("(");
|
|
10669
|
+
const binding = this.expect("ident").value;
|
|
10670
|
+
this.expect(")");
|
|
10671
|
+
this.expect("=");
|
|
10672
|
+
const init = this.parseExpr();
|
|
10673
|
+
const body2 = this.parseBlock();
|
|
10674
|
+
return this.withLoc({ kind: "while_let_some", binding, init, body: body2 }, whileToken);
|
|
10675
|
+
}
|
|
10676
|
+
const cond = this.parseParenOptionalCond();
|
|
10379
10677
|
const body = this.parseBlock();
|
|
10380
10678
|
return this.withLoc({ kind: "while", cond, body }, whileToken);
|
|
10381
10679
|
}
|
|
10680
|
+
parseDoWhileStmt() {
|
|
10681
|
+
const doToken = this.expect("do");
|
|
10682
|
+
const body = this.parseBlock();
|
|
10683
|
+
this.expect("while");
|
|
10684
|
+
const cond = this.parseParenOptionalCond();
|
|
10685
|
+
this.match(";");
|
|
10686
|
+
return this.withLoc({ kind: "do_while", cond, body }, doToken);
|
|
10687
|
+
}
|
|
10688
|
+
parseRepeatStmt() {
|
|
10689
|
+
const repeatToken = this.expect("repeat");
|
|
10690
|
+
const countToken = this.expect("int_lit");
|
|
10691
|
+
const count = parseInt(countToken.value, 10);
|
|
10692
|
+
const body = this.parseBlock();
|
|
10693
|
+
return this.withLoc({ kind: "repeat", count, body }, repeatToken);
|
|
10694
|
+
}
|
|
10695
|
+
parseParenOptionalCond() {
|
|
10696
|
+
if (this.match("(")) {
|
|
10697
|
+
const cond = this.parseExpr();
|
|
10698
|
+
this.expect(")");
|
|
10699
|
+
return cond;
|
|
10700
|
+
}
|
|
10701
|
+
return this.parseExpr();
|
|
10702
|
+
}
|
|
10382
10703
|
parseForStmt() {
|
|
10383
10704
|
const forToken = this.expect("for");
|
|
10384
10705
|
if (this.check("ident") && this.peek(1).kind === "in") {
|
|
@@ -10495,6 +10816,21 @@ var Parser = class _Parser {
|
|
|
10495
10816
|
this.expect(")");
|
|
10496
10817
|
return { kind: "PatSome", binding };
|
|
10497
10818
|
}
|
|
10819
|
+
if (this.check("ident") && this.peek(1).kind === "::") {
|
|
10820
|
+
const enumName = this.advance().value;
|
|
10821
|
+
this.expect("::");
|
|
10822
|
+
const variant = this.expect("ident").value;
|
|
10823
|
+
const bindings = [];
|
|
10824
|
+
if (this.check("(")) {
|
|
10825
|
+
this.advance();
|
|
10826
|
+
while (!this.check(")") && !this.check("eof")) {
|
|
10827
|
+
bindings.push(this.expect("ident").value);
|
|
10828
|
+
if (!this.match(",")) break;
|
|
10829
|
+
}
|
|
10830
|
+
this.expect(")");
|
|
10831
|
+
}
|
|
10832
|
+
return { kind: "PatEnum", enumName, variant, bindings };
|
|
10833
|
+
}
|
|
10498
10834
|
if (this.check("int_lit")) {
|
|
10499
10835
|
const tok = this.advance();
|
|
10500
10836
|
return { kind: "PatInt", value: parseInt(tok.value, 10) };
|
|
@@ -10838,6 +11174,15 @@ var Parser = class _Parser {
|
|
|
10838
11174
|
continue;
|
|
10839
11175
|
}
|
|
10840
11176
|
if (expr.kind === "member") {
|
|
11177
|
+
if (expr.field === "unwrap_or") {
|
|
11178
|
+
const defaultExpr = this.parseExpr();
|
|
11179
|
+
this.expect(")");
|
|
11180
|
+
expr = this.withLoc(
|
|
11181
|
+
{ kind: "unwrap_or", opt: expr.obj, default_: defaultExpr },
|
|
11182
|
+
this.getLocToken(expr) ?? openParenToken
|
|
11183
|
+
);
|
|
11184
|
+
continue;
|
|
11185
|
+
}
|
|
10841
11186
|
const methodMap = {
|
|
10842
11187
|
"tag": "__entity_tag",
|
|
10843
11188
|
"untag": "__entity_untag",
|
|
@@ -10930,6 +11275,20 @@ var Parser = class _Parser {
|
|
|
10930
11275
|
this.expect("::");
|
|
10931
11276
|
const memberToken = this.expect("ident");
|
|
10932
11277
|
if (this.check("(")) {
|
|
11278
|
+
const isNamedArgs = this.peek(1).kind === "ident" && this.peek(2).kind === ":";
|
|
11279
|
+
if (isNamedArgs) {
|
|
11280
|
+
this.advance();
|
|
11281
|
+
const args2 = [];
|
|
11282
|
+
while (!this.check(")") && !this.check("eof")) {
|
|
11283
|
+
const fieldName = this.expect("ident").value;
|
|
11284
|
+
this.expect(":");
|
|
11285
|
+
const value = this.parseExpr();
|
|
11286
|
+
args2.push({ name: fieldName, value });
|
|
11287
|
+
if (!this.match(",")) break;
|
|
11288
|
+
}
|
|
11289
|
+
this.expect(")");
|
|
11290
|
+
return this.withLoc({ kind: "enum_construct", enumName: typeToken.value, variant: memberToken.value, args: args2 }, typeToken);
|
|
11291
|
+
}
|
|
10933
11292
|
this.advance();
|
|
10934
11293
|
const args = this.parseArgs();
|
|
10935
11294
|
this.expect(")");
|
|
@@ -11611,6 +11970,49 @@ function toTypeNode(typeName) {
|
|
|
11611
11970
|
return { kind: "struct", name: typeName };
|
|
11612
11971
|
}
|
|
11613
11972
|
|
|
11973
|
+
// ../../src/structs/expand.ts
|
|
11974
|
+
function expandStructDeclarations(structs, onError) {
|
|
11975
|
+
const expandedByName = /* @__PURE__ */ new Map();
|
|
11976
|
+
const expanded = [];
|
|
11977
|
+
for (const struct of structs) {
|
|
11978
|
+
const inheritedFields = [];
|
|
11979
|
+
const seenFieldNames = /* @__PURE__ */ new Set();
|
|
11980
|
+
if (struct.extends) {
|
|
11981
|
+
const parent = expandedByName.get(struct.extends);
|
|
11982
|
+
if (!parent) {
|
|
11983
|
+
onError?.({
|
|
11984
|
+
message: `Struct '${struct.name}' extends unknown struct '${struct.extends}'`,
|
|
11985
|
+
node: struct
|
|
11986
|
+
});
|
|
11987
|
+
} else {
|
|
11988
|
+
for (const field of parent.fields) {
|
|
11989
|
+
inheritedFields.push(field);
|
|
11990
|
+
seenFieldNames.add(field.name);
|
|
11991
|
+
}
|
|
11992
|
+
}
|
|
11993
|
+
}
|
|
11994
|
+
const ownFields = [];
|
|
11995
|
+
for (const field of struct.fields) {
|
|
11996
|
+
if (seenFieldNames.has(field.name)) {
|
|
11997
|
+
onError?.({
|
|
11998
|
+
message: `Struct '${struct.name}' cannot override inherited field '${field.name}'`,
|
|
11999
|
+
node: struct
|
|
12000
|
+
});
|
|
12001
|
+
continue;
|
|
12002
|
+
}
|
|
12003
|
+
seenFieldNames.add(field.name);
|
|
12004
|
+
ownFields.push(field);
|
|
12005
|
+
}
|
|
12006
|
+
const resolved = {
|
|
12007
|
+
...struct,
|
|
12008
|
+
fields: [...inheritedFields, ...ownFields]
|
|
12009
|
+
};
|
|
12010
|
+
expanded.push(resolved);
|
|
12011
|
+
expandedByName.set(struct.name, resolved);
|
|
12012
|
+
}
|
|
12013
|
+
return expanded;
|
|
12014
|
+
}
|
|
12015
|
+
|
|
11614
12016
|
// ../../src/typechecker/index.ts
|
|
11615
12017
|
var ENTITY_HIERARCHY = {
|
|
11616
12018
|
"entity": null,
|
|
@@ -11693,8 +12095,11 @@ var MC_TYPE_TO_ENTITY = {
|
|
|
11693
12095
|
var VOID_TYPE = { kind: "named", name: "void" };
|
|
11694
12096
|
var INT_TYPE = { kind: "named", name: "int" };
|
|
11695
12097
|
var STRING_TYPE = { kind: "named", name: "string" };
|
|
11696
|
-
var FORMAT_STRING_TYPE = { kind: "named", name: "format_string" };
|
|
11697
12098
|
var BUILTIN_SIGNATURES = {
|
|
12099
|
+
assert: {
|
|
12100
|
+
params: [{ kind: "named", name: "bool" }],
|
|
12101
|
+
return: VOID_TYPE
|
|
12102
|
+
},
|
|
11698
12103
|
setTimeout: {
|
|
11699
12104
|
params: [INT_TYPE, { kind: "function_type", params: [], return: VOID_TYPE }],
|
|
11700
12105
|
return: VOID_TYPE
|
|
@@ -11706,15 +12111,25 @@ var BUILTIN_SIGNATURES = {
|
|
|
11706
12111
|
clearInterval: {
|
|
11707
12112
|
params: [INT_TYPE],
|
|
11708
12113
|
return: VOID_TYPE
|
|
12114
|
+
},
|
|
12115
|
+
int_to_str: {
|
|
12116
|
+
params: [INT_TYPE],
|
|
12117
|
+
return: STRING_TYPE
|
|
12118
|
+
},
|
|
12119
|
+
bool_to_str: {
|
|
12120
|
+
params: [{ kind: "named", name: "bool" }],
|
|
12121
|
+
return: STRING_TYPE
|
|
11709
12122
|
}
|
|
11710
12123
|
};
|
|
11711
|
-
var TypeChecker = class {
|
|
12124
|
+
var TypeChecker = class _TypeChecker {
|
|
11712
12125
|
constructor(source, filePath) {
|
|
11713
12126
|
this.lintWarnings = [];
|
|
11714
12127
|
this.functions = /* @__PURE__ */ new Map();
|
|
11715
12128
|
this.implMethods = /* @__PURE__ */ new Map();
|
|
11716
12129
|
this.structs = /* @__PURE__ */ new Map();
|
|
11717
12130
|
this.enums = /* @__PURE__ */ new Map();
|
|
12131
|
+
// enumName → variantName → field list (for payload variants)
|
|
12132
|
+
this.enumPayloads = /* @__PURE__ */ new Map();
|
|
11718
12133
|
this.consts = /* @__PURE__ */ new Map();
|
|
11719
12134
|
this.globals = /* @__PURE__ */ new Map();
|
|
11720
12135
|
this.currentFn = null;
|
|
@@ -11725,6 +12140,8 @@ var TypeChecker = class {
|
|
|
11725
12140
|
// Depth of loop/conditional nesting (for static-allocation enforcement)
|
|
11726
12141
|
this.loopDepth = 0;
|
|
11727
12142
|
this.condDepth = 0;
|
|
12143
|
+
// interface name → InterfaceDecl
|
|
12144
|
+
this.interfaces = /* @__PURE__ */ new Map();
|
|
11728
12145
|
this.richTextBuiltins = /* @__PURE__ */ new Map([
|
|
11729
12146
|
["say", { messageIndex: 0 }],
|
|
11730
12147
|
["announce", { messageIndex: 0 }],
|
|
@@ -11766,6 +12183,9 @@ var TypeChecker = class {
|
|
|
11766
12183
|
for (const fn of program.declarations) {
|
|
11767
12184
|
this.functions.set(fn.name, fn);
|
|
11768
12185
|
}
|
|
12186
|
+
for (const iface of program.interfaces ?? []) {
|
|
12187
|
+
this.interfaces.set(iface.name, iface);
|
|
12188
|
+
}
|
|
11769
12189
|
for (const global of program.globals ?? []) {
|
|
11770
12190
|
this.globals.set(global.name, this.normalizeType(global.type));
|
|
11771
12191
|
}
|
|
@@ -11789,19 +12209,56 @@ var TypeChecker = class {
|
|
|
11789
12209
|
methods.set(method.name, method);
|
|
11790
12210
|
}
|
|
11791
12211
|
}
|
|
11792
|
-
|
|
12212
|
+
const expandedStructs = expandStructDeclarations(program.structs ?? [], ({ message, node }) => {
|
|
12213
|
+
this.report(message, node);
|
|
12214
|
+
});
|
|
12215
|
+
for (const struct of expandedStructs) {
|
|
11793
12216
|
const fields = /* @__PURE__ */ new Map();
|
|
11794
12217
|
for (const field of struct.fields) {
|
|
11795
12218
|
fields.set(field.name, field.type);
|
|
11796
12219
|
}
|
|
11797
12220
|
this.structs.set(struct.name, fields);
|
|
12221
|
+
if (struct.isSingleton) {
|
|
12222
|
+
const structType = { kind: "struct", name: struct.name };
|
|
12223
|
+
let singletonMethods = this.implMethods.get(struct.name);
|
|
12224
|
+
if (!singletonMethods) {
|
|
12225
|
+
singletonMethods = /* @__PURE__ */ new Map();
|
|
12226
|
+
this.implMethods.set(struct.name, singletonMethods);
|
|
12227
|
+
}
|
|
12228
|
+
const voidType = { kind: "named", name: "void" };
|
|
12229
|
+
singletonMethods.set("get", {
|
|
12230
|
+
name: "get",
|
|
12231
|
+
params: [],
|
|
12232
|
+
returnType: structType,
|
|
12233
|
+
decorators: [],
|
|
12234
|
+
body: [],
|
|
12235
|
+
typeParams: void 0,
|
|
12236
|
+
isLibraryFn: true
|
|
12237
|
+
});
|
|
12238
|
+
singletonMethods.set("set", {
|
|
12239
|
+
name: "set",
|
|
12240
|
+
params: [{ name: "gs", type: structType }],
|
|
12241
|
+
returnType: voidType,
|
|
12242
|
+
decorators: [],
|
|
12243
|
+
body: [],
|
|
12244
|
+
typeParams: void 0,
|
|
12245
|
+
isLibraryFn: true
|
|
12246
|
+
});
|
|
12247
|
+
}
|
|
11798
12248
|
}
|
|
11799
12249
|
for (const enumDecl of program.enums ?? []) {
|
|
11800
12250
|
const variants = /* @__PURE__ */ new Map();
|
|
12251
|
+
const payloads = /* @__PURE__ */ new Map();
|
|
11801
12252
|
for (const variant of enumDecl.variants) {
|
|
11802
12253
|
variants.set(variant.name, variant.value ?? 0);
|
|
12254
|
+
if (variant.fields && variant.fields.length > 0) {
|
|
12255
|
+
payloads.set(variant.name, variant.fields);
|
|
12256
|
+
}
|
|
11803
12257
|
}
|
|
11804
12258
|
this.enums.set(enumDecl.name, variants);
|
|
12259
|
+
if (payloads.size > 0) {
|
|
12260
|
+
this.enumPayloads.set(enumDecl.name, payloads);
|
|
12261
|
+
}
|
|
11805
12262
|
}
|
|
11806
12263
|
for (const constDecl of program.consts ?? []) {
|
|
11807
12264
|
const constType = this.normalizeType(constDecl.type);
|
|
@@ -11814,6 +12271,21 @@ var TypeChecker = class {
|
|
|
11814
12271
|
}
|
|
11815
12272
|
this.consts.set(constDecl.name, constType);
|
|
11816
12273
|
}
|
|
12274
|
+
for (const implBlock of program.implBlocks ?? []) {
|
|
12275
|
+
if (!implBlock.traitName) continue;
|
|
12276
|
+
const iface = this.interfaces.get(implBlock.traitName);
|
|
12277
|
+
if (!iface) continue;
|
|
12278
|
+
const implementedMethods = new Set(implBlock.methods.map((m) => m.name));
|
|
12279
|
+
for (const required of iface.methods) {
|
|
12280
|
+
if (!implementedMethods.has(required.name)) {
|
|
12281
|
+
const span = implBlock.span ?? required.span;
|
|
12282
|
+
this.report(
|
|
12283
|
+
`Struct '${implBlock.typeName}' does not implement required method '${required.name}' from interface '${implBlock.traitName}'`,
|
|
12284
|
+
span ?? { line: 1, col: 1 }
|
|
12285
|
+
);
|
|
12286
|
+
}
|
|
12287
|
+
}
|
|
12288
|
+
}
|
|
11817
12289
|
for (const fn of program.declarations) {
|
|
11818
12290
|
this.checkFunction(fn);
|
|
11819
12291
|
}
|
|
@@ -11859,6 +12331,77 @@ var TypeChecker = class {
|
|
|
11859
12331
|
this.currentReturnType = null;
|
|
11860
12332
|
}
|
|
11861
12333
|
checkFunctionDecorators(fn) {
|
|
12334
|
+
const watchDecorators = fn.decorators.filter((decorator) => decorator.name === "watch");
|
|
12335
|
+
if (watchDecorators.length > 1) {
|
|
12336
|
+
this.report(`Function '${fn.name}' cannot have multiple @watch decorators`, fn);
|
|
12337
|
+
return;
|
|
12338
|
+
}
|
|
12339
|
+
if (watchDecorators.length === 1) {
|
|
12340
|
+
const objective = watchDecorators[0].args?.objective;
|
|
12341
|
+
if (!objective) {
|
|
12342
|
+
this.report(`Function '${fn.name}' is missing a scoreboard objective in @watch("...")`, fn);
|
|
12343
|
+
return;
|
|
12344
|
+
}
|
|
12345
|
+
if (fn.params.length > 0) {
|
|
12346
|
+
this.report(`@watch handler '${fn.name}' cannot declare parameters`, fn);
|
|
12347
|
+
}
|
|
12348
|
+
}
|
|
12349
|
+
const throttleDecorators = fn.decorators.filter((decorator) => decorator.name === "throttle");
|
|
12350
|
+
if (throttleDecorators.length > 1) {
|
|
12351
|
+
this.report(`Function '${fn.name}' cannot have multiple @throttle decorators`, fn);
|
|
12352
|
+
return;
|
|
12353
|
+
}
|
|
12354
|
+
if (throttleDecorators.length === 1) {
|
|
12355
|
+
const ticks = throttleDecorators[0].args?.ticks;
|
|
12356
|
+
if (ticks === void 0 || ticks <= 0) {
|
|
12357
|
+
this.report(`@throttle on '${fn.name}' requires ticks=N (positive integer)`, fn);
|
|
12358
|
+
}
|
|
12359
|
+
}
|
|
12360
|
+
const retryDecorators = fn.decorators.filter((decorator) => decorator.name === "retry");
|
|
12361
|
+
if (retryDecorators.length > 1) {
|
|
12362
|
+
this.report(`Function '${fn.name}' cannot have multiple @retry decorators`, fn);
|
|
12363
|
+
return;
|
|
12364
|
+
}
|
|
12365
|
+
if (retryDecorators.length === 1) {
|
|
12366
|
+
const max = retryDecorators[0].args?.max;
|
|
12367
|
+
if (max === void 0 || max <= 0) {
|
|
12368
|
+
this.report(`@retry on '${fn.name}' requires max=N (positive integer)`, fn);
|
|
12369
|
+
}
|
|
12370
|
+
}
|
|
12371
|
+
const profileDecorators = fn.decorators.filter((decorator) => decorator.name === "profile");
|
|
12372
|
+
if (profileDecorators.length > 1) {
|
|
12373
|
+
this.report(`Function '${fn.name}' cannot have multiple @profile decorators`, fn);
|
|
12374
|
+
return;
|
|
12375
|
+
}
|
|
12376
|
+
if (profileDecorators.length === 1 && (profileDecorators[0].rawArgs?.length || profileDecorators[0].args && Object.keys(profileDecorators[0].args).length > 0)) {
|
|
12377
|
+
this.report(`@profile decorator on '${fn.name}' does not accept arguments`, fn);
|
|
12378
|
+
return;
|
|
12379
|
+
}
|
|
12380
|
+
const benchmarkDecorators = fn.decorators.filter((decorator) => decorator.name === "benchmark");
|
|
12381
|
+
if (benchmarkDecorators.length > 1) {
|
|
12382
|
+
this.report(`Function '${fn.name}' cannot have multiple @benchmark decorators`, fn);
|
|
12383
|
+
return;
|
|
12384
|
+
}
|
|
12385
|
+
if (benchmarkDecorators.length === 1 && (benchmarkDecorators[0].rawArgs?.length || benchmarkDecorators[0].args && Object.keys(benchmarkDecorators[0].args).length > 0)) {
|
|
12386
|
+
this.report(`@benchmark decorator on '${fn.name}' does not accept arguments`, fn);
|
|
12387
|
+
return;
|
|
12388
|
+
}
|
|
12389
|
+
const memoizeDecorators = fn.decorators.filter((decorator) => decorator.name === "memoize");
|
|
12390
|
+
if (memoizeDecorators.length > 1) {
|
|
12391
|
+
this.report(`Function '${fn.name}' cannot have multiple @memoize decorators`, fn);
|
|
12392
|
+
return;
|
|
12393
|
+
}
|
|
12394
|
+
if (memoizeDecorators.length === 1) {
|
|
12395
|
+
if (fn.params.length !== 1) {
|
|
12396
|
+
this.report(`@memoize on '${fn.name}' requires exactly one parameter`, fn);
|
|
12397
|
+
} else {
|
|
12398
|
+
const paramType = fn.params[0].type;
|
|
12399
|
+
const isInt = paramType.kind === "named" && paramType.name === "int";
|
|
12400
|
+
if (!isInt) {
|
|
12401
|
+
this.report(`@memoize on '${fn.name}' only supports int parameters (got '${paramType.kind === "named" ? paramType.name : paramType.kind}')`, fn);
|
|
12402
|
+
}
|
|
12403
|
+
}
|
|
12404
|
+
}
|
|
11862
12405
|
const eventDecorators = fn.decorators.filter((decorator) => decorator.name === "on");
|
|
11863
12406
|
if (eventDecorators.length === 0) {
|
|
11864
12407
|
return;
|
|
@@ -11968,8 +12511,21 @@ var TypeChecker = class {
|
|
|
11968
12511
|
if (!isUnknown(subjectType) && !isUnknown(patternType) && !this.typesMatch(subjectType, patternType)) {
|
|
11969
12512
|
this.report("Match arm pattern type must match subject type", arm.pattern.expr);
|
|
11970
12513
|
}
|
|
12514
|
+
this.checkBlock(arm.body);
|
|
12515
|
+
} else if (arm.pattern.kind === "PatEnum") {
|
|
12516
|
+
const pat = arm.pattern;
|
|
12517
|
+
const variantPayloads = this.enumPayloads.get(pat.enumName)?.get(pat.variant) ?? [];
|
|
12518
|
+
const savedScope = new Map(this.scope);
|
|
12519
|
+
for (let i = 0; i < pat.bindings.length; i++) {
|
|
12520
|
+
const fieldDef = variantPayloads[i];
|
|
12521
|
+
const bindingType = fieldDef ? fieldDef.type : { kind: "named", name: "int" };
|
|
12522
|
+
this.scope.set(pat.bindings[i], { type: bindingType, mutable: false });
|
|
12523
|
+
}
|
|
12524
|
+
this.checkBlock(arm.body);
|
|
12525
|
+
this.scope = savedScope;
|
|
12526
|
+
} else {
|
|
12527
|
+
this.checkBlock(arm.body);
|
|
11971
12528
|
}
|
|
11972
|
-
this.checkBlock(arm.body);
|
|
11973
12529
|
}
|
|
11974
12530
|
break;
|
|
11975
12531
|
case "as_block": {
|
|
@@ -12008,6 +12564,19 @@ var TypeChecker = class {
|
|
|
12008
12564
|
break;
|
|
12009
12565
|
case "raw":
|
|
12010
12566
|
break;
|
|
12567
|
+
case "break":
|
|
12568
|
+
case "continue":
|
|
12569
|
+
case "break_label":
|
|
12570
|
+
case "continue_label":
|
|
12571
|
+
break;
|
|
12572
|
+
case "labeled_loop":
|
|
12573
|
+
this.loopDepth++;
|
|
12574
|
+
this.checkStmt(stmt.body);
|
|
12575
|
+
this.loopDepth--;
|
|
12576
|
+
break;
|
|
12577
|
+
case "const_decl":
|
|
12578
|
+
this.scope.set(stmt.name, { type: stmt.type, mutable: false });
|
|
12579
|
+
break;
|
|
12011
12580
|
}
|
|
12012
12581
|
}
|
|
12013
12582
|
checkLetDestructStmt(stmt) {
|
|
@@ -12182,15 +12751,41 @@ var TypeChecker = class {
|
|
|
12182
12751
|
break;
|
|
12183
12752
|
case "struct_lit":
|
|
12184
12753
|
for (const field of expr.fields) {
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
|
|
12754
|
+
let fieldType;
|
|
12755
|
+
if (expectedType) {
|
|
12756
|
+
const normalized = this.normalizeType(expectedType);
|
|
12757
|
+
if (normalized.kind === "struct") {
|
|
12758
|
+
const structFields = this.structs.get(normalized.name);
|
|
12759
|
+
if (structFields && !structFields.has(field.name)) {
|
|
12760
|
+
this.report(`Struct '${normalized.name}' has no field '${field.name}'`, expr);
|
|
12761
|
+
} else {
|
|
12762
|
+
fieldType = structFields?.get(field.name);
|
|
12763
|
+
}
|
|
12764
|
+
}
|
|
12765
|
+
}
|
|
12766
|
+
this.checkExpr(field.value, fieldType);
|
|
12767
|
+
if (fieldType) {
|
|
12768
|
+
const actualType = this.inferType(field.value, fieldType);
|
|
12769
|
+
if (this.isNumericMismatch(fieldType, actualType)) {
|
|
12770
|
+
this.report(
|
|
12771
|
+
`Field '${field.name}' of struct expects ${this.typeToString(fieldType)}, got ${this.typeToString(actualType)}`,
|
|
12772
|
+
field.value
|
|
12773
|
+
);
|
|
12774
|
+
} else if (!this.typesMatch(fieldType, actualType)) {
|
|
12775
|
+
this.report(
|
|
12776
|
+
`Field '${field.name}' of struct expects ${this.typeToString(fieldType)}, got ${this.typeToString(actualType)}`,
|
|
12777
|
+
field.value
|
|
12778
|
+
);
|
|
12779
|
+
}
|
|
12780
|
+
}
|
|
12781
|
+
}
|
|
12782
|
+
break;
|
|
12783
|
+
case "str_interp":
|
|
12784
|
+
for (const part of expr.parts) {
|
|
12785
|
+
if (typeof part !== "string") {
|
|
12786
|
+
this.checkExpr(part);
|
|
12787
|
+
}
|
|
12788
|
+
}
|
|
12194
12789
|
break;
|
|
12195
12790
|
case "f_string":
|
|
12196
12791
|
for (const part of expr.parts) {
|
|
@@ -12234,6 +12829,31 @@ var TypeChecker = class {
|
|
|
12234
12829
|
}
|
|
12235
12830
|
}
|
|
12236
12831
|
break;
|
|
12832
|
+
case "enum_construct": {
|
|
12833
|
+
if (!this.enums.has(expr.enumName)) {
|
|
12834
|
+
this.report(`Unknown enum '${expr.enumName}'`, expr);
|
|
12835
|
+
break;
|
|
12836
|
+
}
|
|
12837
|
+
const variants = this.enums.get(expr.enumName);
|
|
12838
|
+
if (!variants.has(expr.variant)) {
|
|
12839
|
+
this.report(`Enum '${expr.enumName}' has no variant '${expr.variant}'`, expr);
|
|
12840
|
+
break;
|
|
12841
|
+
}
|
|
12842
|
+
const variantPayloads = this.enumPayloads.get(expr.enumName)?.get(expr.variant) ?? [];
|
|
12843
|
+
if (variantPayloads.length === 0 && expr.args.length > 0) {
|
|
12844
|
+
this.report(`Enum variant '${expr.enumName}::${expr.variant}' has no payload fields`, expr);
|
|
12845
|
+
break;
|
|
12846
|
+
}
|
|
12847
|
+
for (const arg of expr.args) {
|
|
12848
|
+
const fieldDef = variantPayloads.find((f) => f.name === arg.name);
|
|
12849
|
+
if (!fieldDef) {
|
|
12850
|
+
this.report(`Unknown field '${arg.name}' for enum variant '${expr.enumName}::${expr.variant}'`, expr);
|
|
12851
|
+
} else {
|
|
12852
|
+
this.checkExpr(arg.value, fieldDef.type);
|
|
12853
|
+
}
|
|
12854
|
+
}
|
|
12855
|
+
break;
|
|
12856
|
+
}
|
|
12237
12857
|
case "blockpos":
|
|
12238
12858
|
break;
|
|
12239
12859
|
// Literals don't need checking
|
|
@@ -12345,7 +12965,7 @@ var TypeChecker = class {
|
|
|
12345
12965
|
return;
|
|
12346
12966
|
}
|
|
12347
12967
|
const messageType = this.inferType(message);
|
|
12348
|
-
if (messageType.kind !== "named" || messageType.name !== "string"
|
|
12968
|
+
if (messageType.kind !== "named" || messageType.name !== "string") {
|
|
12349
12969
|
this.report(
|
|
12350
12970
|
`Argument ${messageIndex + 1} of '${expr.fn}' expects string or format_string, got ${this.typeToString(messageType)}`,
|
|
12351
12971
|
message
|
|
@@ -12570,7 +13190,7 @@ var TypeChecker = class {
|
|
|
12570
13190
|
this.checkExpr(part.expr);
|
|
12571
13191
|
}
|
|
12572
13192
|
}
|
|
12573
|
-
return
|
|
13193
|
+
return STRING_TYPE;
|
|
12574
13194
|
case "blockpos":
|
|
12575
13195
|
return { kind: "named", name: "BlockPos" };
|
|
12576
13196
|
case "ident":
|
|
@@ -12630,6 +13250,11 @@ var TypeChecker = class {
|
|
|
12630
13250
|
return { kind: "enum", name: expr.enumName };
|
|
12631
13251
|
}
|
|
12632
13252
|
return { kind: "named", name: "void" };
|
|
13253
|
+
case "enum_construct":
|
|
13254
|
+
if (this.enums.has(expr.enumName)) {
|
|
13255
|
+
return { kind: "enum", name: expr.enumName };
|
|
13256
|
+
}
|
|
13257
|
+
return { kind: "named", name: "void" };
|
|
12633
13258
|
case "member":
|
|
12634
13259
|
if (expr.obj.kind === "ident" && this.enums.has(expr.obj.name)) {
|
|
12635
13260
|
return { kind: "enum", name: expr.obj.name };
|
|
@@ -12735,6 +13360,21 @@ var TypeChecker = class {
|
|
|
12735
13360
|
}
|
|
12736
13361
|
return "entity";
|
|
12737
13362
|
}
|
|
13363
|
+
static {
|
|
13364
|
+
// Reverse map: parser sometimes remaps method names (e.g. add→set_add) for builtins.
|
|
13365
|
+
// When the receiver is a struct with an impl method matching the original name, use that.
|
|
13366
|
+
this.PARSER_METHOD_REMAP = {
|
|
13367
|
+
"set_add": "add",
|
|
13368
|
+
"set_contains": "contains",
|
|
13369
|
+
"set_remove": "remove",
|
|
13370
|
+
"set_clear": "clear",
|
|
13371
|
+
"__array_push": "push",
|
|
13372
|
+
"__array_pop": "pop",
|
|
13373
|
+
"__entity_tag": "tag",
|
|
13374
|
+
"__entity_untag": "untag",
|
|
13375
|
+
"__entity_has_tag": "has_tag"
|
|
13376
|
+
};
|
|
13377
|
+
}
|
|
12738
13378
|
resolveInstanceMethod(expr) {
|
|
12739
13379
|
const receiver = expr.args[0];
|
|
12740
13380
|
if (!receiver) {
|
|
@@ -12744,7 +13384,8 @@ var TypeChecker = class {
|
|
|
12744
13384
|
if (receiverType.kind !== "struct") {
|
|
12745
13385
|
return null;
|
|
12746
13386
|
}
|
|
12747
|
-
const
|
|
13387
|
+
const methodName = _TypeChecker.PARSER_METHOD_REMAP[expr.fn] ?? expr.fn;
|
|
13388
|
+
const method = this.implMethods.get(receiverType.name)?.get(expr.fn) ?? this.implMethods.get(receiverType.name)?.get(methodName);
|
|
12748
13389
|
if (!method || method.params[0]?.name !== "self") {
|
|
12749
13390
|
return null;
|
|
12750
13391
|
}
|
|
@@ -12813,6 +13454,9 @@ var TypeChecker = class {
|
|
|
12813
13454
|
if (expected.kind === "selector" && actual.kind === "selector") {
|
|
12814
13455
|
return true;
|
|
12815
13456
|
}
|
|
13457
|
+
if (expected.kind === "selector" && actual.kind === "named" && actual.name === "string") {
|
|
13458
|
+
return true;
|
|
13459
|
+
}
|
|
12816
13460
|
if (expected.kind !== actual.kind) return false;
|
|
12817
13461
|
if (expected.kind === "named" && actual.kind === "named") {
|
|
12818
13462
|
if (actual.name === "void") return true;
|
|
@@ -13822,132 +14466,1938 @@ var BUILTIN_METADATA = {
|
|
|
13822
14466
|
}
|
|
13823
14467
|
};
|
|
13824
14468
|
|
|
13825
|
-
// ../../src/
|
|
13826
|
-
|
|
13827
|
-
|
|
13828
|
-
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
|
|
13837
|
-
|
|
13838
|
-
|
|
13839
|
-
|
|
14469
|
+
// ../../src/hir/lower.ts
|
|
14470
|
+
function lowerToHIR(program) {
|
|
14471
|
+
const structs = expandStructDeclarations(program.structs).map((s) => ({
|
|
14472
|
+
name: s.name,
|
|
14473
|
+
extends: s.extends,
|
|
14474
|
+
fields: s.fields.map((f) => ({ name: f.name, type: f.type })),
|
|
14475
|
+
isSingleton: s.isSingleton,
|
|
14476
|
+
span: s.span
|
|
14477
|
+
}));
|
|
14478
|
+
return {
|
|
14479
|
+
namespace: program.namespace,
|
|
14480
|
+
globals: program.globals.map(lowerGlobal),
|
|
14481
|
+
functions: program.declarations.map(lowerFunction),
|
|
14482
|
+
structs,
|
|
14483
|
+
implBlocks: program.implBlocks.map((ib) => ({
|
|
14484
|
+
typeName: ib.typeName,
|
|
14485
|
+
traitName: ib.traitName,
|
|
14486
|
+
methods: ib.methods.map(lowerFunction),
|
|
14487
|
+
span: ib.span
|
|
14488
|
+
})),
|
|
14489
|
+
enums: program.enums.map((e) => ({
|
|
14490
|
+
name: e.name,
|
|
14491
|
+
variants: e.variants.map((v) => ({ name: v.name, value: v.value, fields: v.fields })),
|
|
14492
|
+
span: e.span
|
|
14493
|
+
})),
|
|
14494
|
+
consts: program.consts.map((c) => ({
|
|
14495
|
+
name: c.name,
|
|
14496
|
+
type: c.type,
|
|
14497
|
+
value: lowerExpr(c.value),
|
|
14498
|
+
span: c.span
|
|
14499
|
+
})),
|
|
14500
|
+
isLibrary: program.isLibrary
|
|
14501
|
+
};
|
|
14502
|
+
}
|
|
14503
|
+
function lowerMatchPattern(pat) {
|
|
14504
|
+
switch (pat.kind) {
|
|
14505
|
+
case "PatSome":
|
|
14506
|
+
return pat;
|
|
14507
|
+
case "PatNone":
|
|
14508
|
+
return pat;
|
|
14509
|
+
case "PatInt":
|
|
14510
|
+
return pat;
|
|
14511
|
+
case "PatWild":
|
|
14512
|
+
return pat;
|
|
14513
|
+
case "PatExpr":
|
|
14514
|
+
return { kind: "PatExpr", expr: lowerExpr(pat.expr) };
|
|
14515
|
+
case "PatEnum":
|
|
14516
|
+
return { kind: "PatEnum", enumName: pat.enumName, variant: pat.variant, bindings: pat.bindings };
|
|
14517
|
+
}
|
|
14518
|
+
}
|
|
14519
|
+
function lowerGlobal(g) {
|
|
14520
|
+
return {
|
|
14521
|
+
name: g.name,
|
|
14522
|
+
type: g.type,
|
|
14523
|
+
init: lowerExpr(g.init),
|
|
14524
|
+
mutable: g.mutable,
|
|
14525
|
+
span: g.span
|
|
14526
|
+
};
|
|
14527
|
+
}
|
|
14528
|
+
function lowerFunction(fn) {
|
|
14529
|
+
return {
|
|
14530
|
+
name: fn.name,
|
|
14531
|
+
typeParams: fn.typeParams,
|
|
14532
|
+
params: fn.params.map(lowerParam),
|
|
14533
|
+
returnType: fn.returnType,
|
|
14534
|
+
decorators: fn.decorators,
|
|
14535
|
+
body: lowerBlock(fn.body),
|
|
14536
|
+
isLibraryFn: fn.isLibraryFn,
|
|
14537
|
+
isExported: fn.isExported,
|
|
14538
|
+
span: fn.span,
|
|
14539
|
+
sourceFile: fn.sourceFile,
|
|
14540
|
+
watchObjective: fn.watchObjective
|
|
14541
|
+
};
|
|
14542
|
+
}
|
|
14543
|
+
function lowerParam(p) {
|
|
14544
|
+
return {
|
|
14545
|
+
name: p.name,
|
|
14546
|
+
type: p.type,
|
|
14547
|
+
default: p.default ? lowerExpr(p.default) : void 0
|
|
14548
|
+
};
|
|
14549
|
+
}
|
|
14550
|
+
function lowerBlock(block) {
|
|
14551
|
+
const result = [];
|
|
14552
|
+
for (const stmt of block) {
|
|
14553
|
+
const lowered = lowerStmt(stmt);
|
|
14554
|
+
if (Array.isArray(lowered)) {
|
|
14555
|
+
result.push(...lowered);
|
|
14556
|
+
} else {
|
|
14557
|
+
result.push(lowered);
|
|
13840
14558
|
}
|
|
13841
14559
|
}
|
|
13842
|
-
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
}
|
|
13856
|
-
|
|
14560
|
+
return result;
|
|
14561
|
+
}
|
|
14562
|
+
function lowerStmt(stmt) {
|
|
14563
|
+
switch (stmt.kind) {
|
|
14564
|
+
case "let":
|
|
14565
|
+
return { kind: "let", name: stmt.name, type: stmt.type, init: lowerExpr(stmt.init), span: stmt.span };
|
|
14566
|
+
case "let_destruct":
|
|
14567
|
+
return { kind: "let_destruct", names: stmt.names, type: stmt.type, init: lowerExpr(stmt.init), span: stmt.span };
|
|
14568
|
+
case "const_decl":
|
|
14569
|
+
return { kind: "const_decl", name: stmt.name, type: stmt.type, value: lowerExpr(stmt.value), span: stmt.span };
|
|
14570
|
+
case "expr":
|
|
14571
|
+
return { kind: "expr", expr: lowerExpr(stmt.expr), span: stmt.span };
|
|
14572
|
+
case "return":
|
|
14573
|
+
return { kind: "return", value: stmt.value ? lowerExpr(stmt.value) : void 0, span: stmt.span };
|
|
14574
|
+
case "break":
|
|
14575
|
+
return { kind: "break", span: stmt.span };
|
|
14576
|
+
case "continue":
|
|
14577
|
+
return { kind: "continue", span: stmt.span };
|
|
14578
|
+
case "break_label":
|
|
14579
|
+
return { kind: "break_label", label: stmt.label, span: stmt.span };
|
|
14580
|
+
case "continue_label":
|
|
14581
|
+
return { kind: "continue_label", label: stmt.label, span: stmt.span };
|
|
14582
|
+
case "labeled_loop": {
|
|
14583
|
+
const lowered = lowerStmt(stmt.body);
|
|
14584
|
+
if (Array.isArray(lowered)) {
|
|
14585
|
+
const inits = lowered.slice(0, -1);
|
|
14586
|
+
const loopStmt = lowered[lowered.length - 1];
|
|
14587
|
+
const labeled = { kind: "labeled_loop", label: stmt.label, body: loopStmt, span: stmt.span };
|
|
14588
|
+
return [...inits, labeled];
|
|
14589
|
+
}
|
|
14590
|
+
return { kind: "labeled_loop", label: stmt.label, body: lowered, span: stmt.span };
|
|
14591
|
+
}
|
|
14592
|
+
case "if":
|
|
14593
|
+
return {
|
|
14594
|
+
kind: "if",
|
|
14595
|
+
cond: lowerExpr(stmt.cond),
|
|
14596
|
+
then: lowerBlock(stmt.then),
|
|
14597
|
+
else_: stmt.else_ ? lowerBlock(stmt.else_) : void 0,
|
|
14598
|
+
span: stmt.span
|
|
14599
|
+
};
|
|
14600
|
+
case "while":
|
|
14601
|
+
return { kind: "while", cond: lowerExpr(stmt.cond), body: lowerBlock(stmt.body), span: stmt.span };
|
|
14602
|
+
// --- Desugaring: for → while ---
|
|
14603
|
+
case "for": {
|
|
14604
|
+
const stmts = [];
|
|
14605
|
+
if (stmt.init) {
|
|
14606
|
+
const init = lowerStmt(stmt.init);
|
|
14607
|
+
if (Array.isArray(init)) stmts.push(...init);
|
|
14608
|
+
else stmts.push(init);
|
|
14609
|
+
}
|
|
14610
|
+
const body = lowerBlock(stmt.body);
|
|
14611
|
+
const step = [{ kind: "expr", expr: lowerExpr(stmt.step), span: stmt.span }];
|
|
14612
|
+
stmts.push({ kind: "while", cond: lowerExpr(stmt.cond), body, step, span: stmt.span });
|
|
14613
|
+
return stmts;
|
|
14614
|
+
}
|
|
14615
|
+
// --- Desugaring: for_range → let + while(cond) { body } step { v++ } ---
|
|
14616
|
+
case "for_range": {
|
|
14617
|
+
const varName = stmt.varName;
|
|
14618
|
+
const initStmt = {
|
|
14619
|
+
kind: "let",
|
|
14620
|
+
name: varName,
|
|
14621
|
+
type: { kind: "named", name: "int" },
|
|
14622
|
+
init: lowerExpr(stmt.start),
|
|
14623
|
+
span: stmt.span
|
|
14624
|
+
};
|
|
14625
|
+
const body = lowerBlock(stmt.body);
|
|
14626
|
+
const step = [{
|
|
14627
|
+
kind: "expr",
|
|
14628
|
+
expr: {
|
|
14629
|
+
kind: "assign",
|
|
14630
|
+
target: varName,
|
|
14631
|
+
value: {
|
|
14632
|
+
kind: "binary",
|
|
14633
|
+
op: "+",
|
|
14634
|
+
left: { kind: "ident", name: varName },
|
|
14635
|
+
right: { kind: "int_lit", value: 1 }
|
|
14636
|
+
}
|
|
14637
|
+
}
|
|
14638
|
+
}];
|
|
14639
|
+
const whileStmt = {
|
|
14640
|
+
kind: "while",
|
|
14641
|
+
cond: {
|
|
14642
|
+
kind: "binary",
|
|
14643
|
+
op: stmt.inclusive ? "<=" : "<",
|
|
14644
|
+
left: { kind: "ident", name: varName },
|
|
14645
|
+
right: lowerExpr(stmt.end)
|
|
14646
|
+
},
|
|
14647
|
+
body,
|
|
14648
|
+
step,
|
|
14649
|
+
span: stmt.span
|
|
14650
|
+
};
|
|
14651
|
+
return [initStmt, whileStmt];
|
|
14652
|
+
}
|
|
14653
|
+
// --- Desugaring: for_in_array → let idx = 0; while(idx < len) { let v = arr[idx]; body; idx = idx + 1 } ---
|
|
14654
|
+
case "for_in_array": {
|
|
14655
|
+
const idxName = `__forin_idx_${stmt.binding}`;
|
|
14656
|
+
const initStmt = {
|
|
14657
|
+
kind: "let",
|
|
14658
|
+
name: idxName,
|
|
14659
|
+
type: { kind: "named", name: "int" },
|
|
14660
|
+
init: { kind: "int_lit", value: 0 },
|
|
14661
|
+
span: stmt.span
|
|
14662
|
+
};
|
|
14663
|
+
const bindingInit = {
|
|
14664
|
+
kind: "let",
|
|
14665
|
+
name: stmt.binding,
|
|
14666
|
+
type: void 0,
|
|
14667
|
+
init: {
|
|
14668
|
+
kind: "index",
|
|
14669
|
+
obj: { kind: "ident", name: stmt.arrayName },
|
|
14670
|
+
index: { kind: "ident", name: idxName }
|
|
14671
|
+
},
|
|
14672
|
+
span: stmt.span
|
|
14673
|
+
};
|
|
14674
|
+
const stepStmt = {
|
|
14675
|
+
kind: "expr",
|
|
14676
|
+
expr: {
|
|
14677
|
+
kind: "assign",
|
|
14678
|
+
target: idxName,
|
|
14679
|
+
value: {
|
|
14680
|
+
kind: "binary",
|
|
14681
|
+
op: "+",
|
|
14682
|
+
left: { kind: "ident", name: idxName },
|
|
14683
|
+
right: { kind: "int_lit", value: 1 }
|
|
14684
|
+
}
|
|
14685
|
+
},
|
|
14686
|
+
span: stmt.span
|
|
14687
|
+
};
|
|
14688
|
+
const body = [bindingInit, ...lowerBlock(stmt.body)];
|
|
14689
|
+
const step = [stepStmt];
|
|
14690
|
+
const whileStmt = {
|
|
14691
|
+
kind: "while",
|
|
14692
|
+
cond: {
|
|
14693
|
+
kind: "binary",
|
|
14694
|
+
op: "<",
|
|
14695
|
+
left: { kind: "ident", name: idxName },
|
|
14696
|
+
right: lowerExpr(stmt.lenExpr)
|
|
14697
|
+
},
|
|
14698
|
+
body,
|
|
14699
|
+
step,
|
|
14700
|
+
span: stmt.span
|
|
14701
|
+
};
|
|
14702
|
+
return [initStmt, whileStmt];
|
|
14703
|
+
}
|
|
14704
|
+
// --- Desugaring: for_each → let __for_len = arr.len(); let __for_i = 0; while(__for_i < __for_len) { let item = arr[__for_i]; body; __for_i = __for_i + 1 } ---
|
|
14705
|
+
case "for_each": {
|
|
14706
|
+
const id = forEachCounter++;
|
|
14707
|
+
const idxName = `__foreach_i_${id}`;
|
|
14708
|
+
const lenName = `__foreach_len_${id}`;
|
|
14709
|
+
const arrExpr = lowerExpr(stmt.array);
|
|
14710
|
+
const lenInitStmt = {
|
|
14711
|
+
kind: "let",
|
|
14712
|
+
name: lenName,
|
|
14713
|
+
type: { kind: "named", name: "int" },
|
|
14714
|
+
init: {
|
|
14715
|
+
kind: "invoke",
|
|
14716
|
+
callee: { kind: "member", obj: arrExpr, field: "len" },
|
|
14717
|
+
args: []
|
|
14718
|
+
},
|
|
14719
|
+
span: stmt.span
|
|
14720
|
+
};
|
|
14721
|
+
const idxInitStmt = {
|
|
14722
|
+
kind: "let",
|
|
14723
|
+
name: idxName,
|
|
14724
|
+
type: { kind: "named", name: "int" },
|
|
14725
|
+
init: { kind: "int_lit", value: 0 },
|
|
14726
|
+
span: stmt.span
|
|
14727
|
+
};
|
|
14728
|
+
const bindingInit = {
|
|
14729
|
+
kind: "let",
|
|
14730
|
+
name: stmt.binding,
|
|
14731
|
+
type: void 0,
|
|
14732
|
+
init: {
|
|
14733
|
+
kind: "index",
|
|
14734
|
+
obj: arrExpr,
|
|
14735
|
+
index: { kind: "ident", name: idxName }
|
|
14736
|
+
},
|
|
14737
|
+
span: stmt.span
|
|
14738
|
+
};
|
|
14739
|
+
const stepStmt = {
|
|
14740
|
+
kind: "expr",
|
|
14741
|
+
expr: {
|
|
14742
|
+
kind: "assign",
|
|
14743
|
+
target: idxName,
|
|
14744
|
+
value: {
|
|
14745
|
+
kind: "binary",
|
|
14746
|
+
op: "+",
|
|
14747
|
+
left: { kind: "ident", name: idxName },
|
|
14748
|
+
right: { kind: "int_lit", value: 1 }
|
|
14749
|
+
}
|
|
14750
|
+
},
|
|
14751
|
+
span: stmt.span
|
|
14752
|
+
};
|
|
14753
|
+
const body = [bindingInit, ...lowerBlock(stmt.body)];
|
|
14754
|
+
const step = [stepStmt];
|
|
14755
|
+
const whileStmt = {
|
|
14756
|
+
kind: "while",
|
|
14757
|
+
cond: {
|
|
14758
|
+
kind: "binary",
|
|
14759
|
+
op: "<",
|
|
14760
|
+
left: { kind: "ident", name: idxName },
|
|
14761
|
+
right: { kind: "ident", name: lenName }
|
|
14762
|
+
},
|
|
14763
|
+
body,
|
|
14764
|
+
step,
|
|
14765
|
+
span: stmt.span
|
|
14766
|
+
};
|
|
14767
|
+
return [lenInitStmt, idxInitStmt, whileStmt];
|
|
13857
14768
|
}
|
|
13858
|
-
|
|
13859
|
-
|
|
13860
|
-
|
|
13861
|
-
|
|
13862
|
-
|
|
13863
|
-
|
|
13864
|
-
|
|
13865
|
-
|
|
13866
|
-
|
|
13867
|
-
|
|
13868
|
-
|
|
13869
|
-
|
|
13870
|
-
|
|
13871
|
-
|
|
13872
|
-
|
|
13873
|
-
|
|
13874
|
-
|
|
13875
|
-
|
|
13876
|
-
|
|
13877
|
-
|
|
13878
|
-
|
|
13879
|
-
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
14769
|
+
case "foreach":
|
|
14770
|
+
return {
|
|
14771
|
+
kind: "foreach",
|
|
14772
|
+
binding: stmt.binding,
|
|
14773
|
+
iterable: lowerExpr(stmt.iterable),
|
|
14774
|
+
body: lowerBlock(stmt.body),
|
|
14775
|
+
executeContext: stmt.executeContext,
|
|
14776
|
+
span: stmt.span
|
|
14777
|
+
};
|
|
14778
|
+
case "match":
|
|
14779
|
+
return {
|
|
14780
|
+
kind: "match",
|
|
14781
|
+
expr: lowerExpr(stmt.expr),
|
|
14782
|
+
arms: stmt.arms.map((arm) => ({
|
|
14783
|
+
pattern: lowerMatchPattern(arm.pattern),
|
|
14784
|
+
body: lowerBlock(arm.body)
|
|
14785
|
+
})),
|
|
14786
|
+
span: stmt.span
|
|
14787
|
+
};
|
|
14788
|
+
// --- Desugaring: as_block → execute [as] ---
|
|
14789
|
+
case "as_block":
|
|
14790
|
+
return {
|
|
14791
|
+
kind: "execute",
|
|
14792
|
+
subcommands: [{ kind: "as", selector: stmt.selector }],
|
|
14793
|
+
body: lowerBlock(stmt.body),
|
|
14794
|
+
span: stmt.span
|
|
14795
|
+
};
|
|
14796
|
+
// --- Desugaring: at_block → execute [at] ---
|
|
14797
|
+
case "at_block":
|
|
14798
|
+
return {
|
|
14799
|
+
kind: "execute",
|
|
14800
|
+
subcommands: [{ kind: "at", selector: stmt.selector }],
|
|
14801
|
+
body: lowerBlock(stmt.body),
|
|
14802
|
+
span: stmt.span
|
|
14803
|
+
};
|
|
14804
|
+
// --- Desugaring: as_at → execute [as, at] ---
|
|
14805
|
+
case "as_at":
|
|
14806
|
+
return {
|
|
14807
|
+
kind: "execute",
|
|
14808
|
+
subcommands: [
|
|
14809
|
+
{ kind: "as", selector: stmt.as_sel },
|
|
14810
|
+
{ kind: "at", selector: stmt.at_sel }
|
|
14811
|
+
],
|
|
14812
|
+
body: lowerBlock(stmt.body),
|
|
14813
|
+
span: stmt.span
|
|
14814
|
+
};
|
|
14815
|
+
case "execute":
|
|
14816
|
+
return {
|
|
14817
|
+
kind: "execute",
|
|
14818
|
+
subcommands: stmt.subcommands.map(lowerExecuteSubcommand),
|
|
14819
|
+
body: lowerBlock(stmt.body),
|
|
14820
|
+
span: stmt.span
|
|
14821
|
+
};
|
|
14822
|
+
case "raw":
|
|
14823
|
+
return { kind: "raw", cmd: stmt.cmd, span: stmt.span };
|
|
14824
|
+
case "if_let_some":
|
|
14825
|
+
return {
|
|
14826
|
+
kind: "if_let_some",
|
|
14827
|
+
binding: stmt.binding,
|
|
14828
|
+
init: lowerExpr(stmt.init),
|
|
14829
|
+
then: lowerBlock(stmt.then),
|
|
14830
|
+
else_: stmt.else_ ? lowerBlock(stmt.else_) : void 0,
|
|
14831
|
+
span: stmt.span
|
|
14832
|
+
};
|
|
14833
|
+
// --- Desugaring: do_while → body + while(cond) { body } ---
|
|
14834
|
+
// Emits the body once unconditionally, then a while loop:
|
|
14835
|
+
// <body>
|
|
14836
|
+
// while (cond) { <body> }
|
|
14837
|
+
case "do_while": {
|
|
14838
|
+
const firstBody = lowerBlock(stmt.body);
|
|
14839
|
+
const loopBody = lowerBlock(stmt.body);
|
|
14840
|
+
const whileStmt = {
|
|
14841
|
+
kind: "while",
|
|
14842
|
+
cond: lowerExpr(stmt.cond),
|
|
14843
|
+
body: loopBody,
|
|
14844
|
+
span: stmt.span
|
|
14845
|
+
};
|
|
14846
|
+
return [...firstBody, whileStmt];
|
|
14847
|
+
}
|
|
14848
|
+
// --- Desugaring: repeat N → let __repeat_i = 0; while(__repeat_i < N) { body; __repeat_i = __repeat_i + 1 } ---
|
|
14849
|
+
case "repeat": {
|
|
14850
|
+
const id = repeatCounter++;
|
|
14851
|
+
const idxName = `__repeat_i_${id}`;
|
|
14852
|
+
const initStmt = {
|
|
14853
|
+
kind: "let",
|
|
14854
|
+
name: idxName,
|
|
14855
|
+
type: { kind: "named", name: "int" },
|
|
14856
|
+
init: { kind: "int_lit", value: 0 },
|
|
14857
|
+
span: stmt.span
|
|
14858
|
+
};
|
|
14859
|
+
const body = lowerBlock(stmt.body);
|
|
14860
|
+
const step = [{
|
|
14861
|
+
kind: "expr",
|
|
14862
|
+
expr: {
|
|
14863
|
+
kind: "assign",
|
|
14864
|
+
target: idxName,
|
|
14865
|
+
value: {
|
|
14866
|
+
kind: "binary",
|
|
14867
|
+
op: "+",
|
|
14868
|
+
left: { kind: "ident", name: idxName },
|
|
14869
|
+
right: { kind: "int_lit", value: 1 }
|
|
14870
|
+
}
|
|
14871
|
+
}
|
|
14872
|
+
}];
|
|
14873
|
+
const whileStmt = {
|
|
14874
|
+
kind: "while",
|
|
14875
|
+
cond: {
|
|
14876
|
+
kind: "binary",
|
|
14877
|
+
op: "<",
|
|
14878
|
+
left: { kind: "ident", name: idxName },
|
|
14879
|
+
right: { kind: "int_lit", value: stmt.count }
|
|
14880
|
+
},
|
|
14881
|
+
body,
|
|
14882
|
+
step,
|
|
14883
|
+
span: stmt.span
|
|
14884
|
+
};
|
|
14885
|
+
return [initStmt, whileStmt];
|
|
13885
14886
|
}
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
14887
|
+
case "while_let_some":
|
|
14888
|
+
return {
|
|
14889
|
+
kind: "while_let_some",
|
|
14890
|
+
binding: stmt.binding,
|
|
14891
|
+
init: lowerExpr(stmt.init),
|
|
14892
|
+
body: lowerBlock(stmt.body),
|
|
14893
|
+
span: stmt.span
|
|
14894
|
+
};
|
|
14895
|
+
default: {
|
|
14896
|
+
const _exhaustive = stmt;
|
|
14897
|
+
throw new Error(`Unknown statement kind: ${_exhaustive.kind}`);
|
|
13889
14898
|
}
|
|
13890
14899
|
}
|
|
13891
|
-
return extra;
|
|
13892
14900
|
}
|
|
13893
|
-
|
|
13894
|
-
|
|
13895
|
-
var parsedDocs = /* @__PURE__ */ new Map();
|
|
13896
|
-
function typeToString(t) {
|
|
13897
|
-
switch (t.kind) {
|
|
13898
|
-
case "named":
|
|
13899
|
-
return t.name;
|
|
13900
|
-
case "array":
|
|
13901
|
-
return `${typeToString(t.elem)}[]`;
|
|
13902
|
-
case "struct":
|
|
13903
|
-
return t.name;
|
|
13904
|
-
case "enum":
|
|
13905
|
-
return t.name;
|
|
13906
|
-
case "entity":
|
|
13907
|
-
return t.entityType;
|
|
13908
|
-
case "selector":
|
|
13909
|
-
return t.entityType ? `selector<${t.entityType}>` : "selector";
|
|
13910
|
-
case "tuple":
|
|
13911
|
-
return `(${t.elements.map(typeToString).join(", ")})`;
|
|
13912
|
-
case "function_type":
|
|
13913
|
-
return `(${t.params.map(typeToString).join(", ")}) => ${typeToString(t.return)}`;
|
|
13914
|
-
default:
|
|
13915
|
-
return "unknown";
|
|
13916
|
-
}
|
|
14901
|
+
function lowerExecuteSubcommand(sub) {
|
|
14902
|
+
return sub;
|
|
13917
14903
|
}
|
|
13918
|
-
|
|
13919
|
-
|
|
13920
|
-
|
|
13921
|
-
|
|
13922
|
-
|
|
13923
|
-
|
|
13924
|
-
|
|
13925
|
-
|
|
13926
|
-
|
|
13927
|
-
|
|
13928
|
-
|
|
13929
|
-
|
|
13930
|
-
|
|
13931
|
-
|
|
14904
|
+
var forEachCounter = 0;
|
|
14905
|
+
var repeatCounter = 0;
|
|
14906
|
+
var COMPOUND_TO_BINOP = {
|
|
14907
|
+
"+=": "+",
|
|
14908
|
+
"-=": "-",
|
|
14909
|
+
"*=": "*",
|
|
14910
|
+
"/=": "/",
|
|
14911
|
+
"%=": "%"
|
|
14912
|
+
};
|
|
14913
|
+
function lowerExpr(expr) {
|
|
14914
|
+
switch (expr.kind) {
|
|
14915
|
+
// --- Pass-through literals ---
|
|
14916
|
+
case "int_lit":
|
|
14917
|
+
case "float_lit":
|
|
14918
|
+
case "byte_lit":
|
|
14919
|
+
case "short_lit":
|
|
14920
|
+
case "long_lit":
|
|
14921
|
+
case "double_lit":
|
|
14922
|
+
case "bool_lit":
|
|
14923
|
+
case "str_lit":
|
|
14924
|
+
case "range_lit":
|
|
14925
|
+
case "rel_coord":
|
|
14926
|
+
case "local_coord":
|
|
14927
|
+
case "mc_name":
|
|
14928
|
+
case "blockpos":
|
|
14929
|
+
return expr;
|
|
14930
|
+
case "ident":
|
|
14931
|
+
return { kind: "ident", name: expr.name, span: expr.span };
|
|
14932
|
+
case "selector":
|
|
14933
|
+
return { kind: "selector", raw: expr.raw, isSingle: expr.isSingle, sel: expr.sel, span: expr.span };
|
|
14934
|
+
case "array_lit":
|
|
14935
|
+
return { kind: "array_lit", elements: expr.elements.map(lowerExpr), span: expr.span };
|
|
14936
|
+
case "struct_lit":
|
|
14937
|
+
return {
|
|
14938
|
+
kind: "struct_lit",
|
|
14939
|
+
fields: expr.fields.map((f) => ({ name: f.name, value: lowerExpr(f.value) })),
|
|
14940
|
+
span: expr.span
|
|
14941
|
+
};
|
|
14942
|
+
case "str_interp":
|
|
14943
|
+
return {
|
|
14944
|
+
kind: "str_interp",
|
|
14945
|
+
parts: expr.parts.map((p) => typeof p === "string" ? p : lowerExpr(p)),
|
|
14946
|
+
span: expr.span
|
|
14947
|
+
};
|
|
14948
|
+
case "f_string": {
|
|
14949
|
+
const hirParts = expr.parts.map(
|
|
14950
|
+
(part) => part.kind === "text" ? { kind: "text", value: part.value } : { kind: "expr", expr: lowerExpr(part.expr) }
|
|
14951
|
+
);
|
|
14952
|
+
return { kind: "f_string", parts: hirParts, span: expr.span };
|
|
13932
14953
|
}
|
|
13933
|
-
|
|
13934
|
-
|
|
13935
|
-
|
|
13936
|
-
|
|
13937
|
-
|
|
13938
|
-
|
|
13939
|
-
|
|
13940
|
-
|
|
13941
|
-
|
|
14954
|
+
// Binary ops — && and || preserved as-is (short-circuit → control flow in MIR)
|
|
14955
|
+
case "binary":
|
|
14956
|
+
return {
|
|
14957
|
+
kind: "binary",
|
|
14958
|
+
op: expr.op,
|
|
14959
|
+
left: lowerExpr(expr.left),
|
|
14960
|
+
right: lowerExpr(expr.right),
|
|
14961
|
+
span: expr.span
|
|
14962
|
+
};
|
|
14963
|
+
case "unary":
|
|
14964
|
+
return { kind: "unary", op: expr.op, operand: lowerExpr(expr.operand), span: expr.span };
|
|
14965
|
+
case "is_check":
|
|
14966
|
+
return { kind: "is_check", expr: lowerExpr(expr.expr), entityType: expr.entityType, span: expr.span };
|
|
14967
|
+
// --- Desugaring: compound assignment → plain assign ---
|
|
14968
|
+
case "assign":
|
|
14969
|
+
if (expr.op !== "=") {
|
|
14970
|
+
const binOp = COMPOUND_TO_BINOP[expr.op];
|
|
14971
|
+
return {
|
|
14972
|
+
kind: "assign",
|
|
14973
|
+
target: expr.target,
|
|
14974
|
+
value: {
|
|
14975
|
+
kind: "binary",
|
|
14976
|
+
op: binOp,
|
|
14977
|
+
left: { kind: "ident", name: expr.target },
|
|
14978
|
+
right: lowerExpr(expr.value),
|
|
14979
|
+
span: expr.span
|
|
14980
|
+
},
|
|
14981
|
+
span: expr.span
|
|
14982
|
+
};
|
|
14983
|
+
}
|
|
14984
|
+
return { kind: "assign", target: expr.target, value: lowerExpr(expr.value), span: expr.span };
|
|
14985
|
+
// --- Desugaring: compound member_assign → plain member_assign ---
|
|
14986
|
+
case "member_assign":
|
|
14987
|
+
if (expr.op !== "=") {
|
|
14988
|
+
const binOp = COMPOUND_TO_BINOP[expr.op];
|
|
14989
|
+
const obj = lowerExpr(expr.obj);
|
|
14990
|
+
return {
|
|
14991
|
+
kind: "member_assign",
|
|
14992
|
+
obj,
|
|
14993
|
+
field: expr.field,
|
|
14994
|
+
value: {
|
|
14995
|
+
kind: "binary",
|
|
14996
|
+
op: binOp,
|
|
14997
|
+
left: { kind: "member", obj, field: expr.field },
|
|
14998
|
+
right: lowerExpr(expr.value),
|
|
14999
|
+
span: expr.span
|
|
15000
|
+
},
|
|
15001
|
+
span: expr.span
|
|
15002
|
+
};
|
|
15003
|
+
}
|
|
15004
|
+
return {
|
|
15005
|
+
kind: "member_assign",
|
|
15006
|
+
obj: lowerExpr(expr.obj),
|
|
15007
|
+
field: expr.field,
|
|
15008
|
+
value: lowerExpr(expr.value),
|
|
15009
|
+
span: expr.span
|
|
15010
|
+
};
|
|
15011
|
+
case "member":
|
|
15012
|
+
return { kind: "member", obj: lowerExpr(expr.obj), field: expr.field, span: expr.span };
|
|
15013
|
+
case "index":
|
|
15014
|
+
return { kind: "index", obj: lowerExpr(expr.obj), index: lowerExpr(expr.index), span: expr.span };
|
|
15015
|
+
// --- Desugaring: compound index_assign → plain index_assign ---
|
|
15016
|
+
case "index_assign":
|
|
15017
|
+
if (expr.op !== "=") {
|
|
15018
|
+
const binOp = COMPOUND_TO_BINOP[expr.op];
|
|
15019
|
+
const obj = lowerExpr(expr.obj);
|
|
15020
|
+
const index = lowerExpr(expr.index);
|
|
15021
|
+
return {
|
|
15022
|
+
kind: "index_assign",
|
|
15023
|
+
obj,
|
|
15024
|
+
index,
|
|
15025
|
+
op: "=",
|
|
15026
|
+
value: {
|
|
15027
|
+
kind: "binary",
|
|
15028
|
+
op: binOp,
|
|
15029
|
+
left: { kind: "index", obj, index },
|
|
15030
|
+
right: lowerExpr(expr.value),
|
|
15031
|
+
span: expr.span
|
|
15032
|
+
},
|
|
15033
|
+
span: expr.span
|
|
15034
|
+
};
|
|
15035
|
+
}
|
|
15036
|
+
return {
|
|
15037
|
+
kind: "index_assign",
|
|
15038
|
+
obj: lowerExpr(expr.obj),
|
|
15039
|
+
index: lowerExpr(expr.index),
|
|
15040
|
+
op: expr.op,
|
|
15041
|
+
value: lowerExpr(expr.value),
|
|
15042
|
+
span: expr.span
|
|
15043
|
+
};
|
|
15044
|
+
case "call":
|
|
15045
|
+
return { kind: "call", fn: expr.fn, args: expr.args.map(lowerExpr), typeArgs: expr.typeArgs, span: expr.span };
|
|
15046
|
+
case "invoke":
|
|
15047
|
+
return { kind: "invoke", callee: lowerExpr(expr.callee), args: expr.args.map(lowerExpr), span: expr.span };
|
|
15048
|
+
case "static_call":
|
|
15049
|
+
return {
|
|
15050
|
+
kind: "static_call",
|
|
15051
|
+
type: expr.type,
|
|
15052
|
+
method: expr.method,
|
|
15053
|
+
args: expr.args.map(lowerExpr),
|
|
15054
|
+
span: expr.span
|
|
15055
|
+
};
|
|
15056
|
+
case "path_expr":
|
|
15057
|
+
return { kind: "path_expr", enumName: expr.enumName, variant: expr.variant, span: expr.span };
|
|
15058
|
+
case "enum_construct":
|
|
15059
|
+
return {
|
|
15060
|
+
kind: "enum_construct",
|
|
15061
|
+
enumName: expr.enumName,
|
|
15062
|
+
variant: expr.variant,
|
|
15063
|
+
args: expr.args.map((a) => ({ name: a.name, value: lowerExpr(a.value) })),
|
|
15064
|
+
span: expr.span
|
|
15065
|
+
};
|
|
15066
|
+
case "tuple_lit":
|
|
15067
|
+
return { kind: "tuple_lit", elements: expr.elements.map(lowerExpr), span: expr.span };
|
|
15068
|
+
case "some_lit":
|
|
15069
|
+
return { kind: "some_lit", value: lowerExpr(expr.value), span: expr.span };
|
|
15070
|
+
case "none_lit":
|
|
15071
|
+
return { kind: "none_lit", span: expr.span };
|
|
15072
|
+
case "unwrap_or":
|
|
15073
|
+
return { kind: "unwrap_or", opt: lowerExpr(expr.opt), default_: lowerExpr(expr.default_), span: expr.span };
|
|
15074
|
+
case "type_cast":
|
|
15075
|
+
return { kind: "type_cast", expr: lowerExpr(expr.expr), targetType: expr.targetType, span: expr.span };
|
|
15076
|
+
case "lambda": {
|
|
15077
|
+
const body = Array.isArray(expr.body) ? lowerBlock(expr.body) : lowerExpr(expr.body);
|
|
15078
|
+
return {
|
|
15079
|
+
kind: "lambda",
|
|
15080
|
+
params: expr.params,
|
|
15081
|
+
returnType: expr.returnType,
|
|
15082
|
+
body,
|
|
15083
|
+
span: expr.span
|
|
15084
|
+
};
|
|
15085
|
+
}
|
|
15086
|
+
default: {
|
|
15087
|
+
const _exhaustive = expr;
|
|
15088
|
+
throw new Error(`Unknown expression kind: ${_exhaustive.kind}`);
|
|
13942
15089
|
}
|
|
13943
15090
|
}
|
|
13944
|
-
const doc = { program, errors, source };
|
|
13945
|
-
parsedDocs.set(uri, doc);
|
|
13946
|
-
return doc;
|
|
13947
15091
|
}
|
|
13948
|
-
|
|
13949
|
-
|
|
13950
|
-
|
|
15092
|
+
|
|
15093
|
+
// ../../src/lint/index.ts
|
|
15094
|
+
function lintSource(source, imports, hir, options = {}) {
|
|
15095
|
+
const warnings = [];
|
|
15096
|
+
const file = options.filePath;
|
|
15097
|
+
const maxLines = options.maxFunctionLines ?? 50;
|
|
15098
|
+
warnings.push(...checkUnusedImports(imports, hir, file));
|
|
15099
|
+
for (const fn of hir.functions) {
|
|
15100
|
+
if (fn.isLibraryFn) continue;
|
|
15101
|
+
warnings.push(...checkUnusedVariables(fn, file));
|
|
15102
|
+
warnings.push(...checkMagicNumbers(fn, file));
|
|
15103
|
+
warnings.push(...checkDeadBranches(fn, file));
|
|
15104
|
+
const fnWarning = checkFunctionLength(fn, maxLines, file);
|
|
15105
|
+
if (fnWarning) warnings.push(fnWarning);
|
|
15106
|
+
}
|
|
15107
|
+
return warnings;
|
|
15108
|
+
}
|
|
15109
|
+
function lintString(source, filePath, namespace = "redscript", options = {}) {
|
|
15110
|
+
const lexer = new Lexer(source);
|
|
15111
|
+
const tokens = lexer.tokenize();
|
|
15112
|
+
const parser = new Parser(tokens, source, namespace);
|
|
15113
|
+
const ast = parser.parse(namespace);
|
|
15114
|
+
const hir = lowerToHIR(ast);
|
|
15115
|
+
return lintSource(source, ast.imports, hir, { ...options, filePath });
|
|
15116
|
+
}
|
|
15117
|
+
function checkUnusedImports(imports, hir, file) {
|
|
15118
|
+
const warnings = [];
|
|
15119
|
+
const calledNames = /* @__PURE__ */ new Set();
|
|
15120
|
+
for (const fn of hir.functions) {
|
|
15121
|
+
collectCalledNames(fn.body, calledNames);
|
|
15122
|
+
}
|
|
15123
|
+
for (const imp of imports) {
|
|
15124
|
+
if (!imp.symbol || imp.symbol === "*") continue;
|
|
15125
|
+
if (!calledNames.has(imp.symbol)) {
|
|
15126
|
+
const warn = {
|
|
15127
|
+
rule: "unused-import",
|
|
15128
|
+
message: `Import "${imp.symbol}" from "${imp.moduleName}" is never used`,
|
|
15129
|
+
file
|
|
15130
|
+
};
|
|
15131
|
+
if (imp.span) {
|
|
15132
|
+
warn.line = imp.span.line;
|
|
15133
|
+
warn.col = imp.span.col;
|
|
15134
|
+
}
|
|
15135
|
+
warnings.push(warn);
|
|
15136
|
+
}
|
|
15137
|
+
}
|
|
15138
|
+
return warnings;
|
|
15139
|
+
}
|
|
15140
|
+
function collectCalledNames(block, out) {
|
|
15141
|
+
for (const stmt of block) {
|
|
15142
|
+
collectCalledNamesStmt(stmt, out);
|
|
15143
|
+
}
|
|
15144
|
+
}
|
|
15145
|
+
function collectCalledNamesStmt(stmt, out) {
|
|
15146
|
+
switch (stmt.kind) {
|
|
15147
|
+
case "let":
|
|
15148
|
+
collectCalledNamesExpr(stmt.init, out);
|
|
15149
|
+
break;
|
|
15150
|
+
case "const_decl":
|
|
15151
|
+
collectCalledNamesExpr(stmt.value, out);
|
|
15152
|
+
break;
|
|
15153
|
+
case "let_destruct":
|
|
15154
|
+
collectCalledNamesExpr(stmt.init, out);
|
|
15155
|
+
break;
|
|
15156
|
+
case "expr":
|
|
15157
|
+
case "return":
|
|
15158
|
+
if (stmt.kind === "return" && stmt.value) collectCalledNamesExpr(stmt.value, out);
|
|
15159
|
+
if (stmt.kind === "expr") collectCalledNamesExpr(stmt.expr, out);
|
|
15160
|
+
break;
|
|
15161
|
+
case "if":
|
|
15162
|
+
collectCalledNamesExpr(stmt.cond, out);
|
|
15163
|
+
collectCalledNames(stmt.then, out);
|
|
15164
|
+
if (stmt.else_) collectCalledNames(stmt.else_, out);
|
|
15165
|
+
break;
|
|
15166
|
+
case "while":
|
|
15167
|
+
collectCalledNamesExpr(stmt.cond, out);
|
|
15168
|
+
collectCalledNames(stmt.body, out);
|
|
15169
|
+
if (stmt.step) collectCalledNames(stmt.step, out);
|
|
15170
|
+
break;
|
|
15171
|
+
case "foreach":
|
|
15172
|
+
collectCalledNamesExpr(stmt.iterable, out);
|
|
15173
|
+
collectCalledNames(stmt.body, out);
|
|
15174
|
+
break;
|
|
15175
|
+
case "match":
|
|
15176
|
+
collectCalledNamesExpr(stmt.expr, out);
|
|
15177
|
+
for (const arm of stmt.arms) collectCalledNames(arm.body, out);
|
|
15178
|
+
break;
|
|
15179
|
+
case "execute":
|
|
15180
|
+
collectCalledNames(stmt.body, out);
|
|
15181
|
+
break;
|
|
15182
|
+
case "if_let_some":
|
|
15183
|
+
collectCalledNamesExpr(stmt.init, out);
|
|
15184
|
+
collectCalledNames(stmt.then, out);
|
|
15185
|
+
if (stmt.else_) collectCalledNames(stmt.else_, out);
|
|
15186
|
+
break;
|
|
15187
|
+
case "while_let_some":
|
|
15188
|
+
collectCalledNamesExpr(stmt.init, out);
|
|
15189
|
+
collectCalledNames(stmt.body, out);
|
|
15190
|
+
break;
|
|
15191
|
+
case "labeled_loop":
|
|
15192
|
+
collectCalledNamesStmt(stmt.body, out);
|
|
15193
|
+
break;
|
|
15194
|
+
}
|
|
15195
|
+
}
|
|
15196
|
+
function collectCalledNamesExpr(expr, out) {
|
|
15197
|
+
if (!expr) return;
|
|
15198
|
+
switch (expr.kind) {
|
|
15199
|
+
case "call":
|
|
15200
|
+
out.add(expr.fn);
|
|
15201
|
+
for (const arg of expr.args) collectCalledNamesExpr(arg, out);
|
|
15202
|
+
break;
|
|
15203
|
+
case "invoke":
|
|
15204
|
+
collectCalledNamesExpr(expr.callee, out);
|
|
15205
|
+
for (const arg of expr.args) collectCalledNamesExpr(arg, out);
|
|
15206
|
+
break;
|
|
15207
|
+
case "static_call":
|
|
15208
|
+
out.add(expr.method);
|
|
15209
|
+
for (const arg of expr.args) collectCalledNamesExpr(arg, out);
|
|
15210
|
+
break;
|
|
15211
|
+
case "binary":
|
|
15212
|
+
collectCalledNamesExpr(expr.left, out);
|
|
15213
|
+
collectCalledNamesExpr(expr.right, out);
|
|
15214
|
+
break;
|
|
15215
|
+
case "unary":
|
|
15216
|
+
collectCalledNamesExpr(expr.operand, out);
|
|
15217
|
+
break;
|
|
15218
|
+
case "member":
|
|
15219
|
+
case "member_assign":
|
|
15220
|
+
collectCalledNamesExpr(expr.obj, out);
|
|
15221
|
+
if (expr.kind === "member_assign") collectCalledNamesExpr(expr.value, out);
|
|
15222
|
+
break;
|
|
15223
|
+
case "index":
|
|
15224
|
+
case "index_assign":
|
|
15225
|
+
collectCalledNamesExpr(expr.obj, out);
|
|
15226
|
+
collectCalledNamesExpr(expr.index, out);
|
|
15227
|
+
if (expr.kind === "index_assign") collectCalledNamesExpr(expr.value, out);
|
|
15228
|
+
break;
|
|
15229
|
+
case "assign":
|
|
15230
|
+
collectCalledNamesExpr(expr.value, out);
|
|
15231
|
+
break;
|
|
15232
|
+
case "some_lit":
|
|
15233
|
+
collectCalledNamesExpr(expr.value, out);
|
|
15234
|
+
break;
|
|
15235
|
+
case "unwrap_or":
|
|
15236
|
+
collectCalledNamesExpr(expr.opt, out);
|
|
15237
|
+
collectCalledNamesExpr(expr.default_, out);
|
|
15238
|
+
break;
|
|
15239
|
+
case "type_cast":
|
|
15240
|
+
collectCalledNamesExpr(expr.expr, out);
|
|
15241
|
+
break;
|
|
15242
|
+
case "array_lit":
|
|
15243
|
+
case "tuple_lit":
|
|
15244
|
+
for (const e of expr.elements) collectCalledNamesExpr(e, out);
|
|
15245
|
+
break;
|
|
15246
|
+
case "struct_lit":
|
|
15247
|
+
for (const f of expr.fields) collectCalledNamesExpr(f.value, out);
|
|
15248
|
+
break;
|
|
15249
|
+
case "str_interp":
|
|
15250
|
+
for (const p of expr.parts) {
|
|
15251
|
+
if (typeof p !== "string") collectCalledNamesExpr(p, out);
|
|
15252
|
+
}
|
|
15253
|
+
break;
|
|
15254
|
+
case "f_string":
|
|
15255
|
+
for (const p of expr.parts) {
|
|
15256
|
+
if (p.kind === "expr") collectCalledNamesExpr(p.expr, out);
|
|
15257
|
+
}
|
|
15258
|
+
break;
|
|
15259
|
+
case "lambda":
|
|
15260
|
+
if (Array.isArray(expr.body)) {
|
|
15261
|
+
collectCalledNames(expr.body, out);
|
|
15262
|
+
} else {
|
|
15263
|
+
collectCalledNamesExpr(expr.body, out);
|
|
15264
|
+
}
|
|
15265
|
+
break;
|
|
15266
|
+
case "enum_construct":
|
|
15267
|
+
for (const f of expr.args) collectCalledNamesExpr(f.value, out);
|
|
15268
|
+
break;
|
|
15269
|
+
// Terminals: ident, int_lit, float_lit, bool_lit, str_lit, etc.
|
|
15270
|
+
default:
|
|
15271
|
+
break;
|
|
15272
|
+
}
|
|
15273
|
+
}
|
|
15274
|
+
function checkUnusedVariables(fn, file) {
|
|
15275
|
+
const warnings = [];
|
|
15276
|
+
const declared = /* @__PURE__ */ new Map();
|
|
15277
|
+
collectLetDecls(fn.body, declared);
|
|
15278
|
+
const reads = /* @__PURE__ */ new Map();
|
|
15279
|
+
countIdentReads(fn.body, reads, new Set(declared.keys()));
|
|
15280
|
+
for (const [name, info] of declared) {
|
|
15281
|
+
const readCount = reads.get(name) ?? 0;
|
|
15282
|
+
if (readCount === 0) {
|
|
15283
|
+
const warn = {
|
|
15284
|
+
rule: "unused-variable",
|
|
15285
|
+
message: `Variable "${name}" is declared but never used`,
|
|
15286
|
+
file
|
|
15287
|
+
};
|
|
15288
|
+
if (info.span) {
|
|
15289
|
+
warn.line = info.span.line;
|
|
15290
|
+
warn.col = info.span.col;
|
|
15291
|
+
}
|
|
15292
|
+
warnings.push(warn);
|
|
15293
|
+
}
|
|
15294
|
+
}
|
|
15295
|
+
return warnings;
|
|
15296
|
+
}
|
|
15297
|
+
function collectLetDecls(block, out) {
|
|
15298
|
+
for (const stmt of block) {
|
|
15299
|
+
if (stmt.kind === "let") {
|
|
15300
|
+
out.set(stmt.name, { name: stmt.name, span: stmt.span, readCount: 0 });
|
|
15301
|
+
collectLetDeclsExpr(stmt.init, out);
|
|
15302
|
+
} else if (stmt.kind === "let_destruct") {
|
|
15303
|
+
for (const name of stmt.names) {
|
|
15304
|
+
out.set(name, { name, span: stmt.span, readCount: 0 });
|
|
15305
|
+
}
|
|
15306
|
+
collectLetDeclsExpr(stmt.init, out);
|
|
15307
|
+
} else if (stmt.kind === "const_decl") {
|
|
15308
|
+
} else {
|
|
15309
|
+
collectLetDeclsStmt(stmt, out);
|
|
15310
|
+
}
|
|
15311
|
+
}
|
|
15312
|
+
}
|
|
15313
|
+
function collectLetDeclsExpr(_expr, _out) {
|
|
15314
|
+
}
|
|
15315
|
+
function collectLetDeclsStmt(stmt, out) {
|
|
15316
|
+
switch (stmt.kind) {
|
|
15317
|
+
case "if":
|
|
15318
|
+
collectLetDecls(stmt.then, out);
|
|
15319
|
+
if (stmt.else_) collectLetDecls(stmt.else_, out);
|
|
15320
|
+
break;
|
|
15321
|
+
case "while":
|
|
15322
|
+
collectLetDecls(stmt.body, out);
|
|
15323
|
+
if (stmt.step) collectLetDecls(stmt.step, out);
|
|
15324
|
+
break;
|
|
15325
|
+
case "foreach":
|
|
15326
|
+
out.set(stmt.binding, { name: stmt.binding, span: stmt.span, readCount: 0 });
|
|
15327
|
+
collectLetDecls(stmt.body, out);
|
|
15328
|
+
break;
|
|
15329
|
+
case "match":
|
|
15330
|
+
for (const arm of stmt.arms) collectLetDecls(arm.body, out);
|
|
15331
|
+
break;
|
|
15332
|
+
case "execute":
|
|
15333
|
+
collectLetDecls(stmt.body, out);
|
|
15334
|
+
break;
|
|
15335
|
+
case "if_let_some":
|
|
15336
|
+
out.set(stmt.binding, { name: stmt.binding, span: stmt.span, readCount: 0 });
|
|
15337
|
+
collectLetDecls(stmt.then, out);
|
|
15338
|
+
if (stmt.else_) collectLetDecls(stmt.else_, out);
|
|
15339
|
+
break;
|
|
15340
|
+
case "while_let_some":
|
|
15341
|
+
out.set(stmt.binding, { name: stmt.binding, span: stmt.span, readCount: 0 });
|
|
15342
|
+
collectLetDecls(stmt.body, out);
|
|
15343
|
+
break;
|
|
15344
|
+
case "labeled_loop":
|
|
15345
|
+
collectLetDeclsStmt(stmt.body, out);
|
|
15346
|
+
break;
|
|
15347
|
+
}
|
|
15348
|
+
}
|
|
15349
|
+
function countIdentReads(block, out, declared) {
|
|
15350
|
+
for (const stmt of block) {
|
|
15351
|
+
countIdentReadsStmt(stmt, out, declared);
|
|
15352
|
+
}
|
|
15353
|
+
}
|
|
15354
|
+
function countIdentReadsStmt(stmt, out, declared) {
|
|
15355
|
+
switch (stmt.kind) {
|
|
15356
|
+
case "let":
|
|
15357
|
+
countIdentReadsExpr(stmt.init, out, declared);
|
|
15358
|
+
break;
|
|
15359
|
+
case "let_destruct":
|
|
15360
|
+
countIdentReadsExpr(stmt.init, out, declared);
|
|
15361
|
+
break;
|
|
15362
|
+
case "const_decl":
|
|
15363
|
+
countIdentReadsExpr(stmt.value, out, declared);
|
|
15364
|
+
break;
|
|
15365
|
+
case "expr":
|
|
15366
|
+
countIdentReadsExpr(stmt.expr, out, declared);
|
|
15367
|
+
break;
|
|
15368
|
+
case "return":
|
|
15369
|
+
if (stmt.value) countIdentReadsExpr(stmt.value, out, declared);
|
|
15370
|
+
break;
|
|
15371
|
+
case "if":
|
|
15372
|
+
countIdentReadsExpr(stmt.cond, out, declared);
|
|
15373
|
+
countIdentReads(stmt.then, out, declared);
|
|
15374
|
+
if (stmt.else_) countIdentReads(stmt.else_, out, declared);
|
|
15375
|
+
break;
|
|
15376
|
+
case "while":
|
|
15377
|
+
countIdentReadsExpr(stmt.cond, out, declared);
|
|
15378
|
+
countIdentReads(stmt.body, out, declared);
|
|
15379
|
+
if (stmt.step) countIdentReads(stmt.step, out, declared);
|
|
15380
|
+
break;
|
|
15381
|
+
case "foreach":
|
|
15382
|
+
countIdentReadsExpr(stmt.iterable, out, declared);
|
|
15383
|
+
countIdentReads(stmt.body, out, declared);
|
|
15384
|
+
break;
|
|
15385
|
+
case "match":
|
|
15386
|
+
countIdentReadsExpr(stmt.expr, out, declared);
|
|
15387
|
+
for (const arm of stmt.arms) countIdentReads(arm.body, out, declared);
|
|
15388
|
+
break;
|
|
15389
|
+
case "execute":
|
|
15390
|
+
countIdentReads(stmt.body, out, declared);
|
|
15391
|
+
break;
|
|
15392
|
+
case "if_let_some":
|
|
15393
|
+
countIdentReadsExpr(stmt.init, out, declared);
|
|
15394
|
+
countIdentReads(stmt.then, out, declared);
|
|
15395
|
+
if (stmt.else_) countIdentReads(stmt.else_, out, declared);
|
|
15396
|
+
break;
|
|
15397
|
+
case "while_let_some":
|
|
15398
|
+
countIdentReadsExpr(stmt.init, out, declared);
|
|
15399
|
+
countIdentReads(stmt.body, out, declared);
|
|
15400
|
+
break;
|
|
15401
|
+
case "labeled_loop":
|
|
15402
|
+
countIdentReadsStmt(stmt.body, out, declared);
|
|
15403
|
+
break;
|
|
15404
|
+
}
|
|
15405
|
+
}
|
|
15406
|
+
function countIdentReadsExpr(expr, out, declared) {
|
|
15407
|
+
if (!expr) return;
|
|
15408
|
+
switch (expr.kind) {
|
|
15409
|
+
case "ident":
|
|
15410
|
+
if (declared.has(expr.name)) {
|
|
15411
|
+
out.set(expr.name, (out.get(expr.name) ?? 0) + 1);
|
|
15412
|
+
}
|
|
15413
|
+
break;
|
|
15414
|
+
case "assign":
|
|
15415
|
+
countIdentReadsExpr(expr.value, out, declared);
|
|
15416
|
+
break;
|
|
15417
|
+
case "binary":
|
|
15418
|
+
countIdentReadsExpr(expr.left, out, declared);
|
|
15419
|
+
countIdentReadsExpr(expr.right, out, declared);
|
|
15420
|
+
break;
|
|
15421
|
+
case "unary":
|
|
15422
|
+
countIdentReadsExpr(expr.operand, out, declared);
|
|
15423
|
+
break;
|
|
15424
|
+
case "call":
|
|
15425
|
+
for (const arg of expr.args) countIdentReadsExpr(arg, out, declared);
|
|
15426
|
+
break;
|
|
15427
|
+
case "invoke":
|
|
15428
|
+
countIdentReadsExpr(expr.callee, out, declared);
|
|
15429
|
+
for (const arg of expr.args) countIdentReadsExpr(arg, out, declared);
|
|
15430
|
+
break;
|
|
15431
|
+
case "static_call":
|
|
15432
|
+
for (const arg of expr.args) countIdentReadsExpr(arg, out, declared);
|
|
15433
|
+
break;
|
|
15434
|
+
case "member":
|
|
15435
|
+
countIdentReadsExpr(expr.obj, out, declared);
|
|
15436
|
+
break;
|
|
15437
|
+
case "member_assign":
|
|
15438
|
+
countIdentReadsExpr(expr.obj, out, declared);
|
|
15439
|
+
countIdentReadsExpr(expr.value, out, declared);
|
|
15440
|
+
break;
|
|
15441
|
+
case "index":
|
|
15442
|
+
countIdentReadsExpr(expr.obj, out, declared);
|
|
15443
|
+
countIdentReadsExpr(expr.index, out, declared);
|
|
15444
|
+
break;
|
|
15445
|
+
case "index_assign":
|
|
15446
|
+
countIdentReadsExpr(expr.obj, out, declared);
|
|
15447
|
+
countIdentReadsExpr(expr.index, out, declared);
|
|
15448
|
+
countIdentReadsExpr(expr.value, out, declared);
|
|
15449
|
+
break;
|
|
15450
|
+
case "some_lit":
|
|
15451
|
+
countIdentReadsExpr(expr.value, out, declared);
|
|
15452
|
+
break;
|
|
15453
|
+
case "unwrap_or":
|
|
15454
|
+
countIdentReadsExpr(expr.opt, out, declared);
|
|
15455
|
+
countIdentReadsExpr(expr.default_, out, declared);
|
|
15456
|
+
break;
|
|
15457
|
+
case "type_cast":
|
|
15458
|
+
countIdentReadsExpr(expr.expr, out, declared);
|
|
15459
|
+
break;
|
|
15460
|
+
case "array_lit":
|
|
15461
|
+
case "tuple_lit":
|
|
15462
|
+
for (const e of expr.elements) countIdentReadsExpr(e, out, declared);
|
|
15463
|
+
break;
|
|
15464
|
+
case "struct_lit":
|
|
15465
|
+
for (const f of expr.fields) countIdentReadsExpr(f.value, out, declared);
|
|
15466
|
+
break;
|
|
15467
|
+
case "str_interp":
|
|
15468
|
+
for (const p of expr.parts) {
|
|
15469
|
+
if (typeof p !== "string") countIdentReadsExpr(p, out, declared);
|
|
15470
|
+
}
|
|
15471
|
+
break;
|
|
15472
|
+
case "f_string":
|
|
15473
|
+
for (const p of expr.parts) {
|
|
15474
|
+
if (p.kind === "expr") countIdentReadsExpr(p.expr, out, declared);
|
|
15475
|
+
}
|
|
15476
|
+
break;
|
|
15477
|
+
case "lambda":
|
|
15478
|
+
if (Array.isArray(expr.body)) {
|
|
15479
|
+
countIdentReads(expr.body, out, declared);
|
|
15480
|
+
} else {
|
|
15481
|
+
countIdentReadsExpr(expr.body, out, declared);
|
|
15482
|
+
}
|
|
15483
|
+
break;
|
|
15484
|
+
case "enum_construct":
|
|
15485
|
+
for (const f of expr.args) countIdentReadsExpr(f.value, out, declared);
|
|
15486
|
+
break;
|
|
15487
|
+
default:
|
|
15488
|
+
break;
|
|
15489
|
+
}
|
|
15490
|
+
}
|
|
15491
|
+
function checkMagicNumbers(fn, file) {
|
|
15492
|
+
const warnings = [];
|
|
15493
|
+
checkMagicNumbersBlock(
|
|
15494
|
+
fn.body,
|
|
15495
|
+
warnings,
|
|
15496
|
+
file,
|
|
15497
|
+
/*inConst=*/
|
|
15498
|
+
false
|
|
15499
|
+
);
|
|
15500
|
+
return warnings;
|
|
15501
|
+
}
|
|
15502
|
+
var MAGIC_NUMBER_THRESHOLD = 1;
|
|
15503
|
+
function isMagicNumber(value) {
|
|
15504
|
+
return Math.abs(value) > MAGIC_NUMBER_THRESHOLD;
|
|
15505
|
+
}
|
|
15506
|
+
function checkMagicNumbersBlock(block, out, file, inConst) {
|
|
15507
|
+
for (const stmt of block) {
|
|
15508
|
+
checkMagicNumbersStmt(stmt, out, file, inConst);
|
|
15509
|
+
}
|
|
15510
|
+
}
|
|
15511
|
+
function checkMagicNumbersStmt(stmt, out, file, inConst) {
|
|
15512
|
+
switch (stmt.kind) {
|
|
15513
|
+
case "const_decl":
|
|
15514
|
+
break;
|
|
15515
|
+
case "let":
|
|
15516
|
+
checkMagicNumbersExpr(stmt.init, out, file);
|
|
15517
|
+
break;
|
|
15518
|
+
case "let_destruct":
|
|
15519
|
+
checkMagicNumbersExpr(stmt.init, out, file);
|
|
15520
|
+
break;
|
|
15521
|
+
case "expr":
|
|
15522
|
+
checkMagicNumbersExpr(stmt.expr, out, file);
|
|
15523
|
+
break;
|
|
15524
|
+
case "return":
|
|
15525
|
+
if (stmt.value) checkMagicNumbersExpr(stmt.value, out, file);
|
|
15526
|
+
break;
|
|
15527
|
+
case "if":
|
|
15528
|
+
checkMagicNumbersExpr(stmt.cond, out, file);
|
|
15529
|
+
checkMagicNumbersBlock(stmt.then, out, file, false);
|
|
15530
|
+
if (stmt.else_) checkMagicNumbersBlock(stmt.else_, out, file, false);
|
|
15531
|
+
break;
|
|
15532
|
+
case "while":
|
|
15533
|
+
checkMagicNumbersExpr(stmt.cond, out, file);
|
|
15534
|
+
checkMagicNumbersBlock(stmt.body, out, file, false);
|
|
15535
|
+
if (stmt.step) checkMagicNumbersBlock(stmt.step, out, file, false);
|
|
15536
|
+
break;
|
|
15537
|
+
case "foreach":
|
|
15538
|
+
checkMagicNumbersExpr(stmt.iterable, out, file);
|
|
15539
|
+
checkMagicNumbersBlock(stmt.body, out, file, false);
|
|
15540
|
+
break;
|
|
15541
|
+
case "match":
|
|
15542
|
+
checkMagicNumbersExpr(stmt.expr, out, file);
|
|
15543
|
+
for (const arm of stmt.arms) checkMagicNumbersBlock(arm.body, out, file, false);
|
|
15544
|
+
break;
|
|
15545
|
+
case "execute":
|
|
15546
|
+
checkMagicNumbersBlock(stmt.body, out, file, false);
|
|
15547
|
+
break;
|
|
15548
|
+
case "if_let_some":
|
|
15549
|
+
checkMagicNumbersExpr(stmt.init, out, file);
|
|
15550
|
+
checkMagicNumbersBlock(stmt.then, out, file, false);
|
|
15551
|
+
if (stmt.else_) checkMagicNumbersBlock(stmt.else_, out, file, false);
|
|
15552
|
+
break;
|
|
15553
|
+
case "while_let_some":
|
|
15554
|
+
checkMagicNumbersExpr(stmt.init, out, file);
|
|
15555
|
+
checkMagicNumbersBlock(stmt.body, out, file, false);
|
|
15556
|
+
break;
|
|
15557
|
+
case "labeled_loop":
|
|
15558
|
+
checkMagicNumbersStmt(stmt.body, out, file, inConst);
|
|
15559
|
+
break;
|
|
15560
|
+
}
|
|
15561
|
+
}
|
|
15562
|
+
function checkMagicNumbersExpr(expr, out, file) {
|
|
15563
|
+
if (!expr) return;
|
|
15564
|
+
switch (expr.kind) {
|
|
15565
|
+
case "int_lit":
|
|
15566
|
+
case "float_lit":
|
|
15567
|
+
case "byte_lit":
|
|
15568
|
+
case "short_lit":
|
|
15569
|
+
case "long_lit":
|
|
15570
|
+
case "double_lit":
|
|
15571
|
+
if (isMagicNumber(expr.value)) {
|
|
15572
|
+
const warn = {
|
|
15573
|
+
rule: "magic-number",
|
|
15574
|
+
message: `Avoid magic number ${expr.value}, consider using a const`,
|
|
15575
|
+
file
|
|
15576
|
+
};
|
|
15577
|
+
if (expr.span) {
|
|
15578
|
+
warn.line = expr.span.line;
|
|
15579
|
+
warn.col = expr.span.col;
|
|
15580
|
+
}
|
|
15581
|
+
out.push(warn);
|
|
15582
|
+
}
|
|
15583
|
+
break;
|
|
15584
|
+
case "binary":
|
|
15585
|
+
checkMagicNumbersExpr(expr.left, out, file);
|
|
15586
|
+
checkMagicNumbersExpr(expr.right, out, file);
|
|
15587
|
+
break;
|
|
15588
|
+
case "unary":
|
|
15589
|
+
checkMagicNumbersExpr(expr.operand, out, file);
|
|
15590
|
+
break;
|
|
15591
|
+
case "call":
|
|
15592
|
+
for (const arg of expr.args) checkMagicNumbersExpr(arg, out, file);
|
|
15593
|
+
break;
|
|
15594
|
+
case "invoke":
|
|
15595
|
+
checkMagicNumbersExpr(expr.callee, out, file);
|
|
15596
|
+
for (const arg of expr.args) checkMagicNumbersExpr(arg, out, file);
|
|
15597
|
+
break;
|
|
15598
|
+
case "static_call":
|
|
15599
|
+
for (const arg of expr.args) checkMagicNumbersExpr(arg, out, file);
|
|
15600
|
+
break;
|
|
15601
|
+
case "member":
|
|
15602
|
+
checkMagicNumbersExpr(expr.obj, out, file);
|
|
15603
|
+
break;
|
|
15604
|
+
case "member_assign":
|
|
15605
|
+
checkMagicNumbersExpr(expr.obj, out, file);
|
|
15606
|
+
checkMagicNumbersExpr(expr.value, out, file);
|
|
15607
|
+
break;
|
|
15608
|
+
case "index":
|
|
15609
|
+
checkMagicNumbersExpr(expr.obj, out, file);
|
|
15610
|
+
checkMagicNumbersExpr(expr.index, out, file);
|
|
15611
|
+
break;
|
|
15612
|
+
case "index_assign":
|
|
15613
|
+
checkMagicNumbersExpr(expr.obj, out, file);
|
|
15614
|
+
checkMagicNumbersExpr(expr.index, out, file);
|
|
15615
|
+
checkMagicNumbersExpr(expr.value, out, file);
|
|
15616
|
+
break;
|
|
15617
|
+
case "assign":
|
|
15618
|
+
checkMagicNumbersExpr(expr.value, out, file);
|
|
15619
|
+
break;
|
|
15620
|
+
case "some_lit":
|
|
15621
|
+
checkMagicNumbersExpr(expr.value, out, file);
|
|
15622
|
+
break;
|
|
15623
|
+
case "unwrap_or":
|
|
15624
|
+
checkMagicNumbersExpr(expr.opt, out, file);
|
|
15625
|
+
checkMagicNumbersExpr(expr.default_, out, file);
|
|
15626
|
+
break;
|
|
15627
|
+
case "type_cast":
|
|
15628
|
+
checkMagicNumbersExpr(expr.expr, out, file);
|
|
15629
|
+
break;
|
|
15630
|
+
case "array_lit":
|
|
15631
|
+
case "tuple_lit":
|
|
15632
|
+
for (const e of expr.elements) checkMagicNumbersExpr(e, out, file);
|
|
15633
|
+
break;
|
|
15634
|
+
case "struct_lit":
|
|
15635
|
+
for (const f of expr.fields) checkMagicNumbersExpr(f.value, out, file);
|
|
15636
|
+
break;
|
|
15637
|
+
case "str_interp":
|
|
15638
|
+
for (const p of expr.parts) {
|
|
15639
|
+
if (typeof p !== "string") checkMagicNumbersExpr(p, out, file);
|
|
15640
|
+
}
|
|
15641
|
+
break;
|
|
15642
|
+
case "f_string":
|
|
15643
|
+
for (const p of expr.parts) {
|
|
15644
|
+
if (p.kind === "expr") checkMagicNumbersExpr(p.expr, out, file);
|
|
15645
|
+
}
|
|
15646
|
+
break;
|
|
15647
|
+
case "lambda":
|
|
15648
|
+
if (Array.isArray(expr.body)) {
|
|
15649
|
+
checkMagicNumbersBlock(expr.body, out, file, false);
|
|
15650
|
+
} else {
|
|
15651
|
+
checkMagicNumbersExpr(expr.body, out, file);
|
|
15652
|
+
}
|
|
15653
|
+
break;
|
|
15654
|
+
case "enum_construct":
|
|
15655
|
+
for (const f of expr.args) checkMagicNumbersExpr(f.value, out, file);
|
|
15656
|
+
break;
|
|
15657
|
+
default:
|
|
15658
|
+
break;
|
|
15659
|
+
}
|
|
15660
|
+
}
|
|
15661
|
+
function checkDeadBranches(fn, file) {
|
|
15662
|
+
const warnings = [];
|
|
15663
|
+
checkDeadBranchesBlock(fn.body, warnings, file);
|
|
15664
|
+
return warnings;
|
|
15665
|
+
}
|
|
15666
|
+
function checkDeadBranchesBlock(block, out, file) {
|
|
15667
|
+
for (const stmt of block) {
|
|
15668
|
+
if (stmt.kind === "if") {
|
|
15669
|
+
const result = evaluateConstBool(stmt.cond);
|
|
15670
|
+
if (result !== null) {
|
|
15671
|
+
const warn = {
|
|
15672
|
+
rule: "dead-branch",
|
|
15673
|
+
message: result ? `Condition is always true \u2014 else branch is dead code` : `Condition is always false \u2014 then branch is dead code`,
|
|
15674
|
+
file
|
|
15675
|
+
};
|
|
15676
|
+
if (stmt.span) {
|
|
15677
|
+
warn.line = stmt.span.line;
|
|
15678
|
+
warn.col = stmt.span.col;
|
|
15679
|
+
} else if (stmt.cond.span) {
|
|
15680
|
+
warn.line = stmt.cond.span.line;
|
|
15681
|
+
warn.col = stmt.cond.span.col;
|
|
15682
|
+
}
|
|
15683
|
+
out.push(warn);
|
|
15684
|
+
}
|
|
15685
|
+
checkDeadBranchesBlock(stmt.then, out, file);
|
|
15686
|
+
if (stmt.else_) checkDeadBranchesBlock(stmt.else_, out, file);
|
|
15687
|
+
} else {
|
|
15688
|
+
checkDeadBranchesStmt(stmt, out, file);
|
|
15689
|
+
}
|
|
15690
|
+
}
|
|
15691
|
+
}
|
|
15692
|
+
function checkDeadBranchesStmt(stmt, out, file) {
|
|
15693
|
+
switch (stmt.kind) {
|
|
15694
|
+
case "while":
|
|
15695
|
+
checkDeadBranchesBlock(stmt.body, out, file);
|
|
15696
|
+
if (stmt.step) checkDeadBranchesBlock(stmt.step, out, file);
|
|
15697
|
+
break;
|
|
15698
|
+
case "foreach":
|
|
15699
|
+
checkDeadBranchesBlock(stmt.body, out, file);
|
|
15700
|
+
break;
|
|
15701
|
+
case "match":
|
|
15702
|
+
for (const arm of stmt.arms) checkDeadBranchesBlock(arm.body, out, file);
|
|
15703
|
+
break;
|
|
15704
|
+
case "execute":
|
|
15705
|
+
checkDeadBranchesBlock(stmt.body, out, file);
|
|
15706
|
+
break;
|
|
15707
|
+
case "if_let_some":
|
|
15708
|
+
checkDeadBranchesBlock(stmt.then, out, file);
|
|
15709
|
+
if (stmt.else_) checkDeadBranchesBlock(stmt.else_, out, file);
|
|
15710
|
+
break;
|
|
15711
|
+
case "while_let_some":
|
|
15712
|
+
checkDeadBranchesBlock(stmt.body, out, file);
|
|
15713
|
+
break;
|
|
15714
|
+
case "labeled_loop":
|
|
15715
|
+
checkDeadBranchesStmt(stmt.body, out, file);
|
|
15716
|
+
break;
|
|
15717
|
+
}
|
|
15718
|
+
}
|
|
15719
|
+
function evaluateConstBool(expr) {
|
|
15720
|
+
if (expr.kind === "bool_lit") return expr.value;
|
|
15721
|
+
if (expr.kind === "binary") {
|
|
15722
|
+
const lv = evaluateConstNumber(expr.left);
|
|
15723
|
+
const rv = evaluateConstNumber(expr.right);
|
|
15724
|
+
if (lv !== null && rv !== null) {
|
|
15725
|
+
switch (expr.op) {
|
|
15726
|
+
case "==":
|
|
15727
|
+
return lv === rv;
|
|
15728
|
+
case "!=":
|
|
15729
|
+
return lv !== rv;
|
|
15730
|
+
case "<":
|
|
15731
|
+
return lv < rv;
|
|
15732
|
+
case "<=":
|
|
15733
|
+
return lv <= rv;
|
|
15734
|
+
case ">":
|
|
15735
|
+
return lv > rv;
|
|
15736
|
+
case ">=":
|
|
15737
|
+
return lv >= rv;
|
|
15738
|
+
}
|
|
15739
|
+
}
|
|
15740
|
+
const lb = evaluateConstBool(expr.left);
|
|
15741
|
+
const rb = evaluateConstBool(expr.right);
|
|
15742
|
+
if (lb !== null && rb !== null) {
|
|
15743
|
+
if (expr.op === "==") return lb === rb;
|
|
15744
|
+
if (expr.op === "!=") return lb !== rb;
|
|
15745
|
+
}
|
|
15746
|
+
}
|
|
15747
|
+
return null;
|
|
15748
|
+
}
|
|
15749
|
+
function evaluateConstNumber(expr) {
|
|
15750
|
+
switch (expr.kind) {
|
|
15751
|
+
case "int_lit":
|
|
15752
|
+
case "float_lit":
|
|
15753
|
+
case "byte_lit":
|
|
15754
|
+
case "short_lit":
|
|
15755
|
+
case "long_lit":
|
|
15756
|
+
case "double_lit":
|
|
15757
|
+
return expr.value;
|
|
15758
|
+
default:
|
|
15759
|
+
return null;
|
|
15760
|
+
}
|
|
15761
|
+
}
|
|
15762
|
+
function checkFunctionLength(fn, maxLines, file) {
|
|
15763
|
+
const lineCount = countFunctionLines(fn);
|
|
15764
|
+
if (lineCount > maxLines) {
|
|
15765
|
+
const warn = {
|
|
15766
|
+
rule: "function-too-long",
|
|
15767
|
+
message: `Function "${fn.name}" is ${lineCount} lines long (max ${maxLines}), consider splitting it`,
|
|
15768
|
+
file
|
|
15769
|
+
};
|
|
15770
|
+
if (fn.span) {
|
|
15771
|
+
warn.line = fn.span.line;
|
|
15772
|
+
warn.col = fn.span.col;
|
|
15773
|
+
}
|
|
15774
|
+
return warn;
|
|
15775
|
+
}
|
|
15776
|
+
return null;
|
|
15777
|
+
}
|
|
15778
|
+
function countFunctionLines(fn) {
|
|
15779
|
+
if (fn.span && fn.body.length > 0) {
|
|
15780
|
+
const lastStmt = fn.body[fn.body.length - 1];
|
|
15781
|
+
if (lastStmt.span && fn.span.line) {
|
|
15782
|
+
const endLine = lastStmt.span.line;
|
|
15783
|
+
const startLine = fn.span.line;
|
|
15784
|
+
if (endLine > startLine) return endLine - startLine;
|
|
15785
|
+
}
|
|
15786
|
+
}
|
|
15787
|
+
return countStmts(fn.body);
|
|
15788
|
+
}
|
|
15789
|
+
function countStmts(block) {
|
|
15790
|
+
let count = 0;
|
|
15791
|
+
for (const stmt of block) {
|
|
15792
|
+
count++;
|
|
15793
|
+
switch (stmt.kind) {
|
|
15794
|
+
case "if":
|
|
15795
|
+
count += countStmts(stmt.then);
|
|
15796
|
+
if (stmt.else_) count += countStmts(stmt.else_);
|
|
15797
|
+
break;
|
|
15798
|
+
case "while":
|
|
15799
|
+
count += countStmts(stmt.body);
|
|
15800
|
+
if (stmt.step) count += countStmts(stmt.step);
|
|
15801
|
+
break;
|
|
15802
|
+
case "foreach":
|
|
15803
|
+
count += countStmts(stmt.body);
|
|
15804
|
+
break;
|
|
15805
|
+
case "match":
|
|
15806
|
+
for (const arm of stmt.arms) count += countStmts(arm.body);
|
|
15807
|
+
break;
|
|
15808
|
+
case "execute":
|
|
15809
|
+
count += countStmts(stmt.body);
|
|
15810
|
+
break;
|
|
15811
|
+
case "if_let_some":
|
|
15812
|
+
count += countStmts(stmt.then);
|
|
15813
|
+
if (stmt.else_) count += countStmts(stmt.else_);
|
|
15814
|
+
break;
|
|
15815
|
+
case "while_let_some":
|
|
15816
|
+
count += countStmts(stmt.body);
|
|
15817
|
+
break;
|
|
15818
|
+
case "labeled_loop":
|
|
15819
|
+
count += countStmts([stmt.body]);
|
|
15820
|
+
break;
|
|
15821
|
+
}
|
|
15822
|
+
}
|
|
15823
|
+
return count;
|
|
15824
|
+
}
|
|
15825
|
+
|
|
15826
|
+
// ../../src/lsp/rename.ts
|
|
15827
|
+
function keyFor(line, col) {
|
|
15828
|
+
return `${line}:${col}`;
|
|
15829
|
+
}
|
|
15830
|
+
function buildTokenCursor(source) {
|
|
15831
|
+
const tokens = new Lexer(source).tokenize().filter((token) => token.kind !== "eof");
|
|
15832
|
+
const byLineCol = /* @__PURE__ */ new Map();
|
|
15833
|
+
tokens.forEach((token, index) => byLineCol.set(keyFor(token.line, token.col), index));
|
|
15834
|
+
return { tokens, byLineCol };
|
|
15835
|
+
}
|
|
15836
|
+
function tokenToRange(doc, token) {
|
|
15837
|
+
const start = doc.positionAt(doc.offsetAt({ line: token.line - 1, character: token.col - 1 }));
|
|
15838
|
+
const end = doc.positionAt(doc.offsetAt({ line: token.line - 1, character: token.col - 1 }) + token.value.length);
|
|
15839
|
+
return { start, end };
|
|
15840
|
+
}
|
|
15841
|
+
function containsPosition(token, position) {
|
|
15842
|
+
const line = token.line - 1;
|
|
15843
|
+
const start = token.col - 1;
|
|
15844
|
+
const end = start + token.value.length;
|
|
15845
|
+
return position.line === line && position.character >= start && position.character <= end;
|
|
15846
|
+
}
|
|
15847
|
+
function makeScope(parent) {
|
|
15848
|
+
return {
|
|
15849
|
+
parent,
|
|
15850
|
+
locals: /* @__PURE__ */ new Map(),
|
|
15851
|
+
types: /* @__PURE__ */ new Map()
|
|
15852
|
+
};
|
|
15853
|
+
}
|
|
15854
|
+
function resolveLocal(scope, name) {
|
|
15855
|
+
let cur = scope;
|
|
15856
|
+
while (cur) {
|
|
15857
|
+
const found = cur.locals.get(name);
|
|
15858
|
+
if (found) return found;
|
|
15859
|
+
cur = cur.parent;
|
|
15860
|
+
}
|
|
15861
|
+
return null;
|
|
15862
|
+
}
|
|
15863
|
+
function resolveType(scope, name) {
|
|
15864
|
+
let cur = scope;
|
|
15865
|
+
while (cur) {
|
|
15866
|
+
const found = cur.types.get(name);
|
|
15867
|
+
if (found) return found;
|
|
15868
|
+
cur = cur.parent;
|
|
15869
|
+
}
|
|
15870
|
+
return null;
|
|
15871
|
+
}
|
|
15872
|
+
function findTokenIndex(cursor, line, col) {
|
|
15873
|
+
return cursor.byLineCol.get(keyFor(line, col)) ?? -1;
|
|
15874
|
+
}
|
|
15875
|
+
function findNextToken(cursor, startIndex, predicate) {
|
|
15876
|
+
for (let i = Math.max(0, startIndex); i < cursor.tokens.length; i++) {
|
|
15877
|
+
if (predicate(cursor.tokens[i], i)) return cursor.tokens[i];
|
|
15878
|
+
}
|
|
15879
|
+
return null;
|
|
15880
|
+
}
|
|
15881
|
+
function findFunctionNameToken(cursor, fn) {
|
|
15882
|
+
if (!fn.span) return null;
|
|
15883
|
+
const fnIndex = findTokenIndex(cursor, fn.span.line, fn.span.col);
|
|
15884
|
+
if (fnIndex === -1) return null;
|
|
15885
|
+
return findNextToken(cursor, fnIndex + 1, (token) => token.kind === "ident" && token.value === fn.name);
|
|
15886
|
+
}
|
|
15887
|
+
function findDeclarationNameToken(cursor, stmt) {
|
|
15888
|
+
if (!stmt.span) return null;
|
|
15889
|
+
const startIndex = findTokenIndex(cursor, stmt.span.line, stmt.span.col);
|
|
15890
|
+
if (startIndex === -1) return null;
|
|
15891
|
+
return findNextToken(
|
|
15892
|
+
cursor,
|
|
15893
|
+
startIndex + 1,
|
|
15894
|
+
(token) => token.kind === "ident" && token.value === stmt.name && token.line === stmt.span.line
|
|
15895
|
+
);
|
|
15896
|
+
}
|
|
15897
|
+
function findFieldDeclarationTokens(cursor, program) {
|
|
15898
|
+
const result = /* @__PURE__ */ new Map();
|
|
15899
|
+
for (const struct of program.structs ?? []) {
|
|
15900
|
+
if (!struct.span) continue;
|
|
15901
|
+
const structIndex = findTokenIndex(cursor, struct.span.line, struct.span.col);
|
|
15902
|
+
if (structIndex === -1) continue;
|
|
15903
|
+
let i = structIndex;
|
|
15904
|
+
while (i < cursor.tokens.length && cursor.tokens[i].kind !== "{") i++;
|
|
15905
|
+
if (i >= cursor.tokens.length) continue;
|
|
15906
|
+
let fieldIndex = 0;
|
|
15907
|
+
let depth = 1;
|
|
15908
|
+
i++;
|
|
15909
|
+
while (i < cursor.tokens.length && depth > 0 && fieldIndex < struct.fields.length) {
|
|
15910
|
+
const token = cursor.tokens[i];
|
|
15911
|
+
if (token.kind === "{") depth++;
|
|
15912
|
+
else if (token.kind === "}") depth--;
|
|
15913
|
+
else if (depth === 1 && token.kind === "ident" && token.value === struct.fields[fieldIndex].name && cursor.tokens[i + 1]?.kind === ":") {
|
|
15914
|
+
result.set(`${struct.name}.${token.value}`, token);
|
|
15915
|
+
fieldIndex++;
|
|
15916
|
+
}
|
|
15917
|
+
i++;
|
|
15918
|
+
}
|
|
15919
|
+
}
|
|
15920
|
+
return result;
|
|
15921
|
+
}
|
|
15922
|
+
function findParamToken(cursor, fn, paramName, fromIndex) {
|
|
15923
|
+
return findNextToken(
|
|
15924
|
+
cursor,
|
|
15925
|
+
fromIndex,
|
|
15926
|
+
(token) => token.kind === "ident" && token.value === paramName && cursor.tokens[cursor.tokens.indexOf(token) + 1]?.kind === ":"
|
|
15927
|
+
);
|
|
15928
|
+
}
|
|
15929
|
+
function findFieldAccessToken(cursor, expr) {
|
|
15930
|
+
if (!expr.span) return null;
|
|
15931
|
+
const startIndex = findTokenIndex(cursor, expr.span.line, expr.span.col);
|
|
15932
|
+
if (startIndex === -1) return null;
|
|
15933
|
+
return findNextToken(
|
|
15934
|
+
cursor,
|
|
15935
|
+
startIndex + 1,
|
|
15936
|
+
(token, index) => token.kind === "ident" && token.value === expr.field && cursor.tokens[index - 1]?.kind === "." && token.line === expr.span.line
|
|
15937
|
+
);
|
|
15938
|
+
}
|
|
15939
|
+
function findStructLiteralFieldToken(cursor, expr, fieldName, skipCount) {
|
|
15940
|
+
if (!expr.span) return null;
|
|
15941
|
+
const startIndex = findTokenIndex(cursor, expr.span.line, expr.span.col);
|
|
15942
|
+
if (startIndex === -1) return null;
|
|
15943
|
+
let depth = 0;
|
|
15944
|
+
let skipped = 0;
|
|
15945
|
+
for (let i = startIndex; i < cursor.tokens.length; i++) {
|
|
15946
|
+
const token = cursor.tokens[i];
|
|
15947
|
+
if (token.kind === "{") depth++;
|
|
15948
|
+
else if (token.kind === "}") {
|
|
15949
|
+
depth--;
|
|
15950
|
+
if (depth === 0) break;
|
|
15951
|
+
} else if (depth === 1 && token.kind === "ident" && token.value === fieldName && cursor.tokens[i + 1]?.kind === ":") {
|
|
15952
|
+
if (skipped === skipCount) return token;
|
|
15953
|
+
skipped++;
|
|
15954
|
+
}
|
|
15955
|
+
}
|
|
15956
|
+
return null;
|
|
15957
|
+
}
|
|
15958
|
+
function typeNameOf(type, program) {
|
|
15959
|
+
if (!type) return null;
|
|
15960
|
+
if (type.kind === "struct") return type.name;
|
|
15961
|
+
if (type.kind === "named" && program.structs?.some((struct) => struct.name === type.name)) return type.name;
|
|
15962
|
+
return null;
|
|
15963
|
+
}
|
|
15964
|
+
function resolveExprStructName(expr, scope, program, currentFn) {
|
|
15965
|
+
switch (expr.kind) {
|
|
15966
|
+
case "ident":
|
|
15967
|
+
return typeNameOf(resolveType(scope, expr.name), program);
|
|
15968
|
+
case "member": {
|
|
15969
|
+
const objType = resolveExprStructName(expr.obj, scope, program, currentFn);
|
|
15970
|
+
if (!objType) return null;
|
|
15971
|
+
const structDecl = program.structs?.find((struct) => struct.name === objType);
|
|
15972
|
+
const fieldType = structDecl?.fields.find((field) => field.name === expr.field)?.type;
|
|
15973
|
+
return typeNameOf(fieldType, program);
|
|
15974
|
+
}
|
|
15975
|
+
case "call": {
|
|
15976
|
+
const fn = program.declarations.find((candidate) => candidate.name === expr.fn);
|
|
15977
|
+
return typeNameOf(fn?.returnType, program);
|
|
15978
|
+
}
|
|
15979
|
+
case "type_cast":
|
|
15980
|
+
return typeNameOf(expr.targetType, program);
|
|
15981
|
+
case "struct_lit":
|
|
15982
|
+
return typeNameOf(currentFn.returnType, program);
|
|
15983
|
+
default:
|
|
15984
|
+
return null;
|
|
15985
|
+
}
|
|
15986
|
+
}
|
|
15987
|
+
function addOccurrence(symbol, token) {
|
|
15988
|
+
if (!symbol || !token) return;
|
|
15989
|
+
if (symbol.occurrences.some((existing) => existing.line === token.line && existing.col === token.col)) return;
|
|
15990
|
+
symbol.occurrences.push(token);
|
|
15991
|
+
}
|
|
15992
|
+
function buildRenameIndex(source, program) {
|
|
15993
|
+
const cursor = buildTokenCursor(source);
|
|
15994
|
+
const symbols = [];
|
|
15995
|
+
const functions = /* @__PURE__ */ new Map();
|
|
15996
|
+
const fieldSymbols = /* @__PURE__ */ new Map();
|
|
15997
|
+
const fieldDeclTokens = findFieldDeclarationTokens(cursor, program);
|
|
15998
|
+
for (const fn of program.declarations) {
|
|
15999
|
+
const symbol = { kind: "function", name: fn.name, occurrences: [] };
|
|
16000
|
+
addOccurrence(symbol, findFunctionNameToken(cursor, fn));
|
|
16001
|
+
functions.set(fn.name, symbol);
|
|
16002
|
+
symbols.push(symbol);
|
|
16003
|
+
}
|
|
16004
|
+
for (const struct of program.structs ?? []) {
|
|
16005
|
+
for (const field of struct.fields) {
|
|
16006
|
+
const symbol = {
|
|
16007
|
+
kind: "field",
|
|
16008
|
+
name: field.name,
|
|
16009
|
+
structName: struct.name,
|
|
16010
|
+
occurrences: []
|
|
16011
|
+
};
|
|
16012
|
+
addOccurrence(symbol, fieldDeclTokens.get(`${struct.name}.${field.name}`) ?? null);
|
|
16013
|
+
fieldSymbols.set(`${struct.name}.${field.name}`, symbol);
|
|
16014
|
+
symbols.push(symbol);
|
|
16015
|
+
}
|
|
16016
|
+
}
|
|
16017
|
+
function walkBlock(block, scope, currentFn) {
|
|
16018
|
+
for (const stmt of block) walkStmt(stmt, scope, currentFn);
|
|
16019
|
+
}
|
|
16020
|
+
function bindLocal(name, type, token, scope) {
|
|
16021
|
+
const symbol = { kind: "local", name, occurrences: [] };
|
|
16022
|
+
addOccurrence(symbol, token);
|
|
16023
|
+
scope.locals.set(name, symbol);
|
|
16024
|
+
if (type) scope.types.set(name, type);
|
|
16025
|
+
symbols.push(symbol);
|
|
16026
|
+
return symbol;
|
|
16027
|
+
}
|
|
16028
|
+
function walkPattern(pattern, scope, currentFn) {
|
|
16029
|
+
if (pattern.kind === "PatSome") {
|
|
16030
|
+
bindLocal(pattern.binding, void 0, null, scope);
|
|
16031
|
+
} else if (pattern.kind === "PatEnum") {
|
|
16032
|
+
for (const binding of pattern.bindings) bindLocal(binding, void 0, null, scope);
|
|
16033
|
+
} else if (pattern.kind === "PatExpr") {
|
|
16034
|
+
walkExpr(pattern.expr, scope, null, currentFn);
|
|
16035
|
+
}
|
|
16036
|
+
}
|
|
16037
|
+
function walkStmt(stmt, scope, currentFn) {
|
|
16038
|
+
switch (stmt.kind) {
|
|
16039
|
+
case "let": {
|
|
16040
|
+
walkExpr(stmt.init, scope, stmt.type ? typeNameOf(stmt.type, program) : null, currentFn);
|
|
16041
|
+
const inferredType = stmt.type ?? (() => {
|
|
16042
|
+
const inferredStruct = resolveExprStructName(stmt.init, scope, program, currentFn);
|
|
16043
|
+
return inferredStruct ? { kind: "struct", name: inferredStruct } : void 0;
|
|
16044
|
+
})();
|
|
16045
|
+
bindLocal(stmt.name, inferredType, findDeclarationNameToken(cursor, stmt), scope);
|
|
16046
|
+
return;
|
|
16047
|
+
}
|
|
16048
|
+
case "const_decl":
|
|
16049
|
+
walkExpr(stmt.value, scope, null, currentFn);
|
|
16050
|
+
bindLocal(stmt.name, stmt.type, findDeclarationNameToken(cursor, stmt), scope);
|
|
16051
|
+
return;
|
|
16052
|
+
case "let_destruct":
|
|
16053
|
+
walkExpr(stmt.init, scope, null, currentFn);
|
|
16054
|
+
for (const name of stmt.names) bindLocal(name, stmt.type, null, scope);
|
|
16055
|
+
return;
|
|
16056
|
+
case "expr":
|
|
16057
|
+
walkExpr(stmt.expr, scope, null, currentFn);
|
|
16058
|
+
return;
|
|
16059
|
+
case "return":
|
|
16060
|
+
if (stmt.value) walkExpr(stmt.value, scope, typeNameOf(currentFn.returnType, program), currentFn);
|
|
16061
|
+
return;
|
|
16062
|
+
case "if":
|
|
16063
|
+
walkExpr(stmt.cond, scope, null, currentFn);
|
|
16064
|
+
walkBlock(stmt.then, makeScope(scope), currentFn);
|
|
16065
|
+
if (stmt.else_) walkBlock(stmt.else_, makeScope(scope), currentFn);
|
|
16066
|
+
return;
|
|
16067
|
+
case "while":
|
|
16068
|
+
case "do_while":
|
|
16069
|
+
walkExpr(stmt.cond, scope, null, currentFn);
|
|
16070
|
+
walkBlock(stmt.body, makeScope(scope), currentFn);
|
|
16071
|
+
return;
|
|
16072
|
+
case "repeat":
|
|
16073
|
+
case "as_block":
|
|
16074
|
+
case "at_block":
|
|
16075
|
+
case "as_at":
|
|
16076
|
+
case "execute":
|
|
16077
|
+
walkBlock(stmt.body, makeScope(scope), currentFn);
|
|
16078
|
+
return;
|
|
16079
|
+
case "for": {
|
|
16080
|
+
const forScope = makeScope(scope);
|
|
16081
|
+
if (stmt.init) walkStmt(stmt.init, forScope, currentFn);
|
|
16082
|
+
walkExpr(stmt.cond, forScope, null, currentFn);
|
|
16083
|
+
walkExpr(stmt.step, forScope, null, currentFn);
|
|
16084
|
+
walkBlock(stmt.body, forScope, currentFn);
|
|
16085
|
+
return;
|
|
16086
|
+
}
|
|
16087
|
+
case "foreach": {
|
|
16088
|
+
walkExpr(stmt.iterable, scope, null, currentFn);
|
|
16089
|
+
const foreachScope = makeScope(scope);
|
|
16090
|
+
bindLocal(stmt.binding, void 0, null, foreachScope);
|
|
16091
|
+
walkBlock(stmt.body, foreachScope, currentFn);
|
|
16092
|
+
return;
|
|
16093
|
+
}
|
|
16094
|
+
case "for_range": {
|
|
16095
|
+
walkExpr(stmt.start, scope, null, currentFn);
|
|
16096
|
+
walkExpr(stmt.end, scope, null, currentFn);
|
|
16097
|
+
const forScope = makeScope(scope);
|
|
16098
|
+
bindLocal(stmt.varName, { kind: "named", name: "int" }, null, forScope);
|
|
16099
|
+
walkBlock(stmt.body, forScope, currentFn);
|
|
16100
|
+
return;
|
|
16101
|
+
}
|
|
16102
|
+
case "for_each": {
|
|
16103
|
+
walkExpr(stmt.array, scope, null, currentFn);
|
|
16104
|
+
const forScope = makeScope(scope);
|
|
16105
|
+
bindLocal(stmt.binding, void 0, null, forScope);
|
|
16106
|
+
walkBlock(stmt.body, forScope, currentFn);
|
|
16107
|
+
return;
|
|
16108
|
+
}
|
|
16109
|
+
case "for_in_array": {
|
|
16110
|
+
const forScope = makeScope(scope);
|
|
16111
|
+
bindLocal(stmt.binding, void 0, null, forScope);
|
|
16112
|
+
walkExpr(stmt.lenExpr, forScope, null, currentFn);
|
|
16113
|
+
walkBlock(stmt.body, forScope, currentFn);
|
|
16114
|
+
return;
|
|
16115
|
+
}
|
|
16116
|
+
case "match":
|
|
16117
|
+
walkExpr(stmt.expr, scope, null, currentFn);
|
|
16118
|
+
for (const arm of stmt.arms) {
|
|
16119
|
+
const armScope = makeScope(scope);
|
|
16120
|
+
walkPattern(arm.pattern, armScope, currentFn);
|
|
16121
|
+
walkBlock(arm.body, armScope, currentFn);
|
|
16122
|
+
}
|
|
16123
|
+
return;
|
|
16124
|
+
case "if_let_some": {
|
|
16125
|
+
walkExpr(stmt.init, scope, null, currentFn);
|
|
16126
|
+
const thenScope = makeScope(scope);
|
|
16127
|
+
bindLocal(stmt.binding, void 0, null, thenScope);
|
|
16128
|
+
walkBlock(stmt.then, thenScope, currentFn);
|
|
16129
|
+
if (stmt.else_) walkBlock(stmt.else_, makeScope(scope), currentFn);
|
|
16130
|
+
return;
|
|
16131
|
+
}
|
|
16132
|
+
case "while_let_some": {
|
|
16133
|
+
walkExpr(stmt.init, scope, null, currentFn);
|
|
16134
|
+
const whileScope = makeScope(scope);
|
|
16135
|
+
bindLocal(stmt.binding, void 0, null, whileScope);
|
|
16136
|
+
walkBlock(stmt.body, whileScope, currentFn);
|
|
16137
|
+
return;
|
|
16138
|
+
}
|
|
16139
|
+
case "labeled_loop":
|
|
16140
|
+
walkStmt(stmt.body, makeScope(scope), currentFn);
|
|
16141
|
+
return;
|
|
16142
|
+
default:
|
|
16143
|
+
return;
|
|
16144
|
+
}
|
|
16145
|
+
}
|
|
16146
|
+
function walkExpr(expr, scope, expectedStructName, currentFn) {
|
|
16147
|
+
switch (expr.kind) {
|
|
16148
|
+
case "ident":
|
|
16149
|
+
addOccurrence(resolveLocal(scope, expr.name), expr.span ? cursor.tokens[findTokenIndex(cursor, expr.span.line, expr.span.col)] ?? null : null);
|
|
16150
|
+
return;
|
|
16151
|
+
case "assign":
|
|
16152
|
+
addOccurrence(resolveLocal(scope, expr.target), expr.span ? cursor.tokens[findTokenIndex(cursor, expr.span.line, expr.span.col)] ?? null : null);
|
|
16153
|
+
walkExpr(expr.value, scope, null, currentFn);
|
|
16154
|
+
return;
|
|
16155
|
+
case "call":
|
|
16156
|
+
addOccurrence(functions.get(expr.fn) ?? null, expr.span ? cursor.tokens[findTokenIndex(cursor, expr.span.line, expr.span.col)] ?? null : null);
|
|
16157
|
+
for (const arg of expr.args) walkExpr(arg, scope, null, currentFn);
|
|
16158
|
+
return;
|
|
16159
|
+
case "member": {
|
|
16160
|
+
walkExpr(expr.obj, scope, null, currentFn);
|
|
16161
|
+
const structName = resolveExprStructName(expr.obj, scope, program, currentFn);
|
|
16162
|
+
addOccurrence(structName ? fieldSymbols.get(`${structName}.${expr.field}`) ?? null : null, findFieldAccessToken(cursor, expr));
|
|
16163
|
+
return;
|
|
16164
|
+
}
|
|
16165
|
+
case "member_assign": {
|
|
16166
|
+
walkExpr(expr.obj, scope, null, currentFn);
|
|
16167
|
+
const structName = resolveExprStructName(expr.obj, scope, program, currentFn);
|
|
16168
|
+
addOccurrence(structName ? fieldSymbols.get(`${structName}.${expr.field}`) ?? null : null, findFieldAccessToken(cursor, expr));
|
|
16169
|
+
walkExpr(expr.value, scope, structName ? typeNameOf(program.structs?.find((struct) => struct.name === structName)?.fields.find((field) => field.name === expr.field)?.type, program) : null, currentFn);
|
|
16170
|
+
return;
|
|
16171
|
+
}
|
|
16172
|
+
case "struct_lit": {
|
|
16173
|
+
const structName = expectedStructName;
|
|
16174
|
+
if (structName) {
|
|
16175
|
+
expr.fields.forEach((field, index) => {
|
|
16176
|
+
addOccurrence(fieldSymbols.get(`${structName}.${field.name}`) ?? null, findStructLiteralFieldToken(cursor, expr, field.name, index));
|
|
16177
|
+
const fieldType = program.structs?.find((struct) => struct.name === structName)?.fields.find((candidate) => candidate.name === field.name)?.type;
|
|
16178
|
+
walkExpr(field.value, scope, typeNameOf(fieldType, program), currentFn);
|
|
16179
|
+
});
|
|
16180
|
+
} else {
|
|
16181
|
+
for (const field of expr.fields) walkExpr(field.value, scope, null, currentFn);
|
|
16182
|
+
}
|
|
16183
|
+
return;
|
|
16184
|
+
}
|
|
16185
|
+
case "binary":
|
|
16186
|
+
walkExpr(expr.left, scope, null, currentFn);
|
|
16187
|
+
walkExpr(expr.right, scope, null, currentFn);
|
|
16188
|
+
return;
|
|
16189
|
+
case "unary":
|
|
16190
|
+
case "type_cast":
|
|
16191
|
+
walkExpr(expr.kind === "unary" ? expr.operand : expr.expr, scope, null, currentFn);
|
|
16192
|
+
return;
|
|
16193
|
+
case "invoke":
|
|
16194
|
+
walkExpr(expr.callee, scope, null, currentFn);
|
|
16195
|
+
for (const arg of expr.args) walkExpr(arg, scope, null, currentFn);
|
|
16196
|
+
return;
|
|
16197
|
+
case "index":
|
|
16198
|
+
walkExpr(expr.obj, scope, null, currentFn);
|
|
16199
|
+
walkExpr(expr.index, scope, null, currentFn);
|
|
16200
|
+
return;
|
|
16201
|
+
case "index_assign":
|
|
16202
|
+
walkExpr(expr.obj, scope, null, currentFn);
|
|
16203
|
+
walkExpr(expr.index, scope, null, currentFn);
|
|
16204
|
+
walkExpr(expr.value, scope, null, currentFn);
|
|
16205
|
+
return;
|
|
16206
|
+
case "array_lit":
|
|
16207
|
+
case "tuple_lit":
|
|
16208
|
+
for (const item of expr.elements) walkExpr(item, scope, null, currentFn);
|
|
16209
|
+
return;
|
|
16210
|
+
case "enum_construct":
|
|
16211
|
+
for (const arg of expr.args) walkExpr(arg.value, scope, null, currentFn);
|
|
16212
|
+
return;
|
|
16213
|
+
case "some_lit":
|
|
16214
|
+
walkExpr(expr.value, scope, null, currentFn);
|
|
16215
|
+
return;
|
|
16216
|
+
case "unwrap_or":
|
|
16217
|
+
walkExpr(expr.opt, scope, null, currentFn);
|
|
16218
|
+
walkExpr(expr.default_, scope, null, currentFn);
|
|
16219
|
+
return;
|
|
16220
|
+
case "str_interp":
|
|
16221
|
+
for (const part of expr.parts) {
|
|
16222
|
+
if (typeof part !== "string") walkExpr(part, scope, null, currentFn);
|
|
16223
|
+
}
|
|
16224
|
+
return;
|
|
16225
|
+
case "f_string":
|
|
16226
|
+
for (const part of expr.parts) {
|
|
16227
|
+
if (part.kind === "expr") walkExpr(part.expr, scope, null, currentFn);
|
|
16228
|
+
}
|
|
16229
|
+
return;
|
|
16230
|
+
case "lambda": {
|
|
16231
|
+
const lambdaScope = makeScope(scope);
|
|
16232
|
+
let fromIndex = expr.span ? findTokenIndex(cursor, expr.span.line, expr.span.col) : -1;
|
|
16233
|
+
for (const param of expr.params) {
|
|
16234
|
+
const token = findParamToken(cursor, currentFn, param.name, fromIndex + 1);
|
|
16235
|
+
if (token) fromIndex = cursor.tokens.indexOf(token);
|
|
16236
|
+
bindLocal(param.name, param.type, token, lambdaScope);
|
|
16237
|
+
}
|
|
16238
|
+
if (Array.isArray(expr.body)) walkBlock(expr.body, lambdaScope, currentFn);
|
|
16239
|
+
else walkExpr(expr.body, lambdaScope, null, currentFn);
|
|
16240
|
+
return;
|
|
16241
|
+
}
|
|
16242
|
+
default:
|
|
16243
|
+
return;
|
|
16244
|
+
}
|
|
16245
|
+
}
|
|
16246
|
+
for (const fn of program.declarations) {
|
|
16247
|
+
const rootScope = makeScope(null);
|
|
16248
|
+
let fromIndex = findFunctionNameToken(cursor, fn) && cursor.tokens.indexOf(findFunctionNameToken(cursor, fn)) || -1;
|
|
16249
|
+
for (const param of fn.params) {
|
|
16250
|
+
const token = findParamToken(cursor, fn, param.name, fromIndex + 1);
|
|
16251
|
+
if (token) fromIndex = cursor.tokens.indexOf(token);
|
|
16252
|
+
bindLocal(param.name, param.type, token, rootScope);
|
|
16253
|
+
}
|
|
16254
|
+
walkBlock(fn.body, rootScope, fn);
|
|
16255
|
+
}
|
|
16256
|
+
return symbols;
|
|
16257
|
+
}
|
|
16258
|
+
function findRenameRanges(source, program, position) {
|
|
16259
|
+
const doc = TextDocument.create("file:///rename.mcrs", "redscript", 1, source);
|
|
16260
|
+
const symbols = buildRenameIndex(source, program);
|
|
16261
|
+
const symbol = symbols.find((candidate) => candidate.occurrences.some((token) => containsPosition(token, position)));
|
|
16262
|
+
if (!symbol) return [];
|
|
16263
|
+
return symbol.occurrences.slice().sort((a, b) => a.line - b.line || a.col - b.col).map((token) => tokenToRange(doc, token));
|
|
16264
|
+
}
|
|
16265
|
+
function buildRenameWorkspaceEdit(doc, program, position, newName) {
|
|
16266
|
+
const ranges = findRenameRanges(doc.getText(), program, position);
|
|
16267
|
+
if (ranges.length === 0) return null;
|
|
16268
|
+
return {
|
|
16269
|
+
changes: {
|
|
16270
|
+
[doc.uri]: ranges.map((range) => ({ range, newText: newName }))
|
|
16271
|
+
}
|
|
16272
|
+
};
|
|
16273
|
+
}
|
|
16274
|
+
|
|
16275
|
+
// ../../src/lsp/server.ts
|
|
16276
|
+
var connection = (0, import_node.createConnection)(import_node.ProposedFeatures.all);
|
|
16277
|
+
var documents = new import_node.TextDocuments(TextDocument);
|
|
16278
|
+
function loadBuiltinsFromDeclFile() {
|
|
16279
|
+
const extra = {};
|
|
16280
|
+
const candidates = [
|
|
16281
|
+
path.resolve(__dirname, "../../builtins.d.mcrs"),
|
|
16282
|
+
path.resolve(__dirname, "../../../builtins.d.mcrs"),
|
|
16283
|
+
path.resolve(__dirname, "../../../../builtins.d.mcrs")
|
|
16284
|
+
];
|
|
16285
|
+
let src = "";
|
|
16286
|
+
for (const p of candidates) {
|
|
16287
|
+
if (fs.existsSync(p)) {
|
|
16288
|
+
src = fs.readFileSync(p, "utf-8");
|
|
16289
|
+
break;
|
|
16290
|
+
}
|
|
16291
|
+
}
|
|
16292
|
+
if (!src) return extra;
|
|
16293
|
+
const lines = src.split("\n");
|
|
16294
|
+
let docLines = [];
|
|
16295
|
+
let paramDocs = {};
|
|
16296
|
+
for (const line of lines) {
|
|
16297
|
+
const tripleDoc = line.match(/^\/\/\/\s?(.*)$/);
|
|
16298
|
+
if (tripleDoc) {
|
|
16299
|
+
const content = tripleDoc[1];
|
|
16300
|
+
const paramMatch = content.match(/^@param\s+(\w+)\s+(.+)$/);
|
|
16301
|
+
if (paramMatch) {
|
|
16302
|
+
paramDocs[paramMatch[1]] = paramMatch[2];
|
|
16303
|
+
} else if (!content.startsWith("@example")) {
|
|
16304
|
+
docLines.push(content);
|
|
16305
|
+
}
|
|
16306
|
+
continue;
|
|
16307
|
+
}
|
|
16308
|
+
const declMatch = line.match(/^declare fn (\w+)\(([^)]*)\):\s*(\w+);?$/);
|
|
16309
|
+
if (declMatch) {
|
|
16310
|
+
const [, fnName, paramsStr, retType] = declMatch;
|
|
16311
|
+
if (!ALL_BUILTINS[fnName]) {
|
|
16312
|
+
const params = paramsStr.trim() ? paramsStr.split(",").map((p) => {
|
|
16313
|
+
const [pname, ptype] = p.trim().split(":").map((s) => s.trim());
|
|
16314
|
+
return {
|
|
16315
|
+
name: pname ?? "",
|
|
16316
|
+
type: ptype ?? "string",
|
|
16317
|
+
required: true,
|
|
16318
|
+
doc: paramDocs[pname ?? ""] ?? "",
|
|
16319
|
+
docZh: ""
|
|
16320
|
+
};
|
|
16321
|
+
}) : [];
|
|
16322
|
+
extra[fnName] = {
|
|
16323
|
+
name: fnName,
|
|
16324
|
+
params,
|
|
16325
|
+
returns: retType === "void" || retType === "int" || retType === "bool" || retType === "string" ? retType : "void",
|
|
16326
|
+
doc: docLines.join(" ").trim(),
|
|
16327
|
+
docZh: "",
|
|
16328
|
+
examples: [],
|
|
16329
|
+
category: "builtin"
|
|
16330
|
+
};
|
|
16331
|
+
}
|
|
16332
|
+
docLines = [];
|
|
16333
|
+
paramDocs = {};
|
|
16334
|
+
continue;
|
|
16335
|
+
}
|
|
16336
|
+
if (line.trim() && !line.startsWith("//")) {
|
|
16337
|
+
docLines = [];
|
|
16338
|
+
paramDocs = {};
|
|
16339
|
+
}
|
|
16340
|
+
}
|
|
16341
|
+
return extra;
|
|
16342
|
+
}
|
|
16343
|
+
var EXTRA_BUILTINS = loadBuiltinsFromDeclFile();
|
|
16344
|
+
var ALL_BUILTINS = { ...EXTRA_BUILTINS, ...BUILTIN_METADATA };
|
|
16345
|
+
var parsedDocs = /* @__PURE__ */ new Map();
|
|
16346
|
+
function typeToString(t) {
|
|
16347
|
+
switch (t.kind) {
|
|
16348
|
+
case "named":
|
|
16349
|
+
return t.name;
|
|
16350
|
+
case "array":
|
|
16351
|
+
return `${typeToString(t.elem)}[]`;
|
|
16352
|
+
case "struct":
|
|
16353
|
+
return t.name;
|
|
16354
|
+
case "enum":
|
|
16355
|
+
return t.name;
|
|
16356
|
+
case "entity":
|
|
16357
|
+
return t.entityType;
|
|
16358
|
+
case "selector":
|
|
16359
|
+
return t.entityType ? `selector<${t.entityType}>` : "selector";
|
|
16360
|
+
case "tuple":
|
|
16361
|
+
return `(${t.elements.map(typeToString).join(", ")})`;
|
|
16362
|
+
case "function_type":
|
|
16363
|
+
return `(${t.params.map(typeToString).join(", ")}) => ${typeToString(t.return)}`;
|
|
16364
|
+
default:
|
|
16365
|
+
return "unknown";
|
|
16366
|
+
}
|
|
16367
|
+
}
|
|
16368
|
+
function parseDocument(uri, source) {
|
|
16369
|
+
const errors = [];
|
|
16370
|
+
let program = null;
|
|
16371
|
+
try {
|
|
16372
|
+
const strippedSource = source.replace(/^import\s+"[^"]*"\s*;?\s*$/gm, "// (import stripped for LSP)");
|
|
16373
|
+
const lexer = new Lexer(strippedSource);
|
|
16374
|
+
const tokens = lexer.tokenize();
|
|
16375
|
+
const parser = new Parser(tokens, strippedSource, uri);
|
|
16376
|
+
program = parser.parse("redscript");
|
|
16377
|
+
try {
|
|
16378
|
+
const checker = new TypeChecker(source, uri);
|
|
16379
|
+
const typeErrors = checker.check(program);
|
|
16380
|
+
errors.push(...typeErrors);
|
|
16381
|
+
} catch {
|
|
16382
|
+
}
|
|
16383
|
+
} catch (err) {
|
|
16384
|
+
if (err instanceof DiagnosticError) {
|
|
16385
|
+
errors.push(err);
|
|
16386
|
+
} else if (err instanceof Error) {
|
|
16387
|
+
errors.push(new DiagnosticError(
|
|
16388
|
+
"ParseError",
|
|
16389
|
+
err.message,
|
|
16390
|
+
{ line: 1, col: 1, file: uri }
|
|
16391
|
+
));
|
|
16392
|
+
}
|
|
16393
|
+
}
|
|
16394
|
+
const doc = { program, errors, source };
|
|
16395
|
+
parsedDocs.set(uri, doc);
|
|
16396
|
+
return doc;
|
|
16397
|
+
}
|
|
16398
|
+
function toDiagnostic(err) {
|
|
16399
|
+
const line = Math.max(0, (err.location?.line ?? 1) - 1);
|
|
16400
|
+
const col = Math.max(0, (err.location?.col ?? 1) - 1);
|
|
13951
16401
|
return {
|
|
13952
16402
|
severity: import_node.DiagnosticSeverity.Error,
|
|
13953
16403
|
range: {
|
|
@@ -13958,9 +16408,32 @@ function toDiagnostic(err) {
|
|
|
13958
16408
|
source: "redscript"
|
|
13959
16409
|
};
|
|
13960
16410
|
}
|
|
16411
|
+
var LINT_SEVERITY_MAP = {
|
|
16412
|
+
"unused-variable": import_node.DiagnosticSeverity.Information,
|
|
16413
|
+
"magic-number": import_node.DiagnosticSeverity.Hint,
|
|
16414
|
+
"dead-branch": import_node.DiagnosticSeverity.Warning,
|
|
16415
|
+
"unused-import": import_node.DiagnosticSeverity.Information,
|
|
16416
|
+
"function-too-long": import_node.DiagnosticSeverity.Warning
|
|
16417
|
+
};
|
|
16418
|
+
function lintWarningToDiagnostic(w) {
|
|
16419
|
+
const line = Math.max(0, (w.line ?? 1) - 1);
|
|
16420
|
+
const col = Math.max(0, (w.col ?? 1) - 1);
|
|
16421
|
+
const severity = LINT_SEVERITY_MAP[w.rule] ?? import_node.DiagnosticSeverity.Warning;
|
|
16422
|
+
return {
|
|
16423
|
+
severity,
|
|
16424
|
+
range: {
|
|
16425
|
+
start: { line, character: col },
|
|
16426
|
+
end: { line, character: col + 80 }
|
|
16427
|
+
},
|
|
16428
|
+
message: w.message,
|
|
16429
|
+
source: "redscript-lint",
|
|
16430
|
+
code: w.rule
|
|
16431
|
+
};
|
|
16432
|
+
}
|
|
13961
16433
|
var DECORATOR_DOCS = {
|
|
13962
16434
|
tick: "Runs every game tick.\n\n**Optional args:** `rate=N` (every N ticks, e.g. `@tick(rate=20)` = once per second)\n\nExample: `@tick fn every_tick() {}` or `@tick(rate=20) fn every_second() {}`",
|
|
13963
16435
|
load: "Runs once on `/reload`. Use for initialization.\n\nExample: `@load fn init() { scoreboard_create(...) }`",
|
|
16436
|
+
watch: 'Runs when a scoreboard objective changes for a player.\n\n**Required arg:** objective name.\n\nExample: `@watch("rs.kills") fn on_kill_change() {}`',
|
|
13964
16437
|
coroutine: "Wraps a loop to spread execution across multiple ticks.\n\n**Required arg:** `batch=N` \u2014 iterations per tick.\n\nExample: `@coroutine(batch=10) fn scan_blocks() { for i in 0..1000 { ... } }`",
|
|
13965
16438
|
schedule: "Schedules the function to run after a delay.\n\n**Required arg:** `ticks=N`\n\nExample: `@schedule(ticks=100) fn delayed() {}`",
|
|
13966
16439
|
on_trigger: 'Runs when a player executes `/trigger <name>`.\n\n**Required arg:** trigger objective name.\n\nExample: `@on_trigger("shop") fn open_shop() {}`',
|
|
@@ -13997,6 +16470,41 @@ function formatFnSignature(fn) {
|
|
|
13997
16470
|
const typeParams = fn.typeParams?.length ? `<${fn.typeParams.join(", ")}>` : "";
|
|
13998
16471
|
return `fn ${fn.name}${typeParams}(${params}): ${ret}`;
|
|
13999
16472
|
}
|
|
16473
|
+
function parseDocCommentText(raw) {
|
|
16474
|
+
const result = { description: "", params: [], returns: null };
|
|
16475
|
+
const descLines = [];
|
|
16476
|
+
for (const line of raw.split("\n")) {
|
|
16477
|
+
const paramMatch = line.match(/^@param\s+(\w+)\s+(.+)$/);
|
|
16478
|
+
if (paramMatch) {
|
|
16479
|
+
result.params.push({ name: paramMatch[1], doc: paramMatch[2].trim() });
|
|
16480
|
+
continue;
|
|
16481
|
+
}
|
|
16482
|
+
const retMatch = line.match(/^@returns?\s+(.+)$/);
|
|
16483
|
+
if (retMatch) {
|
|
16484
|
+
result.returns = retMatch[1].trim();
|
|
16485
|
+
continue;
|
|
16486
|
+
}
|
|
16487
|
+
if (/^@\w+/.test(line.trim())) continue;
|
|
16488
|
+
descLines.push(line);
|
|
16489
|
+
}
|
|
16490
|
+
result.description = descLines.join("\n").trim();
|
|
16491
|
+
return result;
|
|
16492
|
+
}
|
|
16493
|
+
function formatDocCommentMarkdown(doc) {
|
|
16494
|
+
const parts = [];
|
|
16495
|
+
if (doc.description) parts.push(doc.description);
|
|
16496
|
+
if (doc.params.length > 0) {
|
|
16497
|
+
parts.push("\n**Parameters:**");
|
|
16498
|
+
for (const p of doc.params) {
|
|
16499
|
+
parts.push(`- \`${p.name}\` \u2014 ${p.doc}`);
|
|
16500
|
+
}
|
|
16501
|
+
}
|
|
16502
|
+
if (doc.returns) {
|
|
16503
|
+
parts.push(`
|
|
16504
|
+
**Returns:** ${doc.returns}`);
|
|
16505
|
+
}
|
|
16506
|
+
return parts.join("\n");
|
|
16507
|
+
}
|
|
14000
16508
|
function extractDocComment(source, fn) {
|
|
14001
16509
|
if (!fn.span) return null;
|
|
14002
16510
|
const lines = source.split("\n");
|
|
@@ -14107,6 +16615,7 @@ var TYPE_COMPLETIONS = [
|
|
|
14107
16615
|
}));
|
|
14108
16616
|
var DECORATOR_COMPLETIONS = [
|
|
14109
16617
|
{ label: "@tick", detail: "Run every game tick (~20 Hz)", insertText: "tick" },
|
|
16618
|
+
{ label: "@watch", detail: "Run when a scoreboard objective changes", insertText: "watch" },
|
|
14110
16619
|
{ label: "@load", detail: "Run on /reload (initialization)", insertText: "load" },
|
|
14111
16620
|
{ label: "@on_trigger", detail: "Run when a player uses /trigger", insertText: "on_trigger" },
|
|
14112
16621
|
{ label: "@schedule", detail: "Schedule function after N ticks", insertText: "schedule" },
|
|
@@ -14190,6 +16699,18 @@ function validateAndPublish(doc) {
|
|
|
14190
16699
|
const source = doc.getText();
|
|
14191
16700
|
const parsed = parseDocument(doc.uri, source);
|
|
14192
16701
|
const diagnostics = parsed.errors.map(toDiagnostic);
|
|
16702
|
+
try {
|
|
16703
|
+
const filePath = (() => {
|
|
16704
|
+
try {
|
|
16705
|
+
return (0, import_url.fileURLToPath)(doc.uri);
|
|
16706
|
+
} catch {
|
|
16707
|
+
return doc.uri;
|
|
16708
|
+
}
|
|
16709
|
+
})();
|
|
16710
|
+
const lintWarnings = lintString(source, filePath);
|
|
16711
|
+
diagnostics.push(...lintWarnings.map(lintWarningToDiagnostic));
|
|
16712
|
+
} catch {
|
|
16713
|
+
}
|
|
14193
16714
|
connection.sendDiagnostics({ uri: doc.uri, diagnostics });
|
|
14194
16715
|
}
|
|
14195
16716
|
documents.onDidOpen((e) => validateAndPublish(e.document));
|
|
@@ -14276,11 +16797,20 @@ ${builtin.doc}`
|
|
|
14276
16797
|
const fn = findFunction(program, word);
|
|
14277
16798
|
if (fn) {
|
|
14278
16799
|
const sig = formatFnSignature(fn);
|
|
16800
|
+
const rawDoc = extractDocComment(source, fn);
|
|
16801
|
+
let docSection = "";
|
|
16802
|
+
if (rawDoc) {
|
|
16803
|
+
const parsed = parseDocCommentText(rawDoc);
|
|
16804
|
+
const md = formatDocCommentMarkdown(parsed);
|
|
16805
|
+
if (md) docSection = `
|
|
16806
|
+
|
|
16807
|
+
${md}`;
|
|
16808
|
+
}
|
|
14279
16809
|
const content = {
|
|
14280
16810
|
kind: import_node.MarkupKind.Markdown,
|
|
14281
16811
|
value: `\`\`\`redscript
|
|
14282
16812
|
${sig}
|
|
14283
|
-
|
|
16813
|
+
\`\`\`${docSection}`
|
|
14284
16814
|
};
|
|
14285
16815
|
return { contents: content };
|
|
14286
16816
|
}
|
|
@@ -14835,20 +17365,9 @@ connection.onReferences((params) => {
|
|
|
14835
17365
|
connection.onRenameRequest((params) => {
|
|
14836
17366
|
const doc = documents.get(params.textDocument.uri);
|
|
14837
17367
|
if (!doc) return null;
|
|
14838
|
-
const
|
|
14839
|
-
if (!
|
|
14840
|
-
|
|
14841
|
-
if (!word) return null;
|
|
14842
|
-
const text = doc.getText();
|
|
14843
|
-
const edits = [];
|
|
14844
|
-
const regex = new RegExp(`\\b${word}\\b`, "g");
|
|
14845
|
-
let match;
|
|
14846
|
-
while ((match = regex.exec(text)) !== null) {
|
|
14847
|
-
const start = doc.positionAt(match.index);
|
|
14848
|
-
const end = doc.positionAt(match.index + word.length);
|
|
14849
|
-
edits.push({ range: { start, end }, newText: params.newName });
|
|
14850
|
-
}
|
|
14851
|
-
return { changes: { [params.textDocument.uri]: edits } };
|
|
17368
|
+
const parsed = parsedDocs.get(params.textDocument.uri);
|
|
17369
|
+
if (!parsed?.program) return null;
|
|
17370
|
+
return buildRenameWorkspaceEdit(doc, parsed.program, params.position, params.newName);
|
|
14852
17371
|
});
|
|
14853
17372
|
documents.listen(connection);
|
|
14854
17373
|
connection.listen();
|