From 6d4b49c88b408b8cb88d8f0a61e71431753d0fdd Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Sun, 31 Aug 2025 23:23:38 +0200 Subject: [PATCH] Berry animation improvements to sequence (#23858) --- .../anim_examples/compiled/aurora_borealis.be | 2 +- .../compiled/breathing_colors.be | 2 +- .../anim_examples/compiled/candy_cane.be | 20 +- .../anim_examples/compiled/christmas_tree.be | 10 +- .../anim_examples/compiled/comet_chase.be | 8 +- .../compiled/computed_values_demo.be | 4 +- .../anim_examples/compiled/cylon_generic.be | 2 +- .../anim_examples/compiled/cylon_rainbow.be | 8 +- .../anim_examples/compiled/cylon_red_eye.be | 2 +- .../compiled/demo_pattern_fire_opacity.be | 22 +- .../compiled/demo_shutter_rainbow.be | 138 + .../compiled/demo_shutter_rainbow2.be | 84 + .../anim_examples/compiled/disco_strobe.be | 8 +- .../anim_examples/compiled/fire_flicker.be | 4 +- .../anim_examples/compiled/heartbeat_pulse.be | 10 +- .../anim_examples/compiled/import_demo.be | 2 +- .../anim_examples/compiled/lava_lamp.be | 10 +- .../anim_examples/compiled/lightning_storm.be | 10 +- .../anim_examples/compiled/matrix_rain.be | 10 +- .../anim_examples/compiled/meteor_shower.be | 14 +- .../anim_examples/compiled/neon_glow.be | 12 +- .../anim_examples/compiled/ocean_waves.be | 8 +- .../anim_examples/compiled/palette_demo.be | 2 +- .../compiled/palette_showcase.be | 2 +- .../anim_examples/compiled/plasma_wave.be | 8 +- .../anim_examples/compiled/police_lights.be | 6 +- .../compiled/property_assignment_demo.be | 2 +- .../anim_examples/compiled/rainbow_cycle.be | 2 +- .../anim_examples/compiled/run_tests.sh | 2 +- .../anim_examples/compiled/scanner_larson.be | 6 +- .../compiled/sequence_assignments_demo.be | 48 +- .../anim_examples/compiled/simple_palette.be | 2 +- .../anim_examples/compiled/sunrise_sunset.be | 8 +- .../anim_examples/compiled/swipe_rainbow.be | 4 +- .../compiled/test_complex_template.be | 4 +- .../compiled/test_template_simple.be | 2 +- .../compiled/test_template_simple_reusable.be | 2 +- .../anim_examples/compiled/twinkle_stars.be | 6 +- .../compiled/user_functions_demo.be | 10 +- .../demo_pattern_fire_opacity.anim | 7 +- .../anim_examples/demo_shutter_rainbow.anim | 65 + .../anim_examples/demo_shutter_rainbow2.anim | 32 + .../docs/ANIMATION_CLASS_HIERARCHY.md | 1 + .../docs/ANIMATION_DEVELOPMENT.md | 2 +- .../berry_animation/docs/DSL_REFERENCE.md | 133 +- .../berry_animation/docs/DSL_TRANSPILATION.md | 8 +- lib/libesp32/berry_animation/docs/EXAMPLES.md | 38 +- .../berry_animation/docs/TROUBLESHOOTING.md | 8 +- .../berry_animation/docs/USER_FUNCTIONS.md | 46 + .../src/core/animation_base.be | 37 +- .../src/core/animation_engine.be | 59 +- .../berry_animation/src/core/frame_buffer.be | 74 +- .../src/core/parameterized_object.be | 28 - .../src/core/sequence_manager.be | 50 +- lib/libesp32/berry_animation/src/dsl/token.be | 2 +- .../berry_animation/src/dsl/transpiler.be | 308 +- .../providers/color_cycle_color_provider.be | 14 +- .../src/solidify/solidified_animation.h | 8180 ++++---- .../src/solidify/solidified_animation_dsl.h | 16309 ++++++++-------- .../src/tests/animation_opacity_test.be | 13 + .../src/tests/animation_test.be | 82 - .../tests/color_cycle_palette_size_test.be | 191 + .../src/tests/dsl_core_processing_test.be | 2 +- .../src/tests/dsl_reset_restart_test.be | 397 + .../src/tests/dsl_transpiler_test.be | 101 +- .../src/tests/frame_buffer_test.be | 2 +- .../src/tests/palette_dsl_test.be | 94 +- .../src/tests/parameterized_object_test.be | 6 - .../src/tests/sequence_manager_test.be | 263 +- .../src/tests/static_value_provider_test.be | 6 - .../berry_animation/src/tests/test_all.be | 1 + .../src/tests/value_provider_test.be | 1 - 72 files changed, 14684 insertions(+), 12382 deletions(-) create mode 100644 lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow.be create mode 100644 lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be create mode 100644 lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow.anim create mode 100644 lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim create mode 100644 lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be create mode 100644 lib/libesp32/berry_animation/src/tests/dsl_reset_restart_test.be diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/aurora_borealis.be b/lib/libesp32/berry_animation/anim_examples/compiled/aurora_borealis.be index 4532c3476..96437aa71 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/aurora_borealis.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/aurora_borealis.be @@ -24,7 +24,7 @@ aurora_base_.transition_type = animation.SINE # transition type (explicit for c aurora_base_.brightness = 180 # brightness (dimmed for aurora effect) var demo_ = animation.SequenceManager(engine) .push_play_step(aurora_base_, nil) # infinite duration (no 'for' clause) -engine.add_sequence_manager(demo_) +engine.add(demo_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be b/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be index 51d1628b5..ba4cc22b4 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be @@ -39,7 +39,7 @@ breathing_.opacity = (def (engine) return provider end)(engine) # Start the animation -engine.add_animation(breathing_) +engine.add(breathing_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be b/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be index 806043518..63f92c1dc 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be @@ -140,16 +140,16 @@ stripe10_.pos = (def (engine) return provider end)(engine) # Start all stripes -engine.add_animation(stripe1_) -engine.add_animation(stripe2_) -engine.add_animation(stripe3_) -engine.add_animation(stripe4_) -engine.add_animation(stripe5_) -engine.add_animation(stripe6_) -engine.add_animation(stripe7_) -engine.add_animation(stripe8_) -engine.add_animation(stripe9_) -engine.add_animation(stripe10_) +engine.add(stripe1_) +engine.add(stripe2_) +engine.add(stripe3_) +engine.add(stripe4_) +engine.add(stripe5_) +engine.add(stripe6_) +engine.add(stripe7_) +engine.add(stripe8_) +engine.add(stripe9_) +engine.add(stripe10_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be b/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be index debe5810b..8c0fced93 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be @@ -61,11 +61,11 @@ garland_.tail_length = 6 # garland length (tail length) garland_.speed = 4000 # slow movement (speed) garland_.priority = 5 # Start all animations -engine.add_animation(tree_base_) -engine.add_animation(ornaments_) -engine.add_animation(tree_star_) -engine.add_animation(snow_sparkles_) -engine.add_animation(garland_) +engine.add(tree_base_) +engine.add(ornaments_) +engine.add(tree_star_) +engine.add(snow_sparkles_) +engine.add(garland_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be b/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be index 045214b9f..63d288e54 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be @@ -36,10 +36,10 @@ comet_sparkles_.density = 8 # density (moderate sparkles) comet_sparkles_.twinkle_speed = 400 # twinkle speed (quick sparkle) comet_sparkles_.priority = 8 # Start all animations -engine.add_animation(background_) -engine.add_animation(comet_main_) -engine.add_animation(comet_secondary_) -engine.add_animation(comet_sparkles_) +engine.add(background_) +engine.add(comet_main_) +engine.add(comet_secondary_) +engine.add(comet_sparkles_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be index 6f274acbb..3ce586c8b 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be @@ -31,8 +31,8 @@ stream2_.priority = 5 stream1_.tail_length = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) / 5 end) stream2_.opacity = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) * 4 end) # Run both animations -engine.add_animation(stream1_) -engine.add_animation(stream2_) +engine.add(stream1_) +engine.add(stream2_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be index 454e5fd49..54ec95c13 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be @@ -27,7 +27,7 @@ def cylon_effect_template(engine, eye_color_, back_color_, duration_) eye_animation_.beacon_size = 3 # small 3 pixels eye eye_animation_.slew_size = 2 # with 2 pixel shading around eye_animation_.priority = 5 - engine.add_animation(eye_animation_) + engine.add(eye_animation_) end animation.register_user_function('cylon_effect', cylon_effect_template) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be index d221052a9..aeb9469b7 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be @@ -38,11 +38,11 @@ red_eye_.beacon_size = 3 # small 3 pixels eye red_eye_.slew_size = 2 # with 2 pixel shading around var cylon_eye_ = animation.SequenceManager(engine, -1) .push_play_step(red_eye_, eye_duration_) # use COSINE movement - .push_assign_step(def (engine) red_eye_.pos = triangle_val_ end) # switch to TRIANGLE + .push_closure_step(def (engine) red_eye_.pos = triangle_val_ end) # switch to TRIANGLE .push_play_step(red_eye_, eye_duration_) - .push_assign_step(def (engine) red_eye_.pos = cosine_val_ end) # switch back to COSINE for next iteration - .push_assign_step(def (engine) eye_color_.next = 1 end) # advance to next color -engine.add_sequence_manager(cylon_eye_) + .push_closure_step(def (engine) red_eye_.pos = cosine_val_ end) # switch back to COSINE for next iteration + .push_closure_step(def (engine) eye_color_.next = 1 end) # advance to next color +engine.add(cylon_eye_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be index ecc8c5be1..3a18c9d17 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be @@ -24,7 +24,7 @@ red_eye_.pos = (def (engine) end)(engine) red_eye_.beacon_size = 3 # small 3 pixels eye red_eye_.slew_size = 2 # with 2 pixel shading around -engine.add_animation(red_eye_) +engine.add(red_eye_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be index c9e5caec2..89e0ef855 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be @@ -18,16 +18,17 @@ fire_color_.palette = fire_colors_ var background_ = animation.solid(engine) background_.color = 0xFF000088 background_.priority = 20 -var eye_mask_ = animation.beacon_animation(engine) -eye_mask_.color = 0x00000000 -eye_mask_.back_color = 0xFFFFFFFF -eye_mask_.pos = (def (engine) +var eye_pos_ = (def (engine) var provider = animation.cosine_osc(engine) provider.min_value = (-1) provider.max_value = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) - 2 end) - provider.duration = 3000 + provider.duration = 6000 return provider end)(engine) +var eye_mask_ = animation.beacon_animation(engine) +eye_mask_.color = 0xFFFFFFFF +eye_mask_.back_color = 0x00000000 +eye_mask_.pos = eye_pos_ eye_mask_.beacon_size = 4 # small 3 pixels eye eye_mask_.slew_size = 2 # with 2 pixel shading around eye_mask_.priority = 5 @@ -35,8 +36,8 @@ var fire_pattern_ = animation.palette_gradient_animation(engine) fire_pattern_.color_source = fire_color_ fire_pattern_.spatial_period = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) / 4 end) fire_pattern_.opacity = eye_mask_ -engine.add_animation(background_) -engine.add_animation(fire_pattern_) +engine.add(background_) +engine.add(fire_pattern_) engine.start() @@ -57,10 +58,11 @@ color fire_color = rich_palette(palette=fire_colors) animation background = solid(color=0x000088, priority=20) run background +set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s) animation eye_mask = beacon_animation( - color = transparent - back_color = white - pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 3s) + color = white + back_color = transparent + pos = eye_pos beacon_size = 4 # small 3 pixels eye slew_size = 2 # with 2 pixel shading around priority = 5 diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow.be new file mode 100644 index 000000000..287ec9864 --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow.be @@ -0,0 +1,138 @@ +# Generated Berry code from Animation DSL +# Source: demo_shutter_rainbow.anim +# +# This file was automatically generated by compile_all_examples.sh +# Do not edit manually - changes will be overwritten + +import animation + +# Demo Shutter Rainbow +# +# Shutter from left to right iterating in all colors +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + +# Template function: shutter_left_right +def shutter_left_right_template(engine, colors_, duration_) + var strip_len_ = animation.strip_length(engine) + var shutter_size_ = (def (engine) + var provider = animation.sawtooth(engine) + provider.min_value = 0 + provider.max_value = strip_len_ + provider.duration = duration_ + return provider + end)(engine) + var col1_ = animation.color_cycle(engine) + col1_.palette = colors_ + col1_.cycle_period = 0 + var col2_ = animation.color_cycle(engine) + col2_.palette = colors_ + col2_.cycle_period = 0 + col2_.next = 1 + var shutter_lr_animation_ = animation.beacon_animation(engine) + shutter_lr_animation_.color = col2_ + shutter_lr_animation_.back_color = col1_ + shutter_lr_animation_.pos = 0 + shutter_lr_animation_.beacon_size = shutter_size_ + shutter_lr_animation_.slew_size = 0 + shutter_lr_animation_.priority = 5 + var shutter_rl_animation_ = animation.beacon_animation(engine) + shutter_rl_animation_.color = col1_ + shutter_rl_animation_.back_color = col2_ + shutter_rl_animation_.pos = 0 + shutter_rl_animation_.beacon_size = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) - self.resolve(shutter_size_) end) + shutter_rl_animation_.slew_size = 0 + shutter_rl_animation_.priority = 5 + var shutter_seq_ = animation.SequenceManager(engine) + #repeat col1.palette_size times { + .push_repeat_subsequence(animation.SequenceManager(engine, 7) + .push_closure_step(def (engine) shutter_size_.start(engine.time_ms) end) + .push_play_step(shutter_lr_animation_, duration_) + .push_closure_step(def (engine) col1_.next = 1 end) + .push_closure_step(def (engine) col2_.next = 1 end) + ) + .push_repeat_subsequence(animation.SequenceManager(engine, def (engine) return col1_.palette_size end) + .push_closure_step(def (engine) shutter_size_.start(engine.time_ms) end) + .push_play_step(shutter_rl_animation_, duration_) + .push_closure_step(def (engine) col1_.next = 1 end) + .push_closure_step(def (engine) col2_.next = 1 end) + ) + engine.add(shutter_seq_) +end + +animation.register_user_function('shutter_left_right', shutter_left_right_template) + +var Violet_ = 0xFF112233 +var rainbow_with_white_ = bytes("FFFF0000" "FFFFA500" "FFFFFF00" "FF008000" "FF0000FF" "FF4B0082" "FFFFFFFF") +shutter_left_right_template(engine, rainbow_with_white_, 1500) +engine.start() + + +#- Original DSL source: +# Demo Shutter Rainbow +# +# Shutter from left to right iterating in all colors + +template shutter_left_right { + param colors type palette + param duration + + set strip_len = strip_length() + set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = duration) + + color col1 = color_cycle(palette=colors, cycle_period=0) + color col2 = color_cycle(palette=colors, cycle_period=0) + col2.next = 1 + + animation shutter_lr_animation = beacon_animation( + color = col2 + back_color = col1 + pos = 0 + beacon_size = shutter_size + slew_size = 0 + priority = 5 + ) + + animation shutter_rl_animation = beacon_animation( + color = col1 + back_color = col2 + pos = 0 + beacon_size = strip_len - shutter_size + slew_size = 0 + priority = 5 + ) + + sequence shutter_seq { + #repeat col1.palette_size times { + repeat 7 times { + reset shutter_size + play shutter_lr_animation for duration + col1.next = 1 + col2.next = 1 + } + repeat col1.palette_size times { + reset shutter_size + play shutter_rl_animation for duration + col1.next = 1 + col2.next = 1 + } + } + + run shutter_seq +} + +color Violet = 0x112233 + +palette rainbow_with_white = [ + red + orange + yellow + green + blue + indigo + white +] + +shutter_left_right(rainbow_with_white, 1.5s) + +-# diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be new file mode 100644 index 000000000..83d8cea0e --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be @@ -0,0 +1,84 @@ +# Generated Berry code from Animation DSL +# Source: demo_shutter_rainbow2.anim +# +# This file was automatically generated by compile_all_examples.sh +# Do not edit manually - changes will be overwritten + +import animation + +# Demo Shutter Rainbow +# +# Shutter from left to right iterating in all colors +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + +var duration_ = 3000 +var strip_len_ = animation.strip_length(engine) +var shutter_size_ = (def (engine) + var provider = animation.sawtooth(engine) + provider.min_value = 0 + provider.max_value = strip_len_ + provider.duration = duration_ + return provider +end)(engine) +var col1_ = animation.color_cycle(engine) +col1_.palette = animation.PALETTE_RAINBOW +col1_.cycle_period = 0 +var col2_ = animation.color_cycle(engine) +col2_.palette = animation.PALETTE_RAINBOW +col2_.cycle_period = 0 +col2_.next = 1 +var shutter_animation_ = animation.beacon_animation(engine) +shutter_animation_.color = col1_ +shutter_animation_.back_color = col2_ +shutter_animation_.pos = 0 +shutter_animation_.beacon_size = shutter_size_ +shutter_animation_.slew_size = 0 +shutter_animation_.priority = 5 +log(f"foobar", 3) +var shutter_run_ = animation.SequenceManager(engine, -1) + .push_closure_step(def (engine) log(f"before", 3) end) + .push_play_step(shutter_animation_, duration_) + .push_closure_step(def (engine) log(f"after", 3) end) + .push_closure_step(def (engine) col1_.next = 1 end) + .push_closure_step(def (engine) col2_.next = 1 end) + .push_closure_step(def (engine) log(f"next", 3) end) +engine.add(shutter_run_) +engine.start() + + +#- Original DSL source: +# Demo Shutter Rainbow +# +# Shutter from left to right iterating in all colors + +set duration = 3s + + set strip_len = strip_length() + set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = duration) + + color col1 = color_cycle(palette=PALETTE_RAINBOW, cycle_period=0) + color col2 = color_cycle(palette=PALETTE_RAINBOW, cycle_period=0) + col2.next = 1 + + animation shutter_animation = beacon_animation( + color = col1 + back_color = col2 + pos = 0 + beacon_size = shutter_size + slew_size = 0 + priority = 5 + ) + log("foobar") + sequence shutter_run repeat forever { + log("before") + play shutter_animation for duration + log("after") + col1.next = 1 + col2.next = 1 + log("next") + } + + run shutter_run + +-# diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be b/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be index 2c8f5280f..4cf7fc0f4 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be @@ -72,10 +72,10 @@ disco_pulse_.pos = (def (engine) return provider end)(engine) # Fast movement # Start all animations -engine.add_animation(disco_base_) -engine.add_animation(white_flash_) -engine.add_animation(disco_sparkles_) -engine.add_animation(disco_pulse_) +engine.add(disco_base_) +engine.add(white_flash_) +engine.add(disco_sparkles_) +engine.add(disco_pulse_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/fire_flicker.be b/lib/libesp32/berry_animation/anim_examples/compiled/fire_flicker.be index 2c1f72e91..48fba431a 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/fire_flicker.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/fire_flicker.be @@ -40,8 +40,8 @@ fire_flicker_.density = 12 # density (number of flickers) fire_flicker_.twinkle_speed = 200 # twinkle speed (flicker duration) fire_flicker_.priority = 10 # Start both animations -engine.add_animation(fire_base_) -engine.add_animation(fire_flicker_) +engine.add(fire_base_) +engine.add(fire_flicker_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be b/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be index 1efb8efcc..c268b00ce 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be @@ -72,11 +72,11 @@ center_pulse_.opacity = (def (engine) return provider end)(engine) # Quick white flash # Start all animations -engine.add_animation(background_) -engine.add_animation(heart_glow_) -engine.add_animation(heartbeat1_) -engine.add_animation(heartbeat2_) -engine.add_animation(center_pulse_) +engine.add(background_) +engine.add(heart_glow_) +engine.add(heartbeat1_) +engine.add(heartbeat2_) +engine.add(center_pulse_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/import_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/import_demo.be index 81bfa0419..cd0792652 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/import_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/import_demo.be @@ -29,7 +29,7 @@ var import_demo_ = animation.SequenceManager(engine) .push_play_step(breathing_blue_, 3000) .push_play_step(dynamic_green_, 3000) # Run the demo -engine.add_sequence_manager(import_demo_) +engine.add(import_demo_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be b/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be index a204b6a0f..e764f544c 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be @@ -87,11 +87,11 @@ heat_shimmer_.density = 6 # density (shimmer points) heat_shimmer_.twinkle_speed = 1500 # twinkle speed (slow shimmer) heat_shimmer_.priority = 15 # Start all animations -engine.add_animation(lava_base_) -engine.add_animation(lava_blob1_) -engine.add_animation(lava_blob2_) -engine.add_animation(lava_blob3_) -engine.add_animation(heat_shimmer_) +engine.add(lava_base_) +engine.add(lava_blob1_) +engine.add(lava_blob2_) +engine.add(lava_blob3_) +engine.add(heat_shimmer_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be b/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be index 5b05593a5..017c332b3 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be @@ -67,11 +67,11 @@ distant_flash_.density = 4 # density (few flashes) distant_flash_.twinkle_speed = 300 # twinkle speed (medium duration) distant_flash_.priority = 5 # Start all animations -engine.add_animation(storm_bg_) -engine.add_animation(lightning_main_) -engine.add_animation(lightning_partial_) -engine.add_animation(afterglow_) -engine.add_animation(distant_flash_) +engine.add(storm_bg_) +engine.add(lightning_main_) +engine.add(lightning_partial_) +engine.add(afterglow_) +engine.add(distant_flash_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be b/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be index 9d2ed3dbb..8860c2203 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be @@ -57,11 +57,11 @@ code_flash_.density = 3 # density (few flashes) code_flash_.twinkle_speed = 150 # twinkle speed (quick flash) code_flash_.priority = 20 # Start all animations -engine.add_animation(background_) -engine.add_animation(stream1_) -engine.add_animation(stream2_) -engine.add_animation(stream3_) -engine.add_animation(code_flash_) +engine.add(background_) +engine.add(stream1_) +engine.add(stream2_) +engine.add(stream3_) +engine.add(code_flash_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be b/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be index 7dca7b1c4..bbd3ea29d 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be @@ -50,13 +50,13 @@ meteor_flash_.density = 1 # density (single flash) meteor_flash_.twinkle_speed = 100 # twinkle speed (very quick) meteor_flash_.priority = 25 # Start all animations -engine.add_animation(background_) -engine.add_animation(stars_) -engine.add_animation(meteor1_) -engine.add_animation(meteor2_) -engine.add_animation(meteor3_) -engine.add_animation(meteor4_) -engine.add_animation(meteor_flash_) +engine.add(background_) +engine.add(stars_) +engine.add(meteor1_) +engine.add(meteor2_) +engine.add(meteor3_) +engine.add(meteor4_) +engine.add(meteor_flash_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be b/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be index f4ebc9761..6657549a4 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be @@ -72,12 +72,12 @@ arc_sparkles_.density = 4 # density (few arcs) arc_sparkles_.twinkle_speed = 100 # twinkle speed (quick arcs) arc_sparkles_.priority = 15 # Start all animations -engine.add_animation(neon_main_) -engine.add_animation(neon_surge_) -engine.add_animation(segment1_) -engine.add_animation(segment2_) -engine.add_animation(segment3_) -engine.add_animation(arc_sparkles_) +engine.add(neon_main_) +engine.add(neon_surge_) +engine.add(segment1_) +engine.add(segment2_) +engine.add(segment3_) +engine.add(arc_sparkles_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be b/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be index 47777d2dc..0b00d5ced 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be @@ -64,10 +64,10 @@ foam_.density = 6 # density (sparkle count) foam_.twinkle_speed = 300 # twinkle speed (quick sparkles) foam_.priority = 15 # Start all animations -engine.add_animation(ocean_base_) -engine.add_animation(wave1_) -engine.add_animation(wave2_) -engine.add_animation(foam_) +engine.add(ocean_base_) +engine.add(wave1_) +engine.add(wave2_) +engine.add(foam_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be index b139cee78..34e90675b 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be @@ -33,7 +33,7 @@ var palette_demo_ = animation.SequenceManager(engine) .push_play_step(fire_anim_, 3000) .push_play_step(ocean_anim_, 3000) ) -engine.add_sequence_manager(palette_demo_) +engine.add(palette_demo_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be b/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be index 46b4591c3..24af7a886 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be @@ -60,7 +60,7 @@ var palette_showcase_ = animation.SequenceManager(engine) .push_play_step(aurora_lights_, 2000) .push_play_step(sunset_glow_, 2000) ) -engine.add_sequence_manager(palette_showcase_) +engine.add(palette_showcase_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be b/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be index fc7b399c9..bd1fc54bc 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be @@ -84,10 +84,10 @@ plasma_base_.opacity = (def (engine) return provider end)(engine) # Start all animations -engine.add_animation(plasma_base_) -engine.add_animation(plasma_wave1_) -engine.add_animation(plasma_wave2_) -engine.add_animation(plasma_wave3_) +engine.add(plasma_base_) +engine.add(plasma_wave1_) +engine.add(plasma_wave2_) +engine.add(plasma_wave3_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be b/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be index 3bc78aa88..f4fd87a8c 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be @@ -57,9 +57,9 @@ white_strobe_.opacity = (def (engine) end)(engine) # Quick bright flashes white_strobe_.priority = 20 # Start all animations -engine.add_animation(left_red_) -engine.add_animation(right_blue_) -engine.add_animation(white_strobe_) +engine.add(left_red_) +engine.add(right_blue_) +engine.add(white_strobe_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be index 4bdbb95df..ce0de2084 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be @@ -55,7 +55,7 @@ var demo_ = animation.SequenceManager(engine) .push_play_step(right_pulse_, 2000) .push_wait_step(1000) ) -engine.add_sequence_manager(demo_) +engine.add(demo_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be b/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be index 2e708a9bf..e5d80aebd 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be @@ -20,7 +20,7 @@ rainbow_cycle_.cycle_period = 5000 # cycle period var rainbow_animation_ = animation.solid(engine) rainbow_animation_.color = rainbow_cycle_ # Start the animation -engine.add_animation(rainbow_animation_) +engine.add(rainbow_animation_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/run_tests.sh b/lib/libesp32/berry_animation/anim_examples/compiled/run_tests.sh index 018e6f5ab..a30875117 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/run_tests.sh +++ b/lib/libesp32/berry_animation/anim_examples/compiled/run_tests.sh @@ -4,7 +4,7 @@ set -e -BERRY_CMD="./berry -s -g -m lib/libesp32/berry_animation/src -e 'import tasmota'" +BERRY_CMD="./berry -s -g -m lib/libesp32/berry_animation/src -e 'import tasmota def log(x) print(x) end '" COMPILED_DIR="lib/libesp32/berry_animation/anim_examples/compiled" echo "Running compiled DSL examples..." diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be b/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be index fe37a2523..f835151fc 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be @@ -48,9 +48,9 @@ end)(engine) scanner_trail_.pos = pos_test_ scanner_trail_.opacity = 128 # Half brightness # Start all animations -engine.add_animation(background_) -engine.add_animation(scanner_trail_) -engine.add_animation(scanner_) +engine.add(background_) +engine.add(scanner_trail_) +engine.add(scanner_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be index 2929946dd..1271be839 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be @@ -48,36 +48,36 @@ pulse_demo_.priority = 5 # Sequence 1: Cylon Eye with Position Changes var cylon_eye_ = animation.SequenceManager(engine) .push_play_step(red_eye_, 3000) - .push_assign_step(def (engine) red_eye_.pos = triangle_val_ end) # Change to triangle oscillator + .push_closure_step(def (engine) red_eye_.pos = triangle_val_ end) # Change to triangle oscillator .push_play_step(red_eye_, 3000) - .push_assign_step(def (engine) red_eye_.pos = cosine_val_ end) # Change back to cosine - .push_assign_step(def (engine) eye_color_.next = 1 end) # Advance to next color + .push_closure_step(def (engine) red_eye_.pos = cosine_val_ end) # Change back to cosine + .push_closure_step(def (engine) eye_color_.next = 1 end) # Advance to next color .push_play_step(red_eye_, 2000) # Sequence 2: Brightness Control Demo var brightness_demo_ = animation.SequenceManager(engine) .push_play_step(pulse_demo_, 2000) - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_low_ end) # Dim the animation + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_low_ end) # Dim the animation .push_play_step(pulse_demo_, 2000) - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_high_ end) # Brighten again + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_high_ end) # Brighten again .push_play_step(pulse_demo_, 2000) # Sequence 3: Multiple Property Changes var multi_change_ = animation.SequenceManager(engine) .push_play_step(pulse_demo_, 1000) - .push_assign_step(def (engine) pulse_demo_.color = 0xFFFF0000 end) # Change color - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_low_ end) # And brightness + .push_closure_step(def (engine) pulse_demo_.color = 0xFFFF0000 end) # Change color + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_low_ end) # And brightness .push_play_step(pulse_demo_, 1000) - .push_assign_step(def (engine) pulse_demo_.color = 0xFF008000 end) # Change color again - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_high_ end) # Full brightness + .push_closure_step(def (engine) pulse_demo_.color = 0xFF008000 end) # Change color again + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_high_ end) # Full brightness .push_play_step(pulse_demo_, 1000) - .push_assign_step(def (engine) pulse_demo_.color = 0xFF0000FF end) # Back to blue + .push_closure_step(def (engine) pulse_demo_.color = 0xFF0000FF end) # Back to blue # Sequence 4: Assignments in Repeat Blocks var repeat_demo_ = animation.SequenceManager(engine) .push_repeat_subsequence(animation.SequenceManager(engine, 3) .push_play_step(red_eye_, 1000) - .push_assign_step(def (engine) red_eye_.pos = triangle_val_ end) # Change oscillator + .push_closure_step(def (engine) red_eye_.pos = triangle_val_ end) # Change oscillator .push_play_step(red_eye_, 1000) - .push_assign_step(def (engine) red_eye_.pos = cosine_val_ end) # Change back - .push_assign_step(def (engine) eye_color_.next = 1 end) # Next color + .push_closure_step(def (engine) red_eye_.pos = cosine_val_ end) # Change back + .push_closure_step(def (engine) eye_color_.next = 1 end) # Next color ) # Main demo sequence combining all examples var main_demo_ = animation.SequenceManager(engine) @@ -85,31 +85,31 @@ var main_demo_ = animation.SequenceManager(engine) .push_play_step(red_eye_, 1000) .push_wait_step(500) # Demonstrate position changes - .push_assign_step(def (engine) red_eye_.pos = triangle_val_ end) + .push_closure_step(def (engine) red_eye_.pos = triangle_val_ end) .push_play_step(red_eye_, 2000) - .push_assign_step(def (engine) red_eye_.pos = cosine_val_ end) + .push_closure_step(def (engine) red_eye_.pos = cosine_val_ end) .push_play_step(red_eye_, 2000) # Color cycling - .push_assign_step(def (engine) eye_color_.next = 1 end) + .push_closure_step(def (engine) eye_color_.next = 1 end) .push_play_step(red_eye_, 1000) - .push_assign_step(def (engine) eye_color_.next = 1 end) + .push_closure_step(def (engine) eye_color_.next = 1 end) .push_play_step(red_eye_, 1000) .push_wait_step(1000) # Brightness demo with pulse .push_play_step(pulse_demo_, 1000) - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_low_ end) + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_low_ end) .push_play_step(pulse_demo_, 1000) - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_high_ end) + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_high_ end) .push_play_step(pulse_demo_, 1000) # Multi-property changes - .push_assign_step(def (engine) pulse_demo_.color = 0xFFFF0000 end) - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_low_ end) + .push_closure_step(def (engine) pulse_demo_.color = 0xFFFF0000 end) + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_low_ end) .push_play_step(pulse_demo_, 1000) - .push_assign_step(def (engine) pulse_demo_.color = 0xFF008000 end) - .push_assign_step(def (engine) pulse_demo_.opacity = brightness_high_ end) + .push_closure_step(def (engine) pulse_demo_.color = 0xFF008000 end) + .push_closure_step(def (engine) pulse_demo_.opacity = brightness_high_ end) .push_play_step(pulse_demo_, 1000) # Run the main demo -engine.add_sequence_manager(main_demo_) +engine.add(main_demo_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be b/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be index 849d19e5c..d2859b25a 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be @@ -21,7 +21,7 @@ rainbow_cycle_.cycle_period = 3000 # Simple sequence var demo_ = animation.SequenceManager(engine) .push_play_step(rainbow_cycle_, 15000) -engine.add_sequence_manager(demo_) +engine.add(demo_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be b/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be index 7cb99fcb0..ed4d88a69 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be @@ -74,10 +74,10 @@ stars_.opacity = (def (engine) return provider end)(engine) # Fade out during day # Start all animations -engine.add_animation(daylight_cycle_) -engine.add_animation(sun_position_) -engine.add_animation(sun_glow_) -engine.add_animation(stars_) +engine.add(daylight_cycle_) +engine.add(sun_position_) +engine.add(sun_glow_) +engine.add(stars_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/swipe_rainbow.be b/lib/libesp32/berry_animation/anim_examples/compiled/swipe_rainbow.be index c940700b5..c8dd342b4 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/swipe_rainbow.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/swipe_rainbow.be @@ -19,8 +19,8 @@ var swipe_animation_ = animation.solid(engine) swipe_animation_.color = olivary_ var slide_colors_ = animation.SequenceManager(engine) .push_play_step(swipe_animation_, 1000) - .push_assign_step(def (engine) olivary_.next = 1 end) -engine.add_sequence_manager(slide_colors_) + .push_closure_step(def (engine) olivary_.next = 1 end) +engine.add(slide_colors_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be index 1c223a95d..a3ab0c9a2 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be @@ -26,8 +26,8 @@ def rainbow_pulse_template(engine, pal1_, pal2_, duration_, back_color_) # Set pulse priority higher pulse_.priority = 10 # Run both animations - engine.add_animation(background_) - engine.add_animation(pulse_) + engine.add(background_) + engine.add(pulse_) end animation.register_user_function('rainbow_pulse', rainbow_pulse_template) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be index 017c676f2..4e8233a6e 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be @@ -17,7 +17,7 @@ def pulse_effect_template(engine, base_color_, duration_, brightness_) pulse_.color = base_color_ pulse_.period = duration_ pulse_.opacity = brightness_ - engine.add_animation(pulse_) + engine.add(pulse_) end animation.register_user_function('pulse_effect', pulse_effect_template) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be index d8b718f81..2b73fe228 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be @@ -17,7 +17,7 @@ def pulse_effect_template(engine, base_color_, duration_, brightness_) pulse_.color = base_color_ pulse_.period = duration_ pulse_.opacity = brightness_ - engine.add_animation(pulse_) + engine.add(pulse_) end animation.register_user_function('pulse_effect', pulse_effect_template) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/twinkle_stars.be b/lib/libesp32/berry_animation/anim_examples/compiled/twinkle_stars.be index 8ecea3e86..ea888f549 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/twinkle_stars.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/twinkle_stars.be @@ -29,9 +29,9 @@ bright_flash_.density = 2 # density (fewer bright flashes) bright_flash_.twinkle_speed = 300 # twinkle speed (quick flash) bright_flash_.priority = 15 # Start all animations -engine.add_animation(background_) -engine.add_animation(stars_) -engine.add_animation(bright_flash_) +engine.add(background_) +engine.add(stars_) +engine.add(bright_flash_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be index c1215045a..98dec6b48 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be @@ -45,11 +45,11 @@ random_complex_.priority = 20 # Complex expression with user function and math operations random_complex_.opacity = animation.create_closure_value(engine, def (self) return self.round((animation.get_user_function('rand_demo')(self.engine) + 128) / 2 + self.abs(animation.get_user_function('rand_demo')(self.engine) - 100)) end) # Run all animations to demonstrate the effects -engine.add_animation(random_base_) -engine.add_animation(random_bounded_) -engine.add_animation(random_variation_) -engine.add_animation(random_multi_) -engine.add_animation(random_complex_) +engine.add(random_base_) +engine.add(random_bounded_) +engine.add(random_variation_) +engine.add(random_multi_) +engine.add(random_complex_) engine.start() diff --git a/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim b/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim index 3de653f14..3df06cc8e 100644 --- a/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim +++ b/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim @@ -14,10 +14,11 @@ color fire_color = rich_palette(palette=fire_colors) animation background = solid(color=0x000088, priority=20) run background +set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s) animation eye_mask = beacon_animation( - color = transparent - back_color = white - pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 3s) + color = white + back_color = transparent + pos = eye_pos beacon_size = 4 # small 3 pixels eye slew_size = 2 # with 2 pixel shading around priority = 5 diff --git a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow.anim b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow.anim new file mode 100644 index 000000000..f73483d7c --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow.anim @@ -0,0 +1,65 @@ +# Demo Shutter Rainbow +# +# Shutter from left to right iterating in all colors + +template shutter_left_right { + param colors type palette + param duration + + set strip_len = strip_length() + set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = duration) + + color col1 = color_cycle(palette=colors, cycle_period=0) + color col2 = color_cycle(palette=colors, cycle_period=0) + col2.next = 1 + + animation shutter_lr_animation = beacon_animation( + color = col2 + back_color = col1 + pos = 0 + beacon_size = shutter_size + slew_size = 0 + priority = 5 + ) + + animation shutter_rl_animation = beacon_animation( + color = col1 + back_color = col2 + pos = 0 + beacon_size = strip_len - shutter_size + slew_size = 0 + priority = 5 + ) + + sequence shutter_seq { + #repeat col1.palette_size times { + repeat 7 times { + reset shutter_size + play shutter_lr_animation for duration + col1.next = 1 + col2.next = 1 + } + repeat col1.palette_size times { + reset shutter_size + play shutter_rl_animation for duration + col1.next = 1 + col2.next = 1 + } + } + + run shutter_seq +} + +color Violet = 0x112233 + +palette rainbow_with_white = [ + red + orange + yellow + green + blue + indigo + white +] + +shutter_left_right(rainbow_with_white, 1.5s) diff --git a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim new file mode 100644 index 000000000..808adecfb --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim @@ -0,0 +1,32 @@ +# Demo Shutter Rainbow +# +# Shutter from left to right iterating in all colors + +set duration = 3s + + set strip_len = strip_length() + set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = duration) + + color col1 = color_cycle(palette=PALETTE_RAINBOW, cycle_period=0) + color col2 = color_cycle(palette=PALETTE_RAINBOW, cycle_period=0) + col2.next = 1 + + animation shutter_animation = beacon_animation( + color = col1 + back_color = col2 + pos = 0 + beacon_size = shutter_size + slew_size = 0 + priority = 5 + ) + log("foobar") + sequence shutter_run repeat forever { + log("before") + play shutter_animation for duration + log("after") + col1.next = 1 + col2.next = 1 + log("next") + } + + run shutter_run diff --git a/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md b/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md index 659251b90..4f1064f0c 100644 --- a/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md +++ b/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md @@ -248,6 +248,7 @@ Cycles through a palette of colors with brutal switching. Inherits from `ColorPr | `palette` | bytes | default palette | - | Palette bytes in AARRGGBB format | | `cycle_period` | int | 5000 | min: 0 | Cycle time in ms (0 = manual only) | | `next` | int | 0 | - | Write 1 to move to next color manually, or any number to go forward or backwars by `n` colors | +| `palette_size` | int | 3 | read-only | Number of colors in the palette (automatically updated when palette changes) | **Modes**: Auto-cycle (`cycle_period > 0`) or Manual-only (`cycle_period = 0`) diff --git a/lib/libesp32/berry_animation/docs/ANIMATION_DEVELOPMENT.md b/lib/libesp32/berry_animation/docs/ANIMATION_DEVELOPMENT.md index 43655056f..9db7170ff 100644 --- a/lib/libesp32/berry_animation/docs/ANIMATION_DEVELOPMENT.md +++ b/lib/libesp32/berry_animation/docs/ANIMATION_DEVELOPMENT.md @@ -537,7 +537,7 @@ anim.color = 0xFFFF0000 anim.pos = 5 anim.beacon_size = 3 -engine.add_animation(anim) +engine.add(anim) # Unified method for animations and sequence managers engine.start() # Let it run for a few seconds diff --git a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md index 31a6edef4..c068cfba5 100644 --- a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md +++ b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md @@ -73,6 +73,8 @@ The following keywords are reserved and cannot be used as identifiers: - `times` - Loop count specifier - `for` - Duration specifier - `run` - Execute animation or sequence +- `reset` - Reset value provider or animation to initial state +- `restart` - Restart value provider or animation from beginning **Easing Keywords:** - `linear` - Linear/triangle wave easing @@ -329,11 +331,58 @@ palette timed_colors = [ **Palette Rules:** - **Value-based**: Positions range from 0 to 255, represent intensity/brightness levels - **Tick-based**: Positions represent duration in arbitrary time units -- Colors can be hex values or named colors +- **Colors**: Only hex values (0xRRGGBB) or predefined color names (red, blue, green, etc.) +- **Custom colors**: Previously defined custom colors are NOT allowed in palettes +- **Dynamic palettes**: For palettes with custom colors, use user functions instead - Entries are automatically sorted by position - Comments are preserved - Automatically converted to efficient VRGB bytes format +### Palette Color Restrictions + +Palettes have strict color validation to ensure compile-time safety: + +**✅ Allowed:** +```berry +palette valid_colors = [ + (0, 0xFF0000) # Hex colors + (128, red) # Predefined color names + (255, blue) # More predefined colors +] +``` + +**❌ Not Allowed:** +```berry +color custom_red = 0xFF0000 +palette invalid_colors = [ + (0, custom_red) # ERROR: Custom colors not allowed + (128, my_color) # ERROR: Undefined color +] +``` + +**Alternative for Dynamic Palettes:** +For palettes that need custom or computed colors, use user functions: + +```berry +# Define a user function that creates dynamic palettes +def create_custom_palette(engine, base_color, intensity) + # Create palette with custom logic + var palette_data = create_dynamic_palette_bytes(base_color, intensity) + return palette_data +end + +# Register for DSL use +animation.register_user_function("custom_palette", create_custom_palette) +``` + +```berry +# Use in DSL +animation dynamic_anim = rich_palette( + palette=user.custom_palette(0xFF0000, 200) + cycle_period=3s +) +``` + ## Animation Definitions The `animation` keyword defines instances of animation classes (subclasses of Animation): @@ -582,9 +631,15 @@ sequence cylon_eye repeat forever { red_eye.pos = cosine_val eye_color.next = 1 } + +# Option 3: Parametric repeat count +sequence rainbow_cycle repeat palette.size times { + play animation for 1s + palette.next = 1 +} ``` -**Note**: Both syntaxes are functionally equivalent. The second syntax creates an outer sequence (runs once) containing an inner repeat sub-sequence. +**Note**: All syntaxes are functionally equivalent. The repeat count can be a literal number, variable, or dynamic expression that evaluates at runtime. ### Sequence Statements @@ -663,10 +718,22 @@ repeat forever { # Repeat indefinitely until parent sequence s play animation for 1s wait 500ms } + +repeat col1.palette_size times { # Parametric repeat count using property access + play animation for 1s + col1.next = 1 +} ``` +**Repeat Count Types:** +- **Literal numbers**: `repeat 5 times` - fixed repeat count +- **Variables**: `repeat count_var times` - using previously defined variables +- **Property access**: `repeat color_provider.palette_size times` - dynamic values from object properties +- **Computed expressions**: `repeat strip_length() / 2 times` - calculated repeat counts + **Repeat Behavior:** - **Runtime Execution**: Repeats are executed at runtime, not expanded at compile time +- **Dynamic Evaluation**: Parametric repeat counts are evaluated when the sequence starts - **Sub-sequences**: Each repeat block creates a sub-sequence that manages its own iteration state - **Nested Repeats**: Supports nested repeats with multiplication (e.g., `repeat 3 times { repeat 2 times { ... } }` executes 6 times total) - **Forever Loops**: `repeat forever` continues until the parent sequence is stopped @@ -716,6 +783,42 @@ sequence cylon_eye { } ``` +#### Reset and Restart Statements + +Reset and restart statements allow you to reset value providers and animations to their initial state during sequence execution: + +```berry +reset value_provider_name # Reset value provider to initial state +restart animation_name # Restart animation from beginning +``` + +**Reset Statement:** +- Resets value providers (oscillators, color cycles, etc.) to their initial state +- Calls the `start()` method on the value provider +- Useful for synchronizing oscillators or restarting color cycles + +**Restart Statement:** +- Restarts animations from their beginning state +- Calls the `start()` method on the animation +- Useful for restarting complex animations or synchronizing multiple animations + +**Examples:** +```berry +# Reset oscillators for synchronized movement +sequence sync_demo { + play wave_anim for 3s + reset position_osc # Reset oscillator to start position + play wave_anim for 3s +} + +# Restart animations for clean transitions +sequence clean_transitions { + play comet_anim for 5s + restart comet_anim # Restart from beginning position + play comet_anim for 5s +} +``` + ## Templates Templates provide a powerful way to create reusable, parameterized animation patterns. They allow you to define animation blueprints that can be instantiated with different parameters, promoting code reuse and maintainability. @@ -860,7 +963,7 @@ def pulse_effect_template(engine, base_color_, duration_, brightness_) pulse_.color = base_color_ pulse_.period = duration_ pulse_.opacity = brightness_ - engine.add_animation(pulse_) + engine.add(pulse_) end animation.register_user_function('pulse_effect', pulse_effect_template) @@ -886,6 +989,22 @@ run animation_name # Run an animation run sequence_name # Run a sequence ``` +### Debug and Logging + +Log debug messages during animation execution: + +```berry +log("Debug message") # Log message at level 3 +log("Animation started") # Useful for debugging sequences +log("Color changed to red") # Track animation state changes +``` + +**Log Function Behavior:** +- Accepts string literals only (no variables or expressions) +- Transpiles to Berry `log(f"message", 3)` +- Messages are logged at level 3 for debugging purposes +- Can be used anywhere in DSL code: standalone, in sequences, etc. + ## Operators and Expressions ### Arithmetic Operators @@ -1170,14 +1289,16 @@ template_def = "template" identifier "{" template_body "}" ; property_assignment = identifier "." identifier "=" expression ; (* Sequences *) -sequence = "sequence" identifier [ "repeat" ( number "times" | "forever" ) ] "{" sequence_body "}" ; +sequence = "sequence" identifier [ "repeat" ( expression "times" | "forever" ) ] "{" sequence_body "}" ; sequence_body = { sequence_statement } ; -sequence_statement = play_stmt | wait_stmt | repeat_stmt | sequence_assignment ; +sequence_statement = play_stmt | wait_stmt | repeat_stmt | sequence_assignment | reset_stmt | restart_stmt ; play_stmt = "play" identifier [ "for" time_expression ] ; wait_stmt = "wait" time_expression ; -repeat_stmt = "repeat" ( number "times" | "forever" ) "{" sequence_body "}" ; +repeat_stmt = "repeat" ( expression "times" | "forever" ) "{" sequence_body "}" ; sequence_assignment = identifier "." identifier "=" expression ; +reset_stmt = "reset" identifier ; +restart_stmt = "restart" identifier ; (* Templates *) template_def = "template" identifier "{" template_body "}" ; diff --git a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md index 3addc0c6f..08dc1c3eb 100644 --- a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md +++ b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md @@ -252,7 +252,7 @@ var test_ = animation.solid(engine) test_.color = 0xFF0000FF test_.opacity = animation.create_closure_value(engine, def (self) return animation.get_user_function('rand_demo')(self.engine) end) -engine.add_animation(test_) +engine.add(test_) engine.start() ``` @@ -286,7 +286,7 @@ def pulse_effect(engine, color, speed) var pulse_ = animation.pulsating_animation(engine) pulse_.color = color pulse_.period = speed - engine.add_animation(pulse_) + engine.add(pulse_) engine.start_animation(pulse_) end @@ -341,9 +341,9 @@ def comet_chase(engine, trail_color, bg_color, chase_speed) var comet_ = animation.comet_animation(engine) comet_.color = trail_color comet_.speed = chase_speed - engine.add_animation(background_) + engine.add(background_) engine.start_animation(background_) - engine.add_animation(comet_) + engine.add(comet_) engine.start_animation(comet_) end diff --git a/lib/libesp32/berry_animation/docs/EXAMPLES.md b/lib/libesp32/berry_animation/docs/EXAMPLES.md index bbe03f4c8..4e45b254d 100644 --- a/lib/libesp32/berry_animation/docs/EXAMPLES.md +++ b/lib/libesp32/berry_animation/docs/EXAMPLES.md @@ -89,9 +89,13 @@ animation sunrise = pulsating_animation(color=orange, period=3s) animation day = solid(color=yellow) sequence sunrise_show { + log("Starting sunrise sequence") play night for 3s + log("Night phase complete, starting sunrise") play sunrise for 5s + log("Sunrise complete, switching to day") play day for 3s + log("Sunrise sequence finished") } run sunrise_show ``` @@ -169,7 +173,23 @@ sequence demo { run demo ``` -### 11. Assignments in Repeat Blocks +### 11. Reset and Restart in Sequences +```berry +# Create oscillator and animation +set wave_osc = triangle(min_value=0, max_value=29, period=4s) +animation wave = beacon_animation(color=blue, pos=wave_osc, beacon_size=5) + +sequence sync_demo { + play wave for 3s + reset wave_osc # Reset oscillator to start position + play wave for 3s # Wave starts from beginning again + restart wave # Restart animation from initial state + play wave for 3s +} +run sync_demo +``` + +### 12. Assignments in Repeat Blocks ```berry set brightness = smooth(min_value=50, max_value=255, period=2s) animation pulse = pulsating_animation(color=white, period=1s) @@ -187,7 +207,7 @@ run breathing_cycle ## User Functions in Computed Parameters -### 12. Simple User Function +### 13. Simple User Function ```berry # Simple user function in computed parameter animation random_base = solid(color=blue, priority=10) @@ -195,7 +215,7 @@ random_base.opacity = rand_demo() run random_base ``` -### 13. User Function with Math Operations +### 14. User Function with Math Operations ```berry # Mix user functions with mathematical functions animation random_bounded = solid( @@ -206,7 +226,7 @@ animation random_bounded = solid( run random_bounded ``` -### 14. User Function in Arithmetic Expression +### 15. User Function in Arithmetic Expression ```berry # Use user function in arithmetic expressions animation random_variation = solid( @@ -221,7 +241,7 @@ See `anim_examples/user_functions_demo.anim` for a complete working example. ## New Repeat System Examples -### 15. Runtime Repeat with Forever Loop +### 16. Runtime Repeat with Forever Loop ```berry color red = 0xFF0000 color blue = 0x0000FF @@ -245,7 +265,7 @@ sequence cylon_effect_alt repeat forever { run cylon_effect ``` -### 16. Nested Repeats (Multiplication) +### 17. Nested Repeats (Multiplication) ```berry color green = 0x00FF00 color yellow = 0xFFFF00 @@ -265,7 +285,7 @@ sequence nested_pattern { run nested_pattern ``` -### 17. Repeat with Property Assignments +### 18. Repeat with Property Assignments ```berry set triangle_pos = triangle(min_value=0, max_value=29, period=3s) set cosine_pos = cosine_osc(min_value=0, max_value=29, period=3s) @@ -292,7 +312,7 @@ run dynamic_cylon ## Advanced Examples -### 18. Dynamic Position +### 19. Dynamic Position ```berry strip length 60 @@ -308,7 +328,7 @@ animation moving_pulse = beacon_animation( run moving_pulse ``` -### 19. Multi-Layer Effect +### 20. Multi-Layer Effect ```berry # Base layer - slow breathing set breathing = smooth(min_value=100, max_value=255, period=4s) diff --git a/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md b/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md index dc6811d13..4641cb953 100644 --- a/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md +++ b/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md @@ -645,7 +645,7 @@ animation.register_user_function("pulse_effect", create_pulse_effect) ```berry # Clear before adding new animations engine.clear() - engine.add_animation(new_animation) + engine.add(new_animation) ``` 2. **Limit Palette Size:** @@ -760,7 +760,7 @@ import animation var engine = animation.create_engine(strip) var red_anim = animation.solid(engine) red_anim.color = 0xFFFF0000 -engine.add_animation(red_anim) +engine.add(red_anim) engine.start() # If basic strip works but animation doesn't, check framework setup @@ -830,7 +830,7 @@ var engine = animation.create_engine(strip, true) # debug=true var anim = animation.solid(engine) anim.color = 0xFFFF0000 -engine.add_animation(anim) +engine.add(anim) engine.start() ``` @@ -852,7 +852,7 @@ anim.color = 0xFFFF0000 print("Animation created:", anim != nil) print("4. Adding animation...") -engine.add_animation(anim) +engine.add(anim) print("Animation count:", engine.size()) print("5. Starting engine...") diff --git a/lib/libesp32/berry_animation/docs/USER_FUNCTIONS.md b/lib/libesp32/berry_animation/docs/USER_FUNCTIONS.md index 3e5b7b1e8..659edbddb 100644 --- a/lib/libesp32/berry_animation/docs/USER_FUNCTIONS.md +++ b/lib/libesp32/berry_animation/docs/USER_FUNCTIONS.md @@ -252,6 +252,52 @@ end animation.register_user_function("rainbow_sparkle", rainbow_sparkle) ``` +### Dynamic Palettes + +Since DSL palettes only accept hex colors and predefined color names (not custom colors), use user functions for dynamic palettes with custom colors: + +```berry +def create_custom_palette(engine, base_color, variation_count, intensity) + # Create a palette with variations of the base color + var palette_bytes = bytes() + + # Extract RGB components from base color + var r = (base_color >> 16) & 0xFF + var g = (base_color >> 8) & 0xFF + var b = base_color & 0xFF + + # Create palette entries with color variations + for i : 0..(variation_count-1) + var position = int(i * 255 / (variation_count - 1)) + var factor = intensity * i / (variation_count - 1) / 255 + + var new_r = int(r * factor) + var new_g = int(g * factor) + var new_b = int(b * factor) + + # Add VRGB entry (Value, Red, Green, Blue) + palette_bytes.add(position, 1) # Position + palette_bytes.add(new_r, 1) # Red + palette_bytes.add(new_g, 1) # Green + palette_bytes.add(new_b, 1) # Blue + end + + return palette_bytes +end + +animation.register_user_function("custom_palette", create_custom_palette) +``` + +```berry +# Use dynamic palette in DSL +animation gradient_effect = rich_palette( + palette=user.custom_palette(0xFF6B35, 5, 255) + cycle_period=4s +) + +run gradient_effect +``` + ### Preset Configurations ```berry diff --git a/lib/libesp32/berry_animation/src/core/animation_base.be b/lib/libesp32/berry_animation/src/core/animation_base.be index 256382bf7..3c4a17d73 100644 --- a/lib/libesp32/berry_animation/src/core/animation_base.be +++ b/lib/libesp32/berry_animation/src/core/animation_base.be @@ -34,7 +34,6 @@ class Animation : animation.parameterized_object # Initialize non-parameter instance variables self.start_time = 0 self.current_time = 0 - self.opacity_frame = nil # Will be created when needed end # Start/restart the animation (make it active and reset timing) @@ -44,7 +43,7 @@ class Animation : animation.parameterized_object def start(start_time) # Set is_running directly in values map to avoid infinite loop self.values["is_running"] = true - var actual_start_time = start_time != nil ? start_time : self.engine.time_ms + var actual_start_time = (start_time != nil) ? start_time : self.engine.time_ms self.start_time = actual_start_time self.current_time = self.start_time @@ -63,11 +62,7 @@ class Animation : animation.parameterized_object # Check if the parameter value is a value provider if animation.is_value_provider(param_value) # Call start method if it exists (acts as restart) - try - param_value.start(time_ms) - except .. as e - # Ignore errors if start method doesn't exist or fails - end + param_value.start(time_ms) end end end @@ -85,7 +80,7 @@ class Animation : animation.parameterized_object self.current_time = self.start_time # Start/restart all value providers in parameters self._start_value_providers(actual_start_time) - elif value == false + # elif value == false # Stop the animation - just set the internal state # (is_running is already set to false by the parameter system) end @@ -143,9 +138,7 @@ class Animation : animation.parameterized_object end # Use engine time if not provided - if time_ms == nil - time_ms = self.engine.time_ms - end + time_ms = (time_ms != nil) ? time_ms : self.engine.time_ms # Update animation state self.update(time_ms) @@ -226,28 +219,6 @@ class Animation : animation.parameterized_object return self.get_color_at(0, time_ms) end - # Get the normalized progress of the animation (0 to 255) - # - # @return int - Progress from 0 (start) to 255 (end) - def get_progress() - var current_duration = self.duration - if current_duration <= 0 - return 0 # Infinite animations always return 0 progress - end - - var elapsed = self.current_time - self.start_time - var progress = elapsed % current_duration # Handle looping - - # For non-looping animations, if we've reached exactly the duration, - # return maximum progress instead of 0 (which would be the modulo result) - var current_loop = self.loop - if !current_loop && elapsed >= current_duration - return 255 - end - - return tasmota.scale_uint(progress, 0, current_duration, 0, 255) - end - # String representation of the animation def tostring() return f"Animation({self.name}, priority={self.priority}, duration={self.duration}, loop={self.loop}, running={self.is_running})" diff --git a/lib/libesp32/berry_animation/src/core/animation_engine.be b/lib/libesp32/berry_animation/src/core/animation_engine.be index afba63ba3..20b674ff8 100644 --- a/lib/libesp32/berry_animation/src/core/animation_engine.be +++ b/lib/libesp32/berry_animation/src/core/animation_engine.be @@ -43,17 +43,19 @@ class AnimationEngine end # Start the animation engine + # + # @return self for method chaining def start() if !self.is_running + var now = tasmota.millis() self.is_running = true - self.last_update = tasmota.millis() - 10 + self.last_update = now - 10 if self.fast_loop_closure == nil self.fast_loop_closure = / -> self.on_tick() end var i = 0 - var now = tasmota.millis() while (i < size(self.animations)) self.animations[i].start(now) i += 1 @@ -71,6 +73,8 @@ class AnimationEngine end # Stop the animation engine + # + # @return self for method chaining def stop() if self.is_running self.is_running = false @@ -83,25 +87,23 @@ class AnimationEngine end # Add an animation with automatic priority sorting + # + # @param anim: animation - The animation instance to add (if not already listed) + # @return true if succesful (TODO always true) def add_animation(anim) - # Check if animation already exists - var i = 0 - while i < size(self.animations) - if self.animations[i] == anim - return false + if (self.animations.find(anim) == nil) # not already in list + # Add and sort by priority (higher priority first) + self.animations.push(anim) + self._sort_animations() + # If the engine is already started, auto-start the animation + if self.is_running + anim.start(self.time_ms) end - i += 1 + self.render_needed = true + return true + else + return false end - - # Add and sort by priority (higher priority first) - self.animations.push(anim) - self._sort_animations() - # If the engine is already started, auto-start the animation - if self.is_running - anim.start() - end - self.render_needed = true - return true end # Remove an animation @@ -143,6 +145,27 @@ class AnimationEngine return self end + # Unified method to add either animations or sequence managers + # Detects the class type and calls the appropriate method + # + # @param obj: Animation or SequenceManager - The object to add + # @return self for method chaining + def add(obj) + # Check if it's a SequenceManager + if isinstance(obj, animation.SequenceManager) + return self.add_sequence_manager(obj) + # Check if it's an Animation (or subclass) + elif isinstance(obj, animation.animation) + self.add_animation(obj) + return self + else + # Unknown type - provide helpful error message + import introspect + var class_name = introspect.name(obj) + raise "type_error", f"Cannot add object of type '{class_name}' to engine. Expected Animation or SequenceManager." + end + end + # Remove a sequence manager def remove_sequence_manager(sequence_manager) var index = -1 diff --git a/lib/libesp32/berry_animation/src/core/frame_buffer.be b/lib/libesp32/berry_animation/src/core/frame_buffer.be index b5964233b..1595ec93c 100644 --- a/lib/libesp32/berry_animation/src/core/frame_buffer.be +++ b/lib/libesp32/berry_animation/src/core/frame_buffer.be @@ -13,11 +13,6 @@ # The class is optimized for performance and minimal memory usage. class FrameBuffer - # Blend modes - # Currently only normal blending is implemented, but the structure allows for adding more modes later - static BLEND_MODE_NORMAL = 0 # Normal alpha blending - # Other blend modes can be added here in the future if needed - var pixels # Pixel data (bytes object) var width # Number of pixels @@ -125,16 +120,11 @@ class FrameBuffer end end - # Blend two colors using their alpha channels and blend mode + # Blend two colors using their alpha channels # Returns the blended color as a 32-bit integer (ARGB format - 0xAARRGGBB) # color1: destination color (ARGB format - 0xAARRGGBB) # color2: source color (ARGB format - 0xAARRGGBB) - # mode: blending mode (default: BLEND_MODE_NORMAL) - def blend(color1, color2, mode) - # Default blend mode to normal if not specified - if mode == nil - mode = self.BLEND_MODE_NORMAL - end + def blend(color1, color2) # Extract components from color1 (ARGB format - 0xAARRGGBB) var a1 = (color1 >> 24) & 0xFF @@ -157,7 +147,7 @@ class FrameBuffer # Use the source alpha directly for blending var effective_opacity = a2 - # Normal alpha blending (currently the only supported mode) + # Normal alpha blending # Use tasmota.scale_uint for ratio conversion instead of integer arithmetic var r = tasmota.scale_uint(255 - effective_opacity, 0, 255, 0, r1) + tasmota.scale_uint(effective_opacity, 0, 255, 0, r2) var g = tasmota.scale_uint(255 - effective_opacity, 0, 255, 0, g1) + tasmota.scale_uint(effective_opacity, 0, 255, 0, g2) @@ -218,16 +208,11 @@ class FrameBuffer # Blend this frame buffer with another frame buffer using per-pixel alpha # other_buffer: the other frame buffer to blend with - # mode: blending mode (default: BLEND_MODE_NORMAL) # region_start: start index for blending (default: 0) # region_end: end index for blending (default: width-1) - def blend_pixels(other_buffer, mode, region_start, region_end) + def blend_pixels(other_buffer, region_start, region_end) # Default parameters - if mode == nil - mode = self.BLEND_MODE_NORMAL - end - if region_start == nil region_start = 0 end @@ -249,43 +234,23 @@ class FrameBuffer raise "index_error", "region_end out of range" end - # Performance optimization: batch processing for normal blend mode - if mode == self.BLEND_MODE_NORMAL - # Fast path for normal blending - var i = region_start - while i <= region_end - var color2 = other_buffer.get_pixel_color(i) - var a2 = (color2 >> 24) & 0xFF - - # Only blend if the source pixel has some alpha - if a2 > 0 - if a2 == 255 - # Fully opaque source pixel, just copy it - self.pixels.set(i * 4, color2, 4) - else - # Partially transparent source pixel, need to blend - var color1 = self.get_pixel_color(i) - var blended = self.blend(color1, color2, mode) - self.pixels.set(i * 4, blended, 4) - end - end - - i += 1 - end - return - end - - # General case: blend each pixel using the blend function + # Blend each pixel using the blend function var i = region_start while i <= region_end - var color1 = self.get_pixel_color(i) var color2 = other_buffer.get_pixel_color(i) + var a2 = (color2 >> 24) & 0xFF # Only blend if the source pixel has some alpha - var a2 = (color2 >> 24) & 0xFF if a2 > 0 - var blended = self.blend(color1, color2, mode) - self.pixels.set(i * 4, blended, 4) + if a2 == 255 + # Fully opaque source pixel, just copy it + self.pixels.set(i * 4, color2, 4) + else + # Partially transparent source pixel, need to blend + var color1 = self.get_pixel_color(i) + var blended = self.blend(color1, color2) + self.pixels.set(i * 4, blended, 4) + end end i += 1 @@ -437,14 +402,9 @@ class FrameBuffer # Blend a specific region with a solid color using the color's alpha channel # color: the color to blend (ARGB) - # mode: blending mode (default: BLEND_MODE_NORMAL) # start_pos: start position (default: 0) # end_pos: end position (default: width-1) - def blend_color(color, mode, start_pos, end_pos) - - if mode == nil - mode = self.BLEND_MODE_NORMAL - end + def blend_color(color, start_pos, end_pos) if start_pos == nil start_pos = 0 @@ -476,7 +436,7 @@ class FrameBuffer # Only blend if the color has some alpha if a2 > 0 - var blended = self.blend(color1, color, mode) + var blended = self.blend(color1, color) self.pixels.set(i * 4, blended, 4) end diff --git a/lib/libesp32/berry_animation/src/core/parameterized_object.be b/lib/libesp32/berry_animation/src/core/parameterized_object.be index a72053bf3..7f9078e30 100644 --- a/lib/libesp32/berry_animation/src/core/parameterized_object.be +++ b/lib/libesp32/berry_animation/src/core/parameterized_object.be @@ -338,34 +338,6 @@ class ParameterizedObject return self._get_param_def(name) end - # Get all parameter metadata from class hierarchy - # - # @return map - Map of all parameter metadata - def get_params_metadata() - import introspect - var all_params = {} - - # Walk up the class hierarchy to collect all parameter definitions - var current_class = classof(self) - while current_class != nil - # Check if this class has PARAMS - if introspect.contains(current_class, "PARAMS") - var class_params = current_class.PARAMS - # Add parameters from this class (child class parameters override parent) - for param_name : class_params.keys() - if !all_params.contains(param_name) # Don't override child class params - all_params[param_name] = class_params[param_name] - end - end - end - - # Move to parent class - current_class = super(current_class) - end - - return all_params - end - # Helper method to get a resolved value from either a static value or a value provider # This is the same as accessing obj.param_name but with explicit time # diff --git a/lib/libesp32/berry_animation/src/core/sequence_manager.be b/lib/libesp32/berry_animation/src/core/sequence_manager.be index e3dd71dd4..d4935c3ef 100644 --- a/lib/libesp32/berry_animation/src/core/sequence_manager.be +++ b/lib/libesp32/berry_animation/src/core/sequence_manager.be @@ -26,7 +26,7 @@ class SequenceManager self.is_running = false # Repeat logic - self.repeat_count = repeat_count != nil ? repeat_count : 1 # Default: run once + self.repeat_count = repeat_count != nil ? repeat_count : 1 # Default: run once (can be function or number) self.current_iteration = 0 self.is_repeat_sequence = repeat_count != nil && repeat_count != 1 end @@ -56,10 +56,10 @@ class SequenceManager return self end - # Add an assignment step directly - def push_assign_step(closure) + # Add a closure step directly (used for both assign and log steps) + def push_closure_step(closure) self.steps.push({ - "type": "assign", + "type": "closure", "closure": closure }) return self @@ -150,7 +150,7 @@ class SequenceManager # Sub-sequence finished, advance to next step self.advance_to_next_step(current_time) end - elif current_step["type"] == "assign" + elif current_step["type"] == "closure" # Assign steps are handled in batches by advance_to_next_step # This should not happen in normal flow, but handle it just in case self.execute_assign_steps_batch(current_time) @@ -192,18 +192,18 @@ class SequenceManager var anim = step["animation"] self.engine.remove_animation(anim) - elif step["type"] == "assign" - # Assign steps should be handled in batches by execute_assign_steps_batch + elif step["type"] == "closure" + # Closure steps should be handled in batches by execute_assign_steps_batch # This should not happen in normal flow, but handle it for safety - var assign_closure = step["closure"] - if assign_closure != nil - assign_closure(self.engine) + var closure_func = step["closure"] + if closure_func != nil + closure_func(self.engine) end elif step["type"] == "subsequence" # Start sub-sequence (including repeat sequences) var sub_seq = step["sequence_manager"] - sub_seq.start() + sub_seq.start(current_time) end self.step_start_time = current_time @@ -228,16 +228,16 @@ class SequenceManager end end - # Execute all consecutive assign steps in a batch to avoid black frames + # Execute all consecutive closure steps in a batch to avoid black frames def execute_assign_steps_batch(current_time) - # Execute all consecutive assign steps + # Execute all consecutive closure steps (including both assign and log steps) while self.step_index < size(self.steps) var step = self.steps[self.step_index] - if step["type"] == "assign" - # Execute assignment closure - var assign_closure = step["closure"] - if assign_closure != nil - assign_closure(self.engine) + if step["type"] == "closure" + # Execute closure function + var closure_func = step["closure"] + if closure_func != nil + closure_func(self.engine) end self.step_index += 1 else @@ -257,8 +257,11 @@ class SequenceManager def complete_iteration(current_time) self.current_iteration += 1 + # Resolve repeat count (may be a function) + var resolved_repeat_count = self.get_resolved_repeat_count() + # Check if we should continue repeating - if self.repeat_count == -1 || self.current_iteration < self.repeat_count + if resolved_repeat_count == -1 || self.current_iteration < resolved_repeat_count # Start next iteration self.step_index = 0 self.execute_current_step(current_time) @@ -268,6 +271,15 @@ class SequenceManager end end + # Resolve repeat count (handle both functions and numbers) + def get_resolved_repeat_count() + if type(self.repeat_count) == "function" + return self.repeat_count(self.engine) + else + return self.repeat_count + end + end + # Check if sequence is running def is_sequence_running() return self.is_running diff --git a/lib/libesp32/berry_animation/src/dsl/token.be b/lib/libesp32/berry_animation/src/dsl/token.be index 996b3ffa9..3b2ab4f7b 100644 --- a/lib/libesp32/berry_animation/src/dsl/token.be +++ b/lib/libesp32/berry_animation/src/dsl/token.be @@ -40,7 +40,7 @@ class Token # Control flow keywords "play", "for", "with", "repeat", "times", "forever", "if", "else", "elif", "choose", "random", "on", "run", "wait", "goto", "interrupt", "resume", - "while", "from", "to", "return", + "while", "from", "to", "return", "reset", "restart", # Modifier keywords (only actual DSL syntax keywords) "at", "ease", "sync", "every", "stagger", "across", "pixels", diff --git a/lib/libesp32/berry_animation/src/dsl/transpiler.be b/lib/libesp32/berry_animation/src/dsl/transpiler.be index ef2d49b0b..d5f66d3a8 100644 --- a/lib/libesp32/berry_animation/src/dsl/transpiler.be +++ b/lib/libesp32/berry_animation/src/dsl/transpiler.be @@ -120,7 +120,7 @@ class SimpleDSLTranspiler var obj_name = run_stmt["name"] var comment = run_stmt["comment"] # In templates, use underscore suffix for local variables - self.add(f"engine.add_animation({obj_name}_){comment}") + self.add(f"engine.add({obj_name}_){comment}") end end @@ -197,8 +197,14 @@ class SimpleDSLTranspiler if !self.strip_initialized self.generate_default_strip_initialization() end - # Check if this is a property assignment (identifier.property = value) - self.process_property_assignment() + + # Check if this is a log function call + if tok.value == "log" && self.peek() != nil && self.peek().type == animation_dsl.Token.LEFT_PAREN + self.process_standalone_log() + else + # Check if this is a property assignment (identifier.property = value) + self.process_property_assignment() + end else self.skip_statement() end @@ -280,6 +286,9 @@ class SimpleDSLTranspiler if type(ref_instance) != "string" self.symbol_table[name] = ref_instance end + else + # Add simple color to symbol table with a marker + self.symbol_table[name] = "color" end end end @@ -333,7 +342,7 @@ class SimpleDSLTranspiler self.expect_left_paren() var value = self.expect_number() self.expect_comma() - var color = self.process_value("color") # Reuse existing color parsing + var color = self.process_palette_color() # Use specialized palette color processing self.expect_right_paren() # Convert to VRGB format entry and store as integer @@ -349,7 +358,7 @@ class SimpleDSLTranspiler return end - var color = self.process_value("color") # Reuse existing color parsing + var color = self.process_palette_color() # Use specialized palette color processing # Convert to VRGB format entry and store as integer after setting alpha to 0xFF var vrgb_entry = self.convert_to_vrgb(0xFF, color) @@ -474,6 +483,9 @@ class SimpleDSLTranspiler if type(ref_instance) != "string" self.symbol_table[name] = ref_instance end + else + # Add simple animation to symbol table with a marker + self.symbol_table[name] = "animation" end end end @@ -503,13 +515,31 @@ class SimpleDSLTranspiler end self.expect_assign() + + # Check if this is a value provider function call + var is_value_provider = false + var tok = self.current() + if (tok.type == animation_dsl.Token.KEYWORD || tok.type == animation_dsl.Token.IDENTIFIER) && + self.peek() != nil && self.peek().type == animation_dsl.Token.LEFT_PAREN + + var func_name = tok.value + # Check if this is a value provider factory function + if self._validate_value_provider_factory_exists(func_name) + is_value_provider = true + end + end + var value = self.process_value("variable") var inline_comment = self.collect_inline_comment() self.add(f"var {name}_ = {value}{inline_comment}") - # Add variable to symbol table for validation - # Use a string marker to indicate this is a variable (not an instance) - self.symbol_table[name] = "variable" + # Add to symbol table with appropriate marker + if is_value_provider + self.symbol_table[name] = "value_provider" + else + # Use a string marker to indicate this is a variable (not an instance) + self.symbol_table[name] = "variable" + end end # Process template definition: template name { param ... } @@ -569,7 +599,7 @@ class SimpleDSLTranspiler var body_tokens = [] var brace_depth = 0 - while !self.at_end() && !self.check_right_brace() + while !self.at_end() var tok = self.current() if tok == nil || tok.type == animation_dsl.Token.EOF @@ -643,9 +673,9 @@ class SimpleDSLTranspiler self.next() # skip 'forever' repeat_count = "-1" # -1 means forever else - var count = self.expect_number() + var count_expr = self.process_value("repeat_count") self.expect_keyword("times") - repeat_count = str(count) + repeat_count = count_expr end elif current_tok.value == "forever" # New syntax: sequence name forever { ... } (repeat is optional) @@ -656,9 +686,9 @@ class SimpleDSLTranspiler elif current_tok != nil && current_tok.type == animation_dsl.Token.NUMBER # New syntax: sequence name N times { ... } (repeat is optional) is_repeat_syntax = true - var count = self.expect_number() + var count_expr = self.process_value("repeat_count") self.expect_keyword("times") - repeat_count = str(count) + repeat_count = count_expr end self.expect_left_brace() @@ -712,6 +742,12 @@ class SimpleDSLTranspiler elif tok.type == animation_dsl.Token.KEYWORD && tok.value == "wait" self.process_wait_statement_fluent() + elif tok.type == animation_dsl.Token.IDENTIFIER && tok.value == "log" + self.process_log_statement_fluent() + + elif tok.type == animation_dsl.Token.KEYWORD && (tok.value == "reset" || tok.value == "restart") + self.process_reset_restart_statement_fluent() + elif tok.type == animation_dsl.Token.KEYWORD && tok.value == "repeat" self.next() # skip 'repeat' @@ -722,9 +758,9 @@ class SimpleDSLTranspiler self.next() # skip 'forever' repeat_count = "-1" # -1 means forever else - var count = self.expect_number() + var count_expr = self.process_value("repeat_count") self.expect_keyword("times") - repeat_count = str(count) + repeat_count = count_expr end self.expect_left_brace() @@ -751,9 +787,13 @@ class SimpleDSLTranspiler if self.peek() != nil && self.peek().type == animation_dsl.Token.DOT self.process_sequence_assignment_fluent() else + # Unknown identifier in sequence - this is an error + self.error(f"Unknown command '{tok.value}' in sequence. Valid sequence commands are: play, wait, repeat, reset, restart, log, or property assignments (object.property = value)") self.skip_statement() end else + # Unknown token type in sequence - this is an error + self.error(f"Invalid statement in sequence. Expected: play, wait, repeat, reset, restart, log, or property assignments") self.skip_statement() end end @@ -769,7 +809,7 @@ class SimpleDSLTranspiler # Create assignment step using fluent style var closure_code = f"def (engine) {object_name}_.{property_name} = {value} end" - self.add(f"{self.get_indent()}.push_assign_step({closure_code}){inline_comment}") + self.add(f"{self.get_indent()}.push_closure_step({closure_code}){inline_comment}") end # Process property assignment inside sequences: object.property = value (legacy) @@ -870,7 +910,66 @@ class SimpleDSLTranspiler var inline_comment = self.collect_inline_comment() self.add(f"{self.get_indent()}.push_wait_step({duration}){inline_comment}") end + + # Unified log processing method - handles all log contexts + def process_log_call(args_str, context_type, inline_comment) + # Convert DSL log("message") to Berry log(f"message", 3) + if context_type == "fluent" + # For sequence context - wrap in closure + var closure_code = f"def (engine) log(f\"{args_str}\", 3) end" + return f"{self.get_indent()}.push_closure_step({closure_code}){inline_comment}" + elif context_type == "expression" + # For expression context - return just the call (no inline comment) + return f"log(f\"{args_str}\", 3)" + else + # For standalone context - direct call with comment + return f"log(f\"{args_str}\", 3){inline_comment}" + end + end + # Helper method to process log statement using fluent style + def process_log_statement_fluent() + self.next() # skip 'log' + self.expect_left_paren() + + # Process the message string + var message_tok = self.current() + if message_tok == nil || message_tok.type != animation_dsl.Token.STRING + self.error("log() function requires a string message") + self.skip_statement() + return + end + + var message = message_tok.value + self.next() # consume string + self.expect_right_paren() + + var inline_comment = self.collect_inline_comment() + # Use unified log processing + var log_code = self.process_log_call(message, "fluent", inline_comment) + self.add(log_code) + end + + # Helper method to process reset/restart statement using fluent style + def process_reset_restart_statement_fluent() + var keyword = self.current().value # "reset" or "restart" + self.next() # skip 'reset' or 'restart' + + # Expect the value provider identifier + var val_name = self.expect_identifier() + + # Validate that the value is a value_provider at transpile time + if !self._validate_value_provider_reference(val_name, keyword) + self.skip_statement() + return + end + + var inline_comment = self.collect_inline_comment() + + # Generate closure step that calls val.start(engine.time_ms) + var closure_code = f"def (engine) {val_name}_.start(engine.time_ms) end" + self.add(f"{self.get_indent()}.push_closure_step({closure_code}){inline_comment}") + end # Process import statement: import user_functions or import module_name def process_import() @@ -883,6 +982,29 @@ class SimpleDSLTranspiler self.add(f'import {module_name} {inline_comment}') end + # Process standalone log statement: log("message") + def process_standalone_log() + self.next() # skip 'log' + self.expect_left_paren() + + # Process the message string + var message_tok = self.current() + if message_tok == nil || message_tok.type != animation_dsl.Token.STRING + self.error("log() function requires a string message") + self.skip_statement() + return + end + + var message = message_tok.value + self.next() # consume string + self.expect_right_paren() + + var inline_comment = self.collect_inline_comment() + # Use unified log processing + var log_code = self.process_log_call(message, "standalone", inline_comment) + self.add(log_code) + end + # Process run statement: run demo def process_run() self.next() # skip 'run' @@ -904,8 +1026,18 @@ class SimpleDSLTranspiler def process_property_assignment() var object_name = self.expect_identifier() - # Check if this is a function call (template call) + # Check if this is a function call (template call or special function) if self.current() != nil && self.current().type == animation_dsl.Token.LEFT_PAREN + # Special case for log function - allow as standalone + if object_name == "log" + var args = self.process_function_arguments() + var inline_comment = self.collect_inline_comment() + # Use unified log processing + var log_code = self.process_log_call(args, "standalone", inline_comment) + self.add(log_code) + return + end + # This is a standalone function call - check if it's a template if self.template_definitions.contains(object_name) var args = self.process_function_arguments() @@ -972,6 +1104,40 @@ class SimpleDSLTranspiler return self.process_additive_expression(context, true) # true = top-level expression end + # Process palette color with strict validation + # Only accepts predefined color names or hex color literals + def process_palette_color() + var tok = self.current() + if tok == nil + self.error("Expected color value in palette") + return "0xFFFFFFFF" + end + + # Handle hex color literals + if tok.type == animation_dsl.Token.COLOR + self.next() + return self.convert_color(tok.value) + end + + # Handle identifiers (color names) + if tok.type == animation_dsl.Token.IDENTIFIER + var name = tok.value + self.next() + + # Only accept predefined color names + if animation_dsl.is_color_name(name) + return self.get_named_color_value(name) + end + + # Reject any other identifier + self.error(f"Unknown color '{name}'. Palettes only accept hex colors (0xRRGGBB) or predefined color names (like 'red', 'blue', 'green'), but not custom colors defined previously. For dynamic palettes with custom colors, use user functions instead.") + return "0xFFFFFFFF" + end + + self.error("Expected color value in palette. Use hex colors (0xRRGGBB) or predefined color names (like 'red', 'blue', 'green').") + return "0xFFFFFFFF" + end + # Process additive expressions (+ and -) def process_additive_expression(context, is_top_level) var left = self.process_multiplicative_expression(context, is_top_level) @@ -989,8 +1155,20 @@ class SimpleDSLTranspiler end # Only create closures at the top level, but not for anonymous functions - if is_top_level && self.is_computed_expression_string(left) && !self.is_anonymous_function(left) - return self.create_computation_closure_from_string(left) + if is_top_level && !self.is_anonymous_function(left) + # Special handling for repeat_count context - always create simple function for property access + if context == "repeat_count" + import string + if self.is_computed_expression_string(left) || string.find(left, ".") >= 0 + return self.create_simple_function_from_string(left) + else + return left + end + elif self.is_computed_expression_string(left) + return self.create_computation_closure_from_string(left) + else + return left + end else return left end @@ -1147,8 +1325,13 @@ class SimpleDSLTranspiler object_ref = f"{name}_" end - # Return a closure expression that will be wrapped by the caller if needed - return f"self.resolve({object_ref}, '{property_name}')" + # For repeat_count context, generate simple property access + if context == "repeat_count" + return f"{object_ref}.{property_name}" + else + # Return a closure expression that will be wrapped by the caller if needed + return f"self.resolve({object_ref}, '{property_name}')" + end end # Check for palette constants @@ -1253,6 +1436,8 @@ class SimpleDSLTranspiler return has_dynamic_content end + + # Create a closure for computed expressions from a complete expression string def create_computation_closure_from_string(expr_str) import string @@ -1296,6 +1481,13 @@ class SimpleDSLTranspiler return f"animation.create_closure_value(engine, {closure_code})" end + # Create a simple function for repeat counts (no closure wrapper) + def create_simple_function_from_string(expr_str) + # For repeat counts, create a simple function that takes engine and returns the value + # The expression should already be in simple form like "col1_.palette_size" + return f"def (engine) return {expr_str} end" + end + # Transform a complete expression for use in a closure, handling ValueProvider instances def transform_expression_for_closure(expr_str) import string @@ -1489,6 +1681,13 @@ class SimpleDSLTranspiler return f"{func_name}({args})" # Return as-is for transformation in closure end + # Special case for log function - call global log function directly + if func_name == "log" + var args = self.process_function_arguments() + # Use unified log processing (return expression for use in contexts) + return self.process_log_call(args, "expression", "") + end + var args = self.process_function_arguments() # Check if it's a template call first @@ -1811,6 +2010,13 @@ class SimpleDSLTranspiler return f"self.{func_name}({args})" end + # Special case for log function in expressions + if func_name == "log" + var args = self.process_function_arguments_for_expression() + # Use unified log processing + return self.process_log_call(args, "expression", "") + end + # Check if this is a template call if self.template_definitions.contains(func_name) # This is a template call - treat like user function @@ -1927,6 +2133,13 @@ class SimpleDSLTranspiler return f"self.{func_name}({args})" # Prefix with self. for closure context end + # Special case for log function in nested calls + if func_name == "log" + var args = self.process_function_arguments_for_expression() + # Use unified log processing + return self.process_log_call(args, "expression", "") + end + # Check if this is a template call if self.template_definitions.contains(func_name) # This is a template call - treat like user function @@ -2382,13 +2595,8 @@ class SimpleDSLTranspiler var comment = run_stmt["comment"] # Check if this is a sequence or regular animation - if self.sequence_names.contains(name) - # It's a sequence - the closure returned a SequenceManager - self.add(f"engine.add_sequence_manager({name}_){comment}") - else - # It's a regular animation - self.add(f"engine.add_animation({name}_){comment}") - end + # Use unified add() method - it will detect the type automatically + self.add(f"engine.add({name}_){comment}") end # Single engine.start() call @@ -2430,7 +2638,7 @@ class SimpleDSLTranspiler # Assume it's an animation function call or reference var action = self.process_value("animation") self.add(f" var temp_anim = {action}") - self.add(f" engine.add_animation(temp_anim)") + self.add(f" engine.add(temp_anim)") end end @@ -2713,6 +2921,47 @@ class SimpleDSLTranspiler return self._validate_factory_function(func_name, animation.color_provider) end + # Validate value provider factory exists and creates animation.value_provider instance + def _validate_value_provider_factory_exists(func_name) + return self._validate_factory_function(func_name, animation.value_provider) + end + + # Validate that a referenced object is a value provider or animation + def _validate_value_provider_reference(object_name, context) + try + # Check if object exists in symbol table (user-defined) + if self.symbol_table.contains(object_name) + var marker = self.symbol_table[object_name] + + # Check if it's marked as a value provider or animation + if type(marker) == "string" && (marker == "value_provider" || marker == "animation") + return true # Valid value provider or animation + elif type(marker) == "string" + # It's some other type (variable, color, sequence, etc.) + self.error(f"'{object_name}' in {context} statement is not a value provider or animation. Only value providers (like oscillators) and animations can be reset/restarted.") + return false + else + # It's an actual instance - check if it's a value provider or animation + if isinstance(marker, animation.value_provider) || isinstance(marker, animation.animation) + return true # Valid value provider or animation + else + self.error(f"'{object_name}' in {context} statement is not a value provider or animation. Only value providers (like oscillators) and animations can be reset/restarted.") + return false + end + end + end + + # Object not found in symbol table + self.error(f"Undefined reference '{object_name}' in {context} statement. Make sure the value provider or animation is defined before use.") + return false + + except .. as e, msg + # If validation fails for any reason, report error but continue + self.error(f"Could not validate '{object_name}' in {context} statement: {msg}") + return false + end + end + # Process named arguments with parameter validation at transpile time def _process_named_arguments_generic(var_name, func_name) self.expect_left_paren() @@ -2777,6 +3026,7 @@ class SimpleDSLTranspiler # Check if this is a simple function call that doesn't need anonymous function treatment def _is_simple_function_call(func_name) # Functions that return simple values and don't use named parameters + # Note: log is handled by unified process_log_call method var simple_functions = [ "strip_length", "static_value" diff --git a/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be b/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be index 9c8af5ded..26a3233ee 100644 --- a/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be +++ b/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be @@ -27,7 +27,8 @@ class ColorCycleColorProvider : animation.color_provider ) }, "cycle_period": {"min": 0, "default": 5000}, # 0 = manual only, >0 = auto cycle time in ms - "next": {"default": 0} # Write 1 to move to next color + "next": {"default": 0}, # Write `` to move to next colors + "palette_size": {"type": "int", "default": 3} # Read-only: number of colors in palette } # Initialize a new ColorCycleColorProvider @@ -40,6 +41,9 @@ class ColorCycleColorProvider : animation.color_provider var palette_bytes = self._get_palette_bytes() self.current_color = self._get_color_at_index(0) # Start with first color in palette self.current_index = 0 # Start at first color + + # Initialize palette_size parameter + self.values["palette_size"] = self._get_palette_size() end # Get palette bytes from parameter with default fallback @@ -82,7 +86,11 @@ class ColorCycleColorProvider : animation.color_provider # @param name: string - Name of the parameter that changed # @param value: any - New value of the parameter def on_param_changed(name, value) - if name == "palette" + if name == "palette_size" + # palette_size is read-only - restore the actual value and raise an exception + self.values["palette_size"] = self._get_palette_size() + raise "value_error", "Parameter 'palette_size' is read-only" + elif name == "palette" # When palette changes, update current_color if current_index is valid var palette_size = self._get_palette_size() if palette_size > 0 @@ -92,6 +100,8 @@ class ColorCycleColorProvider : animation.color_provider end self.current_color = self._get_color_at_index(self.current_index) end + # Update palette_size parameter + self.values["palette_size"] = palette_size elif name == "next" && value != 0 # Add to color index var palette_size = self._get_palette_size() diff --git a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h index 7db1254dd..9ed62bec9 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h @@ -2084,52 +2084,110 @@ be_local_class(EventManager, })), be_str_weak(EventManager) ); -// compact class 'SequenceManager' ktab size: 39, total: 137 (saved 784 bytes) -static const bvalue be_ktab_class_SequenceManager[39] = { - /* K0 */ be_nested_str_weak(steps), - /* K1 */ be_nested_str_weak(push), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(play), - /* K4 */ be_nested_str_weak(animation), - /* K5 */ be_nested_str_weak(duration), - /* K6 */ be_const_int(0), - /* K7 */ be_nested_str_weak(is_running), - /* K8 */ be_nested_str_weak(current_iteration), - /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(repeat_count), - /* K11 */ be_nested_str_weak(step_index), - /* K12 */ be_nested_str_weak(execute_current_step), - /* K13 */ be_nested_str_weak(assign), - /* K14 */ be_nested_str_weak(closure), - /* K15 */ be_nested_str_weak(engine), - /* K16 */ be_nested_str_weak(complete_iteration), - /* K17 */ be_nested_str_weak(subsequence), - /* K18 */ be_nested_str_weak(sequence_manager), - /* K19 */ be_nested_str_weak(stop), - /* K20 */ be_nested_str_weak(stop_iteration), - /* K21 */ be_nested_str_weak(wait), - /* K22 */ be_nested_str_weak(active_sequence), - /* K23 */ be_nested_str_weak(sequence_state), - /* K24 */ be_nested_str_weak(step_start_time), - /* K25 */ be_nested_str_weak(is_repeat_sequence), - /* K26 */ be_nested_str_weak(update), - /* K27 */ be_nested_str_weak(advance_to_next_step), - /* K28 */ be_nested_str_weak(execute_assign_steps_batch), - /* K29 */ be_nested_str_weak(contains), - /* K30 */ be_nested_str_weak(remove_animation), - /* K31 */ be_nested_str_weak(clear), - /* K32 */ be_nested_str_weak(stop_all_subsequences), - /* K33 */ be_nested_str_weak(total_steps), - /* K34 */ be_nested_str_weak(current_step), - /* K35 */ be_nested_str_weak(elapsed_ms), - /* K36 */ be_nested_str_weak(time_ms), - /* K37 */ be_nested_str_weak(add_animation), - /* K38 */ be_nested_str_weak(start), +// compact class 'SequenceManager' ktab size: 40, total: 137 (saved 776 bytes) +static const bvalue be_ktab_class_SequenceManager[40] = { + /* K0 */ be_nested_str_weak(is_running), + /* K1 */ be_nested_str_weak(step_index), + /* K2 */ be_nested_str_weak(steps), + /* K3 */ be_nested_str_weak(total_steps), + /* K4 */ be_nested_str_weak(current_step), + /* K5 */ be_nested_str_weak(elapsed_ms), + /* K6 */ be_nested_str_weak(engine), + /* K7 */ be_nested_str_weak(time_ms), + /* K8 */ be_nested_str_weak(step_start_time), + /* K9 */ be_nested_str_weak(repeat_count), + /* K10 */ be_nested_str_weak(current_iteration), + /* K11 */ be_nested_str_weak(is_repeat_sequence), + /* K12 */ be_nested_str_weak(push), + /* K13 */ be_nested_str_weak(type), + /* K14 */ be_nested_str_weak(play), + /* K15 */ be_nested_str_weak(animation), + /* K16 */ be_nested_str_weak(duration), + /* K17 */ be_const_int(0), + /* K18 */ be_nested_str_weak(wait), + /* K19 */ be_nested_str_weak(complete_iteration), + /* K20 */ be_nested_str_weak(add_animation), + /* K21 */ be_nested_str_weak(start), + /* K22 */ be_nested_str_weak(stop), + /* K23 */ be_nested_str_weak(remove_animation), + /* K24 */ be_nested_str_weak(closure), + /* K25 */ be_nested_str_weak(subsequence), + /* K26 */ be_nested_str_weak(sequence_manager), + /* K27 */ be_nested_str_weak(update), + /* K28 */ be_nested_str_weak(advance_to_next_step), + /* K29 */ be_nested_str_weak(execute_assign_steps_batch), + /* K30 */ be_nested_str_weak(contains), + /* K31 */ be_const_int(1), + /* K32 */ be_nested_str_weak(clear), + /* K33 */ be_nested_str_weak(stop_all_subsequences), + /* K34 */ be_nested_str_weak(get_resolved_repeat_count), + /* K35 */ be_nested_str_weak(execute_current_step), + /* K36 */ be_nested_str_weak(active_sequence), + /* K37 */ be_nested_str_weak(sequence_state), + /* K38 */ be_nested_str_weak(function), + /* K39 */ be_nested_str_weak(stop_iteration), }; extern const bclass be_class_SequenceManager; +/******************************************************************** +** Solidified function: get_current_step_info +********************************************************************/ +be_local_closure(class_SequenceManager_get_current_step_info, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(get_current_step_info), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x78060005, // 0001 JMPF R1 #0008 + 0x88040101, // 0002 GETMBR R1 R0 K1 + 0x6008000C, // 0003 GETGBL R2 G12 + 0x880C0102, // 0004 GETMBR R3 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x28040202, // 0006 GE R1 R1 R2 + 0x78060001, // 0007 JMPF R1 #000A + 0x4C040000, // 0008 LDNIL R1 + 0x80040200, // 0009 RET 1 R1 + 0x60040013, // 000A GETGBL R1 G19 + 0x7C040000, // 000B CALL R1 0 + 0x88080101, // 000C GETMBR R2 R0 K1 + 0x98060202, // 000D SETIDX R1 K1 R2 + 0x6008000C, // 000E GETGBL R2 G12 + 0x880C0102, // 000F GETMBR R3 R0 K2 + 0x7C080200, // 0010 CALL R2 1 + 0x98060602, // 0011 SETIDX R1 K3 R2 + 0x88080102, // 0012 GETMBR R2 R0 K2 + 0x880C0101, // 0013 GETMBR R3 R0 K1 + 0x94080403, // 0014 GETIDX R2 R2 R3 + 0x98060802, // 0015 SETIDX R1 K4 R2 + 0x88080106, // 0016 GETMBR R2 R0 K6 + 0x88080507, // 0017 GETMBR R2 R2 K7 + 0x880C0108, // 0018 GETMBR R3 R0 K8 + 0x04080403, // 0019 SUB R2 R2 R3 + 0x98060A02, // 001A SETIDX R1 K5 R2 + 0x88080109, // 001B GETMBR R2 R0 K9 + 0x98061202, // 001C SETIDX R1 K9 R2 + 0x8808010A, // 001D GETMBR R2 R0 K10 + 0x98061402, // 001E SETIDX R1 K10 R2 + 0x8808010B, // 001F GETMBR R2 R0 K11 + 0x98061602, // 0020 SETIDX R1 K11 R2 + 0x80040200, // 0021 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: push_play_step ********************************************************************/ @@ -2147,19 +2205,19 @@ be_local_closure(class_SequenceManager_push_play_step, /* name */ be_str_weak(push_play_step), &be_const_str_solidified, ( &(const binstruction[15]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C0C0701, // 0001 GETMET R3 R3 K1 + 0x880C0102, // 0000 GETMBR R3 R0 K2 + 0x8C0C070C, // 0001 GETMET R3 R3 K12 0x60140013, // 0002 GETGBL R5 G19 0x7C140000, // 0003 CALL R5 0 - 0x98160503, // 0004 SETIDX R5 K2 K3 - 0x98160801, // 0005 SETIDX R5 K4 R1 + 0x98161B0E, // 0004 SETIDX R5 K13 K14 + 0x98161E01, // 0005 SETIDX R5 K15 R1 0x4C180000, // 0006 LDNIL R6 0x20180406, // 0007 NE R6 R2 R6 0x781A0001, // 0008 JMPF R6 #000B 0x5C180400, // 0009 MOVE R6 R2 0x70020000, // 000A JMP #000C - 0x58180006, // 000B LDCONST R6 K6 - 0x98160A06, // 000C SETIDX R5 K5 R6 + 0x58180011, // 000B LDCONST R6 K17 + 0x98162006, // 000C SETIDX R5 K16 R6 0x7C0C0400, // 000D CALL R3 2 0x80040000, // 000E RET 1 R0 }) @@ -2169,11 +2227,281 @@ be_local_closure(class_SequenceManager_push_play_step, /* name */ /******************************************************************** -** Solidified function: is_sequence_running +** Solidified function: push_wait_step ********************************************************************/ -be_local_closure(class_SequenceManager_is_sequence_running, /* name */ +be_local_closure(class_SequenceManager_push_wait_step, /* name */ be_nested_proto( - 2, /* nstack */ + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(push_wait_step), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x88080102, // 0000 GETMBR R2 R0 K2 + 0x8C08050C, // 0001 GETMET R2 R2 K12 + 0x60100013, // 0002 GETGBL R4 G19 + 0x7C100000, // 0003 CALL R4 0 + 0x98121B12, // 0004 SETIDX R4 K13 K18 + 0x98122001, // 0005 SETIDX R4 K16 R1 + 0x7C080400, // 0006 CALL R2 2 + 0x80040000, // 0007 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: execute_current_step +********************************************************************/ +be_local_closure(class_SequenceManager_execute_current_step, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(execute_current_step), + &be_const_str_solidified, + ( &(const binstruction[58]) { /* code */ + 0x88080101, // 0000 GETMBR R2 R0 K1 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x88100102, // 0002 GETMBR R4 R0 K2 + 0x7C0C0200, // 0003 CALL R3 1 + 0x28080403, // 0004 GE R2 R2 R3 + 0x780A0003, // 0005 JMPF R2 #000A + 0x8C080113, // 0006 GETMET R2 R0 K19 + 0x5C100200, // 0007 MOVE R4 R1 + 0x7C080400, // 0008 CALL R2 2 + 0x80000400, // 0009 RET 0 + 0x88080102, // 000A GETMBR R2 R0 K2 + 0x880C0101, // 000B GETMBR R3 R0 K1 + 0x94080403, // 000C GETIDX R2 R2 R3 + 0x940C050D, // 000D GETIDX R3 R2 K13 + 0x1C0C070E, // 000E EQ R3 R3 K14 + 0x780E0008, // 000F JMPF R3 #0019 + 0x940C050F, // 0010 GETIDX R3 R2 K15 + 0x88100106, // 0011 GETMBR R4 R0 K6 + 0x8C100914, // 0012 GETMET R4 R4 K20 + 0x5C180600, // 0013 MOVE R6 R3 + 0x7C100400, // 0014 CALL R4 2 + 0x8C100715, // 0015 GETMET R4 R3 K21 + 0x5C180200, // 0016 MOVE R6 R1 + 0x7C100400, // 0017 CALL R4 2 + 0x7002001E, // 0018 JMP #0038 + 0x940C050D, // 0019 GETIDX R3 R2 K13 + 0x1C0C0712, // 001A EQ R3 R3 K18 + 0x780E0000, // 001B JMPF R3 #001D + 0x7002001A, // 001C JMP #0038 + 0x940C050D, // 001D GETIDX R3 R2 K13 + 0x1C0C0716, // 001E EQ R3 R3 K22 + 0x780E0005, // 001F JMPF R3 #0026 + 0x940C050F, // 0020 GETIDX R3 R2 K15 + 0x88100106, // 0021 GETMBR R4 R0 K6 + 0x8C100917, // 0022 GETMET R4 R4 K23 + 0x5C180600, // 0023 MOVE R6 R3 + 0x7C100400, // 0024 CALL R4 2 + 0x70020011, // 0025 JMP #0038 + 0x940C050D, // 0026 GETIDX R3 R2 K13 + 0x1C0C0718, // 0027 EQ R3 R3 K24 + 0x780E0007, // 0028 JMPF R3 #0031 + 0x940C0518, // 0029 GETIDX R3 R2 K24 + 0x4C100000, // 002A LDNIL R4 + 0x20100604, // 002B NE R4 R3 R4 + 0x78120002, // 002C JMPF R4 #0030 + 0x5C100600, // 002D MOVE R4 R3 + 0x88140106, // 002E GETMBR R5 R0 K6 + 0x7C100200, // 002F CALL R4 1 + 0x70020006, // 0030 JMP #0038 + 0x940C050D, // 0031 GETIDX R3 R2 K13 + 0x1C0C0719, // 0032 EQ R3 R3 K25 + 0x780E0003, // 0033 JMPF R3 #0038 + 0x940C051A, // 0034 GETIDX R3 R2 K26 + 0x8C100715, // 0035 GETMET R4 R3 K21 + 0x5C180200, // 0036 MOVE R6 R1 + 0x7C100400, // 0037 CALL R4 2 + 0x90021001, // 0038 SETMBR R0 K8 R1 + 0x80000000, // 0039 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: update +********************************************************************/ +be_local_closure(class_SequenceManager_update, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(update), + &be_const_str_solidified, + ( &(const binstruction[52]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x780A0004, // 0001 JMPF R2 #0007 + 0x6008000C, // 0002 GETGBL R2 G12 + 0x880C0102, // 0003 GETMBR R3 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x1C080511, // 0005 EQ R2 R2 K17 + 0x780A0001, // 0006 JMPF R2 #0009 + 0x50080000, // 0007 LDBOOL R2 0 0 + 0x80040400, // 0008 RET 1 R2 + 0x88080102, // 0009 GETMBR R2 R0 K2 + 0x880C0101, // 000A GETMBR R3 R0 K1 + 0x94080403, // 000B GETIDX R2 R2 R3 + 0x940C050D, // 000C GETIDX R3 R2 K13 + 0x1C0C0719, // 000D EQ R3 R3 K25 + 0x780E0008, // 000E JMPF R3 #0018 + 0x940C051A, // 000F GETIDX R3 R2 K26 + 0x8C10071B, // 0010 GETMET R4 R3 K27 + 0x5C180200, // 0011 MOVE R6 R1 + 0x7C100400, // 0012 CALL R4 2 + 0x74120002, // 0013 JMPT R4 #0017 + 0x8C10011C, // 0014 GETMET R4 R0 K28 + 0x5C180200, // 0015 MOVE R6 R1 + 0x7C100400, // 0016 CALL R4 2 + 0x70020019, // 0017 JMP #0032 + 0x940C050D, // 0018 GETIDX R3 R2 K13 + 0x1C0C0718, // 0019 EQ R3 R3 K24 + 0x780E0003, // 001A JMPF R3 #001F + 0x8C0C011D, // 001B GETMET R3 R0 K29 + 0x5C140200, // 001C MOVE R5 R1 + 0x7C0C0400, // 001D CALL R3 2 + 0x70020012, // 001E JMP #0032 + 0x8C0C051E, // 001F GETMET R3 R2 K30 + 0x58140010, // 0020 LDCONST R5 K16 + 0x7C0C0400, // 0021 CALL R3 2 + 0x780E000B, // 0022 JMPF R3 #002F + 0x940C0510, // 0023 GETIDX R3 R2 K16 + 0x240C0711, // 0024 GT R3 R3 K17 + 0x780E0008, // 0025 JMPF R3 #002F + 0x880C0108, // 0026 GETMBR R3 R0 K8 + 0x040C0203, // 0027 SUB R3 R1 R3 + 0x94100510, // 0028 GETIDX R4 R2 K16 + 0x28100604, // 0029 GE R4 R3 R4 + 0x78120002, // 002A JMPF R4 #002E + 0x8C10011C, // 002B GETMET R4 R0 K28 + 0x5C180200, // 002C MOVE R6 R1 + 0x7C100400, // 002D CALL R4 2 + 0x70020002, // 002E JMP #0032 + 0x8C0C011C, // 002F GETMET R3 R0 K28 + 0x5C140200, // 0030 MOVE R5 R1 + 0x7C0C0400, // 0031 CALL R3 2 + 0x880C0100, // 0032 GETMBR R3 R0 K0 + 0x80040600, // 0033 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: push_step +********************************************************************/ +be_local_closure(class_SequenceManager_push_step, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(push_step), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88080102, // 0000 GETMBR R2 R0 K2 + 0x8C08050C, // 0001 GETMET R2 R2 K12 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80040000, // 0004 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: advance_to_next_step +********************************************************************/ +be_local_closure(class_SequenceManager_advance_to_next_step, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(advance_to_next_step), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x88080102, // 0000 GETMBR R2 R0 K2 + 0x880C0101, // 0001 GETMBR R3 R0 K1 + 0x94080403, // 0002 GETIDX R2 R2 R3 + 0x940C050D, // 0003 GETIDX R3 R2 K13 + 0x1C0C070E, // 0004 EQ R3 R3 K14 + 0x780E0008, // 0005 JMPF R3 #000F + 0x8C0C051E, // 0006 GETMET R3 R2 K30 + 0x58140010, // 0007 LDCONST R5 K16 + 0x7C0C0400, // 0008 CALL R3 2 + 0x780E0004, // 0009 JMPF R3 #000F + 0x940C050F, // 000A GETIDX R3 R2 K15 + 0x88100106, // 000B GETMBR R4 R0 K6 + 0x8C100917, // 000C GETMET R4 R4 K23 + 0x5C180600, // 000D MOVE R6 R3 + 0x7C100400, // 000E CALL R4 2 + 0x880C0101, // 000F GETMBR R3 R0 K1 + 0x000C071F, // 0010 ADD R3 R3 K31 + 0x90020203, // 0011 SETMBR R0 K1 R3 + 0x880C0101, // 0012 GETMBR R3 R0 K1 + 0x6010000C, // 0013 GETGBL R4 G12 + 0x88140102, // 0014 GETMBR R5 R0 K2 + 0x7C100200, // 0015 CALL R4 1 + 0x280C0604, // 0016 GE R3 R3 R4 + 0x780E0003, // 0017 JMPF R3 #001C + 0x8C0C0113, // 0018 GETMET R3 R0 K19 + 0x5C140200, // 0019 MOVE R5 R1 + 0x7C0C0400, // 001A CALL R3 2 + 0x70020002, // 001B JMP #001F + 0x8C0C011D, // 001C GETMET R3 R0 K29 + 0x5C140200, // 001D MOVE R5 R1 + 0x7C0C0400, // 001E CALL R3 2 + 0x80000000, // 001F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: stop +********************************************************************/ +be_local_closure(class_SequenceManager_stop, /* name */ + be_nested_proto( + 6, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -2182,11 +2510,43 @@ be_local_closure(class_SequenceManager_is_sequence_running, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(is_sequence_running), + be_str_weak(stop), &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040107, // 0000 GETMBR R1 R0 K7 - 0x80040200, // 0001 RET 1 R1 + ( &(const binstruction[34]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x7806001E, // 0001 JMPF R1 #0021 + 0x50040000, // 0002 LDBOOL R1 0 0 + 0x90020001, // 0003 SETMBR R0 K0 R1 + 0x88040101, // 0004 GETMBR R1 R0 K1 + 0x6008000C, // 0005 GETGBL R2 G12 + 0x880C0102, // 0006 GETMBR R3 R0 K2 + 0x7C080200, // 0007 CALL R2 1 + 0x14040202, // 0008 LT R1 R1 R2 + 0x78060011, // 0009 JMPF R1 #001C + 0x88040102, // 000A GETMBR R1 R0 K2 + 0x88080101, // 000B GETMBR R2 R0 K1 + 0x94040202, // 000C GETIDX R1 R1 R2 + 0x9408030D, // 000D GETIDX R2 R1 K13 + 0x1C08050E, // 000E EQ R2 R2 K14 + 0x780A0005, // 000F JMPF R2 #0016 + 0x9408030F, // 0010 GETIDX R2 R1 K15 + 0x880C0106, // 0011 GETMBR R3 R0 K6 + 0x8C0C0717, // 0012 GETMET R3 R3 K23 + 0x5C140400, // 0013 MOVE R5 R2 + 0x7C0C0400, // 0014 CALL R3 2 + 0x70020005, // 0015 JMP #001C + 0x9408030D, // 0016 GETIDX R2 R1 K13 + 0x1C080519, // 0017 EQ R2 R2 K25 + 0x780A0002, // 0018 JMPF R2 #001C + 0x9408031A, // 0019 GETIDX R2 R1 K26 + 0x8C0C0516, // 001A GETMET R3 R2 K22 + 0x7C0C0200, // 001B CALL R3 1 + 0x88040106, // 001C GETMBR R1 R0 K6 + 0x8C040320, // 001D GETMET R1 R1 K32 + 0x7C040200, // 001E CALL R1 1 + 0x8C040121, // 001F GETMET R1 R0 K33 + 0x7C040200, // 0020 CALL R1 1 + 0x80040000, // 0021 RET 1 R0 }) ) ); @@ -2198,7 +2558,7 @@ be_local_closure(class_SequenceManager_is_sequence_running, /* name */ ********************************************************************/ be_local_closure(class_SequenceManager_complete_iteration, /* name */ be_nested_proto( - 5, /* nstack */ + 6, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -2210,24 +2570,24 @@ be_local_closure(class_SequenceManager_complete_iteration, /* name */ be_str_weak(complete_iteration), &be_const_str_solidified, ( &(const binstruction[19]) { /* code */ - 0x88080108, // 0000 GETMBR R2 R0 K8 - 0x00080509, // 0001 ADD R2 R2 K9 - 0x90021002, // 0002 SETMBR R0 K8 R2 - 0x8808010A, // 0003 GETMBR R2 R0 K10 - 0x540DFFFE, // 0004 LDINT R3 -1 - 0x1C080403, // 0005 EQ R2 R2 R3 - 0x740A0003, // 0006 JMPT R2 #000B - 0x88080108, // 0007 GETMBR R2 R0 K8 + 0x8808010A, // 0000 GETMBR R2 R0 K10 + 0x0008051F, // 0001 ADD R2 R2 K31 + 0x90021402, // 0002 SETMBR R0 K10 R2 + 0x8C080122, // 0003 GETMET R2 R0 K34 + 0x7C080200, // 0004 CALL R2 1 + 0x540DFFFE, // 0005 LDINT R3 -1 + 0x1C0C0403, // 0006 EQ R3 R2 R3 + 0x740E0002, // 0007 JMPT R3 #000B 0x880C010A, // 0008 GETMBR R3 R0 K10 - 0x14080403, // 0009 LT R2 R2 R3 - 0x780A0004, // 000A JMPF R2 #0010 - 0x90021706, // 000B SETMBR R0 K11 K6 - 0x8C08010C, // 000C GETMET R2 R0 K12 - 0x5C100200, // 000D MOVE R4 R1 - 0x7C080400, // 000E CALL R2 2 + 0x140C0602, // 0009 LT R3 R3 R2 + 0x780E0004, // 000A JMPF R3 #0010 + 0x90020311, // 000B SETMBR R0 K1 K17 + 0x8C0C0123, // 000C GETMET R3 R0 K35 + 0x5C140200, // 000D MOVE R5 R1 + 0x7C0C0400, // 000E CALL R3 2 0x70020001, // 000F JMP #0012 - 0x50080000, // 0010 LDBOOL R2 0 0 - 0x90020E02, // 0011 SETMBR R0 K7 R2 + 0x500C0000, // 0010 LDBOOL R3 0 0 + 0x90020003, // 0011 SETMBR R0 K0 R3 0x80000000, // 0012 RET 0 }) ) @@ -2236,11 +2596,64 @@ be_local_closure(class_SequenceManager_complete_iteration, /* name */ /******************************************************************** -** Solidified function: execute_assign_steps_batch +** Solidified function: init ********************************************************************/ -be_local_closure(class_SequenceManager_execute_assign_steps_batch, /* name */ +be_local_closure(class_SequenceManager_init, /* name */ be_nested_proto( - 6, /* nstack */ + 4, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[30]) { /* code */ + 0x90020C01, // 0000 SETMBR R0 K6 R1 + 0x4C0C0000, // 0001 LDNIL R3 + 0x90024803, // 0002 SETMBR R0 K36 R3 + 0x600C0013, // 0003 GETGBL R3 G19 + 0x7C0C0000, // 0004 CALL R3 0 + 0x90024A03, // 0005 SETMBR R0 K37 R3 + 0x90020311, // 0006 SETMBR R0 K1 K17 + 0x90021111, // 0007 SETMBR R0 K8 K17 + 0x600C0012, // 0008 GETGBL R3 G18 + 0x7C0C0000, // 0009 CALL R3 0 + 0x90020403, // 000A SETMBR R0 K2 R3 + 0x500C0000, // 000B LDBOOL R3 0 0 + 0x90020003, // 000C SETMBR R0 K0 R3 + 0x4C0C0000, // 000D LDNIL R3 + 0x200C0403, // 000E NE R3 R2 R3 + 0x780E0001, // 000F JMPF R3 #0012 + 0x5C0C0400, // 0010 MOVE R3 R2 + 0x70020000, // 0011 JMP #0013 + 0x580C001F, // 0012 LDCONST R3 K31 + 0x90021203, // 0013 SETMBR R0 K9 R3 + 0x90021511, // 0014 SETMBR R0 K10 K17 + 0x4C0C0000, // 0015 LDNIL R3 + 0x200C0403, // 0016 NE R3 R2 R3 + 0x780E0001, // 0017 JMPF R3 #001A + 0x200C051F, // 0018 NE R3 R2 K31 + 0x740E0000, // 0019 JMPT R3 #001B + 0x500C0001, // 001A LDBOOL R3 0 1 + 0x500C0200, // 001B LDBOOL R3 1 0 + 0x90021603, // 001C SETMBR R0 K11 R3 + 0x80000000, // 001D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: push_closure_step +********************************************************************/ +be_local_closure(class_SequenceManager_push_closure_step, /* name */ + be_nested_proto( + 5, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -2249,48 +2662,99 @@ be_local_closure(class_SequenceManager_execute_assign_steps_batch, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(execute_assign_steps_batch), + be_str_weak(push_closure_step), &be_const_str_solidified, - ( &(const binstruction[39]) { /* code */ - 0x8808010B, // 0000 GETMBR R2 R0 K11 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x88100100, // 0002 GETMBR R4 R0 K0 - 0x7C0C0200, // 0003 CALL R3 1 - 0x14080403, // 0004 LT R2 R2 R3 - 0x780A0012, // 0005 JMPF R2 #0019 - 0x88080100, // 0006 GETMBR R2 R0 K0 - 0x880C010B, // 0007 GETMBR R3 R0 K11 - 0x94080403, // 0008 GETIDX R2 R2 R3 - 0x940C0502, // 0009 GETIDX R3 R2 K2 - 0x1C0C070D, // 000A EQ R3 R3 K13 - 0x780E000A, // 000B JMPF R3 #0017 - 0x940C050E, // 000C GETIDX R3 R2 K14 - 0x4C100000, // 000D LDNIL R4 - 0x20100604, // 000E NE R4 R3 R4 - 0x78120002, // 000F JMPF R4 #0013 - 0x5C100600, // 0010 MOVE R4 R3 - 0x8814010F, // 0011 GETMBR R5 R0 K15 - 0x7C100200, // 0012 CALL R4 1 - 0x8810010B, // 0013 GETMBR R4 R0 K11 - 0x00100909, // 0014 ADD R4 R4 K9 - 0x90021604, // 0015 SETMBR R0 K11 R4 - 0x70020000, // 0016 JMP #0018 - 0x70020000, // 0017 JMP #0019 - 0x7001FFE6, // 0018 JMP #0000 - 0x8808010B, // 0019 GETMBR R2 R0 K11 - 0x600C000C, // 001A GETGBL R3 G12 - 0x88100100, // 001B GETMBR R4 R0 K0 - 0x7C0C0200, // 001C CALL R3 1 - 0x14080403, // 001D LT R2 R2 R3 - 0x780A0003, // 001E JMPF R2 #0023 - 0x8C08010C, // 001F GETMET R2 R0 K12 - 0x5C100200, // 0020 MOVE R4 R1 - 0x7C080400, // 0021 CALL R2 2 - 0x70020002, // 0022 JMP #0026 - 0x8C080110, // 0023 GETMET R2 R0 K16 - 0x5C100200, // 0024 MOVE R4 R1 - 0x7C080400, // 0025 CALL R2 2 - 0x80000000, // 0026 RET 0 + ( &(const binstruction[ 8]) { /* code */ + 0x88080102, // 0000 GETMBR R2 R0 K2 + 0x8C08050C, // 0001 GETMET R2 R2 K12 + 0x60100013, // 0002 GETGBL R4 G19 + 0x7C100000, // 0003 CALL R4 0 + 0x98121B18, // 0004 SETIDX R4 K13 K24 + 0x98123001, // 0005 SETIDX R4 K24 R1 + 0x7C080400, // 0006 CALL R2 2 + 0x80040000, // 0007 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: start +********************************************************************/ +be_local_closure(class_SequenceManager_start, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(start), + &be_const_str_solidified, + ( &(const binstruction[23]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x780A0006, // 0001 JMPF R2 #0009 + 0x50080000, // 0002 LDBOOL R2 0 0 + 0x90020002, // 0003 SETMBR R0 K0 R2 + 0x88080106, // 0004 GETMBR R2 R0 K6 + 0x8C080520, // 0005 GETMET R2 R2 K32 + 0x7C080200, // 0006 CALL R2 1 + 0x8C080121, // 0007 GETMET R2 R0 K33 + 0x7C080200, // 0008 CALL R2 1 + 0x90020311, // 0009 SETMBR R0 K1 K17 + 0x90021001, // 000A SETMBR R0 K8 R1 + 0x90021511, // 000B SETMBR R0 K10 K17 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x90020002, // 000D SETMBR R0 K0 R2 + 0x6008000C, // 000E GETGBL R2 G12 + 0x880C0102, // 000F GETMBR R3 R0 K2 + 0x7C080200, // 0010 CALL R2 1 + 0x24080511, // 0011 GT R2 R2 K17 + 0x780A0002, // 0012 JMPF R2 #0016 + 0x8C080123, // 0013 GETMET R2 R0 K35 + 0x5C100200, // 0014 MOVE R4 R1 + 0x7C080400, // 0015 CALL R2 2 + 0x80040000, // 0016 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_resolved_repeat_count +********************************************************************/ +be_local_closure(class_SequenceManager_get_resolved_repeat_count, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_SequenceManager, /* shared constants */ + be_str_weak(get_resolved_repeat_count), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x60040004, // 0000 GETGBL R1 G4 + 0x88080109, // 0001 GETMBR R2 R0 K9 + 0x7C040200, // 0002 CALL R1 1 + 0x1C040326, // 0003 EQ R1 R1 K38 + 0x78060004, // 0004 JMPF R1 #000A + 0x8C040109, // 0005 GETMET R1 R0 K9 + 0x880C0106, // 0006 GETMBR R3 R0 K6 + 0x7C040400, // 0007 CALL R1 2 + 0x80040200, // 0008 RET 1 R1 + 0x70020001, // 0009 JMP #000C + 0x88040109, // 000A GETMBR R1 R0 K9 + 0x80040200, // 000B RET 1 R1 + 0x80000000, // 000C RET 0 }) ) ); @@ -2315,19 +2779,19 @@ be_local_closure(class_SequenceManager_stop_all_subsequences, /* name */ &be_const_str_solidified, ( &(const binstruction[17]) { /* code */ 0x60040010, // 0000 GETGBL R1 G16 - 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x88080102, // 0001 GETMBR R2 R0 K2 0x7C040200, // 0002 CALL R1 1 0xA8020008, // 0003 EXBLK 0 #000D 0x5C080200, // 0004 MOVE R2 R1 0x7C080000, // 0005 CALL R2 0 - 0x940C0502, // 0006 GETIDX R3 R2 K2 - 0x1C0C0711, // 0007 EQ R3 R3 K17 + 0x940C050D, // 0006 GETIDX R3 R2 K13 + 0x1C0C0719, // 0007 EQ R3 R3 K25 0x780E0002, // 0008 JMPF R3 #000C - 0x940C0512, // 0009 GETIDX R3 R2 K18 - 0x8C100713, // 000A GETMET R4 R3 K19 + 0x940C051A, // 0009 GETIDX R3 R2 K26 + 0x8C100716, // 000A GETMET R4 R3 K22 0x7C100200, // 000B CALL R4 1 0x7001FFF6, // 000C JMP #0004 - 0x58040014, // 000D LDCONST R1 K20 + 0x58040027, // 000D LDCONST R1 K39 0xAC040200, // 000E CATCH R1 1 0 0xB0080000, // 000F RAISE 2 R0 R0 0x80040000, // 0010 RET 1 R0 @@ -2337,165 +2801,6 @@ be_local_closure(class_SequenceManager_stop_all_subsequences, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: push_wait_step -********************************************************************/ -be_local_closure(class_SequenceManager_push_wait_step, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(push_wait_step), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x60100013, // 0002 GETGBL R4 G19 - 0x7C100000, // 0003 CALL R4 0 - 0x98120515, // 0004 SETIDX R4 K2 K21 - 0x98120A01, // 0005 SETIDX R4 K5 R1 - 0x7C080400, // 0006 CALL R2 2 - 0x80040000, // 0007 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SequenceManager_init, /* name */ - be_nested_proto( - 4, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[30]) { /* code */ - 0x90021E01, // 0000 SETMBR R0 K15 R1 - 0x4C0C0000, // 0001 LDNIL R3 - 0x90022C03, // 0002 SETMBR R0 K22 R3 - 0x600C0013, // 0003 GETGBL R3 G19 - 0x7C0C0000, // 0004 CALL R3 0 - 0x90022E03, // 0005 SETMBR R0 K23 R3 - 0x90021706, // 0006 SETMBR R0 K11 K6 - 0x90023106, // 0007 SETMBR R0 K24 K6 - 0x600C0012, // 0008 GETGBL R3 G18 - 0x7C0C0000, // 0009 CALL R3 0 - 0x90020003, // 000A SETMBR R0 K0 R3 - 0x500C0000, // 000B LDBOOL R3 0 0 - 0x90020E03, // 000C SETMBR R0 K7 R3 - 0x4C0C0000, // 000D LDNIL R3 - 0x200C0403, // 000E NE R3 R2 R3 - 0x780E0001, // 000F JMPF R3 #0012 - 0x5C0C0400, // 0010 MOVE R3 R2 - 0x70020000, // 0011 JMP #0013 - 0x580C0009, // 0012 LDCONST R3 K9 - 0x90021403, // 0013 SETMBR R0 K10 R3 - 0x90021106, // 0014 SETMBR R0 K8 K6 - 0x4C0C0000, // 0015 LDNIL R3 - 0x200C0403, // 0016 NE R3 R2 R3 - 0x780E0001, // 0017 JMPF R3 #001A - 0x200C0509, // 0018 NE R3 R2 K9 - 0x740E0000, // 0019 JMPT R3 #001B - 0x500C0001, // 001A LDBOOL R3 0 1 - 0x500C0200, // 001B LDBOOL R3 1 0 - 0x90023203, // 001C SETMBR R0 K25 R3 - 0x80000000, // 001D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: update -********************************************************************/ -be_local_closure(class_SequenceManager_update, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(update), - &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ - 0x88080107, // 0000 GETMBR R2 R0 K7 - 0x780A0004, // 0001 JMPF R2 #0007 - 0x6008000C, // 0002 GETGBL R2 G12 - 0x880C0100, // 0003 GETMBR R3 R0 K0 - 0x7C080200, // 0004 CALL R2 1 - 0x1C080506, // 0005 EQ R2 R2 K6 - 0x780A0001, // 0006 JMPF R2 #0009 - 0x50080000, // 0007 LDBOOL R2 0 0 - 0x80040400, // 0008 RET 1 R2 - 0x88080100, // 0009 GETMBR R2 R0 K0 - 0x880C010B, // 000A GETMBR R3 R0 K11 - 0x94080403, // 000B GETIDX R2 R2 R3 - 0x940C0502, // 000C GETIDX R3 R2 K2 - 0x1C0C0711, // 000D EQ R3 R3 K17 - 0x780E0008, // 000E JMPF R3 #0018 - 0x940C0512, // 000F GETIDX R3 R2 K18 - 0x8C10071A, // 0010 GETMET R4 R3 K26 - 0x5C180200, // 0011 MOVE R6 R1 - 0x7C100400, // 0012 CALL R4 2 - 0x74120002, // 0013 JMPT R4 #0017 - 0x8C10011B, // 0014 GETMET R4 R0 K27 - 0x5C180200, // 0015 MOVE R6 R1 - 0x7C100400, // 0016 CALL R4 2 - 0x70020019, // 0017 JMP #0032 - 0x940C0502, // 0018 GETIDX R3 R2 K2 - 0x1C0C070D, // 0019 EQ R3 R3 K13 - 0x780E0003, // 001A JMPF R3 #001F - 0x8C0C011C, // 001B GETMET R3 R0 K28 - 0x5C140200, // 001C MOVE R5 R1 - 0x7C0C0400, // 001D CALL R3 2 - 0x70020012, // 001E JMP #0032 - 0x8C0C051D, // 001F GETMET R3 R2 K29 - 0x58140005, // 0020 LDCONST R5 K5 - 0x7C0C0400, // 0021 CALL R3 2 - 0x780E000B, // 0022 JMPF R3 #002F - 0x940C0505, // 0023 GETIDX R3 R2 K5 - 0x240C0706, // 0024 GT R3 R3 K6 - 0x780E0008, // 0025 JMPF R3 #002F - 0x880C0118, // 0026 GETMBR R3 R0 K24 - 0x040C0203, // 0027 SUB R3 R1 R3 - 0x94100505, // 0028 GETIDX R4 R2 K5 - 0x28100604, // 0029 GE R4 R3 R4 - 0x78120002, // 002A JMPF R4 #002E - 0x8C10011B, // 002B GETMET R4 R0 K27 - 0x5C180200, // 002C MOVE R6 R1 - 0x7C100400, // 002D CALL R4 2 - 0x70020002, // 002E JMP #0032 - 0x8C0C011B, // 002F GETMET R3 R0 K27 - 0x5C140200, // 0030 MOVE R5 R1 - 0x7C0C0400, // 0031 CALL R3 2 - 0x880C0107, // 0032 GETMBR R3 R0 K7 - 0x80040600, // 0033 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: push_repeat_subsequence ********************************************************************/ @@ -2513,12 +2818,12 @@ be_local_closure(class_SequenceManager_push_repeat_subsequence, /* name */ be_str_weak(push_repeat_subsequence), &be_const_str_solidified, ( &(const binstruction[ 8]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x88080102, // 0000 GETMBR R2 R0 K2 + 0x8C08050C, // 0001 GETMET R2 R2 K12 0x60100013, // 0002 GETGBL R4 G19 0x7C100000, // 0003 CALL R4 0 - 0x98120511, // 0004 SETIDX R4 K2 K17 - 0x98122401, // 0005 SETIDX R4 K18 R1 + 0x98121B19, // 0004 SETIDX R4 K13 K25 + 0x98123401, // 0005 SETIDX R4 K26 R1 0x7C080400, // 0006 CALL R2 2 0x80040000, // 0007 RET 1 R0 }) @@ -2528,12 +2833,12 @@ be_local_closure(class_SequenceManager_push_repeat_subsequence, /* name */ /******************************************************************** -** Solidified function: push_assign_step +** Solidified function: is_sequence_running ********************************************************************/ -be_local_closure(class_SequenceManager_push_assign_step, /* name */ +be_local_closure(class_SequenceManager_is_sequence_running, /* name */ be_nested_proto( - 5, /* nstack */ - 2, /* argc */ + 2, /* nstack */ + 1, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -2541,17 +2846,11 @@ be_local_closure(class_SequenceManager_push_assign_step, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(push_assign_step), + be_str_weak(is_sequence_running), &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x60100013, // 0002 GETGBL R4 G19 - 0x7C100000, // 0003 CALL R4 0 - 0x9812050D, // 0004 SETIDX R4 K2 K13 - 0x98121C01, // 0005 SETIDX R4 K14 R1 - 0x7C080400, // 0006 CALL R2 2 - 0x80040000, // 0007 RET 1 R0 + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 }) ) ); @@ -2559,96 +2858,11 @@ be_local_closure(class_SequenceManager_push_assign_step, /* name */ /******************************************************************** -** Solidified function: push_step +** Solidified function: execute_assign_steps_batch ********************************************************************/ -be_local_closure(class_SequenceManager_push_step, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(push_step), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x80040000, // 0004 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: stop -********************************************************************/ -be_local_closure(class_SequenceManager_stop, /* name */ +be_local_closure(class_SequenceManager_execute_assign_steps_batch, /* name */ be_nested_proto( 6, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(stop), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x88040107, // 0000 GETMBR R1 R0 K7 - 0x7806001E, // 0001 JMPF R1 #0021 - 0x50040000, // 0002 LDBOOL R1 0 0 - 0x90020E01, // 0003 SETMBR R0 K7 R1 - 0x8804010B, // 0004 GETMBR R1 R0 K11 - 0x6008000C, // 0005 GETGBL R2 G12 - 0x880C0100, // 0006 GETMBR R3 R0 K0 - 0x7C080200, // 0007 CALL R2 1 - 0x14040202, // 0008 LT R1 R1 R2 - 0x78060011, // 0009 JMPF R1 #001C - 0x88040100, // 000A GETMBR R1 R0 K0 - 0x8808010B, // 000B GETMBR R2 R0 K11 - 0x94040202, // 000C GETIDX R1 R1 R2 - 0x94080302, // 000D GETIDX R2 R1 K2 - 0x1C080503, // 000E EQ R2 R2 K3 - 0x780A0005, // 000F JMPF R2 #0016 - 0x94080304, // 0010 GETIDX R2 R1 K4 - 0x880C010F, // 0011 GETMBR R3 R0 K15 - 0x8C0C071E, // 0012 GETMET R3 R3 K30 - 0x5C140400, // 0013 MOVE R5 R2 - 0x7C0C0400, // 0014 CALL R3 2 - 0x70020005, // 0015 JMP #001C - 0x94080302, // 0016 GETIDX R2 R1 K2 - 0x1C080511, // 0017 EQ R2 R2 K17 - 0x780A0002, // 0018 JMPF R2 #001C - 0x94080312, // 0019 GETIDX R2 R1 K18 - 0x8C0C0513, // 001A GETMET R3 R2 K19 - 0x7C0C0200, // 001B CALL R3 1 - 0x8804010F, // 001C GETMBR R1 R0 K15 - 0x8C04031F, // 001D GETMET R1 R1 K31 - 0x7C040200, // 001E CALL R1 1 - 0x8C040120, // 001F GETMET R1 R0 K32 - 0x7C040200, // 0020 CALL R1 1 - 0x80040000, // 0021 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: advance_to_next_step -********************************************************************/ -be_local_closure(class_SequenceManager_advance_to_next_step, /* name */ - be_nested_proto( - 7, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -2657,224 +2871,48 @@ be_local_closure(class_SequenceManager_advance_to_next_step, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(advance_to_next_step), + be_str_weak(execute_assign_steps_batch), &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x880C010B, // 0001 GETMBR R3 R0 K11 - 0x94080403, // 0002 GETIDX R2 R2 R3 - 0x940C0502, // 0003 GETIDX R3 R2 K2 - 0x1C0C0703, // 0004 EQ R3 R3 K3 - 0x780E0008, // 0005 JMPF R3 #000F - 0x8C0C051D, // 0006 GETMET R3 R2 K29 - 0x58140005, // 0007 LDCONST R5 K5 - 0x7C0C0400, // 0008 CALL R3 2 - 0x780E0004, // 0009 JMPF R3 #000F - 0x940C0504, // 000A GETIDX R3 R2 K4 - 0x8810010F, // 000B GETMBR R4 R0 K15 - 0x8C10091E, // 000C GETMET R4 R4 K30 - 0x5C180600, // 000D MOVE R6 R3 - 0x7C100400, // 000E CALL R4 2 - 0x880C010B, // 000F GETMBR R3 R0 K11 - 0x000C0709, // 0010 ADD R3 R3 K9 - 0x90021603, // 0011 SETMBR R0 K11 R3 - 0x880C010B, // 0012 GETMBR R3 R0 K11 - 0x6010000C, // 0013 GETGBL R4 G12 - 0x88140100, // 0014 GETMBR R5 R0 K0 - 0x7C100200, // 0015 CALL R4 1 - 0x280C0604, // 0016 GE R3 R3 R4 - 0x780E0003, // 0017 JMPF R3 #001C - 0x8C0C0110, // 0018 GETMET R3 R0 K16 - 0x5C140200, // 0019 MOVE R5 R1 - 0x7C0C0400, // 001A CALL R3 2 - 0x70020002, // 001B JMP #001F - 0x8C0C011C, // 001C GETMET R3 R0 K28 - 0x5C140200, // 001D MOVE R5 R1 - 0x7C0C0400, // 001E CALL R3 2 - 0x80000000, // 001F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: start -********************************************************************/ -be_local_closure(class_SequenceManager_start, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(start), - &be_const_str_solidified, - ( &(const binstruction[23]) { /* code */ - 0x88080107, // 0000 GETMBR R2 R0 K7 - 0x780A0006, // 0001 JMPF R2 #0009 - 0x50080000, // 0002 LDBOOL R2 0 0 - 0x90020E02, // 0003 SETMBR R0 K7 R2 - 0x8808010F, // 0004 GETMBR R2 R0 K15 - 0x8C08051F, // 0005 GETMET R2 R2 K31 - 0x7C080200, // 0006 CALL R2 1 - 0x8C080120, // 0007 GETMET R2 R0 K32 - 0x7C080200, // 0008 CALL R2 1 - 0x90021706, // 0009 SETMBR R0 K11 K6 - 0x90023001, // 000A SETMBR R0 K24 R1 - 0x90021106, // 000B SETMBR R0 K8 K6 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x90020E02, // 000D SETMBR R0 K7 R2 - 0x6008000C, // 000E GETGBL R2 G12 - 0x880C0100, // 000F GETMBR R3 R0 K0 - 0x7C080200, // 0010 CALL R2 1 - 0x24080506, // 0011 GT R2 R2 K6 - 0x780A0002, // 0012 JMPF R2 #0016 - 0x8C08010C, // 0013 GETMET R2 R0 K12 - 0x5C100200, // 0014 MOVE R4 R1 - 0x7C080400, // 0015 CALL R2 2 - 0x80040000, // 0016 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_current_step_info -********************************************************************/ -be_local_closure(class_SequenceManager_get_current_step_info, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(get_current_step_info), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x88040107, // 0000 GETMBR R1 R0 K7 - 0x78060005, // 0001 JMPF R1 #0008 - 0x8804010B, // 0002 GETMBR R1 R0 K11 - 0x6008000C, // 0003 GETGBL R2 G12 - 0x880C0100, // 0004 GETMBR R3 R0 K0 - 0x7C080200, // 0005 CALL R2 1 - 0x28040202, // 0006 GE R1 R1 R2 - 0x78060001, // 0007 JMPF R1 #000A - 0x4C040000, // 0008 LDNIL R1 - 0x80040200, // 0009 RET 1 R1 - 0x60040013, // 000A GETGBL R1 G19 - 0x7C040000, // 000B CALL R1 0 - 0x8808010B, // 000C GETMBR R2 R0 K11 - 0x98061602, // 000D SETIDX R1 K11 R2 - 0x6008000C, // 000E GETGBL R2 G12 - 0x880C0100, // 000F GETMBR R3 R0 K0 - 0x7C080200, // 0010 CALL R2 1 - 0x98064202, // 0011 SETIDX R1 K33 R2 - 0x88080100, // 0012 GETMBR R2 R0 K0 - 0x880C010B, // 0013 GETMBR R3 R0 K11 - 0x94080403, // 0014 GETIDX R2 R2 R3 - 0x98064402, // 0015 SETIDX R1 K34 R2 - 0x8808010F, // 0016 GETMBR R2 R0 K15 - 0x88080524, // 0017 GETMBR R2 R2 K36 - 0x880C0118, // 0018 GETMBR R3 R0 K24 - 0x04080403, // 0019 SUB R2 R2 R3 - 0x98064602, // 001A SETIDX R1 K35 R2 - 0x8808010A, // 001B GETMBR R2 R0 K10 - 0x98061402, // 001C SETIDX R1 K10 R2 - 0x88080108, // 001D GETMBR R2 R0 K8 - 0x98061002, // 001E SETIDX R1 K8 R2 - 0x88080119, // 001F GETMBR R2 R0 K25 - 0x98063202, // 0020 SETIDX R1 K25 R2 - 0x80040200, // 0021 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: execute_current_step -********************************************************************/ -be_local_closure(class_SequenceManager_execute_current_step, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_SequenceManager, /* shared constants */ - be_str_weak(execute_current_step), - &be_const_str_solidified, - ( &(const binstruction[57]) { /* code */ - 0x8808010B, // 0000 GETMBR R2 R0 K11 + ( &(const binstruction[39]) { /* code */ + 0x88080101, // 0000 GETMBR R2 R0 K1 0x600C000C, // 0001 GETGBL R3 G12 - 0x88100100, // 0002 GETMBR R4 R0 K0 + 0x88100102, // 0002 GETMBR R4 R0 K2 0x7C0C0200, // 0003 CALL R3 1 - 0x28080403, // 0004 GE R2 R2 R3 - 0x780A0003, // 0005 JMPF R2 #000A - 0x8C080110, // 0006 GETMET R2 R0 K16 - 0x5C100200, // 0007 MOVE R4 R1 - 0x7C080400, // 0008 CALL R2 2 - 0x80000400, // 0009 RET 0 - 0x88080100, // 000A GETMBR R2 R0 K0 - 0x880C010B, // 000B GETMBR R3 R0 K11 - 0x94080403, // 000C GETIDX R2 R2 R3 - 0x940C0502, // 000D GETIDX R3 R2 K2 - 0x1C0C0703, // 000E EQ R3 R3 K3 - 0x780E0008, // 000F JMPF R3 #0019 - 0x940C0504, // 0010 GETIDX R3 R2 K4 - 0x8810010F, // 0011 GETMBR R4 R0 K15 - 0x8C100925, // 0012 GETMET R4 R4 K37 - 0x5C180600, // 0013 MOVE R6 R3 - 0x7C100400, // 0014 CALL R4 2 - 0x8C100726, // 0015 GETMET R4 R3 K38 - 0x5C180200, // 0016 MOVE R6 R1 - 0x7C100400, // 0017 CALL R4 2 - 0x7002001D, // 0018 JMP #0037 - 0x940C0502, // 0019 GETIDX R3 R2 K2 - 0x1C0C0715, // 001A EQ R3 R3 K21 - 0x780E0000, // 001B JMPF R3 #001D - 0x70020019, // 001C JMP #0037 - 0x940C0502, // 001D GETIDX R3 R2 K2 - 0x1C0C0713, // 001E EQ R3 R3 K19 - 0x780E0005, // 001F JMPF R3 #0026 - 0x940C0504, // 0020 GETIDX R3 R2 K4 - 0x8810010F, // 0021 GETMBR R4 R0 K15 - 0x8C10091E, // 0022 GETMET R4 R4 K30 - 0x5C180600, // 0023 MOVE R6 R3 - 0x7C100400, // 0024 CALL R4 2 - 0x70020010, // 0025 JMP #0037 - 0x940C0502, // 0026 GETIDX R3 R2 K2 - 0x1C0C070D, // 0027 EQ R3 R3 K13 - 0x780E0007, // 0028 JMPF R3 #0031 - 0x940C050E, // 0029 GETIDX R3 R2 K14 - 0x4C100000, // 002A LDNIL R4 - 0x20100604, // 002B NE R4 R3 R4 - 0x78120002, // 002C JMPF R4 #0030 - 0x5C100600, // 002D MOVE R4 R3 - 0x8814010F, // 002E GETMBR R5 R0 K15 - 0x7C100200, // 002F CALL R4 1 - 0x70020005, // 0030 JMP #0037 - 0x940C0502, // 0031 GETIDX R3 R2 K2 - 0x1C0C0711, // 0032 EQ R3 R3 K17 - 0x780E0002, // 0033 JMPF R3 #0037 - 0x940C0512, // 0034 GETIDX R3 R2 K18 - 0x8C100726, // 0035 GETMET R4 R3 K38 - 0x7C100200, // 0036 CALL R4 1 - 0x90023001, // 0037 SETMBR R0 K24 R1 - 0x80000000, // 0038 RET 0 + 0x14080403, // 0004 LT R2 R2 R3 + 0x780A0012, // 0005 JMPF R2 #0019 + 0x88080102, // 0006 GETMBR R2 R0 K2 + 0x880C0101, // 0007 GETMBR R3 R0 K1 + 0x94080403, // 0008 GETIDX R2 R2 R3 + 0x940C050D, // 0009 GETIDX R3 R2 K13 + 0x1C0C0718, // 000A EQ R3 R3 K24 + 0x780E000A, // 000B JMPF R3 #0017 + 0x940C0518, // 000C GETIDX R3 R2 K24 + 0x4C100000, // 000D LDNIL R4 + 0x20100604, // 000E NE R4 R3 R4 + 0x78120002, // 000F JMPF R4 #0013 + 0x5C100600, // 0010 MOVE R4 R3 + 0x88140106, // 0011 GETMBR R5 R0 K6 + 0x7C100200, // 0012 CALL R4 1 + 0x88100101, // 0013 GETMBR R4 R0 K1 + 0x0010091F, // 0014 ADD R4 R4 K31 + 0x90020204, // 0015 SETMBR R0 K1 R4 + 0x70020000, // 0016 JMP #0018 + 0x70020000, // 0017 JMP #0019 + 0x7001FFE6, // 0018 JMP #0000 + 0x88080101, // 0019 GETMBR R2 R0 K1 + 0x600C000C, // 001A GETGBL R3 G12 + 0x88100102, // 001B GETMBR R4 R0 K2 + 0x7C0C0200, // 001C CALL R3 1 + 0x14080403, // 001D LT R2 R2 R3 + 0x780A0003, // 001E JMPF R2 #0023 + 0x8C080123, // 001F GETMET R2 R0 K35 + 0x5C100200, // 0020 MOVE R4 R1 + 0x7C080400, // 0021 CALL R2 2 + 0x70020002, // 0022 JMP #0026 + 0x8C080113, // 0023 GETMET R2 R0 K19 + 0x5C100200, // 0024 MOVE R4 R1 + 0x7C080400, // 0025 CALL R2 2 + 0x80000000, // 0026 RET 0 }) ) ); @@ -2887,34 +2925,35 @@ be_local_closure(class_SequenceManager_execute_current_step, /* name */ be_local_class(SequenceManager, 10, NULL, - be_nested_map(26, + be_nested_map(27, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(stop_all_subsequences, -1), be_const_closure(class_SequenceManager_stop_all_subsequences_closure) }, - { be_const_key_weak(engine, -1), be_const_var(0) }, - { be_const_key_weak(steps, -1), be_const_var(5) }, - { be_const_key_weak(sequence_state, -1), be_const_var(2) }, - { be_const_key_weak(update, -1), be_const_closure(class_SequenceManager_update_closure) }, - { be_const_key_weak(execute_assign_steps_batch, -1), be_const_closure(class_SequenceManager_execute_assign_steps_batch_closure) }, - { be_const_key_weak(current_iteration, 0), be_const_var(8) }, - { be_const_key_weak(push_play_step, 1), be_const_closure(class_SequenceManager_push_play_step_closure) }, - { be_const_key_weak(push_assign_step, 3), be_const_closure(class_SequenceManager_push_assign_step_closure) }, - { be_const_key_weak(is_repeat_sequence, -1), be_const_var(9) }, - { be_const_key_weak(is_running, -1), be_const_var(6) }, - { be_const_key_weak(stop, -1), be_const_closure(class_SequenceManager_stop_closure) }, - { be_const_key_weak(push_wait_step, 4), be_const_closure(class_SequenceManager_push_wait_step_closure) }, - { be_const_key_weak(push_repeat_subsequence, -1), be_const_closure(class_SequenceManager_push_repeat_subsequence_closure) }, - { be_const_key_weak(complete_iteration, 8), be_const_closure(class_SequenceManager_complete_iteration_closure) }, - { be_const_key_weak(is_sequence_running, 10), be_const_closure(class_SequenceManager_is_sequence_running_closure) }, - { be_const_key_weak(push_step, -1), be_const_closure(class_SequenceManager_push_step_closure) }, - { be_const_key_weak(active_sequence, -1), be_const_var(1) }, - { be_const_key_weak(step_start_time, -1), be_const_var(4) }, - { be_const_key_weak(init, 11), be_const_closure(class_SequenceManager_init_closure) }, - { be_const_key_weak(advance_to_next_step, -1), be_const_closure(class_SequenceManager_advance_to_next_step_closure) }, - { be_const_key_weak(start, -1), be_const_closure(class_SequenceManager_start_closure) }, - { be_const_key_weak(step_index, -1), be_const_var(3) }, - { be_const_key_weak(get_current_step_info, -1), be_const_closure(class_SequenceManager_get_current_step_info_closure) }, + { be_const_key_weak(active_sequence, 26), be_const_var(1) }, + { be_const_key_weak(get_current_step_info, 3), be_const_closure(class_SequenceManager_get_current_step_info_closure) }, { be_const_key_weak(repeat_count, -1), be_const_var(7) }, + { be_const_key_weak(execute_assign_steps_batch, 12), be_const_closure(class_SequenceManager_execute_assign_steps_batch_closure) }, + { be_const_key_weak(push_wait_step, 25), be_const_closure(class_SequenceManager_push_wait_step_closure) }, + { be_const_key_weak(steps, -1), be_const_var(5) }, { be_const_key_weak(execute_current_step, -1), be_const_closure(class_SequenceManager_execute_current_step_closure) }, + { be_const_key_weak(update, -1), be_const_closure(class_SequenceManager_update_closure) }, + { be_const_key_weak(is_repeat_sequence, -1), be_const_var(9) }, + { be_const_key_weak(is_sequence_running, 14), be_const_closure(class_SequenceManager_is_sequence_running_closure) }, + { be_const_key_weak(advance_to_next_step, -1), be_const_closure(class_SequenceManager_advance_to_next_step_closure) }, + { be_const_key_weak(stop, -1), be_const_closure(class_SequenceManager_stop_closure) }, + { be_const_key_weak(step_start_time, -1), be_const_var(4) }, + { be_const_key_weak(is_running, -1), be_const_var(6) }, + { be_const_key_weak(init, -1), be_const_closure(class_SequenceManager_init_closure) }, + { be_const_key_weak(push_closure_step, -1), be_const_closure(class_SequenceManager_push_closure_step_closure) }, + { be_const_key_weak(sequence_state, 10), be_const_var(2) }, + { be_const_key_weak(engine, 15), be_const_var(0) }, + { be_const_key_weak(step_index, 16), be_const_var(3) }, + { be_const_key_weak(current_iteration, -1), be_const_var(8) }, + { be_const_key_weak(start, -1), be_const_closure(class_SequenceManager_start_closure) }, + { be_const_key_weak(get_resolved_repeat_count, -1), be_const_closure(class_SequenceManager_get_resolved_repeat_count_closure) }, + { be_const_key_weak(stop_all_subsequences, -1), be_const_closure(class_SequenceManager_stop_all_subsequences_closure) }, + { be_const_key_weak(push_repeat_subsequence, 8), be_const_closure(class_SequenceManager_push_repeat_subsequence_closure) }, + { be_const_key_weak(complete_iteration, 9), be_const_closure(class_SequenceManager_complete_iteration_closure) }, + { be_const_key_weak(push_step, -1), be_const_closure(class_SequenceManager_push_step_closure) }, + { be_const_key_weak(push_play_step, -1), be_const_closure(class_SequenceManager_push_play_step_closure) }, })), be_str_weak(SequenceManager) ); @@ -11794,8 +11833,8 @@ be_local_class(NoiseAnimation, })), be_str_weak(NoiseAnimation) ); -// compact class 'ColorCycleColorProvider' ktab size: 23, total: 46 (saved 184 bytes) -static const bvalue be_ktab_class_ColorCycleColorProvider[23] = { +// compact class 'ColorCycleColorProvider' ktab size: 27, total: 53 (saved 208 bytes) +static const bvalue be_ktab_class_ColorCycleColorProvider[27] = { /* K0 */ be_nested_str_weak(palette), /* K1 */ be_nested_str_weak(_get_param_def), /* K2 */ be_nested_str_weak(contains), @@ -11809,16 +11848,20 @@ static const bvalue be_ktab_class_ColorCycleColorProvider[23] = { /* K10 */ be_nested_str_weak(current_index), /* K11 */ be_nested_str_weak(ColorCycleColorProvider_X28uninitialized_X29), /* K12 */ be_nested_str_weak(_get_palette_bytes), - /* K13 */ be_nested_str_weak(current_color), - /* K14 */ be_nested_str_weak(_get_color_at_index), - /* K15 */ be_nested_str_weak(next), - /* K16 */ be_nested_str_weak(set_param), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(tasmota), - /* K19 */ be_nested_str_weak(scale_uint), - /* K20 */ be_nested_str_weak(init), - /* K21 */ be_nested_str_weak(get), - /* K22 */ be_const_int(-16777216), + /* K13 */ be_nested_str_weak(palette_size), + /* K14 */ be_nested_str_weak(values), + /* K15 */ be_nested_str_weak(value_error), + /* K16 */ be_nested_str_weak(Parameter_X20_X27palette_size_X27_X20is_X20read_X2Donly), + /* K17 */ be_nested_str_weak(current_color), + /* K18 */ be_nested_str_weak(_get_color_at_index), + /* K19 */ be_nested_str_weak(next), + /* K20 */ be_nested_str_weak(set_param), + /* K21 */ be_const_int(1), + /* K22 */ be_nested_str_weak(tasmota), + /* K23 */ be_nested_str_weak(scale_uint), + /* K24 */ be_nested_str_weak(init), + /* K25 */ be_nested_str_weak(get), + /* K26 */ be_const_int(-16777216), }; @@ -11959,46 +12002,56 @@ be_local_closure(class_ColorCycleColorProvider_on_param_changed, /* name */ &be_ktab_class_ColorCycleColorProvider, /* shared constants */ be_str_weak(on_param_changed), &be_const_str_solidified, - ( &(const binstruction[39]) { /* code */ - 0x1C0C0300, // 0000 EQ R3 R1 K0 - 0x780E000C, // 0001 JMPF R3 #000F - 0x8C0C0108, // 0002 GETMET R3 R0 K8 - 0x7C0C0200, // 0003 CALL R3 1 - 0x24100705, // 0004 GT R4 R3 K5 - 0x78120007, // 0005 JMPF R4 #000E - 0x8810010A, // 0006 GETMBR R4 R0 K10 - 0x28100803, // 0007 GE R4 R4 R3 - 0x78120000, // 0008 JMPF R4 #000A - 0x90021505, // 0009 SETMBR R0 K10 K5 - 0x8C10010E, // 000A GETMET R4 R0 K14 - 0x8818010A, // 000B GETMBR R6 R0 K10 - 0x7C100400, // 000C CALL R4 2 - 0x90021A04, // 000D SETMBR R0 K13 R4 - 0x70020016, // 000E JMP #0026 - 0x1C0C030F, // 000F EQ R3 R1 K15 - 0x780E0014, // 0010 JMPF R3 #0026 - 0x200C0505, // 0011 NE R3 R2 K5 - 0x780E0012, // 0012 JMPF R3 #0026 - 0x8C0C0108, // 0013 GETMET R3 R0 K8 - 0x7C0C0200, // 0014 CALL R3 1 - 0x24100705, // 0015 GT R4 R3 K5 - 0x7812000A, // 0016 JMPF R4 #0022 - 0x8810010A, // 0017 GETMBR R4 R0 K10 - 0x00100802, // 0018 ADD R4 R4 R2 - 0x10100803, // 0019 MOD R4 R4 R3 - 0x14140905, // 001A LT R5 R4 K5 - 0x78160000, // 001B JMPF R5 #001D - 0x00100803, // 001C ADD R4 R4 R3 - 0x90021404, // 001D SETMBR R0 K10 R4 - 0x8C14010E, // 001E GETMET R5 R0 K14 - 0x881C010A, // 001F GETMBR R7 R0 K10 - 0x7C140400, // 0020 CALL R5 2 - 0x90021A05, // 0021 SETMBR R0 K13 R5 - 0x8C100110, // 0022 GETMET R4 R0 K16 - 0x5818000F, // 0023 LDCONST R6 K15 - 0x581C0005, // 0024 LDCONST R7 K5 - 0x7C100600, // 0025 CALL R4 3 - 0x80000000, // 0026 RET 0 + ( &(const binstruction[49]) { /* code */ + 0x1C0C030D, // 0000 EQ R3 R1 K13 + 0x780E0005, // 0001 JMPF R3 #0008 + 0x880C010E, // 0002 GETMBR R3 R0 K14 + 0x8C100108, // 0003 GETMET R4 R0 K8 + 0x7C100200, // 0004 CALL R4 1 + 0x980E1A04, // 0005 SETIDX R3 K13 R4 + 0xB0061F10, // 0006 RAISE 1 K15 K16 + 0x70020027, // 0007 JMP #0030 + 0x1C0C0300, // 0008 EQ R3 R1 K0 + 0x780E000E, // 0009 JMPF R3 #0019 + 0x8C0C0108, // 000A GETMET R3 R0 K8 + 0x7C0C0200, // 000B CALL R3 1 + 0x24100705, // 000C GT R4 R3 K5 + 0x78120007, // 000D JMPF R4 #0016 + 0x8810010A, // 000E GETMBR R4 R0 K10 + 0x28100803, // 000F GE R4 R4 R3 + 0x78120000, // 0010 JMPF R4 #0012 + 0x90021505, // 0011 SETMBR R0 K10 K5 + 0x8C100112, // 0012 GETMET R4 R0 K18 + 0x8818010A, // 0013 GETMBR R6 R0 K10 + 0x7C100400, // 0014 CALL R4 2 + 0x90022204, // 0015 SETMBR R0 K17 R4 + 0x8810010E, // 0016 GETMBR R4 R0 K14 + 0x98121A03, // 0017 SETIDX R4 K13 R3 + 0x70020016, // 0018 JMP #0030 + 0x1C0C0313, // 0019 EQ R3 R1 K19 + 0x780E0014, // 001A JMPF R3 #0030 + 0x200C0505, // 001B NE R3 R2 K5 + 0x780E0012, // 001C JMPF R3 #0030 + 0x8C0C0108, // 001D GETMET R3 R0 K8 + 0x7C0C0200, // 001E CALL R3 1 + 0x24100705, // 001F GT R4 R3 K5 + 0x7812000A, // 0020 JMPF R4 #002C + 0x8810010A, // 0021 GETMBR R4 R0 K10 + 0x00100802, // 0022 ADD R4 R4 R2 + 0x10100803, // 0023 MOD R4 R4 R3 + 0x14140905, // 0024 LT R5 R4 K5 + 0x78160000, // 0025 JMPF R5 #0027 + 0x00100803, // 0026 ADD R4 R4 R3 + 0x90021404, // 0027 SETMBR R0 K10 R4 + 0x8C140112, // 0028 GETMET R5 R0 K18 + 0x881C010A, // 0029 GETMBR R7 R0 K10 + 0x7C140400, // 002A CALL R5 2 + 0x90022205, // 002B SETMBR R0 K17 R5 + 0x8C100114, // 002C GETMET R4 R0 K20 + 0x58180013, // 002D LDCONST R6 K19 + 0x581C0005, // 002E LDCONST R7 K5 + 0x7C100600, // 002F CALL R4 3 + 0x80000000, // 0030 RET 0 }) ) ); @@ -12029,37 +12082,37 @@ be_local_closure(class_ColorCycleColorProvider_produce_value, /* name */ 0x78160001, // 0004 JMPF R5 #0007 0x5415FFFE, // 0005 LDINT R5 -1 0x80040A00, // 0006 RET 1 R5 - 0x1C140911, // 0007 EQ R5 R4 K17 + 0x1C140915, // 0007 EQ R5 R4 K21 0x78160005, // 0008 JMPF R5 #000F - 0x8C14010E, // 0009 GETMET R5 R0 K14 + 0x8C140112, // 0009 GETMET R5 R0 K18 0x581C0005, // 000A LDCONST R7 K5 0x7C140400, // 000B CALL R5 2 - 0x90021A05, // 000C SETMBR R0 K13 R5 - 0x8814010D, // 000D GETMBR R5 R0 K13 + 0x90022205, // 000C SETMBR R0 K17 R5 + 0x88140111, // 000D GETMBR R5 R0 K17 0x80040A00, // 000E RET 1 R5 0x1C140705, // 000F EQ R5 R3 K5 0x78160001, // 0010 JMPF R5 #0013 - 0x8814010D, // 0011 GETMBR R5 R0 K13 + 0x88140111, // 0011 GETMBR R5 R0 K17 0x80040A00, // 0012 RET 1 R5 0x10140403, // 0013 MOD R5 R2 R3 - 0xB81A2400, // 0014 GETNGBL R6 K18 - 0x8C180D13, // 0015 GETMET R6 R6 K19 + 0xB81A2C00, // 0014 GETNGBL R6 K22 + 0x8C180D17, // 0015 GETMET R6 R6 K23 0x5C200A00, // 0016 MOVE R8 R5 0x58240005, // 0017 LDCONST R9 K5 - 0x04280711, // 0018 SUB R10 R3 K17 + 0x04280715, // 0018 SUB R10 R3 K21 0x582C0005, // 0019 LDCONST R11 K5 - 0x04300911, // 001A SUB R12 R4 K17 + 0x04300915, // 001A SUB R12 R4 K21 0x7C180C00, // 001B CALL R6 6 0x281C0C04, // 001C GE R7 R6 R4 0x781E0001, // 001D JMPF R7 #0020 - 0x041C0911, // 001E SUB R7 R4 K17 + 0x041C0915, // 001E SUB R7 R4 K21 0x5C180E00, // 001F MOVE R6 R7 0x90021406, // 0020 SETMBR R0 K10 R6 - 0x8C1C010E, // 0021 GETMET R7 R0 K14 + 0x8C1C0112, // 0021 GETMET R7 R0 K18 0x5C240C00, // 0022 MOVE R9 R6 0x7C1C0400, // 0023 CALL R7 2 - 0x90021A07, // 0024 SETMBR R0 K13 R7 - 0x881C010D, // 0025 GETMBR R7 R0 K13 + 0x90022207, // 0024 SETMBR R0 K17 R7 + 0x881C0111, // 0025 GETMBR R7 R0 K17 0x80040E00, // 0026 RET 1 R7 }) ) @@ -12090,9 +12143,9 @@ be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* name */ 0x78120001, // 0003 JMPF R4 #0006 0x5411FFFE, // 0004 LDINT R4 -1 0x80040800, // 0005 RET 1 R4 - 0x1C100711, // 0006 EQ R4 R3 K17 + 0x1C100715, // 0006 EQ R4 R3 K21 0x78120003, // 0007 JMPF R4 #000C - 0x8C10010E, // 0008 GETMET R4 R0 K14 + 0x8C100112, // 0008 GETMET R4 R0 K18 0x58180005, // 0009 LDCONST R6 K5 0x7C100400, // 000A CALL R4 2 0x80040800, // 000B RET 1 R4 @@ -12104,19 +12157,19 @@ be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* name */ 0x24100204, // 0011 GT R4 R1 R4 0x78120000, // 0012 JMPF R4 #0014 0x54060063, // 0013 LDINT R1 100 - 0xB8122400, // 0014 GETNGBL R4 K18 - 0x8C100913, // 0015 GETMET R4 R4 K19 + 0xB8122C00, // 0014 GETNGBL R4 K22 + 0x8C100917, // 0015 GETMET R4 R4 K23 0x5C180200, // 0016 MOVE R6 R1 0x581C0005, // 0017 LDCONST R7 K5 0x54220063, // 0018 LDINT R8 100 0x58240005, // 0019 LDCONST R9 K5 - 0x04280711, // 001A SUB R10 R3 K17 + 0x04280715, // 001A SUB R10 R3 K21 0x7C100C00, // 001B CALL R4 6 0x28140803, // 001C GE R5 R4 R3 0x78160001, // 001D JMPF R5 #0020 - 0x04140711, // 001E SUB R5 R3 K17 + 0x04140715, // 001E SUB R5 R3 K21 0x5C100A00, // 001F MOVE R4 R5 - 0x8C14010E, // 0020 GETMET R5 R0 K14 + 0x8C140112, // 0020 GETMET R5 R0 K18 0x5C1C0800, // 0021 MOVE R7 R4 0x7C140400, // 0022 CALL R5 2 0x80040A00, // 0023 RET 1 R5 @@ -12142,21 +12195,25 @@ be_local_closure(class_ColorCycleColorProvider_init, /* name */ &be_ktab_class_ColorCycleColorProvider, /* shared constants */ be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ + ( &(const binstruction[18]) { /* code */ 0x60080003, // 0000 GETGBL R2 G3 0x5C0C0000, // 0001 MOVE R3 R0 0x7C080200, // 0002 CALL R2 1 - 0x8C080514, // 0003 GETMET R2 R2 K20 + 0x8C080518, // 0003 GETMET R2 R2 K24 0x5C100200, // 0004 MOVE R4 R1 0x7C080400, // 0005 CALL R2 2 0x8C08010C, // 0006 GETMET R2 R0 K12 0x7C080200, // 0007 CALL R2 1 - 0x8C0C010E, // 0008 GETMET R3 R0 K14 + 0x8C0C0112, // 0008 GETMET R3 R0 K18 0x58140005, // 0009 LDCONST R5 K5 0x7C0C0400, // 000A CALL R3 2 - 0x90021A03, // 000B SETMBR R0 K13 R3 + 0x90022203, // 000B SETMBR R0 K17 R3 0x90021505, // 000C SETMBR R0 K10 K5 - 0x80000000, // 000D RET 0 + 0x880C010E, // 000D GETMBR R3 R0 K14 + 0x8C100108, // 000E GETMET R4 R0 K8 + 0x7C100200, // 000F CALL R4 1 + 0x980E1A04, // 0010 SETIDX R3 K13 R4 + 0x80000000, // 0011 RET 0 }) ) ); @@ -12195,12 +12252,12 @@ be_local_closure(class_ColorCycleColorProvider__get_color_at_index, /* name */ 0x78120001, // 000C JMPF R4 #000F 0x5411FFFE, // 000D LDINT R4 -1 0x80040800, // 000E RET 1 R4 - 0x8C100515, // 000F GETMET R4 R2 K21 + 0x8C100519, // 000F GETMET R4 R2 K25 0x541A0003, // 0010 LDINT R6 4 0x08180206, // 0011 MUL R6 R1 R6 0x541DFFFB, // 0012 LDINT R7 -4 0x7C100600, // 0013 CALL R4 3 - 0x30100916, // 0014 OR R4 R4 K22 + 0x3010091A, // 0014 OR R4 R4 K26 0x80040800, // 0015 RET 1 R4 }) ) @@ -12226,24 +12283,30 @@ be_local_class(ColorCycleColorProvider, { be_const_key_weak(current_index, -1), be_const_var(1) }, { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_ColorCycleColorProvider_get_color_for_value_closure) }, { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(3, + be_const_map( * be_nested_map(4, ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(palette, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(2, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(default, -1), be_const_bytes_instance(FF0000FFFF00FF00FFFF0000) }, + { be_const_key_weak(type, -1), be_nested_str_weak(bytes) }, + })) ) } )) }, + { be_const_key_weak(palette_size, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(2, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(default, -1), be_const_int(3) }, + { be_const_key_weak(type, -1), be_nested_str_weak(int) }, + })) ) } )) }, + { be_const_key_weak(next, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(1, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(default, -1), be_const_int(0) }, + })) ) } )) }, { be_const_key_weak(cycle_period, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(2, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(default, -1), be_const_int(5000) }, { be_const_key_weak(min, -1), be_const_int(0) }, - })) ) } )) }, - { be_const_key_weak(next, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(1, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(default, -1), be_const_int(0) }, - })) ) } )) }, - { be_const_key_weak(palette, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(2, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(default, -1), be_const_bytes_instance(FF0000FFFF00FF00FFFF0000) }, - { be_const_key_weak(type, -1), be_nested_str_weak(bytes) }, })) ) } )) }, })) ) } )) }, { be_const_key_weak(init, -1), be_const_closure(class_ColorCycleColorProvider_init_closure) }, @@ -13095,8 +13158,8 @@ be_local_class(PaletteGradientAnimation, be_str_weak(PaletteGradientAnimation) ); extern const bclass be_class_FrameBuffer; -// compact class 'FrameBuffer' ktab size: 34, total: 127 (saved 744 bytes) -static const bvalue be_ktab_class_FrameBuffer[34] = { +// compact class 'FrameBuffer' ktab size: 33, total: 124 (saved 728 bytes) +static const bvalue be_ktab_class_FrameBuffer[33] = { /* K0 */ be_const_int(0), /* K1 */ be_nested_str_weak(value_error), /* K2 */ be_nested_str_weak(width_X20must_X20be_X20positive), @@ -13104,38 +13167,401 @@ static const bvalue be_ktab_class_FrameBuffer[34] = { /* K4 */ be_nested_str_weak(pixels), /* K5 */ be_nested_str_weak(resize), /* K6 */ be_nested_str_weak(clear), - /* K7 */ be_nested_str_weak(int), - /* K8 */ be_nested_str_weak(instance), - /* K9 */ be_nested_str_weak(copy), - /* K10 */ be_nested_str_weak(argument_X20must_X20be_X20either_X20int_X20or_X20instance), - /* K11 */ be_nested_str_weak(frame_X20buffers_X20must_X20have_X20the_X20same_X20width), + /* K7 */ be_nested_str_weak(tohex), + /* K8 */ be_const_int(1), + /* K9 */ be_nested_str_weak(index_error), + /* K10 */ be_nested_str_weak(start_pos_X20out_X20of_X20range), + /* K11 */ be_nested_str_weak(end_pos_X20out_X20of_X20range), /* K12 */ be_nested_str_weak(get_pixel_color), - /* K13 */ be_nested_str_weak(tasmota), - /* K14 */ be_nested_str_weak(scale_uint), + /* K13 */ be_nested_str_weak(blend), + /* K14 */ be_nested_str_weak(set), /* K15 */ be_nested_str_weak(set_pixel_color), - /* K16 */ be_const_int(1), - /* K17 */ be_nested_str_weak(index_error), + /* K16 */ be_nested_str_weak(tasmota), + /* K17 */ be_nested_str_weak(scale_uint), /* K18 */ be_nested_str_weak(pixel_X20index_X20out_X20of_X20range), - /* K19 */ be_nested_str_weak(set), - /* K20 */ be_nested_str_weak(BLEND_MODE_NORMAL), + /* K19 */ be_nested_str_weak(get), + /* K20 */ be_const_class(be_class_FrameBuffer), /* K21 */ be_nested_str_weak(animation), /* K22 */ be_nested_str_weak(frame_buffer), - /* K23 */ be_const_class(be_class_FrameBuffer), - /* K24 */ be_nested_str_weak(start_pos_X20out_X20of_X20range), - /* K25 */ be_nested_str_weak(end_pos_X20out_X20of_X20range), - /* K26 */ be_nested_str_weak(FrameBuffer_X28width_X3D_X25s_X2C_X20pixels_X3D_X25s_X29), - /* K27 */ be_nested_str_weak(get), - /* K28 */ be_nested_str_weak(tohex), - /* K29 */ be_nested_str_weak(blend), - /* K30 */ be_nested_str_weak(region_start_X20out_X20of_X20range), - /* K31 */ be_nested_str_weak(region_end_X20out_X20of_X20range), - /* K32 */ be_nested_str_weak(), - /* K33 */ be_nested_str_weak(_X2502X_X2502X_X2502X_X2502X_X7C), + /* K23 */ be_nested_str_weak(frame_X20buffers_X20must_X20have_X20the_X20same_X20width), + /* K24 */ be_nested_str_weak(int), + /* K25 */ be_nested_str_weak(instance), + /* K26 */ be_nested_str_weak(copy), + /* K27 */ be_nested_str_weak(argument_X20must_X20be_X20either_X20int_X20or_X20instance), + /* K28 */ be_nested_str_weak(), + /* K29 */ be_nested_str_weak(_X2502X_X2502X_X2502X_X2502X_X7C), + /* K30 */ be_nested_str_weak(FrameBuffer_X28width_X3D_X25s_X2C_X20pixels_X3D_X25s_X29), + /* K31 */ be_nested_str_weak(region_start_X20out_X20of_X20range), + /* K32 */ be_nested_str_weak(region_end_X20out_X20of_X20range), }; extern const bclass be_class_FrameBuffer; +/******************************************************************** +** Solidified function: resize +********************************************************************/ +be_local_closure(class_FrameBuffer_resize, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(resize), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x18080300, // 0000 LE R2 R1 K0 + 0x780A0000, // 0001 JMPF R2 #0003 + 0xB0060302, // 0002 RAISE 1 K1 K2 + 0x88080103, // 0003 GETMBR R2 R0 K3 + 0x1C080202, // 0004 EQ R2 R1 R2 + 0x780A0000, // 0005 JMPF R2 #0007 + 0x80000400, // 0006 RET 0 + 0x90020601, // 0007 SETMBR R0 K3 R1 + 0x88080104, // 0008 GETMBR R2 R0 K4 + 0x8C080505, // 0009 GETMET R2 R2 K5 + 0x88100103, // 000A GETMBR R4 R0 K3 + 0x54160003, // 000B LDINT R5 4 + 0x08100805, // 000C MUL R4 R4 R5 + 0x7C080400, // 000D CALL R2 2 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x7C080200, // 000F CALL R2 1 + 0x80000000, // 0010 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tohex +********************************************************************/ +be_local_closure(class_FrameBuffer_tohex, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(tohex), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C040307, // 0001 GETMET R1 R1 K7 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: blend_color +********************************************************************/ +be_local_closure(class_FrameBuffer_blend_color, /* name */ + be_nested_proto( + 16, /* nstack */ + 4, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(blend_color), + &be_const_str_solidified, + ( &(const binstruction[58]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x1C100404, // 0001 EQ R4 R2 R4 + 0x78120000, // 0002 JMPF R4 #0004 + 0x58080000, // 0003 LDCONST R2 K0 + 0x4C100000, // 0004 LDNIL R4 + 0x1C100604, // 0005 EQ R4 R3 R4 + 0x78120002, // 0006 JMPF R4 #000A + 0x88100103, // 0007 GETMBR R4 R0 K3 + 0x04100908, // 0008 SUB R4 R4 K8 + 0x5C0C0800, // 0009 MOVE R3 R4 + 0x14100500, // 000A LT R4 R2 K0 + 0x74120002, // 000B JMPT R4 #000F + 0x88100103, // 000C GETMBR R4 R0 K3 + 0x28100404, // 000D GE R4 R2 R4 + 0x78120000, // 000E JMPF R4 #0010 + 0xB006130A, // 000F RAISE 1 K9 K10 + 0x14100602, // 0010 LT R4 R3 R2 + 0x74120002, // 0011 JMPT R4 #0015 + 0x88100103, // 0012 GETMBR R4 R0 K3 + 0x28100604, // 0013 GE R4 R3 R4 + 0x78120000, // 0014 JMPF R4 #0016 + 0xB006130B, // 0015 RAISE 1 K9 K11 + 0x54120017, // 0016 LDINT R4 24 + 0x3C100204, // 0017 SHR R4 R1 R4 + 0x541600FE, // 0018 LDINT R5 255 + 0x2C100805, // 0019 AND R4 R4 R5 + 0x5416000F, // 001A LDINT R5 16 + 0x3C140205, // 001B SHR R5 R1 R5 + 0x541A00FE, // 001C LDINT R6 255 + 0x2C140A06, // 001D AND R5 R5 R6 + 0x541A0007, // 001E LDINT R6 8 + 0x3C180206, // 001F SHR R6 R1 R6 + 0x541E00FE, // 0020 LDINT R7 255 + 0x2C180C07, // 0021 AND R6 R6 R7 + 0x541E00FE, // 0022 LDINT R7 255 + 0x2C1C0207, // 0023 AND R7 R1 R7 + 0x5C200400, // 0024 MOVE R8 R2 + 0x18241003, // 0025 LE R9 R8 R3 + 0x78260011, // 0026 JMPF R9 #0039 + 0x8C24010C, // 0027 GETMET R9 R0 K12 + 0x5C2C1000, // 0028 MOVE R11 R8 + 0x7C240400, // 0029 CALL R9 2 + 0x24280900, // 002A GT R10 R4 K0 + 0x782A000A, // 002B JMPF R10 #0037 + 0x8C28010D, // 002C GETMET R10 R0 K13 + 0x5C301200, // 002D MOVE R12 R9 + 0x5C340200, // 002E MOVE R13 R1 + 0x7C280600, // 002F CALL R10 3 + 0x882C0104, // 0030 GETMBR R11 R0 K4 + 0x8C2C170E, // 0031 GETMET R11 R11 K14 + 0x54360003, // 0032 LDINT R13 4 + 0x0834100D, // 0033 MUL R13 R8 R13 + 0x5C381400, // 0034 MOVE R14 R10 + 0x543E0003, // 0035 LDINT R15 4 + 0x7C2C0800, // 0036 CALL R11 4 + 0x00201108, // 0037 ADD R8 R8 K8 + 0x7001FFEB, // 0038 JMP #0025 + 0x80000000, // 0039 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: setitem +********************************************************************/ +be_local_closure(class_FrameBuffer_setitem, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(setitem), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x8C0C010F, // 0000 GETMET R3 R0 K15 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C0C0600, // 0003 CALL R3 3 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: blend +********************************************************************/ +be_local_closure(class_FrameBuffer_blend, /* name */ + be_nested_proto( + 22, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(blend), + &be_const_str_solidified, + ( &(const binstruction[165]) { /* code */ + 0x540E0017, // 0000 LDINT R3 24 + 0x3C0C0203, // 0001 SHR R3 R1 R3 + 0x541200FE, // 0002 LDINT R4 255 + 0x2C0C0604, // 0003 AND R3 R3 R4 + 0x5412000F, // 0004 LDINT R4 16 + 0x3C100204, // 0005 SHR R4 R1 R4 + 0x541600FE, // 0006 LDINT R5 255 + 0x2C100805, // 0007 AND R4 R4 R5 + 0x54160007, // 0008 LDINT R5 8 + 0x3C140205, // 0009 SHR R5 R1 R5 + 0x541A00FE, // 000A LDINT R6 255 + 0x2C140A06, // 000B AND R5 R5 R6 + 0x541A00FE, // 000C LDINT R6 255 + 0x2C180206, // 000D AND R6 R1 R6 + 0x541E0017, // 000E LDINT R7 24 + 0x3C1C0407, // 000F SHR R7 R2 R7 + 0x542200FE, // 0010 LDINT R8 255 + 0x2C1C0E08, // 0011 AND R7 R7 R8 + 0x5422000F, // 0012 LDINT R8 16 + 0x3C200408, // 0013 SHR R8 R2 R8 + 0x542600FE, // 0014 LDINT R9 255 + 0x2C201009, // 0015 AND R8 R8 R9 + 0x54260007, // 0016 LDINT R9 8 + 0x3C240409, // 0017 SHR R9 R2 R9 + 0x542A00FE, // 0018 LDINT R10 255 + 0x2C24120A, // 0019 AND R9 R9 R10 + 0x542A00FE, // 001A LDINT R10 255 + 0x2C28040A, // 001B AND R10 R2 R10 + 0x1C2C0F00, // 001C EQ R11 R7 K0 + 0x782E0000, // 001D JMPF R11 #001F + 0x80040200, // 001E RET 1 R1 + 0x5C2C0E00, // 001F MOVE R11 R7 + 0xB8322000, // 0020 GETNGBL R12 K16 + 0x8C301911, // 0021 GETMET R12 R12 K17 + 0x543A00FE, // 0022 LDINT R14 255 + 0x04381C0B, // 0023 SUB R14 R14 R11 + 0x583C0000, // 0024 LDCONST R15 K0 + 0x544200FE, // 0025 LDINT R16 255 + 0x58440000, // 0026 LDCONST R17 K0 + 0x5C480800, // 0027 MOVE R18 R4 + 0x7C300C00, // 0028 CALL R12 6 + 0xB8362000, // 0029 GETNGBL R13 K16 + 0x8C341B11, // 002A GETMET R13 R13 K17 + 0x5C3C1600, // 002B MOVE R15 R11 + 0x58400000, // 002C LDCONST R16 K0 + 0x544600FE, // 002D LDINT R17 255 + 0x58480000, // 002E LDCONST R18 K0 + 0x5C4C1000, // 002F MOVE R19 R8 + 0x7C340C00, // 0030 CALL R13 6 + 0x0030180D, // 0031 ADD R12 R12 R13 + 0xB8362000, // 0032 GETNGBL R13 K16 + 0x8C341B11, // 0033 GETMET R13 R13 K17 + 0x543E00FE, // 0034 LDINT R15 255 + 0x043C1E0B, // 0035 SUB R15 R15 R11 + 0x58400000, // 0036 LDCONST R16 K0 + 0x544600FE, // 0037 LDINT R17 255 + 0x58480000, // 0038 LDCONST R18 K0 + 0x5C4C0A00, // 0039 MOVE R19 R5 + 0x7C340C00, // 003A CALL R13 6 + 0xB83A2000, // 003B GETNGBL R14 K16 + 0x8C381D11, // 003C GETMET R14 R14 K17 + 0x5C401600, // 003D MOVE R16 R11 + 0x58440000, // 003E LDCONST R17 K0 + 0x544A00FE, // 003F LDINT R18 255 + 0x584C0000, // 0040 LDCONST R19 K0 + 0x5C501200, // 0041 MOVE R20 R9 + 0x7C380C00, // 0042 CALL R14 6 + 0x00341A0E, // 0043 ADD R13 R13 R14 + 0xB83A2000, // 0044 GETNGBL R14 K16 + 0x8C381D11, // 0045 GETMET R14 R14 K17 + 0x544200FE, // 0046 LDINT R16 255 + 0x0440200B, // 0047 SUB R16 R16 R11 + 0x58440000, // 0048 LDCONST R17 K0 + 0x544A00FE, // 0049 LDINT R18 255 + 0x584C0000, // 004A LDCONST R19 K0 + 0x5C500C00, // 004B MOVE R20 R6 + 0x7C380C00, // 004C CALL R14 6 + 0xB83E2000, // 004D GETNGBL R15 K16 + 0x8C3C1F11, // 004E GETMET R15 R15 K17 + 0x5C441600, // 004F MOVE R17 R11 + 0x58480000, // 0050 LDCONST R18 K0 + 0x544E00FE, // 0051 LDINT R19 255 + 0x58500000, // 0052 LDCONST R20 K0 + 0x5C541400, // 0053 MOVE R21 R10 + 0x7C3C0C00, // 0054 CALL R15 6 + 0x00381C0F, // 0055 ADD R14 R14 R15 + 0xB83E2000, // 0056 GETNGBL R15 K16 + 0x8C3C1F11, // 0057 GETMET R15 R15 K17 + 0x544600FE, // 0058 LDINT R17 255 + 0x04442203, // 0059 SUB R17 R17 R3 + 0x08442207, // 005A MUL R17 R17 R7 + 0x58480000, // 005B LDCONST R18 K0 + 0x544E00FE, // 005C LDINT R19 255 + 0x545200FE, // 005D LDINT R20 255 + 0x084C2614, // 005E MUL R19 R19 R20 + 0x58500000, // 005F LDCONST R20 K0 + 0x545600FE, // 0060 LDINT R21 255 + 0x7C3C0C00, // 0061 CALL R15 6 + 0x003C060F, // 0062 ADD R15 R3 R15 + 0x14401900, // 0063 LT R16 R12 K0 + 0x78420001, // 0064 JMPF R16 #0067 + 0x58400000, // 0065 LDCONST R16 K0 + 0x70020005, // 0066 JMP #006D + 0x544200FE, // 0067 LDINT R16 255 + 0x24401810, // 0068 GT R16 R12 R16 + 0x78420001, // 0069 JMPF R16 #006C + 0x544200FE, // 006A LDINT R16 255 + 0x70020000, // 006B JMP #006D + 0x5C401800, // 006C MOVE R16 R12 + 0x5C302000, // 006D MOVE R12 R16 + 0x14401B00, // 006E LT R16 R13 K0 + 0x78420001, // 006F JMPF R16 #0072 + 0x58400000, // 0070 LDCONST R16 K0 + 0x70020005, // 0071 JMP #0078 + 0x544200FE, // 0072 LDINT R16 255 + 0x24401A10, // 0073 GT R16 R13 R16 + 0x78420001, // 0074 JMPF R16 #0077 + 0x544200FE, // 0075 LDINT R16 255 + 0x70020000, // 0076 JMP #0078 + 0x5C401A00, // 0077 MOVE R16 R13 + 0x5C342000, // 0078 MOVE R13 R16 + 0x14401D00, // 0079 LT R16 R14 K0 + 0x78420001, // 007A JMPF R16 #007D + 0x58400000, // 007B LDCONST R16 K0 + 0x70020005, // 007C JMP #0083 + 0x544200FE, // 007D LDINT R16 255 + 0x24401C10, // 007E GT R16 R14 R16 + 0x78420001, // 007F JMPF R16 #0082 + 0x544200FE, // 0080 LDINT R16 255 + 0x70020000, // 0081 JMP #0083 + 0x5C401C00, // 0082 MOVE R16 R14 + 0x5C382000, // 0083 MOVE R14 R16 + 0x14401F00, // 0084 LT R16 R15 K0 + 0x78420001, // 0085 JMPF R16 #0088 + 0x58400000, // 0086 LDCONST R16 K0 + 0x70020005, // 0087 JMP #008E + 0x544200FE, // 0088 LDINT R16 255 + 0x24401E10, // 0089 GT R16 R15 R16 + 0x78420001, // 008A JMPF R16 #008D + 0x544200FE, // 008B LDINT R16 255 + 0x70020000, // 008C JMP #008E + 0x5C401E00, // 008D MOVE R16 R15 + 0x5C3C2000, // 008E MOVE R15 R16 + 0x60400009, // 008F GETGBL R16 G9 + 0x5C441E00, // 0090 MOVE R17 R15 + 0x7C400200, // 0091 CALL R16 1 + 0x54460017, // 0092 LDINT R17 24 + 0x38402011, // 0093 SHL R16 R16 R17 + 0x60440009, // 0094 GETGBL R17 G9 + 0x5C481800, // 0095 MOVE R18 R12 + 0x7C440200, // 0096 CALL R17 1 + 0x544A000F, // 0097 LDINT R18 16 + 0x38442212, // 0098 SHL R17 R17 R18 + 0x30402011, // 0099 OR R16 R16 R17 + 0x60440009, // 009A GETGBL R17 G9 + 0x5C481A00, // 009B MOVE R18 R13 + 0x7C440200, // 009C CALL R17 1 + 0x544A0007, // 009D LDINT R18 8 + 0x38442212, // 009E SHL R17 R17 R18 + 0x30402011, // 009F OR R16 R16 R17 + 0x60440009, // 00A0 GETGBL R17 G9 + 0x5C481C00, // 00A1 MOVE R18 R14 + 0x7C440200, // 00A2 CALL R17 1 + 0x30402011, // 00A3 OR R16 R16 R17 + 0x80042000, // 00A4 RET 1 R16 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: blend_linear ********************************************************************/ @@ -13274,11 +13700,11 @@ be_local_closure(class_FrameBuffer_blend_linear, /* name */ /******************************************************************** -** Solidified function: resize +** Solidified function: item ********************************************************************/ -be_local_closure(class_FrameBuffer_resize, /* name */ +be_local_closure(class_FrameBuffer_item, /* name */ be_nested_proto( - 6, /* nstack */ + 5, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -13287,835 +13713,13 @@ be_local_closure(class_FrameBuffer_resize, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(resize), + be_str_weak(item), &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x18080300, // 0000 LE R2 R1 K0 - 0x780A0000, // 0001 JMPF R2 #0003 - 0xB0060302, // 0002 RAISE 1 K1 K2 - 0x88080103, // 0003 GETMBR R2 R0 K3 - 0x1C080202, // 0004 EQ R2 R1 R2 - 0x780A0000, // 0005 JMPF R2 #0007 - 0x80000400, // 0006 RET 0 - 0x90020601, // 0007 SETMBR R0 K3 R1 - 0x88080104, // 0008 GETMBR R2 R0 K4 - 0x8C080505, // 0009 GETMET R2 R2 K5 - 0x88100103, // 000A GETMBR R4 R0 K3 - 0x54160003, // 000B LDINT R5 4 - 0x08100805, // 000C MUL R4 R4 R5 - 0x7C080400, // 000D CALL R2 2 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x7C080200, // 000F CALL R2 1 - 0x80000000, // 0010 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: clear -********************************************************************/ -be_local_closure(class_FrameBuffer_clear, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(clear), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x88040104, // 0000 GETMBR R1 R0 K4 - 0x8C040306, // 0001 GETMET R1 R1 K6 - 0x7C040200, // 0002 CALL R1 1 - 0x88040104, // 0003 GETMBR R1 R0 K4 - 0x8C040305, // 0004 GETMET R1 R1 K5 - 0x880C0103, // 0005 GETMBR R3 R0 K3 - 0x54120003, // 0006 LDINT R4 4 - 0x080C0604, // 0007 MUL R3 R3 R4 - 0x7C040400, // 0008 CALL R1 2 - 0x80000000, // 0009 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_FrameBuffer_init, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[36]) { /* code */ - 0x60080004, // 0000 GETGBL R2 G4 - 0x5C0C0200, // 0001 MOVE R3 R1 - 0x7C080200, // 0002 CALL R2 1 - 0x1C080507, // 0003 EQ R2 R2 K7 - 0x780A0010, // 0004 JMPF R2 #0016 - 0x5C080200, // 0005 MOVE R2 R1 - 0x180C0500, // 0006 LE R3 R2 K0 - 0x780E0000, // 0007 JMPF R3 #0009 - 0xB0060302, // 0008 RAISE 1 K1 K2 - 0x90020602, // 0009 SETMBR R0 K3 R2 - 0x600C0015, // 000A GETGBL R3 G21 - 0x54120003, // 000B LDINT R4 4 - 0x08100404, // 000C MUL R4 R2 R4 - 0x7C0C0200, // 000D CALL R3 1 - 0x8C100705, // 000E GETMET R4 R3 K5 - 0x541A0003, // 000F LDINT R6 4 - 0x08180406, // 0010 MUL R6 R2 R6 - 0x7C100400, // 0011 CALL R4 2 - 0x90020803, // 0012 SETMBR R0 K4 R3 - 0x8C100106, // 0013 GETMET R4 R0 K6 - 0x7C100200, // 0014 CALL R4 1 - 0x7002000C, // 0015 JMP #0023 - 0x60080004, // 0016 GETGBL R2 G4 - 0x5C0C0200, // 0017 MOVE R3 R1 - 0x7C080200, // 0018 CALL R2 1 - 0x1C080508, // 0019 EQ R2 R2 K8 - 0x780A0006, // 001A JMPF R2 #0022 - 0x88080303, // 001B GETMBR R2 R1 K3 - 0x90020602, // 001C SETMBR R0 K3 R2 - 0x88080304, // 001D GETMBR R2 R1 K4 - 0x8C080509, // 001E GETMET R2 R2 K9 - 0x7C080200, // 001F CALL R2 1 - 0x90020802, // 0020 SETMBR R0 K4 R2 - 0x70020000, // 0021 JMP #0023 - 0xB006030A, // 0022 RAISE 1 K1 K10 - 0x80000000, // 0023 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: apply_mask -********************************************************************/ -be_local_closure(class_FrameBuffer_apply_mask, /* name */ - be_nested_proto( - 18, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(apply_mask), - &be_const_str_solidified, - ( &(const binstruction[65]) { /* code */ - 0x4C0C0000, // 0000 LDNIL R3 - 0x1C0C0403, // 0001 EQ R3 R2 R3 - 0x780E0000, // 0002 JMPF R3 #0004 - 0x50080000, // 0003 LDBOOL R2 0 0 - 0x880C0103, // 0004 GETMBR R3 R0 K3 - 0x88100303, // 0005 GETMBR R4 R1 K3 - 0x200C0604, // 0006 NE R3 R3 R4 - 0x780E0000, // 0007 JMPF R3 #0009 - 0xB006030B, // 0008 RAISE 1 K1 K11 - 0x580C0000, // 0009 LDCONST R3 K0 - 0x88100103, // 000A GETMBR R4 R0 K3 - 0x14100604, // 000B LT R4 R3 R4 - 0x78120032, // 000C JMPF R4 #0040 - 0x8C10010C, // 000D GETMET R4 R0 K12 - 0x5C180600, // 000E MOVE R6 R3 - 0x7C100400, // 000F CALL R4 2 - 0x8C14030C, // 0010 GETMET R5 R1 K12 - 0x5C1C0600, // 0011 MOVE R7 R3 - 0x7C140400, // 0012 CALL R5 2 - 0x541A0017, // 0013 LDINT R6 24 - 0x3C180A06, // 0014 SHR R6 R5 R6 - 0x541E00FE, // 0015 LDINT R7 255 - 0x2C180C07, // 0016 AND R6 R6 R7 - 0x780A0001, // 0017 JMPF R2 #001A - 0x541E00FE, // 0018 LDINT R7 255 - 0x04180E06, // 0019 SUB R6 R7 R6 - 0x541E0017, // 001A LDINT R7 24 - 0x3C1C0807, // 001B SHR R7 R4 R7 - 0x542200FE, // 001C LDINT R8 255 - 0x2C1C0E08, // 001D AND R7 R7 R8 - 0x5422000F, // 001E LDINT R8 16 - 0x3C200808, // 001F SHR R8 R4 R8 - 0x542600FE, // 0020 LDINT R9 255 - 0x2C201009, // 0021 AND R8 R8 R9 - 0x54260007, // 0022 LDINT R9 8 - 0x3C240809, // 0023 SHR R9 R4 R9 - 0x542A00FE, // 0024 LDINT R10 255 - 0x2C24120A, // 0025 AND R9 R9 R10 - 0x542A00FE, // 0026 LDINT R10 255 - 0x2C28080A, // 0027 AND R10 R4 R10 - 0xB82E1A00, // 0028 GETNGBL R11 K13 - 0x8C2C170E, // 0029 GETMET R11 R11 K14 - 0x5C340C00, // 002A MOVE R13 R6 - 0x58380000, // 002B LDCONST R14 K0 - 0x543E00FE, // 002C LDINT R15 255 - 0x58400000, // 002D LDCONST R16 K0 - 0x5C440E00, // 002E MOVE R17 R7 - 0x7C2C0C00, // 002F CALL R11 6 - 0x5C1C1600, // 0030 MOVE R7 R11 - 0x542E0017, // 0031 LDINT R11 24 - 0x382C0E0B, // 0032 SHL R11 R7 R11 - 0x5432000F, // 0033 LDINT R12 16 - 0x3830100C, // 0034 SHL R12 R8 R12 - 0x302C160C, // 0035 OR R11 R11 R12 - 0x54320007, // 0036 LDINT R12 8 - 0x3830120C, // 0037 SHL R12 R9 R12 - 0x302C160C, // 0038 OR R11 R11 R12 - 0x302C160A, // 0039 OR R11 R11 R10 - 0x8C30010F, // 003A GETMET R12 R0 K15 - 0x5C380600, // 003B MOVE R14 R3 - 0x5C3C1600, // 003C MOVE R15 R11 - 0x7C300600, // 003D CALL R12 3 - 0x000C0710, // 003E ADD R3 R3 K16 - 0x7001FFC9, // 003F JMP #000A - 0x80000000, // 0040 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: set_pixel_color -********************************************************************/ -be_local_closure(class_FrameBuffer_set_pixel_color, /* name */ - be_nested_proto( - 8, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(set_pixel_color), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x140C0300, // 0000 LT R3 R1 K0 - 0x740E0002, // 0001 JMPT R3 #0005 - 0x880C0103, // 0002 GETMBR R3 R0 K3 - 0x280C0203, // 0003 GE R3 R1 R3 - 0x780E0000, // 0004 JMPF R3 #0006 - 0xB0062312, // 0005 RAISE 1 K17 K18 - 0x880C0104, // 0006 GETMBR R3 R0 K4 - 0x8C0C0713, // 0007 GETMET R3 R3 K19 - 0x54160003, // 0008 LDINT R5 4 - 0x08140205, // 0009 MUL R5 R1 R5 - 0x5C180400, // 000A MOVE R6 R2 - 0x541E0003, // 000B LDINT R7 4 - 0x7C0C0800, // 000C CALL R3 4 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: setitem -********************************************************************/ -be_local_closure(class_FrameBuffer_setitem, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(setitem), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x8C0C010F, // 0000 GETMET R3 R0 K15 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C0C0600, // 0003 CALL R3 3 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: blend -********************************************************************/ -be_local_closure(class_FrameBuffer_blend, /* name */ - be_nested_proto( - 23, /* nstack */ - 4, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(blend), - &be_const_str_solidified, - ( &(const binstruction[169]) { /* code */ - 0x4C100000, // 0000 LDNIL R4 - 0x1C100604, // 0001 EQ R4 R3 R4 - 0x78120000, // 0002 JMPF R4 #0004 - 0x880C0114, // 0003 GETMBR R3 R0 K20 - 0x54120017, // 0004 LDINT R4 24 - 0x3C100204, // 0005 SHR R4 R1 R4 - 0x541600FE, // 0006 LDINT R5 255 - 0x2C100805, // 0007 AND R4 R4 R5 - 0x5416000F, // 0008 LDINT R5 16 - 0x3C140205, // 0009 SHR R5 R1 R5 - 0x541A00FE, // 000A LDINT R6 255 - 0x2C140A06, // 000B AND R5 R5 R6 - 0x541A0007, // 000C LDINT R6 8 - 0x3C180206, // 000D SHR R6 R1 R6 - 0x541E00FE, // 000E LDINT R7 255 - 0x2C180C07, // 000F AND R6 R6 R7 - 0x541E00FE, // 0010 LDINT R7 255 - 0x2C1C0207, // 0011 AND R7 R1 R7 - 0x54220017, // 0012 LDINT R8 24 - 0x3C200408, // 0013 SHR R8 R2 R8 - 0x542600FE, // 0014 LDINT R9 255 - 0x2C201009, // 0015 AND R8 R8 R9 - 0x5426000F, // 0016 LDINT R9 16 - 0x3C240409, // 0017 SHR R9 R2 R9 - 0x542A00FE, // 0018 LDINT R10 255 - 0x2C24120A, // 0019 AND R9 R9 R10 - 0x542A0007, // 001A LDINT R10 8 - 0x3C28040A, // 001B SHR R10 R2 R10 - 0x542E00FE, // 001C LDINT R11 255 - 0x2C28140B, // 001D AND R10 R10 R11 - 0x542E00FE, // 001E LDINT R11 255 - 0x2C2C040B, // 001F AND R11 R2 R11 - 0x1C301100, // 0020 EQ R12 R8 K0 - 0x78320000, // 0021 JMPF R12 #0023 - 0x80040200, // 0022 RET 1 R1 - 0x5C301000, // 0023 MOVE R12 R8 - 0xB8361A00, // 0024 GETNGBL R13 K13 - 0x8C341B0E, // 0025 GETMET R13 R13 K14 - 0x543E00FE, // 0026 LDINT R15 255 - 0x043C1E0C, // 0027 SUB R15 R15 R12 - 0x58400000, // 0028 LDCONST R16 K0 - 0x544600FE, // 0029 LDINT R17 255 - 0x58480000, // 002A LDCONST R18 K0 - 0x5C4C0A00, // 002B MOVE R19 R5 - 0x7C340C00, // 002C CALL R13 6 - 0xB83A1A00, // 002D GETNGBL R14 K13 - 0x8C381D0E, // 002E GETMET R14 R14 K14 - 0x5C401800, // 002F MOVE R16 R12 - 0x58440000, // 0030 LDCONST R17 K0 - 0x544A00FE, // 0031 LDINT R18 255 - 0x584C0000, // 0032 LDCONST R19 K0 - 0x5C501200, // 0033 MOVE R20 R9 - 0x7C380C00, // 0034 CALL R14 6 - 0x00341A0E, // 0035 ADD R13 R13 R14 - 0xB83A1A00, // 0036 GETNGBL R14 K13 - 0x8C381D0E, // 0037 GETMET R14 R14 K14 - 0x544200FE, // 0038 LDINT R16 255 - 0x0440200C, // 0039 SUB R16 R16 R12 - 0x58440000, // 003A LDCONST R17 K0 - 0x544A00FE, // 003B LDINT R18 255 - 0x584C0000, // 003C LDCONST R19 K0 - 0x5C500C00, // 003D MOVE R20 R6 - 0x7C380C00, // 003E CALL R14 6 - 0xB83E1A00, // 003F GETNGBL R15 K13 - 0x8C3C1F0E, // 0040 GETMET R15 R15 K14 - 0x5C441800, // 0041 MOVE R17 R12 - 0x58480000, // 0042 LDCONST R18 K0 - 0x544E00FE, // 0043 LDINT R19 255 - 0x58500000, // 0044 LDCONST R20 K0 - 0x5C541400, // 0045 MOVE R21 R10 - 0x7C3C0C00, // 0046 CALL R15 6 - 0x00381C0F, // 0047 ADD R14 R14 R15 - 0xB83E1A00, // 0048 GETNGBL R15 K13 - 0x8C3C1F0E, // 0049 GETMET R15 R15 K14 - 0x544600FE, // 004A LDINT R17 255 - 0x0444220C, // 004B SUB R17 R17 R12 - 0x58480000, // 004C LDCONST R18 K0 - 0x544E00FE, // 004D LDINT R19 255 - 0x58500000, // 004E LDCONST R20 K0 - 0x5C540E00, // 004F MOVE R21 R7 - 0x7C3C0C00, // 0050 CALL R15 6 - 0xB8421A00, // 0051 GETNGBL R16 K13 - 0x8C40210E, // 0052 GETMET R16 R16 K14 - 0x5C481800, // 0053 MOVE R18 R12 - 0x584C0000, // 0054 LDCONST R19 K0 - 0x545200FE, // 0055 LDINT R20 255 - 0x58540000, // 0056 LDCONST R21 K0 - 0x5C581600, // 0057 MOVE R22 R11 - 0x7C400C00, // 0058 CALL R16 6 - 0x003C1E10, // 0059 ADD R15 R15 R16 - 0xB8421A00, // 005A GETNGBL R16 K13 - 0x8C40210E, // 005B GETMET R16 R16 K14 - 0x544A00FE, // 005C LDINT R18 255 - 0x04482404, // 005D SUB R18 R18 R4 - 0x08482408, // 005E MUL R18 R18 R8 - 0x584C0000, // 005F LDCONST R19 K0 - 0x545200FE, // 0060 LDINT R20 255 - 0x545600FE, // 0061 LDINT R21 255 - 0x08502815, // 0062 MUL R20 R20 R21 - 0x58540000, // 0063 LDCONST R21 K0 - 0x545A00FE, // 0064 LDINT R22 255 - 0x7C400C00, // 0065 CALL R16 6 - 0x00400810, // 0066 ADD R16 R4 R16 - 0x14441B00, // 0067 LT R17 R13 K0 - 0x78460001, // 0068 JMPF R17 #006B - 0x58440000, // 0069 LDCONST R17 K0 - 0x70020005, // 006A JMP #0071 - 0x544600FE, // 006B LDINT R17 255 - 0x24441A11, // 006C GT R17 R13 R17 - 0x78460001, // 006D JMPF R17 #0070 - 0x544600FE, // 006E LDINT R17 255 - 0x70020000, // 006F JMP #0071 - 0x5C441A00, // 0070 MOVE R17 R13 - 0x5C342200, // 0071 MOVE R13 R17 - 0x14441D00, // 0072 LT R17 R14 K0 - 0x78460001, // 0073 JMPF R17 #0076 - 0x58440000, // 0074 LDCONST R17 K0 - 0x70020005, // 0075 JMP #007C - 0x544600FE, // 0076 LDINT R17 255 - 0x24441C11, // 0077 GT R17 R14 R17 - 0x78460001, // 0078 JMPF R17 #007B - 0x544600FE, // 0079 LDINT R17 255 - 0x70020000, // 007A JMP #007C - 0x5C441C00, // 007B MOVE R17 R14 - 0x5C382200, // 007C MOVE R14 R17 - 0x14441F00, // 007D LT R17 R15 K0 - 0x78460001, // 007E JMPF R17 #0081 - 0x58440000, // 007F LDCONST R17 K0 - 0x70020005, // 0080 JMP #0087 - 0x544600FE, // 0081 LDINT R17 255 - 0x24441E11, // 0082 GT R17 R15 R17 - 0x78460001, // 0083 JMPF R17 #0086 - 0x544600FE, // 0084 LDINT R17 255 - 0x70020000, // 0085 JMP #0087 - 0x5C441E00, // 0086 MOVE R17 R15 - 0x5C3C2200, // 0087 MOVE R15 R17 - 0x14442100, // 0088 LT R17 R16 K0 - 0x78460001, // 0089 JMPF R17 #008C - 0x58440000, // 008A LDCONST R17 K0 - 0x70020005, // 008B JMP #0092 - 0x544600FE, // 008C LDINT R17 255 - 0x24442011, // 008D GT R17 R16 R17 - 0x78460001, // 008E JMPF R17 #0091 - 0x544600FE, // 008F LDINT R17 255 - 0x70020000, // 0090 JMP #0092 - 0x5C442000, // 0091 MOVE R17 R16 - 0x5C402200, // 0092 MOVE R16 R17 - 0x60440009, // 0093 GETGBL R17 G9 - 0x5C482000, // 0094 MOVE R18 R16 - 0x7C440200, // 0095 CALL R17 1 - 0x544A0017, // 0096 LDINT R18 24 - 0x38442212, // 0097 SHL R17 R17 R18 - 0x60480009, // 0098 GETGBL R18 G9 - 0x5C4C1A00, // 0099 MOVE R19 R13 - 0x7C480200, // 009A CALL R18 1 - 0x544E000F, // 009B LDINT R19 16 - 0x38482413, // 009C SHL R18 R18 R19 - 0x30442212, // 009D OR R17 R17 R18 - 0x60480009, // 009E GETGBL R18 G9 - 0x5C4C1C00, // 009F MOVE R19 R14 - 0x7C480200, // 00A0 CALL R18 1 - 0x544E0007, // 00A1 LDINT R19 8 - 0x38482413, // 00A2 SHL R18 R18 R19 - 0x30442212, // 00A3 OR R17 R17 R18 - 0x60480009, // 00A4 GETGBL R18 G9 - 0x5C4C1E00, // 00A5 MOVE R19 R15 - 0x7C480200, // 00A6 CALL R18 1 - 0x30442212, // 00A7 OR R17 R17 R18 - 0x80042200, // 00A8 RET 1 R17 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: copy -********************************************************************/ -be_local_closure(class_FrameBuffer_copy, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(copy), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0xB8062A00, // 0000 GETNGBL R1 K21 - 0x8C040316, // 0001 GETMET R1 R1 K22 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C040400, // 0003 CALL R1 2 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: to_color -********************************************************************/ -be_local_closure(class_FrameBuffer_to_color, /* name */ - be_nested_proto( - 7, /* nstack */ - 4, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(to_color), - &be_const_str_solidified, - ( &(const binstruction[23]) { /* code */ - 0x58100017, // 0000 LDCONST R4 K23 - 0x4C140000, // 0001 LDNIL R5 - 0x1C140605, // 0002 EQ R5 R3 R5 - 0x78160000, // 0003 JMPF R5 #0005 - 0x540E00FE, // 0004 LDINT R3 255 - 0x541600FE, // 0005 LDINT R5 255 - 0x2C000005, // 0006 AND R0 R0 R5 - 0x541600FE, // 0007 LDINT R5 255 - 0x2C040205, // 0008 AND R1 R1 R5 - 0x541600FE, // 0009 LDINT R5 255 - 0x2C080405, // 000A AND R2 R2 R5 - 0x541600FE, // 000B LDINT R5 255 - 0x2C0C0605, // 000C AND R3 R3 R5 - 0x54160017, // 000D LDINT R5 24 - 0x38140605, // 000E SHL R5 R3 R5 - 0x541A000F, // 000F LDINT R6 16 - 0x38180006, // 0010 SHL R6 R0 R6 - 0x30140A06, // 0011 OR R5 R5 R6 - 0x541A0007, // 0012 LDINT R6 8 - 0x38180206, // 0013 SHL R6 R1 R6 - 0x30140A06, // 0014 OR R5 R5 R6 - 0x30140A02, // 0015 OR R5 R5 R2 - 0x80040A00, // 0016 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: apply_brightness -********************************************************************/ -be_local_closure(class_FrameBuffer_apply_brightness, /* name */ - be_nested_proto( - 20, /* nstack */ - 4, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(apply_brightness), - &be_const_str_solidified, - ( &(const binstruction[246]) { /* code */ - 0x4C100000, // 0000 LDNIL R4 - 0x1C100204, // 0001 EQ R4 R1 R4 - 0x78120000, // 0002 JMPF R4 #0004 - 0x540600FE, // 0003 LDINT R1 255 - 0x4C100000, // 0004 LDNIL R4 - 0x1C100404, // 0005 EQ R4 R2 R4 - 0x78120000, // 0006 JMPF R4 #0008 - 0x58080000, // 0007 LDCONST R2 K0 - 0x4C100000, // 0008 LDNIL R4 - 0x1C100604, // 0009 EQ R4 R3 R4 - 0x78120002, // 000A JMPF R4 #000E - 0x88100103, // 000B GETMBR R4 R0 K3 - 0x04100910, // 000C SUB R4 R4 K16 - 0x5C0C0800, // 000D MOVE R3 R4 - 0x14100500, // 000E LT R4 R2 K0 - 0x74120002, // 000F JMPT R4 #0013 - 0x88100103, // 0010 GETMBR R4 R0 K3 - 0x28100404, // 0011 GE R4 R2 R4 - 0x78120000, // 0012 JMPF R4 #0014 - 0xB0062318, // 0013 RAISE 1 K17 K24 - 0x14100602, // 0014 LT R4 R3 R2 - 0x74120002, // 0015 JMPT R4 #0019 - 0x88100103, // 0016 GETMBR R4 R0 K3 - 0x28100604, // 0017 GE R4 R3 R4 - 0x78120000, // 0018 JMPF R4 #001A - 0xB0062319, // 0019 RAISE 1 K17 K25 - 0x6010000F, // 001A GETGBL R4 G15 - 0x5C140200, // 001B MOVE R5 R1 - 0xB81A2A00, // 001C GETNGBL R6 K21 - 0x88180D16, // 001D GETMBR R6 R6 K22 - 0x7C100400, // 001E CALL R4 2 - 0x7812004B, // 001F JMPF R4 #006C - 0x5C100200, // 0020 MOVE R4 R1 - 0x88140103, // 0021 GETMBR R5 R0 K3 - 0x88180903, // 0022 GETMBR R6 R4 K3 - 0x20140A06, // 0023 NE R5 R5 R6 - 0x78160000, // 0024 JMPF R5 #0026 - 0xB006030B, // 0025 RAISE 1 K1 K11 - 0x5C140400, // 0026 MOVE R5 R2 - 0x18180A03, // 0027 LE R6 R5 R3 - 0x781A0041, // 0028 JMPF R6 #006B - 0x8C18010C, // 0029 GETMET R6 R0 K12 - 0x5C200A00, // 002A MOVE R8 R5 - 0x7C180400, // 002B CALL R6 2 - 0x8C1C090C, // 002C GETMET R7 R4 K12 - 0x5C240A00, // 002D MOVE R9 R5 - 0x7C1C0400, // 002E CALL R7 2 - 0x54220017, // 002F LDINT R8 24 - 0x3C200E08, // 0030 SHR R8 R7 R8 - 0x542600FE, // 0031 LDINT R9 255 - 0x2C201009, // 0032 AND R8 R8 R9 - 0x54260017, // 0033 LDINT R9 24 - 0x3C240C09, // 0034 SHR R9 R6 R9 - 0x542A00FE, // 0035 LDINT R10 255 - 0x2C24120A, // 0036 AND R9 R9 R10 - 0x542A000F, // 0037 LDINT R10 16 - 0x3C280C0A, // 0038 SHR R10 R6 R10 - 0x542E00FE, // 0039 LDINT R11 255 - 0x2C28140B, // 003A AND R10 R10 R11 - 0x542E0007, // 003B LDINT R11 8 - 0x3C2C0C0B, // 003C SHR R11 R6 R11 - 0x543200FE, // 003D LDINT R12 255 - 0x2C2C160C, // 003E AND R11 R11 R12 - 0x543200FE, // 003F LDINT R12 255 - 0x2C300C0C, // 0040 AND R12 R6 R12 - 0xB8361A00, // 0041 GETNGBL R13 K13 - 0x8C341B0E, // 0042 GETMET R13 R13 K14 - 0x5C3C1000, // 0043 MOVE R15 R8 - 0x58400000, // 0044 LDCONST R16 K0 - 0x544600FE, // 0045 LDINT R17 255 - 0x58480000, // 0046 LDCONST R18 K0 - 0x5C4C1400, // 0047 MOVE R19 R10 - 0x7C340C00, // 0048 CALL R13 6 - 0x5C281A00, // 0049 MOVE R10 R13 - 0xB8361A00, // 004A GETNGBL R13 K13 - 0x8C341B0E, // 004B GETMET R13 R13 K14 - 0x5C3C1000, // 004C MOVE R15 R8 - 0x58400000, // 004D LDCONST R16 K0 - 0x544600FE, // 004E LDINT R17 255 - 0x58480000, // 004F LDCONST R18 K0 - 0x5C4C1600, // 0050 MOVE R19 R11 - 0x7C340C00, // 0051 CALL R13 6 - 0x5C2C1A00, // 0052 MOVE R11 R13 - 0xB8361A00, // 0053 GETNGBL R13 K13 - 0x8C341B0E, // 0054 GETMET R13 R13 K14 - 0x5C3C1000, // 0055 MOVE R15 R8 - 0x58400000, // 0056 LDCONST R16 K0 - 0x544600FE, // 0057 LDINT R17 255 - 0x58480000, // 0058 LDCONST R18 K0 - 0x5C4C1800, // 0059 MOVE R19 R12 - 0x7C340C00, // 005A CALL R13 6 - 0x5C301A00, // 005B MOVE R12 R13 - 0x54360017, // 005C LDINT R13 24 - 0x3834120D, // 005D SHL R13 R9 R13 - 0x543A000F, // 005E LDINT R14 16 - 0x3838140E, // 005F SHL R14 R10 R14 - 0x30341A0E, // 0060 OR R13 R13 R14 - 0x543A0007, // 0061 LDINT R14 8 - 0x3838160E, // 0062 SHL R14 R11 R14 - 0x30341A0E, // 0063 OR R13 R13 R14 - 0x30341A0C, // 0064 OR R13 R13 R12 - 0x8C38010F, // 0065 GETMET R14 R0 K15 - 0x5C400A00, // 0066 MOVE R16 R5 - 0x5C441A00, // 0067 MOVE R17 R13 - 0x7C380600, // 0068 CALL R14 3 - 0x00140B10, // 0069 ADD R5 R5 K16 - 0x7001FFBB, // 006A JMP #0027 - 0x70020088, // 006B JMP #00F5 - 0x60100009, // 006C GETGBL R4 G9 - 0x5C140200, // 006D MOVE R5 R1 - 0x7C100200, // 006E CALL R4 1 - 0x14140900, // 006F LT R5 R4 K0 - 0x78160001, // 0070 JMPF R5 #0073 - 0x58140000, // 0071 LDCONST R5 K0 - 0x70020005, // 0072 JMP #0079 - 0x541601FE, // 0073 LDINT R5 511 - 0x24140805, // 0074 GT R5 R4 R5 - 0x78160001, // 0075 JMPF R5 #0078 - 0x541601FE, // 0076 LDINT R5 511 - 0x70020000, // 0077 JMP #0079 - 0x5C140800, // 0078 MOVE R5 R4 - 0x5C100A00, // 0079 MOVE R4 R5 - 0x5C140400, // 007A MOVE R5 R2 - 0x18180A03, // 007B LE R6 R5 R3 - 0x781A0077, // 007C JMPF R6 #00F5 - 0x8C18010C, // 007D GETMET R6 R0 K12 - 0x5C200A00, // 007E MOVE R8 R5 - 0x7C180400, // 007F CALL R6 2 - 0x541E0017, // 0080 LDINT R7 24 - 0x3C1C0C07, // 0081 SHR R7 R6 R7 - 0x542200FE, // 0082 LDINT R8 255 - 0x2C1C0E08, // 0083 AND R7 R7 R8 - 0x5422000F, // 0084 LDINT R8 16 - 0x3C200C08, // 0085 SHR R8 R6 R8 - 0x542600FE, // 0086 LDINT R9 255 - 0x2C201009, // 0087 AND R8 R8 R9 - 0x54260007, // 0088 LDINT R9 8 - 0x3C240C09, // 0089 SHR R9 R6 R9 - 0x542A00FE, // 008A LDINT R10 255 - 0x2C24120A, // 008B AND R9 R9 R10 - 0x542A00FE, // 008C LDINT R10 255 - 0x2C280C0A, // 008D AND R10 R6 R10 - 0x542E00FE, // 008E LDINT R11 255 - 0x182C080B, // 008F LE R11 R4 R11 - 0x782E001B, // 0090 JMPF R11 #00AD - 0xB82E1A00, // 0091 GETNGBL R11 K13 - 0x8C2C170E, // 0092 GETMET R11 R11 K14 - 0x5C341000, // 0093 MOVE R13 R8 - 0x58380000, // 0094 LDCONST R14 K0 - 0x543E00FE, // 0095 LDINT R15 255 - 0x58400000, // 0096 LDCONST R16 K0 - 0x5C440800, // 0097 MOVE R17 R4 - 0x7C2C0C00, // 0098 CALL R11 6 - 0x5C201600, // 0099 MOVE R8 R11 - 0xB82E1A00, // 009A GETNGBL R11 K13 - 0x8C2C170E, // 009B GETMET R11 R11 K14 - 0x5C341200, // 009C MOVE R13 R9 - 0x58380000, // 009D LDCONST R14 K0 - 0x543E00FE, // 009E LDINT R15 255 - 0x58400000, // 009F LDCONST R16 K0 - 0x5C440800, // 00A0 MOVE R17 R4 - 0x7C2C0C00, // 00A1 CALL R11 6 - 0x5C241600, // 00A2 MOVE R9 R11 - 0xB82E1A00, // 00A3 GETNGBL R11 K13 - 0x8C2C170E, // 00A4 GETMET R11 R11 K14 - 0x5C341400, // 00A5 MOVE R13 R10 - 0x58380000, // 00A6 LDCONST R14 K0 - 0x543E00FE, // 00A7 LDINT R15 255 - 0x58400000, // 00A8 LDCONST R16 K0 - 0x5C440800, // 00A9 MOVE R17 R4 - 0x7C2C0C00, // 00AA CALL R11 6 - 0x5C281600, // 00AB MOVE R10 R11 - 0x70020037, // 00AC JMP #00E5 - 0x542E00FE, // 00AD LDINT R11 255 - 0x042C080B, // 00AE SUB R11 R4 R11 - 0xB8321A00, // 00AF GETNGBL R12 K13 - 0x8C30190E, // 00B0 GETMET R12 R12 K14 - 0x0838100B, // 00B1 MUL R14 R8 R11 - 0x583C0000, // 00B2 LDCONST R15 K0 - 0x544200FE, // 00B3 LDINT R16 255 - 0x544600FF, // 00B4 LDINT R17 256 - 0x08402011, // 00B5 MUL R16 R16 R17 - 0x58440000, // 00B6 LDCONST R17 K0 - 0x544A00FE, // 00B7 LDINT R18 255 - 0x7C300C00, // 00B8 CALL R12 6 - 0x0020100C, // 00B9 ADD R8 R8 R12 - 0xB8321A00, // 00BA GETNGBL R12 K13 - 0x8C30190E, // 00BB GETMET R12 R12 K14 - 0x0838120B, // 00BC MUL R14 R9 R11 - 0x583C0000, // 00BD LDCONST R15 K0 - 0x544200FE, // 00BE LDINT R16 255 - 0x544600FF, // 00BF LDINT R17 256 - 0x08402011, // 00C0 MUL R16 R16 R17 - 0x58440000, // 00C1 LDCONST R17 K0 - 0x544A00FE, // 00C2 LDINT R18 255 - 0x7C300C00, // 00C3 CALL R12 6 - 0x0024120C, // 00C4 ADD R9 R9 R12 - 0xB8321A00, // 00C5 GETNGBL R12 K13 - 0x8C30190E, // 00C6 GETMET R12 R12 K14 - 0x0838140B, // 00C7 MUL R14 R10 R11 - 0x583C0000, // 00C8 LDCONST R15 K0 - 0x544200FE, // 00C9 LDINT R16 255 - 0x544600FF, // 00CA LDINT R17 256 - 0x08402011, // 00CB MUL R16 R16 R17 - 0x58440000, // 00CC LDCONST R17 K0 - 0x544A00FE, // 00CD LDINT R18 255 - 0x7C300C00, // 00CE CALL R12 6 - 0x0028140C, // 00CF ADD R10 R10 R12 - 0x543200FE, // 00D0 LDINT R12 255 - 0x2430100C, // 00D1 GT R12 R8 R12 - 0x78320001, // 00D2 JMPF R12 #00D5 - 0x543200FE, // 00D3 LDINT R12 255 - 0x70020000, // 00D4 JMP #00D6 - 0x5C301000, // 00D5 MOVE R12 R8 - 0x5C201800, // 00D6 MOVE R8 R12 - 0x543200FE, // 00D7 LDINT R12 255 - 0x2430120C, // 00D8 GT R12 R9 R12 - 0x78320001, // 00D9 JMPF R12 #00DC - 0x543200FE, // 00DA LDINT R12 255 - 0x70020000, // 00DB JMP #00DD - 0x5C301200, // 00DC MOVE R12 R9 - 0x5C241800, // 00DD MOVE R9 R12 - 0x543200FE, // 00DE LDINT R12 255 - 0x2430140C, // 00DF GT R12 R10 R12 - 0x78320001, // 00E0 JMPF R12 #00E3 - 0x543200FE, // 00E1 LDINT R12 255 - 0x70020000, // 00E2 JMP #00E4 - 0x5C301400, // 00E3 MOVE R12 R10 - 0x5C281800, // 00E4 MOVE R10 R12 - 0x542E0017, // 00E5 LDINT R11 24 - 0x382C0E0B, // 00E6 SHL R11 R7 R11 - 0x5432000F, // 00E7 LDINT R12 16 - 0x3830100C, // 00E8 SHL R12 R8 R12 - 0x302C160C, // 00E9 OR R11 R11 R12 - 0x54320007, // 00EA LDINT R12 8 - 0x3830120C, // 00EB SHL R12 R9 R12 - 0x302C160C, // 00EC OR R11 R11 R12 - 0x302C160A, // 00ED OR R11 R11 R10 - 0x5C181600, // 00EE MOVE R6 R11 - 0x8C2C010F, // 00EF GETMET R11 R0 K15 - 0x5C340A00, // 00F0 MOVE R13 R5 - 0x5C380C00, // 00F1 MOVE R14 R6 - 0x7C2C0600, // 00F2 CALL R11 3 - 0x00140B10, // 00F3 ADD R5 R5 K16 - 0x7001FF85, // 00F4 JMP #007B - 0x80000000, // 00F5 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_FrameBuffer_tostring, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x5808001A, // 0001 LDCONST R2 K26 - 0x880C0103, // 0002 GETMBR R3 R0 K3 - 0x88100104, // 0003 GETMBR R4 R0 K4 - 0x7C040600, // 0004 CALL R1 3 - 0x80040200, // 0005 RET 1 R1 + ( &(const binstruction[ 4]) { /* code */ + 0x8C08010C, // 0000 GETMET R2 R0 K12 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x80040400, // 0003 RET 1 R2 }) ) ); @@ -14144,9 +13748,9 @@ be_local_closure(class_FrameBuffer_get_pixel_color, /* name */ 0x88080103, // 0002 GETMBR R2 R0 K3 0x28080202, // 0003 GE R2 R1 R2 0x780A0000, // 0004 JMPF R2 #0006 - 0xB0062312, // 0005 RAISE 1 K17 K18 + 0xB0061312, // 0005 RAISE 1 K9 K18 0x88080104, // 0006 GETMBR R2 R0 K4 - 0x8C08051B, // 0007 GETMET R2 R2 K27 + 0x8C080513, // 0007 GETMET R2 R2 K19 0x54120003, // 0008 LDINT R4 4 0x08100204, // 0009 MUL R4 R1 R4 0x54160003, // 000A LDINT R5 4 @@ -14158,459 +13762,6 @@ be_local_closure(class_FrameBuffer_get_pixel_color, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: tohex -********************************************************************/ -be_local_closure(class_FrameBuffer_tohex, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(tohex), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040104, // 0000 GETMBR R1 R0 K4 - 0x8C04031C, // 0001 GETMET R1 R1 K28 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: blend_color -********************************************************************/ -be_local_closure(class_FrameBuffer_blend_color, /* name */ - be_nested_proto( - 17, /* nstack */ - 5, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(blend_color), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0x4C140000, // 0000 LDNIL R5 - 0x1C140405, // 0001 EQ R5 R2 R5 - 0x78160000, // 0002 JMPF R5 #0004 - 0x88080114, // 0003 GETMBR R2 R0 K20 - 0x4C140000, // 0004 LDNIL R5 - 0x1C140605, // 0005 EQ R5 R3 R5 - 0x78160000, // 0006 JMPF R5 #0008 - 0x580C0000, // 0007 LDCONST R3 K0 - 0x4C140000, // 0008 LDNIL R5 - 0x1C140805, // 0009 EQ R5 R4 R5 - 0x78160002, // 000A JMPF R5 #000E - 0x88140103, // 000B GETMBR R5 R0 K3 - 0x04140B10, // 000C SUB R5 R5 K16 - 0x5C100A00, // 000D MOVE R4 R5 - 0x14140700, // 000E LT R5 R3 K0 - 0x74160002, // 000F JMPT R5 #0013 - 0x88140103, // 0010 GETMBR R5 R0 K3 - 0x28140605, // 0011 GE R5 R3 R5 - 0x78160000, // 0012 JMPF R5 #0014 - 0xB0062318, // 0013 RAISE 1 K17 K24 - 0x14140803, // 0014 LT R5 R4 R3 - 0x74160002, // 0015 JMPT R5 #0019 - 0x88140103, // 0016 GETMBR R5 R0 K3 - 0x28140805, // 0017 GE R5 R4 R5 - 0x78160000, // 0018 JMPF R5 #001A - 0xB0062319, // 0019 RAISE 1 K17 K25 - 0x54160017, // 001A LDINT R5 24 - 0x3C140205, // 001B SHR R5 R1 R5 - 0x541A00FE, // 001C LDINT R6 255 - 0x2C140A06, // 001D AND R5 R5 R6 - 0x541A000F, // 001E LDINT R6 16 - 0x3C180206, // 001F SHR R6 R1 R6 - 0x541E00FE, // 0020 LDINT R7 255 - 0x2C180C07, // 0021 AND R6 R6 R7 - 0x541E0007, // 0022 LDINT R7 8 - 0x3C1C0207, // 0023 SHR R7 R1 R7 - 0x542200FE, // 0024 LDINT R8 255 - 0x2C1C0E08, // 0025 AND R7 R7 R8 - 0x542200FE, // 0026 LDINT R8 255 - 0x2C200208, // 0027 AND R8 R1 R8 - 0x5C240600, // 0028 MOVE R9 R3 - 0x18281204, // 0029 LE R10 R9 R4 - 0x782A0012, // 002A JMPF R10 #003E - 0x8C28010C, // 002B GETMET R10 R0 K12 - 0x5C301200, // 002C MOVE R12 R9 - 0x7C280400, // 002D CALL R10 2 - 0x242C0B00, // 002E GT R11 R5 K0 - 0x782E000B, // 002F JMPF R11 #003C - 0x8C2C011D, // 0030 GETMET R11 R0 K29 - 0x5C341400, // 0031 MOVE R13 R10 - 0x5C380200, // 0032 MOVE R14 R1 - 0x5C3C0400, // 0033 MOVE R15 R2 - 0x7C2C0800, // 0034 CALL R11 4 - 0x88300104, // 0035 GETMBR R12 R0 K4 - 0x8C301913, // 0036 GETMET R12 R12 K19 - 0x543A0003, // 0037 LDINT R14 4 - 0x0838120E, // 0038 MUL R14 R9 R14 - 0x5C3C1600, // 0039 MOVE R15 R11 - 0x54420003, // 003A LDINT R16 4 - 0x7C300800, // 003B CALL R12 4 - 0x00241310, // 003C ADD R9 R9 K16 - 0x7001FFEA, // 003D JMP #0029 - 0x80000000, // 003E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: apply_opacity -********************************************************************/ -be_local_closure(class_FrameBuffer_apply_opacity, /* name */ - be_nested_proto( - 18, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(apply_opacity), - &be_const_str_solidified, - ( &(const binstruction[152]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x1C080202, // 0001 EQ R2 R1 R2 - 0x780A0000, // 0002 JMPF R2 #0004 - 0x540600FE, // 0003 LDINT R1 255 - 0x6008000F, // 0004 GETGBL R2 G15 - 0x5C0C0200, // 0005 MOVE R3 R1 - 0xB8122A00, // 0006 GETNGBL R4 K21 - 0x88100916, // 0007 GETMBR R4 R4 K22 - 0x7C080400, // 0008 CALL R2 2 - 0x780A003A, // 0009 JMPF R2 #0045 - 0x5C080200, // 000A MOVE R2 R1 - 0x880C0103, // 000B GETMBR R3 R0 K3 - 0x88100503, // 000C GETMBR R4 R2 K3 - 0x200C0604, // 000D NE R3 R3 R4 - 0x780E0000, // 000E JMPF R3 #0010 - 0xB006030B, // 000F RAISE 1 K1 K11 - 0x580C0000, // 0010 LDCONST R3 K0 - 0x88100103, // 0011 GETMBR R4 R0 K3 - 0x14100604, // 0012 LT R4 R3 R4 - 0x7812002F, // 0013 JMPF R4 #0044 - 0x8C10010C, // 0014 GETMET R4 R0 K12 - 0x5C180600, // 0015 MOVE R6 R3 - 0x7C100400, // 0016 CALL R4 2 - 0x8C14050C, // 0017 GETMET R5 R2 K12 - 0x5C1C0600, // 0018 MOVE R7 R3 - 0x7C140400, // 0019 CALL R5 2 - 0x541A0017, // 001A LDINT R6 24 - 0x3C180A06, // 001B SHR R6 R5 R6 - 0x541E00FE, // 001C LDINT R7 255 - 0x2C180C07, // 001D AND R6 R6 R7 - 0x541E0017, // 001E LDINT R7 24 - 0x3C1C0807, // 001F SHR R7 R4 R7 - 0x542200FE, // 0020 LDINT R8 255 - 0x2C1C0E08, // 0021 AND R7 R7 R8 - 0x5422000F, // 0022 LDINT R8 16 - 0x3C200808, // 0023 SHR R8 R4 R8 - 0x542600FE, // 0024 LDINT R9 255 - 0x2C201009, // 0025 AND R8 R8 R9 - 0x54260007, // 0026 LDINT R9 8 - 0x3C240809, // 0027 SHR R9 R4 R9 - 0x542A00FE, // 0028 LDINT R10 255 - 0x2C24120A, // 0029 AND R9 R9 R10 - 0x542A00FE, // 002A LDINT R10 255 - 0x2C28080A, // 002B AND R10 R4 R10 - 0xB82E1A00, // 002C GETNGBL R11 K13 - 0x8C2C170E, // 002D GETMET R11 R11 K14 - 0x5C340C00, // 002E MOVE R13 R6 - 0x58380000, // 002F LDCONST R14 K0 - 0x543E00FE, // 0030 LDINT R15 255 - 0x58400000, // 0031 LDCONST R16 K0 - 0x5C440E00, // 0032 MOVE R17 R7 - 0x7C2C0C00, // 0033 CALL R11 6 - 0x5C1C1600, // 0034 MOVE R7 R11 - 0x542E0017, // 0035 LDINT R11 24 - 0x382C0E0B, // 0036 SHL R11 R7 R11 - 0x5432000F, // 0037 LDINT R12 16 - 0x3830100C, // 0038 SHL R12 R8 R12 - 0x302C160C, // 0039 OR R11 R11 R12 - 0x54320007, // 003A LDINT R12 8 - 0x3830120C, // 003B SHL R12 R9 R12 - 0x302C160C, // 003C OR R11 R11 R12 - 0x302C160A, // 003D OR R11 R11 R10 - 0x8C30010F, // 003E GETMET R12 R0 K15 - 0x5C380600, // 003F MOVE R14 R3 - 0x5C3C1600, // 0040 MOVE R15 R11 - 0x7C300600, // 0041 CALL R12 3 - 0x000C0710, // 0042 ADD R3 R3 K16 - 0x7001FFCC, // 0043 JMP #0011 - 0x70020051, // 0044 JMP #0097 - 0x60080009, // 0045 GETGBL R2 G9 - 0x5C0C0200, // 0046 MOVE R3 R1 - 0x7C080200, // 0047 CALL R2 1 - 0x140C0500, // 0048 LT R3 R2 K0 - 0x780E0001, // 0049 JMPF R3 #004C - 0x580C0000, // 004A LDCONST R3 K0 - 0x70020005, // 004B JMP #0052 - 0x540E01FE, // 004C LDINT R3 511 - 0x240C0403, // 004D GT R3 R2 R3 - 0x780E0001, // 004E JMPF R3 #0051 - 0x540E01FE, // 004F LDINT R3 511 - 0x70020000, // 0050 JMP #0052 - 0x5C0C0400, // 0051 MOVE R3 R2 - 0x5C080600, // 0052 MOVE R2 R3 - 0x580C0000, // 0053 LDCONST R3 K0 - 0x88100103, // 0054 GETMBR R4 R0 K3 - 0x14100604, // 0055 LT R4 R3 R4 - 0x7812003F, // 0056 JMPF R4 #0097 - 0x8C10010C, // 0057 GETMET R4 R0 K12 - 0x5C180600, // 0058 MOVE R6 R3 - 0x7C100400, // 0059 CALL R4 2 - 0x54160017, // 005A LDINT R5 24 - 0x3C140805, // 005B SHR R5 R4 R5 - 0x541A00FE, // 005C LDINT R6 255 - 0x2C140A06, // 005D AND R5 R5 R6 - 0x541A000F, // 005E LDINT R6 16 - 0x3C180806, // 005F SHR R6 R4 R6 - 0x541E00FE, // 0060 LDINT R7 255 - 0x2C180C07, // 0061 AND R6 R6 R7 - 0x541E0007, // 0062 LDINT R7 8 - 0x3C1C0807, // 0063 SHR R7 R4 R7 - 0x542200FE, // 0064 LDINT R8 255 - 0x2C1C0E08, // 0065 AND R7 R7 R8 - 0x542200FE, // 0066 LDINT R8 255 - 0x2C200808, // 0067 AND R8 R4 R8 - 0x542600FE, // 0068 LDINT R9 255 - 0x18240409, // 0069 LE R9 R2 R9 - 0x78260009, // 006A JMPF R9 #0075 - 0xB8261A00, // 006B GETNGBL R9 K13 - 0x8C24130E, // 006C GETMET R9 R9 K14 - 0x5C2C0400, // 006D MOVE R11 R2 - 0x58300000, // 006E LDCONST R12 K0 - 0x543600FE, // 006F LDINT R13 255 - 0x58380000, // 0070 LDCONST R14 K0 - 0x5C3C0A00, // 0071 MOVE R15 R5 - 0x7C240C00, // 0072 CALL R9 6 - 0x5C141200, // 0073 MOVE R5 R9 - 0x70020011, // 0074 JMP #0087 - 0xB8261A00, // 0075 GETNGBL R9 K13 - 0x8C24130E, // 0076 GETMET R9 R9 K14 - 0x082C0A02, // 0077 MUL R11 R5 R2 - 0x58300000, // 0078 LDCONST R12 K0 - 0x543600FE, // 0079 LDINT R13 255 - 0x543A00FE, // 007A LDINT R14 255 - 0x08341A0E, // 007B MUL R13 R13 R14 - 0x58380000, // 007C LDCONST R14 K0 - 0x543E00FE, // 007D LDINT R15 255 - 0x7C240C00, // 007E CALL R9 6 - 0x5C141200, // 007F MOVE R5 R9 - 0x542600FE, // 0080 LDINT R9 255 - 0x24240A09, // 0081 GT R9 R5 R9 - 0x78260001, // 0082 JMPF R9 #0085 - 0x542600FE, // 0083 LDINT R9 255 - 0x70020000, // 0084 JMP #0086 - 0x5C240A00, // 0085 MOVE R9 R5 - 0x5C141200, // 0086 MOVE R5 R9 - 0x54260017, // 0087 LDINT R9 24 - 0x38240A09, // 0088 SHL R9 R5 R9 - 0x542A000F, // 0089 LDINT R10 16 - 0x38280C0A, // 008A SHL R10 R6 R10 - 0x3024120A, // 008B OR R9 R9 R10 - 0x542A0007, // 008C LDINT R10 8 - 0x38280E0A, // 008D SHL R10 R7 R10 - 0x3024120A, // 008E OR R9 R9 R10 - 0x30241208, // 008F OR R9 R9 R8 - 0x5C101200, // 0090 MOVE R4 R9 - 0x8C24010F, // 0091 GETMET R9 R0 K15 - 0x5C2C0600, // 0092 MOVE R11 R3 - 0x5C300800, // 0093 MOVE R12 R4 - 0x7C240600, // 0094 CALL R9 3 - 0x000C0710, // 0095 ADD R3 R3 K16 - 0x7001FFBC, // 0096 JMP #0054 - 0x80000000, // 0097 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: fill_pixels -********************************************************************/ -be_local_closure(class_FrameBuffer_fill_pixels, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(fill_pixels), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x58080000, // 0000 LDCONST R2 K0 - 0x880C0103, // 0001 GETMBR R3 R0 K3 - 0x140C0403, // 0002 LT R3 R2 R3 - 0x780E0008, // 0003 JMPF R3 #000D - 0x880C0104, // 0004 GETMBR R3 R0 K4 - 0x8C0C0713, // 0005 GETMET R3 R3 K19 - 0x54160003, // 0006 LDINT R5 4 - 0x08140405, // 0007 MUL R5 R2 R5 - 0x5C180200, // 0008 MOVE R6 R1 - 0x541E0003, // 0009 LDINT R7 4 - 0x7C0C0800, // 000A CALL R3 4 - 0x00080510, // 000B ADD R2 R2 K16 - 0x7001FFF3, // 000C JMP #0001 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: blend_pixels -********************************************************************/ -be_local_closure(class_FrameBuffer_blend_pixels, /* name */ - be_nested_proto( - 15, /* nstack */ - 5, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(blend_pixels), - &be_const_str_solidified, - ( &(const binstruction[105]) { /* code */ - 0x4C140000, // 0000 LDNIL R5 - 0x1C140405, // 0001 EQ R5 R2 R5 - 0x78160000, // 0002 JMPF R5 #0004 - 0x88080114, // 0003 GETMBR R2 R0 K20 - 0x4C140000, // 0004 LDNIL R5 - 0x1C140605, // 0005 EQ R5 R3 R5 - 0x78160000, // 0006 JMPF R5 #0008 - 0x580C0000, // 0007 LDCONST R3 K0 - 0x4C140000, // 0008 LDNIL R5 - 0x1C140805, // 0009 EQ R5 R4 R5 - 0x78160002, // 000A JMPF R5 #000E - 0x88140103, // 000B GETMBR R5 R0 K3 - 0x04140B10, // 000C SUB R5 R5 K16 - 0x5C100A00, // 000D MOVE R4 R5 - 0x88140103, // 000E GETMBR R5 R0 K3 - 0x88180303, // 000F GETMBR R6 R1 K3 - 0x20140A06, // 0010 NE R5 R5 R6 - 0x78160000, // 0011 JMPF R5 #0013 - 0xB006030B, // 0012 RAISE 1 K1 K11 - 0x14140700, // 0013 LT R5 R3 K0 - 0x74160002, // 0014 JMPT R5 #0018 - 0x88140103, // 0015 GETMBR R5 R0 K3 - 0x28140605, // 0016 GE R5 R3 R5 - 0x78160000, // 0017 JMPF R5 #0019 - 0xB006231E, // 0018 RAISE 1 K17 K30 - 0x14140803, // 0019 LT R5 R4 R3 - 0x74160002, // 001A JMPT R5 #001E - 0x88140103, // 001B GETMBR R5 R0 K3 - 0x28140805, // 001C GE R5 R4 R5 - 0x78160000, // 001D JMPF R5 #001F - 0xB006231F, // 001E RAISE 1 K17 K31 - 0x88140114, // 001F GETMBR R5 R0 K20 - 0x1C140405, // 0020 EQ R5 R2 R5 - 0x78160028, // 0021 JMPF R5 #004B - 0x5C140600, // 0022 MOVE R5 R3 - 0x18180A04, // 0023 LE R6 R5 R4 - 0x781A0024, // 0024 JMPF R6 #004A - 0x8C18030C, // 0025 GETMET R6 R1 K12 - 0x5C200A00, // 0026 MOVE R8 R5 - 0x7C180400, // 0027 CALL R6 2 - 0x541E0017, // 0028 LDINT R7 24 - 0x3C1C0C07, // 0029 SHR R7 R6 R7 - 0x542200FE, // 002A LDINT R8 255 - 0x2C1C0E08, // 002B AND R7 R7 R8 - 0x24200F00, // 002C GT R8 R7 K0 - 0x78220019, // 002D JMPF R8 #0048 - 0x542200FE, // 002E LDINT R8 255 - 0x1C200E08, // 002F EQ R8 R7 R8 - 0x78220007, // 0030 JMPF R8 #0039 - 0x88200104, // 0031 GETMBR R8 R0 K4 - 0x8C201113, // 0032 GETMET R8 R8 K19 - 0x542A0003, // 0033 LDINT R10 4 - 0x08280A0A, // 0034 MUL R10 R5 R10 - 0x5C2C0C00, // 0035 MOVE R11 R6 - 0x54320003, // 0036 LDINT R12 4 - 0x7C200800, // 0037 CALL R8 4 - 0x7002000E, // 0038 JMP #0048 - 0x8C20010C, // 0039 GETMET R8 R0 K12 - 0x5C280A00, // 003A MOVE R10 R5 - 0x7C200400, // 003B CALL R8 2 - 0x8C24011D, // 003C GETMET R9 R0 K29 - 0x5C2C1000, // 003D MOVE R11 R8 - 0x5C300C00, // 003E MOVE R12 R6 - 0x5C340400, // 003F MOVE R13 R2 - 0x7C240800, // 0040 CALL R9 4 - 0x88280104, // 0041 GETMBR R10 R0 K4 - 0x8C281513, // 0042 GETMET R10 R10 K19 - 0x54320003, // 0043 LDINT R12 4 - 0x08300A0C, // 0044 MUL R12 R5 R12 - 0x5C341200, // 0045 MOVE R13 R9 - 0x543A0003, // 0046 LDINT R14 4 - 0x7C280800, // 0047 CALL R10 4 - 0x00140B10, // 0048 ADD R5 R5 K16 - 0x7001FFD8, // 0049 JMP #0023 - 0x80000C00, // 004A RET 0 - 0x5C140600, // 004B MOVE R5 R3 - 0x18180A04, // 004C LE R6 R5 R4 - 0x781A0019, // 004D JMPF R6 #0068 - 0x8C18010C, // 004E GETMET R6 R0 K12 - 0x5C200A00, // 004F MOVE R8 R5 - 0x7C180400, // 0050 CALL R6 2 - 0x8C1C030C, // 0051 GETMET R7 R1 K12 - 0x5C240A00, // 0052 MOVE R9 R5 - 0x7C1C0400, // 0053 CALL R7 2 - 0x54220017, // 0054 LDINT R8 24 - 0x3C200E08, // 0055 SHR R8 R7 R8 - 0x542600FE, // 0056 LDINT R9 255 - 0x2C201009, // 0057 AND R8 R8 R9 - 0x24241100, // 0058 GT R9 R8 K0 - 0x7826000B, // 0059 JMPF R9 #0066 - 0x8C24011D, // 005A GETMET R9 R0 K29 - 0x5C2C0C00, // 005B MOVE R11 R6 - 0x5C300E00, // 005C MOVE R12 R7 - 0x5C340400, // 005D MOVE R13 R2 - 0x7C240800, // 005E CALL R9 4 - 0x88280104, // 005F GETMBR R10 R0 K4 - 0x8C281513, // 0060 GETMET R10 R10 K19 - 0x54320003, // 0061 LDINT R12 4 - 0x08300A0C, // 0062 MUL R12 R5 R12 - 0x5C341200, // 0063 MOVE R13 R9 - 0x543A0003, // 0064 LDINT R14 4 - 0x7C280800, // 0065 CALL R10 4 - 0x00140B10, // 0066 ADD R5 R5 K16 - 0x7001FFE3, // 0067 JMP #004C - 0x80000000, // 0068 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: gradient_fill ********************************************************************/ @@ -14636,20 +13787,20 @@ be_local_closure(class_FrameBuffer_gradient_fill, /* name */ 0x1C140805, // 0005 EQ R5 R4 R5 0x78160002, // 0006 JMPF R5 #000A 0x88140103, // 0007 GETMBR R5 R0 K3 - 0x04140B10, // 0008 SUB R5 R5 K16 + 0x04140B08, // 0008 SUB R5 R5 K8 0x5C100A00, // 0009 MOVE R4 R5 0x14140700, // 000A LT R5 R3 K0 0x74160002, // 000B JMPT R5 #000F 0x88140103, // 000C GETMBR R5 R0 K3 0x28140605, // 000D GE R5 R3 R5 0x78160000, // 000E JMPF R5 #0010 - 0xB0062318, // 000F RAISE 1 K17 K24 + 0xB006130A, // 000F RAISE 1 K9 K10 0x14140803, // 0010 LT R5 R4 R3 0x74160002, // 0011 JMPT R5 #0015 0x88140103, // 0012 GETMBR R5 R0 K3 0x28140805, // 0013 GE R5 R4 R5 0x78160000, // 0014 JMPF R5 #0016 - 0xB0062319, // 0015 RAISE 1 K17 K25 + 0xB006130B, // 0015 RAISE 1 K9 K11 0x8C14010F, // 0016 GETMET R5 R0 K15 0x5C1C0600, // 0017 MOVE R7 R3 0x5C200200, // 0018 MOVE R8 R1 @@ -14662,7 +13813,7 @@ be_local_closure(class_FrameBuffer_gradient_fill, /* name */ 0x5C200400, // 001F MOVE R8 R2 0x7C140600, // 0020 CALL R5 3 0x04140803, // 0021 SUB R5 R4 R3 - 0x18140B10, // 0022 LE R5 R5 K16 + 0x18140B08, // 0022 LE R5 R5 K8 0x78160000, // 0023 JMPF R5 #0025 0x80000A00, // 0024 RET 0 0x54160017, // 0025 LDINT R5 24 @@ -14694,36 +13845,36 @@ be_local_closure(class_FrameBuffer_gradient_fill, /* name */ 0x543200FE, // 003F LDINT R12 255 0x2C30040C, // 0040 AND R12 R2 R12 0x04340803, // 0041 SUB R13 R4 R3 - 0x00380710, // 0042 ADD R14 R3 K16 + 0x00380708, // 0042 ADD R14 R3 K8 0x143C1C04, // 0043 LT R15 R14 R4 0x783E005B, // 0044 JMPF R15 #00A1 0x043C1C03, // 0045 SUB R15 R14 R3 - 0xB8421A00, // 0046 GETNGBL R16 K13 - 0x8C40210E, // 0047 GETMET R16 R16 K14 + 0xB8422000, // 0046 GETNGBL R16 K16 + 0x8C402111, // 0047 GETMET R16 R16 K17 0x5C481E00, // 0048 MOVE R18 R15 0x584C0000, // 0049 LDCONST R19 K0 0x5C501A00, // 004A MOVE R20 R13 0x5C540C00, // 004B MOVE R21 R6 0x5C581400, // 004C MOVE R22 R10 0x7C400C00, // 004D CALL R16 6 - 0xB8461A00, // 004E GETNGBL R17 K13 - 0x8C44230E, // 004F GETMET R17 R17 K14 + 0xB8462000, // 004E GETNGBL R17 K16 + 0x8C442311, // 004F GETMET R17 R17 K17 0x5C4C1E00, // 0050 MOVE R19 R15 0x58500000, // 0051 LDCONST R20 K0 0x5C541A00, // 0052 MOVE R21 R13 0x5C580E00, // 0053 MOVE R22 R7 0x5C5C1600, // 0054 MOVE R23 R11 0x7C440C00, // 0055 CALL R17 6 - 0xB84A1A00, // 0056 GETNGBL R18 K13 - 0x8C48250E, // 0057 GETMET R18 R18 K14 + 0xB84A2000, // 0056 GETNGBL R18 K16 + 0x8C482511, // 0057 GETMET R18 R18 K17 0x5C501E00, // 0058 MOVE R20 R15 0x58540000, // 0059 LDCONST R21 K0 0x5C581A00, // 005A MOVE R22 R13 0x5C5C1000, // 005B MOVE R23 R8 0x5C601800, // 005C MOVE R24 R12 0x7C480C00, // 005D CALL R18 6 - 0xB84E1A00, // 005E GETNGBL R19 K13 - 0x8C4C270E, // 005F GETMET R19 R19 K14 + 0xB84E2000, // 005E GETNGBL R19 K16 + 0x8C4C2711, // 005F GETMET R19 R19 K17 0x5C541E00, // 0060 MOVE R21 R15 0x58580000, // 0061 LDCONST R22 K0 0x5C5C1A00, // 0062 MOVE R23 R13 @@ -14787,7 +13938,7 @@ be_local_closure(class_FrameBuffer_gradient_fill, /* name */ 0x5C5C1C00, // 009C MOVE R23 R14 0x5C602800, // 009D MOVE R24 R20 0x7C540600, // 009E CALL R21 3 - 0x00381D10, // 009F ADD R14 R14 K16 + 0x00381D08, // 009F ADD R14 R14 K8 0x7001FFA1, // 00A0 JMP #0043 0x80000000, // 00A1 RET 0 }) @@ -14797,11 +13948,57 @@ be_local_closure(class_FrameBuffer_gradient_fill, /* name */ /******************************************************************** -** Solidified function: item +** Solidified function: to_color ********************************************************************/ -be_local_closure(class_FrameBuffer_item, /* name */ +be_local_closure(class_FrameBuffer_to_color, /* name */ be_nested_proto( - 5, /* nstack */ + 7, /* nstack */ + 4, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(to_color), + &be_const_str_solidified, + ( &(const binstruction[23]) { /* code */ + 0x58100014, // 0000 LDCONST R4 K20 + 0x4C140000, // 0001 LDNIL R5 + 0x1C140605, // 0002 EQ R5 R3 R5 + 0x78160000, // 0003 JMPF R5 #0005 + 0x540E00FE, // 0004 LDINT R3 255 + 0x541600FE, // 0005 LDINT R5 255 + 0x2C000005, // 0006 AND R0 R0 R5 + 0x541600FE, // 0007 LDINT R5 255 + 0x2C040205, // 0008 AND R1 R1 R5 + 0x541600FE, // 0009 LDINT R5 255 + 0x2C080405, // 000A AND R2 R2 R5 + 0x541600FE, // 000B LDINT R5 255 + 0x2C0C0605, // 000C AND R3 R3 R5 + 0x54160017, // 000D LDINT R5 24 + 0x38140605, // 000E SHL R5 R3 R5 + 0x541A000F, // 000F LDINT R6 16 + 0x38180006, // 0010 SHL R6 R0 R6 + 0x30140A06, // 0011 OR R5 R5 R6 + 0x541A0007, // 0012 LDINT R6 8 + 0x38180206, // 0013 SHL R6 R1 R6 + 0x30140A06, // 0014 OR R5 R5 R6 + 0x30140A02, // 0015 OR R5 R5 R2 + 0x80040A00, // 0016 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: fill_pixels +********************************************************************/ +be_local_closure(class_FrameBuffer_fill_pixels, /* name */ + be_nested_proto( + 8, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -14810,13 +14007,322 @@ be_local_closure(class_FrameBuffer_item, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_FrameBuffer, /* shared constants */ - be_str_weak(item), + be_str_weak(fill_pixels), &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C08010C, // 0000 GETMET R2 R0 K12 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x80040400, // 0003 RET 1 R2 + ( &(const binstruction[14]) { /* code */ + 0x58080000, // 0000 LDCONST R2 K0 + 0x880C0103, // 0001 GETMBR R3 R0 K3 + 0x140C0403, // 0002 LT R3 R2 R3 + 0x780E0008, // 0003 JMPF R3 #000D + 0x880C0104, // 0004 GETMBR R3 R0 K4 + 0x8C0C070E, // 0005 GETMET R3 R3 K14 + 0x54160003, // 0006 LDINT R5 4 + 0x08140405, // 0007 MUL R5 R2 R5 + 0x5C180200, // 0008 MOVE R6 R1 + 0x541E0003, // 0009 LDINT R7 4 + 0x7C0C0800, // 000A CALL R3 4 + 0x00080508, // 000B ADD R2 R2 K8 + 0x7001FFF3, // 000C JMP #0001 + 0x80000000, // 000D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: apply_opacity +********************************************************************/ +be_local_closure(class_FrameBuffer_apply_opacity, /* name */ + be_nested_proto( + 18, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(apply_opacity), + &be_const_str_solidified, + ( &(const binstruction[152]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x1C080202, // 0001 EQ R2 R1 R2 + 0x780A0000, // 0002 JMPF R2 #0004 + 0x540600FE, // 0003 LDINT R1 255 + 0x6008000F, // 0004 GETGBL R2 G15 + 0x5C0C0200, // 0005 MOVE R3 R1 + 0xB8122A00, // 0006 GETNGBL R4 K21 + 0x88100916, // 0007 GETMBR R4 R4 K22 + 0x7C080400, // 0008 CALL R2 2 + 0x780A003A, // 0009 JMPF R2 #0045 + 0x5C080200, // 000A MOVE R2 R1 + 0x880C0103, // 000B GETMBR R3 R0 K3 + 0x88100503, // 000C GETMBR R4 R2 K3 + 0x200C0604, // 000D NE R3 R3 R4 + 0x780E0000, // 000E JMPF R3 #0010 + 0xB0060317, // 000F RAISE 1 K1 K23 + 0x580C0000, // 0010 LDCONST R3 K0 + 0x88100103, // 0011 GETMBR R4 R0 K3 + 0x14100604, // 0012 LT R4 R3 R4 + 0x7812002F, // 0013 JMPF R4 #0044 + 0x8C10010C, // 0014 GETMET R4 R0 K12 + 0x5C180600, // 0015 MOVE R6 R3 + 0x7C100400, // 0016 CALL R4 2 + 0x8C14050C, // 0017 GETMET R5 R2 K12 + 0x5C1C0600, // 0018 MOVE R7 R3 + 0x7C140400, // 0019 CALL R5 2 + 0x541A0017, // 001A LDINT R6 24 + 0x3C180A06, // 001B SHR R6 R5 R6 + 0x541E00FE, // 001C LDINT R7 255 + 0x2C180C07, // 001D AND R6 R6 R7 + 0x541E0017, // 001E LDINT R7 24 + 0x3C1C0807, // 001F SHR R7 R4 R7 + 0x542200FE, // 0020 LDINT R8 255 + 0x2C1C0E08, // 0021 AND R7 R7 R8 + 0x5422000F, // 0022 LDINT R8 16 + 0x3C200808, // 0023 SHR R8 R4 R8 + 0x542600FE, // 0024 LDINT R9 255 + 0x2C201009, // 0025 AND R8 R8 R9 + 0x54260007, // 0026 LDINT R9 8 + 0x3C240809, // 0027 SHR R9 R4 R9 + 0x542A00FE, // 0028 LDINT R10 255 + 0x2C24120A, // 0029 AND R9 R9 R10 + 0x542A00FE, // 002A LDINT R10 255 + 0x2C28080A, // 002B AND R10 R4 R10 + 0xB82E2000, // 002C GETNGBL R11 K16 + 0x8C2C1711, // 002D GETMET R11 R11 K17 + 0x5C340C00, // 002E MOVE R13 R6 + 0x58380000, // 002F LDCONST R14 K0 + 0x543E00FE, // 0030 LDINT R15 255 + 0x58400000, // 0031 LDCONST R16 K0 + 0x5C440E00, // 0032 MOVE R17 R7 + 0x7C2C0C00, // 0033 CALL R11 6 + 0x5C1C1600, // 0034 MOVE R7 R11 + 0x542E0017, // 0035 LDINT R11 24 + 0x382C0E0B, // 0036 SHL R11 R7 R11 + 0x5432000F, // 0037 LDINT R12 16 + 0x3830100C, // 0038 SHL R12 R8 R12 + 0x302C160C, // 0039 OR R11 R11 R12 + 0x54320007, // 003A LDINT R12 8 + 0x3830120C, // 003B SHL R12 R9 R12 + 0x302C160C, // 003C OR R11 R11 R12 + 0x302C160A, // 003D OR R11 R11 R10 + 0x8C30010F, // 003E GETMET R12 R0 K15 + 0x5C380600, // 003F MOVE R14 R3 + 0x5C3C1600, // 0040 MOVE R15 R11 + 0x7C300600, // 0041 CALL R12 3 + 0x000C0708, // 0042 ADD R3 R3 K8 + 0x7001FFCC, // 0043 JMP #0011 + 0x70020051, // 0044 JMP #0097 + 0x60080009, // 0045 GETGBL R2 G9 + 0x5C0C0200, // 0046 MOVE R3 R1 + 0x7C080200, // 0047 CALL R2 1 + 0x140C0500, // 0048 LT R3 R2 K0 + 0x780E0001, // 0049 JMPF R3 #004C + 0x580C0000, // 004A LDCONST R3 K0 + 0x70020005, // 004B JMP #0052 + 0x540E01FE, // 004C LDINT R3 511 + 0x240C0403, // 004D GT R3 R2 R3 + 0x780E0001, // 004E JMPF R3 #0051 + 0x540E01FE, // 004F LDINT R3 511 + 0x70020000, // 0050 JMP #0052 + 0x5C0C0400, // 0051 MOVE R3 R2 + 0x5C080600, // 0052 MOVE R2 R3 + 0x580C0000, // 0053 LDCONST R3 K0 + 0x88100103, // 0054 GETMBR R4 R0 K3 + 0x14100604, // 0055 LT R4 R3 R4 + 0x7812003F, // 0056 JMPF R4 #0097 + 0x8C10010C, // 0057 GETMET R4 R0 K12 + 0x5C180600, // 0058 MOVE R6 R3 + 0x7C100400, // 0059 CALL R4 2 + 0x54160017, // 005A LDINT R5 24 + 0x3C140805, // 005B SHR R5 R4 R5 + 0x541A00FE, // 005C LDINT R6 255 + 0x2C140A06, // 005D AND R5 R5 R6 + 0x541A000F, // 005E LDINT R6 16 + 0x3C180806, // 005F SHR R6 R4 R6 + 0x541E00FE, // 0060 LDINT R7 255 + 0x2C180C07, // 0061 AND R6 R6 R7 + 0x541E0007, // 0062 LDINT R7 8 + 0x3C1C0807, // 0063 SHR R7 R4 R7 + 0x542200FE, // 0064 LDINT R8 255 + 0x2C1C0E08, // 0065 AND R7 R7 R8 + 0x542200FE, // 0066 LDINT R8 255 + 0x2C200808, // 0067 AND R8 R4 R8 + 0x542600FE, // 0068 LDINT R9 255 + 0x18240409, // 0069 LE R9 R2 R9 + 0x78260009, // 006A JMPF R9 #0075 + 0xB8262000, // 006B GETNGBL R9 K16 + 0x8C241311, // 006C GETMET R9 R9 K17 + 0x5C2C0400, // 006D MOVE R11 R2 + 0x58300000, // 006E LDCONST R12 K0 + 0x543600FE, // 006F LDINT R13 255 + 0x58380000, // 0070 LDCONST R14 K0 + 0x5C3C0A00, // 0071 MOVE R15 R5 + 0x7C240C00, // 0072 CALL R9 6 + 0x5C141200, // 0073 MOVE R5 R9 + 0x70020011, // 0074 JMP #0087 + 0xB8262000, // 0075 GETNGBL R9 K16 + 0x8C241311, // 0076 GETMET R9 R9 K17 + 0x082C0A02, // 0077 MUL R11 R5 R2 + 0x58300000, // 0078 LDCONST R12 K0 + 0x543600FE, // 0079 LDINT R13 255 + 0x543A00FE, // 007A LDINT R14 255 + 0x08341A0E, // 007B MUL R13 R13 R14 + 0x58380000, // 007C LDCONST R14 K0 + 0x543E00FE, // 007D LDINT R15 255 + 0x7C240C00, // 007E CALL R9 6 + 0x5C141200, // 007F MOVE R5 R9 + 0x542600FE, // 0080 LDINT R9 255 + 0x24240A09, // 0081 GT R9 R5 R9 + 0x78260001, // 0082 JMPF R9 #0085 + 0x542600FE, // 0083 LDINT R9 255 + 0x70020000, // 0084 JMP #0086 + 0x5C240A00, // 0085 MOVE R9 R5 + 0x5C141200, // 0086 MOVE R5 R9 + 0x54260017, // 0087 LDINT R9 24 + 0x38240A09, // 0088 SHL R9 R5 R9 + 0x542A000F, // 0089 LDINT R10 16 + 0x38280C0A, // 008A SHL R10 R6 R10 + 0x3024120A, // 008B OR R9 R9 R10 + 0x542A0007, // 008C LDINT R10 8 + 0x38280E0A, // 008D SHL R10 R7 R10 + 0x3024120A, // 008E OR R9 R9 R10 + 0x30241208, // 008F OR R9 R9 R8 + 0x5C101200, // 0090 MOVE R4 R9 + 0x8C24010F, // 0091 GETMET R9 R0 K15 + 0x5C2C0600, // 0092 MOVE R11 R3 + 0x5C300800, // 0093 MOVE R12 R4 + 0x7C240600, // 0094 CALL R9 3 + 0x000C0708, // 0095 ADD R3 R3 K8 + 0x7001FFBC, // 0096 JMP #0054 + 0x80000000, // 0097 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_FrameBuffer_init, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[36]) { /* code */ + 0x60080004, // 0000 GETGBL R2 G4 + 0x5C0C0200, // 0001 MOVE R3 R1 + 0x7C080200, // 0002 CALL R2 1 + 0x1C080518, // 0003 EQ R2 R2 K24 + 0x780A0010, // 0004 JMPF R2 #0016 + 0x5C080200, // 0005 MOVE R2 R1 + 0x180C0500, // 0006 LE R3 R2 K0 + 0x780E0000, // 0007 JMPF R3 #0009 + 0xB0060302, // 0008 RAISE 1 K1 K2 + 0x90020602, // 0009 SETMBR R0 K3 R2 + 0x600C0015, // 000A GETGBL R3 G21 + 0x54120003, // 000B LDINT R4 4 + 0x08100404, // 000C MUL R4 R2 R4 + 0x7C0C0200, // 000D CALL R3 1 + 0x8C100705, // 000E GETMET R4 R3 K5 + 0x541A0003, // 000F LDINT R6 4 + 0x08180406, // 0010 MUL R6 R2 R6 + 0x7C100400, // 0011 CALL R4 2 + 0x90020803, // 0012 SETMBR R0 K4 R3 + 0x8C100106, // 0013 GETMET R4 R0 K6 + 0x7C100200, // 0014 CALL R4 1 + 0x7002000C, // 0015 JMP #0023 + 0x60080004, // 0016 GETGBL R2 G4 + 0x5C0C0200, // 0017 MOVE R3 R1 + 0x7C080200, // 0018 CALL R2 1 + 0x1C080519, // 0019 EQ R2 R2 K25 + 0x780A0006, // 001A JMPF R2 #0022 + 0x88080303, // 001B GETMBR R2 R1 K3 + 0x90020602, // 001C SETMBR R0 K3 R2 + 0x88080304, // 001D GETMBR R2 R1 K4 + 0x8C08051A, // 001E GETMET R2 R2 K26 + 0x7C080200, // 001F CALL R2 1 + 0x90020802, // 0020 SETMBR R0 K4 R2 + 0x70020000, // 0021 JMP #0023 + 0xB006031B, // 0022 RAISE 1 K1 K27 + 0x80000000, // 0023 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: copy +********************************************************************/ +be_local_closure(class_FrameBuffer_copy, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(copy), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0xB8062A00, // 0000 GETNGBL R1 K21 + 0x8C040316, // 0001 GETMET R1 R1 K22 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x7C040400, // 0003 CALL R1 2 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: set_pixel_color +********************************************************************/ +be_local_closure(class_FrameBuffer_set_pixel_color, /* name */ + be_nested_proto( + 8, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(set_pixel_color), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x140C0300, // 0000 LT R3 R1 K0 + 0x740E0002, // 0001 JMPT R3 #0005 + 0x880C0103, // 0002 GETMBR R3 R0 K3 + 0x280C0203, // 0003 GE R3 R1 R3 + 0x780E0000, // 0004 JMPF R3 #0006 + 0xB0061312, // 0005 RAISE 1 K9 K18 + 0x880C0104, // 0006 GETMBR R3 R0 K4 + 0x8C0C070E, // 0007 GETMET R3 R3 K14 + 0x54160003, // 0008 LDINT R5 4 + 0x08140205, // 0009 MUL R5 R1 R5 + 0x5C180400, // 000A MOVE R6 R2 + 0x541E0003, // 000B LDINT R7 4 + 0x7C0C0800, // 000C CALL R3 4 + 0x80000000, // 000D RET 0 }) ) ); @@ -14840,7 +14346,7 @@ be_local_closure(class_FrameBuffer_dump, /* name */ be_str_weak(dump), &be_const_str_solidified, ( &(const binstruction[36]) { /* code */ - 0x58040020, // 0000 LDCONST R1 K32 + 0x5804001C, // 0000 LDCONST R1 K28 0x58080000, // 0001 LDCONST R2 K0 0x880C0103, // 0002 GETMBR R3 R0 K3 0x140C0403, // 0003 LT R3 R2 R3 @@ -14863,14 +14369,14 @@ be_local_closure(class_FrameBuffer_dump, /* name */ 0x541E00FE, // 0014 LDINT R7 255 0x2C1C0607, // 0015 AND R7 R3 R7 0x60200018, // 0016 GETGBL R8 G24 - 0x58240021, // 0017 LDCONST R9 K33 + 0x5824001D, // 0017 LDCONST R9 K29 0x5C280800, // 0018 MOVE R10 R4 0x5C2C0A00, // 0019 MOVE R11 R5 0x5C300C00, // 001A MOVE R12 R6 0x5C340E00, // 001B MOVE R13 R7 0x7C200A00, // 001C CALL R8 5 0x00040208, // 001D ADD R1 R1 R8 - 0x00080510, // 001E ADD R2 R2 K16 + 0x00080508, // 001E ADD R2 R2 K8 0x7001FFE1, // 001F JMP #0002 0x540DFFFD, // 0020 LDINT R3 -2 0x400E0003, // 0021 CONNECT R3 K0 R3 @@ -14882,38 +14388,546 @@ be_local_closure(class_FrameBuffer_dump, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: apply_mask +********************************************************************/ +be_local_closure(class_FrameBuffer_apply_mask, /* name */ + be_nested_proto( + 18, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(apply_mask), + &be_const_str_solidified, + ( &(const binstruction[65]) { /* code */ + 0x4C0C0000, // 0000 LDNIL R3 + 0x1C0C0403, // 0001 EQ R3 R2 R3 + 0x780E0000, // 0002 JMPF R3 #0004 + 0x50080000, // 0003 LDBOOL R2 0 0 + 0x880C0103, // 0004 GETMBR R3 R0 K3 + 0x88100303, // 0005 GETMBR R4 R1 K3 + 0x200C0604, // 0006 NE R3 R3 R4 + 0x780E0000, // 0007 JMPF R3 #0009 + 0xB0060317, // 0008 RAISE 1 K1 K23 + 0x580C0000, // 0009 LDCONST R3 K0 + 0x88100103, // 000A GETMBR R4 R0 K3 + 0x14100604, // 000B LT R4 R3 R4 + 0x78120032, // 000C JMPF R4 #0040 + 0x8C10010C, // 000D GETMET R4 R0 K12 + 0x5C180600, // 000E MOVE R6 R3 + 0x7C100400, // 000F CALL R4 2 + 0x8C14030C, // 0010 GETMET R5 R1 K12 + 0x5C1C0600, // 0011 MOVE R7 R3 + 0x7C140400, // 0012 CALL R5 2 + 0x541A0017, // 0013 LDINT R6 24 + 0x3C180A06, // 0014 SHR R6 R5 R6 + 0x541E00FE, // 0015 LDINT R7 255 + 0x2C180C07, // 0016 AND R6 R6 R7 + 0x780A0001, // 0017 JMPF R2 #001A + 0x541E00FE, // 0018 LDINT R7 255 + 0x04180E06, // 0019 SUB R6 R7 R6 + 0x541E0017, // 001A LDINT R7 24 + 0x3C1C0807, // 001B SHR R7 R4 R7 + 0x542200FE, // 001C LDINT R8 255 + 0x2C1C0E08, // 001D AND R7 R7 R8 + 0x5422000F, // 001E LDINT R8 16 + 0x3C200808, // 001F SHR R8 R4 R8 + 0x542600FE, // 0020 LDINT R9 255 + 0x2C201009, // 0021 AND R8 R8 R9 + 0x54260007, // 0022 LDINT R9 8 + 0x3C240809, // 0023 SHR R9 R4 R9 + 0x542A00FE, // 0024 LDINT R10 255 + 0x2C24120A, // 0025 AND R9 R9 R10 + 0x542A00FE, // 0026 LDINT R10 255 + 0x2C28080A, // 0027 AND R10 R4 R10 + 0xB82E2000, // 0028 GETNGBL R11 K16 + 0x8C2C1711, // 0029 GETMET R11 R11 K17 + 0x5C340C00, // 002A MOVE R13 R6 + 0x58380000, // 002B LDCONST R14 K0 + 0x543E00FE, // 002C LDINT R15 255 + 0x58400000, // 002D LDCONST R16 K0 + 0x5C440E00, // 002E MOVE R17 R7 + 0x7C2C0C00, // 002F CALL R11 6 + 0x5C1C1600, // 0030 MOVE R7 R11 + 0x542E0017, // 0031 LDINT R11 24 + 0x382C0E0B, // 0032 SHL R11 R7 R11 + 0x5432000F, // 0033 LDINT R12 16 + 0x3830100C, // 0034 SHL R12 R8 R12 + 0x302C160C, // 0035 OR R11 R11 R12 + 0x54320007, // 0036 LDINT R12 8 + 0x3830120C, // 0037 SHL R12 R9 R12 + 0x302C160C, // 0038 OR R11 R11 R12 + 0x302C160A, // 0039 OR R11 R11 R10 + 0x8C30010F, // 003A GETMET R12 R0 K15 + 0x5C380600, // 003B MOVE R14 R3 + 0x5C3C1600, // 003C MOVE R15 R11 + 0x7C300600, // 003D CALL R12 3 + 0x000C0708, // 003E ADD R3 R3 K8 + 0x7001FFC9, // 003F JMP #000A + 0x80000000, // 0040 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_FrameBuffer_tostring, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x5808001E, // 0001 LDCONST R2 K30 + 0x880C0103, // 0002 GETMBR R3 R0 K3 + 0x88100104, // 0003 GETMBR R4 R0 K4 + 0x7C040600, // 0004 CALL R1 3 + 0x80040200, // 0005 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: clear +********************************************************************/ +be_local_closure(class_FrameBuffer_clear, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(clear), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C040306, // 0001 GETMET R1 R1 K6 + 0x7C040200, // 0002 CALL R1 1 + 0x88040104, // 0003 GETMBR R1 R0 K4 + 0x8C040305, // 0004 GETMET R1 R1 K5 + 0x880C0103, // 0005 GETMBR R3 R0 K3 + 0x54120003, // 0006 LDINT R4 4 + 0x080C0604, // 0007 MUL R3 R3 R4 + 0x7C040400, // 0008 CALL R1 2 + 0x80000000, // 0009 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: blend_pixels +********************************************************************/ +be_local_closure(class_FrameBuffer_blend_pixels, /* name */ + be_nested_proto( + 14, /* nstack */ + 4, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(blend_pixels), + &be_const_str_solidified, + ( &(const binstruction[67]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x1C100404, // 0001 EQ R4 R2 R4 + 0x78120000, // 0002 JMPF R4 #0004 + 0x58080000, // 0003 LDCONST R2 K0 + 0x4C100000, // 0004 LDNIL R4 + 0x1C100604, // 0005 EQ R4 R3 R4 + 0x78120002, // 0006 JMPF R4 #000A + 0x88100103, // 0007 GETMBR R4 R0 K3 + 0x04100908, // 0008 SUB R4 R4 K8 + 0x5C0C0800, // 0009 MOVE R3 R4 + 0x88100103, // 000A GETMBR R4 R0 K3 + 0x88140303, // 000B GETMBR R5 R1 K3 + 0x20100805, // 000C NE R4 R4 R5 + 0x78120000, // 000D JMPF R4 #000F + 0xB0060317, // 000E RAISE 1 K1 K23 + 0x14100500, // 000F LT R4 R2 K0 + 0x74120002, // 0010 JMPT R4 #0014 + 0x88100103, // 0011 GETMBR R4 R0 K3 + 0x28100404, // 0012 GE R4 R2 R4 + 0x78120000, // 0013 JMPF R4 #0015 + 0xB006131F, // 0014 RAISE 1 K9 K31 + 0x14100602, // 0015 LT R4 R3 R2 + 0x74120002, // 0016 JMPT R4 #001A + 0x88100103, // 0017 GETMBR R4 R0 K3 + 0x28100604, // 0018 GE R4 R3 R4 + 0x78120000, // 0019 JMPF R4 #001B + 0xB0061320, // 001A RAISE 1 K9 K32 + 0x5C100400, // 001B MOVE R4 R2 + 0x18140803, // 001C LE R5 R4 R3 + 0x78160023, // 001D JMPF R5 #0042 + 0x8C14030C, // 001E GETMET R5 R1 K12 + 0x5C1C0800, // 001F MOVE R7 R4 + 0x7C140400, // 0020 CALL R5 2 + 0x541A0017, // 0021 LDINT R6 24 + 0x3C180A06, // 0022 SHR R6 R5 R6 + 0x541E00FE, // 0023 LDINT R7 255 + 0x2C180C07, // 0024 AND R6 R6 R7 + 0x241C0D00, // 0025 GT R7 R6 K0 + 0x781E0018, // 0026 JMPF R7 #0040 + 0x541E00FE, // 0027 LDINT R7 255 + 0x1C1C0C07, // 0028 EQ R7 R6 R7 + 0x781E0007, // 0029 JMPF R7 #0032 + 0x881C0104, // 002A GETMBR R7 R0 K4 + 0x8C1C0F0E, // 002B GETMET R7 R7 K14 + 0x54260003, // 002C LDINT R9 4 + 0x08240809, // 002D MUL R9 R4 R9 + 0x5C280A00, // 002E MOVE R10 R5 + 0x542E0003, // 002F LDINT R11 4 + 0x7C1C0800, // 0030 CALL R7 4 + 0x7002000D, // 0031 JMP #0040 + 0x8C1C010C, // 0032 GETMET R7 R0 K12 + 0x5C240800, // 0033 MOVE R9 R4 + 0x7C1C0400, // 0034 CALL R7 2 + 0x8C20010D, // 0035 GETMET R8 R0 K13 + 0x5C280E00, // 0036 MOVE R10 R7 + 0x5C2C0A00, // 0037 MOVE R11 R5 + 0x7C200600, // 0038 CALL R8 3 + 0x88240104, // 0039 GETMBR R9 R0 K4 + 0x8C24130E, // 003A GETMET R9 R9 K14 + 0x542E0003, // 003B LDINT R11 4 + 0x082C080B, // 003C MUL R11 R4 R11 + 0x5C301000, // 003D MOVE R12 R8 + 0x54360003, // 003E LDINT R13 4 + 0x7C240800, // 003F CALL R9 4 + 0x00100908, // 0040 ADD R4 R4 K8 + 0x7001FFD9, // 0041 JMP #001C + 0x80000000, // 0042 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: apply_brightness +********************************************************************/ +be_local_closure(class_FrameBuffer_apply_brightness, /* name */ + be_nested_proto( + 20, /* nstack */ + 4, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_FrameBuffer, /* shared constants */ + be_str_weak(apply_brightness), + &be_const_str_solidified, + ( &(const binstruction[246]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x1C100204, // 0001 EQ R4 R1 R4 + 0x78120000, // 0002 JMPF R4 #0004 + 0x540600FE, // 0003 LDINT R1 255 + 0x4C100000, // 0004 LDNIL R4 + 0x1C100404, // 0005 EQ R4 R2 R4 + 0x78120000, // 0006 JMPF R4 #0008 + 0x58080000, // 0007 LDCONST R2 K0 + 0x4C100000, // 0008 LDNIL R4 + 0x1C100604, // 0009 EQ R4 R3 R4 + 0x78120002, // 000A JMPF R4 #000E + 0x88100103, // 000B GETMBR R4 R0 K3 + 0x04100908, // 000C SUB R4 R4 K8 + 0x5C0C0800, // 000D MOVE R3 R4 + 0x14100500, // 000E LT R4 R2 K0 + 0x74120002, // 000F JMPT R4 #0013 + 0x88100103, // 0010 GETMBR R4 R0 K3 + 0x28100404, // 0011 GE R4 R2 R4 + 0x78120000, // 0012 JMPF R4 #0014 + 0xB006130A, // 0013 RAISE 1 K9 K10 + 0x14100602, // 0014 LT R4 R3 R2 + 0x74120002, // 0015 JMPT R4 #0019 + 0x88100103, // 0016 GETMBR R4 R0 K3 + 0x28100604, // 0017 GE R4 R3 R4 + 0x78120000, // 0018 JMPF R4 #001A + 0xB006130B, // 0019 RAISE 1 K9 K11 + 0x6010000F, // 001A GETGBL R4 G15 + 0x5C140200, // 001B MOVE R5 R1 + 0xB81A2A00, // 001C GETNGBL R6 K21 + 0x88180D16, // 001D GETMBR R6 R6 K22 + 0x7C100400, // 001E CALL R4 2 + 0x7812004B, // 001F JMPF R4 #006C + 0x5C100200, // 0020 MOVE R4 R1 + 0x88140103, // 0021 GETMBR R5 R0 K3 + 0x88180903, // 0022 GETMBR R6 R4 K3 + 0x20140A06, // 0023 NE R5 R5 R6 + 0x78160000, // 0024 JMPF R5 #0026 + 0xB0060317, // 0025 RAISE 1 K1 K23 + 0x5C140400, // 0026 MOVE R5 R2 + 0x18180A03, // 0027 LE R6 R5 R3 + 0x781A0041, // 0028 JMPF R6 #006B + 0x8C18010C, // 0029 GETMET R6 R0 K12 + 0x5C200A00, // 002A MOVE R8 R5 + 0x7C180400, // 002B CALL R6 2 + 0x8C1C090C, // 002C GETMET R7 R4 K12 + 0x5C240A00, // 002D MOVE R9 R5 + 0x7C1C0400, // 002E CALL R7 2 + 0x54220017, // 002F LDINT R8 24 + 0x3C200E08, // 0030 SHR R8 R7 R8 + 0x542600FE, // 0031 LDINT R9 255 + 0x2C201009, // 0032 AND R8 R8 R9 + 0x54260017, // 0033 LDINT R9 24 + 0x3C240C09, // 0034 SHR R9 R6 R9 + 0x542A00FE, // 0035 LDINT R10 255 + 0x2C24120A, // 0036 AND R9 R9 R10 + 0x542A000F, // 0037 LDINT R10 16 + 0x3C280C0A, // 0038 SHR R10 R6 R10 + 0x542E00FE, // 0039 LDINT R11 255 + 0x2C28140B, // 003A AND R10 R10 R11 + 0x542E0007, // 003B LDINT R11 8 + 0x3C2C0C0B, // 003C SHR R11 R6 R11 + 0x543200FE, // 003D LDINT R12 255 + 0x2C2C160C, // 003E AND R11 R11 R12 + 0x543200FE, // 003F LDINT R12 255 + 0x2C300C0C, // 0040 AND R12 R6 R12 + 0xB8362000, // 0041 GETNGBL R13 K16 + 0x8C341B11, // 0042 GETMET R13 R13 K17 + 0x5C3C1000, // 0043 MOVE R15 R8 + 0x58400000, // 0044 LDCONST R16 K0 + 0x544600FE, // 0045 LDINT R17 255 + 0x58480000, // 0046 LDCONST R18 K0 + 0x5C4C1400, // 0047 MOVE R19 R10 + 0x7C340C00, // 0048 CALL R13 6 + 0x5C281A00, // 0049 MOVE R10 R13 + 0xB8362000, // 004A GETNGBL R13 K16 + 0x8C341B11, // 004B GETMET R13 R13 K17 + 0x5C3C1000, // 004C MOVE R15 R8 + 0x58400000, // 004D LDCONST R16 K0 + 0x544600FE, // 004E LDINT R17 255 + 0x58480000, // 004F LDCONST R18 K0 + 0x5C4C1600, // 0050 MOVE R19 R11 + 0x7C340C00, // 0051 CALL R13 6 + 0x5C2C1A00, // 0052 MOVE R11 R13 + 0xB8362000, // 0053 GETNGBL R13 K16 + 0x8C341B11, // 0054 GETMET R13 R13 K17 + 0x5C3C1000, // 0055 MOVE R15 R8 + 0x58400000, // 0056 LDCONST R16 K0 + 0x544600FE, // 0057 LDINT R17 255 + 0x58480000, // 0058 LDCONST R18 K0 + 0x5C4C1800, // 0059 MOVE R19 R12 + 0x7C340C00, // 005A CALL R13 6 + 0x5C301A00, // 005B MOVE R12 R13 + 0x54360017, // 005C LDINT R13 24 + 0x3834120D, // 005D SHL R13 R9 R13 + 0x543A000F, // 005E LDINT R14 16 + 0x3838140E, // 005F SHL R14 R10 R14 + 0x30341A0E, // 0060 OR R13 R13 R14 + 0x543A0007, // 0061 LDINT R14 8 + 0x3838160E, // 0062 SHL R14 R11 R14 + 0x30341A0E, // 0063 OR R13 R13 R14 + 0x30341A0C, // 0064 OR R13 R13 R12 + 0x8C38010F, // 0065 GETMET R14 R0 K15 + 0x5C400A00, // 0066 MOVE R16 R5 + 0x5C441A00, // 0067 MOVE R17 R13 + 0x7C380600, // 0068 CALL R14 3 + 0x00140B08, // 0069 ADD R5 R5 K8 + 0x7001FFBB, // 006A JMP #0027 + 0x70020088, // 006B JMP #00F5 + 0x60100009, // 006C GETGBL R4 G9 + 0x5C140200, // 006D MOVE R5 R1 + 0x7C100200, // 006E CALL R4 1 + 0x14140900, // 006F LT R5 R4 K0 + 0x78160001, // 0070 JMPF R5 #0073 + 0x58140000, // 0071 LDCONST R5 K0 + 0x70020005, // 0072 JMP #0079 + 0x541601FE, // 0073 LDINT R5 511 + 0x24140805, // 0074 GT R5 R4 R5 + 0x78160001, // 0075 JMPF R5 #0078 + 0x541601FE, // 0076 LDINT R5 511 + 0x70020000, // 0077 JMP #0079 + 0x5C140800, // 0078 MOVE R5 R4 + 0x5C100A00, // 0079 MOVE R4 R5 + 0x5C140400, // 007A MOVE R5 R2 + 0x18180A03, // 007B LE R6 R5 R3 + 0x781A0077, // 007C JMPF R6 #00F5 + 0x8C18010C, // 007D GETMET R6 R0 K12 + 0x5C200A00, // 007E MOVE R8 R5 + 0x7C180400, // 007F CALL R6 2 + 0x541E0017, // 0080 LDINT R7 24 + 0x3C1C0C07, // 0081 SHR R7 R6 R7 + 0x542200FE, // 0082 LDINT R8 255 + 0x2C1C0E08, // 0083 AND R7 R7 R8 + 0x5422000F, // 0084 LDINT R8 16 + 0x3C200C08, // 0085 SHR R8 R6 R8 + 0x542600FE, // 0086 LDINT R9 255 + 0x2C201009, // 0087 AND R8 R8 R9 + 0x54260007, // 0088 LDINT R9 8 + 0x3C240C09, // 0089 SHR R9 R6 R9 + 0x542A00FE, // 008A LDINT R10 255 + 0x2C24120A, // 008B AND R9 R9 R10 + 0x542A00FE, // 008C LDINT R10 255 + 0x2C280C0A, // 008D AND R10 R6 R10 + 0x542E00FE, // 008E LDINT R11 255 + 0x182C080B, // 008F LE R11 R4 R11 + 0x782E001B, // 0090 JMPF R11 #00AD + 0xB82E2000, // 0091 GETNGBL R11 K16 + 0x8C2C1711, // 0092 GETMET R11 R11 K17 + 0x5C341000, // 0093 MOVE R13 R8 + 0x58380000, // 0094 LDCONST R14 K0 + 0x543E00FE, // 0095 LDINT R15 255 + 0x58400000, // 0096 LDCONST R16 K0 + 0x5C440800, // 0097 MOVE R17 R4 + 0x7C2C0C00, // 0098 CALL R11 6 + 0x5C201600, // 0099 MOVE R8 R11 + 0xB82E2000, // 009A GETNGBL R11 K16 + 0x8C2C1711, // 009B GETMET R11 R11 K17 + 0x5C341200, // 009C MOVE R13 R9 + 0x58380000, // 009D LDCONST R14 K0 + 0x543E00FE, // 009E LDINT R15 255 + 0x58400000, // 009F LDCONST R16 K0 + 0x5C440800, // 00A0 MOVE R17 R4 + 0x7C2C0C00, // 00A1 CALL R11 6 + 0x5C241600, // 00A2 MOVE R9 R11 + 0xB82E2000, // 00A3 GETNGBL R11 K16 + 0x8C2C1711, // 00A4 GETMET R11 R11 K17 + 0x5C341400, // 00A5 MOVE R13 R10 + 0x58380000, // 00A6 LDCONST R14 K0 + 0x543E00FE, // 00A7 LDINT R15 255 + 0x58400000, // 00A8 LDCONST R16 K0 + 0x5C440800, // 00A9 MOVE R17 R4 + 0x7C2C0C00, // 00AA CALL R11 6 + 0x5C281600, // 00AB MOVE R10 R11 + 0x70020037, // 00AC JMP #00E5 + 0x542E00FE, // 00AD LDINT R11 255 + 0x042C080B, // 00AE SUB R11 R4 R11 + 0xB8322000, // 00AF GETNGBL R12 K16 + 0x8C301911, // 00B0 GETMET R12 R12 K17 + 0x0838100B, // 00B1 MUL R14 R8 R11 + 0x583C0000, // 00B2 LDCONST R15 K0 + 0x544200FE, // 00B3 LDINT R16 255 + 0x544600FF, // 00B4 LDINT R17 256 + 0x08402011, // 00B5 MUL R16 R16 R17 + 0x58440000, // 00B6 LDCONST R17 K0 + 0x544A00FE, // 00B7 LDINT R18 255 + 0x7C300C00, // 00B8 CALL R12 6 + 0x0020100C, // 00B9 ADD R8 R8 R12 + 0xB8322000, // 00BA GETNGBL R12 K16 + 0x8C301911, // 00BB GETMET R12 R12 K17 + 0x0838120B, // 00BC MUL R14 R9 R11 + 0x583C0000, // 00BD LDCONST R15 K0 + 0x544200FE, // 00BE LDINT R16 255 + 0x544600FF, // 00BF LDINT R17 256 + 0x08402011, // 00C0 MUL R16 R16 R17 + 0x58440000, // 00C1 LDCONST R17 K0 + 0x544A00FE, // 00C2 LDINT R18 255 + 0x7C300C00, // 00C3 CALL R12 6 + 0x0024120C, // 00C4 ADD R9 R9 R12 + 0xB8322000, // 00C5 GETNGBL R12 K16 + 0x8C301911, // 00C6 GETMET R12 R12 K17 + 0x0838140B, // 00C7 MUL R14 R10 R11 + 0x583C0000, // 00C8 LDCONST R15 K0 + 0x544200FE, // 00C9 LDINT R16 255 + 0x544600FF, // 00CA LDINT R17 256 + 0x08402011, // 00CB MUL R16 R16 R17 + 0x58440000, // 00CC LDCONST R17 K0 + 0x544A00FE, // 00CD LDINT R18 255 + 0x7C300C00, // 00CE CALL R12 6 + 0x0028140C, // 00CF ADD R10 R10 R12 + 0x543200FE, // 00D0 LDINT R12 255 + 0x2430100C, // 00D1 GT R12 R8 R12 + 0x78320001, // 00D2 JMPF R12 #00D5 + 0x543200FE, // 00D3 LDINT R12 255 + 0x70020000, // 00D4 JMP #00D6 + 0x5C301000, // 00D5 MOVE R12 R8 + 0x5C201800, // 00D6 MOVE R8 R12 + 0x543200FE, // 00D7 LDINT R12 255 + 0x2430120C, // 00D8 GT R12 R9 R12 + 0x78320001, // 00D9 JMPF R12 #00DC + 0x543200FE, // 00DA LDINT R12 255 + 0x70020000, // 00DB JMP #00DD + 0x5C301200, // 00DC MOVE R12 R9 + 0x5C241800, // 00DD MOVE R9 R12 + 0x543200FE, // 00DE LDINT R12 255 + 0x2430140C, // 00DF GT R12 R10 R12 + 0x78320001, // 00E0 JMPF R12 #00E3 + 0x543200FE, // 00E1 LDINT R12 255 + 0x70020000, // 00E2 JMP #00E4 + 0x5C301400, // 00E3 MOVE R12 R10 + 0x5C281800, // 00E4 MOVE R10 R12 + 0x542E0017, // 00E5 LDINT R11 24 + 0x382C0E0B, // 00E6 SHL R11 R7 R11 + 0x5432000F, // 00E7 LDINT R12 16 + 0x3830100C, // 00E8 SHL R12 R8 R12 + 0x302C160C, // 00E9 OR R11 R11 R12 + 0x54320007, // 00EA LDINT R12 8 + 0x3830120C, // 00EB SHL R12 R9 R12 + 0x302C160C, // 00EC OR R11 R11 R12 + 0x302C160A, // 00ED OR R11 R11 R10 + 0x5C181600, // 00EE MOVE R6 R11 + 0x8C2C010F, // 00EF GETMET R11 R0 K15 + 0x5C340A00, // 00F0 MOVE R13 R5 + 0x5C380C00, // 00F1 MOVE R14 R6 + 0x7C2C0600, // 00F2 CALL R11 3 + 0x00140B08, // 00F3 ADD R5 R5 K8 + 0x7001FF85, // 00F4 JMP #007B + 0x80000000, // 00F5 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: FrameBuffer ********************************************************************/ be_local_class(FrameBuffer, 2, NULL, - be_nested_map(24, + be_nested_map(23, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(blend_linear, 14), be_const_closure(class_FrameBuffer_blend_linear_closure) }, - { be_const_key_weak(resize, -1), be_const_closure(class_FrameBuffer_resize_closure) }, - { be_const_key_weak(clear, -1), be_const_closure(class_FrameBuffer_clear_closure) }, - { be_const_key_weak(init, 7), be_const_closure(class_FrameBuffer_init_closure) }, - { be_const_key_weak(apply_mask, 6), be_const_closure(class_FrameBuffer_apply_mask_closure) }, - { be_const_key_weak(dump, -1), be_const_closure(class_FrameBuffer_dump_closure) }, - { be_const_key_weak(set_pixel_color, -1), be_const_closure(class_FrameBuffer_set_pixel_color_closure) }, - { be_const_key_weak(gradient_fill, -1), be_const_closure(class_FrameBuffer_gradient_fill_closure) }, - { be_const_key_weak(blend, 18), be_const_closure(class_FrameBuffer_blend_closure) }, - { be_const_key_weak(blend_pixels, 10), be_const_closure(class_FrameBuffer_blend_pixels_closure) }, - { be_const_key_weak(fill_pixels, 19), be_const_closure(class_FrameBuffer_fill_pixels_closure) }, + { be_const_key_weak(resize, 7), be_const_closure(class_FrameBuffer_resize_closure) }, { be_const_key_weak(apply_brightness, -1), be_const_closure(class_FrameBuffer_apply_brightness_closure) }, - { be_const_key_weak(pixels, -1), be_const_var(0) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_FrameBuffer_tostring_closure) }, - { be_const_key_weak(BLEND_MODE_NORMAL, -1), be_const_int(0) }, - { be_const_key_weak(apply_opacity, -1), be_const_closure(class_FrameBuffer_apply_opacity_closure) }, { be_const_key_weak(blend_color, -1), be_const_closure(class_FrameBuffer_blend_color_closure) }, - { be_const_key_weak(tohex, 15), be_const_closure(class_FrameBuffer_tohex_closure) }, + { be_const_key_weak(pixels, -1), be_const_var(0) }, + { be_const_key_weak(setitem, 11), be_const_closure(class_FrameBuffer_setitem_closure) }, + { be_const_key_weak(blend, 22), be_const_closure(class_FrameBuffer_blend_closure) }, + { be_const_key_weak(blend_linear, 19), be_const_closure(class_FrameBuffer_blend_linear_closure) }, + { be_const_key_weak(to_color, -1), be_const_static_closure(class_FrameBuffer_to_color_closure) }, { be_const_key_weak(get_pixel_color, -1), be_const_closure(class_FrameBuffer_get_pixel_color_closure) }, - { be_const_key_weak(to_color, 21), be_const_static_closure(class_FrameBuffer_to_color_closure) }, - { be_const_key_weak(setitem, 9), be_const_closure(class_FrameBuffer_setitem_closure) }, + { be_const_key_weak(gradient_fill, 12), be_const_closure(class_FrameBuffer_gradient_fill_closure) }, + { be_const_key_weak(width, -1), be_const_var(1) }, + { be_const_key_weak(fill_pixels, -1), be_const_closure(class_FrameBuffer_fill_pixels_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_FrameBuffer_tostring_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_FrameBuffer_init_closure) }, + { be_const_key_weak(tohex, 13), be_const_closure(class_FrameBuffer_tohex_closure) }, { be_const_key_weak(copy, -1), be_const_closure(class_FrameBuffer_copy_closure) }, + { be_const_key_weak(set_pixel_color, -1), be_const_closure(class_FrameBuffer_set_pixel_color_closure) }, + { be_const_key_weak(dump, -1), be_const_closure(class_FrameBuffer_dump_closure) }, + { be_const_key_weak(apply_mask, 1), be_const_closure(class_FrameBuffer_apply_mask_closure) }, + { be_const_key_weak(apply_opacity, -1), be_const_closure(class_FrameBuffer_apply_opacity_closure) }, + { be_const_key_weak(clear, -1), be_const_closure(class_FrameBuffer_clear_closure) }, + { be_const_key_weak(blend_pixels, -1), be_const_closure(class_FrameBuffer_blend_pixels_closure) }, { be_const_key_weak(item, -1), be_const_closure(class_FrameBuffer_item_closure) }, - { be_const_key_weak(width, 5), be_const_var(1) }, })), be_str_weak(FrameBuffer) ); @@ -16872,75 +16886,45 @@ be_local_class(EventHandler, })), be_str_weak(EventHandler) ); -// compact class 'Animation' ktab size: 34, total: 68 (saved 272 bytes) -static const bvalue be_ktab_class_Animation[34] = { - /* K0 */ be_nested_str_weak(get_color_at), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(get_param_value), - /* K3 */ be_nested_str_weak(color), +// compact class 'Animation' ktab size: 32, total: 60 (saved 224 bytes) +static const bvalue be_ktab_class_Animation[32] = { + /* K0 */ be_nested_str_weak(get_param_value), + /* K1 */ be_nested_str_weak(color), + /* K2 */ be_nested_str_weak(get_color_at), + /* K3 */ be_const_int(0), /* K4 */ be_nested_str_weak(is_running), /* K5 */ be_nested_str_weak(current_time), /* K6 */ be_nested_str_weak(start_time), /* K7 */ be_nested_str_weak(duration), /* K8 */ be_nested_str_weak(loop), /* K9 */ be_nested_str_weak(values), - /* K10 */ be_nested_str_weak(Animation_X28_X25s_X2C_X20priority_X3D_X25s_X2C_X20duration_X3D_X25s_X2C_X20loop_X3D_X25s_X2C_X20running_X3D_X25s_X29), - /* K11 */ be_nested_str_weak(name), - /* K12 */ be_nested_str_weak(priority), - /* K13 */ be_nested_str_weak(engine), - /* K14 */ be_nested_str_weak(time_ms), - /* K15 */ be_nested_str_weak(update), - /* K16 */ be_nested_str_weak(fill_pixels), + /* K10 */ be_nested_str_weak(engine), + /* K11 */ be_nested_str_weak(time_ms), + /* K12 */ be_nested_str_weak(update), + /* K13 */ be_nested_str_weak(fill_pixels), + /* K14 */ be_nested_str_weak(_start_value_providers), + /* K15 */ be_nested_str_weak(opacity), + /* K16 */ be_nested_str_weak(_apply_opacity), /* K17 */ be_nested_str_weak(animation), /* K18 */ be_nested_str_weak(is_value_provider), /* K19 */ be_nested_str_weak(start), /* K20 */ be_nested_str_weak(stop_iteration), - /* K21 */ be_nested_str_weak(opacity), - /* K22 */ be_nested_str_weak(_apply_opacity), - /* K23 */ be_nested_str_weak(opacity_frame), - /* K24 */ be_nested_str_weak(width), - /* K25 */ be_nested_str_weak(frame_buffer), - /* K26 */ be_nested_str_weak(clear), - /* K27 */ be_nested_str_weak(render), - /* K28 */ be_nested_str_weak(apply_opacity), - /* K29 */ be_nested_str_weak(int), - /* K30 */ be_nested_str_weak(tasmota), - /* K31 */ be_nested_str_weak(scale_uint), - /* K32 */ be_nested_str_weak(init), - /* K33 */ be_nested_str_weak(_start_value_providers), + /* K21 */ be_nested_str_weak(Animation_X28_X25s_X2C_X20priority_X3D_X25s_X2C_X20duration_X3D_X25s_X2C_X20loop_X3D_X25s_X2C_X20running_X3D_X25s_X29), + /* K22 */ be_nested_str_weak(name), + /* K23 */ be_nested_str_weak(priority), + /* K24 */ be_nested_str_weak(opacity_frame), + /* K25 */ be_nested_str_weak(width), + /* K26 */ be_nested_str_weak(frame_buffer), + /* K27 */ be_nested_str_weak(clear), + /* K28 */ be_nested_str_weak(render), + /* K29 */ be_nested_str_weak(apply_opacity), + /* K30 */ be_nested_str_weak(int), + /* K31 */ be_nested_str_weak(init), }; extern const bclass be_class_Animation; -/******************************************************************** -** Solidified function: get_color -********************************************************************/ -be_local_closure(class_Animation_get_color, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Animation, /* shared constants */ - be_str_weak(get_color), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x58100001, // 0001 LDCONST R4 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C080600, // 0003 CALL R2 3 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: get_color_at ********************************************************************/ @@ -16958,8 +16942,8 @@ be_local_closure(class_Animation_get_color_at, /* name */ be_str_weak(get_color_at), &be_const_str_solidified, ( &(const binstruction[ 5]) { /* code */ - 0x8C0C0102, // 0000 GETMET R3 R0 K2 - 0x58140003, // 0001 LDCONST R5 K3 + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x58140001, // 0001 LDCONST R5 K1 0x5C180400, // 0002 MOVE R6 R2 0x7C0C0600, // 0003 CALL R3 3 0x80040600, // 0004 RET 1 R3 @@ -16969,6 +16953,34 @@ be_local_closure(class_Animation_get_color_at, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_color +********************************************************************/ +be_local_closure(class_Animation_get_color, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Animation, /* shared constants */ + be_str_weak(get_color), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x8C080102, // 0000 GETMET R2 R0 K2 + 0x58100003, // 0001 LDCONST R4 K3 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C080600, // 0003 CALL R2 3 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: update ********************************************************************/ @@ -16997,7 +17009,7 @@ be_local_closure(class_Animation_update, /* name */ 0x040C0604, // 0008 SUB R3 R3 R4 0x88100107, // 0009 GETMBR R4 R0 K7 0x88140108, // 000A GETMBR R5 R0 K8 - 0x24180901, // 000B GT R6 R4 K1 + 0x24180903, // 000B GT R6 R4 K3 0x781A000D, // 000C JMPF R6 #001B 0x28180604, // 000D GE R6 R3 R4 0x781A000B, // 000E JMPF R6 #001B @@ -17021,38 +17033,6 @@ be_local_closure(class_Animation_update, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_Animation_tostring, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Animation, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x5808000A, // 0001 LDCONST R2 K10 - 0x880C010B, // 0002 GETMBR R3 R0 K11 - 0x8810010C, // 0003 GETMBR R4 R0 K12 - 0x88140107, // 0004 GETMBR R5 R0 K7 - 0x88180108, // 0005 GETMBR R6 R0 K8 - 0x881C0104, // 0006 GETMBR R7 R0 K4 - 0x7C040C00, // 0007 CALL R1 6 - 0x80040200, // 0008 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: render ********************************************************************/ @@ -17069,7 +17049,7 @@ be_local_closure(class_Animation_render, /* name */ &be_ktab_class_Animation, /* shared constants */ be_str_weak(render), &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ + ( &(const binstruction[27]) { /* code */ 0x880C0104, // 0000 GETMBR R3 R0 K4 0x5C100600, // 0001 MOVE R4 R3 0x78120002, // 0002 JMPF R4 #0006 @@ -17079,21 +17059,24 @@ be_local_closure(class_Animation_render, /* name */ 0x50100000, // 0006 LDBOOL R4 0 0 0x80040800, // 0007 RET 1 R4 0x4C100000, // 0008 LDNIL R4 - 0x1C100404, // 0009 EQ R4 R2 R4 + 0x20100404, // 0009 NE R4 R2 R4 0x78120001, // 000A JMPF R4 #000D - 0x8810010D, // 000B GETMBR R4 R0 K13 - 0x8808090E, // 000C GETMBR R2 R4 K14 - 0x8C10010F, // 000D GETMET R4 R0 K15 - 0x5C180400, // 000E MOVE R6 R2 - 0x7C100400, // 000F CALL R4 2 - 0x88100103, // 0010 GETMBR R4 R0 K3 - 0x20140901, // 0011 NE R5 R4 K1 - 0x78160002, // 0012 JMPF R5 #0016 - 0x8C140310, // 0013 GETMET R5 R1 K16 - 0x5C1C0800, // 0014 MOVE R7 R4 - 0x7C140400, // 0015 CALL R5 2 - 0x50140200, // 0016 LDBOOL R5 1 0 - 0x80040A00, // 0017 RET 1 R5 + 0x5C100400, // 000B MOVE R4 R2 + 0x70020001, // 000C JMP #000F + 0x8810010A, // 000D GETMBR R4 R0 K10 + 0x8810090B, // 000E GETMBR R4 R4 K11 + 0x5C080800, // 000F MOVE R2 R4 + 0x8C10010C, // 0010 GETMET R4 R0 K12 + 0x5C180400, // 0011 MOVE R6 R2 + 0x7C100400, // 0012 CALL R4 2 + 0x88100101, // 0013 GETMBR R4 R0 K1 + 0x20140903, // 0014 NE R5 R4 K3 + 0x78160002, // 0015 JMPF R5 #0019 + 0x8C14030D, // 0016 GETMET R5 R1 K13 + 0x5C1C0800, // 0017 MOVE R7 R4 + 0x7C140400, // 0018 CALL R5 2 + 0x50140200, // 0019 LDBOOL R5 1 0 + 0x80040A00, // 001A RET 1 R5 }) ) ); @@ -17101,12 +17084,12 @@ be_local_closure(class_Animation_render, /* name */ /******************************************************************** -** Solidified function: _start_value_providers +** Solidified function: on_param_changed ********************************************************************/ -be_local_closure(class_Animation__start_value_providers, /* name */ +be_local_closure(class_Animation_on_param_changed, /* name */ be_nested_proto( 7, /* nstack */ - 2, /* argc */ + 3, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -17114,35 +17097,23 @@ be_local_closure(class_Animation__start_value_providers, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_Animation, /* shared constants */ - be_str_weak(_start_value_providers), + be_str_weak(on_param_changed), &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x60080010, // 0000 GETGBL R2 G16 - 0x880C0109, // 0001 GETMBR R3 R0 K9 - 0x7C080200, // 0002 CALL R2 1 - 0xA8020011, // 0003 EXBLK 0 #0016 - 0x5C0C0400, // 0004 MOVE R3 R2 - 0x7C0C0000, // 0005 CALL R3 0 - 0xB8122200, // 0006 GETNGBL R4 K17 - 0x8C100912, // 0007 GETMET R4 R4 K18 - 0x5C180600, // 0008 MOVE R6 R3 - 0x7C100400, // 0009 CALL R4 2 - 0x78120009, // 000A JMPF R4 #0015 - 0xA8020004, // 000B EXBLK 0 #0011 - 0x8C100713, // 000C GETMET R4 R3 K19 - 0x5C180200, // 000D MOVE R6 R1 - 0x7C100400, // 000E CALL R4 2 - 0xA8040001, // 000F EXBLK 1 1 - 0x70020003, // 0010 JMP #0015 - 0xAC100001, // 0011 CATCH R4 0 1 - 0x70020000, // 0012 JMP #0014 - 0x70020000, // 0013 JMP #0015 - 0xB0080000, // 0014 RAISE 2 R0 R0 - 0x7001FFED, // 0015 JMP #0004 - 0x58080014, // 0016 LDCONST R2 K20 - 0xAC080200, // 0017 CATCH R2 1 0 - 0xB0080000, // 0018 RAISE 2 R0 R0 - 0x80000000, // 0019 RET 0 + ( &(const binstruction[14]) { /* code */ + 0x1C0C0304, // 0000 EQ R3 R1 K4 + 0x780E000A, // 0001 JMPF R3 #000D + 0x500C0200, // 0002 LDBOOL R3 1 0 + 0x1C0C0403, // 0003 EQ R3 R2 R3 + 0x780E0007, // 0004 JMPF R3 #000D + 0x880C010A, // 0005 GETMBR R3 R0 K10 + 0x880C070B, // 0006 GETMBR R3 R3 K11 + 0x90020C03, // 0007 SETMBR R0 K6 R3 + 0x88100106, // 0008 GETMBR R4 R0 K6 + 0x90020A04, // 0009 SETMBR R0 K5 R4 + 0x8C10010E, // 000A GETMET R4 R0 K14 + 0x5C180600, // 000B MOVE R6 R3 + 0x7C100400, // 000C CALL R4 2 + 0x80000000, // 000D RET 0 }) ) ); @@ -17166,8 +17137,8 @@ be_local_closure(class_Animation_post_render, /* name */ be_str_weak(post_render), &be_const_str_solidified, ( &(const binstruction[ 7]) { /* code */ - 0x880C0115, // 0000 GETMBR R3 R0 K21 - 0x8C100116, // 0001 GETMET R4 R0 K22 + 0x880C010F, // 0000 GETMBR R3 R0 K15 + 0x8C100110, // 0001 GETMET R4 R0 K16 0x5C180200, // 0002 MOVE R6 R1 0x5C1C0600, // 0003 MOVE R7 R3 0x5C200400, // 0004 MOVE R8 R2 @@ -17180,133 +17151,11 @@ be_local_closure(class_Animation_post_render, /* name */ /******************************************************************** -** Solidified function: _apply_opacity +** Solidified function: _start_value_providers ********************************************************************/ -be_local_closure(class_Animation__apply_opacity, /* name */ +be_local_closure(class_Animation__start_value_providers, /* name */ be_nested_proto( - 9, /* nstack */ - 4, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Animation, /* shared constants */ - be_str_weak(_apply_opacity), - &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ - 0x6010000F, // 0000 GETGBL R4 G15 - 0x5C140400, // 0001 MOVE R5 R2 - 0xB81A2200, // 0002 GETNGBL R6 K17 - 0x88180D11, // 0003 GETMBR R6 R6 K17 - 0x7C100400, // 0004 CALL R4 2 - 0x78120021, // 0005 JMPF R4 #0028 - 0x5C100400, // 0006 MOVE R4 R2 - 0x88140117, // 0007 GETMBR R5 R0 K23 - 0x4C180000, // 0008 LDNIL R6 - 0x1C140A06, // 0009 EQ R5 R5 R6 - 0x74160004, // 000A JMPT R5 #0010 - 0x88140117, // 000B GETMBR R5 R0 K23 - 0x88140B18, // 000C GETMBR R5 R5 K24 - 0x88180318, // 000D GETMBR R6 R1 K24 - 0x20140A06, // 000E NE R5 R5 R6 - 0x78160004, // 000F JMPF R5 #0015 - 0xB8162200, // 0010 GETNGBL R5 K17 - 0x8C140B19, // 0011 GETMET R5 R5 K25 - 0x881C0318, // 0012 GETMBR R7 R1 K24 - 0x7C140400, // 0013 CALL R5 2 - 0x90022E05, // 0014 SETMBR R0 K23 R5 - 0x88140117, // 0015 GETMBR R5 R0 K23 - 0x8C140B1A, // 0016 GETMET R5 R5 K26 - 0x7C140200, // 0017 CALL R5 1 - 0x88140904, // 0018 GETMBR R5 R4 K4 - 0x74160002, // 0019 JMPT R5 #001D - 0x8C140913, // 001A GETMET R5 R4 K19 - 0x881C0106, // 001B GETMBR R7 R0 K6 - 0x7C140400, // 001C CALL R5 2 - 0x8C14090F, // 001D GETMET R5 R4 K15 - 0x5C1C0600, // 001E MOVE R7 R3 - 0x7C140400, // 001F CALL R5 2 - 0x8C14091B, // 0020 GETMET R5 R4 K27 - 0x881C0117, // 0021 GETMBR R7 R0 K23 - 0x5C200600, // 0022 MOVE R8 R3 - 0x7C140600, // 0023 CALL R5 3 - 0x8C14031C, // 0024 GETMET R5 R1 K28 - 0x881C0117, // 0025 GETMBR R7 R0 K23 - 0x7C140400, // 0026 CALL R5 2 - 0x7002000A, // 0027 JMP #0033 - 0x60100004, // 0028 GETGBL R4 G4 - 0x5C140400, // 0029 MOVE R5 R2 - 0x7C100200, // 002A CALL R4 1 - 0x1C10091D, // 002B EQ R4 R4 K29 - 0x78120005, // 002C JMPF R4 #0033 - 0x541200FE, // 002D LDINT R4 255 - 0x14100404, // 002E LT R4 R2 R4 - 0x78120002, // 002F JMPF R4 #0033 - 0x8C10031C, // 0030 GETMET R4 R1 K28 - 0x5C180400, // 0031 MOVE R6 R2 - 0x7C100400, // 0032 CALL R4 2 - 0x80000000, // 0033 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_progress -********************************************************************/ -be_local_closure(class_Animation_get_progress, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Animation, /* shared constants */ - be_str_weak(get_progress), - &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ - 0x88040107, // 0000 GETMBR R1 R0 K7 - 0x18080301, // 0001 LE R2 R1 K1 - 0x780A0000, // 0002 JMPF R2 #0004 - 0x80060200, // 0003 RET 1 K1 - 0x88080105, // 0004 GETMBR R2 R0 K5 - 0x880C0106, // 0005 GETMBR R3 R0 K6 - 0x04080403, // 0006 SUB R2 R2 R3 - 0x100C0401, // 0007 MOD R3 R2 R1 - 0x88100108, // 0008 GETMBR R4 R0 K8 - 0x5C140800, // 0009 MOVE R5 R4 - 0x74160003, // 000A JMPT R5 #000F - 0x28140401, // 000B GE R5 R2 R1 - 0x78160001, // 000C JMPF R5 #000F - 0x541600FE, // 000D LDINT R5 255 - 0x80040A00, // 000E RET 1 R5 - 0xB8163C00, // 000F GETNGBL R5 K30 - 0x8C140B1F, // 0010 GETMET R5 R5 K31 - 0x5C1C0600, // 0011 MOVE R7 R3 - 0x58200001, // 0012 LDCONST R8 K1 - 0x5C240200, // 0013 MOVE R9 R1 - 0x58280001, // 0014 LDCONST R10 K1 - 0x542E00FE, // 0015 LDINT R11 255 - 0x7C140C00, // 0016 CALL R5 6 - 0x80040A00, // 0017 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_Animation_init, /* name */ - be_nested_proto( - 5, /* nstack */ + 7, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17315,20 +17164,28 @@ be_local_closure(class_Animation_init, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_Animation, /* shared constants */ - be_str_weak(init), + be_str_weak(_start_value_providers), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 + ( &(const binstruction[19]) { /* code */ + 0x60080010, // 0000 GETGBL R2 G16 + 0x880C0109, // 0001 GETMBR R3 R0 K9 0x7C080200, // 0002 CALL R2 1 - 0x8C080520, // 0003 GETMET R2 R2 K32 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x90020D01, // 0006 SETMBR R0 K6 K1 - 0x90020B01, // 0007 SETMBR R0 K5 K1 - 0x4C080000, // 0008 LDNIL R2 - 0x90022E02, // 0009 SETMBR R0 K23 R2 - 0x80000000, // 000A RET 0 + 0xA802000A, // 0003 EXBLK 0 #000F + 0x5C0C0400, // 0004 MOVE R3 R2 + 0x7C0C0000, // 0005 CALL R3 0 + 0xB8122200, // 0006 GETNGBL R4 K17 + 0x8C100912, // 0007 GETMET R4 R4 K18 + 0x5C180600, // 0008 MOVE R6 R3 + 0x7C100400, // 0009 CALL R4 2 + 0x78120002, // 000A JMPF R4 #000E + 0x8C100713, // 000B GETMET R4 R3 K19 + 0x5C180200, // 000C MOVE R6 R1 + 0x7C100400, // 000D CALL R4 2 + 0x7001FFF4, // 000E JMP #0004 + 0x58080014, // 000F LDCONST R2 K20 + 0xAC080200, // 0010 CATCH R2 1 0 + 0xB0080000, // 0011 RAISE 2 R0 R0 + 0x80000000, // 0012 RET 0 }) ) ); @@ -17336,12 +17193,12 @@ be_local_closure(class_Animation_init, /* name */ /******************************************************************** -** Solidified function: on_param_changed +** Solidified function: tostring ********************************************************************/ -be_local_closure(class_Animation_on_param_changed, /* name */ +be_local_closure(class_Animation_tostring, /* name */ be_nested_proto( - 7, /* nstack */ - 3, /* argc */ + 8, /* nstack */ + 1, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -17349,27 +17206,18 @@ be_local_closure(class_Animation_on_param_changed, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_Animation, /* shared constants */ - be_str_weak(on_param_changed), + be_str_weak(tostring), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x1C0C0304, // 0000 EQ R3 R1 K4 - 0x780E000E, // 0001 JMPF R3 #0011 - 0x500C0200, // 0002 LDBOOL R3 1 0 - 0x1C0C0403, // 0003 EQ R3 R2 R3 - 0x780E0008, // 0004 JMPF R3 #000E - 0x880C010D, // 0005 GETMBR R3 R0 K13 - 0x880C070E, // 0006 GETMBR R3 R3 K14 - 0x90020C03, // 0007 SETMBR R0 K6 R3 - 0x88100106, // 0008 GETMBR R4 R0 K6 - 0x90020A04, // 0009 SETMBR R0 K5 R4 - 0x8C100121, // 000A GETMET R4 R0 K33 - 0x5C180600, // 000B MOVE R6 R3 - 0x7C100400, // 000C CALL R4 2 - 0x70020002, // 000D JMP #0011 - 0x500C0000, // 000E LDBOOL R3 0 0 - 0x1C0C0403, // 000F EQ R3 R2 R3 - 0x780DFFFF, // 0010 JMPF R3 #0011 - 0x80000000, // 0011 RET 0 + ( &(const binstruction[ 9]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x58080015, // 0001 LDCONST R2 K21 + 0x880C0116, // 0002 GETMBR R3 R0 K22 + 0x88100117, // 0003 GETMBR R4 R0 K23 + 0x88140107, // 0004 GETMBR R5 R0 K7 + 0x88180108, // 0005 GETMBR R6 R0 K8 + 0x881C0104, // 0006 GETMBR R7 R0 K4 + 0x7C040C00, // 0007 CALL R1 6 + 0x80040200, // 0008 RET 1 R1 }) ) ); @@ -17401,12 +17249,12 @@ be_local_closure(class_Animation_start, /* name */ 0x780A0001, // 0005 JMPF R2 #0008 0x5C080200, // 0006 MOVE R2 R1 0x70020001, // 0007 JMP #000A - 0x8808010D, // 0008 GETMBR R2 R0 K13 - 0x8808050E, // 0009 GETMBR R2 R2 K14 + 0x8808010A, // 0008 GETMBR R2 R0 K10 + 0x8808050B, // 0009 GETMBR R2 R2 K11 0x90020C02, // 000A SETMBR R0 K6 R2 0x880C0106, // 000B GETMBR R3 R0 K6 0x90020A03, // 000C SETMBR R0 K5 R3 - 0x8C0C0121, // 000D GETMET R3 R0 K33 + 0x8C0C010E, // 000D GETMET R3 R0 K14 0x5C140400, // 000E MOVE R5 R2 0x7C0C0400, // 000F CALL R3 2 0x80040000, // 0010 RET 1 R0 @@ -17416,6 +17264,113 @@ be_local_closure(class_Animation_start, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: _apply_opacity +********************************************************************/ +be_local_closure(class_Animation__apply_opacity, /* name */ + be_nested_proto( + 9, /* nstack */ + 4, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Animation, /* shared constants */ + be_str_weak(_apply_opacity), + &be_const_str_solidified, + ( &(const binstruction[52]) { /* code */ + 0x6010000F, // 0000 GETGBL R4 G15 + 0x5C140400, // 0001 MOVE R5 R2 + 0xB81A2200, // 0002 GETNGBL R6 K17 + 0x88180D11, // 0003 GETMBR R6 R6 K17 + 0x7C100400, // 0004 CALL R4 2 + 0x78120021, // 0005 JMPF R4 #0028 + 0x5C100400, // 0006 MOVE R4 R2 + 0x88140118, // 0007 GETMBR R5 R0 K24 + 0x4C180000, // 0008 LDNIL R6 + 0x1C140A06, // 0009 EQ R5 R5 R6 + 0x74160004, // 000A JMPT R5 #0010 + 0x88140118, // 000B GETMBR R5 R0 K24 + 0x88140B19, // 000C GETMBR R5 R5 K25 + 0x88180319, // 000D GETMBR R6 R1 K25 + 0x20140A06, // 000E NE R5 R5 R6 + 0x78160004, // 000F JMPF R5 #0015 + 0xB8162200, // 0010 GETNGBL R5 K17 + 0x8C140B1A, // 0011 GETMET R5 R5 K26 + 0x881C0319, // 0012 GETMBR R7 R1 K25 + 0x7C140400, // 0013 CALL R5 2 + 0x90023005, // 0014 SETMBR R0 K24 R5 + 0x88140118, // 0015 GETMBR R5 R0 K24 + 0x8C140B1B, // 0016 GETMET R5 R5 K27 + 0x7C140200, // 0017 CALL R5 1 + 0x88140904, // 0018 GETMBR R5 R4 K4 + 0x74160002, // 0019 JMPT R5 #001D + 0x8C140913, // 001A GETMET R5 R4 K19 + 0x881C0106, // 001B GETMBR R7 R0 K6 + 0x7C140400, // 001C CALL R5 2 + 0x8C14090C, // 001D GETMET R5 R4 K12 + 0x5C1C0600, // 001E MOVE R7 R3 + 0x7C140400, // 001F CALL R5 2 + 0x8C14091C, // 0020 GETMET R5 R4 K28 + 0x881C0118, // 0021 GETMBR R7 R0 K24 + 0x5C200600, // 0022 MOVE R8 R3 + 0x7C140600, // 0023 CALL R5 3 + 0x8C14031D, // 0024 GETMET R5 R1 K29 + 0x881C0118, // 0025 GETMBR R7 R0 K24 + 0x7C140400, // 0026 CALL R5 2 + 0x7002000A, // 0027 JMP #0033 + 0x60100004, // 0028 GETGBL R4 G4 + 0x5C140400, // 0029 MOVE R5 R2 + 0x7C100200, // 002A CALL R4 1 + 0x1C10091E, // 002B EQ R4 R4 K30 + 0x78120005, // 002C JMPF R4 #0033 + 0x541200FE, // 002D LDINT R4 255 + 0x14100404, // 002E LT R4 R2 R4 + 0x78120002, // 002F JMPF R4 #0033 + 0x8C10031D, // 0030 GETMET R4 R1 K29 + 0x5C180400, // 0031 MOVE R6 R2 + 0x7C100400, // 0032 CALL R4 2 + 0x80000000, // 0033 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_Animation_init, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Animation, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0x60080003, // 0000 GETGBL R2 G3 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x8C08051F, // 0003 GETMET R2 R2 K31 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x90020D03, // 0006 SETMBR R0 K6 K3 + 0x90020B03, // 0007 SETMBR R0 K5 K3 + 0x80000000, // 0008 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: Animation ********************************************************************/ @@ -17423,12 +17378,12 @@ extern const bclass be_class_ParameterizedObject; be_local_class(Animation, 3, &be_class_ParameterizedObject, - be_nested_map(16, + be_nested_map(15, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(opacity_frame, 10), be_const_var(2) }, - { be_const_key_weak(start, -1), be_const_closure(class_Animation_start_closure) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_Animation_tostring_closure) }, - { be_const_key_weak(PARAMS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + { be_const_key_weak(opacity_frame, 2), be_const_var(2) }, + { be_const_key_weak(get_color_at, -1), be_const_closure(class_Animation_get_color_at_closure) }, + { be_const_key_weak(init, 13), be_const_closure(class_Animation_init_closure) }, + { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(7, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(priority, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { @@ -17474,17 +17429,16 @@ be_local_class(Animation, })) ) } )) }, })) ) } )) }, { be_const_key_weak(update, -1), be_const_closure(class_Animation_update_closure) }, - { be_const_key_weak(get_color_at, 12), be_const_closure(class_Animation_get_color_at_closure) }, - { be_const_key_weak(on_param_changed, -1), be_const_closure(class_Animation_on_param_changed_closure) }, - { be_const_key_weak(init, -1), be_const_closure(class_Animation_init_closure) }, + { be_const_key_weak(_apply_opacity, 14), be_const_closure(class_Animation__apply_opacity_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_Animation_tostring_closure) }, + { be_const_key_weak(render, 5), be_const_closure(class_Animation_render_closure) }, { be_const_key_weak(post_render, -1), be_const_closure(class_Animation_post_render_closure) }, + { be_const_key_weak(start, -1), be_const_closure(class_Animation_start_closure) }, + { be_const_key_weak(current_time, 6), be_const_var(1) }, + { be_const_key_weak(get_color, 9), be_const_closure(class_Animation_get_color_closure) }, { be_const_key_weak(start_time, -1), be_const_var(0) }, - { be_const_key_weak(_apply_opacity, -1), be_const_closure(class_Animation__apply_opacity_closure) }, - { be_const_key_weak(get_progress, -1), be_const_closure(class_Animation_get_progress_closure) }, - { be_const_key_weak(_start_value_providers, 2), be_const_closure(class_Animation__start_value_providers_closure) }, - { be_const_key_weak(render, 6), be_const_closure(class_Animation_render_closure) }, - { be_const_key_weak(current_time, -1), be_const_var(1) }, - { be_const_key_weak(get_color, 1), be_const_closure(class_Animation_get_color_closure) }, + { be_const_key_weak(_start_value_providers, -1), be_const_closure(class_Animation__start_value_providers_closure) }, + { be_const_key_weak(on_param_changed, -1), be_const_closure(class_Animation_on_param_changed_closure) }, })), be_str_weak(Animation) ); @@ -18042,70 +17996,77 @@ be_local_closure(ease_in, /* name */ ); /*******************************************************************/ -// compact class 'AnimationEngine' ktab size: 50, total: 145 (saved 760 bytes) -static const bvalue be_ktab_class_AnimationEngine[50] = { - /* K0 */ be_nested_str_weak(animations), - /* K1 */ be_const_int(1), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(priority), - /* K4 */ be_nested_str_weak(strip), - /* K5 */ be_nested_str_weak(clear), - /* K6 */ be_nested_str_weak(show), - /* K7 */ be_nested_str_weak(AnimationEngine_X28running_X3D_X25s_X2C_X20animations_X3D_X25s_X2C_X20width_X3D_X25s_X29), +// compact class 'AnimationEngine' ktab size: 57, total: 153 (saved 768 bytes) +static const bvalue be_ktab_class_AnimationEngine[57] = { + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(width), + /* K2 */ be_nested_str_weak(frame_buffer), + /* K3 */ be_nested_str_weak(resize), + /* K4 */ be_nested_str_weak(temp_buffer), + /* K5 */ be_nested_str_weak(render_needed), + /* K6 */ be_nested_str_weak(animations), + /* K7 */ be_nested_str_weak(update), /* K8 */ be_nested_str_weak(is_running), - /* K9 */ be_nested_str_weak(width), - /* K10 */ be_nested_str_weak(sequence_managers), - /* K11 */ be_nested_str_weak(remove), - /* K12 */ be_nested_str_weak(push), - /* K13 */ be_nested_str_weak(set_pixel_color), - /* K14 */ be_nested_str_weak(frame_buffer), - /* K15 */ be_nested_str_weak(get_pixel_color), - /* K16 */ be_nested_str_weak(value_error), - /* K17 */ be_nested_str_weak(strip_X20cannot_X20be_X20nil), - /* K18 */ be_nested_str_weak(length), - /* K19 */ be_nested_str_weak(animation), - /* K20 */ be_nested_str_weak(temp_buffer), - /* K21 */ be_nested_str_weak(last_update), - /* K22 */ be_nested_str_weak(time_ms), - /* K23 */ be_nested_str_weak(fast_loop_closure), - /* K24 */ be_nested_str_weak(render_needed), - /* K25 */ be_nested_str_weak(stop), - /* K26 */ be_nested_str_weak(render), - /* K27 */ be_nested_str_weak(post_render), - /* K28 */ be_nested_str_weak(blend_pixels), - /* K29 */ be_nested_str_weak(_output_to_strip), - /* K30 */ be_nested_str_weak(name), - /* K31 */ be_nested_str_weak(update), - /* K32 */ be_nested_str_weak(_clear_strip), - /* K33 */ be_nested_str_weak(_render_animations), - /* K34 */ be_nested_str_weak(resume), - /* K35 */ be_nested_str_weak(tasmota), - /* K36 */ be_nested_str_weak(millis), - /* K37 */ be_nested_str_weak(start), - /* K38 */ be_nested_str_weak(add_fast_loop), - /* K39 */ be_nested_str_weak(_sort_animations), - /* K40 */ be_nested_str_weak(_handle_strip_length_change), - /* K41 */ be_nested_str_weak(check_strip_length), - /* K42 */ be_nested_str_weak(resize), - /* K43 */ be_nested_str_weak(stop_iteration), - /* K44 */ be_nested_str_weak(can_show), - /* K45 */ be_nested_str_weak(_process_events), - /* K46 */ be_nested_str_weak(_update_and_render), - /* K47 */ be_nested_str_weak(remove_fast_loop), - /* K48 */ be_nested_str_weak(event_manager), - /* K49 */ be_nested_str_weak(_process_queued_events), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(remove), + /* K11 */ be_nested_str_weak(_clear_strip), + /* K12 */ be_nested_str_weak(_render_animations), + /* K13 */ be_nested_str_weak(priority), + /* K14 */ be_nested_str_weak(sequence_managers), + /* K15 */ be_nested_str_weak(push), + /* K16 */ be_nested_str_weak(strip), + /* K17 */ be_nested_str_weak(set_pixel_color), + /* K18 */ be_nested_str_weak(get_pixel_color), + /* K19 */ be_nested_str_weak(show), + /* K20 */ be_nested_str_weak(length), + /* K21 */ be_nested_str_weak(_handle_strip_length_change), + /* K22 */ be_nested_str_weak(resume), + /* K23 */ be_nested_str_weak(animation), + /* K24 */ be_nested_str_weak(SequenceManager), + /* K25 */ be_nested_str_weak(add_sequence_manager), + /* K26 */ be_nested_str_weak(add_animation), + /* K27 */ be_nested_str_weak(introspect), + /* K28 */ be_nested_str_weak(name), + /* K29 */ be_nested_str_weak(Cannot_X20add_X20object_X20of_X20type_X20_X27_X25s_X27_X20to_X20engine_X2E_X20Expected_X20Animation_X20or_X20SequenceManager_X2E), + /* K30 */ be_nested_str_weak(type_error), + /* K31 */ be_nested_str_weak(clear), + /* K32 */ be_nested_str_weak(render), + /* K33 */ be_nested_str_weak(post_render), + /* K34 */ be_nested_str_weak(blend_pixels), + /* K35 */ be_nested_str_weak(_output_to_strip), + /* K36 */ be_nested_str_weak(stop), + /* K37 */ be_nested_str_weak(stop_iteration), + /* K38 */ be_nested_str_weak(fast_loop_closure), + /* K39 */ be_nested_str_weak(tasmota), + /* K40 */ be_nested_str_weak(remove_fast_loop), + /* K41 */ be_nested_str_weak(value_error), + /* K42 */ be_nested_str_weak(strip_X20cannot_X20be_X20nil), + /* K43 */ be_nested_str_weak(last_update), + /* K44 */ be_nested_str_weak(time_ms), + /* K45 */ be_nested_str_weak(millis), + /* K46 */ be_nested_str_weak(check_strip_length), + /* K47 */ be_nested_str_weak(can_show), + /* K48 */ be_nested_str_weak(_process_events), + /* K49 */ be_nested_str_weak(_update_and_render), + /* K50 */ be_nested_str_weak(AnimationEngine_X28running_X3D_X25s_X2C_X20animations_X3D_X25s_X2C_X20width_X3D_X25s_X29), + /* K51 */ be_nested_str_weak(event_manager), + /* K52 */ be_nested_str_weak(_process_queued_events), + /* K53 */ be_nested_str_weak(start), + /* K54 */ be_nested_str_weak(find), + /* K55 */ be_nested_str_weak(_sort_animations), + /* K56 */ be_nested_str_weak(add_fast_loop), }; extern const bclass be_class_AnimationEngine; /******************************************************************** -** Solidified function: _sort_animations +** Solidified function: _handle_strip_length_change ********************************************************************/ -be_local_closure(class_AnimationEngine__sort_animations, /* name */ +be_local_closure(class_AnimationEngine__handle_strip_length_change, /* name */ be_nested_proto( - 8, /* nstack */ - 1, /* argc */ + 5, /* nstack */ + 2, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -18113,42 +18074,24 @@ be_local_closure(class_AnimationEngine__sort_animations, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_sort_animations), + be_str_weak(_handle_strip_length_change), &be_const_str_solidified, - ( &(const binstruction[33]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x18080301, // 0003 LE R2 R1 K1 - 0x780A0000, // 0004 JMPF R2 #0006 - 0x80000400, // 0005 RET 0 - 0x58080001, // 0006 LDCONST R2 K1 - 0x140C0401, // 0007 LT R3 R2 R1 - 0x780E0016, // 0008 JMPF R3 #0020 - 0x880C0100, // 0009 GETMBR R3 R0 K0 - 0x940C0602, // 000A GETIDX R3 R3 R2 - 0x5C100400, // 000B MOVE R4 R2 - 0x24140902, // 000C GT R5 R4 K2 - 0x7816000D, // 000D JMPF R5 #001C - 0x04140901, // 000E SUB R5 R4 K1 - 0x88180100, // 000F GETMBR R6 R0 K0 - 0x94140C05, // 0010 GETIDX R5 R6 R5 - 0x88140B03, // 0011 GETMBR R5 R5 K3 - 0x88180703, // 0012 GETMBR R6 R3 K3 - 0x14140A06, // 0013 LT R5 R5 R6 - 0x78160006, // 0014 JMPF R5 #001C - 0x88140100, // 0015 GETMBR R5 R0 K0 - 0x04180901, // 0016 SUB R6 R4 K1 - 0x881C0100, // 0017 GETMBR R7 R0 K0 - 0x94180E06, // 0018 GETIDX R6 R7 R6 - 0x98140806, // 0019 SETIDX R5 R4 R6 - 0x04100901, // 001A SUB R4 R4 K1 - 0x7001FFEF, // 001B JMP #000C - 0x88140100, // 001C GETMBR R5 R0 K0 - 0x98140803, // 001D SETIDX R5 R4 R3 - 0x00080501, // 001E ADD R2 R2 K1 - 0x7001FFE6, // 001F JMP #0007 - 0x80000000, // 0020 RET 0 + ( &(const binstruction[15]) { /* code */ + 0x18080300, // 0000 LE R2 R1 K0 + 0x780A0000, // 0001 JMPF R2 #0003 + 0x80000400, // 0002 RET 0 + 0x90020201, // 0003 SETMBR R0 K1 R1 + 0x88080102, // 0004 GETMBR R2 R0 K2 + 0x8C080503, // 0005 GETMET R2 R2 K3 + 0x5C100200, // 0006 MOVE R4 R1 + 0x7C080400, // 0007 CALL R2 2 + 0x88080104, // 0008 GETMBR R2 R0 K4 + 0x8C080503, // 0009 GETMET R2 R2 K3 + 0x5C100200, // 000A MOVE R4 R1 + 0x7C080400, // 000B CALL R2 2 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x90020A02, // 000D SETMBR R0 K5 R2 + 0x80000000, // 000E RET 0 }) ) ); @@ -18156,11 +18099,11 @@ be_local_closure(class_AnimationEngine__sort_animations, /* name */ /******************************************************************** -** Solidified function: _clear_strip +** Solidified function: get_animations ********************************************************************/ -be_local_closure(class_AnimationEngine__clear_strip, /* name */ +be_local_closure(class_AnimationEngine_get_animations, /* name */ be_nested_proto( - 3, /* nstack */ + 2, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -18169,16 +18112,75 @@ be_local_closure(class_AnimationEngine__clear_strip, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_clear_strip), + be_str_weak(get_animations), &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x88040104, // 0000 GETMBR R1 R0 K4 - 0x8C040305, // 0001 GETMET R1 R1 K5 - 0x7C040200, // 0002 CALL R1 1 - 0x88040104, // 0003 GETMBR R1 R0 K4 - 0x8C040306, // 0004 GETMET R1 R1 K6 - 0x7C040200, // 0005 CALL R1 1 - 0x80000000, // 0006 RET 0 + ( &(const binstruction[ 2]) { /* code */ + 0x88040106, // 0000 GETMBR R1 R0 K6 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _update_and_render +********************************************************************/ +be_local_closure(class_AnimationEngine__update_and_render, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_update_and_render), + &be_const_str_solidified, + ( &(const binstruction[41]) { /* code */ + 0x58080000, // 0000 LDCONST R2 K0 + 0x580C0000, // 0001 LDCONST R3 K0 + 0x6010000C, // 0002 GETGBL R4 G12 + 0x88140106, // 0003 GETMBR R5 R0 K6 + 0x7C100200, // 0004 CALL R4 1 + 0x14100604, // 0005 LT R4 R3 R4 + 0x78120011, // 0006 JMPF R4 #0019 + 0x88100106, // 0007 GETMBR R4 R0 K6 + 0x94100803, // 0008 GETIDX R4 R4 R3 + 0x8C140907, // 0009 GETMET R5 R4 K7 + 0x5C1C0200, // 000A MOVE R7 R1 + 0x7C140400, // 000B CALL R5 2 + 0x78160004, // 000C JMPF R5 #0012 + 0x88180908, // 000D GETMBR R6 R4 K8 + 0x781A0002, // 000E JMPF R6 #0012 + 0x00080509, // 000F ADD R2 R2 K9 + 0x000C0709, // 0010 ADD R3 R3 K9 + 0x70020005, // 0011 JMP #0018 + 0x88180106, // 0012 GETMBR R6 R0 K6 + 0x8C180D0A, // 0013 GETMET R6 R6 K10 + 0x5C200600, // 0014 MOVE R8 R3 + 0x7C180400, // 0015 CALL R6 2 + 0x50180200, // 0016 LDBOOL R6 1 0 + 0x90020A06, // 0017 SETMBR R0 K5 R6 + 0x7001FFE8, // 0018 JMP #0002 + 0x1C100500, // 0019 EQ R4 R2 K0 + 0x78120006, // 001A JMPF R4 #0022 + 0x88100105, // 001B GETMBR R4 R0 K5 + 0x78120003, // 001C JMPF R4 #0021 + 0x8C10010B, // 001D GETMET R4 R0 K11 + 0x7C100200, // 001E CALL R4 1 + 0x50100000, // 001F LDBOOL R4 0 0 + 0x90020A04, // 0020 SETMBR R0 K5 R4 + 0x80000800, // 0021 RET 0 + 0x8C10010C, // 0022 GETMET R4 R0 K12 + 0x88180106, // 0023 GETMBR R6 R0 K6 + 0x5C1C0200, // 0024 MOVE R7 R1 + 0x7C100600, // 0025 CALL R4 3 + 0x50100000, // 0026 LDBOOL R4 0 0 + 0x90020A04, // 0027 SETMBR R0 K5 R4 + 0x80000000, // 0028 RET 0 }) ) ); @@ -18203,7 +18205,7 @@ be_local_closure(class_AnimationEngine_size, /* name */ &be_const_str_solidified, ( &(const binstruction[ 4]) { /* code */ 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x88080106, // 0001 GETMBR R2 R0 K6 0x7C040200, // 0002 CALL R1 1 0x80040200, // 0003 RET 1 R1 }) @@ -18213,11 +18215,11 @@ be_local_closure(class_AnimationEngine_size, /* name */ /******************************************************************** -** Solidified function: interrupt_all +** Solidified function: _sort_animations ********************************************************************/ -be_local_closure(class_AnimationEngine_interrupt_all, /* name */ +be_local_closure(class_AnimationEngine__sort_animations, /* name */ be_nested_proto( - 3, /* nstack */ + 8, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -18226,117 +18228,42 @@ be_local_closure(class_AnimationEngine_interrupt_all, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(interrupt_all), + be_str_weak(_sort_animations), &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x8C040105, // 0000 GETMET R1 R0 K5 - 0x7C040200, // 0001 CALL R1 1 - 0x80000000, // 0002 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_AnimationEngine_tostring, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x58080007, // 0001 LDCONST R2 K7 - 0x880C0108, // 0002 GETMBR R3 R0 K8 - 0x6010000C, // 0003 GETGBL R4 G12 - 0x88140100, // 0004 GETMBR R5 R0 K0 - 0x7C100200, // 0005 CALL R4 1 - 0x88140109, // 0006 GETMBR R5 R0 K9 - 0x7C040800, // 0007 CALL R1 4 - 0x80040200, // 0008 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_strip -********************************************************************/ -be_local_closure(class_AnimationEngine_get_strip, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_strip), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040104, // 0000 GETMBR R1 R0 K4 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: remove_sequence_manager -********************************************************************/ -be_local_closure(class_AnimationEngine_remove_sequence_manager, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(remove_sequence_manager), - &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x5409FFFE, // 0000 LDINT R2 -1 - 0x580C0002, // 0001 LDCONST R3 K2 - 0x6010000C, // 0002 GETGBL R4 G12 - 0x8814010A, // 0003 GETMBR R5 R0 K10 - 0x7C100200, // 0004 CALL R4 1 - 0x14100604, // 0005 LT R4 R3 R4 - 0x78120007, // 0006 JMPF R4 #000F - 0x8810010A, // 0007 GETMBR R4 R0 K10 - 0x94100803, // 0008 GETIDX R4 R4 R3 - 0x1C100801, // 0009 EQ R4 R4 R1 - 0x78120001, // 000A JMPF R4 #000D - 0x5C080600, // 000B MOVE R2 R3 - 0x70020001, // 000C JMP #000F - 0x000C0701, // 000D ADD R3 R3 K1 - 0x7001FFF2, // 000E JMP #0002 - 0x28100502, // 000F GE R4 R2 K2 - 0x78120005, // 0010 JMPF R4 #0017 - 0x8810010A, // 0011 GETMBR R4 R0 K10 - 0x8C10090B, // 0012 GETMET R4 R4 K11 - 0x5C180400, // 0013 MOVE R6 R2 - 0x7C100400, // 0014 CALL R4 2 - 0x50100200, // 0015 LDBOOL R4 1 0 - 0x80040800, // 0016 RET 1 R4 - 0x50100000, // 0017 LDBOOL R4 0 0 - 0x80040800, // 0018 RET 1 R4 + ( &(const binstruction[33]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x88080106, // 0001 GETMBR R2 R0 K6 + 0x7C040200, // 0002 CALL R1 1 + 0x18080309, // 0003 LE R2 R1 K9 + 0x780A0000, // 0004 JMPF R2 #0006 + 0x80000400, // 0005 RET 0 + 0x58080009, // 0006 LDCONST R2 K9 + 0x140C0401, // 0007 LT R3 R2 R1 + 0x780E0016, // 0008 JMPF R3 #0020 + 0x880C0106, // 0009 GETMBR R3 R0 K6 + 0x940C0602, // 000A GETIDX R3 R3 R2 + 0x5C100400, // 000B MOVE R4 R2 + 0x24140900, // 000C GT R5 R4 K0 + 0x7816000D, // 000D JMPF R5 #001C + 0x04140909, // 000E SUB R5 R4 K9 + 0x88180106, // 000F GETMBR R6 R0 K6 + 0x94140C05, // 0010 GETIDX R5 R6 R5 + 0x88140B0D, // 0011 GETMBR R5 R5 K13 + 0x8818070D, // 0012 GETMBR R6 R3 K13 + 0x14140A06, // 0013 LT R5 R5 R6 + 0x78160006, // 0014 JMPF R5 #001C + 0x88140106, // 0015 GETMBR R5 R0 K6 + 0x04180909, // 0016 SUB R6 R4 K9 + 0x881C0106, // 0017 GETMBR R7 R0 K6 + 0x94180E06, // 0018 GETIDX R6 R7 R6 + 0x98140806, // 0019 SETIDX R5 R4 R6 + 0x04100909, // 001A SUB R4 R4 K9 + 0x7001FFEF, // 001B JMP #000C + 0x88140106, // 001C GETMBR R5 R0 K6 + 0x98140803, // 001D SETIDX R5 R4 R3 + 0x00080509, // 001E ADD R2 R2 K9 + 0x7001FFE6, // 001F JMP #0007 + 0x80000000, // 0020 RET 0 }) ) ); @@ -18360,8 +18287,8 @@ be_local_closure(class_AnimationEngine_add_sequence_manager, /* name */ be_str_weak(add_sequence_manager), &be_const_str_solidified, ( &(const binstruction[ 5]) { /* code */ - 0x8808010A, // 0000 GETMBR R2 R0 K10 - 0x8C08050C, // 0001 GETMET R2 R2 K12 + 0x8808010E, // 0000 GETMBR R2 R0 K14 + 0x8C08050F, // 0001 GETMET R2 R2 K15 0x5C100200, // 0002 MOVE R4 R1 0x7C080400, // 0003 CALL R2 2 0x80040000, // 0004 RET 1 R0 @@ -18388,22 +18315,22 @@ be_local_closure(class_AnimationEngine__output_to_strip, /* name */ be_str_weak(_output_to_strip), &be_const_str_solidified, ( &(const binstruction[18]) { /* code */ - 0x58040002, // 0000 LDCONST R1 K2 - 0x88080109, // 0001 GETMBR R2 R0 K9 + 0x58040000, // 0000 LDCONST R1 K0 + 0x88080101, // 0001 GETMBR R2 R0 K1 0x14080202, // 0002 LT R2 R1 R2 0x780A0009, // 0003 JMPF R2 #000E - 0x88080104, // 0004 GETMBR R2 R0 K4 - 0x8C08050D, // 0005 GETMET R2 R2 K13 + 0x88080110, // 0004 GETMBR R2 R0 K16 + 0x8C080511, // 0005 GETMET R2 R2 K17 0x5C100200, // 0006 MOVE R4 R1 - 0x8814010E, // 0007 GETMBR R5 R0 K14 - 0x8C140B0F, // 0008 GETMET R5 R5 K15 + 0x88140102, // 0007 GETMBR R5 R0 K2 + 0x8C140B12, // 0008 GETMET R5 R5 K18 0x5C1C0200, // 0009 MOVE R7 R1 0x7C140400, // 000A CALL R5 2 0x7C080600, // 000B CALL R2 3 - 0x00040301, // 000C ADD R1 R1 K1 + 0x00040309, // 000C ADD R1 R1 K9 0x7001FFF2, // 000D JMP #0001 - 0x88080104, // 000E GETMBR R2 R0 K4 - 0x8C080506, // 000F GETMET R2 R2 K6 + 0x88080110, // 000E GETMBR R2 R0 K16 + 0x8C080513, // 000F GETMET R2 R2 K19 0x7C080200, // 0010 CALL R2 1 0x80000000, // 0011 RET 0 }) @@ -18412,6 +18339,424 @@ be_local_closure(class_AnimationEngine__output_to_strip, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: check_strip_length +********************************************************************/ +be_local_closure(class_AnimationEngine_check_strip_length, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(check_strip_length), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88040110, // 0000 GETMBR R1 R0 K16 + 0x8C040314, // 0001 GETMET R1 R1 K20 + 0x7C040200, // 0002 CALL R1 1 + 0x88080101, // 0003 GETMBR R2 R0 K1 + 0x20080202, // 0004 NE R2 R1 R2 + 0x780A0004, // 0005 JMPF R2 #000B + 0x8C080115, // 0006 GETMET R2 R0 K21 + 0x5C100200, // 0007 MOVE R4 R1 + 0x7C080400, // 0008 CALL R2 2 + 0x50080200, // 0009 LDBOOL R2 1 0 + 0x80040400, // 000A RET 1 R2 + 0x50080000, // 000B LDBOOL R2 0 0 + 0x80040400, // 000C RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: resume_after +********************************************************************/ +be_local_closure(class_AnimationEngine_resume_after, /* name */ + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(resume_after), + &be_const_str_solidified, + ( &(const binstruction[ 3]) { /* code */ + 0x8C080116, // 0000 GETMET R2 R0 K22 + 0x7C080200, // 0001 CALL R2 1 + 0x80000000, // 0002 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add +********************************************************************/ +be_local_closure(class_AnimationEngine_add, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(add), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x6008000F, // 0000 GETGBL R2 G15 + 0x5C0C0200, // 0001 MOVE R3 R1 + 0xB8122E00, // 0002 GETNGBL R4 K23 + 0x88100918, // 0003 GETMBR R4 R4 K24 + 0x7C080400, // 0004 CALL R2 2 + 0x780A0004, // 0005 JMPF R2 #000B + 0x8C080119, // 0006 GETMET R2 R0 K25 + 0x5C100200, // 0007 MOVE R4 R1 + 0x7C080400, // 0008 CALL R2 2 + 0x80040400, // 0009 RET 1 R2 + 0x70020013, // 000A JMP #001F + 0x6008000F, // 000B GETGBL R2 G15 + 0x5C0C0200, // 000C MOVE R3 R1 + 0xB8122E00, // 000D GETNGBL R4 K23 + 0x88100917, // 000E GETMBR R4 R4 K23 + 0x7C080400, // 000F CALL R2 2 + 0x780A0004, // 0010 JMPF R2 #0016 + 0x8C08011A, // 0011 GETMET R2 R0 K26 + 0x5C100200, // 0012 MOVE R4 R1 + 0x7C080400, // 0013 CALL R2 2 + 0x80040000, // 0014 RET 1 R0 + 0x70020008, // 0015 JMP #001F + 0xA40A3600, // 0016 IMPORT R2 K27 + 0x8C0C051C, // 0017 GETMET R3 R2 K28 + 0x5C140200, // 0018 MOVE R5 R1 + 0x7C0C0400, // 0019 CALL R3 2 + 0x60100018, // 001A GETGBL R4 G24 + 0x5814001D, // 001B LDCONST R5 K29 + 0x5C180600, // 001C MOVE R6 R3 + 0x7C100400, // 001D CALL R4 2 + 0xB0063C04, // 001E RAISE 1 K30 R4 + 0x80000000, // 001F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _render_animations +********************************************************************/ +be_local_closure(class_AnimationEngine__render_animations, /* name */ + be_nested_proto( + 10, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_render_animations), + &be_const_str_solidified, + ( &(const binstruction[31]) { /* code */ + 0x880C0102, // 0000 GETMBR R3 R0 K2 + 0x8C0C071F, // 0001 GETMET R3 R3 K31 + 0x7C0C0200, // 0002 CALL R3 1 + 0x580C0000, // 0003 LDCONST R3 K0 + 0x6010000C, // 0004 GETGBL R4 G12 + 0x5C140200, // 0005 MOVE R5 R1 + 0x7C100200, // 0006 CALL R4 1 + 0x14100604, // 0007 LT R4 R3 R4 + 0x78120012, // 0008 JMPF R4 #001C + 0x94100203, // 0009 GETIDX R4 R1 R3 + 0x88140104, // 000A GETMBR R5 R0 K4 + 0x8C140B1F, // 000B GETMET R5 R5 K31 + 0x7C140200, // 000C CALL R5 1 + 0x8C140920, // 000D GETMET R5 R4 K32 + 0x881C0104, // 000E GETMBR R7 R0 K4 + 0x5C200400, // 000F MOVE R8 R2 + 0x7C140600, // 0010 CALL R5 3 + 0x78160007, // 0011 JMPF R5 #001A + 0x8C180921, // 0012 GETMET R6 R4 K33 + 0x88200104, // 0013 GETMBR R8 R0 K4 + 0x5C240400, // 0014 MOVE R9 R2 + 0x7C180600, // 0015 CALL R6 3 + 0x88180102, // 0016 GETMBR R6 R0 K2 + 0x8C180D22, // 0017 GETMET R6 R6 K34 + 0x88200104, // 0018 GETMBR R8 R0 K4 + 0x7C180400, // 0019 CALL R6 2 + 0x000C0709, // 001A ADD R3 R3 K9 + 0x7001FFE7, // 001B JMP #0004 + 0x8C100123, // 001C GETMET R4 R0 K35 + 0x7C100200, // 001D CALL R4 1 + 0x80000000, // 001E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _clear_strip +********************************************************************/ +be_local_closure(class_AnimationEngine__clear_strip, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_clear_strip), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x88040110, // 0000 GETMBR R1 R0 K16 + 0x8C04031F, // 0001 GETMET R1 R1 K31 + 0x7C040200, // 0002 CALL R1 1 + 0x88040110, // 0003 GETMBR R1 R0 K16 + 0x8C040313, // 0004 GETMET R1 R1 K19 + 0x7C040200, // 0005 CALL R1 1 + 0x80000000, // 0006 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: clear +********************************************************************/ +be_local_closure(class_AnimationEngine_clear, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(clear), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x60040012, // 0000 GETGBL R1 G18 + 0x7C040000, // 0001 CALL R1 0 + 0x90020C01, // 0002 SETMBR R0 K6 R1 + 0x58040000, // 0003 LDCONST R1 K0 + 0x6008000C, // 0004 GETGBL R2 G12 + 0x880C010E, // 0005 GETMBR R3 R0 K14 + 0x7C080200, // 0006 CALL R2 1 + 0x14080202, // 0007 LT R2 R1 R2 + 0x780A0005, // 0008 JMPF R2 #000F + 0x8808010E, // 0009 GETMBR R2 R0 K14 + 0x94080401, // 000A GETIDX R2 R2 R1 + 0x8C080524, // 000B GETMET R2 R2 K36 + 0x7C080200, // 000C CALL R2 1 + 0x00040309, // 000D ADD R1 R1 K9 + 0x7001FFF4, // 000E JMP #0004 + 0x60080012, // 000F GETGBL R2 G18 + 0x7C080000, // 0010 CALL R2 0 + 0x90021C02, // 0011 SETMBR R0 K14 R2 + 0x50080200, // 0012 LDBOOL R2 1 0 + 0x90020A02, // 0013 SETMBR R0 K5 R2 + 0x80040000, // 0014 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: interrupt_animation +********************************************************************/ +be_local_closure(class_AnimationEngine_interrupt_animation, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(interrupt_animation), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x58080000, // 0000 LDCONST R2 K0 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x88100106, // 0002 GETMBR R4 R0 K6 + 0x7C0C0200, // 0003 CALL R3 1 + 0x140C0403, // 0004 LT R3 R2 R3 + 0x780E0012, // 0005 JMPF R3 #0019 + 0x880C0106, // 0006 GETMBR R3 R0 K6 + 0x940C0602, // 0007 GETIDX R3 R3 R2 + 0x8810071C, // 0008 GETMBR R4 R3 K28 + 0x4C140000, // 0009 LDNIL R5 + 0x20100805, // 000A NE R4 R4 R5 + 0x7812000A, // 000B JMPF R4 #0017 + 0x8810071C, // 000C GETMBR R4 R3 K28 + 0x1C100801, // 000D EQ R4 R4 R1 + 0x78120007, // 000E JMPF R4 #0017 + 0x8C100724, // 000F GETMET R4 R3 K36 + 0x5C180600, // 0010 MOVE R6 R3 + 0x7C100400, // 0011 CALL R4 2 + 0x88100106, // 0012 GETMBR R4 R0 K6 + 0x8C10090A, // 0013 GETMET R4 R4 K10 + 0x5C180400, // 0014 MOVE R6 R2 + 0x7C100400, // 0015 CALL R4 2 + 0x80000800, // 0016 RET 0 + 0x00080509, // 0017 ADD R2 R2 K9 + 0x7001FFE7, // 0018 JMP #0001 + 0x80000000, // 0019 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: interrupt_current +********************************************************************/ +be_local_closure(class_AnimationEngine_interrupt_current, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(interrupt_current), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x60040010, // 0000 GETGBL R1 G16 + 0x88080106, // 0001 GETMBR R2 R0 K6 + 0x7C040200, // 0002 CALL R1 1 + 0xA8020006, // 0003 EXBLK 0 #000B + 0x5C080200, // 0004 MOVE R2 R1 + 0x7C080000, // 0005 CALL R2 0 + 0x880C0508, // 0006 GETMBR R3 R2 K8 + 0x780E0001, // 0007 JMPF R3 #000A + 0x8C0C0524, // 0008 GETMET R3 R2 K36 + 0x7C0C0200, // 0009 CALL R3 1 + 0x7001FFF8, // 000A JMP #0004 + 0x58040025, // 000B LDCONST R1 K37 + 0xAC040200, // 000C CATCH R1 1 0 + 0xB0080000, // 000D RAISE 2 R0 R0 + 0x80000000, // 000E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: stop +********************************************************************/ +be_local_closure(class_AnimationEngine_stop, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(stop), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88040108, // 0000 GETMBR R1 R0 K8 + 0x78060009, // 0001 JMPF R1 #000C + 0x50040000, // 0002 LDBOOL R1 0 0 + 0x90021001, // 0003 SETMBR R0 K8 R1 + 0x88040126, // 0004 GETMBR R1 R0 K38 + 0x4C080000, // 0005 LDNIL R2 + 0x20040202, // 0006 NE R1 R1 R2 + 0x78060003, // 0007 JMPF R1 #000C + 0xB8064E00, // 0008 GETNGBL R1 K39 + 0x8C040328, // 0009 GETMET R1 R1 K40 + 0x880C0126, // 000A GETMBR R3 R0 K38 + 0x7C040400, // 000B CALL R1 2 + 0x80040000, // 000C RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: remove_animation +********************************************************************/ +be_local_closure(class_AnimationEngine_remove_animation, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(remove_animation), + &be_const_str_solidified, + ( &(const binstruction[27]) { /* code */ + 0x5409FFFE, // 0000 LDINT R2 -1 + 0x580C0000, // 0001 LDCONST R3 K0 + 0x6010000C, // 0002 GETGBL R4 G12 + 0x88140106, // 0003 GETMBR R5 R0 K6 + 0x7C100200, // 0004 CALL R4 1 + 0x14100604, // 0005 LT R4 R3 R4 + 0x78120007, // 0006 JMPF R4 #000F + 0x88100106, // 0007 GETMBR R4 R0 K6 + 0x94100803, // 0008 GETIDX R4 R4 R3 + 0x1C100801, // 0009 EQ R4 R4 R1 + 0x78120001, // 000A JMPF R4 #000D + 0x5C080600, // 000B MOVE R2 R3 + 0x70020001, // 000C JMP #000F + 0x000C0709, // 000D ADD R3 R3 K9 + 0x7001FFF2, // 000E JMP #0002 + 0x28100500, // 000F GE R4 R2 K0 + 0x78120007, // 0010 JMPF R4 #0019 + 0x88100106, // 0011 GETMBR R4 R0 K6 + 0x8C10090A, // 0012 GETMET R4 R4 K10 + 0x5C180400, // 0013 MOVE R6 R2 + 0x7C100400, // 0014 CALL R4 2 + 0x50100200, // 0015 LDBOOL R4 1 0 + 0x90020A04, // 0016 SETMBR R0 K5 R4 + 0x50100200, // 0017 LDBOOL R4 1 0 + 0x80040800, // 0018 RET 1 R4 + 0x50100000, // 0019 LDBOOL R4 0 0 + 0x80040800, // 001A RET 1 R4 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: init ********************************************************************/ @@ -18432,35 +18777,35 @@ be_local_closure(class_AnimationEngine_init, /* name */ 0x4C080000, // 0000 LDNIL R2 0x1C080202, // 0001 EQ R2 R1 R2 0x780A0000, // 0002 JMPF R2 #0004 - 0xB0062111, // 0003 RAISE 1 K16 K17 - 0x90020801, // 0004 SETMBR R0 K4 R1 - 0x8C080312, // 0005 GETMET R2 R1 K18 + 0xB006532A, // 0003 RAISE 1 K41 K42 + 0x90022001, // 0004 SETMBR R0 K16 R1 + 0x8C080314, // 0005 GETMET R2 R1 K20 0x7C080200, // 0006 CALL R2 1 - 0x90021202, // 0007 SETMBR R0 K9 R2 + 0x90020202, // 0007 SETMBR R0 K1 R2 0x60080012, // 0008 GETGBL R2 G18 0x7C080000, // 0009 CALL R2 0 - 0x90020002, // 000A SETMBR R0 K0 R2 + 0x90020C02, // 000A SETMBR R0 K6 R2 0x60080012, // 000B GETGBL R2 G18 0x7C080000, // 000C CALL R2 0 - 0x90021402, // 000D SETMBR R0 K10 R2 - 0xB80A2600, // 000E GETNGBL R2 K19 - 0x8C08050E, // 000F GETMET R2 R2 K14 - 0x88100109, // 0010 GETMBR R4 R0 K9 + 0x90021C02, // 000D SETMBR R0 K14 R2 + 0xB80A2E00, // 000E GETNGBL R2 K23 + 0x8C080502, // 000F GETMET R2 R2 K2 + 0x88100101, // 0010 GETMBR R4 R0 K1 0x7C080400, // 0011 CALL R2 2 - 0x90021C02, // 0012 SETMBR R0 K14 R2 - 0xB80A2600, // 0013 GETNGBL R2 K19 - 0x8C08050E, // 0014 GETMET R2 R2 K14 - 0x88100109, // 0015 GETMBR R4 R0 K9 + 0x90020402, // 0012 SETMBR R0 K2 R2 + 0xB80A2E00, // 0013 GETNGBL R2 K23 + 0x8C080502, // 0014 GETMET R2 R2 K2 + 0x88100101, // 0015 GETMBR R4 R0 K1 0x7C080400, // 0016 CALL R2 2 - 0x90022802, // 0017 SETMBR R0 K20 R2 + 0x90020802, // 0017 SETMBR R0 K4 R2 0x50080000, // 0018 LDBOOL R2 0 0 0x90021002, // 0019 SETMBR R0 K8 R2 - 0x90022B02, // 001A SETMBR R0 K21 K2 - 0x90022D02, // 001B SETMBR R0 K22 K2 + 0x90025700, // 001A SETMBR R0 K43 K0 + 0x90025900, // 001B SETMBR R0 K44 K0 0x4C080000, // 001C LDNIL R2 - 0x90022E02, // 001D SETMBR R0 K23 R2 + 0x90024C02, // 001D SETMBR R0 K38 R2 0x50080000, // 001E LDBOOL R2 0 0 - 0x90023002, // 001F SETMBR R0 K24 R2 + 0x90020A02, // 001F SETMBR R0 K5 R2 0x80000000, // 0020 RET 0 }) ) @@ -18469,107 +18814,9 @@ be_local_closure(class_AnimationEngine_init, /* name */ /******************************************************************** -** Solidified function: clear +** Solidified function: on_tick ********************************************************************/ -be_local_closure(class_AnimationEngine_clear, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(clear), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x60040012, // 0000 GETGBL R1 G18 - 0x7C040000, // 0001 CALL R1 0 - 0x90020001, // 0002 SETMBR R0 K0 R1 - 0x58040002, // 0003 LDCONST R1 K2 - 0x6008000C, // 0004 GETGBL R2 G12 - 0x880C010A, // 0005 GETMBR R3 R0 K10 - 0x7C080200, // 0006 CALL R2 1 - 0x14080202, // 0007 LT R2 R1 R2 - 0x780A0005, // 0008 JMPF R2 #000F - 0x8808010A, // 0009 GETMBR R2 R0 K10 - 0x94080401, // 000A GETIDX R2 R2 R1 - 0x8C080519, // 000B GETMET R2 R2 K25 - 0x7C080200, // 000C CALL R2 1 - 0x00040301, // 000D ADD R1 R1 K1 - 0x7001FFF4, // 000E JMP #0004 - 0x60080012, // 000F GETGBL R2 G18 - 0x7C080000, // 0010 CALL R2 0 - 0x90021402, // 0011 SETMBR R0 K10 R2 - 0x50080200, // 0012 LDBOOL R2 1 0 - 0x90023002, // 0013 SETMBR R0 K24 R2 - 0x80040000, // 0014 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _render_animations -********************************************************************/ -be_local_closure(class_AnimationEngine__render_animations, /* name */ - be_nested_proto( - 10, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_render_animations), - &be_const_str_solidified, - ( &(const binstruction[31]) { /* code */ - 0x880C010E, // 0000 GETMBR R3 R0 K14 - 0x8C0C0705, // 0001 GETMET R3 R3 K5 - 0x7C0C0200, // 0002 CALL R3 1 - 0x580C0002, // 0003 LDCONST R3 K2 - 0x6010000C, // 0004 GETGBL R4 G12 - 0x5C140200, // 0005 MOVE R5 R1 - 0x7C100200, // 0006 CALL R4 1 - 0x14100604, // 0007 LT R4 R3 R4 - 0x78120012, // 0008 JMPF R4 #001C - 0x94100203, // 0009 GETIDX R4 R1 R3 - 0x88140114, // 000A GETMBR R5 R0 K20 - 0x8C140B05, // 000B GETMET R5 R5 K5 - 0x7C140200, // 000C CALL R5 1 - 0x8C14091A, // 000D GETMET R5 R4 K26 - 0x881C0114, // 000E GETMBR R7 R0 K20 - 0x5C200400, // 000F MOVE R8 R2 - 0x7C140600, // 0010 CALL R5 3 - 0x78160007, // 0011 JMPF R5 #001A - 0x8C18091B, // 0012 GETMET R6 R4 K27 - 0x88200114, // 0013 GETMBR R8 R0 K20 - 0x5C240400, // 0014 MOVE R9 R2 - 0x7C180600, // 0015 CALL R6 3 - 0x8818010E, // 0016 GETMBR R6 R0 K14 - 0x8C180D1C, // 0017 GETMET R6 R6 K28 - 0x88200114, // 0018 GETMBR R8 R0 K20 - 0x7C180400, // 0019 CALL R6 2 - 0x000C0701, // 001A ADD R3 R3 K1 - 0x7001FFE7, // 001B JMP #0004 - 0x8C10011D, // 001C GETMET R4 R0 K29 - 0x7C100200, // 001D CALL R4 1 - 0x80000000, // 001E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: interrupt_animation -********************************************************************/ -be_local_closure(class_AnimationEngine_interrupt_animation, /* name */ +be_local_closure(class_AnimationEngine_on_tick, /* name */ be_nested_proto( 7, /* nstack */ 2, /* argc */ @@ -18580,35 +18827,63 @@ be_local_closure(class_AnimationEngine_interrupt_animation, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(interrupt_animation), + be_str_weak(on_tick), &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x58080002, // 0000 LDCONST R2 K2 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x88100100, // 0002 GETMBR R4 R0 K0 - 0x7C0C0200, // 0003 CALL R3 1 - 0x140C0403, // 0004 LT R3 R2 R3 - 0x780E0012, // 0005 JMPF R3 #0019 - 0x880C0100, // 0006 GETMBR R3 R0 K0 - 0x940C0602, // 0007 GETIDX R3 R3 R2 - 0x8810071E, // 0008 GETMBR R4 R3 K30 - 0x4C140000, // 0009 LDNIL R5 - 0x20100805, // 000A NE R4 R4 R5 - 0x7812000A, // 000B JMPF R4 #0017 - 0x8810071E, // 000C GETMBR R4 R3 K30 - 0x1C100801, // 000D EQ R4 R4 R1 - 0x78120007, // 000E JMPF R4 #0017 - 0x8C100719, // 000F GETMET R4 R3 K25 - 0x5C180600, // 0010 MOVE R6 R3 - 0x7C100400, // 0011 CALL R4 2 - 0x88100100, // 0012 GETMBR R4 R0 K0 - 0x8C10090B, // 0013 GETMET R4 R4 K11 - 0x5C180400, // 0014 MOVE R6 R2 - 0x7C100400, // 0015 CALL R4 2 - 0x80000800, // 0016 RET 0 - 0x00080501, // 0017 ADD R2 R2 K1 - 0x7001FFE7, // 0018 JMP #0001 - 0x80000000, // 0019 RET 0 + ( &(const binstruction[54]) { /* code */ + 0x88080108, // 0000 GETMBR R2 R0 K8 + 0x740A0001, // 0001 JMPT R2 #0004 + 0x50080000, // 0002 LDBOOL R2 0 0 + 0x80040400, // 0003 RET 1 R2 + 0x4C080000, // 0004 LDNIL R2 + 0x1C080202, // 0005 EQ R2 R1 R2 + 0x780A0003, // 0006 JMPF R2 #000B + 0xB80A4E00, // 0007 GETNGBL R2 K39 + 0x8C08052D, // 0008 GETMET R2 R2 K45 + 0x7C080200, // 0009 CALL R2 1 + 0x5C040400, // 000A MOVE R1 R2 + 0x8C08012E, // 000B GETMET R2 R0 K46 + 0x7C080200, // 000C CALL R2 1 + 0x90025801, // 000D SETMBR R0 K44 R1 + 0x8808012B, // 000E GETMBR R2 R0 K43 + 0x04080202, // 000F SUB R2 R1 R2 + 0x540E0004, // 0010 LDINT R3 5 + 0x140C0403, // 0011 LT R3 R2 R3 + 0x780E0001, // 0012 JMPF R3 #0015 + 0x500C0200, // 0013 LDBOOL R3 1 0 + 0x80040600, // 0014 RET 1 R3 + 0x90025601, // 0015 SETMBR R0 K43 R1 + 0x880C0110, // 0016 GETMBR R3 R0 K16 + 0x880C072F, // 0017 GETMBR R3 R3 K47 + 0x4C100000, // 0018 LDNIL R4 + 0x200C0604, // 0019 NE R3 R3 R4 + 0x780E0005, // 001A JMPF R3 #0021 + 0x880C0110, // 001B GETMBR R3 R0 K16 + 0x8C0C072F, // 001C GETMET R3 R3 K47 + 0x7C0C0200, // 001D CALL R3 1 + 0x740E0001, // 001E JMPT R3 #0021 + 0x500C0200, // 001F LDBOOL R3 1 0 + 0x80040600, // 0020 RET 1 R3 + 0x580C0000, // 0021 LDCONST R3 K0 + 0x6010000C, // 0022 GETGBL R4 G12 + 0x8814010E, // 0023 GETMBR R5 R0 K14 + 0x7C100200, // 0024 CALL R4 1 + 0x14100604, // 0025 LT R4 R3 R4 + 0x78120006, // 0026 JMPF R4 #002E + 0x8810010E, // 0027 GETMBR R4 R0 K14 + 0x94100803, // 0028 GETIDX R4 R4 R3 + 0x8C100907, // 0029 GETMET R4 R4 K7 + 0x5C180200, // 002A MOVE R6 R1 + 0x7C100400, // 002B CALL R4 2 + 0x000C0709, // 002C ADD R3 R3 K9 + 0x7001FFF3, // 002D JMP #0022 + 0x8C100130, // 002E GETMET R4 R0 K48 + 0x5C180200, // 002F MOVE R6 R1 + 0x7C100400, // 0030 CALL R4 2 + 0x8C100131, // 0031 GETMET R4 R0 K49 + 0x5C180200, // 0032 MOVE R6 R1 + 0x7C100400, // 0033 CALL R4 2 + 0x50100200, // 0034 LDBOOL R4 1 0 + 0x80040800, // 0035 RET 1 R4 }) ) ); @@ -18616,11 +18891,70 @@ be_local_closure(class_AnimationEngine_interrupt_animation, /* name */ /******************************************************************** -** Solidified function: _update_and_render +** Solidified function: is_active ********************************************************************/ -be_local_closure(class_AnimationEngine__update_and_render, /* name */ +be_local_closure(class_AnimationEngine_is_active, /* name */ be_nested_proto( - 9, /* nstack */ + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(is_active), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040108, // 0000 GETMBR R1 R0 K8 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: cleanup +********************************************************************/ +be_local_closure(class_AnimationEngine_cleanup, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(cleanup), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C040124, // 0000 GETMET R1 R0 K36 + 0x7C040200, // 0001 CALL R1 1 + 0x8C04011F, // 0002 GETMET R1 R0 K31 + 0x7C040200, // 0003 CALL R1 1 + 0x4C040000, // 0004 LDNIL R1 + 0x90020401, // 0005 SETMBR R0 K2 R1 + 0x4C040000, // 0006 LDNIL R1 + 0x90020801, // 0007 SETMBR R0 K4 R1 + 0x4C040000, // 0008 LDNIL R1 + 0x90022001, // 0009 SETMBR R0 K16 R1 + 0x80000000, // 000A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: remove_sequence_manager +********************************************************************/ +be_local_closure(class_AnimationEngine_remove_sequence_manager, /* name */ + be_nested_proto( + 7, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -18629,50 +18963,34 @@ be_local_closure(class_AnimationEngine__update_and_render, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_update_and_render), + be_str_weak(remove_sequence_manager), &be_const_str_solidified, - ( &(const binstruction[41]) { /* code */ - 0x58080002, // 0000 LDCONST R2 K2 - 0x580C0002, // 0001 LDCONST R3 K2 + ( &(const binstruction[25]) { /* code */ + 0x5409FFFE, // 0000 LDINT R2 -1 + 0x580C0000, // 0001 LDCONST R3 K0 0x6010000C, // 0002 GETGBL R4 G12 - 0x88140100, // 0003 GETMBR R5 R0 K0 + 0x8814010E, // 0003 GETMBR R5 R0 K14 0x7C100200, // 0004 CALL R4 1 0x14100604, // 0005 LT R4 R3 R4 - 0x78120011, // 0006 JMPF R4 #0019 - 0x88100100, // 0007 GETMBR R4 R0 K0 + 0x78120007, // 0006 JMPF R4 #000F + 0x8810010E, // 0007 GETMBR R4 R0 K14 0x94100803, // 0008 GETIDX R4 R4 R3 - 0x8C14091F, // 0009 GETMET R5 R4 K31 - 0x5C1C0200, // 000A MOVE R7 R1 - 0x7C140400, // 000B CALL R5 2 - 0x78160004, // 000C JMPF R5 #0012 - 0x88180908, // 000D GETMBR R6 R4 K8 - 0x781A0002, // 000E JMPF R6 #0012 - 0x00080501, // 000F ADD R2 R2 K1 - 0x000C0701, // 0010 ADD R3 R3 K1 - 0x70020005, // 0011 JMP #0018 - 0x88180100, // 0012 GETMBR R6 R0 K0 - 0x8C180D0B, // 0013 GETMET R6 R6 K11 - 0x5C200600, // 0014 MOVE R8 R3 - 0x7C180400, // 0015 CALL R6 2 - 0x50180200, // 0016 LDBOOL R6 1 0 - 0x90023006, // 0017 SETMBR R0 K24 R6 - 0x7001FFE8, // 0018 JMP #0002 - 0x1C100502, // 0019 EQ R4 R2 K2 - 0x78120006, // 001A JMPF R4 #0022 - 0x88100118, // 001B GETMBR R4 R0 K24 - 0x78120003, // 001C JMPF R4 #0021 - 0x8C100120, // 001D GETMET R4 R0 K32 - 0x7C100200, // 001E CALL R4 1 - 0x50100000, // 001F LDBOOL R4 0 0 - 0x90023004, // 0020 SETMBR R0 K24 R4 - 0x80000800, // 0021 RET 0 - 0x8C100121, // 0022 GETMET R4 R0 K33 - 0x88180100, // 0023 GETMBR R6 R0 K0 - 0x5C1C0200, // 0024 MOVE R7 R1 - 0x7C100600, // 0025 CALL R4 3 - 0x50100000, // 0026 LDBOOL R4 0 0 - 0x90023004, // 0027 SETMBR R0 K24 R4 - 0x80000000, // 0028 RET 0 + 0x1C100801, // 0009 EQ R4 R4 R1 + 0x78120001, // 000A JMPF R4 #000D + 0x5C080600, // 000B MOVE R2 R3 + 0x70020001, // 000C JMP #000F + 0x000C0709, // 000D ADD R3 R3 K9 + 0x7001FFF2, // 000E JMP #0002 + 0x28100500, // 000F GE R4 R2 K0 + 0x78120005, // 0010 JMPF R4 #0017 + 0x8810010E, // 0011 GETMBR R4 R0 K14 + 0x8C10090A, // 0012 GETMET R4 R4 K10 + 0x5C180400, // 0013 MOVE R6 R2 + 0x7C100400, // 0014 CALL R4 2 + 0x50100200, // 0015 LDBOOL R4 1 0 + 0x80040800, // 0016 RET 1 R4 + 0x50100000, // 0017 LDBOOL R4 0 0 + 0x80040800, // 0018 RET 1 R4 }) ) ); @@ -18680,9 +18998,93 @@ be_local_closure(class_AnimationEngine__update_and_render, /* name */ /******************************************************************** -** Solidified function: resume_after +** Solidified function: get_strip_length ********************************************************************/ -be_local_closure(class_AnimationEngine_resume_after, /* name */ +be_local_closure(class_AnimationEngine_get_strip_length, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(get_strip_length), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x8C04012E, // 0000 GETMET R1 R0 K46 + 0x7C040200, // 0001 CALL R1 1 + 0x88040101, // 0002 GETMBR R1 R0 K1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_strip +********************************************************************/ +be_local_closure(class_AnimationEngine_get_strip, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(get_strip), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040110, // 0000 GETMBR R1 R0 K16 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_AnimationEngine_tostring, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x58080032, // 0001 LDCONST R2 K50 + 0x880C0108, // 0002 GETMBR R3 R0 K8 + 0x6010000C, // 0003 GETGBL R4 G12 + 0x88140106, // 0004 GETMBR R5 R0 K6 + 0x7C100200, // 0005 CALL R4 1 + 0x88140101, // 0006 GETMBR R5 R0 K1 + 0x7C040800, // 0007 CALL R1 4 + 0x80040200, // 0008 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_events +********************************************************************/ +be_local_closure(class_AnimationEngine__process_events, /* name */ be_nested_proto( 4, /* nstack */ 2, /* argc */ @@ -18693,11 +19095,44 @@ be_local_closure(class_AnimationEngine_resume_after, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(resume_after), + be_str_weak(_process_events), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0xB80A2E00, // 0000 GETNGBL R2 K23 + 0x88080533, // 0001 GETMBR R2 R2 K51 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0003, // 0004 JMPF R2 #0009 + 0xB80A2E00, // 0005 GETNGBL R2 K23 + 0x88080533, // 0006 GETMBR R2 R2 K51 + 0x8C080534, // 0007 GETMET R2 R2 K52 + 0x7C080200, // 0008 CALL R2 1 + 0x80000000, // 0009 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: interrupt_all +********************************************************************/ +be_local_closure(class_AnimationEngine_interrupt_all, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(interrupt_all), &be_const_str_solidified, ( &(const binstruction[ 3]) { /* code */ - 0x8C080122, // 0000 GETMET R2 R0 K34 - 0x7C080200, // 0001 CALL R2 1 + 0x8C04011F, // 0000 GETMET R1 R0 K31 + 0x7C040200, // 0001 CALL R1 1 0x80000000, // 0002 RET 0 }) ) @@ -18705,6 +19140,83 @@ be_local_closure(class_AnimationEngine_resume_after, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: resume +********************************************************************/ +be_local_closure(class_AnimationEngine_resume, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(resume), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88040108, // 0000 GETMBR R1 R0 K8 + 0x74060001, // 0001 JMPT R1 #0004 + 0x8C040135, // 0002 GETMET R1 R0 K53 + 0x7C040200, // 0003 CALL R1 1 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add_animation +********************************************************************/ +be_local_closure(class_AnimationEngine_add_animation, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(add_animation), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x88080106, // 0000 GETMBR R2 R0 K6 + 0x8C080536, // 0001 GETMET R2 R2 K54 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x1C080403, // 0005 EQ R2 R2 R3 + 0x780A000F, // 0006 JMPF R2 #0017 + 0x88080106, // 0007 GETMBR R2 R0 K6 + 0x8C08050F, // 0008 GETMET R2 R2 K15 + 0x5C100200, // 0009 MOVE R4 R1 + 0x7C080400, // 000A CALL R2 2 + 0x8C080137, // 000B GETMET R2 R0 K55 + 0x7C080200, // 000C CALL R2 1 + 0x88080108, // 000D GETMBR R2 R0 K8 + 0x780A0002, // 000E JMPF R2 #0012 + 0x8C080335, // 000F GETMET R2 R1 K53 + 0x8810012C, // 0010 GETMBR R4 R0 K44 + 0x7C080400, // 0011 CALL R2 2 + 0x50080200, // 0012 LDBOOL R2 1 0 + 0x90020A02, // 0013 SETMBR R0 K5 R2 + 0x50080200, // 0014 LDBOOL R2 1 0 + 0x80040400, // 0015 RET 1 R2 + 0x70020001, // 0016 JMP #0019 + 0x50080000, // 0017 LDBOOL R2 0 0 + 0x80040400, // 0018 RET 1 R2 + 0x80000000, // 0019 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: start ********************************************************************/ @@ -18745,556 +19257,55 @@ be_local_closure(class_AnimationEngine_start, /* name */ &be_ktab_class_AnimationEngine, /* shared constants */ be_str_weak(start), &be_const_str_solidified, - ( &(const binstruction[51]) { /* code */ + ( &(const binstruction[48]) { /* code */ 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x7406002E, // 0001 JMPT R1 #0031 - 0x50040200, // 0002 LDBOOL R1 1 0 - 0x90021001, // 0003 SETMBR R0 K8 R1 - 0xB8064600, // 0004 GETNGBL R1 K35 - 0x8C040324, // 0005 GETMET R1 R1 K36 - 0x7C040200, // 0006 CALL R1 1 + 0x7406002B, // 0001 JMPT R1 #002E + 0xB8064E00, // 0002 GETNGBL R1 K39 + 0x8C04032D, // 0003 GETMET R1 R1 K45 + 0x7C040200, // 0004 CALL R1 1 + 0x50080200, // 0005 LDBOOL R2 1 0 + 0x90021002, // 0006 SETMBR R0 K8 R2 0x540A0009, // 0007 LDINT R2 10 - 0x04040202, // 0008 SUB R1 R1 R2 - 0x90022A01, // 0009 SETMBR R0 K21 R1 - 0x88040117, // 000A GETMBR R1 R0 K23 - 0x4C080000, // 000B LDNIL R2 - 0x1C040202, // 000C EQ R1 R1 R2 - 0x78060001, // 000D JMPF R1 #0010 - 0x84040000, // 000E CLOSURE R1 P0 - 0x90022E01, // 000F SETMBR R0 K23 R1 - 0x58040002, // 0010 LDCONST R1 K2 - 0xB80A4600, // 0011 GETNGBL R2 K35 - 0x8C080524, // 0012 GETMET R2 R2 K36 - 0x7C080200, // 0013 CALL R2 1 - 0x600C000C, // 0014 GETGBL R3 G12 - 0x88100100, // 0015 GETMBR R4 R0 K0 - 0x7C0C0200, // 0016 CALL R3 1 - 0x140C0203, // 0017 LT R3 R1 R3 - 0x780E0006, // 0018 JMPF R3 #0020 - 0x880C0100, // 0019 GETMBR R3 R0 K0 - 0x940C0601, // 001A GETIDX R3 R3 R1 - 0x8C0C0725, // 001B GETMET R3 R3 K37 - 0x5C140400, // 001C MOVE R5 R2 - 0x7C0C0400, // 001D CALL R3 2 - 0x00040301, // 001E ADD R1 R1 K1 - 0x7001FFF3, // 001F JMP #0014 - 0x58040002, // 0020 LDCONST R1 K2 - 0x600C000C, // 0021 GETGBL R3 G12 - 0x8810010A, // 0022 GETMBR R4 R0 K10 - 0x7C0C0200, // 0023 CALL R3 1 - 0x140C0203, // 0024 LT R3 R1 R3 - 0x780E0006, // 0025 JMPF R3 #002D - 0x880C010A, // 0026 GETMBR R3 R0 K10 - 0x940C0601, // 0027 GETIDX R3 R3 R1 - 0x8C0C0725, // 0028 GETMET R3 R3 K37 - 0x5C140400, // 0029 MOVE R5 R2 - 0x7C0C0400, // 002A CALL R3 2 - 0x00040301, // 002B ADD R1 R1 K1 - 0x7001FFF3, // 002C JMP #0021 - 0xB80E4600, // 002D GETNGBL R3 K35 - 0x8C0C0726, // 002E GETMET R3 R3 K38 - 0x88140117, // 002F GETMBR R5 R0 K23 - 0x7C0C0400, // 0030 CALL R3 2 - 0xA0000000, // 0031 CLOSE R0 - 0x80040000, // 0032 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: remove_animation -********************************************************************/ -be_local_closure(class_AnimationEngine_remove_animation, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(remove_animation), - &be_const_str_solidified, - ( &(const binstruction[27]) { /* code */ - 0x5409FFFE, // 0000 LDINT R2 -1 - 0x580C0002, // 0001 LDCONST R3 K2 - 0x6010000C, // 0002 GETGBL R4 G12 - 0x88140100, // 0003 GETMBR R5 R0 K0 - 0x7C100200, // 0004 CALL R4 1 - 0x14100604, // 0005 LT R4 R3 R4 - 0x78120007, // 0006 JMPF R4 #000F - 0x88100100, // 0007 GETMBR R4 R0 K0 - 0x94100803, // 0008 GETIDX R4 R4 R3 - 0x1C100801, // 0009 EQ R4 R4 R1 - 0x78120001, // 000A JMPF R4 #000D - 0x5C080600, // 000B MOVE R2 R3 - 0x70020001, // 000C JMP #000F - 0x000C0701, // 000D ADD R3 R3 K1 - 0x7001FFF2, // 000E JMP #0002 - 0x28100502, // 000F GE R4 R2 K2 - 0x78120007, // 0010 JMPF R4 #0019 - 0x88100100, // 0011 GETMBR R4 R0 K0 - 0x8C10090B, // 0012 GETMET R4 R4 K11 - 0x5C180400, // 0013 MOVE R6 R2 - 0x7C100400, // 0014 CALL R4 2 - 0x50100200, // 0015 LDBOOL R4 1 0 - 0x90023004, // 0016 SETMBR R0 K24 R4 - 0x50100200, // 0017 LDBOOL R4 1 0 - 0x80040800, // 0018 RET 1 R4 - 0x50100000, // 0019 LDBOOL R4 0 0 - 0x80040800, // 001A RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_animation -********************************************************************/ -be_local_closure(class_AnimationEngine_add_animation, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(add_animation), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* code */ - 0x58080002, // 0000 LDCONST R2 K2 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x88100100, // 0002 GETMBR R4 R0 K0 - 0x7C0C0200, // 0003 CALL R3 1 - 0x140C0403, // 0004 LT R3 R2 R3 - 0x780E0007, // 0005 JMPF R3 #000E - 0x880C0100, // 0006 GETMBR R3 R0 K0 - 0x940C0602, // 0007 GETIDX R3 R3 R2 - 0x1C0C0601, // 0008 EQ R3 R3 R1 - 0x780E0001, // 0009 JMPF R3 #000C - 0x500C0000, // 000A LDBOOL R3 0 0 - 0x80040600, // 000B RET 1 R3 - 0x00080501, // 000C ADD R2 R2 K1 - 0x7001FFF2, // 000D JMP #0001 - 0x880C0100, // 000E GETMBR R3 R0 K0 - 0x8C0C070C, // 000F GETMET R3 R3 K12 - 0x5C140200, // 0010 MOVE R5 R1 - 0x7C0C0400, // 0011 CALL R3 2 - 0x8C0C0127, // 0012 GETMET R3 R0 K39 + 0x04080202, // 0008 SUB R2 R1 R2 + 0x90025602, // 0009 SETMBR R0 K43 R2 + 0x88080126, // 000A GETMBR R2 R0 K38 + 0x4C0C0000, // 000B LDNIL R3 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x780A0001, // 000D JMPF R2 #0010 + 0x84080000, // 000E CLOSURE R2 P0 + 0x90024C02, // 000F SETMBR R0 K38 R2 + 0x58080000, // 0010 LDCONST R2 K0 + 0x600C000C, // 0011 GETGBL R3 G12 + 0x88100106, // 0012 GETMBR R4 R0 K6 0x7C0C0200, // 0013 CALL R3 1 - 0x880C0108, // 0014 GETMBR R3 R0 K8 - 0x780E0001, // 0015 JMPF R3 #0018 - 0x8C0C0325, // 0016 GETMET R3 R1 K37 - 0x7C0C0200, // 0017 CALL R3 1 - 0x500C0200, // 0018 LDBOOL R3 1 0 - 0x90023003, // 0019 SETMBR R0 K24 R3 - 0x500C0200, // 001A LDBOOL R3 1 0 - 0x80040600, // 001B RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: resume -********************************************************************/ -be_local_closure(class_AnimationEngine_resume, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(resume), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x74060001, // 0001 JMPT R1 #0004 - 0x8C040125, // 0002 GETMET R1 R0 K37 - 0x7C040200, // 0003 CALL R1 1 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_strip_length -********************************************************************/ -be_local_closure(class_AnimationEngine_check_strip_length, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(check_strip_length), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88040104, // 0000 GETMBR R1 R0 K4 - 0x8C040312, // 0001 GETMET R1 R1 K18 - 0x7C040200, // 0002 CALL R1 1 - 0x88080109, // 0003 GETMBR R2 R0 K9 - 0x20080202, // 0004 NE R2 R1 R2 - 0x780A0004, // 0005 JMPF R2 #000B - 0x8C080128, // 0006 GETMET R2 R0 K40 - 0x5C100200, // 0007 MOVE R4 R1 - 0x7C080400, // 0008 CALL R2 2 - 0x50080200, // 0009 LDBOOL R2 1 0 - 0x80040400, // 000A RET 1 R2 - 0x50080000, // 000B LDBOOL R2 0 0 - 0x80040400, // 000C RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_strip_length -********************************************************************/ -be_local_closure(class_AnimationEngine_get_strip_length, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_strip_length), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C040129, // 0000 GETMET R1 R0 K41 - 0x7C040200, // 0001 CALL R1 1 - 0x88040109, // 0002 GETMBR R1 R0 K9 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _handle_strip_length_change -********************************************************************/ -be_local_closure(class_AnimationEngine__handle_strip_length_change, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_handle_strip_length_change), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x18080302, // 0000 LE R2 R1 K2 - 0x780A0000, // 0001 JMPF R2 #0003 - 0x80000400, // 0002 RET 0 - 0x90021201, // 0003 SETMBR R0 K9 R1 - 0x8808010E, // 0004 GETMBR R2 R0 K14 - 0x8C08052A, // 0005 GETMET R2 R2 K42 - 0x5C100200, // 0006 MOVE R4 R1 - 0x7C080400, // 0007 CALL R2 2 - 0x88080114, // 0008 GETMBR R2 R0 K20 - 0x8C08052A, // 0009 GETMET R2 R2 K42 - 0x5C100200, // 000A MOVE R4 R1 - 0x7C080400, // 000B CALL R2 2 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x90023002, // 000D SETMBR R0 K24 R2 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_active -********************************************************************/ -be_local_closure(class_AnimationEngine_is_active, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(is_active), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: interrupt_current -********************************************************************/ -be_local_closure(class_AnimationEngine_interrupt_current, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(interrupt_current), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x60040010, // 0000 GETGBL R1 G16 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0xA8020006, // 0003 EXBLK 0 #000B - 0x5C080200, // 0004 MOVE R2 R1 - 0x7C080000, // 0005 CALL R2 0 - 0x880C0508, // 0006 GETMBR R3 R2 K8 - 0x780E0001, // 0007 JMPF R3 #000A - 0x8C0C0519, // 0008 GETMET R3 R2 K25 - 0x7C0C0200, // 0009 CALL R3 1 - 0x7001FFF8, // 000A JMP #0004 - 0x5804002B, // 000B LDCONST R1 K43 - 0xAC040200, // 000C CATCH R1 1 0 - 0xB0080000, // 000D RAISE 2 R0 R0 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: cleanup -********************************************************************/ -be_local_closure(class_AnimationEngine_cleanup, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(cleanup), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C040119, // 0000 GETMET R1 R0 K25 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040105, // 0002 GETMET R1 R0 K5 - 0x7C040200, // 0003 CALL R1 1 - 0x4C040000, // 0004 LDNIL R1 - 0x90021C01, // 0005 SETMBR R0 K14 R1 - 0x4C040000, // 0006 LDNIL R1 - 0x90022801, // 0007 SETMBR R0 K20 R1 - 0x4C040000, // 0008 LDNIL R1 - 0x90020801, // 0009 SETMBR R0 K4 R1 - 0x80000000, // 000A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: on_tick -********************************************************************/ -be_local_closure(class_AnimationEngine_on_tick, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(on_tick), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0x88080108, // 0000 GETMBR R2 R0 K8 - 0x740A0001, // 0001 JMPT R2 #0004 - 0x50080000, // 0002 LDBOOL R2 0 0 - 0x80040400, // 0003 RET 1 R2 - 0x4C080000, // 0004 LDNIL R2 - 0x1C080202, // 0005 EQ R2 R1 R2 - 0x780A0003, // 0006 JMPF R2 #000B - 0xB80A4600, // 0007 GETNGBL R2 K35 - 0x8C080524, // 0008 GETMET R2 R2 K36 - 0x7C080200, // 0009 CALL R2 1 - 0x5C040400, // 000A MOVE R1 R2 - 0x8C080129, // 000B GETMET R2 R0 K41 - 0x7C080200, // 000C CALL R2 1 - 0x90022C01, // 000D SETMBR R0 K22 R1 - 0x88080115, // 000E GETMBR R2 R0 K21 - 0x04080202, // 000F SUB R2 R1 R2 - 0x540E0004, // 0010 LDINT R3 5 - 0x140C0403, // 0011 LT R3 R2 R3 - 0x780E0001, // 0012 JMPF R3 #0015 - 0x500C0200, // 0013 LDBOOL R3 1 0 - 0x80040600, // 0014 RET 1 R3 - 0x90022A01, // 0015 SETMBR R0 K21 R1 - 0x880C0104, // 0016 GETMBR R3 R0 K4 - 0x880C072C, // 0017 GETMBR R3 R3 K44 - 0x4C100000, // 0018 LDNIL R4 - 0x200C0604, // 0019 NE R3 R3 R4 - 0x780E0005, // 001A JMPF R3 #0021 - 0x880C0104, // 001B GETMBR R3 R0 K4 - 0x8C0C072C, // 001C GETMET R3 R3 K44 - 0x7C0C0200, // 001D CALL R3 1 - 0x740E0001, // 001E JMPT R3 #0021 - 0x500C0200, // 001F LDBOOL R3 1 0 - 0x80040600, // 0020 RET 1 R3 - 0x580C0002, // 0021 LDCONST R3 K2 - 0x6010000C, // 0022 GETGBL R4 G12 - 0x8814010A, // 0023 GETMBR R5 R0 K10 - 0x7C100200, // 0024 CALL R4 1 - 0x14100604, // 0025 LT R4 R3 R4 - 0x78120006, // 0026 JMPF R4 #002E - 0x8810010A, // 0027 GETMBR R4 R0 K10 - 0x94100803, // 0028 GETIDX R4 R4 R3 - 0x8C10091F, // 0029 GETMET R4 R4 K31 - 0x5C180200, // 002A MOVE R6 R1 - 0x7C100400, // 002B CALL R4 2 - 0x000C0701, // 002C ADD R3 R3 K1 - 0x7001FFF3, // 002D JMP #0022 - 0x8C10012D, // 002E GETMET R4 R0 K45 - 0x5C180200, // 002F MOVE R6 R1 - 0x7C100400, // 0030 CALL R4 2 - 0x8C10012E, // 0031 GETMET R4 R0 K46 - 0x5C180200, // 0032 MOVE R6 R1 - 0x7C100400, // 0033 CALL R4 2 - 0x50100200, // 0034 LDBOOL R4 1 0 - 0x80040800, // 0035 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: stop -********************************************************************/ -be_local_closure(class_AnimationEngine_stop, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(stop), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x78060009, // 0001 JMPF R1 #000C - 0x50040000, // 0002 LDBOOL R1 0 0 - 0x90021001, // 0003 SETMBR R0 K8 R1 - 0x88040117, // 0004 GETMBR R1 R0 K23 - 0x4C080000, // 0005 LDNIL R2 - 0x20040202, // 0006 NE R1 R1 R2 - 0x78060003, // 0007 JMPF R1 #000C - 0xB8064600, // 0008 GETNGBL R1 K35 - 0x8C04032F, // 0009 GETMET R1 R1 K47 - 0x880C0117, // 000A GETMBR R3 R0 K23 - 0x7C040400, // 000B CALL R1 2 - 0x80040000, // 000C RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_animations -********************************************************************/ -be_local_closure(class_AnimationEngine_get_animations, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_animations), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_events -********************************************************************/ -be_local_closure(class_AnimationEngine__process_events, /* name */ - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_process_events), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0xB80A2600, // 0000 GETNGBL R2 K19 - 0x88080530, // 0001 GETMBR R2 R2 K48 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0003, // 0004 JMPF R2 #0009 - 0xB80A2600, // 0005 GETNGBL R2 K19 - 0x88080530, // 0006 GETMBR R2 R2 K48 - 0x8C080531, // 0007 GETMET R2 R2 K49 - 0x7C080200, // 0008 CALL R2 1 - 0x80000000, // 0009 RET 0 + 0x140C0403, // 0014 LT R3 R2 R3 + 0x780E0006, // 0015 JMPF R3 #001D + 0x880C0106, // 0016 GETMBR R3 R0 K6 + 0x940C0602, // 0017 GETIDX R3 R3 R2 + 0x8C0C0735, // 0018 GETMET R3 R3 K53 + 0x5C140200, // 0019 MOVE R5 R1 + 0x7C0C0400, // 001A CALL R3 2 + 0x00080509, // 001B ADD R2 R2 K9 + 0x7001FFF3, // 001C JMP #0011 + 0x58080000, // 001D LDCONST R2 K0 + 0x600C000C, // 001E GETGBL R3 G12 + 0x8810010E, // 001F GETMBR R4 R0 K14 + 0x7C0C0200, // 0020 CALL R3 1 + 0x140C0403, // 0021 LT R3 R2 R3 + 0x780E0006, // 0022 JMPF R3 #002A + 0x880C010E, // 0023 GETMBR R3 R0 K14 + 0x940C0602, // 0024 GETIDX R3 R3 R2 + 0x8C0C0735, // 0025 GETMET R3 R3 K53 + 0x5C140200, // 0026 MOVE R5 R1 + 0x7C0C0400, // 0027 CALL R3 2 + 0x00080509, // 0028 ADD R2 R2 K9 + 0x7001FFF3, // 0029 JMP #001E + 0xB80E4E00, // 002A GETNGBL R3 K39 + 0x8C0C0738, // 002B GETMET R3 R3 K56 + 0x88140126, // 002C GETMBR R5 R0 K38 + 0x7C0C0400, // 002D CALL R3 2 + 0xA0000000, // 002E CLOSE R0 + 0x80040000, // 002F RET 1 R0 }) ) ); @@ -19307,48 +19318,49 @@ be_local_closure(class_AnimationEngine__process_events, /* name */ be_local_class(AnimationEngine, 11, NULL, - be_nested_map(40, + be_nested_map(41, ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(_handle_strip_length_change, 38), be_const_closure(class_AnimationEngine__handle_strip_length_change_closure) }, + { be_const_key_weak(temp_buffer, 18), be_const_var(5) }, + { be_const_key_weak(time_ms, 9), be_const_var(8) }, + { be_const_key_weak(_update_and_render, 40), be_const_closure(class_AnimationEngine__update_and_render_closure) }, { be_const_key_weak(_sort_animations, -1), be_const_closure(class_AnimationEngine__sort_animations_closure) }, - { be_const_key_weak(_process_events, -1), be_const_closure(class_AnimationEngine__process_events_closure) }, - { be_const_key_weak(get_animations, -1), be_const_closure(class_AnimationEngine_get_animations_closure) }, - { be_const_key_weak(width, -1), be_const_var(1) }, - { be_const_key_weak(size, 39), be_const_closure(class_AnimationEngine_size_closure) }, - { be_const_key_weak(tostring, 1), be_const_closure(class_AnimationEngine_tostring_closure) }, - { be_const_key_weak(_clear_strip, 38), be_const_closure(class_AnimationEngine__clear_strip_closure) }, - { be_const_key_weak(remove_sequence_manager, 2), be_const_closure(class_AnimationEngine_remove_sequence_manager_closure) }, - { be_const_key_weak(add_sequence_manager, -1), be_const_closure(class_AnimationEngine_add_sequence_manager_closure) }, - { be_const_key_weak(on_tick, -1), be_const_closure(class_AnimationEngine_on_tick_closure) }, - { be_const_key_weak(cleanup, -1), be_const_closure(class_AnimationEngine_cleanup_closure) }, - { be_const_key_weak(interrupt_current, -1), be_const_closure(class_AnimationEngine_interrupt_current_closure) }, - { be_const_key_weak(_render_animations, -1), be_const_closure(class_AnimationEngine__render_animations_closure) }, - { be_const_key_weak(interrupt_animation, 17), be_const_closure(class_AnimationEngine_interrupt_animation_closure) }, - { be_const_key_weak(_update_and_render, -1), be_const_closure(class_AnimationEngine__update_and_render_closure) }, - { be_const_key_weak(resume_after, 3), be_const_closure(class_AnimationEngine_resume_after_closure) }, + { be_const_key_weak(start, -1), be_const_closure(class_AnimationEngine_start_closure) }, { be_const_key_weak(sequence_managers, -1), be_const_var(3) }, - { be_const_key_weak(time_ms, -1), be_const_var(8) }, - { be_const_key_weak(temp_buffer, -1), be_const_var(5) }, - { be_const_key_weak(_handle_strip_length_change, -1), be_const_closure(class_AnimationEngine__handle_strip_length_change_closure) }, - { be_const_key_weak(remove_animation, 28), be_const_closure(class_AnimationEngine_remove_animation_closure) }, - { be_const_key_weak(is_running, 16), be_const_var(6) }, - { be_const_key_weak(get_strip_length, 24), be_const_closure(class_AnimationEngine_get_strip_length_closure) }, - { be_const_key_weak(render_needed, -1), be_const_var(10) }, - { be_const_key_weak(last_update, -1), be_const_var(7) }, - { be_const_key_weak(add_animation, 30), be_const_closure(class_AnimationEngine_add_animation_closure) }, - { be_const_key_weak(animations, 29), be_const_var(2) }, - { be_const_key_weak(check_strip_length, 22), be_const_closure(class_AnimationEngine_check_strip_length_closure) }, - { be_const_key_weak(fast_loop_closure, -1), be_const_var(9) }, - { be_const_key_weak(resume, -1), be_const_closure(class_AnimationEngine_resume_closure) }, - { be_const_key_weak(frame_buffer, -1), be_const_var(4) }, - { be_const_key_weak(start, 19), be_const_closure(class_AnimationEngine_start_closure) }, - { be_const_key_weak(is_active, -1), be_const_closure(class_AnimationEngine_is_active_closure) }, - { be_const_key_weak(strip, -1), be_const_var(0) }, - { be_const_key_weak(clear, 11), be_const_closure(class_AnimationEngine_clear_closure) }, - { be_const_key_weak(init, 10), be_const_closure(class_AnimationEngine_init_closure) }, - { be_const_key_weak(_output_to_strip, 9), be_const_closure(class_AnimationEngine__output_to_strip_closure) }, - { be_const_key_weak(stop, -1), be_const_closure(class_AnimationEngine_stop_closure) }, - { be_const_key_weak(get_strip, -1), be_const_closure(class_AnimationEngine_get_strip_closure) }, + { be_const_key_weak(_output_to_strip, -1), be_const_closure(class_AnimationEngine__output_to_strip_closure) }, + { be_const_key_weak(check_strip_length, -1), be_const_closure(class_AnimationEngine_check_strip_length_closure) }, + { be_const_key_weak(add_animation, -1), be_const_closure(class_AnimationEngine_add_animation_closure) }, + { be_const_key_weak(interrupt_animation, 39), be_const_closure(class_AnimationEngine_interrupt_animation_closure) }, + { be_const_key_weak(add, -1), be_const_closure(class_AnimationEngine_add_closure) }, + { be_const_key_weak(get_animations, 10), be_const_closure(class_AnimationEngine_get_animations_closure) }, + { be_const_key_weak(_render_animations, -1), be_const_closure(class_AnimationEngine__render_animations_closure) }, { be_const_key_weak(interrupt_all, -1), be_const_closure(class_AnimationEngine_interrupt_all_closure) }, + { be_const_key_weak(is_running, -1), be_const_var(6) }, + { be_const_key_weak(_process_events, -1), be_const_closure(class_AnimationEngine__process_events_closure) }, + { be_const_key_weak(clear, -1), be_const_closure(class_AnimationEngine_clear_closure) }, + { be_const_key_weak(frame_buffer, -1), be_const_var(4) }, + { be_const_key_weak(render_needed, -1), be_const_var(10) }, + { be_const_key_weak(add_sequence_manager, 35), be_const_closure(class_AnimationEngine_add_sequence_manager_closure) }, + { be_const_key_weak(remove_animation, -1), be_const_closure(class_AnimationEngine_remove_animation_closure) }, + { be_const_key_weak(strip, 21), be_const_var(0) }, + { be_const_key_weak(interrupt_current, 33), be_const_closure(class_AnimationEngine_interrupt_current_closure) }, + { be_const_key_weak(on_tick, -1), be_const_closure(class_AnimationEngine_on_tick_closure) }, + { be_const_key_weak(animations, 19), be_const_var(2) }, + { be_const_key_weak(is_active, 16), be_const_closure(class_AnimationEngine_is_active_closure) }, + { be_const_key_weak(cleanup, 14), be_const_closure(class_AnimationEngine_cleanup_closure) }, + { be_const_key_weak(resume_after, 30), be_const_closure(class_AnimationEngine_resume_after_closure) }, + { be_const_key_weak(get_strip_length, 5), be_const_closure(class_AnimationEngine_get_strip_length_closure) }, + { be_const_key_weak(remove_sequence_manager, -1), be_const_closure(class_AnimationEngine_remove_sequence_manager_closure) }, + { be_const_key_weak(tostring, 2), be_const_closure(class_AnimationEngine_tostring_closure) }, + { be_const_key_weak(_clear_strip, 1), be_const_closure(class_AnimationEngine__clear_strip_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_AnimationEngine_init_closure) }, + { be_const_key_weak(get_strip, 15), be_const_closure(class_AnimationEngine_get_strip_closure) }, + { be_const_key_weak(stop, 37), be_const_closure(class_AnimationEngine_stop_closure) }, + { be_const_key_weak(resume, -1), be_const_closure(class_AnimationEngine_resume_closure) }, + { be_const_key_weak(last_update, -1), be_const_var(7) }, + { be_const_key_weak(width, -1), be_const_var(1) }, + { be_const_key_weak(fast_loop_closure, -1), be_const_var(9) }, + { be_const_key_weak(size, -1), be_const_closure(class_AnimationEngine_size_closure) }, })), be_str_weak(AnimationEngine) ); @@ -19898,39 +19910,39 @@ be_local_closure(animation_init, /* name */ ); /*******************************************************************/ -// compact class 'ParameterizedObject' ktab size: 45, total: 90 (saved 360 bytes) +// compact class 'ParameterizedObject' ktab size: 45, total: 85 (saved 320 bytes) static const bvalue be_ktab_class_ParameterizedObject[45] = { /* K0 */ be_nested_str_weak(introspect), /* K1 */ be_nested_str_weak(contains), /* K2 */ be_nested_str_weak(PARAMS), - /* K3 */ be_nested_str_weak(keys), - /* K4 */ be_nested_str_weak(stop_iteration), - /* K5 */ be_nested_str_weak(_get_param_def), + /* K3 */ be_nested_str_weak(animation), + /* K4 */ be_nested_str_weak(is_value_provider), + /* K5 */ be_nested_str_weak(produce_value), /* K6 */ be_nested_str_weak(values), - /* K7 */ be_nested_str_weak(_has_param), - /* K8 */ be_nested_str_weak(_resolve_parameter_value), - /* K9 */ be_nested_str_weak(engine), - /* K10 */ be_nested_str_weak(time_ms), - /* K11 */ be_nested_str_weak(_X27_X25s_X27_X20object_X20has_X20no_X20attribute_X20_X27_X25s_X27), - /* K12 */ be_nested_str_weak(attribute_error), - /* K13 */ be_nested_str_weak(_set_parameter_value), - /* K14 */ be_nested_str_weak(instance), - /* K15 */ be_nested_str_weak(value_error), - /* K16 */ be_nested_str_weak(ParameterizedObject_X20requires_X20an_X20engine_X20parameter), - /* K17 */ be_nested_str_weak(_init_parameter_values), - /* K18 */ be_nested_str_weak(default), - /* K19 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20is_X20not_X20defined_X20for_X20class_X20_X27_X25s_X27), - /* K20 */ be_nested_str_weak(animation), - /* K21 */ be_nested_str_weak(is_value_provider), - /* K22 */ be_nested_str_weak(nillable), - /* K23 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20does_X20not_X20accept_X20nil_X20values), - /* K24 */ be_nested_str_weak(int), - /* K25 */ be_nested_str_weak(type), - /* K26 */ be_nested_str_weak(any), - /* K27 */ be_nested_str_weak(real), - /* K28 */ be_nested_str_weak(math), - /* K29 */ be_nested_str_weak(round), - /* K30 */ be_nested_str_weak(bytes), + /* K7 */ be_nested_str_weak(_get_param_def), + /* K8 */ be_nested_str_weak(default), + /* K9 */ be_nested_str_weak(_validate_param), + /* K10 */ be_nested_str_weak(on_param_changed), + /* K11 */ be_nested_str_weak(_has_param), + /* K12 */ be_nested_str_weak(_resolve_parameter_value), + /* K13 */ be_nested_str_weak(engine), + /* K14 */ be_nested_str_weak(time_ms), + /* K15 */ be_nested_str_weak(_X27_X25s_X27_X20object_X20has_X20no_X20attribute_X20_X27_X25s_X27), + /* K16 */ be_nested_str_weak(attribute_error), + /* K17 */ be_nested_str_weak(_set_parameter_value), + /* K18 */ be_nested_str_weak(value_error), + /* K19 */ be_nested_str_weak(toptr), + /* K20 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20is_X20not_X20defined_X20for_X20class_X20_X27_X25s_X27), + /* K21 */ be_nested_str_weak(nillable), + /* K22 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20does_X20not_X20accept_X20nil_X20values), + /* K23 */ be_nested_str_weak(int), + /* K24 */ be_nested_str_weak(type), + /* K25 */ be_nested_str_weak(any), + /* K26 */ be_nested_str_weak(real), + /* K27 */ be_nested_str_weak(math), + /* K28 */ be_nested_str_weak(round), + /* K29 */ be_nested_str_weak(bytes), + /* K30 */ be_nested_str_weak(instance), /* K31 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20expects_X20type_X20_X27_X25s_X27_X20but_X20got_X20_X27_X25s_X27_X20_X28value_X3A_X20_X25s_X29), /* K32 */ be_nested_str_weak(min), /* K33 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20value_X20_X25s_X20is_X20below_X20minimum_X20_X25s), @@ -19941,15 +19953,64 @@ static const bvalue be_ktab_class_ParameterizedObject[45] = { /* K38 */ be_const_int(0), /* K39 */ be_const_int(1), /* K40 */ be_nested_str_weak(Parameter_X20_X27_X25s_X27_X20value_X20_X25s_X20is_X20not_X20in_X20allowed_X20values_X20_X25s), - /* K41 */ be_nested_str_weak(toptr), - /* K42 */ be_nested_str_weak(produce_value), - /* K43 */ be_nested_str_weak(_validate_param), - /* K44 */ be_nested_str_weak(on_param_changed), + /* K41 */ be_nested_str_weak(keys), + /* K42 */ be_nested_str_weak(stop_iteration), + /* K43 */ be_nested_str_weak(ParameterizedObject_X20requires_X20an_X20engine_X20parameter), + /* K44 */ be_nested_str_weak(_init_parameter_values), }; extern const bclass be_class_ParameterizedObject; +/******************************************************************** +** Solidified function: _get_param_def +********************************************************************/ +be_local_closure(class_ParameterizedObject__get_param_def, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_get_param_def), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x600C0006, // 0001 GETGBL R3 G6 + 0x5C100000, // 0002 MOVE R4 R0 + 0x7C0C0200, // 0003 CALL R3 1 + 0x4C100000, // 0004 LDNIL R4 + 0x20100604, // 0005 NE R4 R3 R4 + 0x78120010, // 0006 JMPF R4 #0018 + 0x8C100501, // 0007 GETMET R4 R2 K1 + 0x5C180600, // 0008 MOVE R6 R3 + 0x581C0002, // 0009 LDCONST R7 K2 + 0x7C100600, // 000A CALL R4 3 + 0x78120006, // 000B JMPF R4 #0013 + 0x88100702, // 000C GETMBR R4 R3 K2 + 0x8C140901, // 000D GETMET R5 R4 K1 + 0x5C1C0200, // 000E MOVE R7 R1 + 0x7C140400, // 000F CALL R5 2 + 0x78160001, // 0010 JMPF R5 #0013 + 0x94140801, // 0011 GETIDX R5 R4 R1 + 0x80040A00, // 0012 RET 1 R5 + 0x60100003, // 0013 GETGBL R4 G3 + 0x5C140600, // 0014 MOVE R5 R3 + 0x7C100200, // 0015 CALL R4 1 + 0x5C0C0800, // 0016 MOVE R3 R4 + 0x7001FFEB, // 0017 JMP #0004 + 0x4C100000, // 0018 LDNIL R4 + 0x80040800, // 0019 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: start ********************************************************************/ @@ -19975,12 +20036,12 @@ be_local_closure(class_ParameterizedObject_start, /* name */ /******************************************************************** -** Solidified function: get_params_metadata +** Solidified function: resolve_value ********************************************************************/ -be_local_closure(class_ParameterizedObject_get_params_metadata, /* name */ +be_local_closure(class_ParameterizedObject_resolve_value, /* name */ be_nested_proto( - 10, /* nstack */ - 1, /* argc */ + 8, /* nstack */ + 4, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -19988,47 +20049,124 @@ be_local_closure(class_ParameterizedObject_get_params_metadata, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(get_params_metadata), + be_str_weak(resolve_value), &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x60080013, // 0001 GETGBL R2 G19 - 0x7C080000, // 0002 CALL R2 0 - 0x600C0006, // 0003 GETGBL R3 G6 - 0x5C100000, // 0004 MOVE R4 R0 - 0x7C0C0200, // 0005 CALL R3 1 - 0x4C100000, // 0006 LDNIL R4 - 0x20100604, // 0007 NE R4 R3 R4 - 0x7812001B, // 0008 JMPF R4 #0025 - 0x8C100301, // 0009 GETMET R4 R1 K1 - 0x5C180600, // 000A MOVE R6 R3 - 0x581C0002, // 000B LDCONST R7 K2 - 0x7C100600, // 000C CALL R4 3 - 0x78120011, // 000D JMPF R4 #0020 - 0x88100702, // 000E GETMBR R4 R3 K2 - 0x60140010, // 000F GETGBL R5 G16 - 0x8C180903, // 0010 GETMET R6 R4 K3 - 0x7C180200, // 0011 CALL R6 1 - 0x7C140200, // 0012 CALL R5 1 - 0xA8020008, // 0013 EXBLK 0 #001D - 0x5C180A00, // 0014 MOVE R6 R5 - 0x7C180000, // 0015 CALL R6 0 - 0x8C1C0501, // 0016 GETMET R7 R2 K1 - 0x5C240C00, // 0017 MOVE R9 R6 - 0x7C1C0400, // 0018 CALL R7 2 - 0x741E0001, // 0019 JMPT R7 #001C - 0x941C0806, // 001A GETIDX R7 R4 R6 - 0x98080C07, // 001B SETIDX R2 R6 R7 - 0x7001FFF6, // 001C JMP #0014 - 0x58140004, // 001D LDCONST R5 K4 - 0xAC140200, // 001E CATCH R5 1 0 - 0xB0080000, // 001F RAISE 2 R0 R0 - 0x60100003, // 0020 GETGBL R4 G3 - 0x5C140600, // 0021 MOVE R5 R3 - 0x7C100200, // 0022 CALL R4 1 - 0x5C0C0800, // 0023 MOVE R3 R4 - 0x7001FFE0, // 0024 JMP #0006 - 0x80040400, // 0025 RET 1 R2 + ( &(const binstruction[18]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x1C100204, // 0001 EQ R4 R1 R4 + 0x78120001, // 0002 JMPF R4 #0005 + 0x4C100000, // 0003 LDNIL R4 + 0x80040800, // 0004 RET 1 R4 + 0xB8120600, // 0005 GETNGBL R4 K3 + 0x8C100904, // 0006 GETMET R4 R4 K4 + 0x5C180200, // 0007 MOVE R6 R1 + 0x7C100400, // 0008 CALL R4 2 + 0x78120005, // 0009 JMPF R4 #0010 + 0x8C100305, // 000A GETMET R4 R1 K5 + 0x5C180400, // 000B MOVE R6 R2 + 0x5C1C0600, // 000C MOVE R7 R3 + 0x7C100600, // 000D CALL R4 3 + 0x80040800, // 000E RET 1 R4 + 0x70020000, // 000F JMP #0011 + 0x80040200, // 0010 RET 1 R1 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _resolve_parameter_value +********************************************************************/ +be_local_closure(class_ParameterizedObject__resolve_parameter_value, /* name */ + be_nested_proto( + 8, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_resolve_parameter_value), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0x880C0106, // 0000 GETMBR R3 R0 K6 + 0x8C0C0701, // 0001 GETMET R3 R3 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x740E000D, // 0004 JMPT R3 #0013 + 0x8C0C0107, // 0005 GETMET R3 R0 K7 + 0x5C140200, // 0006 MOVE R5 R1 + 0x7C0C0400, // 0007 CALL R3 2 + 0x4C100000, // 0008 LDNIL R4 + 0x20100604, // 0009 NE R4 R3 R4 + 0x78120005, // 000A JMPF R4 #0011 + 0x8C100701, // 000B GETMET R4 R3 K1 + 0x58180008, // 000C LDCONST R6 K8 + 0x7C100400, // 000D CALL R4 2 + 0x78120001, // 000E JMPF R4 #0011 + 0x94100708, // 000F GETIDX R4 R3 K8 + 0x80040800, // 0010 RET 1 R4 + 0x4C100000, // 0011 LDNIL R4 + 0x80040800, // 0012 RET 1 R4 + 0x880C0106, // 0013 GETMBR R3 R0 K6 + 0x940C0601, // 0014 GETIDX R3 R3 R1 + 0xB8120600, // 0015 GETNGBL R4 K3 + 0x8C100904, // 0016 GETMET R4 R4 K4 + 0x5C180600, // 0017 MOVE R6 R3 + 0x7C100400, // 0018 CALL R4 2 + 0x78120005, // 0019 JMPF R4 #0020 + 0x8C100705, // 001A GETMET R4 R3 K5 + 0x5C180200, // 001B MOVE R6 R1 + 0x5C1C0400, // 001C MOVE R7 R2 + 0x7C100600, // 001D CALL R4 3 + 0x80040800, // 001E RET 1 R4 + 0x70020000, // 001F JMP #0021 + 0x80040600, // 0020 RET 1 R3 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _set_parameter_value +********************************************************************/ +be_local_closure(class_ParameterizedObject__set_parameter_value, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_set_parameter_value), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0xB80E0600, // 0000 GETNGBL R3 K3 + 0x8C0C0704, // 0001 GETMET R3 R3 K4 + 0x5C140400, // 0002 MOVE R5 R2 + 0x7C0C0400, // 0003 CALL R3 2 + 0x740E0004, // 0004 JMPT R3 #000A + 0x8C0C0109, // 0005 GETMET R3 R0 K9 + 0x5C140200, // 0006 MOVE R5 R1 + 0x5C180400, // 0007 MOVE R6 R2 + 0x7C0C0600, // 0008 CALL R3 3 + 0x5C080600, // 0009 MOVE R2 R3 + 0x880C0106, // 000A GETMBR R3 R0 K6 + 0x980C0202, // 000B SETIDX R3 R1 R2 + 0x8C0C010A, // 000C GETMET R3 R0 K10 + 0x5C140200, // 000D MOVE R5 R1 + 0x5C180400, // 000E MOVE R6 R2 + 0x7C0C0600, // 000F CALL R3 3 + 0x80000000, // 0010 RET 0 }) ) ); @@ -20052,7 +20190,7 @@ be_local_closure(class_ParameterizedObject_get_param_metadata, /* name */ be_str_weak(get_param_metadata), &be_const_str_solidified, ( &(const binstruction[ 4]) { /* code */ - 0x8C080105, // 0000 GETMET R2 R0 K5 + 0x8C080107, // 0000 GETMET R2 R0 K7 0x5C100200, // 0001 MOVE R4 R1 0x7C080400, // 0002 CALL R2 2 0x80040400, // 0003 RET 1 R2 @@ -20084,24 +20222,24 @@ be_local_closure(class_ParameterizedObject_member, /* name */ 0x5C100200, // 0002 MOVE R4 R1 0x7C080400, // 0003 CALL R2 2 0x740A0003, // 0004 JMPT R2 #0009 - 0x8C080107, // 0005 GETMET R2 R0 K7 + 0x8C08010B, // 0005 GETMET R2 R0 K11 0x5C100200, // 0006 MOVE R4 R1 0x7C080400, // 0007 CALL R2 2 0x780A0005, // 0008 JMPF R2 #000F - 0x8C080108, // 0009 GETMET R2 R0 K8 + 0x8C08010C, // 0009 GETMET R2 R0 K12 0x5C100200, // 000A MOVE R4 R1 - 0x88140109, // 000B GETMBR R5 R0 K9 - 0x88140B0A, // 000C GETMBR R5 R5 K10 + 0x8814010D, // 000B GETMBR R5 R0 K13 + 0x88140B0E, // 000C GETMBR R5 R5 K14 0x7C080600, // 000D CALL R2 3 0x80040400, // 000E RET 1 R2 0x60080018, // 000F GETGBL R2 G24 - 0x580C000B, // 0010 LDCONST R3 K11 + 0x580C000F, // 0010 LDCONST R3 K15 0x60100005, // 0011 GETGBL R4 G5 0x5C140000, // 0012 MOVE R5 R0 0x7C100200, // 0013 CALL R4 1 0x5C140200, // 0014 MOVE R5 R1 0x7C080600, // 0015 CALL R2 3 - 0xB0061802, // 0016 RAISE 1 K12 R2 + 0xB0062002, // 0016 RAISE 1 K16 R2 0x80000000, // 0017 RET 0 }) ) @@ -20133,6 +20271,431 @@ be_local_closure(class_ParameterizedObject_on_param_changed, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_param_value +********************************************************************/ +be_local_closure(class_ParameterizedObject_get_param_value, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(get_param_value), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x8C0C010C, // 0000 GETMET R3 R0 K12 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C0C0600, // 0003 CALL R3 3 + 0x80040600, // 0004 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: set_param +********************************************************************/ +be_local_closure(class_ParameterizedObject_set_param, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(set_param), + &be_const_str_solidified, + ( &(const binstruction[24]) { /* code */ + 0x8C0C010B, // 0000 GETMET R3 R0 K11 + 0x5C140200, // 0001 MOVE R5 R1 + 0x7C0C0400, // 0002 CALL R3 2 + 0x740E0001, // 0003 JMPT R3 #0006 + 0x500C0000, // 0004 LDBOOL R3 0 0 + 0x80040600, // 0005 RET 1 R3 + 0xA8020008, // 0006 EXBLK 0 #0010 + 0x8C0C0111, // 0007 GETMET R3 R0 K17 + 0x5C140200, // 0008 MOVE R5 R1 + 0x5C180400, // 0009 MOVE R6 R2 + 0x7C0C0600, // 000A CALL R3 3 + 0x500C0200, // 000B LDBOOL R3 1 0 + 0xA8040001, // 000C EXBLK 1 1 + 0x80040600, // 000D RET 1 R3 + 0xA8040001, // 000E EXBLK 1 1 + 0x70020006, // 000F JMP #0017 + 0x580C0012, // 0010 LDCONST R3 K18 + 0xAC0C0201, // 0011 CATCH R3 1 1 + 0x70020002, // 0012 JMP #0016 + 0x50100000, // 0013 LDBOOL R4 0 0 + 0x80040800, // 0014 RET 1 R4 + 0x70020000, // 0015 JMP #0017 + 0xB0080000, // 0016 RAISE 2 R0 R0 + 0x80000000, // 0017 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: == +********************************************************************/ +be_local_closure(class_ParameterizedObject__X3D_X3D, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_X3D_X3D), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0513, // 0001 GETMET R3 R2 K19 + 0x5C140000, // 0002 MOVE R5 R0 + 0x7C0C0400, // 0003 CALL R3 2 + 0x8C100513, // 0004 GETMET R4 R2 K19 + 0x5C180200, // 0005 MOVE R6 R1 + 0x7C100400, // 0006 CALL R4 2 + 0x1C0C0604, // 0007 EQ R3 R3 R4 + 0x80040600, // 0008 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_param +********************************************************************/ +be_local_closure(class_ParameterizedObject__validate_param, /* name */ + be_nested_proto( + 16, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_validate_param), + &be_const_str_solidified, + ( &(const binstruction[162]) { /* code */ + 0x8C0C0107, // 0000 GETMET R3 R0 K7 + 0x5C140200, // 0001 MOVE R5 R1 + 0x7C0C0400, // 0002 CALL R3 2 + 0x4C100000, // 0003 LDNIL R4 + 0x1C100604, // 0004 EQ R4 R3 R4 + 0x78120007, // 0005 JMPF R4 #000E + 0x60100018, // 0006 GETGBL R4 G24 + 0x58140014, // 0007 LDCONST R5 K20 + 0x5C180200, // 0008 MOVE R6 R1 + 0x601C0005, // 0009 GETGBL R7 G5 + 0x5C200000, // 000A MOVE R8 R0 + 0x7C1C0200, // 000B CALL R7 1 + 0x7C100600, // 000C CALL R4 3 + 0xB0062404, // 000D RAISE 1 K18 R4 + 0xB8120600, // 000E GETNGBL R4 K3 + 0x8C100904, // 000F GETMET R4 R4 K4 + 0x5C180400, // 0010 MOVE R6 R2 + 0x7C100400, // 0011 CALL R4 2 + 0x78120000, // 0012 JMPF R4 #0014 + 0x80040400, // 0013 RET 1 R2 + 0x4C100000, // 0014 LDNIL R4 + 0x1C100404, // 0015 EQ R4 R2 R4 + 0x78120012, // 0016 JMPF R4 #002A + 0x8C100701, // 0017 GETMET R4 R3 K1 + 0x58180015, // 0018 LDCONST R6 K21 + 0x7C100400, // 0019 CALL R4 2 + 0x78120004, // 001A JMPF R4 #0020 + 0x94100715, // 001B GETIDX R4 R3 K21 + 0x50140200, // 001C LDBOOL R5 1 0 + 0x1C100805, // 001D EQ R4 R4 R5 + 0x78120000, // 001E JMPF R4 #0020 + 0x80040400, // 001F RET 1 R2 + 0x8C100701, // 0020 GETMET R4 R3 K1 + 0x58180008, // 0021 LDCONST R6 K8 + 0x7C100400, // 0022 CALL R4 2 + 0x78120000, // 0023 JMPF R4 #0025 + 0x80040400, // 0024 RET 1 R2 + 0x60100018, // 0025 GETGBL R4 G24 + 0x58140016, // 0026 LDCONST R5 K22 + 0x5C180200, // 0027 MOVE R6 R1 + 0x7C100400, // 0028 CALL R4 2 + 0xB0062404, // 0029 RAISE 1 K18 R4 + 0x58100017, // 002A LDCONST R4 K23 + 0x8C140701, // 002B GETMET R5 R3 K1 + 0x581C0018, // 002C LDCONST R7 K24 + 0x7C140400, // 002D CALL R5 2 + 0x78160000, // 002E JMPF R5 #0030 + 0x94100718, // 002F GETIDX R4 R3 K24 + 0x60140004, // 0030 GETGBL R5 G4 + 0x5C180400, // 0031 MOVE R6 R2 + 0x7C140200, // 0032 CALL R5 1 + 0x20180919, // 0033 NE R6 R4 K25 + 0x781A0031, // 0034 JMPF R6 #0067 + 0x1C180917, // 0035 EQ R6 R4 K23 + 0x781A000A, // 0036 JMPF R6 #0042 + 0x1C180B1A, // 0037 EQ R6 R5 K26 + 0x781A0008, // 0038 JMPF R6 #0042 + 0xA41A3600, // 0039 IMPORT R6 K27 + 0x601C0009, // 003A GETGBL R7 G9 + 0x8C200D1C, // 003B GETMET R8 R6 K28 + 0x5C280400, // 003C MOVE R10 R2 + 0x7C200400, // 003D CALL R8 2 + 0x7C1C0200, // 003E CALL R7 1 + 0x5C080E00, // 003F MOVE R2 R7 + 0x58140017, // 0040 LDCONST R5 K23 + 0x70020024, // 0041 JMP #0067 + 0x1C18091D, // 0042 EQ R6 R4 K29 + 0x781A0018, // 0043 JMPF R6 #005D + 0x1C180B1E, // 0044 EQ R6 R5 K30 + 0x781A0006, // 0045 JMPF R6 #004D + 0x6018000F, // 0046 GETGBL R6 G15 + 0x5C1C0400, // 0047 MOVE R7 R2 + 0x60200015, // 0048 GETGBL R8 G21 + 0x7C180400, // 0049 CALL R6 2 + 0x781A0001, // 004A JMPF R6 #004D + 0x5814001D, // 004B LDCONST R5 K29 + 0x7002000E, // 004C JMP #005C + 0x20180B1E, // 004D NE R6 R5 K30 + 0x741A0004, // 004E JMPT R6 #0054 + 0x6018000F, // 004F GETGBL R6 G15 + 0x5C1C0400, // 0050 MOVE R7 R2 + 0x60200015, // 0051 GETGBL R8 G21 + 0x7C180400, // 0052 CALL R6 2 + 0x741A0007, // 0053 JMPT R6 #005C + 0x60180018, // 0054 GETGBL R6 G24 + 0x581C001F, // 0055 LDCONST R7 K31 + 0x5C200200, // 0056 MOVE R8 R1 + 0x5C240800, // 0057 MOVE R9 R4 + 0x5C280A00, // 0058 MOVE R10 R5 + 0x5C2C0400, // 0059 MOVE R11 R2 + 0x7C180A00, // 005A CALL R6 5 + 0xB0062406, // 005B RAISE 1 K18 R6 + 0x70020009, // 005C JMP #0067 + 0x20180805, // 005D NE R6 R4 R5 + 0x781A0007, // 005E JMPF R6 #0067 + 0x60180018, // 005F GETGBL R6 G24 + 0x581C001F, // 0060 LDCONST R7 K31 + 0x5C200200, // 0061 MOVE R8 R1 + 0x5C240800, // 0062 MOVE R9 R4 + 0x5C280A00, // 0063 MOVE R10 R5 + 0x5C2C0400, // 0064 MOVE R11 R2 + 0x7C180A00, // 0065 CALL R6 5 + 0xB0062406, // 0066 RAISE 1 K18 R6 + 0x1C180B17, // 0067 EQ R6 R5 K23 + 0x781A001B, // 0068 JMPF R6 #0085 + 0x8C180701, // 0069 GETMET R6 R3 K1 + 0x58200020, // 006A LDCONST R8 K32 + 0x7C180400, // 006B CALL R6 2 + 0x781A0009, // 006C JMPF R6 #0077 + 0x94180720, // 006D GETIDX R6 R3 K32 + 0x14180406, // 006E LT R6 R2 R6 + 0x781A0006, // 006F JMPF R6 #0077 + 0x60180018, // 0070 GETGBL R6 G24 + 0x581C0021, // 0071 LDCONST R7 K33 + 0x5C200200, // 0072 MOVE R8 R1 + 0x5C240400, // 0073 MOVE R9 R2 + 0x94280720, // 0074 GETIDX R10 R3 K32 + 0x7C180800, // 0075 CALL R6 4 + 0xB0062406, // 0076 RAISE 1 K18 R6 + 0x8C180701, // 0077 GETMET R6 R3 K1 + 0x58200022, // 0078 LDCONST R8 K34 + 0x7C180400, // 0079 CALL R6 2 + 0x781A0009, // 007A JMPF R6 #0085 + 0x94180722, // 007B GETIDX R6 R3 K34 + 0x24180406, // 007C GT R6 R2 R6 + 0x781A0006, // 007D JMPF R6 #0085 + 0x60180018, // 007E GETGBL R6 G24 + 0x581C0023, // 007F LDCONST R7 K35 + 0x5C200200, // 0080 MOVE R8 R1 + 0x5C240400, // 0081 MOVE R9 R2 + 0x94280722, // 0082 GETIDX R10 R3 K34 + 0x7C180800, // 0083 CALL R6 4 + 0xB0062406, // 0084 RAISE 1 K18 R6 + 0x8C180701, // 0085 GETMET R6 R3 K1 + 0x58200024, // 0086 LDCONST R8 K36 + 0x7C180400, // 0087 CALL R6 2 + 0x781A0017, // 0088 JMPF R6 #00A1 + 0x50180000, // 0089 LDBOOL R6 0 0 + 0xA41E0000, // 008A IMPORT R7 K0 + 0x94200724, // 008B GETIDX R8 R3 K36 + 0x8C241125, // 008C GETMET R9 R8 K37 + 0x7C240200, // 008D CALL R9 1 + 0x58280026, // 008E LDCONST R10 K38 + 0x142C1409, // 008F LT R11 R10 R9 + 0x782E0006, // 0090 JMPF R11 #0098 + 0x942C100A, // 0091 GETIDX R11 R8 R10 + 0x1C30040B, // 0092 EQ R12 R2 R11 + 0x78320001, // 0093 JMPF R12 #0096 + 0x50180200, // 0094 LDBOOL R6 1 0 + 0x70020001, // 0095 JMP #0098 + 0x00281527, // 0096 ADD R10 R10 K39 + 0x7001FFF6, // 0097 JMP #008F + 0x5C2C0C00, // 0098 MOVE R11 R6 + 0x742E0006, // 0099 JMPT R11 #00A1 + 0x602C0018, // 009A GETGBL R11 G24 + 0x58300028, // 009B LDCONST R12 K40 + 0x5C340200, // 009C MOVE R13 R1 + 0x5C380400, // 009D MOVE R14 R2 + 0x5C3C1000, // 009E MOVE R15 R8 + 0x7C2C0800, // 009F CALL R11 4 + 0xB006240B, // 00A0 RAISE 1 K18 R11 + 0x80040400, // 00A1 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _init_parameter_values +********************************************************************/ +be_local_closure(class_ParameterizedObject__init_parameter_values, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_init_parameter_values), + &be_const_str_solidified, + ( &(const binstruction[43]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x60080006, // 0001 GETGBL R2 G6 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x7C080200, // 0003 CALL R2 1 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x780E0022, // 0006 JMPF R3 #002A + 0x8C0C0301, // 0007 GETMET R3 R1 K1 + 0x5C140400, // 0008 MOVE R5 R2 + 0x58180002, // 0009 LDCONST R6 K2 + 0x7C0C0600, // 000A CALL R3 3 + 0x780E0018, // 000B JMPF R3 #0025 + 0x880C0502, // 000C GETMBR R3 R2 K2 + 0x60100010, // 000D GETGBL R4 G16 + 0x8C140729, // 000E GETMET R5 R3 K41 + 0x7C140200, // 000F CALL R5 1 + 0x7C100200, // 0010 CALL R4 1 + 0xA802000F, // 0011 EXBLK 0 #0022 + 0x5C140800, // 0012 MOVE R5 R4 + 0x7C140000, // 0013 CALL R5 0 + 0x88180106, // 0014 GETMBR R6 R0 K6 + 0x8C180D01, // 0015 GETMET R6 R6 K1 + 0x5C200A00, // 0016 MOVE R8 R5 + 0x7C180400, // 0017 CALL R6 2 + 0x741A0007, // 0018 JMPT R6 #0021 + 0x94180605, // 0019 GETIDX R6 R3 R5 + 0x8C1C0D01, // 001A GETMET R7 R6 K1 + 0x58240008, // 001B LDCONST R9 K8 + 0x7C1C0400, // 001C CALL R7 2 + 0x781E0002, // 001D JMPF R7 #0021 + 0x881C0106, // 001E GETMBR R7 R0 K6 + 0x94200D08, // 001F GETIDX R8 R6 K8 + 0x981C0A08, // 0020 SETIDX R7 R5 R8 + 0x7001FFEF, // 0021 JMP #0012 + 0x5810002A, // 0022 LDCONST R4 K42 + 0xAC100200, // 0023 CATCH R4 1 0 + 0xB0080000, // 0024 RAISE 2 R0 R0 + 0x600C0003, // 0025 GETGBL R3 G3 + 0x5C100400, // 0026 MOVE R4 R2 + 0x7C0C0200, // 0027 CALL R3 1 + 0x5C080600, // 0028 MOVE R2 R3 + 0x7001FFD9, // 0029 JMP #0004 + 0x80000000, // 002A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_ParameterizedObject_init, /* name */ + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x1C080202, // 0001 EQ R2 R1 R2 + 0x740A0004, // 0002 JMPT R2 #0008 + 0x60080004, // 0003 GETGBL R2 G4 + 0x5C0C0200, // 0004 MOVE R3 R1 + 0x7C080200, // 0005 CALL R2 1 + 0x2008051E, // 0006 NE R2 R2 K30 + 0x780A0000, // 0007 JMPF R2 #0009 + 0xB006252B, // 0008 RAISE 1 K18 K43 + 0x90021A01, // 0009 SETMBR R0 K13 R1 + 0x60080013, // 000A GETGBL R2 G19 + 0x7C080000, // 000B CALL R2 0 + 0x90020C02, // 000C SETMBR R0 K6 R2 + 0x8C08012C, // 000D GETMET R2 R0 K44 + 0x7C080200, // 000E CALL R2 1 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: != +********************************************************************/ +be_local_closure(class_ParameterizedObject__X21_X3D, /* name */ + be_nested_proto( + 3, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ParameterizedObject, /* shared constants */ + be_str_weak(_X21_X3D), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x1C080001, // 0000 EQ R2 R0 R1 + 0x780A0000, // 0001 JMPF R2 #0003 + 0x50080001, // 0002 LDBOOL R2 0 1 + 0x50080200, // 0003 LDBOOL R2 1 0 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: _has_param ********************************************************************/ @@ -20199,23 +20762,23 @@ be_local_closure(class_ParameterizedObject_setmember, /* name */ be_str_weak(setmember), &be_const_str_solidified, ( &(const binstruction[18]) { /* code */ - 0x8C0C0107, // 0000 GETMET R3 R0 K7 + 0x8C0C010B, // 0000 GETMET R3 R0 K11 0x5C140200, // 0001 MOVE R5 R1 0x7C0C0400, // 0002 CALL R3 2 0x780E0004, // 0003 JMPF R3 #0009 - 0x8C0C010D, // 0004 GETMET R3 R0 K13 + 0x8C0C0111, // 0004 GETMET R3 R0 K17 0x5C140200, // 0005 MOVE R5 R1 0x5C180400, // 0006 MOVE R6 R2 0x7C0C0600, // 0007 CALL R3 3 0x70020007, // 0008 JMP #0011 0x600C0018, // 0009 GETGBL R3 G24 - 0x5810000B, // 000A LDCONST R4 K11 + 0x5810000F, // 000A LDCONST R4 K15 0x60140005, // 000B GETGBL R5 G5 0x5C180000, // 000C MOVE R6 R0 0x7C140200, // 000D CALL R5 1 0x5C180200, // 000E MOVE R6 R1 0x7C0C0600, // 000F CALL R3 3 - 0xB0061803, // 0010 RAISE 1 K12 R3 + 0xB0062003, // 0010 RAISE 1 K16 R3 0x80000000, // 0011 RET 0 }) ) @@ -20223,73 +20786,6 @@ be_local_closure(class_ParameterizedObject_setmember, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: get_param_value -********************************************************************/ -be_local_closure(class_ParameterizedObject_get_param_value, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(get_param_value), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x8C0C0108, // 0000 GETMET R3 R0 K8 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C0C0600, // 0003 CALL R3 3 - 0x80040600, // 0004 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_ParameterizedObject_init, /* name */ - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x1C080202, // 0001 EQ R2 R1 R2 - 0x740A0004, // 0002 JMPT R2 #0008 - 0x60080004, // 0003 GETGBL R2 G4 - 0x5C0C0200, // 0004 MOVE R3 R1 - 0x7C080200, // 0005 CALL R2 1 - 0x2008050E, // 0006 NE R2 R2 K14 - 0x780A0000, // 0007 JMPF R2 #0009 - 0xB0061F10, // 0008 RAISE 1 K15 K16 - 0x90021201, // 0009 SETMBR R0 K9 R1 - 0x60080013, // 000A GETGBL R2 G19 - 0x7C080000, // 000B CALL R2 0 - 0x90020C02, // 000C SETMBR R0 K6 R2 - 0x8C080111, // 000D GETMET R2 R0 K17 - 0x7C080200, // 000E CALL R2 1 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: get_param ********************************************************************/ @@ -20315,17 +20811,17 @@ be_local_closure(class_ParameterizedObject_get_param, /* name */ 0x880C0106, // 0005 GETMBR R3 R0 K6 0x940C0601, // 0006 GETIDX R3 R3 R1 0x80040600, // 0007 RET 1 R3 - 0x8C0C0105, // 0008 GETMET R3 R0 K5 + 0x8C0C0107, // 0008 GETMET R3 R0 K7 0x5C140200, // 0009 MOVE R5 R1 0x7C0C0400, // 000A CALL R3 2 0x4C100000, // 000B LDNIL R4 0x20100604, // 000C NE R4 R3 R4 0x78120005, // 000D JMPF R4 #0014 0x8C100701, // 000E GETMET R4 R3 K1 - 0x58180012, // 000F LDCONST R6 K18 + 0x58180008, // 000F LDCONST R6 K8 0x7C100400, // 0010 CALL R4 2 0x78120001, // 0011 JMPF R4 #0014 - 0x94100712, // 0012 GETIDX R4 R3 K18 + 0x94100708, // 0012 GETIDX R4 R3 K8 0x80040800, // 0013 RET 1 R4 0x80040400, // 0014 RET 1 R2 }) @@ -20334,584 +20830,38 @@ be_local_closure(class_ParameterizedObject_get_param, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: set_param -********************************************************************/ -be_local_closure(class_ParameterizedObject_set_param, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(set_param), - &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ - 0x8C0C0107, // 0000 GETMET R3 R0 K7 - 0x5C140200, // 0001 MOVE R5 R1 - 0x7C0C0400, // 0002 CALL R3 2 - 0x740E0001, // 0003 JMPT R3 #0006 - 0x500C0000, // 0004 LDBOOL R3 0 0 - 0x80040600, // 0005 RET 1 R3 - 0xA8020008, // 0006 EXBLK 0 #0010 - 0x8C0C010D, // 0007 GETMET R3 R0 K13 - 0x5C140200, // 0008 MOVE R5 R1 - 0x5C180400, // 0009 MOVE R6 R2 - 0x7C0C0600, // 000A CALL R3 3 - 0x500C0200, // 000B LDBOOL R3 1 0 - 0xA8040001, // 000C EXBLK 1 1 - 0x80040600, // 000D RET 1 R3 - 0xA8040001, // 000E EXBLK 1 1 - 0x70020006, // 000F JMP #0017 - 0x580C000F, // 0010 LDCONST R3 K15 - 0xAC0C0201, // 0011 CATCH R3 1 1 - 0x70020002, // 0012 JMP #0016 - 0x50100000, // 0013 LDBOOL R4 0 0 - 0x80040800, // 0014 RET 1 R4 - 0x70020000, // 0015 JMP #0017 - 0xB0080000, // 0016 RAISE 2 R0 R0 - 0x80000000, // 0017 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_param -********************************************************************/ -be_local_closure(class_ParameterizedObject__validate_param, /* name */ - be_nested_proto( - 16, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_validate_param), - &be_const_str_solidified, - ( &(const binstruction[162]) { /* code */ - 0x8C0C0105, // 0000 GETMET R3 R0 K5 - 0x5C140200, // 0001 MOVE R5 R1 - 0x7C0C0400, // 0002 CALL R3 2 - 0x4C100000, // 0003 LDNIL R4 - 0x1C100604, // 0004 EQ R4 R3 R4 - 0x78120007, // 0005 JMPF R4 #000E - 0x60100018, // 0006 GETGBL R4 G24 - 0x58140013, // 0007 LDCONST R5 K19 - 0x5C180200, // 0008 MOVE R6 R1 - 0x601C0005, // 0009 GETGBL R7 G5 - 0x5C200000, // 000A MOVE R8 R0 - 0x7C1C0200, // 000B CALL R7 1 - 0x7C100600, // 000C CALL R4 3 - 0xB0061E04, // 000D RAISE 1 K15 R4 - 0xB8122800, // 000E GETNGBL R4 K20 - 0x8C100915, // 000F GETMET R4 R4 K21 - 0x5C180400, // 0010 MOVE R6 R2 - 0x7C100400, // 0011 CALL R4 2 - 0x78120000, // 0012 JMPF R4 #0014 - 0x80040400, // 0013 RET 1 R2 - 0x4C100000, // 0014 LDNIL R4 - 0x1C100404, // 0015 EQ R4 R2 R4 - 0x78120012, // 0016 JMPF R4 #002A - 0x8C100701, // 0017 GETMET R4 R3 K1 - 0x58180016, // 0018 LDCONST R6 K22 - 0x7C100400, // 0019 CALL R4 2 - 0x78120004, // 001A JMPF R4 #0020 - 0x94100716, // 001B GETIDX R4 R3 K22 - 0x50140200, // 001C LDBOOL R5 1 0 - 0x1C100805, // 001D EQ R4 R4 R5 - 0x78120000, // 001E JMPF R4 #0020 - 0x80040400, // 001F RET 1 R2 - 0x8C100701, // 0020 GETMET R4 R3 K1 - 0x58180012, // 0021 LDCONST R6 K18 - 0x7C100400, // 0022 CALL R4 2 - 0x78120000, // 0023 JMPF R4 #0025 - 0x80040400, // 0024 RET 1 R2 - 0x60100018, // 0025 GETGBL R4 G24 - 0x58140017, // 0026 LDCONST R5 K23 - 0x5C180200, // 0027 MOVE R6 R1 - 0x7C100400, // 0028 CALL R4 2 - 0xB0061E04, // 0029 RAISE 1 K15 R4 - 0x58100018, // 002A LDCONST R4 K24 - 0x8C140701, // 002B GETMET R5 R3 K1 - 0x581C0019, // 002C LDCONST R7 K25 - 0x7C140400, // 002D CALL R5 2 - 0x78160000, // 002E JMPF R5 #0030 - 0x94100719, // 002F GETIDX R4 R3 K25 - 0x60140004, // 0030 GETGBL R5 G4 - 0x5C180400, // 0031 MOVE R6 R2 - 0x7C140200, // 0032 CALL R5 1 - 0x2018091A, // 0033 NE R6 R4 K26 - 0x781A0031, // 0034 JMPF R6 #0067 - 0x1C180918, // 0035 EQ R6 R4 K24 - 0x781A000A, // 0036 JMPF R6 #0042 - 0x1C180B1B, // 0037 EQ R6 R5 K27 - 0x781A0008, // 0038 JMPF R6 #0042 - 0xA41A3800, // 0039 IMPORT R6 K28 - 0x601C0009, // 003A GETGBL R7 G9 - 0x8C200D1D, // 003B GETMET R8 R6 K29 - 0x5C280400, // 003C MOVE R10 R2 - 0x7C200400, // 003D CALL R8 2 - 0x7C1C0200, // 003E CALL R7 1 - 0x5C080E00, // 003F MOVE R2 R7 - 0x58140018, // 0040 LDCONST R5 K24 - 0x70020024, // 0041 JMP #0067 - 0x1C18091E, // 0042 EQ R6 R4 K30 - 0x781A0018, // 0043 JMPF R6 #005D - 0x1C180B0E, // 0044 EQ R6 R5 K14 - 0x781A0006, // 0045 JMPF R6 #004D - 0x6018000F, // 0046 GETGBL R6 G15 - 0x5C1C0400, // 0047 MOVE R7 R2 - 0x60200015, // 0048 GETGBL R8 G21 - 0x7C180400, // 0049 CALL R6 2 - 0x781A0001, // 004A JMPF R6 #004D - 0x5814001E, // 004B LDCONST R5 K30 - 0x7002000E, // 004C JMP #005C - 0x20180B0E, // 004D NE R6 R5 K14 - 0x741A0004, // 004E JMPT R6 #0054 - 0x6018000F, // 004F GETGBL R6 G15 - 0x5C1C0400, // 0050 MOVE R7 R2 - 0x60200015, // 0051 GETGBL R8 G21 - 0x7C180400, // 0052 CALL R6 2 - 0x741A0007, // 0053 JMPT R6 #005C - 0x60180018, // 0054 GETGBL R6 G24 - 0x581C001F, // 0055 LDCONST R7 K31 - 0x5C200200, // 0056 MOVE R8 R1 - 0x5C240800, // 0057 MOVE R9 R4 - 0x5C280A00, // 0058 MOVE R10 R5 - 0x5C2C0400, // 0059 MOVE R11 R2 - 0x7C180A00, // 005A CALL R6 5 - 0xB0061E06, // 005B RAISE 1 K15 R6 - 0x70020009, // 005C JMP #0067 - 0x20180805, // 005D NE R6 R4 R5 - 0x781A0007, // 005E JMPF R6 #0067 - 0x60180018, // 005F GETGBL R6 G24 - 0x581C001F, // 0060 LDCONST R7 K31 - 0x5C200200, // 0061 MOVE R8 R1 - 0x5C240800, // 0062 MOVE R9 R4 - 0x5C280A00, // 0063 MOVE R10 R5 - 0x5C2C0400, // 0064 MOVE R11 R2 - 0x7C180A00, // 0065 CALL R6 5 - 0xB0061E06, // 0066 RAISE 1 K15 R6 - 0x1C180B18, // 0067 EQ R6 R5 K24 - 0x781A001B, // 0068 JMPF R6 #0085 - 0x8C180701, // 0069 GETMET R6 R3 K1 - 0x58200020, // 006A LDCONST R8 K32 - 0x7C180400, // 006B CALL R6 2 - 0x781A0009, // 006C JMPF R6 #0077 - 0x94180720, // 006D GETIDX R6 R3 K32 - 0x14180406, // 006E LT R6 R2 R6 - 0x781A0006, // 006F JMPF R6 #0077 - 0x60180018, // 0070 GETGBL R6 G24 - 0x581C0021, // 0071 LDCONST R7 K33 - 0x5C200200, // 0072 MOVE R8 R1 - 0x5C240400, // 0073 MOVE R9 R2 - 0x94280720, // 0074 GETIDX R10 R3 K32 - 0x7C180800, // 0075 CALL R6 4 - 0xB0061E06, // 0076 RAISE 1 K15 R6 - 0x8C180701, // 0077 GETMET R6 R3 K1 - 0x58200022, // 0078 LDCONST R8 K34 - 0x7C180400, // 0079 CALL R6 2 - 0x781A0009, // 007A JMPF R6 #0085 - 0x94180722, // 007B GETIDX R6 R3 K34 - 0x24180406, // 007C GT R6 R2 R6 - 0x781A0006, // 007D JMPF R6 #0085 - 0x60180018, // 007E GETGBL R6 G24 - 0x581C0023, // 007F LDCONST R7 K35 - 0x5C200200, // 0080 MOVE R8 R1 - 0x5C240400, // 0081 MOVE R9 R2 - 0x94280722, // 0082 GETIDX R10 R3 K34 - 0x7C180800, // 0083 CALL R6 4 - 0xB0061E06, // 0084 RAISE 1 K15 R6 - 0x8C180701, // 0085 GETMET R6 R3 K1 - 0x58200024, // 0086 LDCONST R8 K36 - 0x7C180400, // 0087 CALL R6 2 - 0x781A0017, // 0088 JMPF R6 #00A1 - 0x50180000, // 0089 LDBOOL R6 0 0 - 0xA41E0000, // 008A IMPORT R7 K0 - 0x94200724, // 008B GETIDX R8 R3 K36 - 0x8C241125, // 008C GETMET R9 R8 K37 - 0x7C240200, // 008D CALL R9 1 - 0x58280026, // 008E LDCONST R10 K38 - 0x142C1409, // 008F LT R11 R10 R9 - 0x782E0006, // 0090 JMPF R11 #0098 - 0x942C100A, // 0091 GETIDX R11 R8 R10 - 0x1C30040B, // 0092 EQ R12 R2 R11 - 0x78320001, // 0093 JMPF R12 #0096 - 0x50180200, // 0094 LDBOOL R6 1 0 - 0x70020001, // 0095 JMP #0098 - 0x00281527, // 0096 ADD R10 R10 K39 - 0x7001FFF6, // 0097 JMP #008F - 0x5C2C0C00, // 0098 MOVE R11 R6 - 0x742E0006, // 0099 JMPT R11 #00A1 - 0x602C0018, // 009A GETGBL R11 G24 - 0x58300028, // 009B LDCONST R12 K40 - 0x5C340200, // 009C MOVE R13 R1 - 0x5C380400, // 009D MOVE R14 R2 - 0x5C3C1000, // 009E MOVE R15 R8 - 0x7C2C0800, // 009F CALL R11 4 - 0xB0061E0B, // 00A0 RAISE 1 K15 R11 - 0x80040400, // 00A1 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _get_param_def -********************************************************************/ -be_local_closure(class_ParameterizedObject__get_param_def, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_get_param_def), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x600C0006, // 0001 GETGBL R3 G6 - 0x5C100000, // 0002 MOVE R4 R0 - 0x7C0C0200, // 0003 CALL R3 1 - 0x4C100000, // 0004 LDNIL R4 - 0x20100604, // 0005 NE R4 R3 R4 - 0x78120010, // 0006 JMPF R4 #0018 - 0x8C100501, // 0007 GETMET R4 R2 K1 - 0x5C180600, // 0008 MOVE R6 R3 - 0x581C0002, // 0009 LDCONST R7 K2 - 0x7C100600, // 000A CALL R4 3 - 0x78120006, // 000B JMPF R4 #0013 - 0x88100702, // 000C GETMBR R4 R3 K2 - 0x8C140901, // 000D GETMET R5 R4 K1 - 0x5C1C0200, // 000E MOVE R7 R1 - 0x7C140400, // 000F CALL R5 2 - 0x78160001, // 0010 JMPF R5 #0013 - 0x94140801, // 0011 GETIDX R5 R4 R1 - 0x80040A00, // 0012 RET 1 R5 - 0x60100003, // 0013 GETGBL R4 G3 - 0x5C140600, // 0014 MOVE R5 R3 - 0x7C100200, // 0015 CALL R4 1 - 0x5C0C0800, // 0016 MOVE R3 R4 - 0x7001FFEB, // 0017 JMP #0004 - 0x4C100000, // 0018 LDNIL R4 - 0x80040800, // 0019 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _init_parameter_values -********************************************************************/ -be_local_closure(class_ParameterizedObject__init_parameter_values, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_init_parameter_values), - &be_const_str_solidified, - ( &(const binstruction[43]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x60080006, // 0001 GETGBL R2 G6 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C080200, // 0003 CALL R2 1 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0022, // 0006 JMPF R3 #002A - 0x8C0C0301, // 0007 GETMET R3 R1 K1 - 0x5C140400, // 0008 MOVE R5 R2 - 0x58180002, // 0009 LDCONST R6 K2 - 0x7C0C0600, // 000A CALL R3 3 - 0x780E0018, // 000B JMPF R3 #0025 - 0x880C0502, // 000C GETMBR R3 R2 K2 - 0x60100010, // 000D GETGBL R4 G16 - 0x8C140703, // 000E GETMET R5 R3 K3 - 0x7C140200, // 000F CALL R5 1 - 0x7C100200, // 0010 CALL R4 1 - 0xA802000F, // 0011 EXBLK 0 #0022 - 0x5C140800, // 0012 MOVE R5 R4 - 0x7C140000, // 0013 CALL R5 0 - 0x88180106, // 0014 GETMBR R6 R0 K6 - 0x8C180D01, // 0015 GETMET R6 R6 K1 - 0x5C200A00, // 0016 MOVE R8 R5 - 0x7C180400, // 0017 CALL R6 2 - 0x741A0007, // 0018 JMPT R6 #0021 - 0x94180605, // 0019 GETIDX R6 R3 R5 - 0x8C1C0D01, // 001A GETMET R7 R6 K1 - 0x58240012, // 001B LDCONST R9 K18 - 0x7C1C0400, // 001C CALL R7 2 - 0x781E0002, // 001D JMPF R7 #0021 - 0x881C0106, // 001E GETMBR R7 R0 K6 - 0x94200D12, // 001F GETIDX R8 R6 K18 - 0x981C0A08, // 0020 SETIDX R7 R5 R8 - 0x7001FFEF, // 0021 JMP #0012 - 0x58100004, // 0022 LDCONST R4 K4 - 0xAC100200, // 0023 CATCH R4 1 0 - 0xB0080000, // 0024 RAISE 2 R0 R0 - 0x600C0003, // 0025 GETGBL R3 G3 - 0x5C100400, // 0026 MOVE R4 R2 - 0x7C0C0200, // 0027 CALL R3 1 - 0x5C080600, // 0028 MOVE R2 R3 - 0x7001FFD9, // 0029 JMP #0004 - 0x80000000, // 002A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: == -********************************************************************/ -be_local_closure(class_ParameterizedObject__X3D_X3D, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_X3D_X3D), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0529, // 0001 GETMET R3 R2 K41 - 0x5C140000, // 0002 MOVE R5 R0 - 0x7C0C0400, // 0003 CALL R3 2 - 0x8C100529, // 0004 GETMET R4 R2 K41 - 0x5C180200, // 0005 MOVE R6 R1 - 0x7C100400, // 0006 CALL R4 2 - 0x1C0C0604, // 0007 EQ R3 R3 R4 - 0x80040600, // 0008 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _resolve_parameter_value -********************************************************************/ -be_local_closure(class_ParameterizedObject__resolve_parameter_value, /* name */ - be_nested_proto( - 8, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_resolve_parameter_value), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x880C0106, // 0000 GETMBR R3 R0 K6 - 0x8C0C0701, // 0001 GETMET R3 R3 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x740E000D, // 0004 JMPT R3 #0013 - 0x8C0C0105, // 0005 GETMET R3 R0 K5 - 0x5C140200, // 0006 MOVE R5 R1 - 0x7C0C0400, // 0007 CALL R3 2 - 0x4C100000, // 0008 LDNIL R4 - 0x20100604, // 0009 NE R4 R3 R4 - 0x78120005, // 000A JMPF R4 #0011 - 0x8C100701, // 000B GETMET R4 R3 K1 - 0x58180012, // 000C LDCONST R6 K18 - 0x7C100400, // 000D CALL R4 2 - 0x78120001, // 000E JMPF R4 #0011 - 0x94100712, // 000F GETIDX R4 R3 K18 - 0x80040800, // 0010 RET 1 R4 - 0x4C100000, // 0011 LDNIL R4 - 0x80040800, // 0012 RET 1 R4 - 0x880C0106, // 0013 GETMBR R3 R0 K6 - 0x940C0601, // 0014 GETIDX R3 R3 R1 - 0xB8122800, // 0015 GETNGBL R4 K20 - 0x8C100915, // 0016 GETMET R4 R4 K21 - 0x5C180600, // 0017 MOVE R6 R3 - 0x7C100400, // 0018 CALL R4 2 - 0x78120005, // 0019 JMPF R4 #0020 - 0x8C10072A, // 001A GETMET R4 R3 K42 - 0x5C180200, // 001B MOVE R6 R1 - 0x5C1C0400, // 001C MOVE R7 R2 - 0x7C100600, // 001D CALL R4 3 - 0x80040800, // 001E RET 1 R4 - 0x70020000, // 001F JMP #0021 - 0x80040600, // 0020 RET 1 R3 - 0x80000000, // 0021 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: != -********************************************************************/ -be_local_closure(class_ParameterizedObject__X21_X3D, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_X21_X3D), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x1C080001, // 0000 EQ R2 R0 R1 - 0x780A0000, // 0001 JMPF R2 #0003 - 0x50080001, // 0002 LDBOOL R2 0 1 - 0x50080200, // 0003 LDBOOL R2 1 0 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _set_parameter_value -********************************************************************/ -be_local_closure(class_ParameterizedObject__set_parameter_value, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(_set_parameter_value), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0xB80E2800, // 0000 GETNGBL R3 K20 - 0x8C0C0715, // 0001 GETMET R3 R3 K21 - 0x5C140400, // 0002 MOVE R5 R2 - 0x7C0C0400, // 0003 CALL R3 2 - 0x740E0004, // 0004 JMPT R3 #000A - 0x8C0C012B, // 0005 GETMET R3 R0 K43 - 0x5C140200, // 0006 MOVE R5 R1 - 0x5C180400, // 0007 MOVE R6 R2 - 0x7C0C0600, // 0008 CALL R3 3 - 0x5C080600, // 0009 MOVE R2 R3 - 0x880C0106, // 000A GETMBR R3 R0 K6 - 0x980C0202, // 000B SETIDX R3 R1 R2 - 0x8C0C012C, // 000C GETMET R3 R0 K44 - 0x5C140200, // 000D MOVE R5 R1 - 0x5C180400, // 000E MOVE R6 R2 - 0x7C0C0600, // 000F CALL R3 3 - 0x80000000, // 0010 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: resolve_value -********************************************************************/ -be_local_closure(class_ParameterizedObject_resolve_value, /* name */ - be_nested_proto( - 8, /* nstack */ - 4, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ParameterizedObject, /* shared constants */ - be_str_weak(resolve_value), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x4C100000, // 0000 LDNIL R4 - 0x1C100204, // 0001 EQ R4 R1 R4 - 0x78120001, // 0002 JMPF R4 #0005 - 0x4C100000, // 0003 LDNIL R4 - 0x80040800, // 0004 RET 1 R4 - 0xB8122800, // 0005 GETNGBL R4 K20 - 0x8C100915, // 0006 GETMET R4 R4 K21 - 0x5C180200, // 0007 MOVE R6 R1 - 0x7C100400, // 0008 CALL R4 2 - 0x78120005, // 0009 JMPF R4 #0010 - 0x8C10032A, // 000A GETMET R4 R1 K42 - 0x5C180400, // 000B MOVE R6 R2 - 0x5C1C0600, // 000C MOVE R7 R3 - 0x7C100600, // 000D CALL R4 3 - 0x80040800, // 000E RET 1 R4 - 0x70020000, // 000F JMP #0011 - 0x80040200, // 0010 RET 1 R1 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified class: ParameterizedObject ********************************************************************/ be_local_class(ParameterizedObject, 2, NULL, - be_nested_map(22, + be_nested_map(21, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(resolve_value, 13), be_const_closure(class_ParameterizedObject_resolve_value_closure) }, + { be_const_key_weak(get_param, -1), be_const_closure(class_ParameterizedObject_get_param_closure) }, + { be_const_key_weak(engine, -1), be_const_var(1) }, + { be_const_key_weak(resolve_value, 1), be_const_closure(class_ParameterizedObject_resolve_value_closure) }, + { be_const_key_weak(_resolve_parameter_value, -1), be_const_closure(class_ParameterizedObject__resolve_parameter_value_closure) }, + { be_const_key_weak(_set_parameter_value, -1), be_const_closure(class_ParameterizedObject__set_parameter_value_closure) }, { be_const_key_weak(on_param_changed, -1), be_const_closure(class_ParameterizedObject_on_param_changed_closure) }, - { be_const_key_weak(get_params_metadata, -1), be_const_closure(class_ParameterizedObject_get_params_metadata_closure) }, - { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + { be_const_key_weak(set_param, -1), be_const_closure(class_ParameterizedObject_set_param_closure) }, + { be_const_key_weak(_validate_param, 5), be_const_closure(class_ParameterizedObject__validate_param_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_ParameterizedObject_init_closure) }, + { be_const_key_weak(get_param_value, -1), be_const_closure(class_ParameterizedObject_get_param_value_closure) }, + { be_const_key_weak(_get_param_def, 6), be_const_closure(class_ParameterizedObject__get_param_def_closure) }, + { be_const_key_weak(_X3D_X3D, -1), be_const_closure(class_ParameterizedObject__X3D_X3D_closure) }, + { be_const_key_weak(PARAMS, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(0, ( (struct bmapnode*) &(const bmapnode[]) { })) ) } )) }, - { be_const_key_weak(init, -1), be_const_closure(class_ParameterizedObject_init_closure) }, - { be_const_key_weak(start, 18), be_const_closure(class_ParameterizedObject_start_closure) }, - { be_const_key_weak(_has_param, -1), be_const_closure(class_ParameterizedObject__has_param_closure) }, - { be_const_key_weak(setmember, -1), be_const_closure(class_ParameterizedObject_setmember_closure) }, - { be_const_key_weak(engine, -1), be_const_var(1) }, - { be_const_key_weak(values, 4), be_const_var(0) }, - { be_const_key_weak(set_param, -1), be_const_closure(class_ParameterizedObject_set_param_closure) }, - { be_const_key_weak(get_param_metadata, 10), be_const_closure(class_ParameterizedObject_get_param_metadata_closure) }, - { be_const_key_weak(_validate_param, 15), be_const_closure(class_ParameterizedObject__validate_param_closure) }, - { be_const_key_weak(_X3D_X3D, 14), be_const_closure(class_ParameterizedObject__X3D_X3D_closure) }, + { be_const_key_weak(member, 7), be_const_closure(class_ParameterizedObject_member_closure) }, + { be_const_key_weak(get_param_metadata, 15), be_const_closure(class_ParameterizedObject_get_param_metadata_closure) }, { be_const_key_weak(_init_parameter_values, -1), be_const_closure(class_ParameterizedObject__init_parameter_values_closure) }, - { be_const_key_weak(_get_param_def, -1), be_const_closure(class_ParameterizedObject__get_param_def_closure) }, - { be_const_key_weak(_resolve_parameter_value, -1), be_const_closure(class_ParameterizedObject__resolve_parameter_value_closure) }, - { be_const_key_weak(member, 8), be_const_closure(class_ParameterizedObject_member_closure) }, - { be_const_key_weak(get_param, 1), be_const_closure(class_ParameterizedObject_get_param_closure) }, - { be_const_key_weak(_X21_X3D, 3), be_const_closure(class_ParameterizedObject__X21_X3D_closure) }, - { be_const_key_weak(_set_parameter_value, -1), be_const_closure(class_ParameterizedObject__set_parameter_value_closure) }, - { be_const_key_weak(get_param_value, 0), be_const_closure(class_ParameterizedObject_get_param_value_closure) }, + { be_const_key_weak(_X21_X3D, -1), be_const_closure(class_ParameterizedObject__X21_X3D_closure) }, + { be_const_key_weak(_has_param, -1), be_const_closure(class_ParameterizedObject__has_param_closure) }, + { be_const_key_weak(values, -1), be_const_var(0) }, + { be_const_key_weak(setmember, -1), be_const_closure(class_ParameterizedObject_setmember_closure) }, + { be_const_key_weak(start, 0), be_const_closure(class_ParameterizedObject_start_closure) }, })), be_str_weak(ParameterizedObject) ); diff --git a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h index 4f3ef8213..28233af2f 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h @@ -1954,7 +1954,7 @@ be_local_class(Token, { be_const_key_weak(is_separator, -1), be_const_closure(class_Token_is_separator_closure) }, { be_const_key_weak(NUMBER, -1), be_const_int(2) }, { be_const_key_weak(keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(70, + be_const_list( * be_nested_list(72, ( (struct bvalue*) &(const bvalue[]) { be_nested_str_weak(strip), be_nested_str_weak(set), @@ -1989,6 +1989,8 @@ be_local_class(Token, be_nested_str_weak(from), be_nested_str_weak(to), be_nested_str_weak(return), + be_nested_str_weak(reset), + be_nested_str_weak(restart), be_nested_str_weak(at), be_nested_str_weak(ease), be_nested_str_weak(sync), @@ -2359,6 +2361,1531 @@ be_local_closure(create_eof_token, /* name */ extern const bclass be_class_SimpleDSLTranspiler; +/******************************************************************** +** Solidified function: create_computation_closure +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_create_computation_closure, /* name */ + be_nested_proto( + 12, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(transform_operand_for_closure), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(_X20_X20), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(replace), + /* K6 */ be_nested_str_weak(_X20), + /* K7 */ be_nested_str_weak(def_X20_X28self_X29_X20return_X20_X25s_X20_X25s_X20_X25s_X20end), + /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), + }), + be_str_weak(create_computation_closure), + &be_const_str_solidified, + ( &(const binstruction[44]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x8C140101, // 0001 GETMET R5 R0 K1 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x7C140400, // 0003 CALL R5 2 + 0x8C180101, // 0004 GETMET R6 R0 K1 + 0x5C200600, // 0005 MOVE R8 R3 + 0x7C180400, // 0006 CALL R6 2 + 0x8C1C0902, // 0007 GETMET R7 R4 K2 + 0x5C240A00, // 0008 MOVE R9 R5 + 0x58280003, // 0009 LDCONST R10 K3 + 0x7C1C0600, // 000A CALL R7 3 + 0x281C0F04, // 000B GE R7 R7 K4 + 0x781E0006, // 000C JMPF R7 #0014 + 0x8C1C0905, // 000D GETMET R7 R4 K5 + 0x5C240A00, // 000E MOVE R9 R5 + 0x58280003, // 000F LDCONST R10 K3 + 0x582C0006, // 0010 LDCONST R11 K6 + 0x7C1C0800, // 0011 CALL R7 4 + 0x5C140E00, // 0012 MOVE R5 R7 + 0x7001FFF2, // 0013 JMP #0007 + 0x8C1C0902, // 0014 GETMET R7 R4 K2 + 0x5C240C00, // 0015 MOVE R9 R6 + 0x58280003, // 0016 LDCONST R10 K3 + 0x7C1C0600, // 0017 CALL R7 3 + 0x281C0F04, // 0018 GE R7 R7 K4 + 0x781E0006, // 0019 JMPF R7 #0021 + 0x8C1C0905, // 001A GETMET R7 R4 K5 + 0x5C240C00, // 001B MOVE R9 R6 + 0x58280003, // 001C LDCONST R10 K3 + 0x582C0006, // 001D LDCONST R11 K6 + 0x7C1C0800, // 001E CALL R7 4 + 0x5C180E00, // 001F MOVE R6 R7 + 0x7001FFF2, // 0020 JMP #0014 + 0x601C0018, // 0021 GETGBL R7 G24 + 0x58200007, // 0022 LDCONST R8 K7 + 0x5C240A00, // 0023 MOVE R9 R5 + 0x5C280400, // 0024 MOVE R10 R2 + 0x5C2C0C00, // 0025 MOVE R11 R6 + 0x7C1C0800, // 0026 CALL R7 4 + 0x60200018, // 0027 GETGBL R8 G24 + 0x58240008, // 0028 LDCONST R9 K8 + 0x5C280E00, // 0029 MOVE R10 R7 + 0x7C200400, // 002A CALL R8 2 + 0x80041000, // 002B RET 1 R8 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_keyword +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(KEYWORD), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), + }), + be_str_weak(expect_keyword), + &be_const_str_solidified, + ( &(const binstruction[24]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x200C0403, // 0003 NE R3 R2 R3 + 0x780E000B, // 0004 JMPF R3 #0011 + 0x880C0501, // 0005 GETMBR R3 R2 K1 + 0xB8120400, // 0006 GETNGBL R4 K2 + 0x88100903, // 0007 GETMBR R4 R4 K3 + 0x88100904, // 0008 GETMBR R4 R4 K4 + 0x1C0C0604, // 0009 EQ R3 R3 R4 + 0x780E0005, // 000A JMPF R3 #0011 + 0x880C0505, // 000B GETMBR R3 R2 K5 + 0x1C0C0601, // 000C EQ R3 R3 R1 + 0x780E0002, // 000D JMPF R3 #0011 + 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x7C0C0200, // 000F CALL R3 1 + 0x70020005, // 0010 JMP #0017 + 0x8C0C0107, // 0011 GETMET R3 R0 K7 + 0x60140018, // 0012 GETGBL R5 G24 + 0x58180008, // 0013 LDCONST R6 K8 + 0x5C1C0200, // 0014 MOVE R7 R1 + 0x7C140400, // 0015 CALL R5 2 + 0x7C0C0400, // 0016 CALL R3 2 + 0x80000000, // 0017 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_identifier, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(IDENTIFIER), + /* K5 */ be_nested_str_weak(COLOR), + /* K6 */ be_nested_str_weak(KEYWORD), + /* K7 */ be_nested_str_weak(can_use_as_identifier), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(error), + /* K11 */ be_nested_str_weak(Expected_X20identifier), + /* K12 */ be_nested_str_weak(unknown), + }), + be_str_weak(expect_identifier), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A001A, // 0004 JMPF R2 #0020 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A000F, // 000A JMPT R2 #001B + 0x88080301, // 000B GETMBR R2 R1 K1 + 0xB80E0400, // 000C GETNGBL R3 K2 + 0x880C0703, // 000D GETMBR R3 R3 K3 + 0x880C0705, // 000E GETMBR R3 R3 K5 + 0x1C080403, // 000F EQ R2 R2 R3 + 0x740A0009, // 0010 JMPT R2 #001B + 0x88080301, // 0011 GETMBR R2 R1 K1 + 0xB80E0400, // 0012 GETNGBL R3 K2 + 0x880C0703, // 0013 GETMBR R3 R3 K3 + 0x880C0706, // 0014 GETMBR R3 R3 K6 + 0x1C080403, // 0015 EQ R2 R2 R3 + 0x780A0008, // 0016 JMPF R2 #0020 + 0x8C080107, // 0017 GETMET R2 R0 K7 + 0x88100308, // 0018 GETMBR R4 R1 K8 + 0x7C080400, // 0019 CALL R2 2 + 0x780A0004, // 001A JMPF R2 #0020 + 0x88080308, // 001B GETMBR R2 R1 K8 + 0x8C0C0109, // 001C GETMET R3 R0 K9 + 0x7C0C0200, // 001D CALL R3 1 + 0x80040400, // 001E RET 1 R2 + 0x70020003, // 001F JMP #0024 + 0x8C08010A, // 0020 GETMET R2 R0 K10 + 0x5810000B, // 0021 LDCONST R4 K11 + 0x7C080400, // 0022 CALL R2 2 + 0x80061800, // 0023 RET 1 K12 + 0x80000000, // 0024 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_array_literal +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[21]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_bracket), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_bracket), + /* K3 */ be_nested_str_weak(process_value), + /* K4 */ be_nested_str_weak(array_element), + /* K5 */ be_nested_str_weak(push), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(COMMA), + /* K11 */ be_nested_str_weak(next), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), + /* K14 */ be_nested_str_weak(expect_right_bracket), + /* K15 */ be_nested_str_weak(_X5B), + /* K16 */ be_const_int(0), + /* K17 */ be_const_int(1), + /* K18 */ be_nested_str_weak(_X2C_X20), + /* K19 */ be_nested_str_weak(stop_iteration), + /* K20 */ be_nested_str_weak(_X5D), + }), + be_str_weak(process_array_literal), + &be_const_str_solidified, + ( &(const binstruction[64]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x60040012, // 0002 GETGBL R1 G18 + 0x7C040000, // 0003 CALL R1 0 + 0x8C080101, // 0004 GETMET R2 R0 K1 + 0x7C080200, // 0005 CALL R2 1 + 0x740A0020, // 0006 JMPT R2 #0028 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A001D, // 0009 JMPT R2 #0028 + 0x8C080103, // 000A GETMET R2 R0 K3 + 0x58100004, // 000B LDCONST R4 K4 + 0x7C080400, // 000C CALL R2 2 + 0x8C0C0305, // 000D GETMET R3 R1 K5 + 0x5C140400, // 000E MOVE R5 R2 + 0x7C0C0400, // 000F CALL R3 2 + 0x8C0C0106, // 0010 GETMET R3 R0 K6 + 0x7C0C0200, // 0011 CALL R3 1 + 0x4C100000, // 0012 LDNIL R4 + 0x200C0604, // 0013 NE R3 R3 R4 + 0x780E000A, // 0014 JMPF R3 #0020 + 0x8C0C0106, // 0015 GETMET R3 R0 K6 + 0x7C0C0200, // 0016 CALL R3 1 + 0x880C0707, // 0017 GETMBR R3 R3 K7 + 0xB8121000, // 0018 GETNGBL R4 K8 + 0x88100909, // 0019 GETMBR R4 R4 K9 + 0x8810090A, // 001A GETMBR R4 R4 K10 + 0x1C0C0604, // 001B EQ R3 R3 R4 + 0x780E0002, // 001C JMPF R3 #0020 + 0x8C0C010B, // 001D GETMET R3 R0 K11 + 0x7C0C0200, // 001E CALL R3 1 + 0x70020006, // 001F JMP #0027 + 0x8C0C0102, // 0020 GETMET R3 R0 K2 + 0x7C0C0200, // 0021 CALL R3 1 + 0x740E0003, // 0022 JMPT R3 #0027 + 0x8C0C010C, // 0023 GETMET R3 R0 K12 + 0x5814000D, // 0024 LDCONST R5 K13 + 0x7C0C0400, // 0025 CALL R3 2 + 0x70020000, // 0026 JMP #0028 + 0x7001FFDB, // 0027 JMP #0004 + 0x8C08010E, // 0028 GETMET R2 R0 K14 + 0x7C080200, // 0029 CALL R2 1 + 0x5808000F, // 002A LDCONST R2 K15 + 0x600C0010, // 002B GETGBL R3 G16 + 0x6010000C, // 002C GETGBL R4 G12 + 0x5C140200, // 002D MOVE R5 R1 + 0x7C100200, // 002E CALL R4 1 + 0x04100911, // 002F SUB R4 R4 K17 + 0x40122004, // 0030 CONNECT R4 K16 R4 + 0x7C0C0200, // 0031 CALL R3 1 + 0xA8020007, // 0032 EXBLK 0 #003B + 0x5C100600, // 0033 MOVE R4 R3 + 0x7C100000, // 0034 CALL R4 0 + 0x24140910, // 0035 GT R5 R4 K16 + 0x78160000, // 0036 JMPF R5 #0038 + 0x00080512, // 0037 ADD R2 R2 K18 + 0x94140204, // 0038 GETIDX R5 R1 R4 + 0x00080405, // 0039 ADD R2 R2 R5 + 0x7001FFF7, // 003A JMP #0033 + 0x580C0013, // 003B LDCONST R3 K19 + 0xAC0C0200, // 003C CATCH R3 1 0 + 0xB0080000, // 003D RAISE 2 R0 R0 + 0x00080514, // 003E ADD R2 R2 K20 + 0x80040400, // 003F RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_colon +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_colon, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(COLON), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), + }), + be_str_weak(expect_colon), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_import +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(collect_inline_comment), + /* K3 */ be_nested_str_weak(add), + /* K4 */ be_nested_str_weak(import_X20_X25s_X20_X25s), + }), + be_str_weak(process_import), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x8C0C0103, // 0006 GETMET R3 R0 K3 + 0x60140018, // 0007 GETGBL R5 G24 + 0x58180004, // 0008 LDCONST R6 K4 + 0x5C1C0200, // 0009 MOVE R7 R1 + 0x5C200400, // 000A MOVE R8 R2 + 0x7C140600, // 000B CALL R5 3 + 0x7C0C0400, // 000C CALL R3 2 + 0x80000000, // 000D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACE), + }), + be_str_weak(check_right_brace), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0005, // 0004 JMPF R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_named_color_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(SimpleDSLTranspiler), + /* K2 */ be_nested_str_weak(named_colors), + /* K3 */ be_nested_str_weak(find), + /* K4 */ be_nested_str_weak(0xFFFFFFFF), + }), + be_str_weak(get_named_color_value), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0xB80A0000, // 0000 GETNGBL R2 K0 + 0x88080501, // 0001 GETMBR R2 R2 K1 + 0x88080502, // 0002 GETMBR R2 R2 K2 + 0x8C080503, // 0003 GETMET R2 R2 K3 + 0x5C100200, // 0004 MOVE R4 R1 + 0x58140004, // 0005 LDCONST R5 K4 + 0x7C080600, // 0006 CALL R2 3 + 0x80040400, // 0007 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_whitespace_including_newlines +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(COMMENT), + /* K6 */ be_nested_str_weak(NEWLINE), + /* K7 */ be_nested_str_weak(next), + }), + be_str_weak(skip_whitespace_including_newlines), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060015, // 0002 JMPT R1 #0019 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000E, // 0007 JMPF R2 #0017 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0xB80E0600, // 0009 GETNGBL R3 K3 + 0x880C0704, // 000A GETMBR R3 R3 K4 + 0x880C0705, // 000B GETMBR R3 R3 K5 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x740A0005, // 000D JMPT R2 #0014 + 0x88080302, // 000E GETMBR R2 R1 K2 + 0xB80E0600, // 000F GETNGBL R3 K3 + 0x880C0704, // 0010 GETMBR R3 R3 K4 + 0x880C0706, // 0011 GETMBR R3 R3 K6 + 0x1C080403, // 0012 EQ R2 R2 R3 + 0x780A0002, // 0013 JMPF R2 #0017 + 0x8C080107, // 0014 GETMET R2 R0 K7 + 0x7C080200, // 0015 CALL R2 1 + 0x70020000, // 0016 JMP #0018 + 0x70020000, // 0017 JMP #0019 + 0x7001FFE6, // 0018 JMP #0000 + 0x80000000, // 0019 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_percentage_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(PERCENTAGE), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_const_int(0), + /* K8 */ be_nested_str_weak(NUMBER), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Expected_X20percentage_X20value), + }), + be_str_weak(process_percentage_value), + &be_const_str_solidified, + ( &(const binstruction[52]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0015, // 0004 JMPF R2 #001B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A000F, // 000A JMPF R2 #001B + 0x88080305, // 000B GETMBR R2 R1 K5 + 0x8C0C0106, // 000C GETMET R3 R0 K6 + 0x7C0C0200, // 000D CALL R3 1 + 0x600C000A, // 000E GETGBL R3 G10 + 0x5411FFFD, // 000F LDINT R4 -2 + 0x40120E04, // 0010 CONNECT R4 K7 R4 + 0x94100404, // 0011 GETIDX R4 R2 R4 + 0x7C0C0200, // 0012 CALL R3 1 + 0x60100009, // 0013 GETGBL R4 G9 + 0x541600FE, // 0014 LDINT R5 255 + 0x08140605, // 0015 MUL R5 R3 R5 + 0x541A0063, // 0016 LDINT R6 100 + 0x0C140A06, // 0017 DIV R5 R5 R6 + 0x7C100200, // 0018 CALL R4 1 + 0x80040800, // 0019 RET 1 R4 + 0x70020017, // 001A JMP #0033 + 0x4C080000, // 001B LDNIL R2 + 0x20080202, // 001C NE R2 R1 R2 + 0x780A000F, // 001D JMPF R2 #002E + 0x88080301, // 001E GETMBR R2 R1 K1 + 0xB80E0400, // 001F GETNGBL R3 K2 + 0x880C0703, // 0020 GETMBR R3 R3 K3 + 0x880C0708, // 0021 GETMBR R3 R3 K8 + 0x1C080403, // 0022 EQ R2 R2 R3 + 0x780A0009, // 0023 JMPF R2 #002E + 0x88080305, // 0024 GETMBR R2 R1 K5 + 0x8C0C0106, // 0025 GETMET R3 R0 K6 + 0x7C0C0200, // 0026 CALL R3 1 + 0x600C0009, // 0027 GETGBL R3 G9 + 0x6010000A, // 0028 GETGBL R4 G10 + 0x5C140400, // 0029 MOVE R5 R2 + 0x7C100200, // 002A CALL R4 1 + 0x7C0C0200, // 002B CALL R3 1 + 0x80040600, // 002C RET 1 R3 + 0x70020004, // 002D JMP #0033 + 0x8C080109, // 002E GETMET R2 R0 K9 + 0x5810000A, // 002F LDCONST R4 K10 + 0x7C080400, // 0030 CALL R2 2 + 0x540A00FE, // 0031 LDINT R2 255 + 0x80040400, // 0032 RET 1 R2 + 0x80000000, // 0033 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_function_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_function_arguments, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[10]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(LEFT_PAREN), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_const_int(1), + /* K7 */ be_nested_str_weak(at_end), + /* K8 */ be_const_int(0), + /* K9 */ be_nested_str_weak(RIGHT_PAREN), + }), + be_str_weak(skip_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[42]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20040202, // 0003 NE R1 R1 R2 + 0x78060023, // 0004 JMPF R1 #0029 + 0x8C040100, // 0005 GETMET R1 R0 K0 + 0x7C040200, // 0006 CALL R1 1 + 0x88040301, // 0007 GETMBR R1 R1 K1 + 0xB80A0400, // 0008 GETNGBL R2 K2 + 0x88080503, // 0009 GETMBR R2 R2 K3 + 0x88080504, // 000A GETMBR R2 R2 K4 + 0x1C040202, // 000B EQ R1 R1 R2 + 0x7806001B, // 000C JMPF R1 #0029 + 0x8C040105, // 000D GETMET R1 R0 K5 + 0x7C040200, // 000E CALL R1 1 + 0x58040006, // 000F LDCONST R1 K6 + 0x8C080107, // 0010 GETMET R2 R0 K7 + 0x7C080200, // 0011 CALL R2 1 + 0x740A0015, // 0012 JMPT R2 #0029 + 0x24080308, // 0013 GT R2 R1 K8 + 0x780A0013, // 0014 JMPF R2 #0029 + 0x8C080100, // 0015 GETMET R2 R0 K0 + 0x7C080200, // 0016 CALL R2 1 + 0x880C0501, // 0017 GETMBR R3 R2 K1 + 0xB8120400, // 0018 GETNGBL R4 K2 + 0x88100903, // 0019 GETMBR R4 R4 K3 + 0x88100904, // 001A GETMBR R4 R4 K4 + 0x1C0C0604, // 001B EQ R3 R3 R4 + 0x780E0001, // 001C JMPF R3 #001F + 0x00040306, // 001D ADD R1 R1 K6 + 0x70020006, // 001E JMP #0026 + 0x880C0501, // 001F GETMBR R3 R2 K1 + 0xB8120400, // 0020 GETNGBL R4 K2 + 0x88100903, // 0021 GETMBR R4 R4 K3 + 0x88100909, // 0022 GETMBR R4 R4 K9 + 0x1C0C0604, // 0023 EQ R3 R3 R4 + 0x780E0000, // 0024 JMPF R3 #0026 + 0x04040306, // 0025 SUB R1 R1 K6 + 0x8C0C0105, // 0026 GETMET R3 R0 K5 + 0x7C0C0200, // 0027 CALL R3 1 + 0x7001FFE6, // 0028 JMP #0010 + 0x80000000, // 0029 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_palette +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_palette, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[42]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(palette), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(expect_left_bracket), + /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K8 */ be_nested_str_weak(check_right_bracket), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Empty_X20palettes_X20are_X20not_X20allowed_X2E_X20A_X20palette_X20must_X20contain_X20at_X20least_X20one_X20color_X20entry_X2E), + /* K11 */ be_nested_str_weak(current), + /* K12 */ be_nested_str_weak(type), + /* K13 */ be_nested_str_weak(animation_dsl), + /* K14 */ be_nested_str_weak(Token), + /* K15 */ be_nested_str_weak(LEFT_PAREN), + /* K16 */ be_nested_str_weak(at_end), + /* K17 */ be_nested_str_weak(Cannot_X20mix_X20alternative_X20syntax_X20_X5Bcolor1_X2C_X20color2_X2C_X20_X2E_X2E_X2E_X5D_X20with_X20tuple_X20syntax_X20_X28value_X2C_X20color_X29_X2E_X20Use_X20only_X20one_X20syntax_X20per_X20palette_X2E), + /* K18 */ be_nested_str_weak(expect_left_paren), + /* K19 */ be_nested_str_weak(expect_number), + /* K20 */ be_nested_str_weak(expect_comma), + /* K21 */ be_nested_str_weak(process_palette_color), + /* K22 */ be_nested_str_weak(expect_right_paren), + /* K23 */ be_nested_str_weak(convert_to_vrgb), + /* K24 */ be_nested_str_weak(0x_X25s), + /* K25 */ be_nested_str_weak(push), + /* K26 */ be_nested_str_weak(Cannot_X20mix_X20tuple_X20syntax_X20_X28value_X2C_X20color_X29_X20with_X20alternative_X20syntax_X20_X5Bcolor1_X2C_X20color2_X2C_X20_X2E_X2E_X2E_X5D_X2E_X20Use_X20only_X20one_X20syntax_X20per_X20palette_X2E), + /* K27 */ be_nested_str_weak(COMMENT), + /* K28 */ be_nested_str_weak(COMMA), + /* K29 */ be_nested_str_weak(NEWLINE), + /* K30 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20palette_X20definition), + /* K31 */ be_nested_str_weak(expect_right_bracket), + /* K32 */ be_nested_str_weak(collect_inline_comment), + /* K33 */ be_nested_str_weak(), + /* K34 */ be_const_int(0), + /* K35 */ be_const_int(1), + /* K36 */ be_nested_str_weak(_X20), + /* K37 */ be_nested_str_weak(_X2508X), + /* K38 */ be_nested_str_weak(_X22_X25s_X22), + /* K39 */ be_nested_str_weak(stop_iteration), + /* K40 */ be_nested_str_weak(add), + /* K41 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20bytes_X28_X25s_X29_X25s), + }), + be_str_weak(process_palette), + &be_const_str_solidified, + ( &(const binstruction[237]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x7C080200, // 000F CALL R2 1 + 0x60080012, // 0010 GETGBL R2 G18 + 0x7C080000, // 0011 CALL R2 0 + 0x8C0C0107, // 0012 GETMET R3 R0 K7 + 0x7C0C0200, // 0013 CALL R3 1 + 0x8C0C0108, // 0014 GETMET R3 R0 K8 + 0x7C0C0200, // 0015 CALL R3 1 + 0x780E0005, // 0016 JMPF R3 #001D + 0x8C0C0109, // 0017 GETMET R3 R0 K9 + 0x5814000A, // 0018 LDCONST R5 K10 + 0x7C0C0400, // 0019 CALL R3 2 + 0x8C0C0104, // 001A GETMET R3 R0 K4 + 0x7C0C0200, // 001B CALL R3 1 + 0x80000600, // 001C RET 0 + 0x8C0C010B, // 001D GETMET R3 R0 K11 + 0x7C0C0200, // 001E CALL R3 1 + 0x4C100000, // 001F LDNIL R4 + 0x200C0604, // 0020 NE R3 R3 R4 + 0x780E0007, // 0021 JMPF R3 #002A + 0x8C0C010B, // 0022 GETMET R3 R0 K11 + 0x7C0C0200, // 0023 CALL R3 1 + 0x880C070C, // 0024 GETMBR R3 R3 K12 + 0xB8121A00, // 0025 GETNGBL R4 K13 + 0x8810090E, // 0026 GETMBR R4 R4 K14 + 0x8810090F, // 0027 GETMBR R4 R4 K15 + 0x1C0C0604, // 0028 EQ R3 R3 R4 + 0x740E0000, // 0029 JMPT R3 #002B + 0x500C0001, // 002A LDBOOL R3 0 1 + 0x500C0200, // 002B LDBOOL R3 1 0 + 0x8C100110, // 002C GETMET R4 R0 K16 + 0x7C100200, // 002D CALL R4 1 + 0x74120095, // 002E JMPT R4 #00C5 + 0x8C100108, // 002F GETMET R4 R0 K8 + 0x7C100200, // 0030 CALL R4 1 + 0x74120092, // 0031 JMPT R4 #00C5 + 0x8C100107, // 0032 GETMET R4 R0 K7 + 0x7C100200, // 0033 CALL R4 1 + 0x8C100108, // 0034 GETMET R4 R0 K8 + 0x7C100200, // 0035 CALL R4 1 + 0x78120000, // 0036 JMPF R4 #0038 + 0x7002008C, // 0037 JMP #00C5 + 0x780E002A, // 0038 JMPF R3 #0064 + 0x8C10010B, // 0039 GETMET R4 R0 K11 + 0x7C100200, // 003A CALL R4 1 + 0x4C140000, // 003B LDNIL R5 + 0x20100805, // 003C NE R4 R4 R5 + 0x7812000D, // 003D JMPF R4 #004C + 0x8C10010B, // 003E GETMET R4 R0 K11 + 0x7C100200, // 003F CALL R4 1 + 0x8810090C, // 0040 GETMBR R4 R4 K12 + 0xB8161A00, // 0041 GETNGBL R5 K13 + 0x88140B0E, // 0042 GETMBR R5 R5 K14 + 0x88140B0F, // 0043 GETMBR R5 R5 K15 + 0x20100805, // 0044 NE R4 R4 R5 + 0x78120005, // 0045 JMPF R4 #004C + 0x8C100109, // 0046 GETMET R4 R0 K9 + 0x58180011, // 0047 LDCONST R6 K17 + 0x7C100400, // 0048 CALL R4 2 + 0x8C100104, // 0049 GETMET R4 R0 K4 + 0x7C100200, // 004A CALL R4 1 + 0x80000800, // 004B RET 0 + 0x8C100112, // 004C GETMET R4 R0 K18 + 0x7C100200, // 004D CALL R4 1 + 0x8C100113, // 004E GETMET R4 R0 K19 + 0x7C100200, // 004F CALL R4 1 + 0x8C140114, // 0050 GETMET R5 R0 K20 + 0x7C140200, // 0051 CALL R5 1 + 0x8C140115, // 0052 GETMET R5 R0 K21 + 0x7C140200, // 0053 CALL R5 1 + 0x8C180116, // 0054 GETMET R6 R0 K22 + 0x7C180200, // 0055 CALL R6 1 + 0x8C180117, // 0056 GETMET R6 R0 K23 + 0x5C200800, // 0057 MOVE R8 R4 + 0x5C240A00, // 0058 MOVE R9 R5 + 0x7C180600, // 0059 CALL R6 3 + 0x601C0009, // 005A GETGBL R7 G9 + 0x60200018, // 005B GETGBL R8 G24 + 0x58240018, // 005C LDCONST R9 K24 + 0x5C280C00, // 005D MOVE R10 R6 + 0x7C200400, // 005E CALL R8 2 + 0x7C1C0200, // 005F CALL R7 1 + 0x8C200519, // 0060 GETMET R8 R2 K25 + 0x5C280E00, // 0061 MOVE R10 R7 + 0x7C200400, // 0062 CALL R8 2 + 0x70020021, // 0063 JMP #0086 + 0x8C10010B, // 0064 GETMET R4 R0 K11 + 0x7C100200, // 0065 CALL R4 1 + 0x4C140000, // 0066 LDNIL R5 + 0x20100805, // 0067 NE R4 R4 R5 + 0x7812000D, // 0068 JMPF R4 #0077 + 0x8C10010B, // 0069 GETMET R4 R0 K11 + 0x7C100200, // 006A CALL R4 1 + 0x8810090C, // 006B GETMBR R4 R4 K12 + 0xB8161A00, // 006C GETNGBL R5 K13 + 0x88140B0E, // 006D GETMBR R5 R5 K14 + 0x88140B0F, // 006E GETMBR R5 R5 K15 + 0x1C100805, // 006F EQ R4 R4 R5 + 0x78120005, // 0070 JMPF R4 #0077 + 0x8C100109, // 0071 GETMET R4 R0 K9 + 0x5818001A, // 0072 LDCONST R6 K26 + 0x7C100400, // 0073 CALL R4 2 + 0x8C100104, // 0074 GETMET R4 R0 K4 + 0x7C100200, // 0075 CALL R4 1 + 0x80000800, // 0076 RET 0 + 0x8C100115, // 0077 GETMET R4 R0 K21 + 0x7C100200, // 0078 CALL R4 1 + 0x8C140117, // 0079 GETMET R5 R0 K23 + 0x541E00FE, // 007A LDINT R7 255 + 0x5C200800, // 007B MOVE R8 R4 + 0x7C140600, // 007C CALL R5 3 + 0x60180009, // 007D GETGBL R6 G9 + 0x601C0018, // 007E GETGBL R7 G24 + 0x58200018, // 007F LDCONST R8 K24 + 0x5C240A00, // 0080 MOVE R9 R5 + 0x7C1C0400, // 0081 CALL R7 2 + 0x7C180200, // 0082 CALL R6 1 + 0x8C1C0519, // 0083 GETMET R7 R2 K25 + 0x5C240C00, // 0084 MOVE R9 R6 + 0x7C1C0400, // 0085 CALL R7 2 + 0x8C100110, // 0086 GETMET R4 R0 K16 + 0x7C100200, // 0087 CALL R4 1 + 0x7412000F, // 0088 JMPT R4 #0099 + 0x8C10010B, // 0089 GETMET R4 R0 K11 + 0x7C100200, // 008A CALL R4 1 + 0x4C140000, // 008B LDNIL R5 + 0x20140805, // 008C NE R5 R4 R5 + 0x78160008, // 008D JMPF R5 #0097 + 0x8814090C, // 008E GETMBR R5 R4 K12 + 0xB81A1A00, // 008F GETNGBL R6 K13 + 0x88180D0E, // 0090 GETMBR R6 R6 K14 + 0x88180D1B, // 0091 GETMBR R6 R6 K27 + 0x1C140A06, // 0092 EQ R5 R5 R6 + 0x78160002, // 0093 JMPF R5 #0097 + 0x8C140100, // 0094 GETMET R5 R0 K0 + 0x7C140200, // 0095 CALL R5 1 + 0x70020000, // 0096 JMP #0098 + 0x70020000, // 0097 JMP #0099 + 0x7001FFEC, // 0098 JMP #0086 + 0x8C10010B, // 0099 GETMET R4 R0 K11 + 0x7C100200, // 009A CALL R4 1 + 0x4C140000, // 009B LDNIL R5 + 0x20100805, // 009C NE R4 R4 R5 + 0x7812000C, // 009D JMPF R4 #00AB + 0x8C10010B, // 009E GETMET R4 R0 K11 + 0x7C100200, // 009F CALL R4 1 + 0x8810090C, // 00A0 GETMBR R4 R4 K12 + 0xB8161A00, // 00A1 GETNGBL R5 K13 + 0x88140B0E, // 00A2 GETMBR R5 R5 K14 + 0x88140B1C, // 00A3 GETMBR R5 R5 K28 + 0x1C100805, // 00A4 EQ R4 R4 R5 + 0x78120004, // 00A5 JMPF R4 #00AB + 0x8C100100, // 00A6 GETMET R4 R0 K0 + 0x7C100200, // 00A7 CALL R4 1 + 0x8C100107, // 00A8 GETMET R4 R0 K7 + 0x7C100200, // 00A9 CALL R4 1 + 0x70020018, // 00AA JMP #00C4 + 0x8C10010B, // 00AB GETMET R4 R0 K11 + 0x7C100200, // 00AC CALL R4 1 + 0x4C140000, // 00AD LDNIL R5 + 0x20100805, // 00AE NE R4 R4 R5 + 0x7812000C, // 00AF JMPF R4 #00BD + 0x8C10010B, // 00B0 GETMET R4 R0 K11 + 0x7C100200, // 00B1 CALL R4 1 + 0x8810090C, // 00B2 GETMBR R4 R4 K12 + 0xB8161A00, // 00B3 GETNGBL R5 K13 + 0x88140B0E, // 00B4 GETMBR R5 R5 K14 + 0x88140B1D, // 00B5 GETMBR R5 R5 K29 + 0x1C100805, // 00B6 EQ R4 R4 R5 + 0x78120004, // 00B7 JMPF R4 #00BD + 0x8C100100, // 00B8 GETMET R4 R0 K0 + 0x7C100200, // 00B9 CALL R4 1 + 0x8C100107, // 00BA GETMET R4 R0 K7 + 0x7C100200, // 00BB CALL R4 1 + 0x70020006, // 00BC JMP #00C4 + 0x8C100108, // 00BD GETMET R4 R0 K8 + 0x7C100200, // 00BE CALL R4 1 + 0x74120003, // 00BF JMPT R4 #00C4 + 0x8C100109, // 00C0 GETMET R4 R0 K9 + 0x5818001E, // 00C1 LDCONST R6 K30 + 0x7C100400, // 00C2 CALL R4 2 + 0x70020000, // 00C3 JMP #00C5 + 0x7001FF66, // 00C4 JMP #002C + 0x8C10011F, // 00C5 GETMET R4 R0 K31 + 0x7C100200, // 00C6 CALL R4 1 + 0x8C100120, // 00C7 GETMET R4 R0 K32 + 0x7C100200, // 00C8 CALL R4 1 + 0x58140021, // 00C9 LDCONST R5 K33 + 0x60180010, // 00CA GETGBL R6 G16 + 0x601C000C, // 00CB GETGBL R7 G12 + 0x5C200400, // 00CC MOVE R8 R2 + 0x7C1C0200, // 00CD CALL R7 1 + 0x041C0F23, // 00CE SUB R7 R7 K35 + 0x401E4407, // 00CF CONNECT R7 K34 R7 + 0x7C180200, // 00D0 CALL R6 1 + 0xA802000E, // 00D1 EXBLK 0 #00E1 + 0x5C1C0C00, // 00D2 MOVE R7 R6 + 0x7C1C0000, // 00D3 CALL R7 0 + 0x24200F22, // 00D4 GT R8 R7 K34 + 0x78220000, // 00D5 JMPF R8 #00D7 + 0x00140B24, // 00D6 ADD R5 R5 K36 + 0x60200018, // 00D7 GETGBL R8 G24 + 0x58240025, // 00D8 LDCONST R9 K37 + 0x94280407, // 00D9 GETIDX R10 R2 R7 + 0x7C200400, // 00DA CALL R8 2 + 0x60240018, // 00DB GETGBL R9 G24 + 0x58280026, // 00DC LDCONST R10 K38 + 0x5C2C1000, // 00DD MOVE R11 R8 + 0x7C240400, // 00DE CALL R9 2 + 0x00140A09, // 00DF ADD R5 R5 R9 + 0x7001FFF0, // 00E0 JMP #00D2 + 0x58180027, // 00E1 LDCONST R6 K39 + 0xAC180200, // 00E2 CATCH R6 1 0 + 0xB0080000, // 00E3 RAISE 2 R0 R0 + 0x8C180128, // 00E4 GETMET R6 R0 K40 + 0x60200018, // 00E5 GETGBL R8 G24 + 0x58240029, // 00E6 LDCONST R9 K41 + 0x5C280200, // 00E7 MOVE R10 R1 + 0x5C2C0A00, // 00E8 MOVE R11 R5 + 0x5C300800, // 00E9 MOVE R12 R4 + 0x7C200800, // 00EA CALL R8 4 + 0x7C180400, // 00EB CALL R6 2 + 0x80000000, // 00EC RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_unary_expression_raw +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_unary_expression_raw, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_unary_expression_raw), + /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K11 */ be_nested_str_weak(PLUS), + /* K12 */ be_nested_str_weak(process_primary_expression_raw), + }), + be_str_weak(process_unary_expression_raw), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080101, // 0005 GETMET R2 R0 K1 + 0x58100002, // 0006 LDCONST R4 K2 + 0x7C080400, // 0007 CALL R2 2 + 0x80060600, // 0008 RET 1 K3 + 0x88080304, // 0009 GETMBR R2 R1 K4 + 0xB80E0A00, // 000A GETNGBL R3 K5 + 0x880C0706, // 000B GETMBR R3 R3 K6 + 0x880C0707, // 000C GETMBR R3 R3 K7 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A0008, // 000E JMPF R2 #0018 + 0x8C080108, // 000F GETMET R2 R0 K8 + 0x7C080200, // 0010 CALL R2 1 + 0x8C080109, // 0011 GETMET R2 R0 K9 + 0x7C080200, // 0012 CALL R2 1 + 0x600C0018, // 0013 GETGBL R3 G24 + 0x5810000A, // 0014 LDCONST R4 K10 + 0x5C140400, // 0015 MOVE R5 R2 + 0x7C0C0400, // 0016 CALL R3 2 + 0x80040600, // 0017 RET 1 R3 + 0x88080304, // 0018 GETMBR R2 R1 K4 + 0xB80E0A00, // 0019 GETNGBL R3 K5 + 0x880C0706, // 001A GETMBR R3 R3 K6 + 0x880C070B, // 001B GETMBR R3 R3 K11 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A0004, // 001D JMPF R2 #0023 + 0x8C080108, // 001E GETMET R2 R0 K8 + 0x7C080200, // 001F CALL R2 1 + 0x8C080109, // 0020 GETMET R2 R0 K9 + 0x7C080200, // 0021 CALL R2 1 + 0x80040400, // 0022 RET 1 R2 + 0x8C08010C, // 0023 GETMET R2 R0 K12 + 0x7C080200, // 0024 CALL R2 1 + 0x80040400, // 0025 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_function_arguments_for_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expression, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[20]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_paren), + /* K3 */ be_nested_str_weak(skip_whitespace), + /* K4 */ be_nested_str_weak(process_expression_argument), + /* K5 */ be_nested_str_weak(push), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(COMMA), + /* K11 */ be_nested_str_weak(next), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K14 */ be_nested_str_weak(expect_right_paren), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_const_int(0), + /* K17 */ be_const_int(1), + /* K18 */ be_nested_str_weak(_X2C_X20), + /* K19 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(process_function_arguments_for_expression), + &be_const_str_solidified, + ( &(const binstruction[72]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x60040012, // 0002 GETGBL R1 G18 + 0x7C040000, // 0003 CALL R1 0 + 0x8C080101, // 0004 GETMET R2 R0 K1 + 0x7C080200, // 0005 CALL R2 1 + 0x740A0029, // 0006 JMPT R2 #0031 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A0026, // 0009 JMPT R2 #0031 + 0x8C080103, // 000A GETMET R2 R0 K3 + 0x7C080200, // 000B CALL R2 1 + 0x8C080102, // 000C GETMET R2 R0 K2 + 0x7C080200, // 000D CALL R2 1 + 0x780A0000, // 000E JMPF R2 #0010 + 0x70020020, // 000F JMP #0031 + 0x8C080104, // 0010 GETMET R2 R0 K4 + 0x7C080200, // 0011 CALL R2 1 + 0x8C0C0305, // 0012 GETMET R3 R1 K5 + 0x5C140400, // 0013 MOVE R5 R2 + 0x7C0C0400, // 0014 CALL R3 2 + 0x8C0C0103, // 0015 GETMET R3 R0 K3 + 0x7C0C0200, // 0016 CALL R3 1 + 0x8C0C0106, // 0017 GETMET R3 R0 K6 + 0x7C0C0200, // 0018 CALL R3 1 + 0x4C100000, // 0019 LDNIL R4 + 0x200C0604, // 001A NE R3 R3 R4 + 0x780E000C, // 001B JMPF R3 #0029 + 0x8C0C0106, // 001C GETMET R3 R0 K6 + 0x7C0C0200, // 001D CALL R3 1 + 0x880C0707, // 001E GETMBR R3 R3 K7 + 0xB8121000, // 001F GETNGBL R4 K8 + 0x88100909, // 0020 GETMBR R4 R4 K9 + 0x8810090A, // 0021 GETMBR R4 R4 K10 + 0x1C0C0604, // 0022 EQ R3 R3 R4 + 0x780E0004, // 0023 JMPF R3 #0029 + 0x8C0C010B, // 0024 GETMET R3 R0 K11 + 0x7C0C0200, // 0025 CALL R3 1 + 0x8C0C0103, // 0026 GETMET R3 R0 K3 + 0x7C0C0200, // 0027 CALL R3 1 + 0x70020006, // 0028 JMP #0030 + 0x8C0C0102, // 0029 GETMET R3 R0 K2 + 0x7C0C0200, // 002A CALL R3 1 + 0x740E0003, // 002B JMPT R3 #0030 + 0x8C0C010C, // 002C GETMET R3 R0 K12 + 0x5814000D, // 002D LDCONST R5 K13 + 0x7C0C0400, // 002E CALL R3 2 + 0x70020000, // 002F JMP #0031 + 0x7001FFD2, // 0030 JMP #0004 + 0x8C08010E, // 0031 GETMET R2 R0 K14 + 0x7C080200, // 0032 CALL R2 1 + 0x5808000F, // 0033 LDCONST R2 K15 + 0x600C0010, // 0034 GETGBL R3 G16 + 0x6010000C, // 0035 GETGBL R4 G12 + 0x5C140200, // 0036 MOVE R5 R1 + 0x7C100200, // 0037 CALL R4 1 + 0x04100911, // 0038 SUB R4 R4 K17 + 0x40122004, // 0039 CONNECT R4 K16 R4 + 0x7C0C0200, // 003A CALL R3 1 + 0xA8020007, // 003B EXBLK 0 #0044 + 0x5C100600, // 003C MOVE R4 R3 + 0x7C100000, // 003D CALL R4 0 + 0x24140910, // 003E GT R5 R4 K16 + 0x78160000, // 003F JMPF R5 #0041 + 0x00080512, // 0040 ADD R2 R2 K18 + 0x94140204, // 0041 GETIDX R5 R1 R4 + 0x00080405, // 0042 ADD R2 R2 R5 + 0x7001FFF7, // 0043 JMP #003C + 0x580C0013, // 0044 LDCONST R3 K19 + 0xAC0C0200, // 0045 CATCH R3 1 0 + 0xB0080000, // 0046 RAISE 2 R0 R0 + 0x80040400, // 0047 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_value_provider_factory_exists +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_factory_exists, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_validate_factory_function), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(value_provider), + }), + be_str_weak(_validate_value_provider_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0xB8160200, // 0002 GETNGBL R5 K1 + 0x88140B02, // 0003 GETMBR R5 R5 K2 + 0x7C080600, // 0004 CALL R2 3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _generate_anonymous_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call, /* name */ + be_nested_proto( + 14, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[33]) { /* constants */ + /* K0 */ be_nested_str_weak(push), + /* K1 */ be_nested_str_weak(_X28def_X20_X28engine_X29), + /* K2 */ be_nested_str_weak(_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29), + /* K3 */ be_nested_str_weak(expect_left_paren), + /* K4 */ be_nested_str_weak(_create_instance_for_validation), + /* K5 */ be_nested_str_weak(at_end), + /* K6 */ be_nested_str_weak(check_right_paren), + /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K8 */ be_nested_str_weak(expect_identifier), + /* K9 */ be_nested_str_weak(_validate_single_parameter), + /* K10 */ be_nested_str_weak(expect_assign), + /* K11 */ be_nested_str_weak(process_value), + /* K12 */ be_nested_str_weak(argument), + /* K13 */ be_nested_str_weak(collect_inline_comment), + /* K14 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K15 */ be_nested_str_weak(current), + /* K16 */ be_nested_str_weak(type), + /* K17 */ be_nested_str_weak(animation_dsl), + /* K18 */ be_nested_str_weak(Token), + /* K19 */ be_nested_str_weak(COMMENT), + /* K20 */ be_nested_str_weak(next), + /* K21 */ be_nested_str_weak(COMMA), + /* K22 */ be_nested_str_weak(NEWLINE), + /* K23 */ be_nested_str_weak(error), + /* K24 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K25 */ be_nested_str_weak(expect_right_paren), + /* K26 */ be_nested_str_weak(_X20_X20return_X20provider), + /* K27 */ be_nested_str_weak(end_X29_X28engine_X29), + /* K28 */ be_nested_str_weak(), + /* K29 */ be_const_int(0), + /* K30 */ be_const_int(1), + /* K31 */ be_nested_str_weak(_X0A), + /* K32 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_generate_anonymous_function_call), + &be_const_str_solidified, + ( &(const binstruction[145]) { /* code */ + 0x60080012, // 0000 GETGBL R2 G18 + 0x7C080000, // 0001 CALL R2 0 + 0x8C0C0500, // 0002 GETMET R3 R2 K0 + 0x58140001, // 0003 LDCONST R5 K1 + 0x7C0C0400, // 0004 CALL R3 2 + 0x8C0C0500, // 0005 GETMET R3 R2 K0 + 0x60140018, // 0006 GETGBL R5 G24 + 0x58180002, // 0007 LDCONST R6 K2 + 0x5C1C0200, // 0008 MOVE R7 R1 + 0x7C140400, // 0009 CALL R5 2 + 0x7C0C0400, // 000A CALL R3 2 + 0x8C0C0103, // 000B GETMET R3 R0 K3 + 0x7C0C0200, // 000C CALL R3 1 + 0x8C0C0104, // 000D GETMET R3 R0 K4 + 0x5C140200, // 000E MOVE R5 R1 + 0x7C0C0400, // 000F CALL R3 2 + 0x8C100105, // 0010 GETMET R4 R0 K5 + 0x7C100200, // 0011 CALL R4 1 + 0x74120060, // 0012 JMPT R4 #0074 + 0x8C100106, // 0013 GETMET R4 R0 K6 + 0x7C100200, // 0014 CALL R4 1 + 0x7412005D, // 0015 JMPT R4 #0074 + 0x8C100107, // 0016 GETMET R4 R0 K7 + 0x7C100200, // 0017 CALL R4 1 + 0x8C100106, // 0018 GETMET R4 R0 K6 + 0x7C100200, // 0019 CALL R4 1 + 0x78120000, // 001A JMPF R4 #001C + 0x70020057, // 001B JMP #0074 + 0x8C100108, // 001C GETMET R4 R0 K8 + 0x7C100200, // 001D CALL R4 1 + 0x4C140000, // 001E LDNIL R5 + 0x20140605, // 001F NE R5 R3 R5 + 0x78160004, // 0020 JMPF R5 #0026 + 0x8C140109, // 0021 GETMET R5 R0 K9 + 0x5C1C0200, // 0022 MOVE R7 R1 + 0x5C200800, // 0023 MOVE R8 R4 + 0x5C240600, // 0024 MOVE R9 R3 + 0x7C140800, // 0025 CALL R5 4 + 0x8C14010A, // 0026 GETMET R5 R0 K10 + 0x7C140200, // 0027 CALL R5 1 + 0x8C14010B, // 0028 GETMET R5 R0 K11 + 0x581C000C, // 0029 LDCONST R7 K12 + 0x7C140400, // 002A CALL R5 2 + 0x8C18010D, // 002B GETMET R6 R0 K13 + 0x7C180200, // 002C CALL R6 1 + 0x8C1C0500, // 002D GETMET R7 R2 K0 + 0x60240018, // 002E GETGBL R9 G24 + 0x5828000E, // 002F LDCONST R10 K14 + 0x5C2C0800, // 0030 MOVE R11 R4 + 0x5C300A00, // 0031 MOVE R12 R5 + 0x5C340C00, // 0032 MOVE R13 R6 + 0x7C240800, // 0033 CALL R9 4 + 0x7C1C0400, // 0034 CALL R7 2 + 0x8C1C0105, // 0035 GETMET R7 R0 K5 + 0x7C1C0200, // 0036 CALL R7 1 + 0x741E000F, // 0037 JMPT R7 #0048 + 0x8C1C010F, // 0038 GETMET R7 R0 K15 + 0x7C1C0200, // 0039 CALL R7 1 + 0x4C200000, // 003A LDNIL R8 + 0x20200E08, // 003B NE R8 R7 R8 + 0x78220008, // 003C JMPF R8 #0046 + 0x88200F10, // 003D GETMBR R8 R7 K16 + 0xB8262200, // 003E GETNGBL R9 K17 + 0x88241312, // 003F GETMBR R9 R9 K18 + 0x88241313, // 0040 GETMBR R9 R9 K19 + 0x1C201009, // 0041 EQ R8 R8 R9 + 0x78220002, // 0042 JMPF R8 #0046 + 0x8C200114, // 0043 GETMET R8 R0 K20 + 0x7C200200, // 0044 CALL R8 1 + 0x70020000, // 0045 JMP #0047 + 0x70020000, // 0046 JMP #0048 + 0x7001FFEC, // 0047 JMP #0035 + 0x8C1C010F, // 0048 GETMET R7 R0 K15 + 0x7C1C0200, // 0049 CALL R7 1 + 0x4C200000, // 004A LDNIL R8 + 0x201C0E08, // 004B NE R7 R7 R8 + 0x781E000C, // 004C JMPF R7 #005A + 0x8C1C010F, // 004D GETMET R7 R0 K15 + 0x7C1C0200, // 004E CALL R7 1 + 0x881C0F10, // 004F GETMBR R7 R7 K16 + 0xB8222200, // 0050 GETNGBL R8 K17 + 0x88201112, // 0051 GETMBR R8 R8 K18 + 0x88201115, // 0052 GETMBR R8 R8 K21 + 0x1C1C0E08, // 0053 EQ R7 R7 R8 + 0x781E0004, // 0054 JMPF R7 #005A + 0x8C1C0114, // 0055 GETMET R7 R0 K20 + 0x7C1C0200, // 0056 CALL R7 1 + 0x8C1C0107, // 0057 GETMET R7 R0 K7 + 0x7C1C0200, // 0058 CALL R7 1 + 0x70020018, // 0059 JMP #0073 + 0x8C1C010F, // 005A GETMET R7 R0 K15 + 0x7C1C0200, // 005B CALL R7 1 + 0x4C200000, // 005C LDNIL R8 + 0x201C0E08, // 005D NE R7 R7 R8 + 0x781E000C, // 005E JMPF R7 #006C + 0x8C1C010F, // 005F GETMET R7 R0 K15 + 0x7C1C0200, // 0060 CALL R7 1 + 0x881C0F10, // 0061 GETMBR R7 R7 K16 + 0xB8222200, // 0062 GETNGBL R8 K17 + 0x88201112, // 0063 GETMBR R8 R8 K18 + 0x88201116, // 0064 GETMBR R8 R8 K22 + 0x1C1C0E08, // 0065 EQ R7 R7 R8 + 0x781E0004, // 0066 JMPF R7 #006C + 0x8C1C0114, // 0067 GETMET R7 R0 K20 + 0x7C1C0200, // 0068 CALL R7 1 + 0x8C1C0107, // 0069 GETMET R7 R0 K7 + 0x7C1C0200, // 006A CALL R7 1 + 0x70020006, // 006B JMP #0073 + 0x8C1C0106, // 006C GETMET R7 R0 K6 + 0x7C1C0200, // 006D CALL R7 1 + 0x741E0003, // 006E JMPT R7 #0073 + 0x8C1C0117, // 006F GETMET R7 R0 K23 + 0x58240018, // 0070 LDCONST R9 K24 + 0x7C1C0400, // 0071 CALL R7 2 + 0x70020000, // 0072 JMP #0074 + 0x7001FF9B, // 0073 JMP #0010 + 0x8C100119, // 0074 GETMET R4 R0 K25 + 0x7C100200, // 0075 CALL R4 1 + 0x8C100500, // 0076 GETMET R4 R2 K0 + 0x5818001A, // 0077 LDCONST R6 K26 + 0x7C100400, // 0078 CALL R4 2 + 0x8C100500, // 0079 GETMET R4 R2 K0 + 0x5818001B, // 007A LDCONST R6 K27 + 0x7C100400, // 007B CALL R4 2 + 0x5810001C, // 007C LDCONST R4 K28 + 0x60140010, // 007D GETGBL R5 G16 + 0x6018000C, // 007E GETGBL R6 G12 + 0x5C1C0400, // 007F MOVE R7 R2 + 0x7C180200, // 0080 CALL R6 1 + 0x04180D1E, // 0081 SUB R6 R6 K30 + 0x401A3A06, // 0082 CONNECT R6 K29 R6 + 0x7C140200, // 0083 CALL R5 1 + 0xA8020007, // 0084 EXBLK 0 #008D + 0x5C180A00, // 0085 MOVE R6 R5 + 0x7C180000, // 0086 CALL R6 0 + 0x241C0D1D, // 0087 GT R7 R6 K29 + 0x781E0000, // 0088 JMPF R7 #008A + 0x0010091F, // 0089 ADD R4 R4 K31 + 0x941C0406, // 008A GETIDX R7 R2 R6 + 0x00100807, // 008B ADD R4 R4 R7 + 0x7001FFF7, // 008C JMP #0085 + 0x58140020, // 008D LDCONST R5 K32 + 0xAC140200, // 008E CATCH R5 1 0 + 0xB0080000, // 008F RAISE 2 R0 R0 + 0x80040800, // 0090 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_for_color_provider +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(_process_named_arguments_generic), + }), + be_str_weak(_process_named_arguments_for_color_provider), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C0C0600, // 0003 CALL R3 3 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_number +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[10]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(NUMBER), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20number), + /* K9 */ be_nested_str_weak(0), + }), + be_str_weak(expect_number), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A000A, // 0004 JMPF R2 #0010 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0004, // 000A JMPF R2 #0010 + 0x88080305, // 000B GETMBR R2 R1 K5 + 0x8C0C0106, // 000C GETMET R3 R0 K6 + 0x7C0C0200, // 000D CALL R3 1 + 0x80040400, // 000E RET 1 R2 + 0x70020003, // 000F JMP #0014 + 0x8C080107, // 0010 GETMET R2 R0 K7 + 0x58100008, // 0011 LDCONST R4 K8 + 0x7C080400, // 0012 CALL R2 2 + 0x80061200, // 0013 RET 1 K9 + 0x80000000, // 0014 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_multiplicative_expression_raw ********************************************************************/ @@ -2432,6 +3959,4166 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw /*******************************************************************/ +/******************************************************************** +** Solidified function: at_end +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_nested_str_weak(tokens), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(EOF), + }), + be_str_weak(at_end), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x28040202, // 0004 GE R1 R1 R2 + 0x7406000D, // 0005 JMPT R1 #0014 + 0x8C040102, // 0006 GETMET R1 R0 K2 + 0x7C040200, // 0007 CALL R1 1 + 0x4C080000, // 0008 LDNIL R2 + 0x20040202, // 0009 NE R1 R1 R2 + 0x78060007, // 000A JMPF R1 #0013 + 0x8C040102, // 000B GETMET R1 R0 K2 + 0x7C040200, // 000C CALL R1 1 + 0x88040303, // 000D GETMBR R1 R1 K3 + 0xB80A0800, // 000E GETNGBL R2 K4 + 0x88080505, // 000F GETMBR R2 R2 K5 + 0x88080506, // 0010 GETMBR R2 R2 K6 + 0x1C040202, // 0011 EQ R1 R1 R2 + 0x74060000, // 0012 JMPT R1 #0014 + 0x50040001, // 0013 LDBOOL R1 0 1 + 0x50040200, // 0014 LDBOOL R1 1 0 + 0x80040200, // 0015 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_computation_closure_from_string +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(transform_expression_for_closure), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(_X20_X20), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(replace), + /* K6 */ be_nested_str_weak(_X20), + /* K7 */ be_nested_str_weak(def_X20_X28self_X29_X20return_X20_X25s_X20end), + /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), + }), + be_str_weak(create_computation_closure_from_string), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0101, // 0001 GETMET R3 R0 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x8C100502, // 0004 GETMET R4 R2 K2 + 0x5C180600, // 0005 MOVE R6 R3 + 0x581C0003, // 0006 LDCONST R7 K3 + 0x7C100600, // 0007 CALL R4 3 + 0x28100904, // 0008 GE R4 R4 K4 + 0x78120006, // 0009 JMPF R4 #0011 + 0x8C100505, // 000A GETMET R4 R2 K5 + 0x5C180600, // 000B MOVE R6 R3 + 0x581C0003, // 000C LDCONST R7 K3 + 0x58200006, // 000D LDCONST R8 K6 + 0x7C100800, // 000E CALL R4 4 + 0x5C0C0800, // 000F MOVE R3 R4 + 0x7001FFF2, // 0010 JMP #0004 + 0x60100018, // 0011 GETGBL R4 G24 + 0x58140007, // 0012 LDCONST R5 K7 + 0x5C180600, // 0013 MOVE R6 R3 + 0x7C100400, // 0014 CALL R4 2 + 0x60140018, // 0015 GETGBL R5 G24 + 0x58180008, // 0016 LDCONST R6 K8 + 0x5C1C0800, // 0017 MOVE R7 R4 + 0x7C140400, // 0018 CALL R5 2 + 0x80040A00, // 0019 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_init, /* name */ + be_nested_proto( + 3, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(tokens), + /* K1 */ be_nested_str_weak(pos), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(output), + /* K4 */ be_nested_str_weak(errors), + /* K5 */ be_nested_str_weak(run_statements), + /* K6 */ be_nested_str_weak(first_statement), + /* K7 */ be_nested_str_weak(strip_initialized), + /* K8 */ be_nested_str_weak(sequence_names), + /* K9 */ be_nested_str_weak(symbol_table), + /* K10 */ be_nested_str_weak(indent_level), + /* K11 */ be_nested_str_weak(template_definitions), + /* K12 */ be_nested_str_weak(has_template_calls), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[35]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x5C080200, // 0003 MOVE R2 R1 + 0x70020001, // 0004 JMP #0007 + 0x60080012, // 0005 GETGBL R2 G18 + 0x7C080000, // 0006 CALL R2 0 + 0x90020002, // 0007 SETMBR R0 K0 R2 + 0x90020302, // 0008 SETMBR R0 K1 K2 + 0x60080012, // 0009 GETGBL R2 G18 + 0x7C080000, // 000A CALL R2 0 + 0x90020602, // 000B SETMBR R0 K3 R2 + 0x60080012, // 000C GETGBL R2 G18 + 0x7C080000, // 000D CALL R2 0 + 0x90020802, // 000E SETMBR R0 K4 R2 + 0x60080012, // 000F GETGBL R2 G18 + 0x7C080000, // 0010 CALL R2 0 + 0x90020A02, // 0011 SETMBR R0 K5 R2 + 0x50080200, // 0012 LDBOOL R2 1 0 + 0x90020C02, // 0013 SETMBR R0 K6 R2 + 0x50080000, // 0014 LDBOOL R2 0 0 + 0x90020E02, // 0015 SETMBR R0 K7 R2 + 0x60080013, // 0016 GETGBL R2 G19 + 0x7C080000, // 0017 CALL R2 0 + 0x90021002, // 0018 SETMBR R0 K8 R2 + 0x60080013, // 0019 GETGBL R2 G19 + 0x7C080000, // 001A CALL R2 0 + 0x90021202, // 001B SETMBR R0 K9 R2 + 0x90021502, // 001C SETMBR R0 K10 K2 + 0x60080013, // 001D GETGBL R2 G19 + 0x7C080000, // 001E CALL R2 0 + 0x90021602, // 001F SETMBR R0 K11 R2 + 0x50080000, // 0020 LDBOOL R2 0 0 + 0x90021802, // 0021 SETMBR R0 K12 R2 + 0x80000000, // 0022 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(LEFT_BRACE), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X7B_X27), + }), + be_str_weak(expect_left_brace), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(LEFT_PAREN), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X28_X27), + }), + be_str_weak(expect_left_paren), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: transform_operand_for_closure +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_transform_operand_for_closure, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[12]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(animation_X2Ecreate_closure_value), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(return_X20_X28), + /* K5 */ be_nested_str_weak(_X20_X20), + /* K6 */ be_nested_str_weak(replace), + /* K7 */ be_nested_str_weak(_X20), + /* K8 */ be_nested_str_weak(_), + /* K9 */ be_nested_str_weak(_X28), + /* K10 */ be_nested_str_weak(animation_X2E), + /* K11 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X29), + }), + be_str_weak(transform_operand_for_closure), + &be_const_str_solidified, + ( &(const binstruction[69]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x280C0703, // 0005 GE R3 R3 K3 + 0x780E001A, // 0006 JMPF R3 #0022 + 0x8C0C0501, // 0007 GETMET R3 R2 K1 + 0x5C140200, // 0008 MOVE R5 R1 + 0x58180004, // 0009 LDCONST R6 K4 + 0x7C0C0600, // 000A CALL R3 3 + 0x54120007, // 000B LDINT R4 8 + 0x000C0604, // 000C ADD R3 R3 R4 + 0x6010000C, // 000D GETGBL R4 G12 + 0x5C140200, // 000E MOVE R5 R1 + 0x7C100200, // 000F CALL R4 1 + 0x54160004, // 0010 LDINT R5 5 + 0x04100805, // 0011 SUB R4 R4 R5 + 0x40140604, // 0012 CONNECT R5 R3 R4 + 0x94140205, // 0013 GETIDX R5 R1 R5 + 0x8C180501, // 0014 GETMET R6 R2 K1 + 0x5C200A00, // 0015 MOVE R8 R5 + 0x58240005, // 0016 LDCONST R9 K5 + 0x7C180600, // 0017 CALL R6 3 + 0x28180D03, // 0018 GE R6 R6 K3 + 0x781A0006, // 0019 JMPF R6 #0021 + 0x8C180506, // 001A GETMET R6 R2 K6 + 0x5C200A00, // 001B MOVE R8 R5 + 0x58240005, // 001C LDCONST R9 K5 + 0x58280007, // 001D LDCONST R10 K7 + 0x7C180800, // 001E CALL R6 4 + 0x5C140C00, // 001F MOVE R5 R6 + 0x7001FFF2, // 0020 JMP #0014 + 0x80040A00, // 0021 RET 1 R5 + 0x8C0C0501, // 0022 GETMET R3 R2 K1 + 0x5C140200, // 0023 MOVE R5 R1 + 0x58180008, // 0024 LDCONST R6 K8 + 0x7C0C0600, // 0025 CALL R3 3 + 0x280C0703, // 0026 GE R3 R3 K3 + 0x8C100501, // 0027 GETMET R4 R2 K1 + 0x5C180200, // 0028 MOVE R6 R1 + 0x581C0007, // 0029 LDCONST R7 K7 + 0x7C100600, // 002A CALL R4 3 + 0x28100903, // 002B GE R4 R4 K3 + 0x8C140501, // 002C GETMET R5 R2 K1 + 0x5C1C0200, // 002D MOVE R7 R1 + 0x58200009, // 002E LDCONST R8 K9 + 0x7C140600, // 002F CALL R5 3 + 0x28140B03, // 0030 GE R5 R5 K3 + 0x8C180501, // 0031 GETMET R6 R2 K1 + 0x5C200200, // 0032 MOVE R8 R1 + 0x5824000A, // 0033 LDCONST R9 K10 + 0x7C180600, // 0034 CALL R6 3 + 0x28180D03, // 0035 GE R6 R6 K3 + 0x780E000B, // 0036 JMPF R3 #0043 + 0x5C1C0800, // 0037 MOVE R7 R4 + 0x741E0009, // 0038 JMPT R7 #0043 + 0x5C1C0A00, // 0039 MOVE R7 R5 + 0x741E0007, // 003A JMPT R7 #0043 + 0x5C1C0C00, // 003B MOVE R7 R6 + 0x741E0005, // 003C JMPT R7 #0043 + 0x601C0018, // 003D GETGBL R7 G24 + 0x5820000B, // 003E LDCONST R8 K11 + 0x5C240200, // 003F MOVE R9 R1 + 0x7C1C0400, // 0040 CALL R7 2 + 0x80040E00, // 0041 RET 1 R7 + 0x70020000, // 0042 JMP #0044 + 0x80040200, // 0043 RET 1 R1 + 0x80000000, // 0044 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[30]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(sequence), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(sequence_names), + /* K6 */ be_nested_str_weak(symbol_table), + /* K7 */ be_nested_str_weak(1), + /* K8 */ be_nested_str_weak(current), + /* K9 */ be_nested_str_weak(type), + /* K10 */ be_nested_str_weak(animation_dsl), + /* K11 */ be_nested_str_weak(Token), + /* K12 */ be_nested_str_weak(KEYWORD), + /* K13 */ be_nested_str_weak(value), + /* K14 */ be_nested_str_weak(repeat), + /* K15 */ be_nested_str_weak(forever), + /* K16 */ be_nested_str_weak(_X2D1), + /* K17 */ be_nested_str_weak(process_value), + /* K18 */ be_nested_str_weak(repeat_count), + /* K19 */ be_nested_str_weak(expect_keyword), + /* K20 */ be_nested_str_weak(times), + /* K21 */ be_nested_str_weak(NUMBER), + /* K22 */ be_nested_str_weak(expect_left_brace), + /* K23 */ be_nested_str_weak(add), + /* K24 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), + /* K25 */ be_nested_str_weak(at_end), + /* K26 */ be_nested_str_weak(check_right_brace), + /* K27 */ be_nested_str_weak(process_sequence_statement), + /* K28 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X29), + /* K29 */ be_nested_str_weak(expect_right_brace), + }), + be_str_weak(process_sequence), + &be_const_str_solidified, + ( &(const binstruction[125]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x88080105, // 000C GETMBR R2 R0 K5 + 0x500C0200, // 000D LDBOOL R3 1 0 + 0x98080203, // 000E SETIDX R2 R1 R3 + 0x88080106, // 000F GETMBR R2 R0 K6 + 0x98080303, // 0010 SETIDX R2 R1 K3 + 0x50080000, // 0011 LDBOOL R2 0 0 + 0x580C0007, // 0012 LDCONST R3 K7 + 0x8C100108, // 0013 GETMET R4 R0 K8 + 0x7C100200, // 0014 CALL R4 1 + 0x4C140000, // 0015 LDNIL R5 + 0x20140805, // 0016 NE R5 R4 R5 + 0x7816002D, // 0017 JMPF R5 #0046 + 0x88140909, // 0018 GETMBR R5 R4 K9 + 0xB81A1400, // 0019 GETNGBL R6 K10 + 0x88180D0B, // 001A GETMBR R6 R6 K11 + 0x88180D0C, // 001B GETMBR R6 R6 K12 + 0x1C140A06, // 001C EQ R5 R5 R6 + 0x78160027, // 001D JMPF R5 #0046 + 0x8814090D, // 001E GETMBR R5 R4 K13 + 0x1C140B0E, // 001F EQ R5 R5 K14 + 0x7816001C, // 0020 JMPF R5 #003E + 0x50080200, // 0021 LDBOOL R2 1 0 + 0x8C140100, // 0022 GETMET R5 R0 K0 + 0x7C140200, // 0023 CALL R5 1 + 0x8C140108, // 0024 GETMET R5 R0 K8 + 0x7C140200, // 0025 CALL R5 1 + 0x4C180000, // 0026 LDNIL R6 + 0x20180A06, // 0027 NE R6 R5 R6 + 0x781A000C, // 0028 JMPF R6 #0036 + 0x88180B09, // 0029 GETMBR R6 R5 K9 + 0xB81E1400, // 002A GETNGBL R7 K10 + 0x881C0F0B, // 002B GETMBR R7 R7 K11 + 0x881C0F0C, // 002C GETMBR R7 R7 K12 + 0x1C180C07, // 002D EQ R6 R6 R7 + 0x781A0006, // 002E JMPF R6 #0036 + 0x88180B0D, // 002F GETMBR R6 R5 K13 + 0x1C180D0F, // 0030 EQ R6 R6 K15 + 0x781A0003, // 0031 JMPF R6 #0036 + 0x8C180100, // 0032 GETMET R6 R0 K0 + 0x7C180200, // 0033 CALL R6 1 + 0x580C0010, // 0034 LDCONST R3 K16 + 0x70020006, // 0035 JMP #003D + 0x8C180111, // 0036 GETMET R6 R0 K17 + 0x58200012, // 0037 LDCONST R8 K18 + 0x7C180400, // 0038 CALL R6 2 + 0x8C1C0113, // 0039 GETMET R7 R0 K19 + 0x58240014, // 003A LDCONST R9 K20 + 0x7C1C0400, // 003B CALL R7 2 + 0x5C0C0C00, // 003C MOVE R3 R6 + 0x70020006, // 003D JMP #0045 + 0x8814090D, // 003E GETMBR R5 R4 K13 + 0x1C140B0F, // 003F EQ R5 R5 K15 + 0x78160003, // 0040 JMPF R5 #0045 + 0x50080200, // 0041 LDBOOL R2 1 0 + 0x8C140100, // 0042 GETMET R5 R0 K0 + 0x7C140200, // 0043 CALL R5 1 + 0x580C0010, // 0044 LDCONST R3 K16 + 0x70020010, // 0045 JMP #0057 + 0x4C140000, // 0046 LDNIL R5 + 0x20140805, // 0047 NE R5 R4 R5 + 0x7816000D, // 0048 JMPF R5 #0057 + 0x88140909, // 0049 GETMBR R5 R4 K9 + 0xB81A1400, // 004A GETNGBL R6 K10 + 0x88180D0B, // 004B GETMBR R6 R6 K11 + 0x88180D15, // 004C GETMBR R6 R6 K21 + 0x1C140A06, // 004D EQ R5 R5 R6 + 0x78160007, // 004E JMPF R5 #0057 + 0x50080200, // 004F LDBOOL R2 1 0 + 0x8C140111, // 0050 GETMET R5 R0 K17 + 0x581C0012, // 0051 LDCONST R7 K18 + 0x7C140400, // 0052 CALL R5 2 + 0x8C180113, // 0053 GETMET R6 R0 K19 + 0x58200014, // 0054 LDCONST R8 K20 + 0x7C180400, // 0055 CALL R6 2 + 0x5C0C0A00, // 0056 MOVE R3 R5 + 0x8C140116, // 0057 GETMET R5 R0 K22 + 0x7C140200, // 0058 CALL R5 1 + 0x780A0010, // 0059 JMPF R2 #006B + 0x8C140117, // 005A GETMET R5 R0 K23 + 0x601C0018, // 005B GETGBL R7 G24 + 0x58200018, // 005C LDCONST R8 K24 + 0x5C240200, // 005D MOVE R9 R1 + 0x5C280600, // 005E MOVE R10 R3 + 0x7C1C0600, // 005F CALL R7 3 + 0x7C140400, // 0060 CALL R5 2 + 0x8C140119, // 0061 GETMET R5 R0 K25 + 0x7C140200, // 0062 CALL R5 1 + 0x74160005, // 0063 JMPT R5 #006A + 0x8C14011A, // 0064 GETMET R5 R0 K26 + 0x7C140200, // 0065 CALL R5 1 + 0x74160002, // 0066 JMPT R5 #006A + 0x8C14011B, // 0067 GETMET R5 R0 K27 + 0x7C140200, // 0068 CALL R5 1 + 0x7001FFF6, // 0069 JMP #0061 + 0x7002000E, // 006A JMP #007A + 0x8C140117, // 006B GETMET R5 R0 K23 + 0x601C0018, // 006C GETGBL R7 G24 + 0x5820001C, // 006D LDCONST R8 K28 + 0x5C240200, // 006E MOVE R9 R1 + 0x7C1C0400, // 006F CALL R7 2 + 0x7C140400, // 0070 CALL R5 2 + 0x8C140119, // 0071 GETMET R5 R0 K25 + 0x7C140200, // 0072 CALL R5 1 + 0x74160005, // 0073 JMPT R5 #007A + 0x8C14011A, // 0074 GETMET R5 R0 K26 + 0x7C140200, // 0075 CALL R5 1 + 0x74160002, // 0076 JMPT R5 #007A + 0x8C14011B, // 0077 GETMET R5 R0 K27 + 0x7C140200, // 0078 CALL R5 1 + 0x7001FFF6, // 0079 JMP #0071 + 0x8C14011D, // 007A GETMET R5 R0 K29 + 0x7C140200, // 007B CALL R5 1 + 0x80000000, // 007C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_right_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACE), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), + }), + be_str_weak(expect_right_brace), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_standalone_log +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_left_paren), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(STRING), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), + /* K9 */ be_nested_str_weak(skip_statement), + /* K10 */ be_nested_str_weak(value), + /* K11 */ be_nested_str_weak(expect_right_paren), + /* K12 */ be_nested_str_weak(collect_inline_comment), + /* K13 */ be_nested_str_weak(process_log_call), + /* K14 */ be_nested_str_weak(standalone), + /* K15 */ be_nested_str_weak(add), + }), + be_str_weak(process_standalone_log), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C040102, // 0004 GETMET R1 R0 K2 + 0x7C040200, // 0005 CALL R1 1 + 0x4C080000, // 0006 LDNIL R2 + 0x1C080202, // 0007 EQ R2 R1 R2 + 0x740A0005, // 0008 JMPT R2 #000F + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0xB80E0800, // 000A GETNGBL R3 K4 + 0x880C0705, // 000B GETMBR R3 R3 K5 + 0x880C0706, // 000C GETMBR R3 R3 K6 + 0x20080403, // 000D NE R2 R2 R3 + 0x780A0005, // 000E JMPF R2 #0015 + 0x8C080107, // 000F GETMET R2 R0 K7 + 0x58100008, // 0010 LDCONST R4 K8 + 0x7C080400, // 0011 CALL R2 2 + 0x8C080109, // 0012 GETMET R2 R0 K9 + 0x7C080200, // 0013 CALL R2 1 + 0x80000400, // 0014 RET 0 + 0x8808030A, // 0015 GETMBR R2 R1 K10 + 0x8C0C0100, // 0016 GETMET R3 R0 K0 + 0x7C0C0200, // 0017 CALL R3 1 + 0x8C0C010B, // 0018 GETMET R3 R0 K11 + 0x7C0C0200, // 0019 CALL R3 1 + 0x8C0C010C, // 001A GETMET R3 R0 K12 + 0x7C0C0200, // 001B CALL R3 1 + 0x8C10010D, // 001C GETMET R4 R0 K13 + 0x5C180400, // 001D MOVE R6 R2 + 0x581C000E, // 001E LDCONST R7 K14 + 0x5C200600, // 001F MOVE R8 R3 + 0x7C100800, // 0020 CALL R4 4 + 0x8C14010F, // 0021 GETMET R5 R0 K15 + 0x5C1C0800, // 0022 MOVE R7 R4 + 0x7C140400, // 0023 CALL R5 2 + 0x80000000, // 0024 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_unary_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ + be_nested_proto( + 8, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_unary_expression), + /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K11 */ be_nested_str_weak(PLUS), + /* K12 */ be_nested_str_weak(process_primary_expression), + }), + be_str_weak(process_unary_expression), + &be_const_str_solidified, + ( &(const binstruction[44]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x4C100000, // 0002 LDNIL R4 + 0x1C100604, // 0003 EQ R4 R3 R4 + 0x78120003, // 0004 JMPF R4 #0009 + 0x8C100101, // 0005 GETMET R4 R0 K1 + 0x58180002, // 0006 LDCONST R6 K2 + 0x7C100400, // 0007 CALL R4 2 + 0x80060600, // 0008 RET 1 K3 + 0x88100704, // 0009 GETMBR R4 R3 K4 + 0xB8160A00, // 000A GETNGBL R5 K5 + 0x88140B06, // 000B GETMBR R5 R5 K6 + 0x88140B07, // 000C GETMBR R5 R5 K7 + 0x1C100805, // 000D EQ R4 R4 R5 + 0x7812000A, // 000E JMPF R4 #001A + 0x8C100108, // 000F GETMET R4 R0 K8 + 0x7C100200, // 0010 CALL R4 1 + 0x8C100109, // 0011 GETMET R4 R0 K9 + 0x5C180200, // 0012 MOVE R6 R1 + 0x501C0000, // 0013 LDBOOL R7 0 0 + 0x7C100600, // 0014 CALL R4 3 + 0x60140018, // 0015 GETGBL R5 G24 + 0x5818000A, // 0016 LDCONST R6 K10 + 0x5C1C0800, // 0017 MOVE R7 R4 + 0x7C140400, // 0018 CALL R5 2 + 0x80040A00, // 0019 RET 1 R5 + 0x88100704, // 001A GETMBR R4 R3 K4 + 0xB8160A00, // 001B GETNGBL R5 K5 + 0x88140B06, // 001C GETMBR R5 R5 K6 + 0x88140B0B, // 001D GETMBR R5 R5 K11 + 0x1C100805, // 001E EQ R4 R4 R5 + 0x78120006, // 001F JMPF R4 #0027 + 0x8C100108, // 0020 GETMET R4 R0 K8 + 0x7C100200, // 0021 CALL R4 1 + 0x8C100109, // 0022 GETMET R4 R0 K9 + 0x5C180200, // 0023 MOVE R6 R1 + 0x501C0000, // 0024 LDBOOL R7 0 0 + 0x7C100600, // 0025 CALL R4 3 + 0x80040800, // 0026 RET 1 R4 + 0x8C10010C, // 0027 GETMET R4 R0 K12 + 0x5C180200, // 0028 MOVE R6 R1 + 0x5C1C0400, // 0029 MOVE R7 R2 + 0x7C100600, // 002A CALL R4 3 + 0x80040800, // 002B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_math_method +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_is_math_method, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(closure_value), + /* K3 */ be_nested_str_weak(members), + /* K4 */ be_nested_str_weak(get), + /* K5 */ be_nested_str_weak(ismethod), + /* K6 */ be_nested_str_weak(function), + /* K7 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(is_math_method), + &be_const_str_solidified, + ( &(const binstruction[54]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0xA802002C, // 0001 EXBLK 0 #002F + 0xB80E0200, // 0002 GETNGBL R3 K1 + 0x880C0702, // 0003 GETMBR R3 R3 K2 + 0x4C100000, // 0004 LDNIL R4 + 0x1C100604, // 0005 EQ R4 R3 R4 + 0x78120002, // 0006 JMPF R4 #000A + 0x50100000, // 0007 LDBOOL R4 0 0 + 0xA8040001, // 0008 EXBLK 1 1 + 0x80040800, // 0009 RET 1 R4 + 0x8C100503, // 000A GETMET R4 R2 K3 + 0x5C180600, // 000B MOVE R6 R3 + 0x7C100400, // 000C CALL R4 2 + 0x60140010, // 000D GETGBL R5 G16 + 0x5C180800, // 000E MOVE R6 R4 + 0x7C140200, // 000F CALL R5 1 + 0xA8020015, // 0010 EXBLK 0 #0027 + 0x5C180A00, // 0011 MOVE R6 R5 + 0x7C180000, // 0012 CALL R6 0 + 0x1C1C0C01, // 0013 EQ R7 R6 R1 + 0x781E0010, // 0014 JMPF R7 #0026 + 0x8C1C0504, // 0015 GETMET R7 R2 K4 + 0x5C240600, // 0016 MOVE R9 R3 + 0x5C280200, // 0017 MOVE R10 R1 + 0x7C1C0600, // 0018 CALL R7 3 + 0x8C200505, // 0019 GETMET R8 R2 K5 + 0x5C280E00, // 001A MOVE R10 R7 + 0x7C200400, // 001B CALL R8 2 + 0x74220005, // 001C JMPT R8 #0023 + 0x60200004, // 001D GETGBL R8 G4 + 0x5C240E00, // 001E MOVE R9 R7 + 0x7C200200, // 001F CALL R8 1 + 0x1C201106, // 0020 EQ R8 R8 K6 + 0x74220000, // 0021 JMPT R8 #0023 + 0x50200001, // 0022 LDBOOL R8 0 1 + 0x50200200, // 0023 LDBOOL R8 1 0 + 0xA8040002, // 0024 EXBLK 1 2 + 0x80041000, // 0025 RET 1 R8 + 0x7001FFE9, // 0026 JMP #0011 + 0x58140007, // 0027 LDCONST R5 K7 + 0xAC140200, // 0028 CATCH R5 1 0 + 0xB0080000, // 0029 RAISE 2 R0 R0 + 0x50140000, // 002A LDBOOL R5 0 0 + 0xA8040001, // 002B EXBLK 1 1 + 0x80040A00, // 002C RET 1 R5 + 0xA8040001, // 002D EXBLK 1 1 + 0x70020005, // 002E JMP #0035 + 0xAC0C0002, // 002F CATCH R3 0 2 + 0x70020002, // 0030 JMP #0034 + 0x50140000, // 0031 LDBOOL R5 0 0 + 0x80040A00, // 0032 RET 1 R5 + 0x70020000, // 0033 JMP #0035 + 0xB0080000, // 0034 RAISE 2 R0 R0 + 0x80000000, // 0035 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_event_handler +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[26]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(line), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(_X7B_X7D), + /* K6 */ be_nested_str_weak(type), + /* K7 */ be_nested_str_weak(animation_dsl), + /* K8 */ be_nested_str_weak(Token), + /* K9 */ be_nested_str_weak(LEFT_PAREN), + /* K10 */ be_nested_str_weak(process_event_parameters), + /* K11 */ be_nested_str_weak(expect_colon), + /* K12 */ be_nested_str_weak(event_handler__X25s__X25s), + /* K13 */ be_nested_str_weak(add), + /* K14 */ be_nested_str_weak(def_X20_X25s_X28event_data_X29), + /* K15 */ be_nested_str_weak(KEYWORD), + /* K16 */ be_nested_str_weak(value), + /* K17 */ be_nested_str_weak(interrupt), + /* K18 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_current_X28_X29), + /* K19 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_animation_X28_X22_X25s_X22_X29), + /* K20 */ be_nested_str_weak(process_value), + /* K21 */ be_nested_str_weak(animation), + /* K22 */ be_nested_str_weak(_X20_X20var_X20temp_anim_X20_X3D_X20_X25s), + /* K23 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28temp_anim_X29), + /* K24 */ be_nested_str_weak(end), + /* K25 */ be_nested_str_weak(animation_X2Eregister_event_handler_X28_X22_X25s_X22_X2C_X20_X25s_X2C_X200_X2C_X20nil_X2C_X20_X25s_X29), + }), + be_str_weak(process_event_handler), + &be_const_str_solidified, + ( &(const binstruction[101]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x4C0C0000, // 0006 LDNIL R3 + 0x20080403, // 0007 NE R2 R2 R3 + 0x780A0003, // 0008 JMPF R2 #000D + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x88080503, // 000B GETMBR R2 R2 K3 + 0x70020000, // 000C JMP #000E + 0x58080004, // 000D LDCONST R2 K4 + 0x580C0005, // 000E LDCONST R3 K5 + 0x8C100102, // 000F GETMET R4 R0 K2 + 0x7C100200, // 0010 CALL R4 1 + 0x4C140000, // 0011 LDNIL R5 + 0x20100805, // 0012 NE R4 R4 R5 + 0x7812000A, // 0013 JMPF R4 #001F + 0x8C100102, // 0014 GETMET R4 R0 K2 + 0x7C100200, // 0015 CALL R4 1 + 0x88100906, // 0016 GETMBR R4 R4 K6 + 0xB8160E00, // 0017 GETNGBL R5 K7 + 0x88140B08, // 0018 GETMBR R5 R5 K8 + 0x88140B09, // 0019 GETMBR R5 R5 K9 + 0x1C100805, // 001A EQ R4 R4 R5 + 0x78120002, // 001B JMPF R4 #001F + 0x8C10010A, // 001C GETMET R4 R0 K10 + 0x7C100200, // 001D CALL R4 1 + 0x5C0C0800, // 001E MOVE R3 R4 + 0x8C10010B, // 001F GETMET R4 R0 K11 + 0x7C100200, // 0020 CALL R4 1 + 0x60100018, // 0021 GETGBL R4 G24 + 0x5814000C, // 0022 LDCONST R5 K12 + 0x5C180200, // 0023 MOVE R6 R1 + 0x5C1C0400, // 0024 MOVE R7 R2 + 0x7C100600, // 0025 CALL R4 3 + 0x8C14010D, // 0026 GETMET R5 R0 K13 + 0x601C0018, // 0027 GETGBL R7 G24 + 0x5820000E, // 0028 LDCONST R8 K14 + 0x5C240800, // 0029 MOVE R9 R4 + 0x7C1C0400, // 002A CALL R7 2 + 0x7C140400, // 002B CALL R5 2 + 0x8C140102, // 002C GETMET R5 R0 K2 + 0x7C140200, // 002D CALL R5 1 + 0x4C180000, // 002E LDNIL R6 + 0x20180A06, // 002F NE R6 R5 R6 + 0x781A0027, // 0030 JMPF R6 #0059 + 0x88180B06, // 0031 GETMBR R6 R5 K6 + 0xB81E0E00, // 0032 GETNGBL R7 K7 + 0x881C0F08, // 0033 GETMBR R7 R7 K8 + 0x881C0F0F, // 0034 GETMBR R7 R7 K15 + 0x1C180C07, // 0035 EQ R6 R6 R7 + 0x781A0013, // 0036 JMPF R6 #004B + 0x88180B10, // 0037 GETMBR R6 R5 K16 + 0x1C180D11, // 0038 EQ R6 R6 K17 + 0x781A0010, // 0039 JMPF R6 #004B + 0x8C180100, // 003A GETMET R6 R0 K0 + 0x7C180200, // 003B CALL R6 1 + 0x8C180101, // 003C GETMET R6 R0 K1 + 0x7C180200, // 003D CALL R6 1 + 0x1C1C0D02, // 003E EQ R7 R6 K2 + 0x781E0003, // 003F JMPF R7 #0044 + 0x8C1C010D, // 0040 GETMET R7 R0 K13 + 0x58240012, // 0041 LDCONST R9 K18 + 0x7C1C0400, // 0042 CALL R7 2 + 0x70020005, // 0043 JMP #004A + 0x8C1C010D, // 0044 GETMET R7 R0 K13 + 0x60240018, // 0045 GETGBL R9 G24 + 0x58280013, // 0046 LDCONST R10 K19 + 0x5C2C0C00, // 0047 MOVE R11 R6 + 0x7C240400, // 0048 CALL R9 2 + 0x7C1C0400, // 0049 CALL R7 2 + 0x7002000D, // 004A JMP #0059 + 0x8C180114, // 004B GETMET R6 R0 K20 + 0x58200015, // 004C LDCONST R8 K21 + 0x7C180400, // 004D CALL R6 2 + 0x8C1C010D, // 004E GETMET R7 R0 K13 + 0x60240018, // 004F GETGBL R9 G24 + 0x58280016, // 0050 LDCONST R10 K22 + 0x5C2C0C00, // 0051 MOVE R11 R6 + 0x7C240400, // 0052 CALL R9 2 + 0x7C1C0400, // 0053 CALL R7 2 + 0x8C1C010D, // 0054 GETMET R7 R0 K13 + 0x60240018, // 0055 GETGBL R9 G24 + 0x58280017, // 0056 LDCONST R10 K23 + 0x7C240200, // 0057 CALL R9 1 + 0x7C1C0400, // 0058 CALL R7 2 + 0x8C18010D, // 0059 GETMET R6 R0 K13 + 0x58200018, // 005A LDCONST R8 K24 + 0x7C180400, // 005B CALL R6 2 + 0x8C18010D, // 005C GETMET R6 R0 K13 + 0x60200018, // 005D GETGBL R8 G24 + 0x58240019, // 005E LDCONST R9 K25 + 0x5C280200, // 005F MOVE R10 R1 + 0x5C2C0800, // 0060 MOVE R11 R4 + 0x5C300600, // 0061 MOVE R12 R3 + 0x7C200800, // 0062 CALL R8 4 + 0x7C180400, // 0063 CALL R6 2 + 0x80000000, // 0064 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_wait_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(process_time_value), + /* K2 */ be_nested_str_weak(collect_inline_comment), + /* K3 */ be_nested_str_weak(add), + /* K4 */ be_nested_str_weak(_X25s_X2Epush_wait_step_X28_X25s_X29_X25s), + /* K5 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_wait_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x8C0C0103, // 0006 GETMET R3 R0 K3 + 0x60140018, // 0007 GETGBL R5 G24 + 0x58180004, // 0008 LDCONST R6 K4 + 0x8C1C0105, // 0009 GETMET R7 R0 K5 + 0x7C1C0200, // 000A CALL R7 1 + 0x5C200200, // 000B MOVE R8 R1 + 0x5C240400, // 000C MOVE R9 R2 + 0x7C140800, // 000D CALL R5 4 + 0x7C0C0400, // 000E CALL R3 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_color_provider_factory_exists +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_validate_factory_function), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(color_provider), + }), + be_str_weak(_validate_color_provider_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0xB8160200, // 0002 GETNGBL R5 K1 + 0x88140B02, // 0003 GETMBR R5 R5 K2 + 0x7C080600, // 0004 CALL R2 3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _is_simple_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__is_simple_function_call, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(strip_length), + /* K1 */ be_nested_str_weak(static_value), + /* K2 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_is_simple_function_call), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x60080012, // 0000 GETGBL R2 G18 + 0x7C080000, // 0001 CALL R2 0 + 0x400C0500, // 0002 CONNECT R3 R2 K0 + 0x400C0501, // 0003 CONNECT R3 R2 K1 + 0x600C0010, // 0004 GETGBL R3 G16 + 0x5C100400, // 0005 MOVE R4 R2 + 0x7C0C0200, // 0006 CALL R3 1 + 0xA8020007, // 0007 EXBLK 0 #0010 + 0x5C100600, // 0008 MOVE R4 R3 + 0x7C100000, // 0009 CALL R4 0 + 0x1C140204, // 000A EQ R5 R1 R4 + 0x78160002, // 000B JMPF R5 #000F + 0x50140200, // 000C LDBOOL R5 1 0 + 0xA8040001, // 000D EXBLK 1 1 + 0x80040A00, // 000E RET 1 R5 + 0x7001FFF7, // 000F JMP #0008 + 0x580C0002, // 0010 LDCONST R3 K2 + 0xAC0C0200, // 0011 CATCH R3 1 0 + 0xB0080000, // 0012 RAISE 2 R0 R0 + 0x500C0000, // 0013 LDBOOL R3 0 0 + 0x80040600, // 0014 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_indent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_indent, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_X20_X20), + /* K1 */ be_nested_str_weak(indent_level), + /* K2 */ be_const_int(1), + }), + be_str_weak(get_indent), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040101, // 0000 GETMBR R1 R0 K1 + 0x00040302, // 0001 ADD R1 R1 K2 + 0x08060001, // 0002 MUL R1 K0 R1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: current +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_current, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_nested_str_weak(tokens), + }), + be_str_weak(current), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x14040202, // 0004 LT R1 R1 R2 + 0x78060003, // 0005 JMPF R1 #000A + 0x88040101, // 0006 GETMBR R1 R0 K1 + 0x88080100, // 0007 GETMBR R2 R0 K0 + 0x94040202, // 0008 GETIDX R1 R1 R2 + 0x70020000, // 0009 JMP #000B + 0x4C040000, // 000A LDNIL R1 + 0x80040200, // 000B RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: generate_template_function +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_template_function, /* name */ + be_nested_proto( + 17, /* nstack */ + 5, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[23]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(engine), + /* K2 */ be_nested_str_weak(_X2C_X20_X25s_), + /* K3 */ be_nested_str_weak(stop_iteration), + /* K4 */ be_nested_str_weak(add), + /* K5 */ be_nested_str_weak(_X23_X20Template_X20function_X3A_X20_X25s), + /* K6 */ be_nested_str_weak(def_X20_X25s_template_X28_X25s_X29), + /* K7 */ be_nested_str_weak(animation_dsl), + /* K8 */ be_nested_str_weak(SimpleDSLTranspiler), + /* K9 */ be_nested_str_weak(symbol_table), + /* K10 */ be_nested_str_weak(strip_initialized), + /* K11 */ be_nested_str_weak(parameter), + /* K12 */ be_nested_str_weak(transpile_template_body), + /* K13 */ be_nested_str_weak(split), + /* K14 */ be_nested_str_weak(_X0A), + /* K15 */ be_const_int(0), + /* K16 */ be_nested_str_weak(_X20_X20_X25s), + /* K17 */ be_nested_str_weak(errors), + /* K18 */ be_nested_str_weak(error), + /* K19 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), + /* K20 */ be_nested_str_weak(end), + /* K21 */ be_nested_str_weak(), + /* K22 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X27_X25s_X27_X2C_X20_X25s_template_X29), + }), + be_str_weak(generate_template_function), + &be_const_str_solidified, + ( &(const binstruction[116]) { /* code */ + 0xA4160000, // 0000 IMPORT R5 K0 + 0x58180001, // 0001 LDCONST R6 K1 + 0x601C0010, // 0002 GETGBL R7 G16 + 0x5C200400, // 0003 MOVE R8 R2 + 0x7C1C0200, // 0004 CALL R7 1 + 0xA8020007, // 0005 EXBLK 0 #000E + 0x5C200E00, // 0006 MOVE R8 R7 + 0x7C200000, // 0007 CALL R8 0 + 0x60240018, // 0008 GETGBL R9 G24 + 0x58280002, // 0009 LDCONST R10 K2 + 0x5C2C1000, // 000A MOVE R11 R8 + 0x7C240400, // 000B CALL R9 2 + 0x00180C09, // 000C ADD R6 R6 R9 + 0x7001FFF7, // 000D JMP #0006 + 0x581C0003, // 000E LDCONST R7 K3 + 0xAC1C0200, // 000F CATCH R7 1 0 + 0xB0080000, // 0010 RAISE 2 R0 R0 + 0x8C1C0104, // 0011 GETMET R7 R0 K4 + 0x60240018, // 0012 GETGBL R9 G24 + 0x58280005, // 0013 LDCONST R10 K5 + 0x5C2C0200, // 0014 MOVE R11 R1 + 0x7C240400, // 0015 CALL R9 2 + 0x7C1C0400, // 0016 CALL R7 2 + 0x8C1C0104, // 0017 GETMET R7 R0 K4 + 0x60240018, // 0018 GETGBL R9 G24 + 0x58280006, // 0019 LDCONST R10 K6 + 0x5C2C0200, // 001A MOVE R11 R1 + 0x5C300C00, // 001B MOVE R12 R6 + 0x7C240600, // 001C CALL R9 3 + 0x7C1C0400, // 001D CALL R7 2 + 0xB81E0E00, // 001E GETNGBL R7 K7 + 0x8C1C0F08, // 001F GETMET R7 R7 K8 + 0x5C240800, // 0020 MOVE R9 R4 + 0x7C1C0400, // 0021 CALL R7 2 + 0x60200013, // 0022 GETGBL R8 G19 + 0x7C200000, // 0023 CALL R8 0 + 0x901E1208, // 0024 SETMBR R7 K9 R8 + 0x50200200, // 0025 LDBOOL R8 1 0 + 0x901E1408, // 0026 SETMBR R7 K10 R8 + 0x60200010, // 0027 GETGBL R8 G16 + 0x5C240400, // 0028 MOVE R9 R2 + 0x7C200200, // 0029 CALL R8 1 + 0xA8020004, // 002A EXBLK 0 #0030 + 0x5C241000, // 002B MOVE R9 R8 + 0x7C240000, // 002C CALL R9 0 + 0x88280F09, // 002D GETMBR R10 R7 K9 + 0x9828130B, // 002E SETIDX R10 R9 K11 + 0x7001FFFA, // 002F JMP #002B + 0x58200003, // 0030 LDCONST R8 K3 + 0xAC200200, // 0031 CATCH R8 1 0 + 0xB0080000, // 0032 RAISE 2 R0 R0 + 0x8C200F0C, // 0033 GETMET R8 R7 K12 + 0x7C200200, // 0034 CALL R8 1 + 0x4C240000, // 0035 LDNIL R9 + 0x20241009, // 0036 NE R9 R8 R9 + 0x78260019, // 0037 JMPF R9 #0052 + 0x8C240B0D, // 0038 GETMET R9 R5 K13 + 0x5C2C1000, // 0039 MOVE R11 R8 + 0x5830000E, // 003A LDCONST R12 K14 + 0x7C240600, // 003B CALL R9 3 + 0x60280010, // 003C GETGBL R10 G16 + 0x5C2C1200, // 003D MOVE R11 R9 + 0x7C280200, // 003E CALL R10 1 + 0xA802000D, // 003F EXBLK 0 #004E + 0x5C2C1400, // 0040 MOVE R11 R10 + 0x7C2C0000, // 0041 CALL R11 0 + 0x6030000C, // 0042 GETGBL R12 G12 + 0x5C341600, // 0043 MOVE R13 R11 + 0x7C300200, // 0044 CALL R12 1 + 0x2430190F, // 0045 GT R12 R12 K15 + 0x78320005, // 0046 JMPF R12 #004D + 0x8C300104, // 0047 GETMET R12 R0 K4 + 0x60380018, // 0048 GETGBL R14 G24 + 0x583C0010, // 0049 LDCONST R15 K16 + 0x5C401600, // 004A MOVE R16 R11 + 0x7C380400, // 004B CALL R14 2 + 0x7C300400, // 004C CALL R12 2 + 0x7001FFF1, // 004D JMP #0040 + 0x58280003, // 004E LDCONST R10 K3 + 0xAC280200, // 004F CATCH R10 1 0 + 0xB0080000, // 0050 RAISE 2 R0 R0 + 0x70020010, // 0051 JMP #0063 + 0x60240010, // 0052 GETGBL R9 G16 + 0x88280F11, // 0053 GETMBR R10 R7 K17 + 0x7C240200, // 0054 CALL R9 1 + 0xA8020009, // 0055 EXBLK 0 #0060 + 0x5C281200, // 0056 MOVE R10 R9 + 0x7C280000, // 0057 CALL R10 0 + 0x8C2C0112, // 0058 GETMET R11 R0 K18 + 0x60340018, // 0059 GETGBL R13 G24 + 0x58380013, // 005A LDCONST R14 K19 + 0x5C3C0200, // 005B MOVE R15 R1 + 0x5C401400, // 005C MOVE R16 R10 + 0x7C340600, // 005D CALL R13 3 + 0x7C2C0400, // 005E CALL R11 2 + 0x7001FFF5, // 005F JMP #0056 + 0x58240003, // 0060 LDCONST R9 K3 + 0xAC240200, // 0061 CATCH R9 1 0 + 0xB0080000, // 0062 RAISE 2 R0 R0 + 0x8C240104, // 0063 GETMET R9 R0 K4 + 0x582C0014, // 0064 LDCONST R11 K20 + 0x7C240400, // 0065 CALL R9 2 + 0x8C240104, // 0066 GETMET R9 R0 K4 + 0x582C0015, // 0067 LDCONST R11 K21 + 0x7C240400, // 0068 CALL R9 2 + 0x8C240104, // 0069 GETMET R9 R0 K4 + 0x602C0018, // 006A GETGBL R11 G24 + 0x58300016, // 006B LDCONST R12 K22 + 0x5C340200, // 006C MOVE R13 R1 + 0x5C380200, // 006D MOVE R14 R1 + 0x7C2C0600, // 006E CALL R11 3 + 0x7C240400, // 006F CALL R9 2 + 0x8C240104, // 0070 GETMET R9 R0 K4 + 0x582C0015, // 0071 LDCONST R11 K21 + 0x7C240400, // 0072 CALL R9 2 + 0x80000000, // 0073 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_bracket, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(LEFT_BRACKET), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X5B_X27), + }), + be_str_weak(expect_left_bracket), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_factory_function +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_factory_function, /* name */ + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(animation), + /* K3 */ be_nested_str_weak(function), + /* K4 */ be_nested_str_weak(class), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(MockEngine), + }), + be_str_weak(_validate_factory_function), + &be_const_str_solidified, + ( &(const binstruction[59]) { /* code */ + 0xA8020032, // 0000 EXBLK 0 #0034 + 0xA40E0000, // 0001 IMPORT R3 K0 + 0x8C100701, // 0002 GETMET R4 R3 K1 + 0xB81A0400, // 0003 GETNGBL R6 K2 + 0x5C1C0200, // 0004 MOVE R7 R1 + 0x7C100600, // 0005 CALL R4 3 + 0x74120002, // 0006 JMPT R4 #000A + 0x50100000, // 0007 LDBOOL R4 0 0 + 0xA8040001, // 0008 EXBLK 1 1 + 0x80040800, // 0009 RET 1 R4 + 0xB8120400, // 000A GETNGBL R4 K2 + 0x88100801, // 000B GETMBR R4 R4 R1 + 0x60140004, // 000C GETGBL R5 G4 + 0x5C180800, // 000D MOVE R6 R4 + 0x7C140200, // 000E CALL R5 1 + 0x20180B03, // 000F NE R6 R5 K3 + 0x781A0004, // 0010 JMPF R6 #0016 + 0x20180B04, // 0011 NE R6 R5 K4 + 0x781A0002, // 0012 JMPF R6 #0016 + 0x50180000, // 0013 LDBOOL R6 0 0 + 0xA8040001, // 0014 EXBLK 1 1 + 0x80040C00, // 0015 RET 1 R6 + 0x4C180000, // 0016 LDNIL R6 + 0x1C180406, // 0017 EQ R6 R2 R6 + 0x781A0002, // 0018 JMPF R6 #001C + 0x50180200, // 0019 LDBOOL R6 1 0 + 0xA8040001, // 001A EXBLK 1 1 + 0x80040C00, // 001B RET 1 R6 + 0xB81A0A00, // 001C GETNGBL R6 K5 + 0x8C180D06, // 001D GETMET R6 R6 K6 + 0x7C180200, // 001E CALL R6 1 + 0xA802000A, // 001F EXBLK 0 #002B + 0x5C1C0800, // 0020 MOVE R7 R4 + 0x5C200C00, // 0021 MOVE R8 R6 + 0x7C1C0200, // 0022 CALL R7 1 + 0x6020000F, // 0023 GETGBL R8 G15 + 0x5C240E00, // 0024 MOVE R9 R7 + 0x5C280400, // 0025 MOVE R10 R2 + 0x7C200400, // 0026 CALL R8 2 + 0xA8040002, // 0027 EXBLK 1 2 + 0x80041000, // 0028 RET 1 R8 + 0xA8040001, // 0029 EXBLK 1 1 + 0x70020006, // 002A JMP #0032 + 0xAC1C0002, // 002B CATCH R7 0 2 + 0x70020003, // 002C JMP #0031 + 0x50240000, // 002D LDBOOL R9 0 0 + 0xA8040001, // 002E EXBLK 1 1 + 0x80041200, // 002F RET 1 R9 + 0x70020000, // 0030 JMP #0032 + 0xB0080000, // 0031 RAISE 2 R0 R0 + 0xA8040001, // 0032 EXBLK 1 1 + 0x70020005, // 0033 JMP #003A + 0xAC0C0002, // 0034 CATCH R3 0 2 + 0x70020002, // 0035 JMP #0039 + 0x50140000, // 0036 LDBOOL R5 0 0 + 0x80040A00, // 0037 RET 1 R5 + 0x70020000, // 0038 JMP #003A + 0xB0080000, // 0039 RAISE 2 R0 R0 + 0x80000000, // 003A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _create_instance_for_validation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(MockEngine), + /* K2 */ be_nested_str_weak(introspect), + /* K3 */ be_nested_str_weak(contains), + /* K4 */ be_nested_str_weak(animation), + /* K5 */ be_nested_str_weak(class), + /* K6 */ be_nested_str_weak(function), + }), + be_str_weak(_create_instance_for_validation), + &be_const_str_solidified, + ( &(const binstruction[39]) { /* code */ + 0xA802001E, // 0000 EXBLK 0 #0020 + 0xB80A0000, // 0001 GETNGBL R2 K0 + 0x8C080501, // 0002 GETMET R2 R2 K1 + 0x7C080200, // 0003 CALL R2 1 + 0xA40E0400, // 0004 IMPORT R3 K2 + 0x8C100703, // 0005 GETMET R4 R3 K3 + 0xB81A0800, // 0006 GETNGBL R6 K4 + 0x5C1C0200, // 0007 MOVE R7 R1 + 0x7C100600, // 0008 CALL R4 3 + 0x78120010, // 0009 JMPF R4 #001B + 0xB8120800, // 000A GETNGBL R4 K4 + 0x88100801, // 000B GETMBR R4 R4 R1 + 0x60140004, // 000C GETGBL R5 G4 + 0x5C180800, // 000D MOVE R6 R4 + 0x7C140200, // 000E CALL R5 1 + 0x1C140B05, // 000F EQ R5 R5 K5 + 0x74160004, // 0010 JMPT R5 #0016 + 0x60140004, // 0011 GETGBL R5 G4 + 0x5C180800, // 0012 MOVE R6 R4 + 0x7C140200, // 0013 CALL R5 1 + 0x1C140B06, // 0014 EQ R5 R5 K6 + 0x78160004, // 0015 JMPF R5 #001B + 0x5C140800, // 0016 MOVE R5 R4 + 0x5C180400, // 0017 MOVE R6 R2 + 0x7C140200, // 0018 CALL R5 1 + 0xA8040001, // 0019 EXBLK 1 1 + 0x80040A00, // 001A RET 1 R5 + 0x4C100000, // 001B LDNIL R4 + 0xA8040001, // 001C EXBLK 1 1 + 0x80040800, // 001D RET 1 R4 + 0xA8040001, // 001E EXBLK 1 1 + 0x70020005, // 001F JMP #0026 + 0xAC080002, // 0020 CATCH R2 0 2 + 0x70020002, // 0021 JMP #0025 + 0x4C100000, // 0022 LDNIL R4 + 0x80040800, // 0023 RET 1 R4 + 0x70020000, // 0024 JMP #0026 + 0xB0080000, // 0025 RAISE 2 R0 R0 + 0x80000000, // 0026 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_animation_factory_creates_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_validate_factory_function), + /* K1 */ be_nested_str_weak(animation), + }), + be_str_weak(_validate_animation_factory_creates_animation), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0xB8160200, // 0002 GETNGBL R5 K1 + 0x88140B01, // 0003 GETMBR R5 R5 K1 + 0x7C080600, // 0004 CALL R2 3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_log_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_log_call, /* name */ + be_nested_proto( + 10, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(fluent), + /* K1 */ be_nested_str_weak(def_X20_X28engine_X29_X20log_X28f_X22_X25s_X22_X2C_X203_X29_X20end), + /* K2 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K3 */ be_nested_str_weak(get_indent), + /* K4 */ be_nested_str_weak(expression), + /* K5 */ be_nested_str_weak(log_X28f_X22_X25s_X22_X2C_X203_X29), + /* K6 */ be_nested_str_weak(log_X28f_X22_X25s_X22_X2C_X203_X29_X25s), + }), + be_str_weak(process_log_call), + &be_const_str_solidified, + ( &(const binstruction[30]) { /* code */ + 0x1C100500, // 0000 EQ R4 R2 K0 + 0x7812000C, // 0001 JMPF R4 #000F + 0x60100018, // 0002 GETGBL R4 G24 + 0x58140001, // 0003 LDCONST R5 K1 + 0x5C180200, // 0004 MOVE R6 R1 + 0x7C100400, // 0005 CALL R4 2 + 0x60140018, // 0006 GETGBL R5 G24 + 0x58180002, // 0007 LDCONST R6 K2 + 0x8C1C0103, // 0008 GETMET R7 R0 K3 + 0x7C1C0200, // 0009 CALL R7 1 + 0x5C200800, // 000A MOVE R8 R4 + 0x5C240600, // 000B MOVE R9 R3 + 0x7C140800, // 000C CALL R5 4 + 0x80040A00, // 000D RET 1 R5 + 0x7002000D, // 000E JMP #001D + 0x1C100504, // 000F EQ R4 R2 K4 + 0x78120005, // 0010 JMPF R4 #0017 + 0x60100018, // 0011 GETGBL R4 G24 + 0x58140005, // 0012 LDCONST R5 K5 + 0x5C180200, // 0013 MOVE R6 R1 + 0x7C100400, // 0014 CALL R4 2 + 0x80040800, // 0015 RET 1 R4 + 0x70020005, // 0016 JMP #001D + 0x60100018, // 0017 GETGBL R4 G24 + 0x58140006, // 0018 LDCONST R5 K6 + 0x5C180200, // 0019 MOVE R6 R1 + 0x5C1C0600, // 001A MOVE R7 R3 + 0x7C100600, // 001B CALL R4 3 + 0x80040800, // 001C RET 1 R4 + 0x80000000, // 001D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_primary_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name */ + be_nested_proto( + 13, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[57]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(LEFT_PAREN), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_additive_expression), + /* K10 */ be_nested_str_weak(expect_right_paren), + /* K11 */ be_nested_str_weak(_X28_X25s_X29), + /* K12 */ be_nested_str_weak(KEYWORD), + /* K13 */ be_nested_str_weak(IDENTIFIER), + /* K14 */ be_nested_str_weak(peek), + /* K15 */ be_nested_str_weak(value), + /* K16 */ be_nested_str_weak(_is_simple_function_call), + /* K17 */ be_nested_str_weak(process_function_call), + /* K18 */ be_nested_str_weak(argument), + /* K19 */ be_nested_str_weak(property), + /* K20 */ be_nested_str_weak(variable), + /* K21 */ be_nested_str_weak(process_nested_function_call), + /* K22 */ be_nested_str_weak(COLOR), + /* K23 */ be_nested_str_weak(convert_color), + /* K24 */ be_nested_str_weak(TIME), + /* K25 */ be_nested_str_weak(process_time_value), + /* K26 */ be_nested_str_weak(PERCENTAGE), + /* K27 */ be_nested_str_weak(process_percentage_value), + /* K28 */ be_nested_str_weak(NUMBER), + /* K29 */ be_nested_str_weak(STRING), + /* K30 */ be_nested_str_weak(_X22_X25s_X22), + /* K31 */ be_nested_str_weak(LEFT_BRACKET), + /* K32 */ be_nested_str_weak(process_array_literal), + /* K33 */ be_nested_str_weak(DOT), + /* K34 */ be_nested_str_weak(expect_identifier), + /* K35 */ be_nested_str_weak(user), + /* K36 */ be_nested_str_weak(_process_user_function_call), + /* K37 */ be_nested_str_weak(symbol_table), + /* K38 */ be_nested_str_weak(contains), + /* K39 */ be_nested_str_weak(string), + /* K40 */ be_nested_str_weak(_validate_single_parameter), + /* K41 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20references_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), + /* K42 */ be_nested_str_weak(introspect), + /* K43 */ be_nested_str_weak(), + /* K44 */ be_nested_str_weak(animation), + /* K45 */ be_nested_str_weak(animation_X2E_X25s), + /* K46 */ be_nested_str_weak(_X25s_), + /* K47 */ be_nested_str_weak(repeat_count), + /* K48 */ be_nested_str_weak(_X25s_X2E_X25s), + /* K49 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), + /* K50 */ be_nested_str_weak(startswith), + /* K51 */ be_nested_str_weak(PALETTE_), + /* K52 */ be_nested_str_weak(is_color_name), + /* K53 */ be_nested_str_weak(get_named_color_value), + /* K54 */ be_nested_str_weak(true), + /* K55 */ be_nested_str_weak(false), + /* K56 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), + }), + be_str_weak(process_primary_expression), + &be_const_str_solidified, + ( &(const binstruction[313]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x4C100000, // 0002 LDNIL R4 + 0x1C100604, // 0003 EQ R4 R3 R4 + 0x78120003, // 0004 JMPF R4 #0009 + 0x8C100101, // 0005 GETMET R4 R0 K1 + 0x58180002, // 0006 LDCONST R6 K2 + 0x7C100400, // 0007 CALL R4 2 + 0x80060600, // 0008 RET 1 K3 + 0x88100704, // 0009 GETMBR R4 R3 K4 + 0xB8160A00, // 000A GETNGBL R5 K5 + 0x88140B06, // 000B GETMBR R5 R5 K6 + 0x88140B07, // 000C GETMBR R5 R5 K7 + 0x1C100805, // 000D EQ R4 R4 R5 + 0x7812000C, // 000E JMPF R4 #001C + 0x8C100108, // 000F GETMET R4 R0 K8 + 0x7C100200, // 0010 CALL R4 1 + 0x8C100109, // 0011 GETMET R4 R0 K9 + 0x5C180200, // 0012 MOVE R6 R1 + 0x501C0000, // 0013 LDBOOL R7 0 0 + 0x7C100600, // 0014 CALL R4 3 + 0x8C14010A, // 0015 GETMET R5 R0 K10 + 0x7C140200, // 0016 CALL R5 1 + 0x60140018, // 0017 GETGBL R5 G24 + 0x5818000B, // 0018 LDCONST R6 K11 + 0x5C1C0800, // 0019 MOVE R7 R4 + 0x7C140400, // 001A CALL R5 2 + 0x80040A00, // 001B RET 1 R5 + 0x88100704, // 001C GETMBR R4 R3 K4 + 0xB8160A00, // 001D GETNGBL R5 K5 + 0x88140B06, // 001E GETMBR R5 R5 K6 + 0x88140B0C, // 001F GETMBR R5 R5 K12 + 0x1C100805, // 0020 EQ R4 R4 R5 + 0x74120005, // 0021 JMPT R4 #0028 + 0x88100704, // 0022 GETMBR R4 R3 K4 + 0xB8160A00, // 0023 GETNGBL R5 K5 + 0x88140B06, // 0024 GETMBR R5 R5 K6 + 0x88140B0D, // 0025 GETMBR R5 R5 K13 + 0x1C100805, // 0026 EQ R4 R4 R5 + 0x78120024, // 0027 JMPF R4 #004D + 0x8C10010E, // 0028 GETMET R4 R0 K14 + 0x7C100200, // 0029 CALL R4 1 + 0x4C140000, // 002A LDNIL R5 + 0x20100805, // 002B NE R4 R4 R5 + 0x7812001F, // 002C JMPF R4 #004D + 0x8C10010E, // 002D GETMET R4 R0 K14 + 0x7C100200, // 002E CALL R4 1 + 0x88100904, // 002F GETMBR R4 R4 K4 + 0xB8160A00, // 0030 GETNGBL R5 K5 + 0x88140B06, // 0031 GETMBR R5 R5 K6 + 0x88140B07, // 0032 GETMBR R5 R5 K7 + 0x1C100805, // 0033 EQ R4 R4 R5 + 0x78120017, // 0034 JMPF R4 #004D + 0x8810070F, // 0035 GETMBR R4 R3 K15 + 0x8C140110, // 0036 GETMET R5 R0 K16 + 0x5C1C0800, // 0037 MOVE R7 R4 + 0x7C140400, // 0038 CALL R5 2 + 0x78160004, // 0039 JMPF R5 #003F + 0x8C140111, // 003A GETMET R5 R0 K17 + 0x5C1C0200, // 003B MOVE R7 R1 + 0x7C140400, // 003C CALL R5 2 + 0x80040A00, // 003D RET 1 R5 + 0x7002000D, // 003E JMP #004D + 0x1C140312, // 003F EQ R5 R1 K18 + 0x74160003, // 0040 JMPT R5 #0045 + 0x1C140313, // 0041 EQ R5 R1 K19 + 0x74160001, // 0042 JMPT R5 #0045 + 0x1C140314, // 0043 EQ R5 R1 K20 + 0x78160003, // 0044 JMPF R5 #0049 + 0x8C140115, // 0045 GETMET R5 R0 K21 + 0x7C140200, // 0046 CALL R5 1 + 0x80040A00, // 0047 RET 1 R5 + 0x70020003, // 0048 JMP #004D + 0x8C140111, // 0049 GETMET R5 R0 K17 + 0x5C1C0200, // 004A MOVE R7 R1 + 0x7C140400, // 004B CALL R5 2 + 0x80040A00, // 004C RET 1 R5 + 0x88100704, // 004D GETMBR R4 R3 K4 + 0xB8160A00, // 004E GETNGBL R5 K5 + 0x88140B06, // 004F GETMBR R5 R5 K6 + 0x88140B16, // 0050 GETMBR R5 R5 K22 + 0x1C100805, // 0051 EQ R4 R4 R5 + 0x78120005, // 0052 JMPF R4 #0059 + 0x8C100108, // 0053 GETMET R4 R0 K8 + 0x7C100200, // 0054 CALL R4 1 + 0x8C100117, // 0055 GETMET R4 R0 K23 + 0x8818070F, // 0056 GETMBR R6 R3 K15 + 0x7C100400, // 0057 CALL R4 2 + 0x80040800, // 0058 RET 1 R4 + 0x88100704, // 0059 GETMBR R4 R3 K4 + 0xB8160A00, // 005A GETNGBL R5 K5 + 0x88140B06, // 005B GETMBR R5 R5 K6 + 0x88140B18, // 005C GETMBR R5 R5 K24 + 0x1C100805, // 005D EQ R4 R4 R5 + 0x78120004, // 005E JMPF R4 #0064 + 0x60100008, // 005F GETGBL R4 G8 + 0x8C140119, // 0060 GETMET R5 R0 K25 + 0x7C140200, // 0061 CALL R5 1 + 0x7C100200, // 0062 CALL R4 1 + 0x80040800, // 0063 RET 1 R4 + 0x88100704, // 0064 GETMBR R4 R3 K4 + 0xB8160A00, // 0065 GETNGBL R5 K5 + 0x88140B06, // 0066 GETMBR R5 R5 K6 + 0x88140B1A, // 0067 GETMBR R5 R5 K26 + 0x1C100805, // 0068 EQ R4 R4 R5 + 0x78120004, // 0069 JMPF R4 #006F + 0x60100008, // 006A GETGBL R4 G8 + 0x8C14011B, // 006B GETMET R5 R0 K27 + 0x7C140200, // 006C CALL R5 1 + 0x7C100200, // 006D CALL R4 1 + 0x80040800, // 006E RET 1 R4 + 0x88100704, // 006F GETMBR R4 R3 K4 + 0xB8160A00, // 0070 GETNGBL R5 K5 + 0x88140B06, // 0071 GETMBR R5 R5 K6 + 0x88140B1C, // 0072 GETMBR R5 R5 K28 + 0x1C100805, // 0073 EQ R4 R4 R5 + 0x78120003, // 0074 JMPF R4 #0079 + 0x8810070F, // 0075 GETMBR R4 R3 K15 + 0x8C140108, // 0076 GETMET R5 R0 K8 + 0x7C140200, // 0077 CALL R5 1 + 0x80040800, // 0078 RET 1 R4 + 0x88100704, // 0079 GETMBR R4 R3 K4 + 0xB8160A00, // 007A GETNGBL R5 K5 + 0x88140B06, // 007B GETMBR R5 R5 K6 + 0x88140B1D, // 007C GETMBR R5 R5 K29 + 0x1C100805, // 007D EQ R4 R4 R5 + 0x78120007, // 007E JMPF R4 #0087 + 0x8810070F, // 007F GETMBR R4 R3 K15 + 0x8C140108, // 0080 GETMET R5 R0 K8 + 0x7C140200, // 0081 CALL R5 1 + 0x60140018, // 0082 GETGBL R5 G24 + 0x5818001E, // 0083 LDCONST R6 K30 + 0x5C1C0800, // 0084 MOVE R7 R4 + 0x7C140400, // 0085 CALL R5 2 + 0x80040A00, // 0086 RET 1 R5 + 0x88100704, // 0087 GETMBR R4 R3 K4 + 0xB8160A00, // 0088 GETNGBL R5 K5 + 0x88140B06, // 0089 GETMBR R5 R5 K6 + 0x88140B1F, // 008A GETMBR R5 R5 K31 + 0x1C100805, // 008B EQ R4 R4 R5 + 0x78120002, // 008C JMPF R4 #0090 + 0x8C100120, // 008D GETMET R4 R0 K32 + 0x7C100200, // 008E CALL R4 1 + 0x80040800, // 008F RET 1 R4 + 0x88100704, // 0090 GETMBR R4 R3 K4 + 0xB8160A00, // 0091 GETNGBL R5 K5 + 0x88140B06, // 0092 GETMBR R5 R5 K6 + 0x88140B0D, // 0093 GETMBR R5 R5 K13 + 0x1C100805, // 0094 EQ R4 R4 R5 + 0x7812007B, // 0095 JMPF R4 #0112 + 0x8810070F, // 0096 GETMBR R4 R3 K15 + 0x8C140108, // 0097 GETMET R5 R0 K8 + 0x7C140200, // 0098 CALL R5 1 + 0x8C140100, // 0099 GETMET R5 R0 K0 + 0x7C140200, // 009A CALL R5 1 + 0x4C180000, // 009B LDNIL R6 + 0x20140A06, // 009C NE R5 R5 R6 + 0x7816004E, // 009D JMPF R5 #00ED + 0x8C140100, // 009E GETMET R5 R0 K0 + 0x7C140200, // 009F CALL R5 1 + 0x88140B04, // 00A0 GETMBR R5 R5 K4 + 0xB81A0A00, // 00A1 GETNGBL R6 K5 + 0x88180D06, // 00A2 GETMBR R6 R6 K6 + 0x88180D21, // 00A3 GETMBR R6 R6 K33 + 0x1C140A06, // 00A4 EQ R5 R5 R6 + 0x78160046, // 00A5 JMPF R5 #00ED + 0x8C140108, // 00A6 GETMET R5 R0 K8 + 0x7C140200, // 00A7 CALL R5 1 + 0x8C140122, // 00A8 GETMET R5 R0 K34 + 0x7C140200, // 00A9 CALL R5 1 + 0x1C180923, // 00AA EQ R6 R4 K35 + 0x781A0003, // 00AB JMPF R6 #00B0 + 0x8C180124, // 00AC GETMET R6 R0 K36 + 0x5C200A00, // 00AD MOVE R8 R5 + 0x7C180400, // 00AE CALL R6 2 + 0x80040C00, // 00AF RET 1 R6 + 0x88180125, // 00B0 GETMBR R6 R0 K37 + 0x8C180D26, // 00B1 GETMET R6 R6 K38 + 0x5C200800, // 00B2 MOVE R8 R4 + 0x7C180400, // 00B3 CALL R6 2 + 0x781A0016, // 00B4 JMPF R6 #00CC + 0x88180125, // 00B5 GETMBR R6 R0 K37 + 0x94180C04, // 00B6 GETIDX R6 R6 R4 + 0x601C0004, // 00B7 GETGBL R7 G4 + 0x5C200C00, // 00B8 MOVE R8 R6 + 0x7C1C0200, // 00B9 CALL R7 1 + 0x201C0F27, // 00BA NE R7 R7 K39 + 0x781E0008, // 00BB JMPF R7 #00C5 + 0x601C0005, // 00BC GETGBL R7 G5 + 0x5C200C00, // 00BD MOVE R8 R6 + 0x7C1C0200, // 00BE CALL R7 1 + 0x8C200128, // 00BF GETMET R8 R0 K40 + 0x5C280E00, // 00C0 MOVE R10 R7 + 0x5C2C0A00, // 00C1 MOVE R11 R5 + 0x5C300C00, // 00C2 MOVE R12 R6 + 0x7C200800, // 00C3 CALL R8 4 + 0x70020006, // 00C4 JMP #00CC + 0x8C1C0101, // 00C5 GETMET R7 R0 K1 + 0x60240018, // 00C6 GETGBL R9 G24 + 0x58280029, // 00C7 LDCONST R10 K41 + 0x5C2C0800, // 00C8 MOVE R11 R4 + 0x7C240400, // 00C9 CALL R9 2 + 0x7C1C0400, // 00CA CALL R7 2 + 0x80060600, // 00CB RET 1 K3 + 0xA41A5400, // 00CC IMPORT R6 K42 + 0x581C002B, // 00CD LDCONST R7 K43 + 0x8C200D26, // 00CE GETMET R8 R6 K38 + 0xB82A5800, // 00CF GETNGBL R10 K44 + 0x5C2C0800, // 00D0 MOVE R11 R4 + 0x7C200600, // 00D1 CALL R8 3 + 0x78220005, // 00D2 JMPF R8 #00D9 + 0x60200018, // 00D3 GETGBL R8 G24 + 0x5824002D, // 00D4 LDCONST R9 K45 + 0x5C280800, // 00D5 MOVE R10 R4 + 0x7C200400, // 00D6 CALL R8 2 + 0x5C1C1000, // 00D7 MOVE R7 R8 + 0x70020004, // 00D8 JMP #00DE + 0x60200018, // 00D9 GETGBL R8 G24 + 0x5824002E, // 00DA LDCONST R9 K46 + 0x5C280800, // 00DB MOVE R10 R4 + 0x7C200400, // 00DC CALL R8 2 + 0x5C1C1000, // 00DD MOVE R7 R8 + 0x1C20032F, // 00DE EQ R8 R1 K47 + 0x78220006, // 00DF JMPF R8 #00E7 + 0x60200018, // 00E0 GETGBL R8 G24 + 0x58240030, // 00E1 LDCONST R9 K48 + 0x5C280E00, // 00E2 MOVE R10 R7 + 0x5C2C0A00, // 00E3 MOVE R11 R5 + 0x7C200600, // 00E4 CALL R8 3 + 0x80041000, // 00E5 RET 1 R8 + 0x70020005, // 00E6 JMP #00ED + 0x60200018, // 00E7 GETGBL R8 G24 + 0x58240031, // 00E8 LDCONST R9 K49 + 0x5C280E00, // 00E9 MOVE R10 R7 + 0x5C2C0A00, // 00EA MOVE R11 R5 + 0x7C200600, // 00EB CALL R8 3 + 0x80041000, // 00EC RET 1 R8 + 0xA4164E00, // 00ED IMPORT R5 K39 + 0x8C180B32, // 00EE GETMET R6 R5 K50 + 0x5C200800, // 00EF MOVE R8 R4 + 0x58240033, // 00F0 LDCONST R9 K51 + 0x7C180600, // 00F1 CALL R6 3 + 0x781A0004, // 00F2 JMPF R6 #00F8 + 0x60180018, // 00F3 GETGBL R6 G24 + 0x581C002D, // 00F4 LDCONST R7 K45 + 0x5C200800, // 00F5 MOVE R8 R4 + 0x7C180400, // 00F6 CALL R6 2 + 0x80040C00, // 00F7 RET 1 R6 + 0xB81A0A00, // 00F8 GETNGBL R6 K5 + 0x8C180D34, // 00F9 GETMET R6 R6 K52 + 0x5C200800, // 00FA MOVE R8 R4 + 0x7C180400, // 00FB CALL R6 2 + 0x781A0003, // 00FC JMPF R6 #0101 + 0x8C180135, // 00FD GETMET R6 R0 K53 + 0x5C200800, // 00FE MOVE R8 R4 + 0x7C180400, // 00FF CALL R6 2 + 0x80040C00, // 0100 RET 1 R6 + 0xA41A5400, // 0101 IMPORT R6 K42 + 0x8C1C0D26, // 0102 GETMET R7 R6 K38 + 0xB8265800, // 0103 GETNGBL R9 K44 + 0x5C280800, // 0104 MOVE R10 R4 + 0x7C1C0600, // 0105 CALL R7 3 + 0x781E0005, // 0106 JMPF R7 #010D + 0x601C0018, // 0107 GETGBL R7 G24 + 0x5820002D, // 0108 LDCONST R8 K45 + 0x5C240800, // 0109 MOVE R9 R4 + 0x7C1C0400, // 010A CALL R7 2 + 0x80040E00, // 010B RET 1 R7 + 0x70020004, // 010C JMP #0112 + 0x601C0018, // 010D GETGBL R7 G24 + 0x5820002E, // 010E LDCONST R8 K46 + 0x5C240800, // 010F MOVE R9 R4 + 0x7C1C0400, // 0110 CALL R7 2 + 0x80040E00, // 0111 RET 1 R7 + 0x88100704, // 0112 GETMBR R4 R3 K4 + 0xB8160A00, // 0113 GETNGBL R5 K5 + 0x88140B06, // 0114 GETMBR R5 R5 K6 + 0x88140B0C, // 0115 GETMBR R5 R5 K12 + 0x1C100805, // 0116 EQ R4 R4 R5 + 0x78120009, // 0117 JMPF R4 #0122 + 0x8810070F, // 0118 GETMBR R4 R3 K15 + 0x1C100936, // 0119 EQ R4 R4 K54 + 0x74120002, // 011A JMPT R4 #011E + 0x8810070F, // 011B GETMBR R4 R3 K15 + 0x1C100937, // 011C EQ R4 R4 K55 + 0x78120003, // 011D JMPF R4 #0122 + 0x8810070F, // 011E GETMBR R4 R3 K15 + 0x8C140108, // 011F GETMET R5 R0 K8 + 0x7C140200, // 0120 CALL R5 1 + 0x80040800, // 0121 RET 1 R4 + 0x88100704, // 0122 GETMBR R4 R3 K4 + 0xB8160A00, // 0123 GETNGBL R5 K5 + 0x88140B06, // 0124 GETMBR R5 R5 K6 + 0x88140B0C, // 0125 GETMBR R5 R5 K12 + 0x1C100805, // 0126 EQ R4 R4 R5 + 0x78120007, // 0127 JMPF R4 #0130 + 0x8810070F, // 0128 GETMBR R4 R3 K15 + 0x8C140108, // 0129 GETMET R5 R0 K8 + 0x7C140200, // 012A CALL R5 1 + 0x60140018, // 012B GETGBL R5 G24 + 0x5818002D, // 012C LDCONST R6 K45 + 0x5C1C0800, // 012D MOVE R7 R4 + 0x7C140400, // 012E CALL R5 2 + 0x80040A00, // 012F RET 1 R5 + 0x8C100101, // 0130 GETMET R4 R0 K1 + 0x60180018, // 0131 GETGBL R6 G24 + 0x581C0038, // 0132 LDCONST R7 K56 + 0x8820070F, // 0133 GETMBR R8 R3 K15 + 0x7C180400, // 0134 CALL R6 2 + 0x7C100400, // 0135 CALL R4 2 + 0x8C100108, // 0136 GETMET R4 R0 K8 + 0x7C100200, // 0137 CALL R4 1 + 0x80060600, // 0138 RET 1 K3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[46]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(EOF), + /* K5 */ be_nested_str_weak(COMMENT), + /* K6 */ be_nested_str_weak(add), + /* K7 */ be_nested_str_weak(get_indent), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(NEWLINE), + /* K11 */ be_nested_str_weak(KEYWORD), + /* K12 */ be_nested_str_weak(play), + /* K13 */ be_nested_str_weak(process_play_statement_fluent), + /* K14 */ be_nested_str_weak(wait), + /* K15 */ be_nested_str_weak(process_wait_statement_fluent), + /* K16 */ be_nested_str_weak(IDENTIFIER), + /* K17 */ be_nested_str_weak(log), + /* K18 */ be_nested_str_weak(process_log_statement_fluent), + /* K19 */ be_nested_str_weak(reset), + /* K20 */ be_nested_str_weak(restart), + /* K21 */ be_nested_str_weak(process_reset_restart_statement_fluent), + /* K22 */ be_nested_str_weak(repeat), + /* K23 */ be_nested_str_weak(1), + /* K24 */ be_nested_str_weak(forever), + /* K25 */ be_nested_str_weak(_X2D1), + /* K26 */ be_nested_str_weak(process_value), + /* K27 */ be_nested_str_weak(repeat_count), + /* K28 */ be_nested_str_weak(expect_keyword), + /* K29 */ be_nested_str_weak(times), + /* K30 */ be_nested_str_weak(expect_left_brace), + /* K31 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), + /* K32 */ be_nested_str_weak(indent_level), + /* K33 */ be_const_int(1), + /* K34 */ be_nested_str_weak(at_end), + /* K35 */ be_nested_str_weak(check_right_brace), + /* K36 */ be_nested_str_weak(process_sequence_statement), + /* K37 */ be_nested_str_weak(expect_right_brace), + /* K38 */ be_nested_str_weak(_X25s_X29), + /* K39 */ be_nested_str_weak(peek), + /* K40 */ be_nested_str_weak(DOT), + /* K41 */ be_nested_str_weak(process_sequence_assignment_fluent), + /* K42 */ be_nested_str_weak(error), + /* K43 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20reset_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), + /* K44 */ be_nested_str_weak(skip_statement), + /* K45 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20reset_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), + }), + be_str_weak(process_sequence_statement), + &be_const_str_solidified, + ( &(const binstruction[198]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x740A0005, // 0004 JMPT R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0000, // 000A JMPF R2 #000C + 0x80000400, // 000B RET 0 + 0x88080301, // 000C GETMBR R2 R1 K1 + 0xB80E0400, // 000D GETNGBL R3 K2 + 0x880C0703, // 000E GETMBR R3 R3 K3 + 0x880C0705, // 000F GETMBR R3 R3 K5 + 0x1C080403, // 0010 EQ R2 R2 R3 + 0x780A0008, // 0011 JMPF R2 #001B + 0x8C080106, // 0012 GETMET R2 R0 K6 + 0x8C100107, // 0013 GETMET R4 R0 K7 + 0x7C100200, // 0014 CALL R4 1 + 0x88140308, // 0015 GETMBR R5 R1 K8 + 0x00100805, // 0016 ADD R4 R4 R5 + 0x7C080400, // 0017 CALL R2 2 + 0x8C080109, // 0018 GETMET R2 R0 K9 + 0x7C080200, // 0019 CALL R2 1 + 0x80000400, // 001A RET 0 + 0x88080301, // 001B GETMBR R2 R1 K1 + 0xB80E0400, // 001C GETNGBL R3 K2 + 0x880C0703, // 001D GETMBR R3 R3 K3 + 0x880C070A, // 001E GETMBR R3 R3 K10 + 0x1C080403, // 001F EQ R2 R2 R3 + 0x780A0002, // 0020 JMPF R2 #0024 + 0x8C080109, // 0021 GETMET R2 R0 K9 + 0x7C080200, // 0022 CALL R2 1 + 0x80000400, // 0023 RET 0 + 0x88080301, // 0024 GETMBR R2 R1 K1 + 0xB80E0400, // 0025 GETNGBL R3 K2 + 0x880C0703, // 0026 GETMBR R3 R3 K3 + 0x880C070B, // 0027 GETMBR R3 R3 K11 + 0x1C080403, // 0028 EQ R2 R2 R3 + 0x780A0005, // 0029 JMPF R2 #0030 + 0x88080308, // 002A GETMBR R2 R1 K8 + 0x1C08050C, // 002B EQ R2 R2 K12 + 0x780A0002, // 002C JMPF R2 #0030 + 0x8C08010D, // 002D GETMET R2 R0 K13 + 0x7C080200, // 002E CALL R2 1 + 0x70020094, // 002F JMP #00C5 + 0x88080301, // 0030 GETMBR R2 R1 K1 + 0xB80E0400, // 0031 GETNGBL R3 K2 + 0x880C0703, // 0032 GETMBR R3 R3 K3 + 0x880C070B, // 0033 GETMBR R3 R3 K11 + 0x1C080403, // 0034 EQ R2 R2 R3 + 0x780A0005, // 0035 JMPF R2 #003C + 0x88080308, // 0036 GETMBR R2 R1 K8 + 0x1C08050E, // 0037 EQ R2 R2 K14 + 0x780A0002, // 0038 JMPF R2 #003C + 0x8C08010F, // 0039 GETMET R2 R0 K15 + 0x7C080200, // 003A CALL R2 1 + 0x70020088, // 003B JMP #00C5 + 0x88080301, // 003C GETMBR R2 R1 K1 + 0xB80E0400, // 003D GETNGBL R3 K2 + 0x880C0703, // 003E GETMBR R3 R3 K3 + 0x880C0710, // 003F GETMBR R3 R3 K16 + 0x1C080403, // 0040 EQ R2 R2 R3 + 0x780A0005, // 0041 JMPF R2 #0048 + 0x88080308, // 0042 GETMBR R2 R1 K8 + 0x1C080511, // 0043 EQ R2 R2 K17 + 0x780A0002, // 0044 JMPF R2 #0048 + 0x8C080112, // 0045 GETMET R2 R0 K18 + 0x7C080200, // 0046 CALL R2 1 + 0x7002007C, // 0047 JMP #00C5 + 0x88080301, // 0048 GETMBR R2 R1 K1 + 0xB80E0400, // 0049 GETNGBL R3 K2 + 0x880C0703, // 004A GETMBR R3 R3 K3 + 0x880C070B, // 004B GETMBR R3 R3 K11 + 0x1C080403, // 004C EQ R2 R2 R3 + 0x780A0008, // 004D JMPF R2 #0057 + 0x88080308, // 004E GETMBR R2 R1 K8 + 0x1C080513, // 004F EQ R2 R2 K19 + 0x740A0002, // 0050 JMPT R2 #0054 + 0x88080308, // 0051 GETMBR R2 R1 K8 + 0x1C080514, // 0052 EQ R2 R2 K20 + 0x780A0002, // 0053 JMPF R2 #0057 + 0x8C080115, // 0054 GETMET R2 R0 K21 + 0x7C080200, // 0055 CALL R2 1 + 0x7002006D, // 0056 JMP #00C5 + 0x88080301, // 0057 GETMBR R2 R1 K1 + 0xB80E0400, // 0058 GETNGBL R3 K2 + 0x880C0703, // 0059 GETMBR R3 R3 K3 + 0x880C070B, // 005A GETMBR R3 R3 K11 + 0x1C080403, // 005B EQ R2 R2 R3 + 0x780A0041, // 005C JMPF R2 #009F + 0x88080308, // 005D GETMBR R2 R1 K8 + 0x1C080516, // 005E EQ R2 R2 K22 + 0x780A003E, // 005F JMPF R2 #009F + 0x8C080109, // 0060 GETMET R2 R0 K9 + 0x7C080200, // 0061 CALL R2 1 + 0x58080017, // 0062 LDCONST R2 K23 + 0x8C0C0100, // 0063 GETMET R3 R0 K0 + 0x7C0C0200, // 0064 CALL R3 1 + 0x4C100000, // 0065 LDNIL R4 + 0x20100604, // 0066 NE R4 R3 R4 + 0x7812000C, // 0067 JMPF R4 #0075 + 0x88100701, // 0068 GETMBR R4 R3 K1 + 0xB8160400, // 0069 GETNGBL R5 K2 + 0x88140B03, // 006A GETMBR R5 R5 K3 + 0x88140B0B, // 006B GETMBR R5 R5 K11 + 0x1C100805, // 006C EQ R4 R4 R5 + 0x78120006, // 006D JMPF R4 #0075 + 0x88100708, // 006E GETMBR R4 R3 K8 + 0x1C100918, // 006F EQ R4 R4 K24 + 0x78120003, // 0070 JMPF R4 #0075 + 0x8C100109, // 0071 GETMET R4 R0 K9 + 0x7C100200, // 0072 CALL R4 1 + 0x58080019, // 0073 LDCONST R2 K25 + 0x70020006, // 0074 JMP #007C + 0x8C10011A, // 0075 GETMET R4 R0 K26 + 0x5818001B, // 0076 LDCONST R6 K27 + 0x7C100400, // 0077 CALL R4 2 + 0x8C14011C, // 0078 GETMET R5 R0 K28 + 0x581C001D, // 0079 LDCONST R7 K29 + 0x7C140400, // 007A CALL R5 2 + 0x5C080800, // 007B MOVE R2 R4 + 0x8C10011E, // 007C GETMET R4 R0 K30 + 0x7C100200, // 007D CALL R4 1 + 0x8C100106, // 007E GETMET R4 R0 K6 + 0x60180018, // 007F GETGBL R6 G24 + 0x581C001F, // 0080 LDCONST R7 K31 + 0x8C200107, // 0081 GETMET R8 R0 K7 + 0x7C200200, // 0082 CALL R8 1 + 0x5C240400, // 0083 MOVE R9 R2 + 0x7C180600, // 0084 CALL R6 3 + 0x7C100400, // 0085 CALL R4 2 + 0x88100120, // 0086 GETMBR R4 R0 K32 + 0x00100921, // 0087 ADD R4 R4 K33 + 0x90024004, // 0088 SETMBR R0 K32 R4 + 0x8C100122, // 0089 GETMET R4 R0 K34 + 0x7C100200, // 008A CALL R4 1 + 0x74120005, // 008B JMPT R4 #0092 + 0x8C100123, // 008C GETMET R4 R0 K35 + 0x7C100200, // 008D CALL R4 1 + 0x74120002, // 008E JMPT R4 #0092 + 0x8C100124, // 008F GETMET R4 R0 K36 + 0x7C100200, // 0090 CALL R4 1 + 0x7001FFF6, // 0091 JMP #0089 + 0x8C100125, // 0092 GETMET R4 R0 K37 + 0x7C100200, // 0093 CALL R4 1 + 0x8C100106, // 0094 GETMET R4 R0 K6 + 0x60180018, // 0095 GETGBL R6 G24 + 0x581C0026, // 0096 LDCONST R7 K38 + 0x8C200107, // 0097 GETMET R8 R0 K7 + 0x7C200200, // 0098 CALL R8 1 + 0x7C180400, // 0099 CALL R6 2 + 0x7C100400, // 009A CALL R4 2 + 0x88100120, // 009B GETMBR R4 R0 K32 + 0x04100921, // 009C SUB R4 R4 K33 + 0x90024004, // 009D SETMBR R0 K32 R4 + 0x70020025, // 009E JMP #00C5 + 0x88080301, // 009F GETMBR R2 R1 K1 + 0xB80E0400, // 00A0 GETNGBL R3 K2 + 0x880C0703, // 00A1 GETMBR R3 R3 K3 + 0x880C0710, // 00A2 GETMBR R3 R3 K16 + 0x1C080403, // 00A3 EQ R2 R2 R3 + 0x780A0018, // 00A4 JMPF R2 #00BE + 0x8C080127, // 00A5 GETMET R2 R0 K39 + 0x7C080200, // 00A6 CALL R2 1 + 0x4C0C0000, // 00A7 LDNIL R3 + 0x20080403, // 00A8 NE R2 R2 R3 + 0x780A000A, // 00A9 JMPF R2 #00B5 + 0x8C080127, // 00AA GETMET R2 R0 K39 + 0x7C080200, // 00AB CALL R2 1 + 0x88080501, // 00AC GETMBR R2 R2 K1 + 0xB80E0400, // 00AD GETNGBL R3 K2 + 0x880C0703, // 00AE GETMBR R3 R3 K3 + 0x880C0728, // 00AF GETMBR R3 R3 K40 + 0x1C080403, // 00B0 EQ R2 R2 R3 + 0x780A0002, // 00B1 JMPF R2 #00B5 + 0x8C080129, // 00B2 GETMET R2 R0 K41 + 0x7C080200, // 00B3 CALL R2 1 + 0x70020007, // 00B4 JMP #00BD + 0x8C08012A, // 00B5 GETMET R2 R0 K42 + 0x60100018, // 00B6 GETGBL R4 G24 + 0x5814002B, // 00B7 LDCONST R5 K43 + 0x88180308, // 00B8 GETMBR R6 R1 K8 + 0x7C100400, // 00B9 CALL R4 2 + 0x7C080400, // 00BA CALL R2 2 + 0x8C08012C, // 00BB GETMET R2 R0 K44 + 0x7C080200, // 00BC CALL R2 1 + 0x70020006, // 00BD JMP #00C5 + 0x8C08012A, // 00BE GETMET R2 R0 K42 + 0x60100018, // 00BF GETGBL R4 G24 + 0x5814002D, // 00C0 LDCONST R5 K45 + 0x7C100200, // 00C1 CALL R4 1 + 0x7C080400, // 00C2 CALL R2 2 + 0x8C08012C, // 00C3 GETMET R2 R0 K44 + 0x7C080200, // 00C4 CALL R2 1 + 0x80000000, // 00C5 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_single_parameter +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_single_parameter, /* name */ + be_nested_proto( + 12, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(_has_param), + /* K3 */ be_nested_str_weak(current), + /* K4 */ be_nested_str_weak(line), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Animation_X20_X27_X25s_X27_X20does_X20not_X20have_X20parameter_X20_X27_X25s_X27_X2E_X20Check_X20the_X20animation_X20documentation_X20for_X20valid_X20parameters_X2E), + }), + be_str_weak(_validate_single_parameter), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* code */ + 0xA802001F, // 0000 EXBLK 0 #0021 + 0xA4120000, // 0001 IMPORT R4 K0 + 0x4C140000, // 0002 LDNIL R5 + 0x20140605, // 0003 NE R5 R3 R5 + 0x78160019, // 0004 JMPF R5 #001F + 0x8C140901, // 0005 GETMET R5 R4 K1 + 0x5C1C0600, // 0006 MOVE R7 R3 + 0x58200002, // 0007 LDCONST R8 K2 + 0x7C140600, // 0008 CALL R5 3 + 0x78160014, // 0009 JMPF R5 #001F + 0x8C140702, // 000A GETMET R5 R3 K2 + 0x5C1C0400, // 000B MOVE R7 R2 + 0x7C140400, // 000C CALL R5 2 + 0x74160010, // 000D JMPT R5 #001F + 0x8C140103, // 000E GETMET R5 R0 K3 + 0x7C140200, // 000F CALL R5 1 + 0x4C180000, // 0010 LDNIL R6 + 0x20140A06, // 0011 NE R5 R5 R6 + 0x78160003, // 0012 JMPF R5 #0017 + 0x8C140103, // 0013 GETMET R5 R0 K3 + 0x7C140200, // 0014 CALL R5 1 + 0x88140B04, // 0015 GETMBR R5 R5 K4 + 0x70020000, // 0016 JMP #0018 + 0x58140005, // 0017 LDCONST R5 K5 + 0x8C180106, // 0018 GETMET R6 R0 K6 + 0x60200018, // 0019 GETGBL R8 G24 + 0x58240007, // 001A LDCONST R9 K7 + 0x5C280200, // 001B MOVE R10 R1 + 0x5C2C0400, // 001C MOVE R11 R2 + 0x7C200600, // 001D CALL R8 3 + 0x7C180400, // 001E CALL R6 2 + 0xA8040001, // 001F EXBLK 1 1 + 0x70020003, // 0020 JMP #0025 + 0xAC100002, // 0021 CATCH R4 0 2 + 0x70020000, // 0022 JMP #0024 + 0x70020000, // 0023 JMP #0025 + 0xB0080000, // 0024 RAISE 2 R0 R0 + 0x80000000, // 0025 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: can_use_as_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_can_use_as_identifier, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* constants */ + /* K0 */ be_nested_str_weak(color), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(palette), + /* K3 */ be_nested_str_weak(startup), + /* K4 */ be_nested_str_weak(shutdown), + /* K5 */ be_nested_str_weak(button_press), + /* K6 */ be_nested_str_weak(button_hold), + /* K7 */ be_nested_str_weak(motion_detected), + /* K8 */ be_nested_str_weak(brightness_change), + /* K9 */ be_nested_str_weak(timer), + /* K10 */ be_nested_str_weak(time), + /* K11 */ be_nested_str_weak(sound_peak), + /* K12 */ be_nested_str_weak(network_message), + /* K13 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(can_use_as_identifier), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x60080012, // 0000 GETGBL R2 G18 + 0x7C080000, // 0001 CALL R2 0 + 0x400C0500, // 0002 CONNECT R3 R2 K0 + 0x400C0501, // 0003 CONNECT R3 R2 K1 + 0x400C0502, // 0004 CONNECT R3 R2 K2 + 0x400C0503, // 0005 CONNECT R3 R2 K3 + 0x400C0504, // 0006 CONNECT R3 R2 K4 + 0x400C0505, // 0007 CONNECT R3 R2 K5 + 0x400C0506, // 0008 CONNECT R3 R2 K6 + 0x400C0507, // 0009 CONNECT R3 R2 K7 + 0x400C0508, // 000A CONNECT R3 R2 K8 + 0x400C0509, // 000B CONNECT R3 R2 K9 + 0x400C050A, // 000C CONNECT R3 R2 K10 + 0x400C050B, // 000D CONNECT R3 R2 K11 + 0x400C050C, // 000E CONNECT R3 R2 K12 + 0x600C0010, // 000F GETGBL R3 G16 + 0x5C100400, // 0010 MOVE R4 R2 + 0x7C0C0200, // 0011 CALL R3 1 + 0xA8020007, // 0012 EXBLK 0 #001B + 0x5C100600, // 0013 MOVE R4 R3 + 0x7C100000, // 0014 CALL R4 0 + 0x1C140204, // 0015 EQ R5 R1 R4 + 0x78160002, // 0016 JMPF R5 #001A + 0x50140200, // 0017 LDBOOL R5 1 0 + 0xA8040001, // 0018 EXBLK 1 1 + 0x80040A00, // 0019 RET 1 R5 + 0x7001FFF7, // 001A JMP #0013 + 0x580C000D, // 001B LDCONST R3 K13 + 0xAC0C0200, // 001C CATCH R3 1 0 + 0xB0080000, // 001D RAISE 2 R0 R0 + 0x500C0000, // 001E LDBOOL R3 0 0 + 0x80040600, // 001F RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ + be_nested_proto( + 15, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[37]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(color), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(KEYWORD), + /* K11 */ be_nested_str_weak(IDENTIFIER), + /* K12 */ be_nested_str_weak(peek), + /* K13 */ be_nested_str_weak(LEFT_PAREN), + /* K14 */ be_nested_str_weak(value), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_nested_str_weak(COMMENT), + /* K17 */ be_nested_str_weak(_X20_X20), + /* K18 */ be_nested_str_weak(template_definitions), + /* K19 */ be_nested_str_weak(contains), + /* K20 */ be_nested_str_weak(process_function_arguments), + /* K21 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K22 */ be_nested_str_weak(engine), + /* K23 */ be_nested_str_weak(add), + /* K24 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), + /* K25 */ be_nested_str_weak(_validate_color_provider_factory_exists), + /* K26 */ be_nested_str_weak(error), + /* K27 */ be_nested_str_weak(Color_X20provider_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K28 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), + /* K29 */ be_nested_str_weak(_create_instance_for_validation), + /* K30 */ be_nested_str_weak(symbol_table), + /* K31 */ be_nested_str_weak(_process_named_arguments_for_color_provider), + /* K32 */ be_nested_str_weak(_X25s_), + /* K33 */ be_nested_str_weak(process_value), + /* K34 */ be_nested_str_weak(collect_inline_comment), + /* K35 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K36 */ be_nested_str_weak(string), + }), + be_str_weak(process_color), + &be_const_str_solidified, + ( &(const binstruction[191]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x7C080200, // 000F CALL R2 1 + 0x880C0507, // 0010 GETMBR R3 R2 K7 + 0xB8121000, // 0011 GETNGBL R4 K8 + 0x88100909, // 0012 GETMBR R4 R4 K9 + 0x8810090A, // 0013 GETMBR R4 R4 K10 + 0x1C0C0604, // 0014 EQ R3 R3 R4 + 0x740E0005, // 0015 JMPT R3 #001C + 0x880C0507, // 0016 GETMBR R3 R2 K7 + 0xB8121000, // 0017 GETNGBL R4 K8 + 0x88100909, // 0018 GETMBR R4 R4 K9 + 0x8810090B, // 0019 GETMBR R4 R4 K11 + 0x1C0C0604, // 001A EQ R3 R3 R4 + 0x780E0061, // 001B JMPF R3 #007E + 0x8C0C010C, // 001C GETMET R3 R0 K12 + 0x7C0C0200, // 001D CALL R3 1 + 0x4C100000, // 001E LDNIL R4 + 0x200C0604, // 001F NE R3 R3 R4 + 0x780E005C, // 0020 JMPF R3 #007E + 0x8C0C010C, // 0021 GETMET R3 R0 K12 + 0x7C0C0200, // 0022 CALL R3 1 + 0x880C0707, // 0023 GETMBR R3 R3 K7 + 0xB8121000, // 0024 GETNGBL R4 K8 + 0x88100909, // 0025 GETMBR R4 R4 K9 + 0x8810090D, // 0026 GETMBR R4 R4 K13 + 0x1C0C0604, // 0027 EQ R3 R3 R4 + 0x780E0054, // 0028 JMPF R3 #007E + 0x880C050E, // 0029 GETMBR R3 R2 K14 + 0x8C100100, // 002A GETMET R4 R0 K0 + 0x7C100200, // 002B CALL R4 1 + 0x5810000F, // 002C LDCONST R4 K15 + 0x8C140106, // 002D GETMET R5 R0 K6 + 0x7C140200, // 002E CALL R5 1 + 0x4C180000, // 002F LDNIL R6 + 0x20140A06, // 0030 NE R5 R5 R6 + 0x7816000E, // 0031 JMPF R5 #0041 + 0x8C140106, // 0032 GETMET R5 R0 K6 + 0x7C140200, // 0033 CALL R5 1 + 0x88140B07, // 0034 GETMBR R5 R5 K7 + 0xB81A1000, // 0035 GETNGBL R6 K8 + 0x88180D09, // 0036 GETMBR R6 R6 K9 + 0x88180D10, // 0037 GETMBR R6 R6 K16 + 0x1C140A06, // 0038 EQ R5 R5 R6 + 0x78160006, // 0039 JMPF R5 #0041 + 0x8C140106, // 003A GETMET R5 R0 K6 + 0x7C140200, // 003B CALL R5 1 + 0x88140B0E, // 003C GETMBR R5 R5 K14 + 0x00162205, // 003D ADD R5 K17 R5 + 0x5C100A00, // 003E MOVE R4 R5 + 0x8C140100, // 003F GETMET R5 R0 K0 + 0x7C140200, // 0040 CALL R5 1 + 0x88140112, // 0041 GETMBR R5 R0 K18 + 0x8C140B13, // 0042 GETMET R5 R5 K19 + 0x5C1C0600, // 0043 MOVE R7 R3 + 0x7C140400, // 0044 CALL R5 2 + 0x78160012, // 0045 JMPF R5 #0059 + 0x8C140114, // 0046 GETMET R5 R0 K20 + 0x7C140200, // 0047 CALL R5 1 + 0x20180B0F, // 0048 NE R6 R5 K15 + 0x781A0004, // 0049 JMPF R6 #004F + 0x60180018, // 004A GETGBL R6 G24 + 0x581C0015, // 004B LDCONST R7 K21 + 0x5C200A00, // 004C MOVE R8 R5 + 0x7C180400, // 004D CALL R6 2 + 0x70020000, // 004E JMP #0050 + 0x58180016, // 004F LDCONST R6 K22 + 0x8C1C0117, // 0050 GETMET R7 R0 K23 + 0x60240018, // 0051 GETGBL R9 G24 + 0x58280018, // 0052 LDCONST R10 K24 + 0x5C2C0600, // 0053 MOVE R11 R3 + 0x5C300C00, // 0054 MOVE R12 R6 + 0x5C340800, // 0055 MOVE R13 R4 + 0x7C240800, // 0056 CALL R9 4 + 0x7C1C0400, // 0057 CALL R7 2 + 0x70020023, // 0058 JMP #007D + 0x8C140119, // 0059 GETMET R5 R0 K25 + 0x5C1C0600, // 005A MOVE R7 R3 + 0x7C140400, // 005B CALL R5 2 + 0x74160008, // 005C JMPT R5 #0066 + 0x8C14011A, // 005D GETMET R5 R0 K26 + 0x601C0018, // 005E GETGBL R7 G24 + 0x5820001B, // 005F LDCONST R8 K27 + 0x5C240600, // 0060 MOVE R9 R3 + 0x7C1C0400, // 0061 CALL R7 2 + 0x7C140400, // 0062 CALL R5 2 + 0x8C140104, // 0063 GETMET R5 R0 K4 + 0x7C140200, // 0064 CALL R5 1 + 0x80000A00, // 0065 RET 0 + 0x8C140117, // 0066 GETMET R5 R0 K23 + 0x601C0018, // 0067 GETGBL R7 G24 + 0x5820001C, // 0068 LDCONST R8 K28 + 0x5C240200, // 0069 MOVE R9 R1 + 0x5C280600, // 006A MOVE R10 R3 + 0x5C2C0800, // 006B MOVE R11 R4 + 0x7C1C0800, // 006C CALL R7 4 + 0x7C140400, // 006D CALL R5 2 + 0x8C14011D, // 006E GETMET R5 R0 K29 + 0x5C1C0600, // 006F MOVE R7 R3 + 0x7C140400, // 0070 CALL R5 2 + 0x4C180000, // 0071 LDNIL R6 + 0x20180A06, // 0072 NE R6 R5 R6 + 0x781A0001, // 0073 JMPF R6 #0076 + 0x8818011E, // 0074 GETMBR R6 R0 K30 + 0x98180205, // 0075 SETIDX R6 R1 R5 + 0x8C18011F, // 0076 GETMET R6 R0 K31 + 0x60200018, // 0077 GETGBL R8 G24 + 0x58240020, // 0078 LDCONST R9 K32 + 0x5C280200, // 0079 MOVE R10 R1 + 0x7C200400, // 007A CALL R8 2 + 0x5C240600, // 007B MOVE R9 R3 + 0x7C180600, // 007C CALL R6 3 + 0x7002003F, // 007D JMP #00BE + 0x8C0C0106, // 007E GETMET R3 R0 K6 + 0x7C0C0200, // 007F CALL R3 1 + 0x4C100000, // 0080 LDNIL R4 + 0x20100604, // 0081 NE R4 R3 R4 + 0x78120012, // 0082 JMPF R4 #0096 + 0x88100707, // 0083 GETMBR R4 R3 K7 + 0xB8161000, // 0084 GETNGBL R5 K8 + 0x88140B09, // 0085 GETMBR R5 R5 K9 + 0x88140B0B, // 0086 GETMBR R5 R5 K11 + 0x1C100805, // 0087 EQ R4 R4 R5 + 0x7812000C, // 0088 JMPF R4 #0096 + 0x8C10010C, // 0089 GETMET R4 R0 K12 + 0x7C100200, // 008A CALL R4 1 + 0x4C140000, // 008B LDNIL R5 + 0x1C100805, // 008C EQ R4 R4 R5 + 0x74120008, // 008D JMPT R4 #0097 + 0x8C10010C, // 008E GETMET R4 R0 K12 + 0x7C100200, // 008F CALL R4 1 + 0x88100907, // 0090 GETMBR R4 R4 K7 + 0xB8161000, // 0091 GETNGBL R5 K8 + 0x88140B09, // 0092 GETMBR R5 R5 K9 + 0x88140B0D, // 0093 GETMBR R5 R5 K13 + 0x20100805, // 0094 NE R4 R4 R5 + 0x74120000, // 0095 JMPT R4 #0097 + 0x50100001, // 0096 LDBOOL R4 0 1 + 0x50100200, // 0097 LDBOOL R4 1 0 + 0x78120001, // 0098 JMPF R4 #009B + 0x8814070E, // 0099 GETMBR R5 R3 K14 + 0x70020000, // 009A JMP #009C + 0x4C140000, // 009B LDNIL R5 + 0x8C180121, // 009C GETMET R6 R0 K33 + 0x58200003, // 009D LDCONST R8 K3 + 0x7C180400, // 009E CALL R6 2 + 0x8C1C0122, // 009F GETMET R7 R0 K34 + 0x7C1C0200, // 00A0 CALL R7 1 + 0x8C200117, // 00A1 GETMET R8 R0 K23 + 0x60280018, // 00A2 GETGBL R10 G24 + 0x582C0023, // 00A3 LDCONST R11 K35 + 0x5C300200, // 00A4 MOVE R12 R1 + 0x5C340C00, // 00A5 MOVE R13 R6 + 0x5C380E00, // 00A6 MOVE R14 R7 + 0x7C280800, // 00A7 CALL R10 4 + 0x7C200400, // 00A8 CALL R8 2 + 0x78120011, // 00A9 JMPF R4 #00BC + 0x4C200000, // 00AA LDNIL R8 + 0x20200A08, // 00AB NE R8 R5 R8 + 0x7822000E, // 00AC JMPF R8 #00BC + 0x8820011E, // 00AD GETMBR R8 R0 K30 + 0x8C201113, // 00AE GETMET R8 R8 K19 + 0x5C280A00, // 00AF MOVE R10 R5 + 0x7C200400, // 00B0 CALL R8 2 + 0x78220009, // 00B1 JMPF R8 #00BC + 0x8820011E, // 00B2 GETMBR R8 R0 K30 + 0x94201005, // 00B3 GETIDX R8 R8 R5 + 0x60240004, // 00B4 GETGBL R9 G4 + 0x5C281000, // 00B5 MOVE R10 R8 + 0x7C240200, // 00B6 CALL R9 1 + 0x20241324, // 00B7 NE R9 R9 K36 + 0x78260001, // 00B8 JMPF R9 #00BB + 0x8824011E, // 00B9 GETMBR R9 R0 K30 + 0x98240208, // 00BA SETIDX R9 R1 R8 + 0x70020001, // 00BB JMP #00BE + 0x8820011E, // 00BC GETMBR R8 R0 K30 + 0x98200303, // 00BD SETIDX R8 R1 K3 + 0x80000000, // 00BE RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[42]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(EOF), + /* K5 */ be_nested_str_weak(COMMENT), + /* K6 */ be_nested_str_weak(add), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(NEWLINE), + /* K10 */ be_nested_str_weak(first_statement), + /* K11 */ be_nested_str_weak(KEYWORD), + /* K12 */ be_nested_str_weak(IDENTIFIER), + /* K13 */ be_nested_str_weak(strip), + /* K14 */ be_nested_str_weak(error), + /* K15 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), + /* K16 */ be_nested_str_weak(skip_statement), + /* K17 */ be_nested_str_weak(strip_initialized), + /* K18 */ be_nested_str_weak(generate_default_strip_initialization), + /* K19 */ be_nested_str_weak(color), + /* K20 */ be_nested_str_weak(process_color), + /* K21 */ be_nested_str_weak(palette), + /* K22 */ be_nested_str_weak(process_palette), + /* K23 */ be_nested_str_weak(animation), + /* K24 */ be_nested_str_weak(process_animation), + /* K25 */ be_nested_str_weak(set), + /* K26 */ be_nested_str_weak(process_set), + /* K27 */ be_nested_str_weak(sequence), + /* K28 */ be_nested_str_weak(process_sequence), + /* K29 */ be_nested_str_weak(template), + /* K30 */ be_nested_str_weak(process_template), + /* K31 */ be_nested_str_weak(run), + /* K32 */ be_nested_str_weak(process_run), + /* K33 */ be_nested_str_weak(import), + /* K34 */ be_nested_str_weak(process_import), + /* K35 */ be_nested_str_weak(on), + /* K36 */ be_nested_str_weak(process_event_handler), + /* K37 */ be_nested_str_weak(log), + /* K38 */ be_nested_str_weak(peek), + /* K39 */ be_nested_str_weak(LEFT_PAREN), + /* K40 */ be_nested_str_weak(process_standalone_log), + /* K41 */ be_nested_str_weak(process_property_assignment), + }), + be_str_weak(process_statement), + &be_const_str_solidified, + ( &(const binstruction[160]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x740A0005, // 0004 JMPT R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0000, // 000A JMPF R2 #000C + 0x80000400, // 000B RET 0 + 0x88080301, // 000C GETMBR R2 R1 K1 + 0xB80E0400, // 000D GETNGBL R3 K2 + 0x880C0703, // 000E GETMBR R3 R3 K3 + 0x880C0705, // 000F GETMBR R3 R3 K5 + 0x1C080403, // 0010 EQ R2 R2 R3 + 0x780A0005, // 0011 JMPF R2 #0018 + 0x8C080106, // 0012 GETMET R2 R0 K6 + 0x88100307, // 0013 GETMBR R4 R1 K7 + 0x7C080400, // 0014 CALL R2 2 + 0x8C080108, // 0015 GETMET R2 R0 K8 + 0x7C080200, // 0016 CALL R2 1 + 0x80000400, // 0017 RET 0 + 0x88080301, // 0018 GETMBR R2 R1 K1 + 0xB80E0400, // 0019 GETNGBL R3 K2 + 0x880C0703, // 001A GETMBR R3 R3 K3 + 0x880C0709, // 001B GETMBR R3 R3 K9 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A0002, // 001D JMPF R2 #0021 + 0x8C080108, // 001E GETMET R2 R0 K8 + 0x7C080200, // 001F CALL R2 1 + 0x80000400, // 0020 RET 0 + 0x8808010A, // 0021 GETMBR R2 R0 K10 + 0x880C0301, // 0022 GETMBR R3 R1 K1 + 0xB8120400, // 0023 GETNGBL R4 K2 + 0x88100903, // 0024 GETMBR R4 R4 K3 + 0x8810090B, // 0025 GETMBR R4 R4 K11 + 0x1C0C0604, // 0026 EQ R3 R3 R4 + 0x740E0005, // 0027 JMPT R3 #002E + 0x880C0301, // 0028 GETMBR R3 R1 K1 + 0xB8120400, // 0029 GETNGBL R4 K2 + 0x88100903, // 002A GETMBR R4 R4 K3 + 0x8810090C, // 002B GETMBR R4 R4 K12 + 0x1C0C0604, // 002C EQ R3 R3 R4 + 0x780E0001, // 002D JMPF R3 #0030 + 0x500C0000, // 002E LDBOOL R3 0 0 + 0x90021403, // 002F SETMBR R0 K10 R3 + 0x880C0301, // 0030 GETMBR R3 R1 K1 + 0xB8120400, // 0031 GETNGBL R4 K2 + 0x88100903, // 0032 GETMBR R4 R4 K3 + 0x8810090B, // 0033 GETMBR R4 R4 K11 + 0x1C0C0604, // 0034 EQ R3 R3 R4 + 0x780E0046, // 0035 JMPF R3 #007D + 0x880C0307, // 0036 GETMBR R3 R1 K7 + 0x1C0C070D, // 0037 EQ R3 R3 K13 + 0x780E0006, // 0038 JMPF R3 #0040 + 0x8C0C010E, // 0039 GETMET R3 R0 K14 + 0x5814000F, // 003A LDCONST R5 K15 + 0x7C0C0400, // 003B CALL R3 2 + 0x8C0C0110, // 003C GETMET R3 R0 K16 + 0x7C0C0200, // 003D CALL R3 1 + 0x80000600, // 003E RET 0 + 0x7002003B, // 003F JMP #007C + 0x880C0111, // 0040 GETMBR R3 R0 K17 + 0x740E0001, // 0041 JMPT R3 #0044 + 0x8C0C0112, // 0042 GETMET R3 R0 K18 + 0x7C0C0200, // 0043 CALL R3 1 + 0x880C0307, // 0044 GETMBR R3 R1 K7 + 0x1C0C0713, // 0045 EQ R3 R3 K19 + 0x780E0002, // 0046 JMPF R3 #004A + 0x8C0C0114, // 0047 GETMET R3 R0 K20 + 0x7C0C0200, // 0048 CALL R3 1 + 0x70020031, // 0049 JMP #007C + 0x880C0307, // 004A GETMBR R3 R1 K7 + 0x1C0C0715, // 004B EQ R3 R3 K21 + 0x780E0002, // 004C JMPF R3 #0050 + 0x8C0C0116, // 004D GETMET R3 R0 K22 + 0x7C0C0200, // 004E CALL R3 1 + 0x7002002B, // 004F JMP #007C + 0x880C0307, // 0050 GETMBR R3 R1 K7 + 0x1C0C0717, // 0051 EQ R3 R3 K23 + 0x780E0002, // 0052 JMPF R3 #0056 + 0x8C0C0118, // 0053 GETMET R3 R0 K24 + 0x7C0C0200, // 0054 CALL R3 1 + 0x70020025, // 0055 JMP #007C + 0x880C0307, // 0056 GETMBR R3 R1 K7 + 0x1C0C0719, // 0057 EQ R3 R3 K25 + 0x780E0002, // 0058 JMPF R3 #005C + 0x8C0C011A, // 0059 GETMET R3 R0 K26 + 0x7C0C0200, // 005A CALL R3 1 + 0x7002001F, // 005B JMP #007C + 0x880C0307, // 005C GETMBR R3 R1 K7 + 0x1C0C071B, // 005D EQ R3 R3 K27 + 0x780E0002, // 005E JMPF R3 #0062 + 0x8C0C011C, // 005F GETMET R3 R0 K28 + 0x7C0C0200, // 0060 CALL R3 1 + 0x70020019, // 0061 JMP #007C + 0x880C0307, // 0062 GETMBR R3 R1 K7 + 0x1C0C071D, // 0063 EQ R3 R3 K29 + 0x780E0002, // 0064 JMPF R3 #0068 + 0x8C0C011E, // 0065 GETMET R3 R0 K30 + 0x7C0C0200, // 0066 CALL R3 1 + 0x70020013, // 0067 JMP #007C + 0x880C0307, // 0068 GETMBR R3 R1 K7 + 0x1C0C071F, // 0069 EQ R3 R3 K31 + 0x780E0002, // 006A JMPF R3 #006E + 0x8C0C0120, // 006B GETMET R3 R0 K32 + 0x7C0C0200, // 006C CALL R3 1 + 0x7002000D, // 006D JMP #007C + 0x880C0307, // 006E GETMBR R3 R1 K7 + 0x1C0C0721, // 006F EQ R3 R3 K33 + 0x780E0002, // 0070 JMPF R3 #0074 + 0x8C0C0122, // 0071 GETMET R3 R0 K34 + 0x7C0C0200, // 0072 CALL R3 1 + 0x70020007, // 0073 JMP #007C + 0x880C0307, // 0074 GETMBR R3 R1 K7 + 0x1C0C0723, // 0075 EQ R3 R3 K35 + 0x780E0002, // 0076 JMPF R3 #007A + 0x8C0C0124, // 0077 GETMET R3 R0 K36 + 0x7C0C0200, // 0078 CALL R3 1 + 0x70020001, // 0079 JMP #007C + 0x8C0C0110, // 007A GETMET R3 R0 K16 + 0x7C0C0200, // 007B CALL R3 1 + 0x70020021, // 007C JMP #009F + 0x880C0301, // 007D GETMBR R3 R1 K1 + 0xB8120400, // 007E GETNGBL R4 K2 + 0x88100903, // 007F GETMBR R4 R4 K3 + 0x8810090C, // 0080 GETMBR R4 R4 K12 + 0x1C0C0604, // 0081 EQ R3 R3 R4 + 0x780E0019, // 0082 JMPF R3 #009D + 0x880C0111, // 0083 GETMBR R3 R0 K17 + 0x740E0001, // 0084 JMPT R3 #0087 + 0x8C0C0112, // 0085 GETMET R3 R0 K18 + 0x7C0C0200, // 0086 CALL R3 1 + 0x880C0307, // 0087 GETMBR R3 R1 K7 + 0x1C0C0725, // 0088 EQ R3 R3 K37 + 0x780E000F, // 0089 JMPF R3 #009A + 0x8C0C0126, // 008A GETMET R3 R0 K38 + 0x7C0C0200, // 008B CALL R3 1 + 0x4C100000, // 008C LDNIL R4 + 0x200C0604, // 008D NE R3 R3 R4 + 0x780E000A, // 008E JMPF R3 #009A + 0x8C0C0126, // 008F GETMET R3 R0 K38 + 0x7C0C0200, // 0090 CALL R3 1 + 0x880C0701, // 0091 GETMBR R3 R3 K1 + 0xB8120400, // 0092 GETNGBL R4 K2 + 0x88100903, // 0093 GETMBR R4 R4 K3 + 0x88100927, // 0094 GETMBR R4 R4 K39 + 0x1C0C0604, // 0095 EQ R3 R3 R4 + 0x780E0002, // 0096 JMPF R3 #009A + 0x8C0C0128, // 0097 GETMET R3 R0 K40 + 0x7C0C0200, // 0098 CALL R3 1 + 0x70020001, // 0099 JMP #009C + 0x8C0C0129, // 009A GETMET R3 R0 K41 + 0x7C0C0200, // 009B CALL R3 1 + 0x70020001, // 009C JMP #009F + 0x8C0C0110, // 009D GETMET R3 R0 K16 + 0x7C0C0200, // 009E CALL R3 1 + 0x80000000, // 009F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_add, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(output), + /* K1 */ be_nested_str_weak(push), + }), + be_str_weak(add), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_play_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_play_statement_fluent, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[23]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(IDENTIFIER), + /* K7 */ be_nested_str_weak(KEYWORD), + /* K8 */ be_nested_str_weak(peek), + /* K9 */ be_nested_str_weak(LEFT_PAREN), + /* K10 */ be_nested_str_weak(process_nested_function_call), + /* K11 */ be_nested_str_weak(expect_identifier), + /* K12 */ be_nested_str_weak(_validate_object_reference), + /* K13 */ be_nested_str_weak(sequence_X20play), + /* K14 */ be_nested_str_weak(_X25s_), + /* K15 */ be_nested_str_weak(nil), + /* K16 */ be_nested_str_weak(value), + /* K17 */ be_nested_str_weak(for), + /* K18 */ be_nested_str_weak(process_time_value), + /* K19 */ be_nested_str_weak(collect_inline_comment), + /* K20 */ be_nested_str_weak(add), + /* K21 */ be_nested_str_weak(_X25s_X2Epush_play_step_X28_X25s_X2C_X20_X25s_X29_X25s), + /* K22 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_play_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[87]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58040001, // 0002 LDCONST R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x4C0C0000, // 0005 LDNIL R3 + 0x200C0403, // 0006 NE R3 R2 R3 + 0x780E001C, // 0007 JMPF R3 #0025 + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0xB8120800, // 0009 GETNGBL R4 K4 + 0x88100905, // 000A GETMBR R4 R4 K5 + 0x88100906, // 000B GETMBR R4 R4 K6 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x740E0005, // 000D JMPT R3 #0014 + 0x880C0503, // 000E GETMBR R3 R2 K3 + 0xB8120800, // 000F GETNGBL R4 K4 + 0x88100905, // 0010 GETMBR R4 R4 K5 + 0x88100907, // 0011 GETMBR R4 R4 K7 + 0x1C0C0604, // 0012 EQ R3 R3 R4 + 0x780E0010, // 0013 JMPF R3 #0025 + 0x8C0C0108, // 0014 GETMET R3 R0 K8 + 0x7C0C0200, // 0015 CALL R3 1 + 0x4C100000, // 0016 LDNIL R4 + 0x200C0604, // 0017 NE R3 R3 R4 + 0x780E000B, // 0018 JMPF R3 #0025 + 0x8C0C0108, // 0019 GETMET R3 R0 K8 + 0x7C0C0200, // 001A CALL R3 1 + 0x880C0703, // 001B GETMBR R3 R3 K3 + 0xB8120800, // 001C GETNGBL R4 K4 + 0x88100905, // 001D GETMBR R4 R4 K5 + 0x88100909, // 001E GETMBR R4 R4 K9 + 0x1C0C0604, // 001F EQ R3 R3 R4 + 0x780E0003, // 0020 JMPF R3 #0025 + 0x8C0C010A, // 0021 GETMET R3 R0 K10 + 0x7C0C0200, // 0022 CALL R3 1 + 0x5C040600, // 0023 MOVE R1 R3 + 0x7002000A, // 0024 JMP #0030 + 0x8C0C010B, // 0025 GETMET R3 R0 K11 + 0x7C0C0200, // 0026 CALL R3 1 + 0x8C10010C, // 0027 GETMET R4 R0 K12 + 0x5C180600, // 0028 MOVE R6 R3 + 0x581C000D, // 0029 LDCONST R7 K13 + 0x7C100600, // 002A CALL R4 3 + 0x60100018, // 002B GETGBL R4 G24 + 0x5814000E, // 002C LDCONST R5 K14 + 0x5C180600, // 002D MOVE R6 R3 + 0x7C100400, // 002E CALL R4 2 + 0x5C040800, // 002F MOVE R1 R4 + 0x580C000F, // 0030 LDCONST R3 K15 + 0x8C100102, // 0031 GETMET R4 R0 K2 + 0x7C100200, // 0032 CALL R4 1 + 0x4C140000, // 0033 LDNIL R5 + 0x20100805, // 0034 NE R4 R4 R5 + 0x78120013, // 0035 JMPF R4 #004A + 0x8C100102, // 0036 GETMET R4 R0 K2 + 0x7C100200, // 0037 CALL R4 1 + 0x88100903, // 0038 GETMBR R4 R4 K3 + 0xB8160800, // 0039 GETNGBL R5 K4 + 0x88140B05, // 003A GETMBR R5 R5 K5 + 0x88140B07, // 003B GETMBR R5 R5 K7 + 0x1C100805, // 003C EQ R4 R4 R5 + 0x7812000B, // 003D JMPF R4 #004A + 0x8C100102, // 003E GETMET R4 R0 K2 + 0x7C100200, // 003F CALL R4 1 + 0x88100910, // 0040 GETMBR R4 R4 K16 + 0x1C100911, // 0041 EQ R4 R4 K17 + 0x78120006, // 0042 JMPF R4 #004A + 0x8C100100, // 0043 GETMET R4 R0 K0 + 0x7C100200, // 0044 CALL R4 1 + 0x60100008, // 0045 GETGBL R4 G8 + 0x8C140112, // 0046 GETMET R5 R0 K18 + 0x7C140200, // 0047 CALL R5 1 + 0x7C100200, // 0048 CALL R4 1 + 0x5C0C0800, // 0049 MOVE R3 R4 + 0x8C100113, // 004A GETMET R4 R0 K19 + 0x7C100200, // 004B CALL R4 1 + 0x8C140114, // 004C GETMET R5 R0 K20 + 0x601C0018, // 004D GETGBL R7 G24 + 0x58200015, // 004E LDCONST R8 K21 + 0x8C240116, // 004F GETMET R9 R0 K22 + 0x7C240200, // 0050 CALL R9 1 + 0x5C280200, // 0051 MOVE R10 R1 + 0x5C2C0600, // 0052 MOVE R11 R3 + 0x5C300800, // 0053 MOVE R12 R4 + 0x7C1C0A00, // 0054 CALL R7 5 + 0x7C140400, // 0055 CALL R5 2 + 0x80000000, // 0056 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: validate_user_name +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ + be_nested_proto( + 13, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(Token), + /* K2 */ be_nested_str_weak(color_names), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K5 */ be_nested_str_weak(stop_iteration), + /* K6 */ be_nested_str_weak(statement_keywords), + /* K7 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + }), + be_str_weak(validate_user_name), + &be_const_str_solidified, + ( &(const binstruction[53]) { /* code */ + 0x600C0010, // 0000 GETGBL R3 G16 + 0xB8120000, // 0001 GETNGBL R4 K0 + 0x88100901, // 0002 GETMBR R4 R4 K1 + 0x88100902, // 0003 GETMBR R4 R4 K2 + 0x7C0C0200, // 0004 CALL R3 1 + 0xA802000F, // 0005 EXBLK 0 #0016 + 0x5C100600, // 0006 MOVE R4 R3 + 0x7C100000, // 0007 CALL R4 0 + 0x1C140204, // 0008 EQ R5 R1 R4 + 0x7816000A, // 0009 JMPF R5 #0015 + 0x8C140103, // 000A GETMET R5 R0 K3 + 0x601C0018, // 000B GETGBL R7 G24 + 0x58200004, // 000C LDCONST R8 K4 + 0x5C240200, // 000D MOVE R9 R1 + 0x5C280200, // 000E MOVE R10 R1 + 0x5C2C0200, // 000F MOVE R11 R1 + 0x7C1C0800, // 0010 CALL R7 4 + 0x7C140400, // 0011 CALL R5 2 + 0x50140000, // 0012 LDBOOL R5 0 0 + 0xA8040001, // 0013 EXBLK 1 1 + 0x80040A00, // 0014 RET 1 R5 + 0x7001FFEF, // 0015 JMP #0006 + 0x580C0005, // 0016 LDCONST R3 K5 + 0xAC0C0200, // 0017 CATCH R3 1 0 + 0xB0080000, // 0018 RAISE 2 R0 R0 + 0x600C0010, // 0019 GETGBL R3 G16 + 0xB8120000, // 001A GETNGBL R4 K0 + 0x88100901, // 001B GETMBR R4 R4 K1 + 0x88100906, // 001C GETMBR R4 R4 K6 + 0x7C0C0200, // 001D CALL R3 1 + 0xA8020010, // 001E EXBLK 0 #0030 + 0x5C100600, // 001F MOVE R4 R3 + 0x7C100000, // 0020 CALL R4 0 + 0x1C140204, // 0021 EQ R5 R1 R4 + 0x7816000B, // 0022 JMPF R5 #002F + 0x8C140103, // 0023 GETMET R5 R0 K3 + 0x601C0018, // 0024 GETGBL R7 G24 + 0x58200007, // 0025 LDCONST R8 K7 + 0x5C240200, // 0026 MOVE R9 R1 + 0x5C280400, // 0027 MOVE R10 R2 + 0x5C2C0200, // 0028 MOVE R11 R1 + 0x5C300200, // 0029 MOVE R12 R1 + 0x7C1C0A00, // 002A CALL R7 5 + 0x7C140400, // 002B CALL R5 2 + 0x50140000, // 002C LDBOOL R5 0 0 + 0xA8040001, // 002D EXBLK 1 1 + 0x80040A00, // 002E RET 1 R5 + 0x7001FFEE, // 002F JMP #001F + 0x580C0005, // 0030 LDCONST R3 K5 + 0xAC0C0200, // 0031 CATCH R3 1 0 + 0xB0080000, // 0032 RAISE 2 R0 R0 + 0x500C0200, // 0033 LDBOOL R3 1 0 + 0x80040600, // 0034 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_computed_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_is_computed_expression, /* name */ + be_nested_proto( + 9, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(_X28), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(animation_X2E), + /* K5 */ be_nested_str_weak(_), + }), + be_str_weak(is_computed_expression), + &be_const_str_solidified, + ( &(const binstruction[40]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x8C140901, // 0001 GETMET R5 R4 K1 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x58200002, // 0003 LDCONST R8 K2 + 0x7C140600, // 0004 CALL R5 3 + 0x28140B03, // 0005 GE R5 R5 K3 + 0x7416001E, // 0006 JMPT R5 #0026 + 0x8C140901, // 0007 GETMET R5 R4 K1 + 0x5C1C0600, // 0008 MOVE R7 R3 + 0x58200002, // 0009 LDCONST R8 K2 + 0x7C140600, // 000A CALL R5 3 + 0x28140B03, // 000B GE R5 R5 K3 + 0x74160018, // 000C JMPT R5 #0026 + 0x8C140901, // 000D GETMET R5 R4 K1 + 0x5C1C0200, // 000E MOVE R7 R1 + 0x58200004, // 000F LDCONST R8 K4 + 0x7C140600, // 0010 CALL R5 3 + 0x28140B03, // 0011 GE R5 R5 K3 + 0x74160012, // 0012 JMPT R5 #0026 + 0x8C140901, // 0013 GETMET R5 R4 K1 + 0x5C1C0600, // 0014 MOVE R7 R3 + 0x58200004, // 0015 LDCONST R8 K4 + 0x7C140600, // 0016 CALL R5 3 + 0x28140B03, // 0017 GE R5 R5 K3 + 0x7416000C, // 0018 JMPT R5 #0026 + 0x8C140901, // 0019 GETMET R5 R4 K1 + 0x5C1C0200, // 001A MOVE R7 R1 + 0x58200005, // 001B LDCONST R8 K5 + 0x7C140600, // 001C CALL R5 3 + 0x28140B03, // 001D GE R5 R5 K3 + 0x74160006, // 001E JMPT R5 #0026 + 0x8C140901, // 001F GETMET R5 R4 K1 + 0x5C1C0600, // 0020 MOVE R7 R3 + 0x58200005, // 0021 LDCONST R8 K5 + 0x7C140600, // 0022 CALL R5 3 + 0x28140B03, // 0023 GE R5 R5 K3 + 0x74160000, // 0024 JMPT R5 #0026 + 0x50140001, // 0025 LDBOOL R5 0 1 + 0x50140200, // 0026 LDBOOL R5 1 0 + 0x80040A00, // 0027 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_additive_expression_raw +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(process_multiplicative_expression_raw), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(PLUS), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + }), + be_str_weak(process_additive_expression_raw), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x740A001F, // 0004 JMPT R2 #0025 + 0x8C080102, // 0005 GETMET R2 R0 K2 + 0x7C080200, // 0006 CALL R2 1 + 0x4C0C0000, // 0007 LDNIL R3 + 0x200C0403, // 0008 NE R3 R2 R3 + 0x780E0018, // 0009 JMPF R3 #0023 + 0x880C0503, // 000A GETMBR R3 R2 K3 + 0xB8120800, // 000B GETNGBL R4 K4 + 0x88100905, // 000C GETMBR R4 R4 K5 + 0x88100906, // 000D GETMBR R4 R4 K6 + 0x1C0C0604, // 000E EQ R3 R3 R4 + 0x740E0005, // 000F JMPT R3 #0016 + 0x880C0503, // 0010 GETMBR R3 R2 K3 + 0xB8120800, // 0011 GETNGBL R4 K4 + 0x88100905, // 0012 GETMBR R4 R4 K5 + 0x88100907, // 0013 GETMBR R4 R4 K7 + 0x1C0C0604, // 0014 EQ R3 R3 R4 + 0x780E000C, // 0015 JMPF R3 #0023 + 0x880C0508, // 0016 GETMBR R3 R2 K8 + 0x8C100109, // 0017 GETMET R4 R0 K9 + 0x7C100200, // 0018 CALL R4 1 + 0x8C100100, // 0019 GETMET R4 R0 K0 + 0x7C100200, // 001A CALL R4 1 + 0x60140018, // 001B GETGBL R5 G24 + 0x5818000A, // 001C LDCONST R6 K10 + 0x5C1C0200, // 001D MOVE R7 R1 + 0x5C200600, // 001E MOVE R8 R3 + 0x5C240800, // 001F MOVE R9 R4 + 0x7C140800, // 0020 CALL R5 4 + 0x5C040A00, // 0021 MOVE R1 R5 + 0x70020000, // 0022 JMP #0024 + 0x70020000, // 0023 JMP #0025 + 0x7001FFDC, // 0024 JMP #0002 + 0x80040200, // 0025 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_run +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(_validate_object_reference), + /* K3 */ be_nested_str_weak(run), + /* K4 */ be_nested_str_weak(collect_inline_comment), + /* K5 */ be_nested_str_weak(run_statements), + /* K6 */ be_nested_str_weak(push), + /* K7 */ be_nested_str_weak(name), + /* K8 */ be_nested_str_weak(comment), + }), + be_str_weak(process_run), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x8C080104, // 0008 GETMET R2 R0 K4 + 0x7C080200, // 0009 CALL R2 1 + 0x880C0105, // 000A GETMBR R3 R0 K5 + 0x8C0C0706, // 000B GETMET R3 R3 K6 + 0x60140013, // 000C GETGBL R5 G19 + 0x7C140000, // 000D CALL R5 0 + 0x98160E01, // 000E SETIDX R5 K7 R1 + 0x98161002, // 000F SETIDX R5 K8 R2 + 0x7C0C0400, // 0010 CALL R3 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_simple_function_from_string +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_create_simple_function_from_string, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20_X25s_X20end), + }), + be_str_weak(create_simple_function_from_string), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x60080018, // 0000 GETGBL R2 G24 + 0x580C0000, // 0001 LDCONST R3 K0 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: has_errors +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_has_errors, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(errors), + /* K1 */ be_const_int(0), + }), + be_str_weak(has_errors), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x7C040200, // 0002 CALL R1 1 + 0x24040301, // 0003 GT R1 R1 K1 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: collect_inline_comment +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(COMMENT), + /* K5 */ be_nested_str_weak(_X20_X20), + /* K6 */ be_nested_str_weak(value), + /* K7 */ be_nested_str_weak(next), + /* K8 */ be_nested_str_weak(), + }), + be_str_weak(collect_inline_comment), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A000A, // 0004 JMPF R2 #0010 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0004, // 000A JMPF R2 #0010 + 0x88080306, // 000B GETMBR R2 R1 K6 + 0x000A0A02, // 000C ADD R2 K5 R2 + 0x8C0C0107, // 000D GETMET R3 R0 K7 + 0x7C0C0200, // 000E CALL R3 1 + 0x80040400, // 000F RET 1 R2 + 0x80061000, // 0010 RET 1 K8 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_additive_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ + be_nested_proto( + 12, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[20]) { /* constants */ + /* K0 */ be_nested_str_weak(process_multiplicative_expression), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(PLUS), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + /* K11 */ be_nested_str_weak(is_anonymous_function), + /* K12 */ be_nested_str_weak(repeat_count), + /* K13 */ be_nested_str_weak(string), + /* K14 */ be_nested_str_weak(is_computed_expression_string), + /* K15 */ be_nested_str_weak(find), + /* K16 */ be_nested_str_weak(_X2E), + /* K17 */ be_const_int(0), + /* K18 */ be_nested_str_weak(create_simple_function_from_string), + /* K19 */ be_nested_str_weak(create_computation_closure_from_string), + }), + be_str_weak(process_additive_expression), + &be_const_str_solidified, + ( &(const binstruction[79]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C0C0600, // 0003 CALL R3 3 + 0x8C100101, // 0004 GETMET R4 R0 K1 + 0x7C100200, // 0005 CALL R4 1 + 0x74120021, // 0006 JMPT R4 #0029 + 0x8C100102, // 0007 GETMET R4 R0 K2 + 0x7C100200, // 0008 CALL R4 1 + 0x4C140000, // 0009 LDNIL R5 + 0x20140805, // 000A NE R5 R4 R5 + 0x7816001A, // 000B JMPF R5 #0027 + 0x88140903, // 000C GETMBR R5 R4 K3 + 0xB81A0800, // 000D GETNGBL R6 K4 + 0x88180D05, // 000E GETMBR R6 R6 K5 + 0x88180D06, // 000F GETMBR R6 R6 K6 + 0x1C140A06, // 0010 EQ R5 R5 R6 + 0x74160005, // 0011 JMPT R5 #0018 + 0x88140903, // 0012 GETMBR R5 R4 K3 + 0xB81A0800, // 0013 GETNGBL R6 K4 + 0x88180D05, // 0014 GETMBR R6 R6 K5 + 0x88180D07, // 0015 GETMBR R6 R6 K7 + 0x1C140A06, // 0016 EQ R5 R5 R6 + 0x7816000E, // 0017 JMPF R5 #0027 + 0x88140908, // 0018 GETMBR R5 R4 K8 + 0x8C180109, // 0019 GETMET R6 R0 K9 + 0x7C180200, // 001A CALL R6 1 + 0x8C180100, // 001B GETMET R6 R0 K0 + 0x5C200200, // 001C MOVE R8 R1 + 0x50240000, // 001D LDBOOL R9 0 0 + 0x7C180600, // 001E CALL R6 3 + 0x601C0018, // 001F GETGBL R7 G24 + 0x5820000A, // 0020 LDCONST R8 K10 + 0x5C240600, // 0021 MOVE R9 R3 + 0x5C280A00, // 0022 MOVE R10 R5 + 0x5C2C0C00, // 0023 MOVE R11 R6 + 0x7C1C0800, // 0024 CALL R7 4 + 0x5C0C0E00, // 0025 MOVE R3 R7 + 0x70020000, // 0026 JMP #0028 + 0x70020000, // 0027 JMP #0029 + 0x7001FFDA, // 0028 JMP #0004 + 0x780A0022, // 0029 JMPF R2 #004D + 0x8C10010B, // 002A GETMET R4 R0 K11 + 0x5C180600, // 002B MOVE R6 R3 + 0x7C100400, // 002C CALL R4 2 + 0x7412001E, // 002D JMPT R4 #004D + 0x1C10030C, // 002E EQ R4 R1 K12 + 0x78120011, // 002F JMPF R4 #0042 + 0xA4121A00, // 0030 IMPORT R4 K13 + 0x8C14010E, // 0031 GETMET R5 R0 K14 + 0x5C1C0600, // 0032 MOVE R7 R3 + 0x7C140400, // 0033 CALL R5 2 + 0x74160005, // 0034 JMPT R5 #003B + 0x8C14090F, // 0035 GETMET R5 R4 K15 + 0x5C1C0600, // 0036 MOVE R7 R3 + 0x58200010, // 0037 LDCONST R8 K16 + 0x7C140600, // 0038 CALL R5 3 + 0x28140B11, // 0039 GE R5 R5 K17 + 0x78160004, // 003A JMPF R5 #0040 + 0x8C140112, // 003B GETMET R5 R0 K18 + 0x5C1C0600, // 003C MOVE R7 R3 + 0x7C140400, // 003D CALL R5 2 + 0x80040A00, // 003E RET 1 R5 + 0x70020000, // 003F JMP #0041 + 0x80040600, // 0040 RET 1 R3 + 0x70020009, // 0041 JMP #004C + 0x8C10010E, // 0042 GETMET R4 R0 K14 + 0x5C180600, // 0043 MOVE R6 R3 + 0x7C100400, // 0044 CALL R4 2 + 0x78120004, // 0045 JMPF R4 #004B + 0x8C100113, // 0046 GETMET R4 R0 K19 + 0x5C180600, // 0047 MOVE R6 R3 + 0x7C100400, // 0048 CALL R4 2 + 0x80040800, // 0049 RET 1 R4 + 0x70020000, // 004A JMP #004C + 0x80040600, // 004B RET 1 R3 + 0x70020000, // 004C JMP #004E + 0x80040600, // 004D RET 1 R3 + 0x80000000, // 004E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_whitespace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(NEWLINE), + /* K6 */ be_nested_str_weak(COMMENT), + /* K7 */ be_nested_str_weak(next), + }), + be_str_weak(skip_whitespace), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060015, // 0002 JMPT R1 #0019 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000E, // 0007 JMPF R2 #0017 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0xB80E0600, // 0009 GETNGBL R3 K3 + 0x880C0704, // 000A GETMBR R3 R3 K4 + 0x880C0705, // 000B GETMBR R3 R3 K5 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x740A0005, // 000D JMPT R2 #0014 + 0x88080302, // 000E GETMBR R2 R1 K2 + 0xB80E0600, // 000F GETNGBL R3 K3 + 0x880C0704, // 0010 GETMBR R3 R3 K4 + 0x880C0706, // 0011 GETMBR R3 R3 K6 + 0x1C080403, // 0012 EQ R2 R2 R3 + 0x780A0002, // 0013 JMPF R2 #0017 + 0x8C080107, // 0014 GETMET R2 R0 K7 + 0x7C080200, // 0015 CALL R2 1 + 0x70020000, // 0016 JMP #0018 + 0x70020000, // 0017 JMP #0019 + 0x7001FFE6, // 0018 JMP #0000 + 0x80000000, // 0019 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: next +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_next, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_nested_str_weak(tokens), + /* K2 */ be_const_int(1), + }), + be_str_weak(next), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x14040202, // 0004 LT R1 R1 R2 + 0x78060002, // 0005 JMPF R1 #0009 + 0x88040100, // 0006 GETMBR R1 R0 K0 + 0x00040302, // 0007 ADD R1 R1 K2 + 0x90020001, // 0008 SETMBR R0 K0 R1 + 0x80000000, // 0009 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_reset_restart_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_reset_restart_statement_fluent, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(value), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(expect_identifier), + /* K4 */ be_nested_str_weak(_validate_value_provider_reference), + /* K5 */ be_nested_str_weak(skip_statement), + /* K6 */ be_nested_str_weak(collect_inline_comment), + /* K7 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2Estart_X28engine_X2Etime_ms_X29_X20end), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K10 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_reset_restart_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[31]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x88040301, // 0002 GETMBR R1 R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x8C080103, // 0005 GETMET R2 R0 K3 + 0x7C080200, // 0006 CALL R2 1 + 0x8C0C0104, // 0007 GETMET R3 R0 K4 + 0x5C140400, // 0008 MOVE R5 R2 + 0x5C180200, // 0009 MOVE R6 R1 + 0x7C0C0600, // 000A CALL R3 3 + 0x740E0002, // 000B JMPT R3 #000F + 0x8C0C0105, // 000C GETMET R3 R0 K5 + 0x7C0C0200, // 000D CALL R3 1 + 0x80000600, // 000E RET 0 + 0x8C0C0106, // 000F GETMET R3 R0 K6 + 0x7C0C0200, // 0010 CALL R3 1 + 0x60100018, // 0011 GETGBL R4 G24 + 0x58140007, // 0012 LDCONST R5 K7 + 0x5C180400, // 0013 MOVE R6 R2 + 0x7C100400, // 0014 CALL R4 2 + 0x8C140108, // 0015 GETMET R5 R0 K8 + 0x601C0018, // 0016 GETGBL R7 G24 + 0x58200009, // 0017 LDCONST R8 K9 + 0x8C24010A, // 0018 GETMET R9 R0 K10 + 0x7C240200, // 0019 CALL R9 1 + 0x5C280800, // 001A MOVE R10 R4 + 0x5C2C0600, // 001B MOVE R11 R3 + 0x7C1C0800, // 001C CALL R7 4 + 0x7C140400, // 001D CALL R5 2 + 0x80000000, // 001E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_user_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(LEFT_PAREN), + /* K5 */ be_nested_str_weak(process_function_arguments_for_expression), + /* K6 */ be_nested_str_weak(), + /* K7 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), + /* K8 */ be_nested_str_weak(self_X2Eengine), + /* K9 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), + /* K10 */ be_nested_str_weak(error), + /* K11 */ be_nested_str_weak(User_X20functions_X20must_X20be_X20called_X20with_X20parentheses_X3A_X20user_X2Efunction_name_X28_X29), + /* K12 */ be_nested_str_weak(nil), + }), + be_str_weak(_process_user_function_call), + &be_const_str_solidified, + ( &(const binstruction[35]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0018, // 0004 JMPF R2 #001E + 0x8C080100, // 0005 GETMET R2 R0 K0 + 0x7C080200, // 0006 CALL R2 1 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0xB80E0400, // 0008 GETNGBL R3 K2 + 0x880C0703, // 0009 GETMBR R3 R3 K3 + 0x880C0704, // 000A GETMBR R3 R3 K4 + 0x1C080403, // 000B EQ R2 R2 R3 + 0x780A0010, // 000C JMPF R2 #001E + 0x8C080105, // 000D GETMET R2 R0 K5 + 0x7C080200, // 000E CALL R2 1 + 0x200C0506, // 000F NE R3 R2 K6 + 0x780E0004, // 0010 JMPF R3 #0016 + 0x600C0018, // 0011 GETGBL R3 G24 + 0x58100007, // 0012 LDCONST R4 K7 + 0x5C140400, // 0013 MOVE R5 R2 + 0x7C0C0400, // 0014 CALL R3 2 + 0x70020000, // 0015 JMP #0017 + 0x580C0008, // 0016 LDCONST R3 K8 + 0x60100018, // 0017 GETGBL R4 G24 + 0x58140009, // 0018 LDCONST R5 K9 + 0x5C180200, // 0019 MOVE R6 R1 + 0x5C1C0600, // 001A MOVE R7 R3 + 0x7C100600, // 001B CALL R4 3 + 0x80040800, // 001C RET 1 R4 + 0x70020003, // 001D JMP #0022 + 0x8C08010A, // 001E GETMET R2 R0 K10 + 0x5810000B, // 001F LDCONST R4 K11 + 0x7C080400, // 0020 CALL R2 2 + 0x80061800, // 0021 RET 1 K12 + 0x80000000, // 0022 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_event_parameters +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_X7B), + /* K2 */ be_nested_str_weak(at_end), + /* K3 */ be_nested_str_weak(check_right_paren), + /* K4 */ be_nested_str_weak(current), + /* K5 */ be_nested_str_weak(type), + /* K6 */ be_nested_str_weak(animation_dsl), + /* K7 */ be_nested_str_weak(Token), + /* K8 */ be_nested_str_weak(TIME), + /* K9 */ be_nested_str_weak(process_time_value), + /* K10 */ be_nested_str_weak(_X22interval_X22_X3A_X20_X25s), + /* K11 */ be_nested_str_weak(process_value), + /* K12 */ be_nested_str_weak(event_param), + /* K13 */ be_nested_str_weak(_X22value_X22_X3A_X20_X25s), + /* K14 */ be_nested_str_weak(expect_right_paren), + /* K15 */ be_nested_str_weak(_X7D), + }), + be_str_weak(process_event_parameters), + &be_const_str_solidified, + ( &(const binstruction[40]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58040001, // 0002 LDCONST R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x740A001D, // 0005 JMPT R2 #0024 + 0x8C080103, // 0006 GETMET R2 R0 K3 + 0x7C080200, // 0007 CALL R2 1 + 0x740A001A, // 0008 JMPT R2 #0024 + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x4C0C0000, // 000B LDNIL R3 + 0x200C0403, // 000C NE R3 R2 R3 + 0x780E000D, // 000D JMPF R3 #001C + 0x880C0505, // 000E GETMBR R3 R2 K5 + 0xB8120C00, // 000F GETNGBL R4 K6 + 0x88100907, // 0010 GETMBR R4 R4 K7 + 0x88100908, // 0011 GETMBR R4 R4 K8 + 0x1C0C0604, // 0012 EQ R3 R3 R4 + 0x780E0007, // 0013 JMPF R3 #001C + 0x8C0C0109, // 0014 GETMET R3 R0 K9 + 0x7C0C0200, // 0015 CALL R3 1 + 0x60100018, // 0016 GETGBL R4 G24 + 0x5814000A, // 0017 LDCONST R5 K10 + 0x5C180600, // 0018 MOVE R6 R3 + 0x7C100400, // 0019 CALL R4 2 + 0x00040204, // 001A ADD R1 R1 R4 + 0x70020007, // 001B JMP #0024 + 0x8C0C010B, // 001C GETMET R3 R0 K11 + 0x5814000C, // 001D LDCONST R5 K12 + 0x7C0C0400, // 001E CALL R3 2 + 0x60100018, // 001F GETGBL R4 G24 + 0x5814000D, // 0020 LDCONST R5 K13 + 0x5C180600, // 0021 MOVE R6 R3 + 0x7C100400, // 0022 CALL R4 2 + 0x00040204, // 0023 ADD R1 R1 R4 + 0x8C08010E, // 0024 GETMET R2 R0 K14 + 0x7C080200, // 0025 CALL R2 1 + 0x0004030F, // 0026 ADD R1 R1 K15 + 0x80040200, // 0027 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_set +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[22]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(variable), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(KEYWORD), + /* K11 */ be_nested_str_weak(IDENTIFIER), + /* K12 */ be_nested_str_weak(peek), + /* K13 */ be_nested_str_weak(LEFT_PAREN), + /* K14 */ be_nested_str_weak(value), + /* K15 */ be_nested_str_weak(_validate_value_provider_factory_exists), + /* K16 */ be_nested_str_weak(process_value), + /* K17 */ be_nested_str_weak(collect_inline_comment), + /* K18 */ be_nested_str_weak(add), + /* K19 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K20 */ be_nested_str_weak(symbol_table), + /* K21 */ be_nested_str_weak(value_provider), + }), + be_str_weak(process_set), + &be_const_str_solidified, + ( &(const binstruction[68]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x50080000, // 000E LDBOOL R2 0 0 + 0x8C0C0106, // 000F GETMET R3 R0 K6 + 0x7C0C0200, // 0010 CALL R3 1 + 0x88100707, // 0011 GETMBR R4 R3 K7 + 0xB8161000, // 0012 GETNGBL R5 K8 + 0x88140B09, // 0013 GETMBR R5 R5 K9 + 0x88140B0A, // 0014 GETMBR R5 R5 K10 + 0x1C100805, // 0015 EQ R4 R4 R5 + 0x74120005, // 0016 JMPT R4 #001D + 0x88100707, // 0017 GETMBR R4 R3 K7 + 0xB8161000, // 0018 GETNGBL R5 K8 + 0x88140B09, // 0019 GETMBR R5 R5 K9 + 0x88140B0B, // 001A GETMBR R5 R5 K11 + 0x1C100805, // 001B EQ R4 R4 R5 + 0x78120012, // 001C JMPF R4 #0030 + 0x8C10010C, // 001D GETMET R4 R0 K12 + 0x7C100200, // 001E CALL R4 1 + 0x4C140000, // 001F LDNIL R5 + 0x20100805, // 0020 NE R4 R4 R5 + 0x7812000D, // 0021 JMPF R4 #0030 + 0x8C10010C, // 0022 GETMET R4 R0 K12 + 0x7C100200, // 0023 CALL R4 1 + 0x88100907, // 0024 GETMBR R4 R4 K7 + 0xB8161000, // 0025 GETNGBL R5 K8 + 0x88140B09, // 0026 GETMBR R5 R5 K9 + 0x88140B0D, // 0027 GETMBR R5 R5 K13 + 0x1C100805, // 0028 EQ R4 R4 R5 + 0x78120005, // 0029 JMPF R4 #0030 + 0x8810070E, // 002A GETMBR R4 R3 K14 + 0x8C14010F, // 002B GETMET R5 R0 K15 + 0x5C1C0800, // 002C MOVE R7 R4 + 0x7C140400, // 002D CALL R5 2 + 0x78160000, // 002E JMPF R5 #0030 + 0x50080200, // 002F LDBOOL R2 1 0 + 0x8C100110, // 0030 GETMET R4 R0 K16 + 0x58180003, // 0031 LDCONST R6 K3 + 0x7C100400, // 0032 CALL R4 2 + 0x8C140111, // 0033 GETMET R5 R0 K17 + 0x7C140200, // 0034 CALL R5 1 + 0x8C180112, // 0035 GETMET R6 R0 K18 + 0x60200018, // 0036 GETGBL R8 G24 + 0x58240013, // 0037 LDCONST R9 K19 + 0x5C280200, // 0038 MOVE R10 R1 + 0x5C2C0800, // 0039 MOVE R11 R4 + 0x5C300A00, // 003A MOVE R12 R5 + 0x7C200800, // 003B CALL R8 4 + 0x7C180400, // 003C CALL R6 2 + 0x780A0002, // 003D JMPF R2 #0041 + 0x88180114, // 003E GETMBR R6 R0 K20 + 0x98180315, // 003F SETIDX R6 R1 K21 + 0x70020001, // 0040 JMP #0043 + 0x88180114, // 0041 GETMBR R6 R0 K20 + 0x98180303, // 0042 SETIDX R6 R1 K3 + 0x80000000, // 0043 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACKET), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), + }), + be_str_weak(expect_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_assign +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(ASSIGN), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), + }), + be_str_weak(expect_assign), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_named_arguments_for_variable ********************************************************************/ @@ -2623,12 +8310,12 @@ be_local_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable, /******************************************************************** -** Solidified function: process_unary_expression +** Solidified function: transpile_template_body ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ +be_local_closure(class_SimpleDSLTranspiler_transpile_template_body, /* name */ be_nested_proto( - 8, /* nstack */ - 3, /* argc */ + 11, /* nstack */ + 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -2636,768 +8323,80 @@ be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name * NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_unary_expression), - /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K11 */ be_nested_str_weak(PLUS), - /* K12 */ be_nested_str_weak(process_primary_expression), + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(process_statement), + /* K2 */ be_nested_str_weak(run_statements), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(name), + /* K5 */ be_nested_str_weak(comment), + /* K6 */ be_nested_str_weak(add), + /* K7 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), + /* K8 */ be_nested_str_weak(stop_iteration), + /* K9 */ be_nested_str_weak(errors), + /* K10 */ be_nested_str_weak(join_output), + /* K11 */ be_nested_str_weak(error), + /* K12 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), }), - be_str_weak(process_unary_expression), + be_str_weak(transpile_template_body), &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x4C100000, // 0002 LDNIL R4 - 0x1C100604, // 0003 EQ R4 R3 R4 - 0x78120003, // 0004 JMPF R4 #0009 - 0x8C100101, // 0005 GETMET R4 R0 K1 - 0x58180002, // 0006 LDCONST R6 K2 - 0x7C100400, // 0007 CALL R4 2 - 0x80060600, // 0008 RET 1 K3 - 0x88100704, // 0009 GETMBR R4 R3 K4 - 0xB8160A00, // 000A GETNGBL R5 K5 - 0x88140B06, // 000B GETMBR R5 R5 K6 - 0x88140B07, // 000C GETMBR R5 R5 K7 - 0x1C100805, // 000D EQ R4 R4 R5 - 0x7812000A, // 000E JMPF R4 #001A - 0x8C100108, // 000F GETMET R4 R0 K8 - 0x7C100200, // 0010 CALL R4 1 - 0x8C100109, // 0011 GETMET R4 R0 K9 - 0x5C180200, // 0012 MOVE R6 R1 - 0x501C0000, // 0013 LDBOOL R7 0 0 - 0x7C100600, // 0014 CALL R4 3 - 0x60140018, // 0015 GETGBL R5 G24 - 0x5818000A, // 0016 LDCONST R6 K10 - 0x5C1C0800, // 0017 MOVE R7 R4 - 0x7C140400, // 0018 CALL R5 2 - 0x80040A00, // 0019 RET 1 R5 - 0x88100704, // 001A GETMBR R4 R3 K4 - 0xB8160A00, // 001B GETNGBL R5 K5 - 0x88140B06, // 001C GETMBR R5 R5 K6 - 0x88140B0B, // 001D GETMBR R5 R5 K11 - 0x1C100805, // 001E EQ R4 R4 R5 - 0x78120006, // 001F JMPF R4 #0027 - 0x8C100108, // 0020 GETMET R4 R0 K8 - 0x7C100200, // 0021 CALL R4 1 - 0x8C100109, // 0022 GETMET R4 R0 K9 - 0x5C180200, // 0023 MOVE R6 R1 - 0x501C0000, // 0024 LDBOOL R7 0 0 - 0x7C100600, // 0025 CALL R4 3 - 0x80040800, // 0026 RET 1 R4 - 0x8C10010C, // 0027 GETMET R4 R0 K12 - 0x5C180200, // 0028 MOVE R6 R1 - 0x5C1C0400, // 0029 MOVE R7 R2 - 0x7C100600, // 002A CALL R4 3 - 0x80040800, // 002B RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_function_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[21]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_paren), - /* K3 */ be_nested_str_weak(skip_whitespace), - /* K4 */ be_nested_str_weak(process_value), - /* K5 */ be_nested_str_weak(argument), - /* K6 */ be_nested_str_weak(push), - /* K7 */ be_nested_str_weak(current), - /* K8 */ be_nested_str_weak(type), - /* K9 */ be_nested_str_weak(animation_dsl), - /* K10 */ be_nested_str_weak(Token), - /* K11 */ be_nested_str_weak(COMMA), - /* K12 */ be_nested_str_weak(next), - /* K13 */ be_nested_str_weak(error), - /* K14 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K15 */ be_nested_str_weak(expect_right_paren), - /* K16 */ be_nested_str_weak(), - /* K17 */ be_const_int(0), - /* K18 */ be_const_int(1), - /* K19 */ be_nested_str_weak(_X2C_X20), - /* K20 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(process_function_arguments), - &be_const_str_solidified, - ( &(const binstruction[73]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x60040012, // 0002 GETGBL R1 G18 - 0x7C040000, // 0003 CALL R1 0 - 0x8C080101, // 0004 GETMET R2 R0 K1 - 0x7C080200, // 0005 CALL R2 1 - 0x740A002A, // 0006 JMPT R2 #0032 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A0027, // 0009 JMPT R2 #0032 - 0x8C080103, // 000A GETMET R2 R0 K3 - 0x7C080200, // 000B CALL R2 1 - 0x8C080102, // 000C GETMET R2 R0 K2 - 0x7C080200, // 000D CALL R2 1 - 0x780A0000, // 000E JMPF R2 #0010 - 0x70020021, // 000F JMP #0032 - 0x8C080104, // 0010 GETMET R2 R0 K4 - 0x58100005, // 0011 LDCONST R4 K5 - 0x7C080400, // 0012 CALL R2 2 - 0x8C0C0306, // 0013 GETMET R3 R1 K6 - 0x5C140400, // 0014 MOVE R5 R2 - 0x7C0C0400, // 0015 CALL R3 2 - 0x8C0C0103, // 0016 GETMET R3 R0 K3 - 0x7C0C0200, // 0017 CALL R3 1 - 0x8C0C0107, // 0018 GETMET R3 R0 K7 - 0x7C0C0200, // 0019 CALL R3 1 - 0x4C100000, // 001A LDNIL R4 - 0x200C0604, // 001B NE R3 R3 R4 - 0x780E000C, // 001C JMPF R3 #002A - 0x8C0C0107, // 001D GETMET R3 R0 K7 - 0x7C0C0200, // 001E CALL R3 1 - 0x880C0708, // 001F GETMBR R3 R3 K8 - 0xB8121200, // 0020 GETNGBL R4 K9 - 0x8810090A, // 0021 GETMBR R4 R4 K10 - 0x8810090B, // 0022 GETMBR R4 R4 K11 - 0x1C0C0604, // 0023 EQ R3 R3 R4 - 0x780E0004, // 0024 JMPF R3 #002A - 0x8C0C010C, // 0025 GETMET R3 R0 K12 - 0x7C0C0200, // 0026 CALL R3 1 - 0x8C0C0103, // 0027 GETMET R3 R0 K3 - 0x7C0C0200, // 0028 CALL R3 1 - 0x70020006, // 0029 JMP #0031 - 0x8C0C0102, // 002A GETMET R3 R0 K2 - 0x7C0C0200, // 002B CALL R3 1 - 0x740E0003, // 002C JMPT R3 #0031 - 0x8C0C010D, // 002D GETMET R3 R0 K13 - 0x5814000E, // 002E LDCONST R5 K14 - 0x7C0C0400, // 002F CALL R3 2 - 0x70020000, // 0030 JMP #0032 - 0x7001FFD1, // 0031 JMP #0004 - 0x8C08010F, // 0032 GETMET R2 R0 K15 - 0x7C080200, // 0033 CALL R2 1 - 0x58080010, // 0034 LDCONST R2 K16 - 0x600C0010, // 0035 GETGBL R3 G16 - 0x6010000C, // 0036 GETGBL R4 G12 - 0x5C140200, // 0037 MOVE R5 R1 - 0x7C100200, // 0038 CALL R4 1 - 0x04100912, // 0039 SUB R4 R4 K18 - 0x40122204, // 003A CONNECT R4 K17 R4 - 0x7C0C0200, // 003B CALL R3 1 - 0xA8020007, // 003C EXBLK 0 #0045 - 0x5C100600, // 003D MOVE R4 R3 - 0x7C100000, // 003E CALL R4 0 - 0x24140911, // 003F GT R5 R4 K17 - 0x78160000, // 0040 JMPF R5 #0042 - 0x00080513, // 0041 ADD R2 R2 K19 - 0x94140204, // 0042 GETIDX R5 R1 R4 - 0x00080405, // 0043 ADD R2 R2 R5 - 0x7001FFF7, // 0044 JMP #003D - 0x580C0014, // 0045 LDCONST R3 K20 - 0xAC0C0200, // 0046 CATCH R3 1 0 - 0xB0080000, // 0047 RAISE 2 R0 R0 - 0x80040400, // 0048 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_function_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_function_arguments, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(LEFT_PAREN), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_const_int(1), - /* K7 */ be_nested_str_weak(at_end), - /* K8 */ be_const_int(0), - /* K9 */ be_nested_str_weak(RIGHT_PAREN), - }), - be_str_weak(skip_function_arguments), - &be_const_str_solidified, - ( &(const binstruction[42]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20040202, // 0003 NE R1 R1 R2 - 0x78060023, // 0004 JMPF R1 #0029 - 0x8C040100, // 0005 GETMET R1 R0 K0 - 0x7C040200, // 0006 CALL R1 1 - 0x88040301, // 0007 GETMBR R1 R1 K1 - 0xB80A0400, // 0008 GETNGBL R2 K2 - 0x88080503, // 0009 GETMBR R2 R2 K3 - 0x88080504, // 000A GETMBR R2 R2 K4 - 0x1C040202, // 000B EQ R1 R1 R2 - 0x7806001B, // 000C JMPF R1 #0029 - 0x8C040105, // 000D GETMET R1 R0 K5 + ( &(const binstruction[57]) { /* code */ + 0xA802002A, // 0000 EXBLK 0 #002C + 0x8C040100, // 0001 GETMET R1 R0 K0 + 0x7C040200, // 0002 CALL R1 1 + 0x74060002, // 0003 JMPT R1 #0007 + 0x8C040101, // 0004 GETMET R1 R0 K1 + 0x7C040200, // 0005 CALL R1 1 + 0x7001FFF9, // 0006 JMP #0001 + 0x6004000C, // 0007 GETGBL R1 G12 + 0x88080102, // 0008 GETMBR R2 R0 K2 + 0x7C040200, // 0009 CALL R1 1 + 0x24040303, // 000A GT R1 R1 K3 + 0x78060012, // 000B JMPF R1 #001F + 0x60040010, // 000C GETGBL R1 G16 + 0x88080102, // 000D GETMBR R2 R0 K2 0x7C040200, // 000E CALL R1 1 - 0x58040006, // 000F LDCONST R1 K6 - 0x8C080107, // 0010 GETMET R2 R0 K7 - 0x7C080200, // 0011 CALL R2 1 - 0x740A0015, // 0012 JMPT R2 #0029 - 0x24080308, // 0013 GT R2 R1 K8 - 0x780A0013, // 0014 JMPF R2 #0029 - 0x8C080100, // 0015 GETMET R2 R0 K0 - 0x7C080200, // 0016 CALL R2 1 - 0x880C0501, // 0017 GETMBR R3 R2 K1 - 0xB8120400, // 0018 GETNGBL R4 K2 - 0x88100903, // 0019 GETMBR R4 R4 K3 - 0x88100904, // 001A GETMBR R4 R4 K4 - 0x1C0C0604, // 001B EQ R3 R3 R4 - 0x780E0001, // 001C JMPF R3 #001F - 0x00040306, // 001D ADD R1 R1 K6 - 0x70020006, // 001E JMP #0026 - 0x880C0501, // 001F GETMBR R3 R2 K1 - 0xB8120400, // 0020 GETNGBL R4 K2 - 0x88100903, // 0021 GETMBR R4 R4 K3 - 0x88100909, // 0022 GETMBR R4 R4 K9 - 0x1C0C0604, // 0023 EQ R3 R3 R4 - 0x780E0000, // 0024 JMPF R3 #0026 - 0x04040306, // 0025 SUB R1 R1 K6 - 0x8C0C0105, // 0026 GETMET R3 R0 K5 - 0x7C0C0200, // 0027 CALL R3 1 - 0x7001FFE6, // 0028 JMP #0010 - 0x80000000, // 0029 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_identifier -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_identifier, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(IDENTIFIER), - /* K5 */ be_nested_str_weak(COLOR), - /* K6 */ be_nested_str_weak(KEYWORD), - /* K7 */ be_nested_str_weak(can_use_as_identifier), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(error), - /* K11 */ be_nested_str_weak(Expected_X20identifier), - /* K12 */ be_nested_str_weak(unknown), - }), - be_str_weak(expect_identifier), - &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A001A, // 0004 JMPF R2 #0020 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A000F, // 000A JMPT R2 #001B - 0x88080301, // 000B GETMBR R2 R1 K1 - 0xB80E0400, // 000C GETNGBL R3 K2 - 0x880C0703, // 000D GETMBR R3 R3 K3 - 0x880C0705, // 000E GETMBR R3 R3 K5 - 0x1C080403, // 000F EQ R2 R2 R3 - 0x740A0009, // 0010 JMPT R2 #001B - 0x88080301, // 0011 GETMBR R2 R1 K1 - 0xB80E0400, // 0012 GETNGBL R3 K2 - 0x880C0703, // 0013 GETMBR R3 R3 K3 - 0x880C0706, // 0014 GETMBR R3 R3 K6 - 0x1C080403, // 0015 EQ R2 R2 R3 - 0x780A0008, // 0016 JMPF R2 #0020 - 0x8C080107, // 0017 GETMET R2 R0 K7 - 0x88100308, // 0018 GETMBR R4 R1 K8 - 0x7C080400, // 0019 CALL R2 2 - 0x780A0004, // 001A JMPF R2 #0020 - 0x88080308, // 001B GETMBR R2 R1 K8 - 0x8C0C0109, // 001C GETMET R3 R0 K9 - 0x7C0C0200, // 001D CALL R3 1 - 0x80040400, // 001E RET 1 R2 - 0x70020003, // 001F JMP #0024 - 0x8C08010A, // 0020 GETMET R2 R0 K10 - 0x5810000B, // 0021 LDCONST R4 K11 - 0x7C080400, // 0022 CALL R2 2 - 0x80061800, // 0023 RET 1 K12 - 0x80000000, // 0024 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_PAREN), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X29_X27), - }), - be_str_weak(expect_right_paren), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_primary_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name */ - be_nested_proto( - 13, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[55]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(LEFT_PAREN), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_additive_expression), - /* K10 */ be_nested_str_weak(expect_right_paren), - /* K11 */ be_nested_str_weak(_X28_X25s_X29), - /* K12 */ be_nested_str_weak(KEYWORD), - /* K13 */ be_nested_str_weak(IDENTIFIER), - /* K14 */ be_nested_str_weak(peek), - /* K15 */ be_nested_str_weak(value), - /* K16 */ be_nested_str_weak(_is_simple_function_call), - /* K17 */ be_nested_str_weak(process_function_call), - /* K18 */ be_nested_str_weak(argument), - /* K19 */ be_nested_str_weak(property), - /* K20 */ be_nested_str_weak(variable), - /* K21 */ be_nested_str_weak(process_nested_function_call), - /* K22 */ be_nested_str_weak(COLOR), - /* K23 */ be_nested_str_weak(convert_color), - /* K24 */ be_nested_str_weak(TIME), - /* K25 */ be_nested_str_weak(process_time_value), - /* K26 */ be_nested_str_weak(PERCENTAGE), - /* K27 */ be_nested_str_weak(process_percentage_value), - /* K28 */ be_nested_str_weak(NUMBER), - /* K29 */ be_nested_str_weak(STRING), - /* K30 */ be_nested_str_weak(_X22_X25s_X22), - /* K31 */ be_nested_str_weak(LEFT_BRACKET), - /* K32 */ be_nested_str_weak(process_array_literal), - /* K33 */ be_nested_str_weak(DOT), - /* K34 */ be_nested_str_weak(expect_identifier), - /* K35 */ be_nested_str_weak(user), - /* K36 */ be_nested_str_weak(_process_user_function_call), - /* K37 */ be_nested_str_weak(symbol_table), - /* K38 */ be_nested_str_weak(contains), - /* K39 */ be_nested_str_weak(string), - /* K40 */ be_nested_str_weak(_validate_single_parameter), - /* K41 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20references_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), - /* K42 */ be_nested_str_weak(introspect), - /* K43 */ be_nested_str_weak(), - /* K44 */ be_nested_str_weak(animation), - /* K45 */ be_nested_str_weak(animation_X2E_X25s), - /* K46 */ be_nested_str_weak(_X25s_), - /* K47 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), - /* K48 */ be_nested_str_weak(startswith), - /* K49 */ be_nested_str_weak(PALETTE_), - /* K50 */ be_nested_str_weak(is_color_name), - /* K51 */ be_nested_str_weak(get_named_color_value), - /* K52 */ be_nested_str_weak(true), - /* K53 */ be_nested_str_weak(false), - /* K54 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), - }), - be_str_weak(process_primary_expression), - &be_const_str_solidified, - ( &(const binstruction[304]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x4C100000, // 0002 LDNIL R4 - 0x1C100604, // 0003 EQ R4 R3 R4 - 0x78120003, // 0004 JMPF R4 #0009 - 0x8C100101, // 0005 GETMET R4 R0 K1 - 0x58180002, // 0006 LDCONST R6 K2 - 0x7C100400, // 0007 CALL R4 2 - 0x80060600, // 0008 RET 1 K3 - 0x88100704, // 0009 GETMBR R4 R3 K4 - 0xB8160A00, // 000A GETNGBL R5 K5 - 0x88140B06, // 000B GETMBR R5 R5 K6 - 0x88140B07, // 000C GETMBR R5 R5 K7 - 0x1C100805, // 000D EQ R4 R4 R5 - 0x7812000C, // 000E JMPF R4 #001C - 0x8C100108, // 000F GETMET R4 R0 K8 - 0x7C100200, // 0010 CALL R4 1 - 0x8C100109, // 0011 GETMET R4 R0 K9 - 0x5C180200, // 0012 MOVE R6 R1 - 0x501C0000, // 0013 LDBOOL R7 0 0 - 0x7C100600, // 0014 CALL R4 3 - 0x8C14010A, // 0015 GETMET R5 R0 K10 - 0x7C140200, // 0016 CALL R5 1 - 0x60140018, // 0017 GETGBL R5 G24 - 0x5818000B, // 0018 LDCONST R6 K11 - 0x5C1C0800, // 0019 MOVE R7 R4 + 0xA802000B, // 000F EXBLK 0 #001C + 0x5C080200, // 0010 MOVE R2 R1 + 0x7C080000, // 0011 CALL R2 0 + 0x940C0504, // 0012 GETIDX R3 R2 K4 + 0x94100505, // 0013 GETIDX R4 R2 K5 + 0x8C140106, // 0014 GETMET R5 R0 K6 + 0x601C0018, // 0015 GETGBL R7 G24 + 0x58200007, // 0016 LDCONST R8 K7 + 0x5C240600, // 0017 MOVE R9 R3 + 0x5C280800, // 0018 MOVE R10 R4 + 0x7C1C0600, // 0019 CALL R7 3 0x7C140400, // 001A CALL R5 2 - 0x80040A00, // 001B RET 1 R5 - 0x88100704, // 001C GETMBR R4 R3 K4 - 0xB8160A00, // 001D GETNGBL R5 K5 - 0x88140B06, // 001E GETMBR R5 R5 K6 - 0x88140B0C, // 001F GETMBR R5 R5 K12 - 0x1C100805, // 0020 EQ R4 R4 R5 - 0x74120005, // 0021 JMPT R4 #0028 - 0x88100704, // 0022 GETMBR R4 R3 K4 - 0xB8160A00, // 0023 GETNGBL R5 K5 - 0x88140B06, // 0024 GETMBR R5 R5 K6 - 0x88140B0D, // 0025 GETMBR R5 R5 K13 - 0x1C100805, // 0026 EQ R4 R4 R5 - 0x78120024, // 0027 JMPF R4 #004D - 0x8C10010E, // 0028 GETMET R4 R0 K14 - 0x7C100200, // 0029 CALL R4 1 - 0x4C140000, // 002A LDNIL R5 - 0x20100805, // 002B NE R4 R4 R5 - 0x7812001F, // 002C JMPF R4 #004D - 0x8C10010E, // 002D GETMET R4 R0 K14 - 0x7C100200, // 002E CALL R4 1 - 0x88100904, // 002F GETMBR R4 R4 K4 - 0xB8160A00, // 0030 GETNGBL R5 K5 - 0x88140B06, // 0031 GETMBR R5 R5 K6 - 0x88140B07, // 0032 GETMBR R5 R5 K7 - 0x1C100805, // 0033 EQ R4 R4 R5 - 0x78120017, // 0034 JMPF R4 #004D - 0x8810070F, // 0035 GETMBR R4 R3 K15 - 0x8C140110, // 0036 GETMET R5 R0 K16 - 0x5C1C0800, // 0037 MOVE R7 R4 - 0x7C140400, // 0038 CALL R5 2 - 0x78160004, // 0039 JMPF R5 #003F - 0x8C140111, // 003A GETMET R5 R0 K17 - 0x5C1C0200, // 003B MOVE R7 R1 - 0x7C140400, // 003C CALL R5 2 - 0x80040A00, // 003D RET 1 R5 - 0x7002000D, // 003E JMP #004D - 0x1C140312, // 003F EQ R5 R1 K18 - 0x74160003, // 0040 JMPT R5 #0045 - 0x1C140313, // 0041 EQ R5 R1 K19 - 0x74160001, // 0042 JMPT R5 #0045 - 0x1C140314, // 0043 EQ R5 R1 K20 - 0x78160003, // 0044 JMPF R5 #0049 - 0x8C140115, // 0045 GETMET R5 R0 K21 - 0x7C140200, // 0046 CALL R5 1 - 0x80040A00, // 0047 RET 1 R5 - 0x70020003, // 0048 JMP #004D - 0x8C140111, // 0049 GETMET R5 R0 K17 - 0x5C1C0200, // 004A MOVE R7 R1 - 0x7C140400, // 004B CALL R5 2 - 0x80040A00, // 004C RET 1 R5 - 0x88100704, // 004D GETMBR R4 R3 K4 - 0xB8160A00, // 004E GETNGBL R5 K5 - 0x88140B06, // 004F GETMBR R5 R5 K6 - 0x88140B16, // 0050 GETMBR R5 R5 K22 - 0x1C100805, // 0051 EQ R4 R4 R5 - 0x78120005, // 0052 JMPF R4 #0059 - 0x8C100108, // 0053 GETMET R4 R0 K8 - 0x7C100200, // 0054 CALL R4 1 - 0x8C100117, // 0055 GETMET R4 R0 K23 - 0x8818070F, // 0056 GETMBR R6 R3 K15 - 0x7C100400, // 0057 CALL R4 2 - 0x80040800, // 0058 RET 1 R4 - 0x88100704, // 0059 GETMBR R4 R3 K4 - 0xB8160A00, // 005A GETNGBL R5 K5 - 0x88140B06, // 005B GETMBR R5 R5 K6 - 0x88140B18, // 005C GETMBR R5 R5 K24 - 0x1C100805, // 005D EQ R4 R4 R5 - 0x78120004, // 005E JMPF R4 #0064 - 0x60100008, // 005F GETGBL R4 G8 - 0x8C140119, // 0060 GETMET R5 R0 K25 - 0x7C140200, // 0061 CALL R5 1 - 0x7C100200, // 0062 CALL R4 1 - 0x80040800, // 0063 RET 1 R4 - 0x88100704, // 0064 GETMBR R4 R3 K4 - 0xB8160A00, // 0065 GETNGBL R5 K5 - 0x88140B06, // 0066 GETMBR R5 R5 K6 - 0x88140B1A, // 0067 GETMBR R5 R5 K26 - 0x1C100805, // 0068 EQ R4 R4 R5 - 0x78120004, // 0069 JMPF R4 #006F - 0x60100008, // 006A GETGBL R4 G8 - 0x8C14011B, // 006B GETMET R5 R0 K27 - 0x7C140200, // 006C CALL R5 1 - 0x7C100200, // 006D CALL R4 1 - 0x80040800, // 006E RET 1 R4 - 0x88100704, // 006F GETMBR R4 R3 K4 - 0xB8160A00, // 0070 GETNGBL R5 K5 - 0x88140B06, // 0071 GETMBR R5 R5 K6 - 0x88140B1C, // 0072 GETMBR R5 R5 K28 - 0x1C100805, // 0073 EQ R4 R4 R5 - 0x78120003, // 0074 JMPF R4 #0079 - 0x8810070F, // 0075 GETMBR R4 R3 K15 - 0x8C140108, // 0076 GETMET R5 R0 K8 - 0x7C140200, // 0077 CALL R5 1 - 0x80040800, // 0078 RET 1 R4 - 0x88100704, // 0079 GETMBR R4 R3 K4 - 0xB8160A00, // 007A GETNGBL R5 K5 - 0x88140B06, // 007B GETMBR R5 R5 K6 - 0x88140B1D, // 007C GETMBR R5 R5 K29 - 0x1C100805, // 007D EQ R4 R4 R5 - 0x78120007, // 007E JMPF R4 #0087 - 0x8810070F, // 007F GETMBR R4 R3 K15 - 0x8C140108, // 0080 GETMET R5 R0 K8 - 0x7C140200, // 0081 CALL R5 1 - 0x60140018, // 0082 GETGBL R5 G24 - 0x5818001E, // 0083 LDCONST R6 K30 - 0x5C1C0800, // 0084 MOVE R7 R4 - 0x7C140400, // 0085 CALL R5 2 - 0x80040A00, // 0086 RET 1 R5 - 0x88100704, // 0087 GETMBR R4 R3 K4 - 0xB8160A00, // 0088 GETNGBL R5 K5 - 0x88140B06, // 0089 GETMBR R5 R5 K6 - 0x88140B1F, // 008A GETMBR R5 R5 K31 - 0x1C100805, // 008B EQ R4 R4 R5 - 0x78120002, // 008C JMPF R4 #0090 - 0x8C100120, // 008D GETMET R4 R0 K32 - 0x7C100200, // 008E CALL R4 1 - 0x80040800, // 008F RET 1 R4 - 0x88100704, // 0090 GETMBR R4 R3 K4 - 0xB8160A00, // 0091 GETNGBL R5 K5 - 0x88140B06, // 0092 GETMBR R5 R5 K6 - 0x88140B0D, // 0093 GETMBR R5 R5 K13 - 0x1C100805, // 0094 EQ R4 R4 R5 - 0x78120072, // 0095 JMPF R4 #0109 - 0x8810070F, // 0096 GETMBR R4 R3 K15 - 0x8C140108, // 0097 GETMET R5 R0 K8 - 0x7C140200, // 0098 CALL R5 1 - 0x8C140100, // 0099 GETMET R5 R0 K0 - 0x7C140200, // 009A CALL R5 1 - 0x4C180000, // 009B LDNIL R6 - 0x20140A06, // 009C NE R5 R5 R6 - 0x78160045, // 009D JMPF R5 #00E4 - 0x8C140100, // 009E GETMET R5 R0 K0 - 0x7C140200, // 009F CALL R5 1 - 0x88140B04, // 00A0 GETMBR R5 R5 K4 - 0xB81A0A00, // 00A1 GETNGBL R6 K5 - 0x88180D06, // 00A2 GETMBR R6 R6 K6 - 0x88180D21, // 00A3 GETMBR R6 R6 K33 - 0x1C140A06, // 00A4 EQ R5 R5 R6 - 0x7816003D, // 00A5 JMPF R5 #00E4 - 0x8C140108, // 00A6 GETMET R5 R0 K8 - 0x7C140200, // 00A7 CALL R5 1 - 0x8C140122, // 00A8 GETMET R5 R0 K34 - 0x7C140200, // 00A9 CALL R5 1 - 0x1C180923, // 00AA EQ R6 R4 K35 - 0x781A0003, // 00AB JMPF R6 #00B0 - 0x8C180124, // 00AC GETMET R6 R0 K36 - 0x5C200A00, // 00AD MOVE R8 R5 - 0x7C180400, // 00AE CALL R6 2 - 0x80040C00, // 00AF RET 1 R6 - 0x88180125, // 00B0 GETMBR R6 R0 K37 - 0x8C180D26, // 00B1 GETMET R6 R6 K38 - 0x5C200800, // 00B2 MOVE R8 R4 - 0x7C180400, // 00B3 CALL R6 2 - 0x781A0016, // 00B4 JMPF R6 #00CC - 0x88180125, // 00B5 GETMBR R6 R0 K37 - 0x94180C04, // 00B6 GETIDX R6 R6 R4 - 0x601C0004, // 00B7 GETGBL R7 G4 - 0x5C200C00, // 00B8 MOVE R8 R6 - 0x7C1C0200, // 00B9 CALL R7 1 - 0x201C0F27, // 00BA NE R7 R7 K39 - 0x781E0008, // 00BB JMPF R7 #00C5 - 0x601C0005, // 00BC GETGBL R7 G5 - 0x5C200C00, // 00BD MOVE R8 R6 - 0x7C1C0200, // 00BE CALL R7 1 - 0x8C200128, // 00BF GETMET R8 R0 K40 - 0x5C280E00, // 00C0 MOVE R10 R7 - 0x5C2C0A00, // 00C1 MOVE R11 R5 - 0x5C300C00, // 00C2 MOVE R12 R6 - 0x7C200800, // 00C3 CALL R8 4 - 0x70020006, // 00C4 JMP #00CC - 0x8C1C0101, // 00C5 GETMET R7 R0 K1 - 0x60240018, // 00C6 GETGBL R9 G24 - 0x58280029, // 00C7 LDCONST R10 K41 - 0x5C2C0800, // 00C8 MOVE R11 R4 - 0x7C240400, // 00C9 CALL R9 2 - 0x7C1C0400, // 00CA CALL R7 2 - 0x80060600, // 00CB RET 1 K3 - 0xA41A5400, // 00CC IMPORT R6 K42 - 0x581C002B, // 00CD LDCONST R7 K43 - 0x8C200D26, // 00CE GETMET R8 R6 K38 - 0xB82A5800, // 00CF GETNGBL R10 K44 - 0x5C2C0800, // 00D0 MOVE R11 R4 - 0x7C200600, // 00D1 CALL R8 3 - 0x78220005, // 00D2 JMPF R8 #00D9 - 0x60200018, // 00D3 GETGBL R8 G24 - 0x5824002D, // 00D4 LDCONST R9 K45 - 0x5C280800, // 00D5 MOVE R10 R4 - 0x7C200400, // 00D6 CALL R8 2 - 0x5C1C1000, // 00D7 MOVE R7 R8 - 0x70020004, // 00D8 JMP #00DE - 0x60200018, // 00D9 GETGBL R8 G24 - 0x5824002E, // 00DA LDCONST R9 K46 - 0x5C280800, // 00DB MOVE R10 R4 - 0x7C200400, // 00DC CALL R8 2 - 0x5C1C1000, // 00DD MOVE R7 R8 - 0x60200018, // 00DE GETGBL R8 G24 - 0x5824002F, // 00DF LDCONST R9 K47 - 0x5C280E00, // 00E0 MOVE R10 R7 - 0x5C2C0A00, // 00E1 MOVE R11 R5 - 0x7C200600, // 00E2 CALL R8 3 - 0x80041000, // 00E3 RET 1 R8 - 0xA4164E00, // 00E4 IMPORT R5 K39 - 0x8C180B30, // 00E5 GETMET R6 R5 K48 - 0x5C200800, // 00E6 MOVE R8 R4 - 0x58240031, // 00E7 LDCONST R9 K49 - 0x7C180600, // 00E8 CALL R6 3 - 0x781A0004, // 00E9 JMPF R6 #00EF - 0x60180018, // 00EA GETGBL R6 G24 - 0x581C002D, // 00EB LDCONST R7 K45 - 0x5C200800, // 00EC MOVE R8 R4 - 0x7C180400, // 00ED CALL R6 2 - 0x80040C00, // 00EE RET 1 R6 - 0xB81A0A00, // 00EF GETNGBL R6 K5 - 0x8C180D32, // 00F0 GETMET R6 R6 K50 - 0x5C200800, // 00F1 MOVE R8 R4 - 0x7C180400, // 00F2 CALL R6 2 - 0x781A0003, // 00F3 JMPF R6 #00F8 - 0x8C180133, // 00F4 GETMET R6 R0 K51 - 0x5C200800, // 00F5 MOVE R8 R4 - 0x7C180400, // 00F6 CALL R6 2 - 0x80040C00, // 00F7 RET 1 R6 - 0xA41A5400, // 00F8 IMPORT R6 K42 - 0x8C1C0D26, // 00F9 GETMET R7 R6 K38 - 0xB8265800, // 00FA GETNGBL R9 K44 - 0x5C280800, // 00FB MOVE R10 R4 - 0x7C1C0600, // 00FC CALL R7 3 - 0x781E0005, // 00FD JMPF R7 #0104 - 0x601C0018, // 00FE GETGBL R7 G24 - 0x5820002D, // 00FF LDCONST R8 K45 - 0x5C240800, // 0100 MOVE R9 R4 - 0x7C1C0400, // 0101 CALL R7 2 - 0x80040E00, // 0102 RET 1 R7 - 0x70020004, // 0103 JMP #0109 - 0x601C0018, // 0104 GETGBL R7 G24 - 0x5820002E, // 0105 LDCONST R8 K46 - 0x5C240800, // 0106 MOVE R9 R4 - 0x7C1C0400, // 0107 CALL R7 2 - 0x80040E00, // 0108 RET 1 R7 - 0x88100704, // 0109 GETMBR R4 R3 K4 - 0xB8160A00, // 010A GETNGBL R5 K5 - 0x88140B06, // 010B GETMBR R5 R5 K6 - 0x88140B0C, // 010C GETMBR R5 R5 K12 - 0x1C100805, // 010D EQ R4 R4 R5 - 0x78120009, // 010E JMPF R4 #0119 - 0x8810070F, // 010F GETMBR R4 R3 K15 - 0x1C100934, // 0110 EQ R4 R4 K52 - 0x74120002, // 0111 JMPT R4 #0115 - 0x8810070F, // 0112 GETMBR R4 R3 K15 - 0x1C100935, // 0113 EQ R4 R4 K53 - 0x78120003, // 0114 JMPF R4 #0119 - 0x8810070F, // 0115 GETMBR R4 R3 K15 - 0x8C140108, // 0116 GETMET R5 R0 K8 - 0x7C140200, // 0117 CALL R5 1 - 0x80040800, // 0118 RET 1 R4 - 0x88100704, // 0119 GETMBR R4 R3 K4 - 0xB8160A00, // 011A GETNGBL R5 K5 - 0x88140B06, // 011B GETMBR R5 R5 K6 - 0x88140B0C, // 011C GETMBR R5 R5 K12 - 0x1C100805, // 011D EQ R4 R4 R5 - 0x78120007, // 011E JMPF R4 #0127 - 0x8810070F, // 011F GETMBR R4 R3 K15 - 0x8C140108, // 0120 GETMET R5 R0 K8 - 0x7C140200, // 0121 CALL R5 1 - 0x60140018, // 0122 GETGBL R5 G24 - 0x5818002D, // 0123 LDCONST R6 K45 - 0x5C1C0800, // 0124 MOVE R7 R4 - 0x7C140400, // 0125 CALL R5 2 - 0x80040A00, // 0126 RET 1 R5 - 0x8C100101, // 0127 GETMET R4 R0 K1 - 0x60180018, // 0128 GETGBL R6 G24 - 0x581C0036, // 0129 LDCONST R7 K54 - 0x8820070F, // 012A GETMBR R8 R3 K15 - 0x7C180400, // 012B CALL R6 2 - 0x7C100400, // 012C CALL R4 2 - 0x8C100108, // 012D GETMET R4 R0 K8 - 0x7C100200, // 012E CALL R4 1 - 0x80060600, // 012F RET 1 K3 + 0x7001FFF3, // 001B JMP #0010 + 0x58040008, // 001C LDCONST R1 K8 + 0xAC040200, // 001D CATCH R1 1 0 + 0xB0080000, // 001E RAISE 2 R0 R0 + 0x6004000C, // 001F GETGBL R1 G12 + 0x88080109, // 0020 GETMBR R2 R0 K9 + 0x7C040200, // 0021 CALL R1 1 + 0x1C040303, // 0022 EQ R1 R1 K3 + 0x78060002, // 0023 JMPF R1 #0027 + 0x8C04010A, // 0024 GETMET R1 R0 K10 + 0x7C040200, // 0025 CALL R1 1 + 0x70020000, // 0026 JMP #0028 + 0x4C040000, // 0027 LDNIL R1 + 0xA8040001, // 0028 EXBLK 1 1 + 0x80040200, // 0029 RET 1 R1 + 0xA8040001, // 002A EXBLK 1 1 + 0x7002000B, // 002B JMP #0038 + 0xAC040002, // 002C CATCH R1 0 2 + 0x70020008, // 002D JMP #0037 + 0x8C0C010B, // 002E GETMET R3 R0 K11 + 0x60140018, // 002F GETGBL R5 G24 + 0x5818000C, // 0030 LDCONST R6 K12 + 0x5C1C0400, // 0031 MOVE R7 R2 + 0x7C140400, // 0032 CALL R5 2 + 0x7C0C0400, // 0033 CALL R3 2 + 0x4C0C0000, // 0034 LDNIL R3 + 0x80040600, // 0035 RET 1 R3 + 0x70020000, // 0036 JMP #0038 + 0xB0080000, // 0037 RAISE 2 R0 R0 + 0x80000000, // 0038 RET 0 }) ) ); @@ -3405,233 +8404,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name /******************************************************************** -** Solidified function: process_time_value +** Solidified function: generate_engine_start ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* name */ +be_local_closure(class_SimpleDSLTranspiler_generate_engine_start, /* name */ be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(TIME), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(convert_time_to_ms), - /* K8 */ be_nested_str_weak(NUMBER), - /* K9 */ be_nested_str_weak(IDENTIFIER), - /* K10 */ be_nested_str_weak(_validate_object_reference), - /* K11 */ be_nested_str_weak(duration), - /* K12 */ be_nested_str_weak(process_primary_expression), - /* K13 */ be_nested_str_weak(time), - /* K14 */ be_nested_str_weak(error), - /* K15 */ be_nested_str_weak(Expected_X20time_X20value), - }), - be_str_weak(process_time_value), - &be_const_str_solidified, - ( &(const binstruction[66]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000D, // 0004 JMPF R2 #0013 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0007, // 000A JMPF R2 #0013 - 0x88080305, // 000B GETMBR R2 R1 K5 - 0x8C0C0106, // 000C GETMET R3 R0 K6 - 0x7C0C0200, // 000D CALL R3 1 - 0x8C0C0107, // 000E GETMET R3 R0 K7 - 0x5C140400, // 000F MOVE R5 R2 - 0x7C0C0400, // 0010 CALL R3 2 - 0x80040600, // 0011 RET 1 R3 - 0x7002002D, // 0012 JMP #0041 - 0x4C080000, // 0013 LDNIL R2 - 0x20080202, // 0014 NE R2 R1 R2 - 0x780A0011, // 0015 JMPF R2 #0028 - 0x88080301, // 0016 GETMBR R2 R1 K1 - 0xB80E0400, // 0017 GETNGBL R3 K2 - 0x880C0703, // 0018 GETMBR R3 R3 K3 - 0x880C0708, // 0019 GETMBR R3 R3 K8 - 0x1C080403, // 001A EQ R2 R2 R3 - 0x780A000B, // 001B JMPF R2 #0028 - 0x88080305, // 001C GETMBR R2 R1 K5 - 0x8C0C0106, // 001D GETMET R3 R0 K6 - 0x7C0C0200, // 001E CALL R3 1 - 0x600C0009, // 001F GETGBL R3 G9 - 0x6010000A, // 0020 GETGBL R4 G10 - 0x5C140400, // 0021 MOVE R5 R2 - 0x7C100200, // 0022 CALL R4 1 - 0x7C0C0200, // 0023 CALL R3 1 - 0x541203E7, // 0024 LDINT R4 1000 - 0x080C0604, // 0025 MUL R3 R3 R4 - 0x80040600, // 0026 RET 1 R3 - 0x70020018, // 0027 JMP #0041 - 0x4C080000, // 0028 LDNIL R2 - 0x20080202, // 0029 NE R2 R1 R2 - 0x780A0010, // 002A JMPF R2 #003C - 0x88080301, // 002B GETMBR R2 R1 K1 - 0xB80E0400, // 002C GETNGBL R3 K2 - 0x880C0703, // 002D GETMBR R3 R3 K3 - 0x880C0709, // 002E GETMBR R3 R3 K9 - 0x1C080403, // 002F EQ R2 R2 R3 - 0x780A000A, // 0030 JMPF R2 #003C - 0x88080305, // 0031 GETMBR R2 R1 K5 - 0x8C0C010A, // 0032 GETMET R3 R0 K10 - 0x5C140400, // 0033 MOVE R5 R2 - 0x5818000B, // 0034 LDCONST R6 K11 - 0x7C0C0600, // 0035 CALL R3 3 - 0x8C0C010C, // 0036 GETMET R3 R0 K12 - 0x5814000D, // 0037 LDCONST R5 K13 - 0x50180200, // 0038 LDBOOL R6 1 0 - 0x7C0C0600, // 0039 CALL R3 3 - 0x80040600, // 003A RET 1 R3 - 0x70020004, // 003B JMP #0041 - 0x8C08010E, // 003C GETMET R2 R0 K14 - 0x5810000F, // 003D LDCONST R4 K15 - 0x7C080400, // 003E CALL R2 2 - 0x540A03E7, // 003F LDINT R2 1000 - 0x80040400, // 0040 RET 1 R2 - 0x80000000, // 0041 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_function_arguments_for_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expression, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[20]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_paren), - /* K3 */ be_nested_str_weak(skip_whitespace), - /* K4 */ be_nested_str_weak(process_expression_argument), - /* K5 */ be_nested_str_weak(push), - /* K6 */ be_nested_str_weak(current), - /* K7 */ be_nested_str_weak(type), - /* K8 */ be_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(COMMA), - /* K11 */ be_nested_str_weak(next), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K14 */ be_nested_str_weak(expect_right_paren), - /* K15 */ be_nested_str_weak(), - /* K16 */ be_const_int(0), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(_X2C_X20), - /* K19 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(process_function_arguments_for_expression), - &be_const_str_solidified, - ( &(const binstruction[72]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x60040012, // 0002 GETGBL R1 G18 - 0x7C040000, // 0003 CALL R1 0 - 0x8C080101, // 0004 GETMET R2 R0 K1 - 0x7C080200, // 0005 CALL R2 1 - 0x740A0029, // 0006 JMPT R2 #0031 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A0026, // 0009 JMPT R2 #0031 - 0x8C080103, // 000A GETMET R2 R0 K3 - 0x7C080200, // 000B CALL R2 1 - 0x8C080102, // 000C GETMET R2 R0 K2 - 0x7C080200, // 000D CALL R2 1 - 0x780A0000, // 000E JMPF R2 #0010 - 0x70020020, // 000F JMP #0031 - 0x8C080104, // 0010 GETMET R2 R0 K4 - 0x7C080200, // 0011 CALL R2 1 - 0x8C0C0305, // 0012 GETMET R3 R1 K5 - 0x5C140400, // 0013 MOVE R5 R2 - 0x7C0C0400, // 0014 CALL R3 2 - 0x8C0C0103, // 0015 GETMET R3 R0 K3 - 0x7C0C0200, // 0016 CALL R3 1 - 0x8C0C0106, // 0017 GETMET R3 R0 K6 - 0x7C0C0200, // 0018 CALL R3 1 - 0x4C100000, // 0019 LDNIL R4 - 0x200C0604, // 001A NE R3 R3 R4 - 0x780E000C, // 001B JMPF R3 #0029 - 0x8C0C0106, // 001C GETMET R3 R0 K6 - 0x7C0C0200, // 001D CALL R3 1 - 0x880C0707, // 001E GETMBR R3 R3 K7 - 0xB8121000, // 001F GETNGBL R4 K8 - 0x88100909, // 0020 GETMBR R4 R4 K9 - 0x8810090A, // 0021 GETMBR R4 R4 K10 - 0x1C0C0604, // 0022 EQ R3 R3 R4 - 0x780E0004, // 0023 JMPF R3 #0029 - 0x8C0C010B, // 0024 GETMET R3 R0 K11 - 0x7C0C0200, // 0025 CALL R3 1 - 0x8C0C0103, // 0026 GETMET R3 R0 K3 - 0x7C0C0200, // 0027 CALL R3 1 - 0x70020006, // 0028 JMP #0030 - 0x8C0C0102, // 0029 GETMET R3 R0 K2 - 0x7C0C0200, // 002A CALL R3 1 - 0x740E0003, // 002B JMPT R3 #0030 - 0x8C0C010C, // 002C GETMET R3 R0 K12 - 0x5814000D, // 002D LDCONST R5 K13 - 0x7C0C0400, // 002E CALL R3 2 - 0x70020000, // 002F JMP #0031 - 0x7001FFD2, // 0030 JMP #0004 - 0x8C08010E, // 0031 GETMET R2 R0 K14 - 0x7C080200, // 0032 CALL R2 1 - 0x5808000F, // 0033 LDCONST R2 K15 - 0x600C0010, // 0034 GETGBL R3 G16 - 0x6010000C, // 0035 GETGBL R4 G12 - 0x5C140200, // 0036 MOVE R5 R1 - 0x7C100200, // 0037 CALL R4 1 - 0x04100911, // 0038 SUB R4 R4 K17 - 0x40122004, // 0039 CONNECT R4 K16 R4 - 0x7C0C0200, // 003A CALL R3 1 - 0xA8020007, // 003B EXBLK 0 #0044 - 0x5C100600, // 003C MOVE R4 R3 - 0x7C100000, // 003D CALL R4 0 - 0x24140910, // 003E GT R5 R4 K16 - 0x78160000, // 003F JMPF R5 #0041 - 0x00080512, // 0040 ADD R2 R2 K18 - 0x94140204, // 0041 GETIDX R5 R1 R4 - 0x00080405, // 0042 ADD R2 R2 R5 - 0x7001FFF7, // 0043 JMP #003C - 0x580C0013, // 0044 LDCONST R3 K19 - 0xAC0C0200, // 0045 CATCH R3 1 0 - 0xB0080000, // 0046 RAISE 2 R0 R0 - 0x80040400, // 0047 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_run -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ - be_nested_proto( - 6, /* nstack */ + 11, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -3640,86 +8417,50 @@ be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(_validate_object_reference), - /* K3 */ be_nested_str_weak(run), - /* K4 */ be_nested_str_weak(collect_inline_comment), - /* K5 */ be_nested_str_weak(run_statements), - /* K6 */ be_nested_str_weak(push), - /* K7 */ be_nested_str_weak(name), - /* K8 */ be_nested_str_weak(comment), + /* K0 */ be_nested_str_weak(run_statements), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(has_template_calls), + /* K3 */ be_nested_str_weak(name), + /* K4 */ be_nested_str_weak(comment), + /* K5 */ be_nested_str_weak(add), + /* K6 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), + /* K7 */ be_nested_str_weak(stop_iteration), + /* K8 */ be_nested_str_weak(engine_X2Estart_X28_X29), }), - be_str_weak(process_run), + be_str_weak(generate_engine_start), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x8C080104, // 0008 GETMET R2 R0 K4 - 0x7C080200, // 0009 CALL R2 1 - 0x880C0105, // 000A GETMBR R3 R0 K5 - 0x8C0C0706, // 000B GETMET R3 R3 K6 - 0x60140013, // 000C GETGBL R5 G19 - 0x7C140000, // 000D CALL R5 0 - 0x98160E01, // 000E SETIDX R5 K7 R1 - 0x98161002, // 000F SETIDX R5 K8 R2 - 0x7C0C0400, // 0010 CALL R3 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: error -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_error, /* name */ - be_nested_proto( - 9, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(line), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(errors), - /* K4 */ be_nested_str_weak(push), - /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), - }), - be_str_weak(error), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080100, // 0005 GETMET R2 R0 K0 - 0x7C080200, // 0006 CALL R2 1 - 0x88080501, // 0007 GETMBR R2 R2 K1 - 0x70020000, // 0008 JMP #000A - 0x58080002, // 0009 LDCONST R2 K2 - 0x880C0103, // 000A GETMBR R3 R0 K3 - 0x8C0C0704, // 000B GETMET R3 R3 K4 - 0x60140018, // 000C GETGBL R5 G24 - 0x58180005, // 000D LDCONST R6 K5 - 0x5C1C0400, // 000E MOVE R7 R2 - 0x5C200200, // 000F MOVE R8 R1 - 0x7C140600, // 0010 CALL R5 3 - 0x7C0C0400, // 0011 CALL R3 2 - 0x80000000, // 0012 RET 0 + ( &(const binstruction[31]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x7C040200, // 0002 CALL R1 1 + 0x1C040301, // 0003 EQ R1 R1 K1 + 0x78060002, // 0004 JMPF R1 #0008 + 0x88040102, // 0005 GETMBR R1 R0 K2 + 0x74060000, // 0006 JMPT R1 #0008 + 0x80000200, // 0007 RET 0 + 0x60040010, // 0008 GETGBL R1 G16 + 0x88080100, // 0009 GETMBR R2 R0 K0 + 0x7C040200, // 000A CALL R1 1 + 0xA802000B, // 000B EXBLK 0 #0018 + 0x5C080200, // 000C MOVE R2 R1 + 0x7C080000, // 000D CALL R2 0 + 0x940C0503, // 000E GETIDX R3 R2 K3 + 0x94100504, // 000F GETIDX R4 R2 K4 + 0x8C140105, // 0010 GETMET R5 R0 K5 + 0x601C0018, // 0011 GETGBL R7 G24 + 0x58200006, // 0012 LDCONST R8 K6 + 0x5C240600, // 0013 MOVE R9 R3 + 0x5C280800, // 0014 MOVE R10 R4 + 0x7C1C0600, // 0015 CALL R7 3 + 0x7C140400, // 0016 CALL R5 2 + 0x7001FFF3, // 0017 JMP #000C + 0x58040007, // 0018 LDCONST R1 K7 + 0xAC040200, // 0019 CATCH R1 1 0 + 0xB0080000, // 001A RAISE 2 R0 R0 + 0x8C040105, // 001B GETMET R1 R0 K5 + 0x580C0008, // 001C LDCONST R3 K8 + 0x7C040400, // 001D CALL R1 2 + 0x80000000, // 001E RET 0 }) ) ); @@ -3777,61 +8518,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_dot, /* name */ /******************************************************************** -** Solidified function: expect_colon +** Solidified function: is_anonymous_function ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_colon, /* name */ +be_local_closure(class_SimpleDSLTranspiler_is_anonymous_function, /* name */ be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(COLON), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), - }), - be_str_weak(expect_colon), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_named_color_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ - be_nested_proto( - 6, /* nstack */ + 7, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -3840,759 +8531,31 @@ be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K2 */ be_nested_str_weak(named_colors), - /* K3 */ be_nested_str_weak(find), - /* K4 */ be_nested_str_weak(0xFFFFFFFF), + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(_X28def_X20), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(_X29_X28engine_X29), }), - be_str_weak(get_named_color_value), + be_str_weak(is_anonymous_function), &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0xB80A0000, // 0000 GETNGBL R2 K0 - 0x88080501, // 0001 GETMBR R2 R2 K1 - 0x88080502, // 0002 GETMBR R2 R2 K2 - 0x8C080503, // 0003 GETMET R2 R2 K3 - 0x5C100200, // 0004 MOVE R4 R1 - 0x58140004, // 0005 LDCONST R5 K4 - 0x7C080600, // 0006 CALL R2 3 - 0x80040400, // 0007 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_whitespace_including_newlines -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(COMMENT), - /* K6 */ be_nested_str_weak(NEWLINE), - /* K7 */ be_nested_str_weak(next), - }), - be_str_weak(skip_whitespace_including_newlines), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060015, // 0002 JMPT R1 #0019 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000E, // 0007 JMPF R2 #0017 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0xB80E0600, // 0009 GETNGBL R3 K3 - 0x880C0704, // 000A GETMBR R3 R3 K4 - 0x880C0705, // 000B GETMBR R3 R3 K5 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x740A0005, // 000D JMPT R2 #0014 - 0x88080302, // 000E GETMBR R2 R1 K2 - 0xB80E0600, // 000F GETNGBL R3 K3 - 0x880C0704, // 0010 GETMBR R3 R3 K4 - 0x880C0706, // 0011 GETMBR R3 R3 K6 - 0x1C080403, // 0012 EQ R2 R2 R3 - 0x780A0002, // 0013 JMPF R2 #0017 - 0x8C080107, // 0014 GETMET R2 R0 K7 - 0x7C080200, // 0015 CALL R2 1 - 0x70020000, // 0016 JMP #0018 - 0x70020000, // 0017 JMP #0019 - 0x7001FFE6, // 0018 JMP #0000 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: join_output -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_join_output, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(), - /* K1 */ be_nested_str_weak(output), - /* K2 */ be_nested_str_weak(_X0A), - /* K3 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(join_output), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0x60080010, // 0001 GETGBL R2 G16 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0xA8020004, // 0004 EXBLK 0 #000A - 0x5C0C0400, // 0005 MOVE R3 R2 - 0x7C0C0000, // 0006 CALL R3 0 - 0x00100702, // 0007 ADD R4 R3 K2 - 0x00040204, // 0008 ADD R1 R1 R4 - 0x7001FFFA, // 0009 JMP #0005 - 0x58080003, // 000A LDCONST R2 K3 - 0xAC080200, // 000B CATCH R2 1 0 - 0xB0080000, // 000C RAISE 2 R0 R0 - 0x80040200, // 000D RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_multiplicative_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(process_unary_expression), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(animation_dsl), - /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(MULTIPLY), - /* K7 */ be_nested_str_weak(DIVIDE), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - }), - be_str_weak(process_multiplicative_expression), - &be_const_str_solidified, - ( &(const binstruction[42]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C0C0600, // 0003 CALL R3 3 - 0x8C100101, // 0004 GETMET R4 R0 K1 - 0x7C100200, // 0005 CALL R4 1 - 0x74120021, // 0006 JMPT R4 #0029 - 0x8C100102, // 0007 GETMET R4 R0 K2 - 0x7C100200, // 0008 CALL R4 1 - 0x4C140000, // 0009 LDNIL R5 - 0x20140805, // 000A NE R5 R4 R5 - 0x7816001A, // 000B JMPF R5 #0027 - 0x88140903, // 000C GETMBR R5 R4 K3 - 0xB81A0800, // 000D GETNGBL R6 K4 - 0x88180D05, // 000E GETMBR R6 R6 K5 - 0x88180D06, // 000F GETMBR R6 R6 K6 - 0x1C140A06, // 0010 EQ R5 R5 R6 - 0x74160005, // 0011 JMPT R5 #0018 - 0x88140903, // 0012 GETMBR R5 R4 K3 - 0xB81A0800, // 0013 GETNGBL R6 K4 - 0x88180D05, // 0014 GETMBR R6 R6 K5 - 0x88180D07, // 0015 GETMBR R6 R6 K7 - 0x1C140A06, // 0016 EQ R5 R5 R6 - 0x7816000E, // 0017 JMPF R5 #0027 - 0x88140908, // 0018 GETMBR R5 R4 K8 - 0x8C180109, // 0019 GETMET R6 R0 K9 - 0x7C180200, // 001A CALL R6 1 - 0x8C180100, // 001B GETMET R6 R0 K0 - 0x5C200200, // 001C MOVE R8 R1 - 0x50240000, // 001D LDBOOL R9 0 0 - 0x7C180600, // 001E CALL R6 3 - 0x601C0018, // 001F GETGBL R7 G24 - 0x5820000A, // 0020 LDCONST R8 K10 - 0x5C240600, // 0021 MOVE R9 R3 - 0x5C280A00, // 0022 MOVE R10 R5 - 0x5C2C0C00, // 0023 MOVE R11 R6 - 0x7C1C0800, // 0024 CALL R7 4 - 0x5C0C0E00, // 0025 MOVE R3 R7 - 0x70020000, // 0026 JMP #0028 - 0x70020000, // 0027 JMP #0029 - 0x7001FFDA, // 0028 JMP #0004 - 0x80040600, // 0029 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACE), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), - }), - be_str_weak(expect_right_brace), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_primary_expression_raw -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_primary_expression_raw, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[50]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(LEFT_PAREN), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_additive_expression_raw), - /* K10 */ be_nested_str_weak(expect_right_paren), - /* K11 */ be_nested_str_weak(_X28_X25s_X29), - /* K12 */ be_nested_str_weak(KEYWORD), - /* K13 */ be_nested_str_weak(IDENTIFIER), - /* K14 */ be_nested_str_weak(peek), - /* K15 */ be_nested_str_weak(value), - /* K16 */ be_nested_str_weak(is_math_method), - /* K17 */ be_nested_str_weak(process_function_arguments_for_expression), - /* K18 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), - /* K19 */ be_nested_str_weak(template_definitions), - /* K20 */ be_nested_str_weak(contains), - /* K21 */ be_nested_str_weak(), - /* K22 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), - /* K23 */ be_nested_str_weak(self_X2Eengine), - /* K24 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K25 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20not_X20supported_X20in_X20expression_X20context), - /* K26 */ be_nested_str_weak(COLOR), - /* K27 */ be_nested_str_weak(convert_color), - /* K28 */ be_nested_str_weak(TIME), - /* K29 */ be_nested_str_weak(process_time_value), - /* K30 */ be_nested_str_weak(PERCENTAGE), - /* K31 */ be_nested_str_weak(process_percentage_value), - /* K32 */ be_nested_str_weak(NUMBER), - /* K33 */ be_nested_str_weak(STRING), - /* K34 */ be_nested_str_weak(_X22_X25s_X22), - /* K35 */ be_nested_str_weak(DOT), - /* K36 */ be_nested_str_weak(expect_identifier), - /* K37 */ be_nested_str_weak(user), - /* K38 */ be_nested_str_weak(_process_user_function_call), - /* K39 */ be_nested_str_weak(symbol_table), - /* K40 */ be_nested_str_weak(string), - /* K41 */ be_nested_str_weak(_validate_single_parameter), - /* K42 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20references_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), - /* K43 */ be_nested_str_weak(introspect), - /* K44 */ be_nested_str_weak(animation), - /* K45 */ be_nested_str_weak(animation_X2E_X25s), - /* K46 */ be_nested_str_weak(_X25s_), - /* K47 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), - /* K48 */ be_nested_str_weak(self_X2Eresolve_X28_X25s__X29), - /* K49 */ be_nested_str_weak(Unexpected_X20token_X20in_X20expression_X3A_X20_X25s), - }), - be_str_weak(process_primary_expression_raw), - &be_const_str_solidified, - ( &(const binstruction[248]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080101, // 0005 GETMET R2 R0 K1 - 0x58100002, // 0006 LDCONST R4 K2 - 0x7C080400, // 0007 CALL R2 2 - 0x80060600, // 0008 RET 1 K3 - 0x88080304, // 0009 GETMBR R2 R1 K4 - 0xB80E0A00, // 000A GETNGBL R3 K5 - 0x880C0706, // 000B GETMBR R3 R3 K6 - 0x880C0707, // 000C GETMBR R3 R3 K7 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A000A, // 000E JMPF R2 #001A - 0x8C080108, // 000F GETMET R2 R0 K8 - 0x7C080200, // 0010 CALL R2 1 - 0x8C080109, // 0011 GETMET R2 R0 K9 - 0x7C080200, // 0012 CALL R2 1 - 0x8C0C010A, // 0013 GETMET R3 R0 K10 - 0x7C0C0200, // 0014 CALL R3 1 - 0x600C0018, // 0015 GETGBL R3 G24 - 0x5810000B, // 0016 LDCONST R4 K11 - 0x5C140400, // 0017 MOVE R5 R2 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80040600, // 0019 RET 1 R3 - 0x88080304, // 001A GETMBR R2 R1 K4 - 0xB80E0A00, // 001B GETNGBL R3 K5 - 0x880C0706, // 001C GETMBR R3 R3 K6 - 0x880C070C, // 001D GETMBR R3 R3 K12 - 0x1C080403, // 001E EQ R2 R2 R3 - 0x740A0005, // 001F JMPT R2 #0026 - 0x88080304, // 0020 GETMBR R2 R1 K4 - 0xB80E0A00, // 0021 GETNGBL R3 K5 - 0x880C0706, // 0022 GETMBR R3 R3 K6 - 0x880C070D, // 0023 GETMBR R3 R3 K13 - 0x1C080403, // 0024 EQ R2 R2 R3 - 0x780A0037, // 0025 JMPF R2 #005E - 0x8C08010E, // 0026 GETMET R2 R0 K14 - 0x7C080200, // 0027 CALL R2 1 - 0x4C0C0000, // 0028 LDNIL R3 - 0x20080403, // 0029 NE R2 R2 R3 - 0x780A0032, // 002A JMPF R2 #005E - 0x8C08010E, // 002B GETMET R2 R0 K14 - 0x7C080200, // 002C CALL R2 1 - 0x88080504, // 002D GETMBR R2 R2 K4 - 0xB80E0A00, // 002E GETNGBL R3 K5 - 0x880C0706, // 002F GETMBR R3 R3 K6 - 0x880C0707, // 0030 GETMBR R3 R3 K7 - 0x1C080403, // 0031 EQ R2 R2 R3 - 0x780A002A, // 0032 JMPF R2 #005E - 0x8808030F, // 0033 GETMBR R2 R1 K15 - 0x8C0C0108, // 0034 GETMET R3 R0 K8 - 0x7C0C0200, // 0035 CALL R3 1 - 0x8C0C0110, // 0036 GETMET R3 R0 K16 - 0x5C140400, // 0037 MOVE R5 R2 - 0x7C0C0400, // 0038 CALL R3 2 - 0x780E0007, // 0039 JMPF R3 #0042 - 0x8C0C0111, // 003A GETMET R3 R0 K17 - 0x7C0C0200, // 003B CALL R3 1 - 0x60100018, // 003C GETGBL R4 G24 - 0x58140012, // 003D LDCONST R5 K18 - 0x5C180400, // 003E MOVE R6 R2 - 0x5C1C0600, // 003F MOVE R7 R3 - 0x7C100600, // 0040 CALL R4 3 - 0x80040800, // 0041 RET 1 R4 - 0x880C0113, // 0042 GETMBR R3 R0 K19 - 0x8C0C0714, // 0043 GETMET R3 R3 K20 - 0x5C140400, // 0044 MOVE R5 R2 - 0x7C0C0400, // 0045 CALL R3 2 - 0x780E000F, // 0046 JMPF R3 #0057 - 0x8C0C0111, // 0047 GETMET R3 R0 K17 - 0x7C0C0200, // 0048 CALL R3 1 - 0x20100715, // 0049 NE R4 R3 K21 - 0x78120004, // 004A JMPF R4 #0050 - 0x60100018, // 004B GETGBL R4 G24 - 0x58140016, // 004C LDCONST R5 K22 - 0x5C180600, // 004D MOVE R6 R3 - 0x7C100400, // 004E CALL R4 2 - 0x70020000, // 004F JMP #0051 - 0x58100017, // 0050 LDCONST R4 K23 - 0x60140018, // 0051 GETGBL R5 G24 - 0x58180018, // 0052 LDCONST R6 K24 - 0x5C1C0400, // 0053 MOVE R7 R2 - 0x5C200800, // 0054 MOVE R8 R4 - 0x7C140600, // 0055 CALL R5 3 - 0x80040A00, // 0056 RET 1 R5 - 0x8C0C0101, // 0057 GETMET R3 R0 K1 - 0x60140018, // 0058 GETGBL R5 G24 - 0x58180019, // 0059 LDCONST R6 K25 - 0x5C1C0400, // 005A MOVE R7 R2 - 0x7C140400, // 005B CALL R5 2 - 0x7C0C0400, // 005C CALL R3 2 - 0x80060600, // 005D RET 1 K3 - 0x88080304, // 005E GETMBR R2 R1 K4 - 0xB80E0A00, // 005F GETNGBL R3 K5 - 0x880C0706, // 0060 GETMBR R3 R3 K6 - 0x880C071A, // 0061 GETMBR R3 R3 K26 - 0x1C080403, // 0062 EQ R2 R2 R3 - 0x780A0005, // 0063 JMPF R2 #006A - 0x8C080108, // 0064 GETMET R2 R0 K8 - 0x7C080200, // 0065 CALL R2 1 - 0x8C08011B, // 0066 GETMET R2 R0 K27 - 0x8810030F, // 0067 GETMBR R4 R1 K15 - 0x7C080400, // 0068 CALL R2 2 - 0x80040400, // 0069 RET 1 R2 - 0x88080304, // 006A GETMBR R2 R1 K4 - 0xB80E0A00, // 006B GETNGBL R3 K5 - 0x880C0706, // 006C GETMBR R3 R3 K6 - 0x880C071C, // 006D GETMBR R3 R3 K28 - 0x1C080403, // 006E EQ R2 R2 R3 - 0x780A0004, // 006F JMPF R2 #0075 - 0x60080008, // 0070 GETGBL R2 G8 - 0x8C0C011D, // 0071 GETMET R3 R0 K29 - 0x7C0C0200, // 0072 CALL R3 1 - 0x7C080200, // 0073 CALL R2 1 - 0x80040400, // 0074 RET 1 R2 - 0x88080304, // 0075 GETMBR R2 R1 K4 - 0xB80E0A00, // 0076 GETNGBL R3 K5 - 0x880C0706, // 0077 GETMBR R3 R3 K6 - 0x880C071E, // 0078 GETMBR R3 R3 K30 - 0x1C080403, // 0079 EQ R2 R2 R3 - 0x780A0004, // 007A JMPF R2 #0080 - 0x60080008, // 007B GETGBL R2 G8 - 0x8C0C011F, // 007C GETMET R3 R0 K31 - 0x7C0C0200, // 007D CALL R3 1 - 0x7C080200, // 007E CALL R2 1 - 0x80040400, // 007F RET 1 R2 - 0x88080304, // 0080 GETMBR R2 R1 K4 - 0xB80E0A00, // 0081 GETNGBL R3 K5 - 0x880C0706, // 0082 GETMBR R3 R3 K6 - 0x880C0720, // 0083 GETMBR R3 R3 K32 - 0x1C080403, // 0084 EQ R2 R2 R3 - 0x780A0003, // 0085 JMPF R2 #008A - 0x8808030F, // 0086 GETMBR R2 R1 K15 - 0x8C0C0108, // 0087 GETMET R3 R0 K8 - 0x7C0C0200, // 0088 CALL R3 1 - 0x80040400, // 0089 RET 1 R2 - 0x88080304, // 008A GETMBR R2 R1 K4 - 0xB80E0A00, // 008B GETNGBL R3 K5 - 0x880C0706, // 008C GETMBR R3 R3 K6 - 0x880C0721, // 008D GETMBR R3 R3 K33 - 0x1C080403, // 008E EQ R2 R2 R3 - 0x780A0007, // 008F JMPF R2 #0098 - 0x8808030F, // 0090 GETMBR R2 R1 K15 - 0x8C0C0108, // 0091 GETMET R3 R0 K8 - 0x7C0C0200, // 0092 CALL R3 1 - 0x600C0018, // 0093 GETGBL R3 G24 - 0x58100022, // 0094 LDCONST R4 K34 - 0x5C140400, // 0095 MOVE R5 R2 - 0x7C0C0400, // 0096 CALL R3 2 - 0x80040600, // 0097 RET 1 R3 - 0x88080304, // 0098 GETMBR R2 R1 K4 - 0xB80E0A00, // 0099 GETNGBL R3 K5 - 0x880C0706, // 009A GETMBR R3 R3 K6 - 0x880C070D, // 009B GETMBR R3 R3 K13 - 0x1C080403, // 009C EQ R2 R2 R3 - 0x780A0052, // 009D JMPF R2 #00F1 - 0x8808030F, // 009E GETMBR R2 R1 K15 - 0x8C0C0108, // 009F GETMET R3 R0 K8 - 0x7C0C0200, // 00A0 CALL R3 1 - 0x8C0C0100, // 00A1 GETMET R3 R0 K0 - 0x7C0C0200, // 00A2 CALL R3 1 - 0x4C100000, // 00A3 LDNIL R4 - 0x200C0604, // 00A4 NE R3 R3 R4 - 0x780E0045, // 00A5 JMPF R3 #00EC - 0x8C0C0100, // 00A6 GETMET R3 R0 K0 - 0x7C0C0200, // 00A7 CALL R3 1 - 0x880C0704, // 00A8 GETMBR R3 R3 K4 - 0xB8120A00, // 00A9 GETNGBL R4 K5 - 0x88100906, // 00AA GETMBR R4 R4 K6 - 0x88100923, // 00AB GETMBR R4 R4 K35 - 0x1C0C0604, // 00AC EQ R3 R3 R4 - 0x780E003D, // 00AD JMPF R3 #00EC - 0x8C0C0108, // 00AE GETMET R3 R0 K8 - 0x7C0C0200, // 00AF CALL R3 1 - 0x8C0C0124, // 00B0 GETMET R3 R0 K36 - 0x7C0C0200, // 00B1 CALL R3 1 - 0x1C100525, // 00B2 EQ R4 R2 K37 - 0x78120003, // 00B3 JMPF R4 #00B8 - 0x8C100126, // 00B4 GETMET R4 R0 K38 - 0x5C180600, // 00B5 MOVE R6 R3 - 0x7C100400, // 00B6 CALL R4 2 - 0x80040800, // 00B7 RET 1 R4 - 0x88100127, // 00B8 GETMBR R4 R0 K39 - 0x8C100914, // 00B9 GETMET R4 R4 K20 - 0x5C180400, // 00BA MOVE R6 R2 - 0x7C100400, // 00BB CALL R4 2 - 0x78120016, // 00BC JMPF R4 #00D4 - 0x88100127, // 00BD GETMBR R4 R0 K39 - 0x94100802, // 00BE GETIDX R4 R4 R2 - 0x60140004, // 00BF GETGBL R5 G4 - 0x5C180800, // 00C0 MOVE R6 R4 - 0x7C140200, // 00C1 CALL R5 1 - 0x20140B28, // 00C2 NE R5 R5 K40 - 0x78160008, // 00C3 JMPF R5 #00CD - 0x60140005, // 00C4 GETGBL R5 G5 - 0x5C180800, // 00C5 MOVE R6 R4 - 0x7C140200, // 00C6 CALL R5 1 - 0x8C180129, // 00C7 GETMET R6 R0 K41 - 0x5C200A00, // 00C8 MOVE R8 R5 - 0x5C240600, // 00C9 MOVE R9 R3 - 0x5C280800, // 00CA MOVE R10 R4 - 0x7C180800, // 00CB CALL R6 4 - 0x70020006, // 00CC JMP #00D4 - 0x8C140101, // 00CD GETMET R5 R0 K1 - 0x601C0018, // 00CE GETGBL R7 G24 - 0x5820002A, // 00CF LDCONST R8 K42 - 0x5C240400, // 00D0 MOVE R9 R2 - 0x7C1C0400, // 00D1 CALL R7 2 - 0x7C140400, // 00D2 CALL R5 2 - 0x80060600, // 00D3 RET 1 K3 - 0xA4125600, // 00D4 IMPORT R4 K43 - 0x58140015, // 00D5 LDCONST R5 K21 - 0x8C180914, // 00D6 GETMET R6 R4 K20 - 0xB8225800, // 00D7 GETNGBL R8 K44 - 0x5C240400, // 00D8 MOVE R9 R2 - 0x7C180600, // 00D9 CALL R6 3 - 0x781A0005, // 00DA JMPF R6 #00E1 - 0x60180018, // 00DB GETGBL R6 G24 - 0x581C002D, // 00DC LDCONST R7 K45 - 0x5C200400, // 00DD MOVE R8 R2 - 0x7C180400, // 00DE CALL R6 2 - 0x5C140C00, // 00DF MOVE R5 R6 - 0x70020004, // 00E0 JMP #00E6 - 0x60180018, // 00E1 GETGBL R6 G24 - 0x581C002E, // 00E2 LDCONST R7 K46 - 0x5C200400, // 00E3 MOVE R8 R2 - 0x7C180400, // 00E4 CALL R6 2 - 0x5C140C00, // 00E5 MOVE R5 R6 - 0x60180018, // 00E6 GETGBL R6 G24 - 0x581C002F, // 00E7 LDCONST R7 K47 - 0x5C200A00, // 00E8 MOVE R8 R5 - 0x5C240600, // 00E9 MOVE R9 R3 - 0x7C180600, // 00EA CALL R6 3 - 0x80040C00, // 00EB RET 1 R6 - 0x600C0018, // 00EC GETGBL R3 G24 - 0x58100030, // 00ED LDCONST R4 K48 - 0x5C140400, // 00EE MOVE R5 R2 - 0x7C0C0400, // 00EF CALL R3 2 - 0x80040600, // 00F0 RET 1 R3 - 0x8C080101, // 00F1 GETMET R2 R0 K1 - 0x60100018, // 00F2 GETGBL R4 G24 - 0x58140031, // 00F3 LDCONST R5 K49 - 0x8818030F, // 00F4 GETMBR R6 R1 K15 - 0x7C100400, // 00F5 CALL R4 2 - 0x7C080400, // 00F6 CALL R2 2 - 0x80060600, // 00F7 RET 1 K3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_for_color_provider -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(_process_named_arguments_generic), - }), - be_str_weak(_process_named_arguments_for_color_provider), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C0C0600, // 0003 CALL R3 3 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_for_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* name */ - be_nested_proto( - 15, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_create_instance_for_validation), - /* K2 */ be_nested_str_weak(at_end), - /* K3 */ be_nested_str_weak(check_right_paren), - /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K5 */ be_nested_str_weak(expect_identifier), - /* K6 */ be_nested_str_weak(_validate_single_parameter), - /* K7 */ be_nested_str_weak(expect_assign), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(argument), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(add), - /* K12 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K13 */ be_nested_str_weak(current), - /* K14 */ be_nested_str_weak(type), - /* K15 */ be_nested_str_weak(animation_dsl), - /* K16 */ be_nested_str_weak(Token), - /* K17 */ be_nested_str_weak(COMMENT), - /* K18 */ be_nested_str_weak(next), - /* K19 */ be_nested_str_weak(COMMA), - /* K20 */ be_nested_str_weak(NEWLINE), - /* K21 */ be_nested_str_weak(error), - /* K22 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K23 */ be_nested_str_weak(expect_right_paren), - }), - be_str_weak(_process_named_arguments_for_animation), - &be_const_str_solidified, - ( &(const binstruction[109]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x8C0C0101, // 0002 GETMET R3 R0 K1 - 0x5C140400, // 0003 MOVE R5 R2 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C100102, // 0005 GETMET R4 R0 K2 - 0x7C100200, // 0006 CALL R4 1 - 0x74120061, // 0007 JMPT R4 #006A - 0x8C100103, // 0008 GETMET R4 R0 K3 - 0x7C100200, // 0009 CALL R4 1 - 0x7412005E, // 000A JMPT R4 #006A - 0x8C100104, // 000B GETMET R4 R0 K4 - 0x7C100200, // 000C CALL R4 1 - 0x8C100103, // 000D GETMET R4 R0 K3 - 0x7C100200, // 000E CALL R4 1 - 0x78120000, // 000F JMPF R4 #0011 - 0x70020058, // 0010 JMP #006A - 0x8C100105, // 0011 GETMET R4 R0 K5 - 0x7C100200, // 0012 CALL R4 1 - 0x4C140000, // 0013 LDNIL R5 - 0x20140605, // 0014 NE R5 R3 R5 - 0x78160004, // 0015 JMPF R5 #001B - 0x8C140106, // 0016 GETMET R5 R0 K6 - 0x5C1C0400, // 0017 MOVE R7 R2 - 0x5C200800, // 0018 MOVE R8 R4 - 0x5C240600, // 0019 MOVE R9 R3 - 0x7C140800, // 001A CALL R5 4 - 0x8C140107, // 001B GETMET R5 R0 K7 - 0x7C140200, // 001C CALL R5 1 - 0x8C140108, // 001D GETMET R5 R0 K8 - 0x581C0009, // 001E LDCONST R7 K9 - 0x7C140400, // 001F CALL R5 2 - 0x8C18010A, // 0020 GETMET R6 R0 K10 - 0x7C180200, // 0021 CALL R6 1 - 0x8C1C010B, // 0022 GETMET R7 R0 K11 - 0x60240018, // 0023 GETGBL R9 G24 - 0x5828000C, // 0024 LDCONST R10 K12 - 0x5C2C0200, // 0025 MOVE R11 R1 - 0x5C300800, // 0026 MOVE R12 R4 - 0x5C340A00, // 0027 MOVE R13 R5 - 0x5C380C00, // 0028 MOVE R14 R6 - 0x7C240A00, // 0029 CALL R9 5 - 0x7C1C0400, // 002A CALL R7 2 - 0x8C1C0102, // 002B GETMET R7 R0 K2 - 0x7C1C0200, // 002C CALL R7 1 - 0x741E000F, // 002D JMPT R7 #003E - 0x8C1C010D, // 002E GETMET R7 R0 K13 - 0x7C1C0200, // 002F CALL R7 1 - 0x4C200000, // 0030 LDNIL R8 - 0x20200E08, // 0031 NE R8 R7 R8 - 0x78220008, // 0032 JMPF R8 #003C - 0x88200F0E, // 0033 GETMBR R8 R7 K14 - 0xB8261E00, // 0034 GETNGBL R9 K15 - 0x88241310, // 0035 GETMBR R9 R9 K16 - 0x88241311, // 0036 GETMBR R9 R9 K17 - 0x1C201009, // 0037 EQ R8 R8 R9 - 0x78220002, // 0038 JMPF R8 #003C - 0x8C200112, // 0039 GETMET R8 R0 K18 - 0x7C200200, // 003A CALL R8 1 - 0x70020000, // 003B JMP #003D - 0x70020000, // 003C JMP #003E - 0x7001FFEC, // 003D JMP #002B - 0x8C1C010D, // 003E GETMET R7 R0 K13 - 0x7C1C0200, // 003F CALL R7 1 - 0x4C200000, // 0040 LDNIL R8 - 0x201C0E08, // 0041 NE R7 R7 R8 - 0x781E000C, // 0042 JMPF R7 #0050 - 0x8C1C010D, // 0043 GETMET R7 R0 K13 - 0x7C1C0200, // 0044 CALL R7 1 - 0x881C0F0E, // 0045 GETMBR R7 R7 K14 - 0xB8221E00, // 0046 GETNGBL R8 K15 - 0x88201110, // 0047 GETMBR R8 R8 K16 - 0x88201113, // 0048 GETMBR R8 R8 K19 - 0x1C1C0E08, // 0049 EQ R7 R7 R8 - 0x781E0004, // 004A JMPF R7 #0050 - 0x8C1C0112, // 004B GETMET R7 R0 K18 - 0x7C1C0200, // 004C CALL R7 1 - 0x8C1C0104, // 004D GETMET R7 R0 K4 - 0x7C1C0200, // 004E CALL R7 1 - 0x70020018, // 004F JMP #0069 - 0x8C1C010D, // 0050 GETMET R7 R0 K13 - 0x7C1C0200, // 0051 CALL R7 1 - 0x4C200000, // 0052 LDNIL R8 - 0x201C0E08, // 0053 NE R7 R7 R8 - 0x781E000C, // 0054 JMPF R7 #0062 - 0x8C1C010D, // 0055 GETMET R7 R0 K13 - 0x7C1C0200, // 0056 CALL R7 1 - 0x881C0F0E, // 0057 GETMBR R7 R7 K14 - 0xB8221E00, // 0058 GETNGBL R8 K15 - 0x88201110, // 0059 GETMBR R8 R8 K16 - 0x88201114, // 005A GETMBR R8 R8 K20 - 0x1C1C0E08, // 005B EQ R7 R7 R8 - 0x781E0004, // 005C JMPF R7 #0062 - 0x8C1C0112, // 005D GETMET R7 R0 K18 - 0x7C1C0200, // 005E CALL R7 1 - 0x8C1C0104, // 005F GETMET R7 R0 K4 - 0x7C1C0200, // 0060 CALL R7 1 - 0x70020006, // 0061 JMP #0069 - 0x8C1C0103, // 0062 GETMET R7 R0 K3 - 0x7C1C0200, // 0063 CALL R7 1 - 0x741E0003, // 0064 JMPT R7 #0069 - 0x8C1C0115, // 0065 GETMET R7 R0 K21 - 0x58240016, // 0066 LDCONST R9 K22 - 0x7C1C0400, // 0067 CALL R7 2 - 0x70020000, // 0068 JMP #006A - 0x7001FF9A, // 0069 JMP #0005 - 0x8C100117, // 006A GETMET R4 R0 K23 - 0x7C100200, // 006B CALL R4 1 - 0x80000000, // 006C RET 0 + ( &(const binstruction[16]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x1C0C0703, // 0005 EQ R3 R3 K3 + 0x780E0005, // 0006 JMPF R3 #000D + 0x8C0C0501, // 0007 GETMET R3 R2 K1 + 0x5C140200, // 0008 MOVE R5 R1 + 0x58180004, // 0009 LDCONST R6 K4 + 0x7C0C0600, // 000A CALL R3 3 + 0x280C0703, // 000B GE R3 R3 K3 + 0x740E0000, // 000C JMPT R3 #000E + 0x500C0001, // 000D LDBOOL R3 0 1 + 0x500C0200, // 000E LDBOOL R3 1 0 + 0x80040600, // 000F RET 1 R3 }) ) ); @@ -4750,11 +8713,11 @@ be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ /******************************************************************** -** Solidified function: process_animation +** Solidified function: expect_comma ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ be_nested_proto( - 15, /* nstack */ + 5, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -4762,48 +8725,236 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[37]) { /* constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(COMMA), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), + }), + be_str_weak(expect_comma), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_error_report +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(has_errors), + /* K1 */ be_nested_str_weak(No_X20compilation_X20errors), + /* K2 */ be_nested_str_weak(Compilation_X20errors_X3A_X0A), + /* K3 */ be_nested_str_weak(errors), + /* K4 */ be_nested_str_weak(_X20_X20), + /* K5 */ be_nested_str_weak(_X0A), + /* K6 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(get_error_report), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060000, // 0002 JMPT R1 #0004 + 0x80060200, // 0003 RET 1 K1 + 0x58040002, // 0004 LDCONST R1 K2 + 0x60080010, // 0005 GETGBL R2 G16 + 0x880C0103, // 0006 GETMBR R3 R0 K3 + 0x7C080200, // 0007 CALL R2 1 + 0xA8020005, // 0008 EXBLK 0 #000F + 0x5C0C0400, // 0009 MOVE R3 R2 + 0x7C0C0000, // 000A CALL R3 0 + 0x00120803, // 000B ADD R4 K4 R3 + 0x00100905, // 000C ADD R4 R4 K5 + 0x00040204, // 000D ADD R1 R1 R4 + 0x7001FFF9, // 000E JMP #0009 + 0x58080006, // 000F LDCONST R2 K6 + 0xAC080200, // 0010 CATCH R2 1 0 + 0xB0080000, // 0011 RAISE 2 R0 R0 + 0x80040200, // 0012 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: convert_time_to_ms +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(endswith), + /* K2 */ be_nested_str_weak(ms), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(s), + /* K5 */ be_nested_str_weak(m), + /* K6 */ be_nested_str_weak(h), + /* K7 */ be_const_int(3600000), + }), + be_str_weak(convert_time_to_ms), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x780E0008, // 0005 JMPF R3 #000F + 0x600C0009, // 0006 GETGBL R3 G9 + 0x6010000A, // 0007 GETGBL R4 G10 + 0x5415FFFC, // 0008 LDINT R5 -3 + 0x40160605, // 0009 CONNECT R5 K3 R5 + 0x94140205, // 000A GETIDX R5 R1 R5 + 0x7C100200, // 000B CALL R4 1 + 0x7C0C0200, // 000C CALL R3 1 + 0x80040600, // 000D RET 1 R3 + 0x7002002D, // 000E JMP #003D + 0x8C0C0501, // 000F GETMET R3 R2 K1 + 0x5C140200, // 0010 MOVE R5 R1 + 0x58180004, // 0011 LDCONST R6 K4 + 0x7C0C0600, // 0012 CALL R3 3 + 0x780E000A, // 0013 JMPF R3 #001F + 0x600C0009, // 0014 GETGBL R3 G9 + 0x6010000A, // 0015 GETGBL R4 G10 + 0x5415FFFD, // 0016 LDINT R5 -2 + 0x40160605, // 0017 CONNECT R5 K3 R5 + 0x94140205, // 0018 GETIDX R5 R1 R5 + 0x7C100200, // 0019 CALL R4 1 + 0x541603E7, // 001A LDINT R5 1000 + 0x08100805, // 001B MUL R4 R4 R5 + 0x7C0C0200, // 001C CALL R3 1 + 0x80040600, // 001D RET 1 R3 + 0x7002001D, // 001E JMP #003D + 0x8C0C0501, // 001F GETMET R3 R2 K1 + 0x5C140200, // 0020 MOVE R5 R1 + 0x58180005, // 0021 LDCONST R6 K5 + 0x7C0C0600, // 0022 CALL R3 3 + 0x780E000A, // 0023 JMPF R3 #002F + 0x600C0009, // 0024 GETGBL R3 G9 + 0x6010000A, // 0025 GETGBL R4 G10 + 0x5415FFFD, // 0026 LDINT R5 -2 + 0x40160605, // 0027 CONNECT R5 K3 R5 + 0x94140205, // 0028 GETIDX R5 R1 R5 + 0x7C100200, // 0029 CALL R4 1 + 0x5416EA5F, // 002A LDINT R5 60000 + 0x08100805, // 002B MUL R4 R4 R5 + 0x7C0C0200, // 002C CALL R3 1 + 0x80040600, // 002D RET 1 R3 + 0x7002000D, // 002E JMP #003D + 0x8C0C0501, // 002F GETMET R3 R2 K1 + 0x5C140200, // 0030 MOVE R5 R1 + 0x58180006, // 0031 LDCONST R6 K6 + 0x7C0C0600, // 0032 CALL R3 3 + 0x780E0008, // 0033 JMPF R3 #003D + 0x600C0009, // 0034 GETGBL R3 G9 + 0x6010000A, // 0035 GETGBL R4 G10 + 0x5415FFFD, // 0036 LDINT R5 -2 + 0x40160605, // 0037 CONNECT R5 K3 R5 + 0x94140205, // 0038 GETIDX R5 R1 R5 + 0x7C100200, // 0039 CALL R4 1 + 0x08100907, // 003A MUL R4 R4 K7 + 0x7C0C0200, // 003B CALL R3 1 + 0x80040600, // 003C RET 1 R3 + 0x540E03E7, // 003D LDINT R3 1000 + 0x80040600, // 003E RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_template +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[30]) { /* constants */ /* K0 */ be_nested_str_weak(next), /* K1 */ be_nested_str_weak(expect_identifier), /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(animation), + /* K3 */ be_nested_str_weak(template), /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(current), - /* K7 */ be_nested_str_weak(type), - /* K8 */ be_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(KEYWORD), - /* K11 */ be_nested_str_weak(IDENTIFIER), - /* K12 */ be_nested_str_weak(peek), - /* K13 */ be_nested_str_weak(LEFT_PAREN), + /* K5 */ be_nested_str_weak(expect_left_brace), + /* K6 */ be_nested_str_weak(at_end), + /* K7 */ be_nested_str_weak(check_right_brace), + /* K8 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K9 */ be_nested_str_weak(current), + /* K10 */ be_nested_str_weak(type), + /* K11 */ be_nested_str_weak(animation_dsl), + /* K12 */ be_nested_str_weak(Token), + /* K13 */ be_nested_str_weak(KEYWORD), /* K14 */ be_nested_str_weak(value), - /* K15 */ be_nested_str_weak(), - /* K16 */ be_nested_str_weak(COMMENT), - /* K17 */ be_nested_str_weak(_X20_X20), - /* K18 */ be_nested_str_weak(template_definitions), - /* K19 */ be_nested_str_weak(contains), - /* K20 */ be_nested_str_weak(process_function_arguments), - /* K21 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K22 */ be_nested_str_weak(engine), - /* K23 */ be_nested_str_weak(add), - /* K24 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), - /* K25 */ be_nested_str_weak(_validate_animation_factory_creates_animation), - /* K26 */ be_nested_str_weak(error), - /* K27 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X20or_X20does_X20not_X20create_X20an_X20instance_X20of_X20animation_X2Eanimation_X20class_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X20returns_X20an_X20animation_X20object_X2E), - /* K28 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), - /* K29 */ be_nested_str_weak(_create_instance_for_validation), - /* K30 */ be_nested_str_weak(symbol_table), - /* K31 */ be_nested_str_weak(_process_named_arguments_for_animation), - /* K32 */ be_nested_str_weak(_X25s_), - /* K33 */ be_nested_str_weak(process_value), - /* K34 */ be_nested_str_weak(collect_inline_comment), - /* K35 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - /* K36 */ be_nested_str_weak(string), + /* K15 */ be_nested_str_weak(param), + /* K16 */ be_nested_str_weak(push), + /* K17 */ be_nested_str_weak(NEWLINE), + /* K18 */ be_const_int(0), + /* K19 */ be_nested_str_weak(EOF), + /* K20 */ be_nested_str_weak(LEFT_BRACE), + /* K21 */ be_const_int(1), + /* K22 */ be_nested_str_weak(RIGHT_BRACE), + /* K23 */ be_nested_str_weak(expect_right_brace), + /* K24 */ be_nested_str_weak(template_definitions), + /* K25 */ be_nested_str_weak(params), + /* K26 */ be_nested_str_weak(param_types), + /* K27 */ be_nested_str_weak(body_tokens), + /* K28 */ be_nested_str_weak(generate_template_function), + /* K29 */ be_nested_str_weak(symbol_table), }), - be_str_weak(process_animation), + be_str_weak(process_template), &be_const_str_solidified, - ( &(const binstruction[188]) { /* code */ + ( &(const binstruction[165]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x8C040101, // 0002 GETMET R1 R0 K1 @@ -4818,180 +8969,157 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ 0x80000400, // 000B RET 0 0x8C080105, // 000C GETMET R2 R0 K5 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x7C080200, // 000F CALL R2 1 - 0x880C0507, // 0010 GETMBR R3 R2 K7 - 0xB8121000, // 0011 GETNGBL R4 K8 - 0x88100909, // 0012 GETMBR R4 R4 K9 - 0x8810090A, // 0013 GETMBR R4 R4 K10 - 0x1C0C0604, // 0014 EQ R3 R3 R4 - 0x740E0005, // 0015 JMPT R3 #001C - 0x880C0507, // 0016 GETMBR R3 R2 K7 - 0xB8121000, // 0017 GETNGBL R4 K8 - 0x88100909, // 0018 GETMBR R4 R4 K9 - 0x8810090B, // 0019 GETMBR R4 R4 K11 - 0x1C0C0604, // 001A EQ R3 R3 R4 - 0x780E0061, // 001B JMPF R3 #007E - 0x8C0C010C, // 001C GETMET R3 R0 K12 - 0x7C0C0200, // 001D CALL R3 1 - 0x4C100000, // 001E LDNIL R4 - 0x200C0604, // 001F NE R3 R3 R4 - 0x780E005C, // 0020 JMPF R3 #007E - 0x8C0C010C, // 0021 GETMET R3 R0 K12 - 0x7C0C0200, // 0022 CALL R3 1 - 0x880C0707, // 0023 GETMBR R3 R3 K7 - 0xB8121000, // 0024 GETNGBL R4 K8 - 0x88100909, // 0025 GETMBR R4 R4 K9 - 0x8810090D, // 0026 GETMBR R4 R4 K13 - 0x1C0C0604, // 0027 EQ R3 R3 R4 - 0x780E0054, // 0028 JMPF R3 #007E - 0x880C050E, // 0029 GETMBR R3 R2 K14 - 0x8C100100, // 002A GETMET R4 R0 K0 - 0x7C100200, // 002B CALL R4 1 - 0x5810000F, // 002C LDCONST R4 K15 - 0x8C140106, // 002D GETMET R5 R0 K6 - 0x7C140200, // 002E CALL R5 1 - 0x4C180000, // 002F LDNIL R6 - 0x20140A06, // 0030 NE R5 R5 R6 - 0x7816000E, // 0031 JMPF R5 #0041 - 0x8C140106, // 0032 GETMET R5 R0 K6 - 0x7C140200, // 0033 CALL R5 1 - 0x88140B07, // 0034 GETMBR R5 R5 K7 - 0xB81A1000, // 0035 GETNGBL R6 K8 - 0x88180D09, // 0036 GETMBR R6 R6 K9 - 0x88180D10, // 0037 GETMBR R6 R6 K16 - 0x1C140A06, // 0038 EQ R5 R5 R6 - 0x78160006, // 0039 JMPF R5 #0041 - 0x8C140106, // 003A GETMET R5 R0 K6 - 0x7C140200, // 003B CALL R5 1 - 0x88140B0E, // 003C GETMBR R5 R5 K14 - 0x00162205, // 003D ADD R5 K17 R5 - 0x5C100A00, // 003E MOVE R4 R5 - 0x8C140100, // 003F GETMET R5 R0 K0 - 0x7C140200, // 0040 CALL R5 1 - 0x88140112, // 0041 GETMBR R5 R0 K18 - 0x8C140B13, // 0042 GETMET R5 R5 K19 - 0x5C1C0600, // 0043 MOVE R7 R3 - 0x7C140400, // 0044 CALL R5 2 - 0x78160012, // 0045 JMPF R5 #0059 - 0x8C140114, // 0046 GETMET R5 R0 K20 - 0x7C140200, // 0047 CALL R5 1 - 0x20180B0F, // 0048 NE R6 R5 K15 - 0x781A0004, // 0049 JMPF R6 #004F - 0x60180018, // 004A GETGBL R6 G24 - 0x581C0015, // 004B LDCONST R7 K21 - 0x5C200A00, // 004C MOVE R8 R5 - 0x7C180400, // 004D CALL R6 2 - 0x70020000, // 004E JMP #0050 - 0x58180016, // 004F LDCONST R6 K22 - 0x8C1C0117, // 0050 GETMET R7 R0 K23 - 0x60240018, // 0051 GETGBL R9 G24 - 0x58280018, // 0052 LDCONST R10 K24 - 0x5C2C0600, // 0053 MOVE R11 R3 - 0x5C300C00, // 0054 MOVE R12 R6 - 0x5C340800, // 0055 MOVE R13 R4 - 0x7C240800, // 0056 CALL R9 4 - 0x7C1C0400, // 0057 CALL R7 2 - 0x70020023, // 0058 JMP #007D - 0x8C140119, // 0059 GETMET R5 R0 K25 - 0x5C1C0600, // 005A MOVE R7 R3 - 0x7C140400, // 005B CALL R5 2 - 0x74160008, // 005C JMPT R5 #0066 - 0x8C14011A, // 005D GETMET R5 R0 K26 - 0x601C0018, // 005E GETGBL R7 G24 - 0x5820001B, // 005F LDCONST R8 K27 - 0x5C240600, // 0060 MOVE R9 R3 - 0x7C1C0400, // 0061 CALL R7 2 - 0x7C140400, // 0062 CALL R5 2 - 0x8C140104, // 0063 GETMET R5 R0 K4 - 0x7C140200, // 0064 CALL R5 1 - 0x80000A00, // 0065 RET 0 - 0x8C140117, // 0066 GETMET R5 R0 K23 - 0x601C0018, // 0067 GETGBL R7 G24 - 0x5820001C, // 0068 LDCONST R8 K28 - 0x5C240200, // 0069 MOVE R9 R1 - 0x5C280600, // 006A MOVE R10 R3 - 0x5C2C0800, // 006B MOVE R11 R4 - 0x7C1C0800, // 006C CALL R7 4 - 0x7C140400, // 006D CALL R5 2 - 0x8C14011D, // 006E GETMET R5 R0 K29 - 0x5C1C0600, // 006F MOVE R7 R3 - 0x7C140400, // 0070 CALL R5 2 - 0x4C180000, // 0071 LDNIL R6 - 0x20180A06, // 0072 NE R6 R5 R6 - 0x781A0001, // 0073 JMPF R6 #0076 - 0x8818011E, // 0074 GETMBR R6 R0 K30 - 0x98180205, // 0075 SETIDX R6 R1 R5 - 0x8C18011F, // 0076 GETMET R6 R0 K31 - 0x60200018, // 0077 GETGBL R8 G24 - 0x58240020, // 0078 LDCONST R9 K32 - 0x5C280200, // 0079 MOVE R10 R1 - 0x7C200400, // 007A CALL R8 2 - 0x5C240600, // 007B MOVE R9 R3 - 0x7C180600, // 007C CALL R6 3 - 0x7002003C, // 007D JMP #00BB - 0x8C0C0106, // 007E GETMET R3 R0 K6 - 0x7C0C0200, // 007F CALL R3 1 - 0x4C100000, // 0080 LDNIL R4 - 0x20100604, // 0081 NE R4 R3 R4 - 0x78120012, // 0082 JMPF R4 #0096 - 0x88100707, // 0083 GETMBR R4 R3 K7 - 0xB8161000, // 0084 GETNGBL R5 K8 - 0x88140B09, // 0085 GETMBR R5 R5 K9 - 0x88140B0B, // 0086 GETMBR R5 R5 K11 - 0x1C100805, // 0087 EQ R4 R4 R5 - 0x7812000C, // 0088 JMPF R4 #0096 - 0x8C10010C, // 0089 GETMET R4 R0 K12 - 0x7C100200, // 008A CALL R4 1 - 0x4C140000, // 008B LDNIL R5 - 0x1C100805, // 008C EQ R4 R4 R5 - 0x74120008, // 008D JMPT R4 #0097 - 0x8C10010C, // 008E GETMET R4 R0 K12 - 0x7C100200, // 008F CALL R4 1 - 0x88100907, // 0090 GETMBR R4 R4 K7 - 0xB8161000, // 0091 GETNGBL R5 K8 - 0x88140B09, // 0092 GETMBR R5 R5 K9 - 0x88140B0D, // 0093 GETMBR R5 R5 K13 - 0x20100805, // 0094 NE R4 R4 R5 - 0x74120000, // 0095 JMPT R4 #0097 - 0x50100001, // 0096 LDBOOL R4 0 1 - 0x50100200, // 0097 LDBOOL R4 1 0 - 0x78120001, // 0098 JMPF R4 #009B - 0x8814070E, // 0099 GETMBR R5 R3 K14 - 0x70020000, // 009A JMP #009C - 0x4C140000, // 009B LDNIL R5 - 0x8C180121, // 009C GETMET R6 R0 K33 - 0x58200003, // 009D LDCONST R8 K3 - 0x7C180400, // 009E CALL R6 2 - 0x8C1C0122, // 009F GETMET R7 R0 K34 - 0x7C1C0200, // 00A0 CALL R7 1 - 0x8C200117, // 00A1 GETMET R8 R0 K23 - 0x60280018, // 00A2 GETGBL R10 G24 - 0x582C0023, // 00A3 LDCONST R11 K35 - 0x5C300200, // 00A4 MOVE R12 R1 - 0x5C340C00, // 00A5 MOVE R13 R6 - 0x5C380E00, // 00A6 MOVE R14 R7 - 0x7C280800, // 00A7 CALL R10 4 - 0x7C200400, // 00A8 CALL R8 2 - 0x78120010, // 00A9 JMPF R4 #00BB - 0x4C200000, // 00AA LDNIL R8 - 0x20200A08, // 00AB NE R8 R5 R8 - 0x7822000D, // 00AC JMPF R8 #00BB - 0x8820011E, // 00AD GETMBR R8 R0 K30 - 0x8C201113, // 00AE GETMET R8 R8 K19 - 0x5C280A00, // 00AF MOVE R10 R5 - 0x7C200400, // 00B0 CALL R8 2 - 0x78220008, // 00B1 JMPF R8 #00BB - 0x8820011E, // 00B2 GETMBR R8 R0 K30 - 0x94201005, // 00B3 GETIDX R8 R8 R5 - 0x60240004, // 00B4 GETGBL R9 G4 - 0x5C281000, // 00B5 MOVE R10 R8 - 0x7C240200, // 00B6 CALL R9 1 - 0x20241324, // 00B7 NE R9 R9 K36 - 0x78260001, // 00B8 JMPF R9 #00BB - 0x8824011E, // 00B9 GETMBR R9 R0 K30 - 0x98240208, // 00BA SETIDX R9 R1 R8 - 0x80000000, // 00BB RET 0 + 0x60080012, // 000E GETGBL R2 G18 + 0x7C080000, // 000F CALL R2 0 + 0x600C0013, // 0010 GETGBL R3 G19 + 0x7C0C0000, // 0011 CALL R3 0 + 0x8C100106, // 0012 GETMET R4 R0 K6 + 0x7C100200, // 0013 CALL R4 1 + 0x7412004B, // 0014 JMPT R4 #0061 + 0x8C100107, // 0015 GETMET R4 R0 K7 + 0x7C100200, // 0016 CALL R4 1 + 0x74120048, // 0017 JMPT R4 #0061 + 0x8C100108, // 0018 GETMET R4 R0 K8 + 0x7C100200, // 0019 CALL R4 1 + 0x8C100107, // 001A GETMET R4 R0 K7 + 0x7C100200, // 001B CALL R4 1 + 0x78120000, // 001C JMPF R4 #001E + 0x70020042, // 001D JMP #0061 + 0x8C100109, // 001E GETMET R4 R0 K9 + 0x7C100200, // 001F CALL R4 1 + 0x4C140000, // 0020 LDNIL R5 + 0x20140805, // 0021 NE R5 R4 R5 + 0x7816003B, // 0022 JMPF R5 #005F + 0x8814090A, // 0023 GETMBR R5 R4 K10 + 0xB81A1600, // 0024 GETNGBL R6 K11 + 0x88180D0C, // 0025 GETMBR R6 R6 K12 + 0x88180D0D, // 0026 GETMBR R6 R6 K13 + 0x1C140A06, // 0027 EQ R5 R5 R6 + 0x78160035, // 0028 JMPF R5 #005F + 0x8814090E, // 0029 GETMBR R5 R4 K14 + 0x1C140B0F, // 002A EQ R5 R5 K15 + 0x78160032, // 002B JMPF R5 #005F + 0x8C140100, // 002C GETMET R5 R0 K0 + 0x7C140200, // 002D CALL R5 1 + 0x8C140101, // 002E GETMET R5 R0 K1 + 0x7C140200, // 002F CALL R5 1 + 0x4C180000, // 0030 LDNIL R6 + 0x8C1C0109, // 0031 GETMET R7 R0 K9 + 0x7C1C0200, // 0032 CALL R7 1 + 0x4C200000, // 0033 LDNIL R8 + 0x201C0E08, // 0034 NE R7 R7 R8 + 0x781E0011, // 0035 JMPF R7 #0048 + 0x8C1C0109, // 0036 GETMET R7 R0 K9 + 0x7C1C0200, // 0037 CALL R7 1 + 0x881C0F0A, // 0038 GETMBR R7 R7 K10 + 0xB8221600, // 0039 GETNGBL R8 K11 + 0x8820110C, // 003A GETMBR R8 R8 K12 + 0x8820110D, // 003B GETMBR R8 R8 K13 + 0x1C1C0E08, // 003C EQ R7 R7 R8 + 0x781E0009, // 003D JMPF R7 #0048 + 0x8C1C0109, // 003E GETMET R7 R0 K9 + 0x7C1C0200, // 003F CALL R7 1 + 0x881C0F0E, // 0040 GETMBR R7 R7 K14 + 0x1C1C0F0A, // 0041 EQ R7 R7 K10 + 0x781E0004, // 0042 JMPF R7 #0048 + 0x8C1C0100, // 0043 GETMET R7 R0 K0 + 0x7C1C0200, // 0044 CALL R7 1 + 0x8C1C0101, // 0045 GETMET R7 R0 K1 + 0x7C1C0200, // 0046 CALL R7 1 + 0x5C180E00, // 0047 MOVE R6 R7 + 0x8C1C0510, // 0048 GETMET R7 R2 K16 + 0x5C240A00, // 0049 MOVE R9 R5 + 0x7C1C0400, // 004A CALL R7 2 + 0x4C1C0000, // 004B LDNIL R7 + 0x201C0C07, // 004C NE R7 R6 R7 + 0x781E0000, // 004D JMPF R7 #004F + 0x980C0A06, // 004E SETIDX R3 R5 R6 + 0x8C1C0109, // 004F GETMET R7 R0 K9 + 0x7C1C0200, // 0050 CALL R7 1 + 0x4C200000, // 0051 LDNIL R8 + 0x201C0E08, // 0052 NE R7 R7 R8 + 0x781E0009, // 0053 JMPF R7 #005E + 0x8C1C0109, // 0054 GETMET R7 R0 K9 + 0x7C1C0200, // 0055 CALL R7 1 + 0x881C0F0A, // 0056 GETMBR R7 R7 K10 + 0xB8221600, // 0057 GETNGBL R8 K11 + 0x8820110C, // 0058 GETMBR R8 R8 K12 + 0x88201111, // 0059 GETMBR R8 R8 K17 + 0x1C1C0E08, // 005A EQ R7 R7 R8 + 0x781E0001, // 005B JMPF R7 #005E + 0x8C1C0100, // 005C GETMET R7 R0 K0 + 0x7C1C0200, // 005D CALL R7 1 + 0x70020000, // 005E JMP #0060 + 0x70020000, // 005F JMP #0061 + 0x7001FFB0, // 0060 JMP #0012 + 0x60100012, // 0061 GETGBL R4 G18 + 0x7C100000, // 0062 CALL R4 0 + 0x58140012, // 0063 LDCONST R5 K18 + 0x8C180106, // 0064 GETMET R6 R0 K6 + 0x7C180200, // 0065 CALL R6 1 + 0x741A002B, // 0066 JMPT R6 #0093 + 0x8C180109, // 0067 GETMET R6 R0 K9 + 0x7C180200, // 0068 CALL R6 1 + 0x4C1C0000, // 0069 LDNIL R7 + 0x1C1C0C07, // 006A EQ R7 R6 R7 + 0x741E0005, // 006B JMPT R7 #0072 + 0x881C0D0A, // 006C GETMBR R7 R6 K10 + 0xB8221600, // 006D GETNGBL R8 K11 + 0x8820110C, // 006E GETMBR R8 R8 K12 + 0x88201113, // 006F GETMBR R8 R8 K19 + 0x1C1C0E08, // 0070 EQ R7 R7 R8 + 0x781E0000, // 0071 JMPF R7 #0073 + 0x7002001F, // 0072 JMP #0093 + 0x881C0D0A, // 0073 GETMBR R7 R6 K10 + 0xB8221600, // 0074 GETNGBL R8 K11 + 0x8820110C, // 0075 GETMBR R8 R8 K12 + 0x88201114, // 0076 GETMBR R8 R8 K20 + 0x1C1C0E08, // 0077 EQ R7 R7 R8 + 0x781E0004, // 0078 JMPF R7 #007E + 0x00140B15, // 0079 ADD R5 R5 K21 + 0x8C1C0910, // 007A GETMET R7 R4 K16 + 0x5C240C00, // 007B MOVE R9 R6 + 0x7C1C0400, // 007C CALL R7 2 + 0x70020011, // 007D JMP #0090 + 0x881C0D0A, // 007E GETMBR R7 R6 K10 + 0xB8221600, // 007F GETNGBL R8 K11 + 0x8820110C, // 0080 GETMBR R8 R8 K12 + 0x88201116, // 0081 GETMBR R8 R8 K22 + 0x1C1C0E08, // 0082 EQ R7 R7 R8 + 0x781E0008, // 0083 JMPF R7 #008D + 0x1C1C0B12, // 0084 EQ R7 R5 K18 + 0x781E0001, // 0085 JMPF R7 #0088 + 0x7002000B, // 0086 JMP #0093 + 0x70020003, // 0087 JMP #008C + 0x04140B15, // 0088 SUB R5 R5 K21 + 0x8C1C0910, // 0089 GETMET R7 R4 K16 + 0x5C240C00, // 008A MOVE R9 R6 + 0x7C1C0400, // 008B CALL R7 2 + 0x70020002, // 008C JMP #0090 + 0x8C1C0910, // 008D GETMET R7 R4 K16 + 0x5C240C00, // 008E MOVE R9 R6 + 0x7C1C0400, // 008F CALL R7 2 + 0x8C1C0100, // 0090 GETMET R7 R0 K0 + 0x7C1C0200, // 0091 CALL R7 1 + 0x7001FFD0, // 0092 JMP #0064 + 0x8C180117, // 0093 GETMET R6 R0 K23 + 0x7C180200, // 0094 CALL R6 1 + 0x88180118, // 0095 GETMBR R6 R0 K24 + 0x601C0013, // 0096 GETGBL R7 G19 + 0x7C1C0000, // 0097 CALL R7 0 + 0x981E3202, // 0098 SETIDX R7 K25 R2 + 0x981E3403, // 0099 SETIDX R7 K26 R3 + 0x981E3604, // 009A SETIDX R7 K27 R4 + 0x98180207, // 009B SETIDX R6 R1 R7 + 0x8C18011C, // 009C GETMET R6 R0 K28 + 0x5C200200, // 009D MOVE R8 R1 + 0x5C240400, // 009E MOVE R9 R2 + 0x5C280600, // 009F MOVE R10 R3 + 0x5C2C0800, // 00A0 MOVE R11 R4 + 0x7C180A00, // 00A1 CALL R6 5 + 0x8818011D, // 00A2 GETMBR R6 R0 K29 + 0x98180303, // 00A3 SETIDX R6 R1 K3 + 0x80000000, // 00A4 RET 0 }) ) ); @@ -4999,43 +9127,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ /******************************************************************** -** Solidified function: _validate_animation_factory_creates_animation +** Solidified function: is_identifier_char ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation, /* name */ +be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_validate_factory_function), - /* K1 */ be_nested_str_weak(animation), - }), - be_str_weak(_validate_animation_factory_creates_animation), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0xB8160200, // 0002 GETNGBL R5 K1 - 0x88140B01, // 0003 GETMBR R5 R5 K1 - 0x7C080600, // 0004 CALL R2 3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _create_instance_for_validation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* name */ - be_nested_proto( - 8, /* nstack */ + 3, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -5044,307 +9140,34 @@ be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(MockEngine), - /* K2 */ be_nested_str_weak(introspect), - /* K3 */ be_nested_str_weak(contains), - /* K4 */ be_nested_str_weak(animation), - /* K5 */ be_nested_str_weak(class), - /* K6 */ be_nested_str_weak(function), + /* K0 */ be_nested_str_weak(a), + /* K1 */ be_nested_str_weak(z), + /* K2 */ be_nested_str_weak(A), + /* K3 */ be_nested_str_weak(Z), + /* K4 */ be_nested_str_weak(0), + /* K5 */ be_nested_str_weak(9), + /* K6 */ be_nested_str_weak(_), }), - be_str_weak(_create_instance_for_validation), - &be_const_str_solidified, - ( &(const binstruction[39]) { /* code */ - 0xA802001E, // 0000 EXBLK 0 #0020 - 0xB80A0000, // 0001 GETNGBL R2 K0 - 0x8C080501, // 0002 GETMET R2 R2 K1 - 0x7C080200, // 0003 CALL R2 1 - 0xA40E0400, // 0004 IMPORT R3 K2 - 0x8C100703, // 0005 GETMET R4 R3 K3 - 0xB81A0800, // 0006 GETNGBL R6 K4 - 0x5C1C0200, // 0007 MOVE R7 R1 - 0x7C100600, // 0008 CALL R4 3 - 0x78120010, // 0009 JMPF R4 #001B - 0xB8120800, // 000A GETNGBL R4 K4 - 0x88100801, // 000B GETMBR R4 R4 R1 - 0x60140004, // 000C GETGBL R5 G4 - 0x5C180800, // 000D MOVE R6 R4 - 0x7C140200, // 000E CALL R5 1 - 0x1C140B05, // 000F EQ R5 R5 K5 - 0x74160004, // 0010 JMPT R5 #0016 - 0x60140004, // 0011 GETGBL R5 G4 - 0x5C180800, // 0012 MOVE R6 R4 - 0x7C140200, // 0013 CALL R5 1 - 0x1C140B06, // 0014 EQ R5 R5 K6 - 0x78160004, // 0015 JMPF R5 #001B - 0x5C140800, // 0016 MOVE R5 R4 - 0x5C180400, // 0017 MOVE R6 R2 - 0x7C140200, // 0018 CALL R5 1 - 0xA8040001, // 0019 EXBLK 1 1 - 0x80040A00, // 001A RET 1 R5 - 0x4C100000, // 001B LDNIL R4 - 0xA8040001, // 001C EXBLK 1 1 - 0x80040800, // 001D RET 1 R4 - 0xA8040001, // 001E EXBLK 1 1 - 0x70020005, // 001F JMP #0026 - 0xAC080002, // 0020 CATCH R2 0 2 - 0x70020002, // 0021 JMP #0025 - 0x4C100000, // 0022 LDNIL R4 - 0x80040800, // 0023 RET 1 R4 - 0x70020000, // 0024 JMP #0026 - 0xB0080000, // 0025 RAISE 2 R0 R0 - 0x80000000, // 0026 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_event_parameters -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_X7B), - /* K2 */ be_nested_str_weak(at_end), - /* K3 */ be_nested_str_weak(check_right_paren), - /* K4 */ be_nested_str_weak(current), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(animation_dsl), - /* K7 */ be_nested_str_weak(Token), - /* K8 */ be_nested_str_weak(TIME), - /* K9 */ be_nested_str_weak(process_time_value), - /* K10 */ be_nested_str_weak(_X22interval_X22_X3A_X20_X25s), - /* K11 */ be_nested_str_weak(process_value), - /* K12 */ be_nested_str_weak(event_param), - /* K13 */ be_nested_str_weak(_X22value_X22_X3A_X20_X25s), - /* K14 */ be_nested_str_weak(expect_right_paren), - /* K15 */ be_nested_str_weak(_X7D), - }), - be_str_weak(process_event_parameters), - &be_const_str_solidified, - ( &(const binstruction[40]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58040001, // 0002 LDCONST R1 K1 - 0x8C080102, // 0003 GETMET R2 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x740A001D, // 0005 JMPT R2 #0024 - 0x8C080103, // 0006 GETMET R2 R0 K3 - 0x7C080200, // 0007 CALL R2 1 - 0x740A001A, // 0008 JMPT R2 #0024 - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x4C0C0000, // 000B LDNIL R3 - 0x200C0403, // 000C NE R3 R2 R3 - 0x780E000D, // 000D JMPF R3 #001C - 0x880C0505, // 000E GETMBR R3 R2 K5 - 0xB8120C00, // 000F GETNGBL R4 K6 - 0x88100907, // 0010 GETMBR R4 R4 K7 - 0x88100908, // 0011 GETMBR R4 R4 K8 - 0x1C0C0604, // 0012 EQ R3 R3 R4 - 0x780E0007, // 0013 JMPF R3 #001C - 0x8C0C0109, // 0014 GETMET R3 R0 K9 - 0x7C0C0200, // 0015 CALL R3 1 - 0x60100018, // 0016 GETGBL R4 G24 - 0x5814000A, // 0017 LDCONST R5 K10 - 0x5C180600, // 0018 MOVE R6 R3 - 0x7C100400, // 0019 CALL R4 2 - 0x00040204, // 001A ADD R1 R1 R4 - 0x70020007, // 001B JMP #0024 - 0x8C0C010B, // 001C GETMET R3 R0 K11 - 0x5814000C, // 001D LDCONST R5 K12 - 0x7C0C0400, // 001E CALL R3 2 - 0x60100018, // 001F GETGBL R4 G24 - 0x5814000D, // 0020 LDCONST R5 K13 - 0x5C180600, // 0021 MOVE R6 R3 - 0x7C100400, // 0022 CALL R4 2 - 0x00040204, // 0023 ADD R1 R1 R4 - 0x8C08010E, // 0024 GETMET R2 R0 K14 - 0x7C080200, // 0025 CALL R2 1 - 0x0004030F, // 0026 ADD R1 R1 K15 - 0x80040200, // 0027 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_whitespace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_whitespace, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(NEWLINE), - /* K6 */ be_nested_str_weak(COMMENT), - /* K7 */ be_nested_str_weak(next), - }), - be_str_weak(skip_whitespace), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060015, // 0002 JMPT R1 #0019 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000E, // 0007 JMPF R2 #0017 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0xB80E0600, // 0009 GETNGBL R3 K3 - 0x880C0704, // 000A GETMBR R3 R3 K4 - 0x880C0705, // 000B GETMBR R3 R3 K5 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x740A0005, // 000D JMPT R2 #0014 - 0x88080302, // 000E GETMBR R2 R1 K2 - 0xB80E0600, // 000F GETNGBL R3 K3 - 0x880C0704, // 0010 GETMBR R3 R3 K4 - 0x880C0706, // 0011 GETMBR R3 R3 K6 - 0x1C080403, // 0012 EQ R2 R2 R3 - 0x780A0002, // 0013 JMPF R2 #0017 - 0x8C080107, // 0014 GETMET R2 R0 K7 - 0x7C080200, // 0015 CALL R2 1 - 0x70020000, // 0016 JMP #0018 - 0x70020000, // 0017 JMP #0019 - 0x7001FFE6, // 0018 JMP #0000 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_assignment_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_identifier), - /* K1 */ be_nested_str_weak(expect_dot), - /* K2 */ be_nested_str_weak(expect_assign), - /* K3 */ be_nested_str_weak(process_value), - /* K4 */ be_nested_str_weak(property), - /* K5 */ be_nested_str_weak(collect_inline_comment), - /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2E_X25s_X20_X3D_X20_X25s_X20end), - /* K7 */ be_nested_str_weak(add), - /* K8 */ be_nested_str_weak(_X25s_X2Epush_assign_step_X28_X25s_X29_X25s), - /* K9 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_sequence_assignment_fluent), - &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x8C080100, // 0004 GETMET R2 R0 K0 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0102, // 0006 GETMET R3 R0 K2 - 0x7C0C0200, // 0007 CALL R3 1 - 0x8C0C0103, // 0008 GETMET R3 R0 K3 - 0x58140004, // 0009 LDCONST R5 K4 - 0x7C0C0400, // 000A CALL R3 2 - 0x8C100105, // 000B GETMET R4 R0 K5 - 0x7C100200, // 000C CALL R4 1 - 0x60140018, // 000D GETGBL R5 G24 - 0x58180006, // 000E LDCONST R6 K6 - 0x5C1C0200, // 000F MOVE R7 R1 - 0x5C200400, // 0010 MOVE R8 R2 - 0x5C240600, // 0011 MOVE R9 R3 - 0x7C140800, // 0012 CALL R5 4 - 0x8C180107, // 0013 GETMET R6 R0 K7 - 0x60200018, // 0014 GETGBL R8 G24 - 0x58240008, // 0015 LDCONST R9 K8 - 0x8C280109, // 0016 GETMET R10 R0 K9 - 0x7C280200, // 0017 CALL R10 1 - 0x5C2C0A00, // 0018 MOVE R11 R5 - 0x5C300800, // 0019 MOVE R12 R4 - 0x7C200800, // 001A CALL R8 4 - 0x7C180400, // 001B CALL R6 2 - 0x80000000, // 001C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: collect_inline_comment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(COMMENT), - /* K5 */ be_nested_str_weak(_X20_X20), - /* K6 */ be_nested_str_weak(value), - /* K7 */ be_nested_str_weak(next), - /* K8 */ be_nested_str_weak(), - }), - be_str_weak(collect_inline_comment), + be_str_weak(is_identifier_char), &be_const_str_solidified, ( &(const binstruction[17]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000A, // 0004 JMPF R2 #0010 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0004, // 000A JMPF R2 #0010 - 0x88080306, // 000B GETMBR R2 R1 K6 - 0x000A0A02, // 000C ADD R2 K5 R2 - 0x8C0C0107, // 000D GETMET R3 R0 K7 - 0x7C0C0200, // 000E CALL R3 1 - 0x80040400, // 000F RET 1 R2 - 0x80061000, // 0010 RET 1 K8 + 0x28080300, // 0000 GE R2 R1 K0 + 0x780A0001, // 0001 JMPF R2 #0004 + 0x18080301, // 0002 LE R2 R1 K1 + 0x740A000A, // 0003 JMPT R2 #000F + 0x28080302, // 0004 GE R2 R1 K2 + 0x780A0001, // 0005 JMPF R2 #0008 + 0x18080303, // 0006 LE R2 R1 K3 + 0x740A0006, // 0007 JMPT R2 #000F + 0x28080304, // 0008 GE R2 R1 K4 + 0x780A0001, // 0009 JMPF R2 #000C + 0x18080305, // 000A LE R2 R1 K5 + 0x740A0002, // 000B JMPT R2 #000F + 0x1C080306, // 000C EQ R2 R1 K6 + 0x740A0000, // 000D JMPT R2 #000F + 0x50080001, // 000E LDBOOL R2 0 1 + 0x50080200, // 000F LDBOOL R2 1 0 + 0x80040400, // 0010 RET 1 R2 }) ) ); @@ -5352,9 +9175,9 @@ be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ /******************************************************************** -** Solidified function: process_set +** Solidified function: process_primary_expression_raw ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_primary_expression_raw, /* name */ be_nested_proto( 11, /* nstack */ 1, /* argc */ @@ -5364,107 +9187,322 @@ be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(variable), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(process_value), - /* K7 */ be_nested_str_weak(collect_inline_comment), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - /* K10 */ be_nested_str_weak(symbol_table), - }), - be_str_weak(process_set), - &be_const_str_solidified, - ( &(const binstruction[30]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100003, // 000F LDCONST R4 K3 - 0x7C080400, // 0010 CALL R2 2 - 0x8C0C0107, // 0011 GETMET R3 R0 K7 - 0x7C0C0200, // 0012 CALL R3 1 - 0x8C100108, // 0013 GETMET R4 R0 K8 - 0x60180018, // 0014 GETGBL R6 G24 - 0x581C0009, // 0015 LDCONST R7 K9 - 0x5C200200, // 0016 MOVE R8 R1 - 0x5C240400, // 0017 MOVE R9 R2 - 0x5C280600, // 0018 MOVE R10 R3 - 0x7C180800, // 0019 CALL R6 4 - 0x7C100400, // 001A CALL R4 2 - 0x8810010A, // 001B GETMBR R4 R0 K10 - 0x98100303, // 001C SETIDX R4 R1 K3 - 0x80000000, // 001D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_number -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ + ( &(const bvalue[53]) { /* constants */ /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(NUMBER), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20number), - /* K9 */ be_nested_str_weak(0), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(LEFT_PAREN), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_additive_expression_raw), + /* K10 */ be_nested_str_weak(expect_right_paren), + /* K11 */ be_nested_str_weak(_X28_X25s_X29), + /* K12 */ be_nested_str_weak(KEYWORD), + /* K13 */ be_nested_str_weak(IDENTIFIER), + /* K14 */ be_nested_str_weak(peek), + /* K15 */ be_nested_str_weak(value), + /* K16 */ be_nested_str_weak(is_math_method), + /* K17 */ be_nested_str_weak(process_function_arguments_for_expression), + /* K18 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), + /* K19 */ be_nested_str_weak(log), + /* K20 */ be_nested_str_weak(process_log_call), + /* K21 */ be_nested_str_weak(expression), + /* K22 */ be_nested_str_weak(), + /* K23 */ be_nested_str_weak(template_definitions), + /* K24 */ be_nested_str_weak(contains), + /* K25 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), + /* K26 */ be_nested_str_weak(self_X2Eengine), + /* K27 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K28 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20not_X20supported_X20in_X20expression_X20context), + /* K29 */ be_nested_str_weak(COLOR), + /* K30 */ be_nested_str_weak(convert_color), + /* K31 */ be_nested_str_weak(TIME), + /* K32 */ be_nested_str_weak(process_time_value), + /* K33 */ be_nested_str_weak(PERCENTAGE), + /* K34 */ be_nested_str_weak(process_percentage_value), + /* K35 */ be_nested_str_weak(NUMBER), + /* K36 */ be_nested_str_weak(STRING), + /* K37 */ be_nested_str_weak(_X22_X25s_X22), + /* K38 */ be_nested_str_weak(DOT), + /* K39 */ be_nested_str_weak(expect_identifier), + /* K40 */ be_nested_str_weak(user), + /* K41 */ be_nested_str_weak(_process_user_function_call), + /* K42 */ be_nested_str_weak(symbol_table), + /* K43 */ be_nested_str_weak(string), + /* K44 */ be_nested_str_weak(_validate_single_parameter), + /* K45 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20references_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), + /* K46 */ be_nested_str_weak(introspect), + /* K47 */ be_nested_str_weak(animation), + /* K48 */ be_nested_str_weak(animation_X2E_X25s), + /* K49 */ be_nested_str_weak(_X25s_), + /* K50 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), + /* K51 */ be_nested_str_weak(self_X2Eresolve_X28_X25s__X29), + /* K52 */ be_nested_str_weak(Unexpected_X20token_X20in_X20expression_X3A_X20_X25s), }), - be_str_weak(expect_number), + be_str_weak(process_primary_expression_raw), &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ + ( &(const binstruction[258]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000A, // 0004 JMPF R2 #0010 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0004, // 000A JMPF R2 #0010 - 0x88080305, // 000B GETMBR R2 R1 K5 - 0x8C0C0106, // 000C GETMET R3 R0 K6 - 0x7C0C0200, // 000D CALL R3 1 - 0x80040400, // 000E RET 1 R2 - 0x70020003, // 000F JMP #0014 - 0x8C080107, // 0010 GETMET R2 R0 K7 - 0x58100008, // 0011 LDCONST R4 K8 - 0x7C080400, // 0012 CALL R2 2 - 0x80061200, // 0013 RET 1 K9 - 0x80000000, // 0014 RET 0 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080101, // 0005 GETMET R2 R0 K1 + 0x58100002, // 0006 LDCONST R4 K2 + 0x7C080400, // 0007 CALL R2 2 + 0x80060600, // 0008 RET 1 K3 + 0x88080304, // 0009 GETMBR R2 R1 K4 + 0xB80E0A00, // 000A GETNGBL R3 K5 + 0x880C0706, // 000B GETMBR R3 R3 K6 + 0x880C0707, // 000C GETMBR R3 R3 K7 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A000A, // 000E JMPF R2 #001A + 0x8C080108, // 000F GETMET R2 R0 K8 + 0x7C080200, // 0010 CALL R2 1 + 0x8C080109, // 0011 GETMET R2 R0 K9 + 0x7C080200, // 0012 CALL R2 1 + 0x8C0C010A, // 0013 GETMET R3 R0 K10 + 0x7C0C0200, // 0014 CALL R3 1 + 0x600C0018, // 0015 GETGBL R3 G24 + 0x5810000B, // 0016 LDCONST R4 K11 + 0x5C140400, // 0017 MOVE R5 R2 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80040600, // 0019 RET 1 R3 + 0x88080304, // 001A GETMBR R2 R1 K4 + 0xB80E0A00, // 001B GETNGBL R3 K5 + 0x880C0706, // 001C GETMBR R3 R3 K6 + 0x880C070C, // 001D GETMBR R3 R3 K12 + 0x1C080403, // 001E EQ R2 R2 R3 + 0x740A0005, // 001F JMPT R2 #0026 + 0x88080304, // 0020 GETMBR R2 R1 K4 + 0xB80E0A00, // 0021 GETNGBL R3 K5 + 0x880C0706, // 0022 GETMBR R3 R3 K6 + 0x880C070D, // 0023 GETMBR R3 R3 K13 + 0x1C080403, // 0024 EQ R2 R2 R3 + 0x780A0041, // 0025 JMPF R2 #0068 + 0x8C08010E, // 0026 GETMET R2 R0 K14 + 0x7C080200, // 0027 CALL R2 1 + 0x4C0C0000, // 0028 LDNIL R3 + 0x20080403, // 0029 NE R2 R2 R3 + 0x780A003C, // 002A JMPF R2 #0068 + 0x8C08010E, // 002B GETMET R2 R0 K14 + 0x7C080200, // 002C CALL R2 1 + 0x88080504, // 002D GETMBR R2 R2 K4 + 0xB80E0A00, // 002E GETNGBL R3 K5 + 0x880C0706, // 002F GETMBR R3 R3 K6 + 0x880C0707, // 0030 GETMBR R3 R3 K7 + 0x1C080403, // 0031 EQ R2 R2 R3 + 0x780A0034, // 0032 JMPF R2 #0068 + 0x8808030F, // 0033 GETMBR R2 R1 K15 + 0x8C0C0108, // 0034 GETMET R3 R0 K8 + 0x7C0C0200, // 0035 CALL R3 1 + 0x8C0C0110, // 0036 GETMET R3 R0 K16 + 0x5C140400, // 0037 MOVE R5 R2 + 0x7C0C0400, // 0038 CALL R3 2 + 0x780E0007, // 0039 JMPF R3 #0042 + 0x8C0C0111, // 003A GETMET R3 R0 K17 + 0x7C0C0200, // 003B CALL R3 1 + 0x60100018, // 003C GETGBL R4 G24 + 0x58140012, // 003D LDCONST R5 K18 + 0x5C180400, // 003E MOVE R6 R2 + 0x5C1C0600, // 003F MOVE R7 R3 + 0x7C100600, // 0040 CALL R4 3 + 0x80040800, // 0041 RET 1 R4 + 0x1C0C0513, // 0042 EQ R3 R2 K19 + 0x780E0007, // 0043 JMPF R3 #004C + 0x8C0C0111, // 0044 GETMET R3 R0 K17 + 0x7C0C0200, // 0045 CALL R3 1 + 0x8C100114, // 0046 GETMET R4 R0 K20 + 0x5C180600, // 0047 MOVE R6 R3 + 0x581C0015, // 0048 LDCONST R7 K21 + 0x58200016, // 0049 LDCONST R8 K22 + 0x7C100800, // 004A CALL R4 4 + 0x80040800, // 004B RET 1 R4 + 0x880C0117, // 004C GETMBR R3 R0 K23 + 0x8C0C0718, // 004D GETMET R3 R3 K24 + 0x5C140400, // 004E MOVE R5 R2 + 0x7C0C0400, // 004F CALL R3 2 + 0x780E000F, // 0050 JMPF R3 #0061 + 0x8C0C0111, // 0051 GETMET R3 R0 K17 + 0x7C0C0200, // 0052 CALL R3 1 + 0x20100716, // 0053 NE R4 R3 K22 + 0x78120004, // 0054 JMPF R4 #005A + 0x60100018, // 0055 GETGBL R4 G24 + 0x58140019, // 0056 LDCONST R5 K25 + 0x5C180600, // 0057 MOVE R6 R3 + 0x7C100400, // 0058 CALL R4 2 + 0x70020000, // 0059 JMP #005B + 0x5810001A, // 005A LDCONST R4 K26 + 0x60140018, // 005B GETGBL R5 G24 + 0x5818001B, // 005C LDCONST R6 K27 + 0x5C1C0400, // 005D MOVE R7 R2 + 0x5C200800, // 005E MOVE R8 R4 + 0x7C140600, // 005F CALL R5 3 + 0x80040A00, // 0060 RET 1 R5 + 0x8C0C0101, // 0061 GETMET R3 R0 K1 + 0x60140018, // 0062 GETGBL R5 G24 + 0x5818001C, // 0063 LDCONST R6 K28 + 0x5C1C0400, // 0064 MOVE R7 R2 + 0x7C140400, // 0065 CALL R5 2 + 0x7C0C0400, // 0066 CALL R3 2 + 0x80060600, // 0067 RET 1 K3 + 0x88080304, // 0068 GETMBR R2 R1 K4 + 0xB80E0A00, // 0069 GETNGBL R3 K5 + 0x880C0706, // 006A GETMBR R3 R3 K6 + 0x880C071D, // 006B GETMBR R3 R3 K29 + 0x1C080403, // 006C EQ R2 R2 R3 + 0x780A0005, // 006D JMPF R2 #0074 + 0x8C080108, // 006E GETMET R2 R0 K8 + 0x7C080200, // 006F CALL R2 1 + 0x8C08011E, // 0070 GETMET R2 R0 K30 + 0x8810030F, // 0071 GETMBR R4 R1 K15 + 0x7C080400, // 0072 CALL R2 2 + 0x80040400, // 0073 RET 1 R2 + 0x88080304, // 0074 GETMBR R2 R1 K4 + 0xB80E0A00, // 0075 GETNGBL R3 K5 + 0x880C0706, // 0076 GETMBR R3 R3 K6 + 0x880C071F, // 0077 GETMBR R3 R3 K31 + 0x1C080403, // 0078 EQ R2 R2 R3 + 0x780A0004, // 0079 JMPF R2 #007F + 0x60080008, // 007A GETGBL R2 G8 + 0x8C0C0120, // 007B GETMET R3 R0 K32 + 0x7C0C0200, // 007C CALL R3 1 + 0x7C080200, // 007D CALL R2 1 + 0x80040400, // 007E RET 1 R2 + 0x88080304, // 007F GETMBR R2 R1 K4 + 0xB80E0A00, // 0080 GETNGBL R3 K5 + 0x880C0706, // 0081 GETMBR R3 R3 K6 + 0x880C0721, // 0082 GETMBR R3 R3 K33 + 0x1C080403, // 0083 EQ R2 R2 R3 + 0x780A0004, // 0084 JMPF R2 #008A + 0x60080008, // 0085 GETGBL R2 G8 + 0x8C0C0122, // 0086 GETMET R3 R0 K34 + 0x7C0C0200, // 0087 CALL R3 1 + 0x7C080200, // 0088 CALL R2 1 + 0x80040400, // 0089 RET 1 R2 + 0x88080304, // 008A GETMBR R2 R1 K4 + 0xB80E0A00, // 008B GETNGBL R3 K5 + 0x880C0706, // 008C GETMBR R3 R3 K6 + 0x880C0723, // 008D GETMBR R3 R3 K35 + 0x1C080403, // 008E EQ R2 R2 R3 + 0x780A0003, // 008F JMPF R2 #0094 + 0x8808030F, // 0090 GETMBR R2 R1 K15 + 0x8C0C0108, // 0091 GETMET R3 R0 K8 + 0x7C0C0200, // 0092 CALL R3 1 + 0x80040400, // 0093 RET 1 R2 + 0x88080304, // 0094 GETMBR R2 R1 K4 + 0xB80E0A00, // 0095 GETNGBL R3 K5 + 0x880C0706, // 0096 GETMBR R3 R3 K6 + 0x880C0724, // 0097 GETMBR R3 R3 K36 + 0x1C080403, // 0098 EQ R2 R2 R3 + 0x780A0007, // 0099 JMPF R2 #00A2 + 0x8808030F, // 009A GETMBR R2 R1 K15 + 0x8C0C0108, // 009B GETMET R3 R0 K8 + 0x7C0C0200, // 009C CALL R3 1 + 0x600C0018, // 009D GETGBL R3 G24 + 0x58100025, // 009E LDCONST R4 K37 + 0x5C140400, // 009F MOVE R5 R2 + 0x7C0C0400, // 00A0 CALL R3 2 + 0x80040600, // 00A1 RET 1 R3 + 0x88080304, // 00A2 GETMBR R2 R1 K4 + 0xB80E0A00, // 00A3 GETNGBL R3 K5 + 0x880C0706, // 00A4 GETMBR R3 R3 K6 + 0x880C070D, // 00A5 GETMBR R3 R3 K13 + 0x1C080403, // 00A6 EQ R2 R2 R3 + 0x780A0052, // 00A7 JMPF R2 #00FB + 0x8808030F, // 00A8 GETMBR R2 R1 K15 + 0x8C0C0108, // 00A9 GETMET R3 R0 K8 + 0x7C0C0200, // 00AA CALL R3 1 + 0x8C0C0100, // 00AB GETMET R3 R0 K0 + 0x7C0C0200, // 00AC CALL R3 1 + 0x4C100000, // 00AD LDNIL R4 + 0x200C0604, // 00AE NE R3 R3 R4 + 0x780E0045, // 00AF JMPF R3 #00F6 + 0x8C0C0100, // 00B0 GETMET R3 R0 K0 + 0x7C0C0200, // 00B1 CALL R3 1 + 0x880C0704, // 00B2 GETMBR R3 R3 K4 + 0xB8120A00, // 00B3 GETNGBL R4 K5 + 0x88100906, // 00B4 GETMBR R4 R4 K6 + 0x88100926, // 00B5 GETMBR R4 R4 K38 + 0x1C0C0604, // 00B6 EQ R3 R3 R4 + 0x780E003D, // 00B7 JMPF R3 #00F6 + 0x8C0C0108, // 00B8 GETMET R3 R0 K8 + 0x7C0C0200, // 00B9 CALL R3 1 + 0x8C0C0127, // 00BA GETMET R3 R0 K39 + 0x7C0C0200, // 00BB CALL R3 1 + 0x1C100528, // 00BC EQ R4 R2 K40 + 0x78120003, // 00BD JMPF R4 #00C2 + 0x8C100129, // 00BE GETMET R4 R0 K41 + 0x5C180600, // 00BF MOVE R6 R3 + 0x7C100400, // 00C0 CALL R4 2 + 0x80040800, // 00C1 RET 1 R4 + 0x8810012A, // 00C2 GETMBR R4 R0 K42 + 0x8C100918, // 00C3 GETMET R4 R4 K24 + 0x5C180400, // 00C4 MOVE R6 R2 + 0x7C100400, // 00C5 CALL R4 2 + 0x78120016, // 00C6 JMPF R4 #00DE + 0x8810012A, // 00C7 GETMBR R4 R0 K42 + 0x94100802, // 00C8 GETIDX R4 R4 R2 + 0x60140004, // 00C9 GETGBL R5 G4 + 0x5C180800, // 00CA MOVE R6 R4 + 0x7C140200, // 00CB CALL R5 1 + 0x20140B2B, // 00CC NE R5 R5 K43 + 0x78160008, // 00CD JMPF R5 #00D7 + 0x60140005, // 00CE GETGBL R5 G5 + 0x5C180800, // 00CF MOVE R6 R4 + 0x7C140200, // 00D0 CALL R5 1 + 0x8C18012C, // 00D1 GETMET R6 R0 K44 + 0x5C200A00, // 00D2 MOVE R8 R5 + 0x5C240600, // 00D3 MOVE R9 R3 + 0x5C280800, // 00D4 MOVE R10 R4 + 0x7C180800, // 00D5 CALL R6 4 + 0x70020006, // 00D6 JMP #00DE + 0x8C140101, // 00D7 GETMET R5 R0 K1 + 0x601C0018, // 00D8 GETGBL R7 G24 + 0x5820002D, // 00D9 LDCONST R8 K45 + 0x5C240400, // 00DA MOVE R9 R2 + 0x7C1C0400, // 00DB CALL R7 2 + 0x7C140400, // 00DC CALL R5 2 + 0x80060600, // 00DD RET 1 K3 + 0xA4125C00, // 00DE IMPORT R4 K46 + 0x58140016, // 00DF LDCONST R5 K22 + 0x8C180918, // 00E0 GETMET R6 R4 K24 + 0xB8225E00, // 00E1 GETNGBL R8 K47 + 0x5C240400, // 00E2 MOVE R9 R2 + 0x7C180600, // 00E3 CALL R6 3 + 0x781A0005, // 00E4 JMPF R6 #00EB + 0x60180018, // 00E5 GETGBL R6 G24 + 0x581C0030, // 00E6 LDCONST R7 K48 + 0x5C200400, // 00E7 MOVE R8 R2 + 0x7C180400, // 00E8 CALL R6 2 + 0x5C140C00, // 00E9 MOVE R5 R6 + 0x70020004, // 00EA JMP #00F0 + 0x60180018, // 00EB GETGBL R6 G24 + 0x581C0031, // 00EC LDCONST R7 K49 + 0x5C200400, // 00ED MOVE R8 R2 + 0x7C180400, // 00EE CALL R6 2 + 0x5C140C00, // 00EF MOVE R5 R6 + 0x60180018, // 00F0 GETGBL R6 G24 + 0x581C0032, // 00F1 LDCONST R7 K50 + 0x5C200A00, // 00F2 MOVE R8 R5 + 0x5C240600, // 00F3 MOVE R9 R3 + 0x7C180600, // 00F4 CALL R6 3 + 0x80040C00, // 00F5 RET 1 R6 + 0x600C0018, // 00F6 GETGBL R3 G24 + 0x58100033, // 00F7 LDCONST R4 K51 + 0x5C140400, // 00F8 MOVE R5 R2 + 0x7C0C0400, // 00F9 CALL R3 2 + 0x80040600, // 00FA RET 1 R3 + 0x8C080101, // 00FB GETMET R2 R0 K1 + 0x60100018, // 00FC GETGBL R4 G24 + 0x58140034, // 00FD LDCONST R5 K52 + 0x8818030F, // 00FE GETMBR R6 R1 K15 + 0x7C100400, // 00FF CALL R4 2 + 0x7C080400, // 0100 CALL R2 2 + 0x80060600, // 0101 RET 1 K3 }) ) ); @@ -5570,42 +9608,36 @@ be_local_closure(class_SimpleDSLTranspiler_is_computed_expression_string, /* n /******************************************************************** -** Solidified function: check_right_bracket +** Solidified function: _validate_animation_factory_exists ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ be_nested_proto( - 4, /* nstack */ - 1, /* argc */ + 6, /* nstack */ + 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACKET), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(is_math_method), + /* K1 */ be_nested_str_weak(_validate_factory_function), }), - be_str_weak(check_right_bracket), + be_str_weak(_validate_animation_factory_exists), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0005, // 0004 JMPF R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0000, // 000A JMPT R2 #000C - 0x50080001, // 000B LDBOOL R2 0 1 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x80040400, // 000D RET 1 R2 + ( &(const binstruction[11]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x780A0001, // 0003 JMPF R2 #0006 + 0x50080200, // 0004 LDBOOL R2 1 0 + 0x80040400, // 0005 RET 1 R2 + 0x8C080101, // 0006 GETMET R2 R0 K1 + 0x5C100200, // 0007 MOVE R4 R1 + 0x4C140000, // 0008 LDNIL R5 + 0x7C080600, // 0009 CALL R2 3 + 0x80040400, // 000A RET 1 R2 }) ) ); @@ -5613,9 +9645,604 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ /******************************************************************** -** Solidified function: create_computation_closure_from_string +** Solidified function: process_function_call ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* name */ + be_nested_proto( + 10, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[25]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(IDENTIFIER), + /* K6 */ be_nested_str_weak(KEYWORD), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Expected_X20function_X20name), + /* K11 */ be_nested_str_weak(nil), + /* K12 */ be_nested_str_weak(is_math_method), + /* K13 */ be_nested_str_weak(process_function_arguments), + /* K14 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K15 */ be_nested_str_weak(log), + /* K16 */ be_nested_str_weak(process_log_call), + /* K17 */ be_nested_str_weak(expression), + /* K18 */ be_nested_str_weak(template_definitions), + /* K19 */ be_nested_str_weak(contains), + /* K20 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K21 */ be_nested_str_weak(engine), + /* K22 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K23 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K24 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_function_call), + &be_const_str_solidified, + ( &(const binstruction[85]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x580C0001, // 0002 LDCONST R3 K1 + 0x4C100000, // 0003 LDNIL R4 + 0x20100404, // 0004 NE R4 R2 R4 + 0x7812000F, // 0005 JMPF R4 #0016 + 0x88100502, // 0006 GETMBR R4 R2 K2 + 0xB8160600, // 0007 GETNGBL R5 K3 + 0x88140B04, // 0008 GETMBR R5 R5 K4 + 0x88140B05, // 0009 GETMBR R5 R5 K5 + 0x1C100805, // 000A EQ R4 R4 R5 + 0x74120005, // 000B JMPT R4 #0012 + 0x88100502, // 000C GETMBR R4 R2 K2 + 0xB8160600, // 000D GETNGBL R5 K3 + 0x88140B04, // 000E GETMBR R5 R5 K4 + 0x88140B06, // 000F GETMBR R5 R5 K6 + 0x1C100805, // 0010 EQ R4 R4 R5 + 0x78120003, // 0011 JMPF R4 #0016 + 0x880C0507, // 0012 GETMBR R3 R2 K7 + 0x8C100108, // 0013 GETMET R4 R0 K8 + 0x7C100200, // 0014 CALL R4 1 + 0x70020003, // 0015 JMP #001A + 0x8C100109, // 0016 GETMET R4 R0 K9 + 0x5818000A, // 0017 LDCONST R6 K10 + 0x7C100400, // 0018 CALL R4 2 + 0x80061600, // 0019 RET 1 K11 + 0x8C10010C, // 001A GETMET R4 R0 K12 + 0x5C180600, // 001B MOVE R6 R3 + 0x7C100400, // 001C CALL R4 2 + 0x78120007, // 001D JMPF R4 #0026 + 0x8C10010D, // 001E GETMET R4 R0 K13 + 0x7C100200, // 001F CALL R4 1 + 0x60140018, // 0020 GETGBL R5 G24 + 0x5818000E, // 0021 LDCONST R6 K14 + 0x5C1C0600, // 0022 MOVE R7 R3 + 0x5C200800, // 0023 MOVE R8 R4 + 0x7C140600, // 0024 CALL R5 3 + 0x80040A00, // 0025 RET 1 R5 + 0x1C10070F, // 0026 EQ R4 R3 K15 + 0x78120007, // 0027 JMPF R4 #0030 + 0x8C10010D, // 0028 GETMET R4 R0 K13 + 0x7C100200, // 0029 CALL R4 1 + 0x8C140110, // 002A GETMET R5 R0 K16 + 0x5C1C0800, // 002B MOVE R7 R4 + 0x58200011, // 002C LDCONST R8 K17 + 0x58240001, // 002D LDCONST R9 K1 + 0x7C140800, // 002E CALL R5 4 + 0x80040A00, // 002F RET 1 R5 + 0x8C10010D, // 0030 GETMET R4 R0 K13 + 0x7C100200, // 0031 CALL R4 1 + 0x88140112, // 0032 GETMBR R5 R0 K18 + 0x8C140B13, // 0033 GETMET R5 R5 K19 + 0x5C1C0600, // 0034 MOVE R7 R3 + 0x7C140400, // 0035 CALL R5 2 + 0x7816000E, // 0036 JMPF R5 #0046 + 0x20140901, // 0037 NE R5 R4 K1 + 0x78160004, // 0038 JMPF R5 #003E + 0x60140018, // 0039 GETGBL R5 G24 + 0x58180014, // 003A LDCONST R6 K20 + 0x5C1C0800, // 003B MOVE R7 R4 + 0x7C140400, // 003C CALL R5 2 + 0x70020000, // 003D JMP #003F + 0x58140015, // 003E LDCONST R5 K21 + 0x60180018, // 003F GETGBL R6 G24 + 0x581C0016, // 0040 LDCONST R7 K22 + 0x5C200600, // 0041 MOVE R8 R3 + 0x5C240A00, // 0042 MOVE R9 R5 + 0x7C180600, // 0043 CALL R6 3 + 0x80040C00, // 0044 RET 1 R6 + 0x7002000D, // 0045 JMP #0054 + 0x20140901, // 0046 NE R5 R4 K1 + 0x78160006, // 0047 JMPF R5 #004F + 0x60140018, // 0048 GETGBL R5 G24 + 0x58180017, // 0049 LDCONST R6 K23 + 0x5C1C0600, // 004A MOVE R7 R3 + 0x5C200800, // 004B MOVE R8 R4 + 0x7C140600, // 004C CALL R5 3 + 0x80040A00, // 004D RET 1 R5 + 0x70020004, // 004E JMP #0054 + 0x60140018, // 004F GETGBL R5 G24 + 0x58180018, // 0050 LDCONST R6 K24 + 0x5C1C0600, // 0051 MOVE R7 R3 + 0x7C140400, // 0052 CALL R5 2 + 0x80040A00, // 0053 RET 1 R5 + 0x80000000, // 0054 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_generic +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_generic, /* name */ + be_nested_proto( + 15, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[24]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_create_instance_for_validation), + /* K2 */ be_nested_str_weak(at_end), + /* K3 */ be_nested_str_weak(check_right_paren), + /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K5 */ be_nested_str_weak(expect_identifier), + /* K6 */ be_nested_str_weak(_validate_single_parameter), + /* K7 */ be_nested_str_weak(expect_assign), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(argument), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(add), + /* K12 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K13 */ be_nested_str_weak(current), + /* K14 */ be_nested_str_weak(type), + /* K15 */ be_nested_str_weak(animation_dsl), + /* K16 */ be_nested_str_weak(Token), + /* K17 */ be_nested_str_weak(COMMENT), + /* K18 */ be_nested_str_weak(next), + /* K19 */ be_nested_str_weak(COMMA), + /* K20 */ be_nested_str_weak(NEWLINE), + /* K21 */ be_nested_str_weak(error), + /* K22 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K23 */ be_nested_str_weak(expect_right_paren), + }), + be_str_weak(_process_named_arguments_generic), + &be_const_str_solidified, + ( &(const binstruction[109]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x8C0C0101, // 0002 GETMET R3 R0 K1 + 0x5C140400, // 0003 MOVE R5 R2 + 0x7C0C0400, // 0004 CALL R3 2 + 0x8C100102, // 0005 GETMET R4 R0 K2 + 0x7C100200, // 0006 CALL R4 1 + 0x74120061, // 0007 JMPT R4 #006A + 0x8C100103, // 0008 GETMET R4 R0 K3 + 0x7C100200, // 0009 CALL R4 1 + 0x7412005E, // 000A JMPT R4 #006A + 0x8C100104, // 000B GETMET R4 R0 K4 + 0x7C100200, // 000C CALL R4 1 + 0x8C100103, // 000D GETMET R4 R0 K3 + 0x7C100200, // 000E CALL R4 1 + 0x78120000, // 000F JMPF R4 #0011 + 0x70020058, // 0010 JMP #006A + 0x8C100105, // 0011 GETMET R4 R0 K5 + 0x7C100200, // 0012 CALL R4 1 + 0x4C140000, // 0013 LDNIL R5 + 0x20140605, // 0014 NE R5 R3 R5 + 0x78160004, // 0015 JMPF R5 #001B + 0x8C140106, // 0016 GETMET R5 R0 K6 + 0x5C1C0400, // 0017 MOVE R7 R2 + 0x5C200800, // 0018 MOVE R8 R4 + 0x5C240600, // 0019 MOVE R9 R3 + 0x7C140800, // 001A CALL R5 4 + 0x8C140107, // 001B GETMET R5 R0 K7 + 0x7C140200, // 001C CALL R5 1 + 0x8C140108, // 001D GETMET R5 R0 K8 + 0x581C0009, // 001E LDCONST R7 K9 + 0x7C140400, // 001F CALL R5 2 + 0x8C18010A, // 0020 GETMET R6 R0 K10 + 0x7C180200, // 0021 CALL R6 1 + 0x8C1C010B, // 0022 GETMET R7 R0 K11 + 0x60240018, // 0023 GETGBL R9 G24 + 0x5828000C, // 0024 LDCONST R10 K12 + 0x5C2C0200, // 0025 MOVE R11 R1 + 0x5C300800, // 0026 MOVE R12 R4 + 0x5C340A00, // 0027 MOVE R13 R5 + 0x5C380C00, // 0028 MOVE R14 R6 + 0x7C240A00, // 0029 CALL R9 5 + 0x7C1C0400, // 002A CALL R7 2 + 0x8C1C0102, // 002B GETMET R7 R0 K2 + 0x7C1C0200, // 002C CALL R7 1 + 0x741E000F, // 002D JMPT R7 #003E + 0x8C1C010D, // 002E GETMET R7 R0 K13 + 0x7C1C0200, // 002F CALL R7 1 + 0x4C200000, // 0030 LDNIL R8 + 0x20200E08, // 0031 NE R8 R7 R8 + 0x78220008, // 0032 JMPF R8 #003C + 0x88200F0E, // 0033 GETMBR R8 R7 K14 + 0xB8261E00, // 0034 GETNGBL R9 K15 + 0x88241310, // 0035 GETMBR R9 R9 K16 + 0x88241311, // 0036 GETMBR R9 R9 K17 + 0x1C201009, // 0037 EQ R8 R8 R9 + 0x78220002, // 0038 JMPF R8 #003C + 0x8C200112, // 0039 GETMET R8 R0 K18 + 0x7C200200, // 003A CALL R8 1 + 0x70020000, // 003B JMP #003D + 0x70020000, // 003C JMP #003E + 0x7001FFEC, // 003D JMP #002B + 0x8C1C010D, // 003E GETMET R7 R0 K13 + 0x7C1C0200, // 003F CALL R7 1 + 0x4C200000, // 0040 LDNIL R8 + 0x201C0E08, // 0041 NE R7 R7 R8 + 0x781E000C, // 0042 JMPF R7 #0050 + 0x8C1C010D, // 0043 GETMET R7 R0 K13 + 0x7C1C0200, // 0044 CALL R7 1 + 0x881C0F0E, // 0045 GETMBR R7 R7 K14 + 0xB8221E00, // 0046 GETNGBL R8 K15 + 0x88201110, // 0047 GETMBR R8 R8 K16 + 0x88201113, // 0048 GETMBR R8 R8 K19 + 0x1C1C0E08, // 0049 EQ R7 R7 R8 + 0x781E0004, // 004A JMPF R7 #0050 + 0x8C1C0112, // 004B GETMET R7 R0 K18 + 0x7C1C0200, // 004C CALL R7 1 + 0x8C1C0104, // 004D GETMET R7 R0 K4 + 0x7C1C0200, // 004E CALL R7 1 + 0x70020018, // 004F JMP #0069 + 0x8C1C010D, // 0050 GETMET R7 R0 K13 + 0x7C1C0200, // 0051 CALL R7 1 + 0x4C200000, // 0052 LDNIL R8 + 0x201C0E08, // 0053 NE R7 R7 R8 + 0x781E000C, // 0054 JMPF R7 #0062 + 0x8C1C010D, // 0055 GETMET R7 R0 K13 + 0x7C1C0200, // 0056 CALL R7 1 + 0x881C0F0E, // 0057 GETMBR R7 R7 K14 + 0xB8221E00, // 0058 GETNGBL R8 K15 + 0x88201110, // 0059 GETMBR R8 R8 K16 + 0x88201114, // 005A GETMBR R8 R8 K20 + 0x1C1C0E08, // 005B EQ R7 R7 R8 + 0x781E0004, // 005C JMPF R7 #0062 + 0x8C1C0112, // 005D GETMET R7 R0 K18 + 0x7C1C0200, // 005E CALL R7 1 + 0x8C1C0104, // 005F GETMET R7 R0 K4 + 0x7C1C0200, // 0060 CALL R7 1 + 0x70020006, // 0061 JMP #0069 + 0x8C1C0103, // 0062 GETMET R7 R0 K3 + 0x7C1C0200, // 0063 CALL R7 1 + 0x741E0003, // 0064 JMPT R7 #0069 + 0x8C1C0115, // 0065 GETMET R7 R0 K21 + 0x58240016, // 0066 LDCONST R9 K22 + 0x7C1C0400, // 0067 CALL R7 2 + 0x70020000, // 0068 JMP #006A + 0x7001FF9A, // 0069 JMP #0005 + 0x8C100117, // 006A GETMET R4 R0 K23 + 0x7C100200, // 006B CALL R4 1 + 0x80000000, // 006C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: join_output +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_join_output, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(), + /* K1 */ be_nested_str_weak(output), + /* K2 */ be_nested_str_weak(_X0A), + /* K3 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(join_output), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0x60080010, // 0001 GETGBL R2 G16 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0xA8020004, // 0004 EXBLK 0 #000A + 0x5C0C0400, // 0005 MOVE R3 R2 + 0x7C0C0000, // 0006 CALL R3 0 + 0x00100702, // 0007 ADD R4 R3 K2 + 0x00040204, // 0008 ADD R1 R1 R4 + 0x7001FFFA, // 0009 JMP #0005 + 0x58080003, // 000A LDCONST R2 K3 + 0xAC080200, // 000B CATCH R2 1 0 + 0xB0080000, // 000C RAISE 2 R0 R0 + 0x80040200, // 000D RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_expression_argument +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_expression_argument, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(process_additive_expression_raw), + }), + be_str_weak(process_expression_argument), + &be_const_str_solidified, + ( &(const binstruction[ 3]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x80040200, // 0002 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_assignment_generic +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, /* name */ + be_nested_proto( + 18, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[27]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(DOT), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(symbol_table), + /* K8 */ be_nested_str_weak(contains), + /* K9 */ be_nested_str_weak(string), + /* K10 */ be_nested_str_weak(_validate_single_parameter), + /* K11 */ be_nested_str_weak(error), + /* K12 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20assignments_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), + /* K13 */ be_nested_str_weak(expect_assign), + /* K14 */ be_nested_str_weak(process_value), + /* K15 */ be_nested_str_weak(property), + /* K16 */ be_nested_str_weak(collect_inline_comment), + /* K17 */ be_nested_str_weak(introspect), + /* K18 */ be_nested_str_weak(), + /* K19 */ be_nested_str_weak(animation), + /* K20 */ be_nested_str_weak(animation_X2E_X25s), + /* K21 */ be_nested_str_weak(_X25s_), + /* K22 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s_X2E_X25s_X20_X3D_X20_X25s_X20end), + /* K23 */ be_nested_str_weak(add), + /* K24 */ be_nested_str_weak(_X25s_X25s_X2Epush_X28animation_X2Ecreate_assign_step_X28_X25s_X29_X29_X25s), + /* K25 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), + /* K26 */ be_nested_str_weak(skip_statement), + }), + be_str_weak(process_sequence_assignment_generic), + &be_const_str_solidified, + ( &(const binstruction[97]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x8C100101, // 0002 GETMET R4 R0 K1 + 0x7C100200, // 0003 CALL R4 1 + 0x4C140000, // 0004 LDNIL R5 + 0x20100805, // 0005 NE R4 R4 R5 + 0x78120050, // 0006 JMPF R4 #0058 + 0x8C100101, // 0007 GETMET R4 R0 K1 + 0x7C100200, // 0008 CALL R4 1 + 0x88100902, // 0009 GETMBR R4 R4 K2 + 0xB8160600, // 000A GETNGBL R5 K3 + 0x88140B04, // 000B GETMBR R5 R5 K4 + 0x88140B05, // 000C GETMBR R5 R5 K5 + 0x1C100805, // 000D EQ R4 R4 R5 + 0x78120048, // 000E JMPF R4 #0058 + 0x8C100106, // 000F GETMET R4 R0 K6 + 0x7C100200, // 0010 CALL R4 1 + 0x8C100100, // 0011 GETMET R4 R0 K0 + 0x7C100200, // 0012 CALL R4 1 + 0x88140107, // 0013 GETMBR R5 R0 K7 + 0x8C140B08, // 0014 GETMET R5 R5 K8 + 0x5C1C0600, // 0015 MOVE R7 R3 + 0x7C140400, // 0016 CALL R5 2 + 0x78160016, // 0017 JMPF R5 #002F + 0x88140107, // 0018 GETMBR R5 R0 K7 + 0x94140A03, // 0019 GETIDX R5 R5 R3 + 0x60180004, // 001A GETGBL R6 G4 + 0x5C1C0A00, // 001B MOVE R7 R5 + 0x7C180200, // 001C CALL R6 1 + 0x20180D09, // 001D NE R6 R6 K9 + 0x781A0008, // 001E JMPF R6 #0028 + 0x60180005, // 001F GETGBL R6 G5 + 0x5C1C0A00, // 0020 MOVE R7 R5 + 0x7C180200, // 0021 CALL R6 1 + 0x8C1C010A, // 0022 GETMET R7 R0 K10 + 0x5C240C00, // 0023 MOVE R9 R6 + 0x5C280800, // 0024 MOVE R10 R4 + 0x5C2C0A00, // 0025 MOVE R11 R5 + 0x7C1C0800, // 0026 CALL R7 4 + 0x70020006, // 0027 JMP #002F + 0x8C18010B, // 0028 GETMET R6 R0 K11 + 0x60200018, // 0029 GETGBL R8 G24 + 0x5824000C, // 002A LDCONST R9 K12 + 0x5C280600, // 002B MOVE R10 R3 + 0x7C200400, // 002C CALL R8 2 + 0x7C180400, // 002D CALL R6 2 + 0x80000C00, // 002E RET 0 + 0x8C14010D, // 002F GETMET R5 R0 K13 + 0x7C140200, // 0030 CALL R5 1 + 0x8C14010E, // 0031 GETMET R5 R0 K14 + 0x581C000F, // 0032 LDCONST R7 K15 + 0x7C140400, // 0033 CALL R5 2 + 0x8C180110, // 0034 GETMET R6 R0 K16 + 0x7C180200, // 0035 CALL R6 1 + 0xA41E2200, // 0036 IMPORT R7 K17 + 0x58200012, // 0037 LDCONST R8 K18 + 0x8C240F08, // 0038 GETMET R9 R7 K8 + 0xB82E2600, // 0039 GETNGBL R11 K19 + 0x5C300600, // 003A MOVE R12 R3 + 0x7C240600, // 003B CALL R9 3 + 0x78260005, // 003C JMPF R9 #0043 + 0x60240018, // 003D GETGBL R9 G24 + 0x58280014, // 003E LDCONST R10 K20 + 0x5C2C0600, // 003F MOVE R11 R3 + 0x7C240400, // 0040 CALL R9 2 + 0x5C201200, // 0041 MOVE R8 R9 + 0x70020004, // 0042 JMP #0048 + 0x60240018, // 0043 GETGBL R9 G24 + 0x58280015, // 0044 LDCONST R10 K21 + 0x5C2C0600, // 0045 MOVE R11 R3 + 0x7C240400, // 0046 CALL R9 2 + 0x5C201200, // 0047 MOVE R8 R9 + 0x60240018, // 0048 GETGBL R9 G24 + 0x58280016, // 0049 LDCONST R10 K22 + 0x5C2C1000, // 004A MOVE R11 R8 + 0x5C300800, // 004B MOVE R12 R4 + 0x5C340A00, // 004C MOVE R13 R5 + 0x7C240800, // 004D CALL R9 4 + 0x8C280117, // 004E GETMET R10 R0 K23 + 0x60300018, // 004F GETGBL R12 G24 + 0x58340018, // 0050 LDCONST R13 K24 + 0x5C380200, // 0051 MOVE R14 R1 + 0x5C3C0400, // 0052 MOVE R15 R2 + 0x5C401200, // 0053 MOVE R16 R9 + 0x5C440C00, // 0054 MOVE R17 R6 + 0x7C300A00, // 0055 CALL R12 5 + 0x7C280400, // 0056 CALL R10 2 + 0x70020007, // 0057 JMP #0060 + 0x8C10010B, // 0058 GETMET R4 R0 K11 + 0x60180018, // 0059 GETGBL R6 G24 + 0x581C0019, // 005A LDCONST R7 K25 + 0x5C200600, // 005B MOVE R8 R3 + 0x7C180400, // 005C CALL R6 2 + 0x7C100400, // 005D CALL R4 2 + 0x8C10011A, // 005E GETMET R4 R0 K26 + 0x7C100200, // 005F CALL R4 1 + 0x80000000, // 0060 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: convert_to_vrgb +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_convert_to_vrgb, /* name */ + be_nested_proto( + 12, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(format), + /* K3 */ be_nested_str_weak(_X2502X), + /* K4 */ be_nested_str_weak(FFFFFF), + /* K5 */ be_nested_str_weak(startswith), + /* K6 */ be_nested_str_weak(0x), + /* K7 */ be_const_int(2), + }), + be_str_weak(convert_to_vrgb), + &be_const_str_solidified, + ( &(const binstruction[54]) { /* code */ + 0xA40E0000, // 0000 IMPORT R3 K0 + 0x60100009, // 0001 GETGBL R4 G9 + 0x6014000A, // 0002 GETGBL R5 G10 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C140200, // 0004 CALL R5 1 + 0x7C100200, // 0005 CALL R4 1 + 0x14140901, // 0006 LT R5 R4 K1 + 0x78160001, // 0007 JMPF R5 #000A + 0x58100001, // 0008 LDCONST R4 K1 + 0x70020003, // 0009 JMP #000E + 0x541600FE, // 000A LDINT R5 255 + 0x24140805, // 000B GT R5 R4 R5 + 0x78160000, // 000C JMPF R5 #000E + 0x541200FE, // 000D LDINT R4 255 + 0x8C140702, // 000E GETMET R5 R3 K2 + 0x581C0003, // 000F LDCONST R7 K3 + 0x5C200800, // 0010 MOVE R8 R4 + 0x7C140600, // 0011 CALL R5 3 + 0x60180008, // 0012 GETGBL R6 G8 + 0x5C1C0400, // 0013 MOVE R7 R2 + 0x7C180200, // 0014 CALL R6 1 + 0x581C0004, // 0015 LDCONST R7 K4 + 0x8C200705, // 0016 GETMET R8 R3 K5 + 0x5C280C00, // 0017 MOVE R10 R6 + 0x582C0006, // 0018 LDCONST R11 K6 + 0x7C200600, // 0019 CALL R8 3 + 0x7822000A, // 001A JMPF R8 #0026 + 0x6020000C, // 001B GETGBL R8 G12 + 0x5C240C00, // 001C MOVE R9 R6 + 0x7C200200, // 001D CALL R8 1 + 0x54260009, // 001E LDINT R9 10 + 0x28201009, // 001F GE R8 R8 R9 + 0x78220004, // 0020 JMPF R8 #0026 + 0x54220003, // 0021 LDINT R8 4 + 0x54260008, // 0022 LDINT R9 9 + 0x40201009, // 0023 CONNECT R8 R8 R9 + 0x941C0C08, // 0024 GETIDX R7 R6 R8 + 0x7002000D, // 0025 JMP #0034 + 0x8C200705, // 0026 GETMET R8 R3 K5 + 0x5C280C00, // 0027 MOVE R10 R6 + 0x582C0006, // 0028 LDCONST R11 K6 + 0x7C200600, // 0029 CALL R8 3 + 0x78220008, // 002A JMPF R8 #0034 + 0x6020000C, // 002B GETGBL R8 G12 + 0x5C240C00, // 002C MOVE R9 R6 + 0x7C200200, // 002D CALL R8 1 + 0x54260007, // 002E LDINT R9 8 + 0x1C201009, // 002F EQ R8 R8 R9 + 0x78220002, // 0030 JMPF R8 #0034 + 0x54220006, // 0031 LDINT R8 7 + 0x40220E08, // 0032 CONNECT R8 K7 R8 + 0x941C0C08, // 0033 GETIDX R7 R6 R8 + 0x00200A07, // 0034 ADD R8 R5 R7 + 0x80041000, // 0035 RET 1 R8 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: error +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_error, /* name */ be_nested_proto( 9, /* nstack */ 2, /* argc */ @@ -5625,103 +10252,36 @@ be_local_closure(class_SimpleDSLTranspiler_create_computation_closure_from_strin 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(transform_expression_for_closure), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(_X20_X20), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(replace), - /* K6 */ be_nested_str_weak(_X20), - /* K7 */ be_nested_str_weak(def_X20_X28self_X29_X20return_X20_X25s_X20end), - /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), - }), - be_str_weak(create_computation_closure_from_string), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0101, // 0001 GETMET R3 R0 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x8C100502, // 0004 GETMET R4 R2 K2 - 0x5C180600, // 0005 MOVE R6 R3 - 0x581C0003, // 0006 LDCONST R7 K3 - 0x7C100600, // 0007 CALL R4 3 - 0x28100904, // 0008 GE R4 R4 K4 - 0x78120006, // 0009 JMPF R4 #0011 - 0x8C100505, // 000A GETMET R4 R2 K5 - 0x5C180600, // 000B MOVE R6 R3 - 0x581C0003, // 000C LDCONST R7 K3 - 0x58200006, // 000D LDCONST R8 K6 - 0x7C100800, // 000E CALL R4 4 - 0x5C0C0800, // 000F MOVE R3 R4 - 0x7001FFF2, // 0010 JMP #0004 - 0x60100018, // 0011 GETGBL R4 G24 - 0x58140007, // 0012 LDCONST R5 K7 - 0x5C180600, // 0013 MOVE R6 R3 - 0x7C100400, // 0014 CALL R4 2 - 0x60140018, // 0015 GETGBL R5 G24 - 0x58180008, // 0016 LDCONST R6 K8 - 0x5C1C0800, // 0017 MOVE R7 R4 - 0x7C140400, // 0018 CALL R5 2 - 0x80040A00, // 0019 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_keyword -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ + ( &(const bvalue[ 6]) { /* constants */ /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(KEYWORD), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), + /* K1 */ be_nested_str_weak(line), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(errors), + /* K4 */ be_nested_str_weak(push), + /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), }), - be_str_weak(expect_keyword), + be_str_weak(error), &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ + ( &(const binstruction[19]) { /* code */ 0x8C080100, // 0000 GETMET R2 R0 K0 0x7C080200, // 0001 CALL R2 1 0x4C0C0000, // 0002 LDNIL R3 - 0x200C0403, // 0003 NE R3 R2 R3 - 0x780E000B, // 0004 JMPF R3 #0011 - 0x880C0501, // 0005 GETMBR R3 R2 K1 - 0xB8120400, // 0006 GETNGBL R4 K2 - 0x88100903, // 0007 GETMBR R4 R4 K3 - 0x88100904, // 0008 GETMBR R4 R4 K4 - 0x1C0C0604, // 0009 EQ R3 R3 R4 - 0x780E0005, // 000A JMPF R3 #0011 - 0x880C0505, // 000B GETMBR R3 R2 K5 - 0x1C0C0601, // 000C EQ R3 R3 R1 - 0x780E0002, // 000D JMPF R3 #0011 - 0x8C0C0106, // 000E GETMET R3 R0 K6 - 0x7C0C0200, // 000F CALL R3 1 - 0x70020005, // 0010 JMP #0017 - 0x8C0C0107, // 0011 GETMET R3 R0 K7 - 0x60140018, // 0012 GETGBL R5 G24 - 0x58180008, // 0013 LDCONST R6 K8 - 0x5C1C0200, // 0014 MOVE R7 R1 - 0x7C140400, // 0015 CALL R5 2 - 0x7C0C0400, // 0016 CALL R3 2 - 0x80000000, // 0017 RET 0 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080100, // 0005 GETMET R2 R0 K0 + 0x7C080200, // 0006 CALL R2 1 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0x70020000, // 0008 JMP #000A + 0x58080002, // 0009 LDCONST R2 K2 + 0x880C0103, // 000A GETMBR R3 R0 K3 + 0x8C0C0704, // 000B GETMET R3 R3 K4 + 0x60140018, // 000C GETGBL R5 G24 + 0x58180005, // 000D LDCONST R6 K5 + 0x5C1C0400, // 000E MOVE R7 R2 + 0x5C200200, // 000F MOVE R8 R1 + 0x7C140600, // 0010 CALL R5 3 + 0x7C0C0400, // 0011 CALL R3 2 + 0x80000000, // 0012 RET 0 }) ) ); @@ -5729,114 +10289,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ /******************************************************************** -** Solidified function: add +** Solidified function: process_property_assignment ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_add, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* name */ be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(output), - /* K1 */ be_nested_str_weak(push), - }), - be_str_weak(add), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_init, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(tokens), - /* K1 */ be_nested_str_weak(pos), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(output), - /* K4 */ be_nested_str_weak(errors), - /* K5 */ be_nested_str_weak(run_statements), - /* K6 */ be_nested_str_weak(first_statement), - /* K7 */ be_nested_str_weak(strip_initialized), - /* K8 */ be_nested_str_weak(sequence_names), - /* K9 */ be_nested_str_weak(symbol_table), - /* K10 */ be_nested_str_weak(indent_level), - /* K11 */ be_nested_str_weak(template_definitions), - /* K12 */ be_nested_str_weak(has_template_calls), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[35]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x5C080200, // 0003 MOVE R2 R1 - 0x70020001, // 0004 JMP #0007 - 0x60080012, // 0005 GETGBL R2 G18 - 0x7C080000, // 0006 CALL R2 0 - 0x90020002, // 0007 SETMBR R0 K0 R2 - 0x90020302, // 0008 SETMBR R0 K1 K2 - 0x60080012, // 0009 GETGBL R2 G18 - 0x7C080000, // 000A CALL R2 0 - 0x90020602, // 000B SETMBR R0 K3 R2 - 0x60080012, // 000C GETGBL R2 G18 - 0x7C080000, // 000D CALL R2 0 - 0x90020802, // 000E SETMBR R0 K4 R2 - 0x60080012, // 000F GETGBL R2 G18 - 0x7C080000, // 0010 CALL R2 0 - 0x90020A02, // 0011 SETMBR R0 K5 R2 - 0x50080200, // 0012 LDBOOL R2 1 0 - 0x90020C02, // 0013 SETMBR R0 K6 R2 - 0x50080000, // 0014 LDBOOL R2 0 0 - 0x90020E02, // 0015 SETMBR R0 K7 R2 - 0x60080013, // 0016 GETGBL R2 G19 - 0x7C080000, // 0017 CALL R2 0 - 0x90021002, // 0018 SETMBR R0 K8 R2 - 0x60080013, // 0019 GETGBL R2 G19 - 0x7C080000, // 001A CALL R2 0 - 0x90021202, // 001B SETMBR R0 K9 R2 - 0x90021502, // 001C SETMBR R0 K10 K2 - 0x60080013, // 001D GETGBL R2 G19 - 0x7C080000, // 001E CALL R2 0 - 0x90021602, // 001F SETMBR R0 K11 R2 - 0x50080000, // 0020 LDBOOL R2 0 0 - 0x90021802, // 0021 SETMBR R0 K12 R2 - 0x80000000, // 0022 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: at_end -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ - be_nested_proto( - 4, /* nstack */ + 15, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -5844,40 +10301,203 @@ be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(animation_dsl), - /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(EOF), + ( &(const bvalue[37]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(LEFT_PAREN), + /* K6 */ be_nested_str_weak(log), + /* K7 */ be_nested_str_weak(process_function_arguments), + /* K8 */ be_nested_str_weak(collect_inline_comment), + /* K9 */ be_nested_str_weak(process_log_call), + /* K10 */ be_nested_str_weak(standalone), + /* K11 */ be_nested_str_weak(add), + /* K12 */ be_nested_str_weak(template_definitions), + /* K13 */ be_nested_str_weak(contains), + /* K14 */ be_nested_str_weak(), + /* K15 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K16 */ be_nested_str_weak(engine), + /* K17 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), + /* K18 */ be_nested_str_weak(has_template_calls), + /* K19 */ be_nested_str_weak(error), + /* K20 */ be_nested_str_weak(Standalone_X20function_X20calls_X20are_X20only_X20supported_X20for_X20templates_X2E_X20_X27_X25s_X27_X20is_X20not_X20a_X20template_X2E), + /* K21 */ be_nested_str_weak(skip_statement), + /* K22 */ be_nested_str_weak(DOT), + /* K23 */ be_nested_str_weak(next), + /* K24 */ be_nested_str_weak(symbol_table), + /* K25 */ be_nested_str_weak(string), + /* K26 */ be_nested_str_weak(_validate_single_parameter), + /* K27 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20assignments_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), + /* K28 */ be_nested_str_weak(expect_assign), + /* K29 */ be_nested_str_weak(process_value), + /* K30 */ be_nested_str_weak(property), + /* K31 */ be_nested_str_weak(introspect), + /* K32 */ be_nested_str_weak(animation), + /* K33 */ be_nested_str_weak(animation_X2E_X25s), + /* K34 */ be_nested_str_weak(_X25s_), + /* K35 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K36 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), }), - be_str_weak(at_end), + be_str_weak(process_property_assignment), &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 + ( &(const binstruction[155]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C080101, // 0002 GETMET R2 R0 K1 0x7C080200, // 0003 CALL R2 1 - 0x28040202, // 0004 GE R1 R1 R2 - 0x7406000D, // 0005 JMPT R1 #0014 - 0x8C040102, // 0006 GETMET R1 R0 K2 - 0x7C040200, // 0007 CALL R1 1 - 0x4C080000, // 0008 LDNIL R2 - 0x20040202, // 0009 NE R1 R1 R2 - 0x78060007, // 000A JMPF R1 #0013 - 0x8C040102, // 000B GETMET R1 R0 K2 - 0x7C040200, // 000C CALL R1 1 - 0x88040303, // 000D GETMBR R1 R1 K3 - 0xB80A0800, // 000E GETNGBL R2 K4 - 0x88080505, // 000F GETMBR R2 R2 K5 - 0x88080506, // 0010 GETMBR R2 R2 K6 - 0x1C040202, // 0011 EQ R1 R1 R2 - 0x74060000, // 0012 JMPT R1 #0014 - 0x50040001, // 0013 LDBOOL R1 0 1 - 0x50040200, // 0014 LDBOOL R1 1 0 - 0x80040200, // 0015 RET 1 R1 + 0x4C0C0000, // 0004 LDNIL R3 + 0x20080403, // 0005 NE R2 R2 R3 + 0x780A003B, // 0006 JMPF R2 #0043 + 0x8C080101, // 0007 GETMET R2 R0 K1 + 0x7C080200, // 0008 CALL R2 1 + 0x88080502, // 0009 GETMBR R2 R2 K2 + 0xB80E0600, // 000A GETNGBL R3 K3 + 0x880C0704, // 000B GETMBR R3 R3 K4 + 0x880C0705, // 000C GETMBR R3 R3 K5 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A0033, // 000E JMPF R2 #0043 + 0x1C080306, // 000F EQ R2 R1 K6 + 0x780A000C, // 0010 JMPF R2 #001E + 0x8C080107, // 0011 GETMET R2 R0 K7 + 0x7C080200, // 0012 CALL R2 1 + 0x8C0C0108, // 0013 GETMET R3 R0 K8 + 0x7C0C0200, // 0014 CALL R3 1 + 0x8C100109, // 0015 GETMET R4 R0 K9 + 0x5C180400, // 0016 MOVE R6 R2 + 0x581C000A, // 0017 LDCONST R7 K10 + 0x5C200600, // 0018 MOVE R8 R3 + 0x7C100800, // 0019 CALL R4 4 + 0x8C14010B, // 001A GETMET R5 R0 K11 + 0x5C1C0800, // 001B MOVE R7 R4 + 0x7C140400, // 001C CALL R5 2 + 0x80000A00, // 001D RET 0 + 0x8808010C, // 001E GETMBR R2 R0 K12 + 0x8C08050D, // 001F GETMET R2 R2 K13 + 0x5C100200, // 0020 MOVE R4 R1 + 0x7C080400, // 0021 CALL R2 2 + 0x780A0016, // 0022 JMPF R2 #003A + 0x8C080107, // 0023 GETMET R2 R0 K7 + 0x7C080200, // 0024 CALL R2 1 + 0x200C050E, // 0025 NE R3 R2 K14 + 0x780E0004, // 0026 JMPF R3 #002C + 0x600C0018, // 0027 GETGBL R3 G24 + 0x5810000F, // 0028 LDCONST R4 K15 + 0x5C140400, // 0029 MOVE R5 R2 + 0x7C0C0400, // 002A CALL R3 2 + 0x70020000, // 002B JMP #002D + 0x580C0010, // 002C LDCONST R3 K16 + 0x8C100108, // 002D GETMET R4 R0 K8 + 0x7C100200, // 002E CALL R4 1 + 0x8C14010B, // 002F GETMET R5 R0 K11 + 0x601C0018, // 0030 GETGBL R7 G24 + 0x58200011, // 0031 LDCONST R8 K17 + 0x5C240200, // 0032 MOVE R9 R1 + 0x5C280600, // 0033 MOVE R10 R3 + 0x5C2C0800, // 0034 MOVE R11 R4 + 0x7C1C0800, // 0035 CALL R7 4 + 0x7C140400, // 0036 CALL R5 2 + 0x50140200, // 0037 LDBOOL R5 1 0 + 0x90022405, // 0038 SETMBR R0 K18 R5 + 0x70020007, // 0039 JMP #0042 + 0x8C080113, // 003A GETMET R2 R0 K19 + 0x60100018, // 003B GETGBL R4 G24 + 0x58140014, // 003C LDCONST R5 K20 + 0x5C180200, // 003D MOVE R6 R1 + 0x7C100400, // 003E CALL R4 2 + 0x7C080400, // 003F CALL R2 2 + 0x8C080115, // 0040 GETMET R2 R0 K21 + 0x7C080200, // 0041 CALL R2 1 + 0x80000400, // 0042 RET 0 + 0x8C080101, // 0043 GETMET R2 R0 K1 + 0x7C080200, // 0044 CALL R2 1 + 0x4C0C0000, // 0045 LDNIL R3 + 0x20080403, // 0046 NE R2 R2 R3 + 0x780A0049, // 0047 JMPF R2 #0092 + 0x8C080101, // 0048 GETMET R2 R0 K1 + 0x7C080200, // 0049 CALL R2 1 + 0x88080502, // 004A GETMBR R2 R2 K2 + 0xB80E0600, // 004B GETNGBL R3 K3 + 0x880C0704, // 004C GETMBR R3 R3 K4 + 0x880C0716, // 004D GETMBR R3 R3 K22 + 0x1C080403, // 004E EQ R2 R2 R3 + 0x780A0041, // 004F JMPF R2 #0092 + 0x8C080117, // 0050 GETMET R2 R0 K23 + 0x7C080200, // 0051 CALL R2 1 + 0x8C080100, // 0052 GETMET R2 R0 K0 + 0x7C080200, // 0053 CALL R2 1 + 0x880C0118, // 0054 GETMBR R3 R0 K24 + 0x8C0C070D, // 0055 GETMET R3 R3 K13 + 0x5C140200, // 0056 MOVE R5 R1 + 0x7C0C0400, // 0057 CALL R3 2 + 0x780E0015, // 0058 JMPF R3 #006F + 0x880C0118, // 0059 GETMBR R3 R0 K24 + 0x940C0601, // 005A GETIDX R3 R3 R1 + 0x60100004, // 005B GETGBL R4 G4 + 0x5C140600, // 005C MOVE R5 R3 + 0x7C100200, // 005D CALL R4 1 + 0x20100919, // 005E NE R4 R4 K25 + 0x78120008, // 005F JMPF R4 #0069 + 0x60100005, // 0060 GETGBL R4 G5 + 0x5C140600, // 0061 MOVE R5 R3 + 0x7C100200, // 0062 CALL R4 1 + 0x8C14011A, // 0063 GETMET R5 R0 K26 + 0x5C1C0800, // 0064 MOVE R7 R4 + 0x5C200400, // 0065 MOVE R8 R2 + 0x5C240600, // 0066 MOVE R9 R3 + 0x7C140800, // 0067 CALL R5 4 + 0x70020005, // 0068 JMP #006F + 0x8C100113, // 0069 GETMET R4 R0 K19 + 0x60180018, // 006A GETGBL R6 G24 + 0x581C001B, // 006B LDCONST R7 K27 + 0x5C200200, // 006C MOVE R8 R1 + 0x7C180400, // 006D CALL R6 2 + 0x7C100400, // 006E CALL R4 2 + 0x8C0C011C, // 006F GETMET R3 R0 K28 + 0x7C0C0200, // 0070 CALL R3 1 + 0x8C0C011D, // 0071 GETMET R3 R0 K29 + 0x5814001E, // 0072 LDCONST R5 K30 + 0x7C0C0400, // 0073 CALL R3 2 + 0x8C100108, // 0074 GETMET R4 R0 K8 + 0x7C100200, // 0075 CALL R4 1 + 0xA4163E00, // 0076 IMPORT R5 K31 + 0x5818000E, // 0077 LDCONST R6 K14 + 0x8C1C0B0D, // 0078 GETMET R7 R5 K13 + 0xB8264000, // 0079 GETNGBL R9 K32 + 0x5C280200, // 007A MOVE R10 R1 + 0x7C1C0600, // 007B CALL R7 3 + 0x781E0005, // 007C JMPF R7 #0083 + 0x601C0018, // 007D GETGBL R7 G24 + 0x58200021, // 007E LDCONST R8 K33 + 0x5C240200, // 007F MOVE R9 R1 + 0x7C1C0400, // 0080 CALL R7 2 + 0x5C180E00, // 0081 MOVE R6 R7 + 0x70020004, // 0082 JMP #0088 + 0x601C0018, // 0083 GETGBL R7 G24 + 0x58200022, // 0084 LDCONST R8 K34 + 0x5C240200, // 0085 MOVE R9 R1 + 0x7C1C0400, // 0086 CALL R7 2 + 0x5C180E00, // 0087 MOVE R6 R7 + 0x8C1C010B, // 0088 GETMET R7 R0 K11 + 0x60240018, // 0089 GETGBL R9 G24 + 0x58280023, // 008A LDCONST R10 K35 + 0x5C2C0C00, // 008B MOVE R11 R6 + 0x5C300400, // 008C MOVE R12 R2 + 0x5C340600, // 008D MOVE R13 R3 + 0x5C380800, // 008E MOVE R14 R4 + 0x7C240A00, // 008F CALL R9 5 + 0x7C1C0400, // 0090 CALL R7 2 + 0x70020007, // 0091 JMP #009A + 0x8C080113, // 0092 GETMET R2 R0 K19 + 0x60100018, // 0093 GETGBL R4 G24 + 0x58140024, // 0094 LDCONST R5 K36 + 0x5C180200, // 0095 MOVE R6 R1 + 0x7C100400, // 0096 CALL R4 2 + 0x7C080400, // 0097 CALL R2 2 + 0x8C080115, // 0098 GETMET R2 R0 K21 + 0x7C080200, // 0099 CALL R2 1 + 0x80000000, // 009A RET 0 }) ) ); @@ -5885,11 +10505,38 @@ be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ /******************************************************************** -** Solidified function: _validate_object_reference +** Solidified function: get_errors ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ +be_local_closure(class_SimpleDSLTranspiler_get_errors, /* name */ be_nested_proto( - 10, /* nstack */ + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(errors), + }), + be_str_weak(get_errors), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_multiplicative_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, /* name */ + be_nested_proto( + 12, /* nstack */ 3, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -5897,55 +10544,64 @@ be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(symbol_table), - /* K2 */ be_nested_str_weak(contains), - /* K3 */ be_nested_str_weak(animation), - /* K4 */ be_nested_str_weak(sequence_names), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X2E_X20Make_X20sure_X20the_X20object_X20is_X20defined_X20before_X20use_X2E), + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(process_unary_expression), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(MULTIPLY), + /* K7 */ be_nested_str_weak(DIVIDE), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), }), - be_str_weak(_validate_object_reference), + be_str_weak(process_multiplicative_expression), &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ - 0xA802001E, // 0000 EXBLK 0 #0020 - 0xA40E0000, // 0001 IMPORT R3 K0 - 0x88100101, // 0002 GETMBR R4 R0 K1 - 0x8C100902, // 0003 GETMET R4 R4 K2 - 0x5C180200, // 0004 MOVE R6 R1 - 0x7C100400, // 0005 CALL R4 2 - 0x78120001, // 0006 JMPF R4 #0009 - 0xA8040001, // 0007 EXBLK 1 1 - 0x80000800, // 0008 RET 0 - 0x8C100702, // 0009 GETMET R4 R3 K2 - 0xB81A0600, // 000A GETNGBL R6 K3 - 0x5C1C0200, // 000B MOVE R7 R1 - 0x7C100600, // 000C CALL R4 3 - 0x78120001, // 000D JMPF R4 #0010 - 0xA8040001, // 000E EXBLK 1 1 - 0x80000800, // 000F RET 0 - 0x88100104, // 0010 GETMBR R4 R0 K4 - 0x8C100902, // 0011 GETMET R4 R4 K2 - 0x5C180200, // 0012 MOVE R6 R1 - 0x7C100400, // 0013 CALL R4 2 - 0x78120001, // 0014 JMPF R4 #0017 - 0xA8040001, // 0015 EXBLK 1 1 - 0x80000800, // 0016 RET 0 - 0x8C100105, // 0017 GETMET R4 R0 K5 - 0x60180018, // 0018 GETGBL R6 G24 - 0x581C0006, // 0019 LDCONST R7 K6 - 0x5C200200, // 001A MOVE R8 R1 - 0x5C240400, // 001B MOVE R9 R2 - 0x7C180600, // 001C CALL R6 3 - 0x7C100400, // 001D CALL R4 2 - 0xA8040001, // 001E EXBLK 1 1 - 0x70020003, // 001F JMP #0024 - 0xAC0C0002, // 0020 CATCH R3 0 2 - 0x70020000, // 0021 JMP #0023 - 0x70020000, // 0022 JMP #0024 - 0xB0080000, // 0023 RAISE 2 R0 R0 - 0x80000000, // 0024 RET 0 + ( &(const binstruction[42]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C0C0600, // 0003 CALL R3 3 + 0x8C100101, // 0004 GETMET R4 R0 K1 + 0x7C100200, // 0005 CALL R4 1 + 0x74120021, // 0006 JMPT R4 #0029 + 0x8C100102, // 0007 GETMET R4 R0 K2 + 0x7C100200, // 0008 CALL R4 1 + 0x4C140000, // 0009 LDNIL R5 + 0x20140805, // 000A NE R5 R4 R5 + 0x7816001A, // 000B JMPF R5 #0027 + 0x88140903, // 000C GETMBR R5 R4 K3 + 0xB81A0800, // 000D GETNGBL R6 K4 + 0x88180D05, // 000E GETMBR R6 R6 K5 + 0x88180D06, // 000F GETMBR R6 R6 K6 + 0x1C140A06, // 0010 EQ R5 R5 R6 + 0x74160005, // 0011 JMPT R5 #0018 + 0x88140903, // 0012 GETMBR R5 R4 K3 + 0xB81A0800, // 0013 GETNGBL R6 K4 + 0x88180D05, // 0014 GETMBR R6 R6 K5 + 0x88180D07, // 0015 GETMBR R6 R6 K7 + 0x1C140A06, // 0016 EQ R5 R5 R6 + 0x7816000E, // 0017 JMPF R5 #0027 + 0x88140908, // 0018 GETMBR R5 R4 K8 + 0x8C180109, // 0019 GETMET R6 R0 K9 + 0x7C180200, // 001A CALL R6 1 + 0x8C180100, // 001B GETMET R6 R0 K0 + 0x5C200200, // 001C MOVE R8 R1 + 0x50240000, // 001D LDBOOL R9 0 0 + 0x7C180600, // 001E CALL R6 3 + 0x601C0018, // 001F GETGBL R7 G24 + 0x5820000A, // 0020 LDCONST R8 K10 + 0x5C240600, // 0021 MOVE R9 R3 + 0x5C280A00, // 0022 MOVE R10 R5 + 0x5C2C0C00, // 0023 MOVE R11 R6 + 0x7C1C0800, // 0024 CALL R7 4 + 0x5C0C0E00, // 0025 MOVE R3 R7 + 0x70020000, // 0026 JMP #0028 + 0x70020000, // 0027 JMP #0029 + 0x7001FFDA, // 0028 JMP #0004 + 0x80040600, // 0029 RET 1 R3 }) ) ); @@ -5953,59 +10609,9 @@ be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name /******************************************************************** -** Solidified function: expect_left_bracket +** Solidified function: process_time_value ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_bracket, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(LEFT_BRACKET), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X5B_X27), - }), - be_str_weak(expect_left_bracket), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_percentage_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* name */ be_nested_proto( 7, /* nstack */ 1, /* argc */ @@ -6015,74 +10621,93 @@ be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name * 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ + ( &(const bvalue[16]) { /* constants */ /* K0 */ be_nested_str_weak(current), /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(animation_dsl), /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(PERCENTAGE), + /* K4 */ be_nested_str_weak(TIME), /* K5 */ be_nested_str_weak(value), /* K6 */ be_nested_str_weak(next), - /* K7 */ be_const_int(0), + /* K7 */ be_nested_str_weak(convert_time_to_ms), /* K8 */ be_nested_str_weak(NUMBER), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Expected_X20percentage_X20value), + /* K9 */ be_nested_str_weak(IDENTIFIER), + /* K10 */ be_nested_str_weak(_validate_object_reference), + /* K11 */ be_nested_str_weak(duration), + /* K12 */ be_nested_str_weak(process_primary_expression), + /* K13 */ be_nested_str_weak(time), + /* K14 */ be_nested_str_weak(error), + /* K15 */ be_nested_str_weak(Expected_X20time_X20value), }), - be_str_weak(process_percentage_value), + be_str_weak(process_time_value), &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ + ( &(const binstruction[66]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x4C080000, // 0002 LDNIL R2 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0015, // 0004 JMPF R2 #001B + 0x780A000D, // 0004 JMPF R2 #0013 0x88080301, // 0005 GETMBR R2 R1 K1 0xB80E0400, // 0006 GETNGBL R3 K2 0x880C0703, // 0007 GETMBR R3 R3 K3 0x880C0704, // 0008 GETMBR R3 R3 K4 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A000F, // 000A JMPF R2 #001B + 0x780A0007, // 000A JMPF R2 #0013 0x88080305, // 000B GETMBR R2 R1 K5 0x8C0C0106, // 000C GETMET R3 R0 K6 0x7C0C0200, // 000D CALL R3 1 - 0x600C000A, // 000E GETGBL R3 G10 - 0x5411FFFD, // 000F LDINT R4 -2 - 0x40120E04, // 0010 CONNECT R4 K7 R4 - 0x94100404, // 0011 GETIDX R4 R2 R4 - 0x7C0C0200, // 0012 CALL R3 1 - 0x60100009, // 0013 GETGBL R4 G9 - 0x541600FE, // 0014 LDINT R5 255 - 0x08140605, // 0015 MUL R5 R3 R5 - 0x541A0063, // 0016 LDINT R6 100 - 0x0C140A06, // 0017 DIV R5 R5 R6 - 0x7C100200, // 0018 CALL R4 1 - 0x80040800, // 0019 RET 1 R4 - 0x70020017, // 001A JMP #0033 - 0x4C080000, // 001B LDNIL R2 - 0x20080202, // 001C NE R2 R1 R2 - 0x780A000F, // 001D JMPF R2 #002E - 0x88080301, // 001E GETMBR R2 R1 K1 - 0xB80E0400, // 001F GETNGBL R3 K2 - 0x880C0703, // 0020 GETMBR R3 R3 K3 - 0x880C0708, // 0021 GETMBR R3 R3 K8 - 0x1C080403, // 0022 EQ R2 R2 R3 - 0x780A0009, // 0023 JMPF R2 #002E - 0x88080305, // 0024 GETMBR R2 R1 K5 - 0x8C0C0106, // 0025 GETMET R3 R0 K6 - 0x7C0C0200, // 0026 CALL R3 1 - 0x600C0009, // 0027 GETGBL R3 G9 - 0x6010000A, // 0028 GETGBL R4 G10 - 0x5C140400, // 0029 MOVE R5 R2 - 0x7C100200, // 002A CALL R4 1 - 0x7C0C0200, // 002B CALL R3 1 - 0x80040600, // 002C RET 1 R3 - 0x70020004, // 002D JMP #0033 - 0x8C080109, // 002E GETMET R2 R0 K9 - 0x5810000A, // 002F LDCONST R4 K10 - 0x7C080400, // 0030 CALL R2 2 - 0x540A00FE, // 0031 LDINT R2 255 - 0x80040400, // 0032 RET 1 R2 - 0x80000000, // 0033 RET 0 + 0x8C0C0107, // 000E GETMET R3 R0 K7 + 0x5C140400, // 000F MOVE R5 R2 + 0x7C0C0400, // 0010 CALL R3 2 + 0x80040600, // 0011 RET 1 R3 + 0x7002002D, // 0012 JMP #0041 + 0x4C080000, // 0013 LDNIL R2 + 0x20080202, // 0014 NE R2 R1 R2 + 0x780A0011, // 0015 JMPF R2 #0028 + 0x88080301, // 0016 GETMBR R2 R1 K1 + 0xB80E0400, // 0017 GETNGBL R3 K2 + 0x880C0703, // 0018 GETMBR R3 R3 K3 + 0x880C0708, // 0019 GETMBR R3 R3 K8 + 0x1C080403, // 001A EQ R2 R2 R3 + 0x780A000B, // 001B JMPF R2 #0028 + 0x88080305, // 001C GETMBR R2 R1 K5 + 0x8C0C0106, // 001D GETMET R3 R0 K6 + 0x7C0C0200, // 001E CALL R3 1 + 0x600C0009, // 001F GETGBL R3 G9 + 0x6010000A, // 0020 GETGBL R4 G10 + 0x5C140400, // 0021 MOVE R5 R2 + 0x7C100200, // 0022 CALL R4 1 + 0x7C0C0200, // 0023 CALL R3 1 + 0x541203E7, // 0024 LDINT R4 1000 + 0x080C0604, // 0025 MUL R3 R3 R4 + 0x80040600, // 0026 RET 1 R3 + 0x70020018, // 0027 JMP #0041 + 0x4C080000, // 0028 LDNIL R2 + 0x20080202, // 0029 NE R2 R1 R2 + 0x780A0010, // 002A JMPF R2 #003C + 0x88080301, // 002B GETMBR R2 R1 K1 + 0xB80E0400, // 002C GETNGBL R3 K2 + 0x880C0703, // 002D GETMBR R3 R3 K3 + 0x880C0709, // 002E GETMBR R3 R3 K9 + 0x1C080403, // 002F EQ R2 R2 R3 + 0x780A000A, // 0030 JMPF R2 #003C + 0x88080305, // 0031 GETMBR R2 R1 K5 + 0x8C0C010A, // 0032 GETMET R3 R0 K10 + 0x5C140400, // 0033 MOVE R5 R2 + 0x5818000B, // 0034 LDCONST R6 K11 + 0x7C0C0600, // 0035 CALL R3 3 + 0x8C0C010C, // 0036 GETMET R3 R0 K12 + 0x5814000D, // 0037 LDCONST R5 K13 + 0x50180200, // 0038 LDBOOL R6 1 0 + 0x7C0C0600, // 0039 CALL R3 3 + 0x80040600, // 003A RET 1 R3 + 0x70020004, // 003B JMP #0041 + 0x8C08010E, // 003C GETMET R2 R0 K14 + 0x5810000F, // 003D LDCONST R4 K15 + 0x7C080400, // 003E CALL R2 2 + 0x540A03E7, // 003F LDINT R2 1000 + 0x80040400, // 0040 RET 1 R2 + 0x80000000, // 0041 RET 0 }) ) ); @@ -6090,11 +10715,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name * /******************************************************************** -** Solidified function: transform_operand_for_closure +** Solidified function: process_sequence_assignment ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transform_operand_for_closure, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment, /* name */ be_nested_proto( - 11, /* nstack */ + 6, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -6102,217 +10727,18 @@ be_local_closure(class_SimpleDSLTranspiler_transform_operand_for_closure, /* n 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(animation_X2Ecreate_closure_value), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(return_X20_X28), - /* K5 */ be_nested_str_weak(_X20_X20), - /* K6 */ be_nested_str_weak(replace), - /* K7 */ be_nested_str_weak(_X20), - /* K8 */ be_nested_str_weak(_), - /* K9 */ be_nested_str_weak(_X28), - /* K10 */ be_nested_str_weak(animation_X2E), - /* K11 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X29), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(process_sequence_assignment_generic), + /* K1 */ be_nested_str_weak(steps), }), - be_str_weak(transform_operand_for_closure), + be_str_weak(process_sequence_assignment), &be_const_str_solidified, - ( &(const binstruction[69]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x280C0703, // 0005 GE R3 R3 K3 - 0x780E001A, // 0006 JMPF R3 #0022 - 0x8C0C0501, // 0007 GETMET R3 R2 K1 - 0x5C140200, // 0008 MOVE R5 R1 - 0x58180004, // 0009 LDCONST R6 K4 - 0x7C0C0600, // 000A CALL R3 3 - 0x54120007, // 000B LDINT R4 8 - 0x000C0604, // 000C ADD R3 R3 R4 - 0x6010000C, // 000D GETGBL R4 G12 - 0x5C140200, // 000E MOVE R5 R1 - 0x7C100200, // 000F CALL R4 1 - 0x54160004, // 0010 LDINT R5 5 - 0x04100805, // 0011 SUB R4 R4 R5 - 0x40140604, // 0012 CONNECT R5 R3 R4 - 0x94140205, // 0013 GETIDX R5 R1 R5 - 0x8C180501, // 0014 GETMET R6 R2 K1 - 0x5C200A00, // 0015 MOVE R8 R5 - 0x58240005, // 0016 LDCONST R9 K5 - 0x7C180600, // 0017 CALL R6 3 - 0x28180D03, // 0018 GE R6 R6 K3 - 0x781A0006, // 0019 JMPF R6 #0021 - 0x8C180506, // 001A GETMET R6 R2 K6 - 0x5C200A00, // 001B MOVE R8 R5 - 0x58240005, // 001C LDCONST R9 K5 - 0x58280007, // 001D LDCONST R10 K7 - 0x7C180800, // 001E CALL R6 4 - 0x5C140C00, // 001F MOVE R5 R6 - 0x7001FFF2, // 0020 JMP #0014 - 0x80040A00, // 0021 RET 1 R5 - 0x8C0C0501, // 0022 GETMET R3 R2 K1 - 0x5C140200, // 0023 MOVE R5 R1 - 0x58180008, // 0024 LDCONST R6 K8 - 0x7C0C0600, // 0025 CALL R3 3 - 0x280C0703, // 0026 GE R3 R3 K3 - 0x8C100501, // 0027 GETMET R4 R2 K1 - 0x5C180200, // 0028 MOVE R6 R1 - 0x581C0007, // 0029 LDCONST R7 K7 - 0x7C100600, // 002A CALL R4 3 - 0x28100903, // 002B GE R4 R4 K3 - 0x8C140501, // 002C GETMET R5 R2 K1 - 0x5C1C0200, // 002D MOVE R7 R1 - 0x58200009, // 002E LDCONST R8 K9 - 0x7C140600, // 002F CALL R5 3 - 0x28140B03, // 0030 GE R5 R5 K3 - 0x8C180501, // 0031 GETMET R6 R2 K1 - 0x5C200200, // 0032 MOVE R8 R1 - 0x5824000A, // 0033 LDCONST R9 K10 - 0x7C180600, // 0034 CALL R6 3 - 0x28180D03, // 0035 GE R6 R6 K3 - 0x780E000B, // 0036 JMPF R3 #0043 - 0x5C1C0800, // 0037 MOVE R7 R4 - 0x741E0009, // 0038 JMPT R7 #0043 - 0x5C1C0A00, // 0039 MOVE R7 R5 - 0x741E0007, // 003A JMPT R7 #0043 - 0x5C1C0C00, // 003B MOVE R7 R6 - 0x741E0005, // 003C JMPT R7 #0043 - 0x601C0018, // 003D GETGBL R7 G24 - 0x5820000B, // 003E LDCONST R8 K11 - 0x5C240200, // 003F MOVE R9 R1 - 0x7C1C0400, // 0040 CALL R7 2 - 0x80040E00, // 0041 RET 1 R7 - 0x70020000, // 0042 JMP #0044 - 0x80040200, // 0043 RET 1 R1 - 0x80000000, // 0044 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_unary_expression_raw -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_unary_expression_raw, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_unary_expression_raw), - /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K11 */ be_nested_str_weak(PLUS), - /* K12 */ be_nested_str_weak(process_primary_expression_raw), - }), - be_str_weak(process_unary_expression_raw), - &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080101, // 0005 GETMET R2 R0 K1 - 0x58100002, // 0006 LDCONST R4 K2 - 0x7C080400, // 0007 CALL R2 2 - 0x80060600, // 0008 RET 1 K3 - 0x88080304, // 0009 GETMBR R2 R1 K4 - 0xB80E0A00, // 000A GETNGBL R3 K5 - 0x880C0706, // 000B GETMBR R3 R3 K6 - 0x880C0707, // 000C GETMBR R3 R3 K7 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A0008, // 000E JMPF R2 #0018 - 0x8C080108, // 000F GETMET R2 R0 K8 - 0x7C080200, // 0010 CALL R2 1 - 0x8C080109, // 0011 GETMET R2 R0 K9 - 0x7C080200, // 0012 CALL R2 1 - 0x600C0018, // 0013 GETGBL R3 G24 - 0x5810000A, // 0014 LDCONST R4 K10 - 0x5C140400, // 0015 MOVE R5 R2 - 0x7C0C0400, // 0016 CALL R3 2 - 0x80040600, // 0017 RET 1 R3 - 0x88080304, // 0018 GETMBR R2 R1 K4 - 0xB80E0A00, // 0019 GETNGBL R3 K5 - 0x880C0706, // 001A GETMBR R3 R3 K6 - 0x880C070B, // 001B GETMBR R3 R3 K11 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A0004, // 001D JMPF R2 #0023 - 0x8C080108, // 001E GETMET R2 R0 K8 - 0x7C080200, // 001F CALL R2 1 - 0x8C080109, // 0020 GETMET R2 R0 K9 - 0x7C080200, // 0021 CALL R2 1 - 0x80040400, // 0022 RET 1 R2 - 0x8C08010C, // 0023 GETMET R2 R0 K12 - 0x7C080200, // 0024 CALL R2 1 - 0x80040400, // 0025 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACKET), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), - }), - be_str_weak(expect_right_bracket), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 + ( &(const binstruction[ 5]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x58140001, // 0002 LDCONST R5 K1 + 0x7C080600, // 0003 CALL R2 3 + 0x80000000, // 0004 RET 0 }) ) ); @@ -6580,6 +11006,69 @@ be_local_closure(class_SimpleDSLTranspiler_transform_expression_for_closure, / /*******************************************************************/ +/******************************************************************** +** Solidified function: process_sequence_assignment_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[10]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(expect_dot), + /* K2 */ be_nested_str_weak(expect_assign), + /* K3 */ be_nested_str_weak(process_value), + /* K4 */ be_nested_str_weak(property), + /* K5 */ be_nested_str_weak(collect_inline_comment), + /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2E_X25s_X20_X3D_X20_X25s_X20end), + /* K7 */ be_nested_str_weak(add), + /* K8 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K9 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_sequence_assignment_fluent), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x8C080100, // 0004 GETMET R2 R0 K0 + 0x7C080200, // 0005 CALL R2 1 + 0x8C0C0102, // 0006 GETMET R3 R0 K2 + 0x7C0C0200, // 0007 CALL R3 1 + 0x8C0C0103, // 0008 GETMET R3 R0 K3 + 0x58140004, // 0009 LDCONST R5 K4 + 0x7C0C0400, // 000A CALL R3 2 + 0x8C100105, // 000B GETMET R4 R0 K5 + 0x7C100200, // 000C CALL R4 1 + 0x60140018, // 000D GETGBL R5 G24 + 0x58180006, // 000E LDCONST R6 K6 + 0x5C1C0200, // 000F MOVE R7 R1 + 0x5C200400, // 0010 MOVE R8 R2 + 0x5C240600, // 0011 MOVE R9 R3 + 0x7C140800, // 0012 CALL R5 4 + 0x8C180107, // 0013 GETMET R6 R0 K7 + 0x60200018, // 0014 GETGBL R8 G24 + 0x58240008, // 0015 LDCONST R9 K8 + 0x8C280109, // 0016 GETMET R10 R0 K9 + 0x7C280200, // 0017 CALL R10 1 + 0x5C2C0A00, // 0018 MOVE R11 R5 + 0x5C300800, // 0019 MOVE R12 R4 + 0x7C200800, // 001A CALL R8 4 + 0x7C180400, // 001B CALL R6 2 + 0x80000000, // 001C RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_value ********************************************************************/ @@ -6611,11 +11100,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_value, /* name */ /******************************************************************** -** Solidified function: process_additive_expression_raw +** Solidified function: process_log_statement_fluent ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* name */ be_nested_proto( - 10, /* nstack */ + 9, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -6623,60 +11112,64 @@ be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(process_multiplicative_expression_raw), - /* K1 */ be_nested_str_weak(at_end), + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_left_paren), /* K2 */ be_nested_str_weak(current), /* K3 */ be_nested_str_weak(type), /* K4 */ be_nested_str_weak(animation_dsl), /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(PLUS), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + /* K6 */ be_nested_str_weak(STRING), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), + /* K9 */ be_nested_str_weak(skip_statement), + /* K10 */ be_nested_str_weak(value), + /* K11 */ be_nested_str_weak(expect_right_paren), + /* K12 */ be_nested_str_weak(collect_inline_comment), + /* K13 */ be_nested_str_weak(process_log_call), + /* K14 */ be_nested_str_weak(fluent), + /* K15 */ be_nested_str_weak(add), }), - be_str_weak(process_additive_expression_raw), + be_str_weak(process_log_statement_fluent), &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ + ( &(const binstruction[37]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x740A001F, // 0004 JMPT R2 #0025 - 0x8C080102, // 0005 GETMET R2 R0 K2 - 0x7C080200, // 0006 CALL R2 1 - 0x4C0C0000, // 0007 LDNIL R3 - 0x200C0403, // 0008 NE R3 R2 R3 - 0x780E0018, // 0009 JMPF R3 #0023 - 0x880C0503, // 000A GETMBR R3 R2 K3 - 0xB8120800, // 000B GETNGBL R4 K4 - 0x88100905, // 000C GETMBR R4 R4 K5 - 0x88100906, // 000D GETMBR R4 R4 K6 - 0x1C0C0604, // 000E EQ R3 R3 R4 - 0x740E0005, // 000F JMPT R3 #0016 - 0x880C0503, // 0010 GETMBR R3 R2 K3 - 0xB8120800, // 0011 GETNGBL R4 K4 - 0x88100905, // 0012 GETMBR R4 R4 K5 - 0x88100907, // 0013 GETMBR R4 R4 K7 - 0x1C0C0604, // 0014 EQ R3 R3 R4 - 0x780E000C, // 0015 JMPF R3 #0023 - 0x880C0508, // 0016 GETMBR R3 R2 K8 - 0x8C100109, // 0017 GETMET R4 R0 K9 - 0x7C100200, // 0018 CALL R4 1 - 0x8C100100, // 0019 GETMET R4 R0 K0 - 0x7C100200, // 001A CALL R4 1 - 0x60140018, // 001B GETGBL R5 G24 - 0x5818000A, // 001C LDCONST R6 K10 - 0x5C1C0200, // 001D MOVE R7 R1 - 0x5C200600, // 001E MOVE R8 R3 - 0x5C240800, // 001F MOVE R9 R4 - 0x7C140800, // 0020 CALL R5 4 - 0x5C040A00, // 0021 MOVE R1 R5 - 0x70020000, // 0022 JMP #0024 - 0x70020000, // 0023 JMP #0025 - 0x7001FFDC, // 0024 JMP #0002 - 0x80040200, // 0025 RET 1 R1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C040102, // 0004 GETMET R1 R0 K2 + 0x7C040200, // 0005 CALL R1 1 + 0x4C080000, // 0006 LDNIL R2 + 0x1C080202, // 0007 EQ R2 R1 R2 + 0x740A0005, // 0008 JMPT R2 #000F + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0xB80E0800, // 000A GETNGBL R3 K4 + 0x880C0705, // 000B GETMBR R3 R3 K5 + 0x880C0706, // 000C GETMBR R3 R3 K6 + 0x20080403, // 000D NE R2 R2 R3 + 0x780A0005, // 000E JMPF R2 #0015 + 0x8C080107, // 000F GETMET R2 R0 K7 + 0x58100008, // 0010 LDCONST R4 K8 + 0x7C080400, // 0011 CALL R2 2 + 0x8C080109, // 0012 GETMET R2 R0 K9 + 0x7C080200, // 0013 CALL R2 1 + 0x80000400, // 0014 RET 0 + 0x8808030A, // 0015 GETMBR R2 R1 K10 + 0x8C0C0100, // 0016 GETMET R3 R0 K0 + 0x7C0C0200, // 0017 CALL R3 1 + 0x8C0C010B, // 0018 GETMET R3 R0 K11 + 0x7C0C0200, // 0019 CALL R3 1 + 0x8C0C010C, // 001A GETMET R3 R0 K12 + 0x7C0C0200, // 001B CALL R3 1 + 0x8C10010D, // 001C GETMET R4 R0 K13 + 0x5C180400, // 001D MOVE R6 R2 + 0x581C000E, // 001E LDCONST R7 K14 + 0x5C200600, // 001F MOVE R8 R3 + 0x7C100800, // 0020 CALL R4 4 + 0x8C14010F, // 0021 GETMET R5 R0 K15 + 0x5C1C0800, // 0022 MOVE R7 R4 + 0x7C140400, // 0023 CALL R5 2 + 0x80000000, // 0024 RET 0 }) ) ); @@ -6684,382 +11177,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* /******************************************************************** -** Solidified function: _generate_anonymous_function_call +** Solidified function: expect_right_paren ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call, /* name */ - be_nested_proto( - 14, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[33]) { /* constants */ - /* K0 */ be_nested_str_weak(push), - /* K1 */ be_nested_str_weak(_X28def_X20_X28engine_X29), - /* K2 */ be_nested_str_weak(_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29), - /* K3 */ be_nested_str_weak(expect_left_paren), - /* K4 */ be_nested_str_weak(_create_instance_for_validation), - /* K5 */ be_nested_str_weak(at_end), - /* K6 */ be_nested_str_weak(check_right_paren), - /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K8 */ be_nested_str_weak(expect_identifier), - /* K9 */ be_nested_str_weak(_validate_single_parameter), - /* K10 */ be_nested_str_weak(expect_assign), - /* K11 */ be_nested_str_weak(process_value), - /* K12 */ be_nested_str_weak(argument), - /* K13 */ be_nested_str_weak(collect_inline_comment), - /* K14 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K15 */ be_nested_str_weak(current), - /* K16 */ be_nested_str_weak(type), - /* K17 */ be_nested_str_weak(animation_dsl), - /* K18 */ be_nested_str_weak(Token), - /* K19 */ be_nested_str_weak(COMMENT), - /* K20 */ be_nested_str_weak(next), - /* K21 */ be_nested_str_weak(COMMA), - /* K22 */ be_nested_str_weak(NEWLINE), - /* K23 */ be_nested_str_weak(error), - /* K24 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K25 */ be_nested_str_weak(expect_right_paren), - /* K26 */ be_nested_str_weak(_X20_X20return_X20provider), - /* K27 */ be_nested_str_weak(end_X29_X28engine_X29), - /* K28 */ be_nested_str_weak(), - /* K29 */ be_const_int(0), - /* K30 */ be_const_int(1), - /* K31 */ be_nested_str_weak(_X0A), - /* K32 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(_generate_anonymous_function_call), - &be_const_str_solidified, - ( &(const binstruction[145]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x8C0C0500, // 0002 GETMET R3 R2 K0 - 0x58140001, // 0003 LDCONST R5 K1 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C0C0500, // 0005 GETMET R3 R2 K0 - 0x60140018, // 0006 GETGBL R5 G24 - 0x58180002, // 0007 LDCONST R6 K2 - 0x5C1C0200, // 0008 MOVE R7 R1 - 0x7C140400, // 0009 CALL R5 2 - 0x7C0C0400, // 000A CALL R3 2 - 0x8C0C0103, // 000B GETMET R3 R0 K3 - 0x7C0C0200, // 000C CALL R3 1 - 0x8C0C0104, // 000D GETMET R3 R0 K4 - 0x5C140200, // 000E MOVE R5 R1 - 0x7C0C0400, // 000F CALL R3 2 - 0x8C100105, // 0010 GETMET R4 R0 K5 - 0x7C100200, // 0011 CALL R4 1 - 0x74120060, // 0012 JMPT R4 #0074 - 0x8C100106, // 0013 GETMET R4 R0 K6 - 0x7C100200, // 0014 CALL R4 1 - 0x7412005D, // 0015 JMPT R4 #0074 - 0x8C100107, // 0016 GETMET R4 R0 K7 - 0x7C100200, // 0017 CALL R4 1 - 0x8C100106, // 0018 GETMET R4 R0 K6 - 0x7C100200, // 0019 CALL R4 1 - 0x78120000, // 001A JMPF R4 #001C - 0x70020057, // 001B JMP #0074 - 0x8C100108, // 001C GETMET R4 R0 K8 - 0x7C100200, // 001D CALL R4 1 - 0x4C140000, // 001E LDNIL R5 - 0x20140605, // 001F NE R5 R3 R5 - 0x78160004, // 0020 JMPF R5 #0026 - 0x8C140109, // 0021 GETMET R5 R0 K9 - 0x5C1C0200, // 0022 MOVE R7 R1 - 0x5C200800, // 0023 MOVE R8 R4 - 0x5C240600, // 0024 MOVE R9 R3 - 0x7C140800, // 0025 CALL R5 4 - 0x8C14010A, // 0026 GETMET R5 R0 K10 - 0x7C140200, // 0027 CALL R5 1 - 0x8C14010B, // 0028 GETMET R5 R0 K11 - 0x581C000C, // 0029 LDCONST R7 K12 - 0x7C140400, // 002A CALL R5 2 - 0x8C18010D, // 002B GETMET R6 R0 K13 - 0x7C180200, // 002C CALL R6 1 - 0x8C1C0500, // 002D GETMET R7 R2 K0 - 0x60240018, // 002E GETGBL R9 G24 - 0x5828000E, // 002F LDCONST R10 K14 - 0x5C2C0800, // 0030 MOVE R11 R4 - 0x5C300A00, // 0031 MOVE R12 R5 - 0x5C340C00, // 0032 MOVE R13 R6 - 0x7C240800, // 0033 CALL R9 4 - 0x7C1C0400, // 0034 CALL R7 2 - 0x8C1C0105, // 0035 GETMET R7 R0 K5 - 0x7C1C0200, // 0036 CALL R7 1 - 0x741E000F, // 0037 JMPT R7 #0048 - 0x8C1C010F, // 0038 GETMET R7 R0 K15 - 0x7C1C0200, // 0039 CALL R7 1 - 0x4C200000, // 003A LDNIL R8 - 0x20200E08, // 003B NE R8 R7 R8 - 0x78220008, // 003C JMPF R8 #0046 - 0x88200F10, // 003D GETMBR R8 R7 K16 - 0xB8262200, // 003E GETNGBL R9 K17 - 0x88241312, // 003F GETMBR R9 R9 K18 - 0x88241313, // 0040 GETMBR R9 R9 K19 - 0x1C201009, // 0041 EQ R8 R8 R9 - 0x78220002, // 0042 JMPF R8 #0046 - 0x8C200114, // 0043 GETMET R8 R0 K20 - 0x7C200200, // 0044 CALL R8 1 - 0x70020000, // 0045 JMP #0047 - 0x70020000, // 0046 JMP #0048 - 0x7001FFEC, // 0047 JMP #0035 - 0x8C1C010F, // 0048 GETMET R7 R0 K15 - 0x7C1C0200, // 0049 CALL R7 1 - 0x4C200000, // 004A LDNIL R8 - 0x201C0E08, // 004B NE R7 R7 R8 - 0x781E000C, // 004C JMPF R7 #005A - 0x8C1C010F, // 004D GETMET R7 R0 K15 - 0x7C1C0200, // 004E CALL R7 1 - 0x881C0F10, // 004F GETMBR R7 R7 K16 - 0xB8222200, // 0050 GETNGBL R8 K17 - 0x88201112, // 0051 GETMBR R8 R8 K18 - 0x88201115, // 0052 GETMBR R8 R8 K21 - 0x1C1C0E08, // 0053 EQ R7 R7 R8 - 0x781E0004, // 0054 JMPF R7 #005A - 0x8C1C0114, // 0055 GETMET R7 R0 K20 - 0x7C1C0200, // 0056 CALL R7 1 - 0x8C1C0107, // 0057 GETMET R7 R0 K7 - 0x7C1C0200, // 0058 CALL R7 1 - 0x70020018, // 0059 JMP #0073 - 0x8C1C010F, // 005A GETMET R7 R0 K15 - 0x7C1C0200, // 005B CALL R7 1 - 0x4C200000, // 005C LDNIL R8 - 0x201C0E08, // 005D NE R7 R7 R8 - 0x781E000C, // 005E JMPF R7 #006C - 0x8C1C010F, // 005F GETMET R7 R0 K15 - 0x7C1C0200, // 0060 CALL R7 1 - 0x881C0F10, // 0061 GETMBR R7 R7 K16 - 0xB8222200, // 0062 GETNGBL R8 K17 - 0x88201112, // 0063 GETMBR R8 R8 K18 - 0x88201116, // 0064 GETMBR R8 R8 K22 - 0x1C1C0E08, // 0065 EQ R7 R7 R8 - 0x781E0004, // 0066 JMPF R7 #006C - 0x8C1C0114, // 0067 GETMET R7 R0 K20 - 0x7C1C0200, // 0068 CALL R7 1 - 0x8C1C0107, // 0069 GETMET R7 R0 K7 - 0x7C1C0200, // 006A CALL R7 1 - 0x70020006, // 006B JMP #0073 - 0x8C1C0106, // 006C GETMET R7 R0 K6 - 0x7C1C0200, // 006D CALL R7 1 - 0x741E0003, // 006E JMPT R7 #0073 - 0x8C1C0117, // 006F GETMET R7 R0 K23 - 0x58240018, // 0070 LDCONST R9 K24 - 0x7C1C0400, // 0071 CALL R7 2 - 0x70020000, // 0072 JMP #0074 - 0x7001FF9B, // 0073 JMP #0010 - 0x8C100119, // 0074 GETMET R4 R0 K25 - 0x7C100200, // 0075 CALL R4 1 - 0x8C100500, // 0076 GETMET R4 R2 K0 - 0x5818001A, // 0077 LDCONST R6 K26 - 0x7C100400, // 0078 CALL R4 2 - 0x8C100500, // 0079 GETMET R4 R2 K0 - 0x5818001B, // 007A LDCONST R6 K27 - 0x7C100400, // 007B CALL R4 2 - 0x5810001C, // 007C LDCONST R4 K28 - 0x60140010, // 007D GETGBL R5 G16 - 0x6018000C, // 007E GETGBL R6 G12 - 0x5C1C0400, // 007F MOVE R7 R2 - 0x7C180200, // 0080 CALL R6 1 - 0x04180D1E, // 0081 SUB R6 R6 K30 - 0x401A3A06, // 0082 CONNECT R6 K29 R6 - 0x7C140200, // 0083 CALL R5 1 - 0xA8020007, // 0084 EXBLK 0 #008D - 0x5C180A00, // 0085 MOVE R6 R5 - 0x7C180000, // 0086 CALL R6 0 - 0x241C0D1D, // 0087 GT R7 R6 K29 - 0x781E0000, // 0088 JMPF R7 #008A - 0x0010091F, // 0089 ADD R4 R4 K31 - 0x941C0406, // 008A GETIDX R7 R2 R6 - 0x00100807, // 008B ADD R4 R4 R7 - 0x7001FFF7, // 008C JMP #0085 - 0x58140020, // 008D LDCONST R5 K32 - 0xAC140200, // 008E CATCH R5 1 0 - 0xB0080000, // 008F RAISE 2 R0 R0 - 0x80040800, // 0090 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_single_parameter -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_single_parameter, /* name */ - be_nested_proto( - 12, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(contains), - /* K2 */ be_nested_str_weak(_has_param), - /* K3 */ be_nested_str_weak(current), - /* K4 */ be_nested_str_weak(line), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Animation_X20_X27_X25s_X27_X20does_X20not_X20have_X20parameter_X20_X27_X25s_X27_X2E_X20Check_X20the_X20animation_X20documentation_X20for_X20valid_X20parameters_X2E), - }), - be_str_weak(_validate_single_parameter), - &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ - 0xA802001F, // 0000 EXBLK 0 #0021 - 0xA4120000, // 0001 IMPORT R4 K0 - 0x4C140000, // 0002 LDNIL R5 - 0x20140605, // 0003 NE R5 R3 R5 - 0x78160019, // 0004 JMPF R5 #001F - 0x8C140901, // 0005 GETMET R5 R4 K1 - 0x5C1C0600, // 0006 MOVE R7 R3 - 0x58200002, // 0007 LDCONST R8 K2 - 0x7C140600, // 0008 CALL R5 3 - 0x78160014, // 0009 JMPF R5 #001F - 0x8C140702, // 000A GETMET R5 R3 K2 - 0x5C1C0400, // 000B MOVE R7 R2 - 0x7C140400, // 000C CALL R5 2 - 0x74160010, // 000D JMPT R5 #001F - 0x8C140103, // 000E GETMET R5 R0 K3 - 0x7C140200, // 000F CALL R5 1 - 0x4C180000, // 0010 LDNIL R6 - 0x20140A06, // 0011 NE R5 R5 R6 - 0x78160003, // 0012 JMPF R5 #0017 - 0x8C140103, // 0013 GETMET R5 R0 K3 - 0x7C140200, // 0014 CALL R5 1 - 0x88140B04, // 0015 GETMBR R5 R5 K4 - 0x70020000, // 0016 JMP #0018 - 0x58140005, // 0017 LDCONST R5 K5 - 0x8C180106, // 0018 GETMET R6 R0 K6 - 0x60200018, // 0019 GETGBL R8 G24 - 0x58240007, // 001A LDCONST R9 K7 - 0x5C280200, // 001B MOVE R10 R1 - 0x5C2C0400, // 001C MOVE R11 R2 - 0x7C200600, // 001D CALL R8 3 - 0x7C180400, // 001E CALL R6 2 - 0xA8040001, // 001F EXBLK 1 1 - 0x70020003, // 0020 JMP #0025 - 0xAC100002, // 0021 CATCH R4 0 2 - 0x70020000, // 0022 JMP #0024 - 0x70020000, // 0023 JMP #0025 - 0xB0080000, // 0024 RAISE 2 R0 R0 - 0x80000000, // 0025 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: next -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_next, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - /* K2 */ be_const_int(1), - }), - be_str_weak(next), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x14040202, // 0004 LT R1 R1 R2 - 0x78060002, // 0005 JMPF R1 #0009 - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x00040302, // 0007 ADD R1 R1 K2 - 0x90020001, // 0008 SETMBR R0 K0 R1 - 0x80000000, // 0009 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_color_provider_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_validate_factory_function), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(color_provider), - }), - be_str_weak(_validate_color_provider_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0xB8160200, // 0002 GETNGBL R5 K1 - 0x88140B02, // 0003 GETMBR R5 R5 K2 - 0x7C080600, // 0004 CALL R2 3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: has_errors -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_has_errors, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(errors), - /* K1 */ be_const_int(0), - }), - be_str_weak(has_errors), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x24040301, // 0003 GT R1 R1 K1 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_left_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ be_nested_proto( 5, /* nstack */ 1, /* argc */ @@ -7074,12 +11194,12 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(animation_dsl), /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(LEFT_BRACE), + /* K4 */ be_nested_str_weak(RIGHT_PAREN), /* K5 */ be_nested_str_weak(next), /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X7B_X27), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X29_X27), }), - be_str_weak(expect_left_brace), + be_str_weak(expect_right_paren), &be_const_str_solidified, ( &(const binstruction[18]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 @@ -7107,46 +11227,9 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ /******************************************************************** -** Solidified function: _validate_animation_factory_exists +** Solidified function: skip_statement ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(is_math_method), - /* K1 */ be_nested_str_weak(_validate_factory_function), - }), - be_str_weak(_validate_animation_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x780A0001, // 0003 JMPF R2 #0006 - 0x50080200, // 0004 LDBOOL R2 1 0 - 0x80040400, // 0005 RET 1 R2 - 0x8C080101, // 0006 GETMET R2 R0 K1 - 0x5C100200, // 0007 MOVE R4 R1 - 0x4C140000, // 0008 LDNIL R5 - 0x7C080600, // 0009 CALL R2 3 - 0x80040400, // 000A RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ +be_local_closure(class_SimpleDSLTranspiler_skip_statement, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ @@ -7156,1516 +11239,41 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_PAREN), + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(NEWLINE), + /* K6 */ be_nested_str_weak(EOF), + /* K7 */ be_nested_str_weak(next), }), - be_str_weak(check_right_paren), + be_str_weak(skip_statement), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ + ( &(const binstruction[22]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0005, // 0004 JMPF R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x74060011, // 0002 JMPT R1 #0015 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x88080302, // 0005 GETMBR R2 R1 K2 + 0xB80E0600, // 0006 GETNGBL R3 K3 + 0x880C0704, // 0007 GETMBR R3 R3 K4 + 0x880C0705, // 0008 GETMBR R3 R3 K5 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0000, // 000A JMPT R2 #000C - 0x50080001, // 000B LDBOOL R2 0 1 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x80040400, // 000D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_computation_closure -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_create_computation_closure, /* name */ - be_nested_proto( - 12, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(transform_operand_for_closure), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(_X20_X20), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(replace), - /* K6 */ be_nested_str_weak(_X20), - /* K7 */ be_nested_str_weak(def_X20_X28self_X29_X20return_X20_X25s_X20_X25s_X20_X25s_X20end), - /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), - }), - be_str_weak(create_computation_closure), - &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x8C140101, // 0001 GETMET R5 R0 K1 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x7C140400, // 0003 CALL R5 2 - 0x8C180101, // 0004 GETMET R6 R0 K1 - 0x5C200600, // 0005 MOVE R8 R3 - 0x7C180400, // 0006 CALL R6 2 - 0x8C1C0902, // 0007 GETMET R7 R4 K2 - 0x5C240A00, // 0008 MOVE R9 R5 - 0x58280003, // 0009 LDCONST R10 K3 - 0x7C1C0600, // 000A CALL R7 3 - 0x281C0F04, // 000B GE R7 R7 K4 - 0x781E0006, // 000C JMPF R7 #0014 - 0x8C1C0905, // 000D GETMET R7 R4 K5 - 0x5C240A00, // 000E MOVE R9 R5 - 0x58280003, // 000F LDCONST R10 K3 - 0x582C0006, // 0010 LDCONST R11 K6 - 0x7C1C0800, // 0011 CALL R7 4 - 0x5C140E00, // 0012 MOVE R5 R7 - 0x7001FFF2, // 0013 JMP #0007 - 0x8C1C0902, // 0014 GETMET R7 R4 K2 - 0x5C240C00, // 0015 MOVE R9 R6 - 0x58280003, // 0016 LDCONST R10 K3 - 0x7C1C0600, // 0017 CALL R7 3 - 0x281C0F04, // 0018 GE R7 R7 K4 - 0x781E0006, // 0019 JMPF R7 #0021 - 0x8C1C0905, // 001A GETMET R7 R4 K5 - 0x5C240C00, // 001B MOVE R9 R6 - 0x58280003, // 001C LDCONST R10 K3 - 0x582C0006, // 001D LDCONST R11 K6 - 0x7C1C0800, // 001E CALL R7 4 - 0x5C180E00, // 001F MOVE R6 R7 - 0x7001FFF2, // 0020 JMP #0014 - 0x601C0018, // 0021 GETGBL R7 G24 - 0x58200007, // 0022 LDCONST R8 K7 - 0x5C240A00, // 0023 MOVE R9 R5 - 0x5C280400, // 0024 MOVE R10 R2 - 0x5C2C0C00, // 0025 MOVE R11 R6 - 0x7C1C0800, // 0026 CALL R7 4 - 0x60200018, // 0027 GETGBL R8 G24 - 0x58240008, // 0028 LDCONST R9 K8 - 0x5C280E00, // 0029 MOVE R10 R7 - 0x7C200400, // 002A CALL R8 2 - 0x80041000, // 002B RET 1 R8 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_errors -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_errors, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(errors), - }), - be_str_weak(get_errors), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[38]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(EOF), - /* K5 */ be_nested_str_weak(COMMENT), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(NEWLINE), - /* K10 */ be_nested_str_weak(first_statement), - /* K11 */ be_nested_str_weak(KEYWORD), - /* K12 */ be_nested_str_weak(IDENTIFIER), - /* K13 */ be_nested_str_weak(strip), - /* K14 */ be_nested_str_weak(error), - /* K15 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), - /* K16 */ be_nested_str_weak(skip_statement), - /* K17 */ be_nested_str_weak(strip_initialized), - /* K18 */ be_nested_str_weak(generate_default_strip_initialization), - /* K19 */ be_nested_str_weak(color), - /* K20 */ be_nested_str_weak(process_color), - /* K21 */ be_nested_str_weak(palette), - /* K22 */ be_nested_str_weak(process_palette), - /* K23 */ be_nested_str_weak(animation), - /* K24 */ be_nested_str_weak(process_animation), - /* K25 */ be_nested_str_weak(set), - /* K26 */ be_nested_str_weak(process_set), - /* K27 */ be_nested_str_weak(sequence), - /* K28 */ be_nested_str_weak(process_sequence), - /* K29 */ be_nested_str_weak(template), - /* K30 */ be_nested_str_weak(process_template), - /* K31 */ be_nested_str_weak(run), - /* K32 */ be_nested_str_weak(process_run), - /* K33 */ be_nested_str_weak(import), - /* K34 */ be_nested_str_weak(process_import), - /* K35 */ be_nested_str_weak(on), - /* K36 */ be_nested_str_weak(process_event_handler), - /* K37 */ be_nested_str_weak(process_property_assignment), - }), - be_str_weak(process_statement), - &be_const_str_solidified, - ( &(const binstruction[141]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x740A0005, // 0004 JMPT R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0000, // 000A JMPF R2 #000C - 0x80000400, // 000B RET 0 - 0x88080301, // 000C GETMBR R2 R1 K1 - 0xB80E0400, // 000D GETNGBL R3 K2 - 0x880C0703, // 000E GETMBR R3 R3 K3 - 0x880C0705, // 000F GETMBR R3 R3 K5 - 0x1C080403, // 0010 EQ R2 R2 R3 - 0x780A0005, // 0011 JMPF R2 #0018 - 0x8C080106, // 0012 GETMET R2 R0 K6 - 0x88100307, // 0013 GETMBR R4 R1 K7 - 0x7C080400, // 0014 CALL R2 2 - 0x8C080108, // 0015 GETMET R2 R0 K8 - 0x7C080200, // 0016 CALL R2 1 - 0x80000400, // 0017 RET 0 - 0x88080301, // 0018 GETMBR R2 R1 K1 - 0xB80E0400, // 0019 GETNGBL R3 K2 - 0x880C0703, // 001A GETMBR R3 R3 K3 - 0x880C0709, // 001B GETMBR R3 R3 K9 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A0002, // 001D JMPF R2 #0021 - 0x8C080108, // 001E GETMET R2 R0 K8 - 0x7C080200, // 001F CALL R2 1 - 0x80000400, // 0020 RET 0 - 0x8808010A, // 0021 GETMBR R2 R0 K10 - 0x880C0301, // 0022 GETMBR R3 R1 K1 - 0xB8120400, // 0023 GETNGBL R4 K2 - 0x88100903, // 0024 GETMBR R4 R4 K3 - 0x8810090B, // 0025 GETMBR R4 R4 K11 - 0x1C0C0604, // 0026 EQ R3 R3 R4 - 0x740E0005, // 0027 JMPT R3 #002E - 0x880C0301, // 0028 GETMBR R3 R1 K1 - 0xB8120400, // 0029 GETNGBL R4 K2 - 0x88100903, // 002A GETMBR R4 R4 K3 - 0x8810090C, // 002B GETMBR R4 R4 K12 - 0x1C0C0604, // 002C EQ R3 R3 R4 - 0x780E0001, // 002D JMPF R3 #0030 - 0x500C0000, // 002E LDBOOL R3 0 0 - 0x90021403, // 002F SETMBR R0 K10 R3 - 0x880C0301, // 0030 GETMBR R3 R1 K1 - 0xB8120400, // 0031 GETNGBL R4 K2 - 0x88100903, // 0032 GETMBR R4 R4 K3 - 0x8810090B, // 0033 GETMBR R4 R4 K11 - 0x1C0C0604, // 0034 EQ R3 R3 R4 - 0x780E0046, // 0035 JMPF R3 #007D - 0x880C0307, // 0036 GETMBR R3 R1 K7 - 0x1C0C070D, // 0037 EQ R3 R3 K13 - 0x780E0006, // 0038 JMPF R3 #0040 - 0x8C0C010E, // 0039 GETMET R3 R0 K14 - 0x5814000F, // 003A LDCONST R5 K15 - 0x7C0C0400, // 003B CALL R3 2 - 0x8C0C0110, // 003C GETMET R3 R0 K16 - 0x7C0C0200, // 003D CALL R3 1 - 0x80000600, // 003E RET 0 - 0x7002003B, // 003F JMP #007C - 0x880C0111, // 0040 GETMBR R3 R0 K17 - 0x740E0001, // 0041 JMPT R3 #0044 - 0x8C0C0112, // 0042 GETMET R3 R0 K18 - 0x7C0C0200, // 0043 CALL R3 1 - 0x880C0307, // 0044 GETMBR R3 R1 K7 - 0x1C0C0713, // 0045 EQ R3 R3 K19 - 0x780E0002, // 0046 JMPF R3 #004A - 0x8C0C0114, // 0047 GETMET R3 R0 K20 - 0x7C0C0200, // 0048 CALL R3 1 - 0x70020031, // 0049 JMP #007C - 0x880C0307, // 004A GETMBR R3 R1 K7 - 0x1C0C0715, // 004B EQ R3 R3 K21 - 0x780E0002, // 004C JMPF R3 #0050 - 0x8C0C0116, // 004D GETMET R3 R0 K22 - 0x7C0C0200, // 004E CALL R3 1 - 0x7002002B, // 004F JMP #007C - 0x880C0307, // 0050 GETMBR R3 R1 K7 - 0x1C0C0717, // 0051 EQ R3 R3 K23 - 0x780E0002, // 0052 JMPF R3 #0056 - 0x8C0C0118, // 0053 GETMET R3 R0 K24 - 0x7C0C0200, // 0054 CALL R3 1 - 0x70020025, // 0055 JMP #007C - 0x880C0307, // 0056 GETMBR R3 R1 K7 - 0x1C0C0719, // 0057 EQ R3 R3 K25 - 0x780E0002, // 0058 JMPF R3 #005C - 0x8C0C011A, // 0059 GETMET R3 R0 K26 - 0x7C0C0200, // 005A CALL R3 1 - 0x7002001F, // 005B JMP #007C - 0x880C0307, // 005C GETMBR R3 R1 K7 - 0x1C0C071B, // 005D EQ R3 R3 K27 - 0x780E0002, // 005E JMPF R3 #0062 - 0x8C0C011C, // 005F GETMET R3 R0 K28 - 0x7C0C0200, // 0060 CALL R3 1 - 0x70020019, // 0061 JMP #007C - 0x880C0307, // 0062 GETMBR R3 R1 K7 - 0x1C0C071D, // 0063 EQ R3 R3 K29 - 0x780E0002, // 0064 JMPF R3 #0068 - 0x8C0C011E, // 0065 GETMET R3 R0 K30 - 0x7C0C0200, // 0066 CALL R3 1 - 0x70020013, // 0067 JMP #007C - 0x880C0307, // 0068 GETMBR R3 R1 K7 - 0x1C0C071F, // 0069 EQ R3 R3 K31 - 0x780E0002, // 006A JMPF R3 #006E - 0x8C0C0120, // 006B GETMET R3 R0 K32 - 0x7C0C0200, // 006C CALL R3 1 - 0x7002000D, // 006D JMP #007C - 0x880C0307, // 006E GETMBR R3 R1 K7 - 0x1C0C0721, // 006F EQ R3 R3 K33 - 0x780E0002, // 0070 JMPF R3 #0074 - 0x8C0C0122, // 0071 GETMET R3 R0 K34 - 0x7C0C0200, // 0072 CALL R3 1 - 0x70020007, // 0073 JMP #007C - 0x880C0307, // 0074 GETMBR R3 R1 K7 - 0x1C0C0723, // 0075 EQ R3 R3 K35 - 0x780E0002, // 0076 JMPF R3 #007A - 0x8C0C0124, // 0077 GETMET R3 R0 K36 - 0x7C0C0200, // 0078 CALL R3 1 - 0x70020001, // 0079 JMP #007C - 0x8C0C0110, // 007A GETMET R3 R0 K16 - 0x7C0C0200, // 007B CALL R3 1 - 0x7002000E, // 007C JMP #008C - 0x880C0301, // 007D GETMBR R3 R1 K1 - 0xB8120400, // 007E GETNGBL R4 K2 - 0x88100903, // 007F GETMBR R4 R4 K3 - 0x8810090C, // 0080 GETMBR R4 R4 K12 - 0x1C0C0604, // 0081 EQ R3 R3 R4 - 0x780E0006, // 0082 JMPF R3 #008A - 0x880C0111, // 0083 GETMBR R3 R0 K17 - 0x740E0001, // 0084 JMPT R3 #0087 - 0x8C0C0112, // 0085 GETMET R3 R0 K18 - 0x7C0C0200, // 0086 CALL R3 1 - 0x8C0C0125, // 0087 GETMET R3 R0 K37 - 0x7C0C0200, // 0088 CALL R3 1 - 0x70020001, // 0089 JMP #008C - 0x8C0C0110, // 008A GETMET R3 R0 K16 - 0x7C0C0200, // 008B CALL R3 1 - 0x80000000, // 008C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_additive_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(process_multiplicative_expression), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(animation_dsl), - /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(PLUS), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - /* K11 */ be_nested_str_weak(is_computed_expression_string), - /* K12 */ be_nested_str_weak(is_anonymous_function), - /* K13 */ be_nested_str_weak(create_computation_closure_from_string), - }), - be_str_weak(process_additive_expression), - &be_const_str_solidified, - ( &(const binstruction[57]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C0C0600, // 0003 CALL R3 3 - 0x8C100101, // 0004 GETMET R4 R0 K1 - 0x7C100200, // 0005 CALL R4 1 - 0x74120021, // 0006 JMPT R4 #0029 - 0x8C100102, // 0007 GETMET R4 R0 K2 - 0x7C100200, // 0008 CALL R4 1 - 0x4C140000, // 0009 LDNIL R5 - 0x20140805, // 000A NE R5 R4 R5 - 0x7816001A, // 000B JMPF R5 #0027 - 0x88140903, // 000C GETMBR R5 R4 K3 - 0xB81A0800, // 000D GETNGBL R6 K4 - 0x88180D05, // 000E GETMBR R6 R6 K5 - 0x88180D06, // 000F GETMBR R6 R6 K6 - 0x1C140A06, // 0010 EQ R5 R5 R6 - 0x74160005, // 0011 JMPT R5 #0018 - 0x88140903, // 0012 GETMBR R5 R4 K3 - 0xB81A0800, // 0013 GETNGBL R6 K4 - 0x88180D05, // 0014 GETMBR R6 R6 K5 - 0x88180D07, // 0015 GETMBR R6 R6 K7 - 0x1C140A06, // 0016 EQ R5 R5 R6 - 0x7816000E, // 0017 JMPF R5 #0027 - 0x88140908, // 0018 GETMBR R5 R4 K8 - 0x8C180109, // 0019 GETMET R6 R0 K9 - 0x7C180200, // 001A CALL R6 1 - 0x8C180100, // 001B GETMET R6 R0 K0 - 0x5C200200, // 001C MOVE R8 R1 - 0x50240000, // 001D LDBOOL R9 0 0 - 0x7C180600, // 001E CALL R6 3 - 0x601C0018, // 001F GETGBL R7 G24 - 0x5820000A, // 0020 LDCONST R8 K10 - 0x5C240600, // 0021 MOVE R9 R3 - 0x5C280A00, // 0022 MOVE R10 R5 - 0x5C2C0C00, // 0023 MOVE R11 R6 - 0x7C1C0800, // 0024 CALL R7 4 - 0x5C0C0E00, // 0025 MOVE R3 R7 - 0x70020000, // 0026 JMP #0028 - 0x70020000, // 0027 JMP #0029 - 0x7001FFDA, // 0028 JMP #0004 - 0x780A000C, // 0029 JMPF R2 #0037 - 0x8C10010B, // 002A GETMET R4 R0 K11 - 0x5C180600, // 002B MOVE R6 R3 - 0x7C100400, // 002C CALL R4 2 - 0x78120008, // 002D JMPF R4 #0037 - 0x8C10010C, // 002E GETMET R4 R0 K12 - 0x5C180600, // 002F MOVE R6 R3 - 0x7C100400, // 0030 CALL R4 2 - 0x74120004, // 0031 JMPT R4 #0037 - 0x8C10010D, // 0032 GETMET R4 R0 K13 - 0x5C180600, // 0033 MOVE R6 R3 - 0x7C100400, // 0034 CALL R4 2 - 0x80040800, // 0035 RET 1 R4 - 0x70020000, // 0036 JMP #0038 - 0x80040600, // 0037 RET 1 R3 - 0x80000000, // 0038 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_play_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_play_statement_fluent, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[23]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(animation_dsl), - /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(IDENTIFIER), - /* K7 */ be_nested_str_weak(KEYWORD), - /* K8 */ be_nested_str_weak(peek), - /* K9 */ be_nested_str_weak(LEFT_PAREN), - /* K10 */ be_nested_str_weak(process_nested_function_call), - /* K11 */ be_nested_str_weak(expect_identifier), - /* K12 */ be_nested_str_weak(_validate_object_reference), - /* K13 */ be_nested_str_weak(sequence_X20play), - /* K14 */ be_nested_str_weak(_X25s_), - /* K15 */ be_nested_str_weak(nil), - /* K16 */ be_nested_str_weak(value), - /* K17 */ be_nested_str_weak(for), - /* K18 */ be_nested_str_weak(process_time_value), - /* K19 */ be_nested_str_weak(collect_inline_comment), - /* K20 */ be_nested_str_weak(add), - /* K21 */ be_nested_str_weak(_X25s_X2Epush_play_step_X28_X25s_X2C_X20_X25s_X29_X25s), - /* K22 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_play_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[87]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58040001, // 0002 LDCONST R1 K1 - 0x8C080102, // 0003 GETMET R2 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x4C0C0000, // 0005 LDNIL R3 - 0x200C0403, // 0006 NE R3 R2 R3 - 0x780E001C, // 0007 JMPF R3 #0025 - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0xB8120800, // 0009 GETNGBL R4 K4 - 0x88100905, // 000A GETMBR R4 R4 K5 - 0x88100906, // 000B GETMBR R4 R4 K6 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x740E0005, // 000D JMPT R3 #0014 - 0x880C0503, // 000E GETMBR R3 R2 K3 - 0xB8120800, // 000F GETNGBL R4 K4 - 0x88100905, // 0010 GETMBR R4 R4 K5 - 0x88100907, // 0011 GETMBR R4 R4 K7 - 0x1C0C0604, // 0012 EQ R3 R3 R4 - 0x780E0010, // 0013 JMPF R3 #0025 - 0x8C0C0108, // 0014 GETMET R3 R0 K8 - 0x7C0C0200, // 0015 CALL R3 1 - 0x4C100000, // 0016 LDNIL R4 - 0x200C0604, // 0017 NE R3 R3 R4 - 0x780E000B, // 0018 JMPF R3 #0025 - 0x8C0C0108, // 0019 GETMET R3 R0 K8 - 0x7C0C0200, // 001A CALL R3 1 - 0x880C0703, // 001B GETMBR R3 R3 K3 - 0xB8120800, // 001C GETNGBL R4 K4 - 0x88100905, // 001D GETMBR R4 R4 K5 - 0x88100909, // 001E GETMBR R4 R4 K9 - 0x1C0C0604, // 001F EQ R3 R3 R4 - 0x780E0003, // 0020 JMPF R3 #0025 - 0x8C0C010A, // 0021 GETMET R3 R0 K10 - 0x7C0C0200, // 0022 CALL R3 1 - 0x5C040600, // 0023 MOVE R1 R3 - 0x7002000A, // 0024 JMP #0030 - 0x8C0C010B, // 0025 GETMET R3 R0 K11 - 0x7C0C0200, // 0026 CALL R3 1 - 0x8C10010C, // 0027 GETMET R4 R0 K12 - 0x5C180600, // 0028 MOVE R6 R3 - 0x581C000D, // 0029 LDCONST R7 K13 - 0x7C100600, // 002A CALL R4 3 - 0x60100018, // 002B GETGBL R4 G24 - 0x5814000E, // 002C LDCONST R5 K14 - 0x5C180600, // 002D MOVE R6 R3 - 0x7C100400, // 002E CALL R4 2 - 0x5C040800, // 002F MOVE R1 R4 - 0x580C000F, // 0030 LDCONST R3 K15 - 0x8C100102, // 0031 GETMET R4 R0 K2 - 0x7C100200, // 0032 CALL R4 1 - 0x4C140000, // 0033 LDNIL R5 - 0x20100805, // 0034 NE R4 R4 R5 - 0x78120013, // 0035 JMPF R4 #004A - 0x8C100102, // 0036 GETMET R4 R0 K2 - 0x7C100200, // 0037 CALL R4 1 - 0x88100903, // 0038 GETMBR R4 R4 K3 - 0xB8160800, // 0039 GETNGBL R5 K4 - 0x88140B05, // 003A GETMBR R5 R5 K5 - 0x88140B07, // 003B GETMBR R5 R5 K7 - 0x1C100805, // 003C EQ R4 R4 R5 - 0x7812000B, // 003D JMPF R4 #004A - 0x8C100102, // 003E GETMET R4 R0 K2 - 0x7C100200, // 003F CALL R4 1 - 0x88100910, // 0040 GETMBR R4 R4 K16 - 0x1C100911, // 0041 EQ R4 R4 K17 - 0x78120006, // 0042 JMPF R4 #004A - 0x8C100100, // 0043 GETMET R4 R0 K0 - 0x7C100200, // 0044 CALL R4 1 - 0x60100008, // 0045 GETGBL R4 G8 - 0x8C140112, // 0046 GETMET R5 R0 K18 - 0x7C140200, // 0047 CALL R5 1 - 0x7C100200, // 0048 CALL R4 1 - 0x5C0C0800, // 0049 MOVE R3 R4 - 0x8C100113, // 004A GETMET R4 R0 K19 - 0x7C100200, // 004B CALL R4 1 - 0x8C140114, // 004C GETMET R5 R0 K20 - 0x601C0018, // 004D GETGBL R7 G24 - 0x58200015, // 004E LDCONST R8 K21 - 0x8C240116, // 004F GETMET R9 R0 K22 - 0x7C240200, // 0050 CALL R9 1 - 0x5C280200, // 0051 MOVE R10 R1 - 0x5C2C0600, // 0052 MOVE R11 R3 - 0x5C300800, // 0053 MOVE R12 R4 - 0x7C1C0A00, // 0054 CALL R7 5 - 0x7C140400, // 0055 CALL R5 2 - 0x80000000, // 0056 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_palette -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_palette, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[43]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(palette), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(expect_left_bracket), - /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K8 */ be_nested_str_weak(check_right_bracket), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Empty_X20palettes_X20are_X20not_X20allowed_X2E_X20A_X20palette_X20must_X20contain_X20at_X20least_X20one_X20color_X20entry_X2E), - /* K11 */ be_nested_str_weak(current), - /* K12 */ be_nested_str_weak(type), - /* K13 */ be_nested_str_weak(animation_dsl), - /* K14 */ be_nested_str_weak(Token), - /* K15 */ be_nested_str_weak(LEFT_PAREN), - /* K16 */ be_nested_str_weak(at_end), - /* K17 */ be_nested_str_weak(Cannot_X20mix_X20alternative_X20syntax_X20_X5Bcolor1_X2C_X20color2_X2C_X20_X2E_X2E_X2E_X5D_X20with_X20tuple_X20syntax_X20_X28value_X2C_X20color_X29_X2E_X20Use_X20only_X20one_X20syntax_X20per_X20palette_X2E), - /* K18 */ be_nested_str_weak(expect_left_paren), - /* K19 */ be_nested_str_weak(expect_number), - /* K20 */ be_nested_str_weak(expect_comma), - /* K21 */ be_nested_str_weak(process_value), - /* K22 */ be_nested_str_weak(color), - /* K23 */ be_nested_str_weak(expect_right_paren), - /* K24 */ be_nested_str_weak(convert_to_vrgb), - /* K25 */ be_nested_str_weak(0x_X25s), - /* K26 */ be_nested_str_weak(push), - /* K27 */ be_nested_str_weak(Cannot_X20mix_X20tuple_X20syntax_X20_X28value_X2C_X20color_X29_X20with_X20alternative_X20syntax_X20_X5Bcolor1_X2C_X20color2_X2C_X20_X2E_X2E_X2E_X5D_X2E_X20Use_X20only_X20one_X20syntax_X20per_X20palette_X2E), - /* K28 */ be_nested_str_weak(COMMENT), - /* K29 */ be_nested_str_weak(COMMA), - /* K30 */ be_nested_str_weak(NEWLINE), - /* K31 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20palette_X20definition), - /* K32 */ be_nested_str_weak(expect_right_bracket), - /* K33 */ be_nested_str_weak(collect_inline_comment), - /* K34 */ be_nested_str_weak(), - /* K35 */ be_const_int(0), - /* K36 */ be_const_int(1), - /* K37 */ be_nested_str_weak(_X20), - /* K38 */ be_nested_str_weak(_X2508X), - /* K39 */ be_nested_str_weak(_X22_X25s_X22), - /* K40 */ be_nested_str_weak(stop_iteration), - /* K41 */ be_nested_str_weak(add), - /* K42 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20bytes_X28_X25s_X29_X25s), - }), - be_str_weak(process_palette), - &be_const_str_solidified, - ( &(const binstruction[239]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x7C080200, // 000F CALL R2 1 - 0x60080012, // 0010 GETGBL R2 G18 - 0x7C080000, // 0011 CALL R2 0 - 0x8C0C0107, // 0012 GETMET R3 R0 K7 - 0x7C0C0200, // 0013 CALL R3 1 - 0x8C0C0108, // 0014 GETMET R3 R0 K8 - 0x7C0C0200, // 0015 CALL R3 1 - 0x780E0005, // 0016 JMPF R3 #001D - 0x8C0C0109, // 0017 GETMET R3 R0 K9 - 0x5814000A, // 0018 LDCONST R5 K10 - 0x7C0C0400, // 0019 CALL R3 2 - 0x8C0C0104, // 001A GETMET R3 R0 K4 - 0x7C0C0200, // 001B CALL R3 1 - 0x80000600, // 001C RET 0 - 0x8C0C010B, // 001D GETMET R3 R0 K11 - 0x7C0C0200, // 001E CALL R3 1 - 0x4C100000, // 001F LDNIL R4 - 0x200C0604, // 0020 NE R3 R3 R4 - 0x780E0007, // 0021 JMPF R3 #002A - 0x8C0C010B, // 0022 GETMET R3 R0 K11 - 0x7C0C0200, // 0023 CALL R3 1 - 0x880C070C, // 0024 GETMBR R3 R3 K12 - 0xB8121A00, // 0025 GETNGBL R4 K13 - 0x8810090E, // 0026 GETMBR R4 R4 K14 - 0x8810090F, // 0027 GETMBR R4 R4 K15 - 0x1C0C0604, // 0028 EQ R3 R3 R4 - 0x740E0000, // 0029 JMPT R3 #002B - 0x500C0001, // 002A LDBOOL R3 0 1 - 0x500C0200, // 002B LDBOOL R3 1 0 - 0x8C100110, // 002C GETMET R4 R0 K16 - 0x7C100200, // 002D CALL R4 1 - 0x74120097, // 002E JMPT R4 #00C7 - 0x8C100108, // 002F GETMET R4 R0 K8 - 0x7C100200, // 0030 CALL R4 1 - 0x74120094, // 0031 JMPT R4 #00C7 - 0x8C100107, // 0032 GETMET R4 R0 K7 - 0x7C100200, // 0033 CALL R4 1 - 0x8C100108, // 0034 GETMET R4 R0 K8 - 0x7C100200, // 0035 CALL R4 1 - 0x78120000, // 0036 JMPF R4 #0038 - 0x7002008E, // 0037 JMP #00C7 - 0x780E002B, // 0038 JMPF R3 #0065 - 0x8C10010B, // 0039 GETMET R4 R0 K11 - 0x7C100200, // 003A CALL R4 1 - 0x4C140000, // 003B LDNIL R5 - 0x20100805, // 003C NE R4 R4 R5 - 0x7812000D, // 003D JMPF R4 #004C - 0x8C10010B, // 003E GETMET R4 R0 K11 - 0x7C100200, // 003F CALL R4 1 - 0x8810090C, // 0040 GETMBR R4 R4 K12 - 0xB8161A00, // 0041 GETNGBL R5 K13 - 0x88140B0E, // 0042 GETMBR R5 R5 K14 - 0x88140B0F, // 0043 GETMBR R5 R5 K15 - 0x20100805, // 0044 NE R4 R4 R5 - 0x78120005, // 0045 JMPF R4 #004C - 0x8C100109, // 0046 GETMET R4 R0 K9 - 0x58180011, // 0047 LDCONST R6 K17 - 0x7C100400, // 0048 CALL R4 2 - 0x8C100104, // 0049 GETMET R4 R0 K4 - 0x7C100200, // 004A CALL R4 1 - 0x80000800, // 004B RET 0 - 0x8C100112, // 004C GETMET R4 R0 K18 - 0x7C100200, // 004D CALL R4 1 - 0x8C100113, // 004E GETMET R4 R0 K19 - 0x7C100200, // 004F CALL R4 1 - 0x8C140114, // 0050 GETMET R5 R0 K20 - 0x7C140200, // 0051 CALL R5 1 - 0x8C140115, // 0052 GETMET R5 R0 K21 - 0x581C0016, // 0053 LDCONST R7 K22 - 0x7C140400, // 0054 CALL R5 2 - 0x8C180117, // 0055 GETMET R6 R0 K23 - 0x7C180200, // 0056 CALL R6 1 - 0x8C180118, // 0057 GETMET R6 R0 K24 - 0x5C200800, // 0058 MOVE R8 R4 - 0x5C240A00, // 0059 MOVE R9 R5 - 0x7C180600, // 005A CALL R6 3 - 0x601C0009, // 005B GETGBL R7 G9 - 0x60200018, // 005C GETGBL R8 G24 - 0x58240019, // 005D LDCONST R9 K25 - 0x5C280C00, // 005E MOVE R10 R6 - 0x7C200400, // 005F CALL R8 2 - 0x7C1C0200, // 0060 CALL R7 1 - 0x8C20051A, // 0061 GETMET R8 R2 K26 - 0x5C280E00, // 0062 MOVE R10 R7 - 0x7C200400, // 0063 CALL R8 2 - 0x70020022, // 0064 JMP #0088 - 0x8C10010B, // 0065 GETMET R4 R0 K11 - 0x7C100200, // 0066 CALL R4 1 - 0x4C140000, // 0067 LDNIL R5 - 0x20100805, // 0068 NE R4 R4 R5 - 0x7812000D, // 0069 JMPF R4 #0078 - 0x8C10010B, // 006A GETMET R4 R0 K11 - 0x7C100200, // 006B CALL R4 1 - 0x8810090C, // 006C GETMBR R4 R4 K12 - 0xB8161A00, // 006D GETNGBL R5 K13 - 0x88140B0E, // 006E GETMBR R5 R5 K14 - 0x88140B0F, // 006F GETMBR R5 R5 K15 - 0x1C100805, // 0070 EQ R4 R4 R5 - 0x78120005, // 0071 JMPF R4 #0078 - 0x8C100109, // 0072 GETMET R4 R0 K9 - 0x5818001B, // 0073 LDCONST R6 K27 - 0x7C100400, // 0074 CALL R4 2 - 0x8C100104, // 0075 GETMET R4 R0 K4 - 0x7C100200, // 0076 CALL R4 1 - 0x80000800, // 0077 RET 0 - 0x8C100115, // 0078 GETMET R4 R0 K21 - 0x58180016, // 0079 LDCONST R6 K22 - 0x7C100400, // 007A CALL R4 2 - 0x8C140118, // 007B GETMET R5 R0 K24 - 0x541E00FE, // 007C LDINT R7 255 - 0x5C200800, // 007D MOVE R8 R4 - 0x7C140600, // 007E CALL R5 3 - 0x60180009, // 007F GETGBL R6 G9 - 0x601C0018, // 0080 GETGBL R7 G24 - 0x58200019, // 0081 LDCONST R8 K25 - 0x5C240A00, // 0082 MOVE R9 R5 - 0x7C1C0400, // 0083 CALL R7 2 - 0x7C180200, // 0084 CALL R6 1 - 0x8C1C051A, // 0085 GETMET R7 R2 K26 - 0x5C240C00, // 0086 MOVE R9 R6 - 0x7C1C0400, // 0087 CALL R7 2 - 0x8C100110, // 0088 GETMET R4 R0 K16 - 0x7C100200, // 0089 CALL R4 1 - 0x7412000F, // 008A JMPT R4 #009B - 0x8C10010B, // 008B GETMET R4 R0 K11 - 0x7C100200, // 008C CALL R4 1 - 0x4C140000, // 008D LDNIL R5 - 0x20140805, // 008E NE R5 R4 R5 - 0x78160008, // 008F JMPF R5 #0099 - 0x8814090C, // 0090 GETMBR R5 R4 K12 - 0xB81A1A00, // 0091 GETNGBL R6 K13 - 0x88180D0E, // 0092 GETMBR R6 R6 K14 - 0x88180D1C, // 0093 GETMBR R6 R6 K28 - 0x1C140A06, // 0094 EQ R5 R5 R6 - 0x78160002, // 0095 JMPF R5 #0099 - 0x8C140100, // 0096 GETMET R5 R0 K0 - 0x7C140200, // 0097 CALL R5 1 - 0x70020000, // 0098 JMP #009A - 0x70020000, // 0099 JMP #009B - 0x7001FFEC, // 009A JMP #0088 - 0x8C10010B, // 009B GETMET R4 R0 K11 - 0x7C100200, // 009C CALL R4 1 - 0x4C140000, // 009D LDNIL R5 - 0x20100805, // 009E NE R4 R4 R5 - 0x7812000C, // 009F JMPF R4 #00AD - 0x8C10010B, // 00A0 GETMET R4 R0 K11 - 0x7C100200, // 00A1 CALL R4 1 - 0x8810090C, // 00A2 GETMBR R4 R4 K12 - 0xB8161A00, // 00A3 GETNGBL R5 K13 - 0x88140B0E, // 00A4 GETMBR R5 R5 K14 - 0x88140B1D, // 00A5 GETMBR R5 R5 K29 - 0x1C100805, // 00A6 EQ R4 R4 R5 - 0x78120004, // 00A7 JMPF R4 #00AD - 0x8C100100, // 00A8 GETMET R4 R0 K0 - 0x7C100200, // 00A9 CALL R4 1 - 0x8C100107, // 00AA GETMET R4 R0 K7 - 0x7C100200, // 00AB CALL R4 1 - 0x70020018, // 00AC JMP #00C6 - 0x8C10010B, // 00AD GETMET R4 R0 K11 - 0x7C100200, // 00AE CALL R4 1 - 0x4C140000, // 00AF LDNIL R5 - 0x20100805, // 00B0 NE R4 R4 R5 - 0x7812000C, // 00B1 JMPF R4 #00BF - 0x8C10010B, // 00B2 GETMET R4 R0 K11 - 0x7C100200, // 00B3 CALL R4 1 - 0x8810090C, // 00B4 GETMBR R4 R4 K12 - 0xB8161A00, // 00B5 GETNGBL R5 K13 - 0x88140B0E, // 00B6 GETMBR R5 R5 K14 - 0x88140B1E, // 00B7 GETMBR R5 R5 K30 - 0x1C100805, // 00B8 EQ R4 R4 R5 - 0x78120004, // 00B9 JMPF R4 #00BF - 0x8C100100, // 00BA GETMET R4 R0 K0 - 0x7C100200, // 00BB CALL R4 1 - 0x8C100107, // 00BC GETMET R4 R0 K7 - 0x7C100200, // 00BD CALL R4 1 - 0x70020006, // 00BE JMP #00C6 - 0x8C100108, // 00BF GETMET R4 R0 K8 - 0x7C100200, // 00C0 CALL R4 1 - 0x74120003, // 00C1 JMPT R4 #00C6 - 0x8C100109, // 00C2 GETMET R4 R0 K9 - 0x5818001F, // 00C3 LDCONST R6 K31 - 0x7C100400, // 00C4 CALL R4 2 - 0x70020000, // 00C5 JMP #00C7 - 0x7001FF64, // 00C6 JMP #002C - 0x8C100120, // 00C7 GETMET R4 R0 K32 - 0x7C100200, // 00C8 CALL R4 1 - 0x8C100121, // 00C9 GETMET R4 R0 K33 - 0x7C100200, // 00CA CALL R4 1 - 0x58140022, // 00CB LDCONST R5 K34 - 0x60180010, // 00CC GETGBL R6 G16 - 0x601C000C, // 00CD GETGBL R7 G12 - 0x5C200400, // 00CE MOVE R8 R2 - 0x7C1C0200, // 00CF CALL R7 1 - 0x041C0F24, // 00D0 SUB R7 R7 K36 - 0x401E4607, // 00D1 CONNECT R7 K35 R7 - 0x7C180200, // 00D2 CALL R6 1 - 0xA802000E, // 00D3 EXBLK 0 #00E3 - 0x5C1C0C00, // 00D4 MOVE R7 R6 - 0x7C1C0000, // 00D5 CALL R7 0 - 0x24200F23, // 00D6 GT R8 R7 K35 - 0x78220000, // 00D7 JMPF R8 #00D9 - 0x00140B25, // 00D8 ADD R5 R5 K37 - 0x60200018, // 00D9 GETGBL R8 G24 - 0x58240026, // 00DA LDCONST R9 K38 - 0x94280407, // 00DB GETIDX R10 R2 R7 - 0x7C200400, // 00DC CALL R8 2 - 0x60240018, // 00DD GETGBL R9 G24 - 0x58280027, // 00DE LDCONST R10 K39 - 0x5C2C1000, // 00DF MOVE R11 R8 - 0x7C240400, // 00E0 CALL R9 2 - 0x00140A09, // 00E1 ADD R5 R5 R9 - 0x7001FFF0, // 00E2 JMP #00D4 - 0x58180028, // 00E3 LDCONST R6 K40 - 0xAC180200, // 00E4 CATCH R6 1 0 - 0xB0080000, // 00E5 RAISE 2 R0 R0 - 0x8C180129, // 00E6 GETMET R6 R0 K41 - 0x60200018, // 00E7 GETGBL R8 G24 - 0x5824002A, // 00E8 LDCONST R9 K42 - 0x5C280200, // 00E9 MOVE R10 R1 - 0x5C2C0A00, // 00EA MOVE R11 R5 - 0x5C300800, // 00EB MOVE R12 R4 - 0x7C200800, // 00EC CALL R8 4 - 0x7C180400, // 00ED CALL R6 2 - 0x80000000, // 00EE RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[37]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(EOF), - /* K5 */ be_nested_str_weak(COMMENT), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(get_indent), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(NEWLINE), - /* K11 */ be_nested_str_weak(KEYWORD), - /* K12 */ be_nested_str_weak(play), - /* K13 */ be_nested_str_weak(process_play_statement_fluent), - /* K14 */ be_nested_str_weak(wait), - /* K15 */ be_nested_str_weak(process_wait_statement_fluent), - /* K16 */ be_nested_str_weak(repeat), - /* K17 */ be_nested_str_weak(1), - /* K18 */ be_nested_str_weak(forever), - /* K19 */ be_nested_str_weak(_X2D1), - /* K20 */ be_nested_str_weak(expect_number), - /* K21 */ be_nested_str_weak(expect_keyword), - /* K22 */ be_nested_str_weak(times), - /* K23 */ be_nested_str_weak(expect_left_brace), - /* K24 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), - /* K25 */ be_nested_str_weak(indent_level), - /* K26 */ be_const_int(1), - /* K27 */ be_nested_str_weak(at_end), - /* K28 */ be_nested_str_weak(check_right_brace), - /* K29 */ be_nested_str_weak(process_sequence_statement), - /* K30 */ be_nested_str_weak(expect_right_brace), - /* K31 */ be_nested_str_weak(_X25s_X29), - /* K32 */ be_nested_str_weak(IDENTIFIER), - /* K33 */ be_nested_str_weak(peek), - /* K34 */ be_nested_str_weak(DOT), - /* K35 */ be_nested_str_weak(process_sequence_assignment_fluent), - /* K36 */ be_nested_str_weak(skip_statement), - }), - be_str_weak(process_sequence_statement), - &be_const_str_solidified, - ( &(const binstruction[162]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x740A0005, // 0004 JMPT R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0000, // 000A JMPF R2 #000C - 0x80000400, // 000B RET 0 - 0x88080301, // 000C GETMBR R2 R1 K1 - 0xB80E0400, // 000D GETNGBL R3 K2 - 0x880C0703, // 000E GETMBR R3 R3 K3 - 0x880C0705, // 000F GETMBR R3 R3 K5 - 0x1C080403, // 0010 EQ R2 R2 R3 - 0x780A0008, // 0011 JMPF R2 #001B - 0x8C080106, // 0012 GETMET R2 R0 K6 - 0x8C100107, // 0013 GETMET R4 R0 K7 - 0x7C100200, // 0014 CALL R4 1 - 0x88140308, // 0015 GETMBR R5 R1 K8 - 0x00100805, // 0016 ADD R4 R4 R5 - 0x7C080400, // 0017 CALL R2 2 - 0x8C080109, // 0018 GETMET R2 R0 K9 - 0x7C080200, // 0019 CALL R2 1 - 0x80000400, // 001A RET 0 - 0x88080301, // 001B GETMBR R2 R1 K1 - 0xB80E0400, // 001C GETNGBL R3 K2 - 0x880C0703, // 001D GETMBR R3 R3 K3 - 0x880C070A, // 001E GETMBR R3 R3 K10 - 0x1C080403, // 001F EQ R2 R2 R3 - 0x780A0002, // 0020 JMPF R2 #0024 - 0x8C080109, // 0021 GETMET R2 R0 K9 - 0x7C080200, // 0022 CALL R2 1 - 0x80000400, // 0023 RET 0 - 0x88080301, // 0024 GETMBR R2 R1 K1 - 0xB80E0400, // 0025 GETNGBL R3 K2 - 0x880C0703, // 0026 GETMBR R3 R3 K3 - 0x880C070B, // 0027 GETMBR R3 R3 K11 - 0x1C080403, // 0028 EQ R2 R2 R3 - 0x780A0005, // 0029 JMPF R2 #0030 - 0x88080308, // 002A GETMBR R2 R1 K8 - 0x1C08050C, // 002B EQ R2 R2 K12 - 0x780A0002, // 002C JMPF R2 #0030 - 0x8C08010D, // 002D GETMET R2 R0 K13 - 0x7C080200, // 002E CALL R2 1 - 0x70020070, // 002F JMP #00A1 - 0x88080301, // 0030 GETMBR R2 R1 K1 - 0xB80E0400, // 0031 GETNGBL R3 K2 - 0x880C0703, // 0032 GETMBR R3 R3 K3 - 0x880C070B, // 0033 GETMBR R3 R3 K11 - 0x1C080403, // 0034 EQ R2 R2 R3 - 0x780A0005, // 0035 JMPF R2 #003C - 0x88080308, // 0036 GETMBR R2 R1 K8 - 0x1C08050E, // 0037 EQ R2 R2 K14 - 0x780A0002, // 0038 JMPF R2 #003C - 0x8C08010F, // 0039 GETMET R2 R0 K15 - 0x7C080200, // 003A CALL R2 1 - 0x70020064, // 003B JMP #00A1 - 0x88080301, // 003C GETMBR R2 R1 K1 - 0xB80E0400, // 003D GETNGBL R3 K2 - 0x880C0703, // 003E GETMBR R3 R3 K3 - 0x880C070B, // 003F GETMBR R3 R3 K11 - 0x1C080403, // 0040 EQ R2 R2 R3 - 0x780A0043, // 0041 JMPF R2 #0086 - 0x88080308, // 0042 GETMBR R2 R1 K8 - 0x1C080510, // 0043 EQ R2 R2 K16 - 0x780A0040, // 0044 JMPF R2 #0086 - 0x8C080109, // 0045 GETMET R2 R0 K9 - 0x7C080200, // 0046 CALL R2 1 - 0x58080011, // 0047 LDCONST R2 K17 - 0x8C0C0100, // 0048 GETMET R3 R0 K0 - 0x7C0C0200, // 0049 CALL R3 1 - 0x4C100000, // 004A LDNIL R4 - 0x20100604, // 004B NE R4 R3 R4 - 0x7812000C, // 004C JMPF R4 #005A - 0x88100701, // 004D GETMBR R4 R3 K1 - 0xB8160400, // 004E GETNGBL R5 K2 - 0x88140B03, // 004F GETMBR R5 R5 K3 - 0x88140B0B, // 0050 GETMBR R5 R5 K11 - 0x1C100805, // 0051 EQ R4 R4 R5 - 0x78120006, // 0052 JMPF R4 #005A - 0x88100708, // 0053 GETMBR R4 R3 K8 - 0x1C100912, // 0054 EQ R4 R4 K18 - 0x78120003, // 0055 JMPF R4 #005A - 0x8C100109, // 0056 GETMET R4 R0 K9 - 0x7C100200, // 0057 CALL R4 1 - 0x58080013, // 0058 LDCONST R2 K19 - 0x70020008, // 0059 JMP #0063 - 0x8C100114, // 005A GETMET R4 R0 K20 - 0x7C100200, // 005B CALL R4 1 - 0x8C140115, // 005C GETMET R5 R0 K21 - 0x581C0016, // 005D LDCONST R7 K22 - 0x7C140400, // 005E CALL R5 2 - 0x60140008, // 005F GETGBL R5 G8 - 0x5C180800, // 0060 MOVE R6 R4 - 0x7C140200, // 0061 CALL R5 1 - 0x5C080A00, // 0062 MOVE R2 R5 - 0x8C100117, // 0063 GETMET R4 R0 K23 - 0x7C100200, // 0064 CALL R4 1 - 0x8C100106, // 0065 GETMET R4 R0 K6 - 0x60180018, // 0066 GETGBL R6 G24 - 0x581C0018, // 0067 LDCONST R7 K24 - 0x8C200107, // 0068 GETMET R8 R0 K7 - 0x7C200200, // 0069 CALL R8 1 - 0x5C240400, // 006A MOVE R9 R2 - 0x7C180600, // 006B CALL R6 3 - 0x7C100400, // 006C CALL R4 2 - 0x88100119, // 006D GETMBR R4 R0 K25 - 0x0010091A, // 006E ADD R4 R4 K26 - 0x90023204, // 006F SETMBR R0 K25 R4 - 0x8C10011B, // 0070 GETMET R4 R0 K27 - 0x7C100200, // 0071 CALL R4 1 - 0x74120005, // 0072 JMPT R4 #0079 - 0x8C10011C, // 0073 GETMET R4 R0 K28 - 0x7C100200, // 0074 CALL R4 1 - 0x74120002, // 0075 JMPT R4 #0079 - 0x8C10011D, // 0076 GETMET R4 R0 K29 - 0x7C100200, // 0077 CALL R4 1 - 0x7001FFF6, // 0078 JMP #0070 - 0x8C10011E, // 0079 GETMET R4 R0 K30 - 0x7C100200, // 007A CALL R4 1 - 0x8C100106, // 007B GETMET R4 R0 K6 - 0x60180018, // 007C GETGBL R6 G24 - 0x581C001F, // 007D LDCONST R7 K31 - 0x8C200107, // 007E GETMET R8 R0 K7 - 0x7C200200, // 007F CALL R8 1 - 0x7C180400, // 0080 CALL R6 2 - 0x7C100400, // 0081 CALL R4 2 - 0x88100119, // 0082 GETMBR R4 R0 K25 - 0x0410091A, // 0083 SUB R4 R4 K26 - 0x90023204, // 0084 SETMBR R0 K25 R4 - 0x7002001A, // 0085 JMP #00A1 - 0x88080301, // 0086 GETMBR R2 R1 K1 - 0xB80E0400, // 0087 GETNGBL R3 K2 - 0x880C0703, // 0088 GETMBR R3 R3 K3 - 0x880C0720, // 0089 GETMBR R3 R3 K32 - 0x1C080403, // 008A EQ R2 R2 R3 - 0x780A0012, // 008B JMPF R2 #009F - 0x8C080121, // 008C GETMET R2 R0 K33 - 0x7C080200, // 008D CALL R2 1 - 0x4C0C0000, // 008E LDNIL R3 - 0x20080403, // 008F NE R2 R2 R3 - 0x780A000A, // 0090 JMPF R2 #009C - 0x8C080121, // 0091 GETMET R2 R0 K33 - 0x7C080200, // 0092 CALL R2 1 - 0x88080501, // 0093 GETMBR R2 R2 K1 - 0xB80E0400, // 0094 GETNGBL R3 K2 - 0x880C0703, // 0095 GETMBR R3 R3 K3 - 0x880C0722, // 0096 GETMBR R3 R3 K34 - 0x1C080403, // 0097 EQ R2 R2 R3 - 0x780A0002, // 0098 JMPF R2 #009C - 0x8C080123, // 0099 GETMET R2 R0 K35 - 0x7C080200, // 009A CALL R2 1 - 0x70020001, // 009B JMP #009E - 0x8C080124, // 009C GETMET R2 R0 K36 - 0x7C080200, // 009D CALL R2 1 - 0x70020001, // 009E JMP #00A1 - 0x8C080124, // 009F GETMET R2 R0 K36 - 0x7C080200, // 00A0 CALL R2 1 - 0x80000000, // 00A1 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_array_literal -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[21]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_bracket), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_bracket), - /* K3 */ be_nested_str_weak(process_value), - /* K4 */ be_nested_str_weak(array_element), - /* K5 */ be_nested_str_weak(push), - /* K6 */ be_nested_str_weak(current), - /* K7 */ be_nested_str_weak(type), - /* K8 */ be_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(COMMA), - /* K11 */ be_nested_str_weak(next), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), - /* K14 */ be_nested_str_weak(expect_right_bracket), - /* K15 */ be_nested_str_weak(_X5B), - /* K16 */ be_const_int(0), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(_X2C_X20), - /* K19 */ be_nested_str_weak(stop_iteration), - /* K20 */ be_nested_str_weak(_X5D), - }), - be_str_weak(process_array_literal), - &be_const_str_solidified, - ( &(const binstruction[64]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x60040012, // 0002 GETGBL R1 G18 - 0x7C040000, // 0003 CALL R1 0 - 0x8C080101, // 0004 GETMET R2 R0 K1 - 0x7C080200, // 0005 CALL R2 1 - 0x740A0020, // 0006 JMPT R2 #0028 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A001D, // 0009 JMPT R2 #0028 - 0x8C080103, // 000A GETMET R2 R0 K3 - 0x58100004, // 000B LDCONST R4 K4 - 0x7C080400, // 000C CALL R2 2 - 0x8C0C0305, // 000D GETMET R3 R1 K5 - 0x5C140400, // 000E MOVE R5 R2 - 0x7C0C0400, // 000F CALL R3 2 - 0x8C0C0106, // 0010 GETMET R3 R0 K6 - 0x7C0C0200, // 0011 CALL R3 1 - 0x4C100000, // 0012 LDNIL R4 - 0x200C0604, // 0013 NE R3 R3 R4 - 0x780E000A, // 0014 JMPF R3 #0020 - 0x8C0C0106, // 0015 GETMET R3 R0 K6 - 0x7C0C0200, // 0016 CALL R3 1 - 0x880C0707, // 0017 GETMBR R3 R3 K7 - 0xB8121000, // 0018 GETNGBL R4 K8 - 0x88100909, // 0019 GETMBR R4 R4 K9 - 0x8810090A, // 001A GETMBR R4 R4 K10 - 0x1C0C0604, // 001B EQ R3 R3 R4 - 0x780E0002, // 001C JMPF R3 #0020 - 0x8C0C010B, // 001D GETMET R3 R0 K11 - 0x7C0C0200, // 001E CALL R3 1 - 0x70020006, // 001F JMP #0027 - 0x8C0C0102, // 0020 GETMET R3 R0 K2 - 0x7C0C0200, // 0021 CALL R3 1 - 0x740E0003, // 0022 JMPT R3 #0027 - 0x8C0C010C, // 0023 GETMET R3 R0 K12 - 0x5814000D, // 0024 LDCONST R5 K13 - 0x7C0C0400, // 0025 CALL R3 2 - 0x70020000, // 0026 JMP #0028 - 0x7001FFDB, // 0027 JMP #0004 - 0x8C08010E, // 0028 GETMET R2 R0 K14 - 0x7C080200, // 0029 CALL R2 1 - 0x5808000F, // 002A LDCONST R2 K15 - 0x600C0010, // 002B GETGBL R3 G16 - 0x6010000C, // 002C GETGBL R4 G12 - 0x5C140200, // 002D MOVE R5 R1 - 0x7C100200, // 002E CALL R4 1 - 0x04100911, // 002F SUB R4 R4 K17 - 0x40122004, // 0030 CONNECT R4 K16 R4 - 0x7C0C0200, // 0031 CALL R3 1 - 0xA8020007, // 0032 EXBLK 0 #003B - 0x5C100600, // 0033 MOVE R4 R3 - 0x7C100000, // 0034 CALL R4 0 - 0x24140910, // 0035 GT R5 R4 K16 - 0x78160000, // 0036 JMPF R5 #0038 - 0x00080512, // 0037 ADD R2 R2 K18 - 0x94140204, // 0038 GETIDX R5 R1 R4 - 0x00080405, // 0039 ADD R2 R2 R5 - 0x7001FFF7, // 003A JMP #0033 - 0x580C0013, // 003B LDCONST R3 K19 - 0xAC0C0200, // 003C CATCH R3 1 0 - 0xB0080000, // 003D RAISE 2 R0 R0 - 0x00080514, // 003E ADD R2 R2 K20 - 0x80040400, // 003F RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_template -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[30]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(template), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_left_brace), - /* K6 */ be_nested_str_weak(at_end), - /* K7 */ be_nested_str_weak(check_right_brace), - /* K8 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K9 */ be_nested_str_weak(current), - /* K10 */ be_nested_str_weak(type), - /* K11 */ be_nested_str_weak(animation_dsl), - /* K12 */ be_nested_str_weak(Token), - /* K13 */ be_nested_str_weak(KEYWORD), - /* K14 */ be_nested_str_weak(value), - /* K15 */ be_nested_str_weak(param), - /* K16 */ be_nested_str_weak(push), - /* K17 */ be_nested_str_weak(NEWLINE), - /* K18 */ be_const_int(0), - /* K19 */ be_nested_str_weak(EOF), - /* K20 */ be_nested_str_weak(LEFT_BRACE), - /* K21 */ be_const_int(1), - /* K22 */ be_nested_str_weak(RIGHT_BRACE), - /* K23 */ be_nested_str_weak(expect_right_brace), - /* K24 */ be_nested_str_weak(template_definitions), - /* K25 */ be_nested_str_weak(params), - /* K26 */ be_nested_str_weak(param_types), - /* K27 */ be_nested_str_weak(body_tokens), - /* K28 */ be_nested_str_weak(generate_template_function), - /* K29 */ be_nested_str_weak(symbol_table), - }), - be_str_weak(process_template), - &be_const_str_solidified, - ( &(const binstruction[168]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x60080012, // 000E GETGBL R2 G18 - 0x7C080000, // 000F CALL R2 0 - 0x600C0013, // 0010 GETGBL R3 G19 - 0x7C0C0000, // 0011 CALL R3 0 - 0x8C100106, // 0012 GETMET R4 R0 K6 - 0x7C100200, // 0013 CALL R4 1 - 0x7412004B, // 0014 JMPT R4 #0061 - 0x8C100107, // 0015 GETMET R4 R0 K7 - 0x7C100200, // 0016 CALL R4 1 - 0x74120048, // 0017 JMPT R4 #0061 - 0x8C100108, // 0018 GETMET R4 R0 K8 - 0x7C100200, // 0019 CALL R4 1 - 0x8C100107, // 001A GETMET R4 R0 K7 - 0x7C100200, // 001B CALL R4 1 - 0x78120000, // 001C JMPF R4 #001E - 0x70020042, // 001D JMP #0061 - 0x8C100109, // 001E GETMET R4 R0 K9 - 0x7C100200, // 001F CALL R4 1 - 0x4C140000, // 0020 LDNIL R5 - 0x20140805, // 0021 NE R5 R4 R5 - 0x7816003B, // 0022 JMPF R5 #005F - 0x8814090A, // 0023 GETMBR R5 R4 K10 - 0xB81A1600, // 0024 GETNGBL R6 K11 - 0x88180D0C, // 0025 GETMBR R6 R6 K12 - 0x88180D0D, // 0026 GETMBR R6 R6 K13 - 0x1C140A06, // 0027 EQ R5 R5 R6 - 0x78160035, // 0028 JMPF R5 #005F - 0x8814090E, // 0029 GETMBR R5 R4 K14 - 0x1C140B0F, // 002A EQ R5 R5 K15 - 0x78160032, // 002B JMPF R5 #005F - 0x8C140100, // 002C GETMET R5 R0 K0 - 0x7C140200, // 002D CALL R5 1 - 0x8C140101, // 002E GETMET R5 R0 K1 - 0x7C140200, // 002F CALL R5 1 - 0x4C180000, // 0030 LDNIL R6 - 0x8C1C0109, // 0031 GETMET R7 R0 K9 - 0x7C1C0200, // 0032 CALL R7 1 - 0x4C200000, // 0033 LDNIL R8 - 0x201C0E08, // 0034 NE R7 R7 R8 - 0x781E0011, // 0035 JMPF R7 #0048 - 0x8C1C0109, // 0036 GETMET R7 R0 K9 - 0x7C1C0200, // 0037 CALL R7 1 - 0x881C0F0A, // 0038 GETMBR R7 R7 K10 - 0xB8221600, // 0039 GETNGBL R8 K11 - 0x8820110C, // 003A GETMBR R8 R8 K12 - 0x8820110D, // 003B GETMBR R8 R8 K13 - 0x1C1C0E08, // 003C EQ R7 R7 R8 - 0x781E0009, // 003D JMPF R7 #0048 - 0x8C1C0109, // 003E GETMET R7 R0 K9 - 0x7C1C0200, // 003F CALL R7 1 - 0x881C0F0E, // 0040 GETMBR R7 R7 K14 - 0x1C1C0F0A, // 0041 EQ R7 R7 K10 - 0x781E0004, // 0042 JMPF R7 #0048 - 0x8C1C0100, // 0043 GETMET R7 R0 K0 - 0x7C1C0200, // 0044 CALL R7 1 - 0x8C1C0101, // 0045 GETMET R7 R0 K1 - 0x7C1C0200, // 0046 CALL R7 1 - 0x5C180E00, // 0047 MOVE R6 R7 - 0x8C1C0510, // 0048 GETMET R7 R2 K16 - 0x5C240A00, // 0049 MOVE R9 R5 - 0x7C1C0400, // 004A CALL R7 2 - 0x4C1C0000, // 004B LDNIL R7 - 0x201C0C07, // 004C NE R7 R6 R7 - 0x781E0000, // 004D JMPF R7 #004F - 0x980C0A06, // 004E SETIDX R3 R5 R6 - 0x8C1C0109, // 004F GETMET R7 R0 K9 - 0x7C1C0200, // 0050 CALL R7 1 - 0x4C200000, // 0051 LDNIL R8 - 0x201C0E08, // 0052 NE R7 R7 R8 - 0x781E0009, // 0053 JMPF R7 #005E - 0x8C1C0109, // 0054 GETMET R7 R0 K9 - 0x7C1C0200, // 0055 CALL R7 1 - 0x881C0F0A, // 0056 GETMBR R7 R7 K10 - 0xB8221600, // 0057 GETNGBL R8 K11 - 0x8820110C, // 0058 GETMBR R8 R8 K12 - 0x88201111, // 0059 GETMBR R8 R8 K17 - 0x1C1C0E08, // 005A EQ R7 R7 R8 - 0x781E0001, // 005B JMPF R7 #005E - 0x8C1C0100, // 005C GETMET R7 R0 K0 - 0x7C1C0200, // 005D CALL R7 1 - 0x70020000, // 005E JMP #0060 - 0x70020000, // 005F JMP #0061 - 0x7001FFB0, // 0060 JMP #0012 - 0x60100012, // 0061 GETGBL R4 G18 - 0x7C100000, // 0062 CALL R4 0 - 0x58140012, // 0063 LDCONST R5 K18 - 0x8C180106, // 0064 GETMET R6 R0 K6 - 0x7C180200, // 0065 CALL R6 1 - 0x741A002E, // 0066 JMPT R6 #0096 - 0x8C180107, // 0067 GETMET R6 R0 K7 - 0x7C180200, // 0068 CALL R6 1 - 0x741A002B, // 0069 JMPT R6 #0096 - 0x8C180109, // 006A GETMET R6 R0 K9 - 0x7C180200, // 006B CALL R6 1 - 0x4C1C0000, // 006C LDNIL R7 - 0x1C1C0C07, // 006D EQ R7 R6 R7 - 0x741E0005, // 006E JMPT R7 #0075 - 0x881C0D0A, // 006F GETMBR R7 R6 K10 - 0xB8221600, // 0070 GETNGBL R8 K11 - 0x8820110C, // 0071 GETMBR R8 R8 K12 - 0x88201113, // 0072 GETMBR R8 R8 K19 - 0x1C1C0E08, // 0073 EQ R7 R7 R8 - 0x781E0000, // 0074 JMPF R7 #0076 - 0x7002001F, // 0075 JMP #0096 - 0x881C0D0A, // 0076 GETMBR R7 R6 K10 - 0xB8221600, // 0077 GETNGBL R8 K11 - 0x8820110C, // 0078 GETMBR R8 R8 K12 - 0x88201114, // 0079 GETMBR R8 R8 K20 - 0x1C1C0E08, // 007A EQ R7 R7 R8 - 0x781E0004, // 007B JMPF R7 #0081 - 0x00140B15, // 007C ADD R5 R5 K21 - 0x8C1C0910, // 007D GETMET R7 R4 K16 - 0x5C240C00, // 007E MOVE R9 R6 - 0x7C1C0400, // 007F CALL R7 2 - 0x70020011, // 0080 JMP #0093 - 0x881C0D0A, // 0081 GETMBR R7 R6 K10 - 0xB8221600, // 0082 GETNGBL R8 K11 - 0x8820110C, // 0083 GETMBR R8 R8 K12 - 0x88201116, // 0084 GETMBR R8 R8 K22 - 0x1C1C0E08, // 0085 EQ R7 R7 R8 - 0x781E0008, // 0086 JMPF R7 #0090 - 0x1C1C0B12, // 0087 EQ R7 R5 K18 - 0x781E0001, // 0088 JMPF R7 #008B - 0x7002000B, // 0089 JMP #0096 - 0x70020003, // 008A JMP #008F - 0x04140B15, // 008B SUB R5 R5 K21 - 0x8C1C0910, // 008C GETMET R7 R4 K16 - 0x5C240C00, // 008D MOVE R9 R6 - 0x7C1C0400, // 008E CALL R7 2 - 0x70020002, // 008F JMP #0093 - 0x8C1C0910, // 0090 GETMET R7 R4 K16 - 0x5C240C00, // 0091 MOVE R9 R6 - 0x7C1C0400, // 0092 CALL R7 2 - 0x8C1C0100, // 0093 GETMET R7 R0 K0 - 0x7C1C0200, // 0094 CALL R7 1 - 0x7001FFCD, // 0095 JMP #0064 - 0x8C180117, // 0096 GETMET R6 R0 K23 - 0x7C180200, // 0097 CALL R6 1 - 0x88180118, // 0098 GETMBR R6 R0 K24 - 0x601C0013, // 0099 GETGBL R7 G19 - 0x7C1C0000, // 009A CALL R7 0 - 0x981E3202, // 009B SETIDX R7 K25 R2 - 0x981E3403, // 009C SETIDX R7 K26 R3 - 0x981E3604, // 009D SETIDX R7 K27 R4 - 0x98180207, // 009E SETIDX R6 R1 R7 - 0x8C18011C, // 009F GETMET R6 R0 K28 - 0x5C200200, // 00A0 MOVE R8 R1 - 0x5C240400, // 00A1 MOVE R9 R2 - 0x5C280600, // 00A2 MOVE R10 R3 - 0x5C2C0800, // 00A3 MOVE R11 R4 - 0x7C180A00, // 00A4 CALL R6 5 - 0x8818011D, // 00A5 GETMBR R6 R0 K29 - 0x98180303, // 00A6 SETIDX R6 R1 K3 - 0x80000000, // 00A7 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_factory_function -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_factory_function, /* name */ - be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(contains), - /* K2 */ be_nested_str_weak(animation), - /* K3 */ be_nested_str_weak(function), - /* K4 */ be_nested_str_weak(class), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(MockEngine), - }), - be_str_weak(_validate_factory_function), - &be_const_str_solidified, - ( &(const binstruction[59]) { /* code */ - 0xA8020032, // 0000 EXBLK 0 #0034 - 0xA40E0000, // 0001 IMPORT R3 K0 - 0x8C100701, // 0002 GETMET R4 R3 K1 - 0xB81A0400, // 0003 GETNGBL R6 K2 - 0x5C1C0200, // 0004 MOVE R7 R1 - 0x7C100600, // 0005 CALL R4 3 - 0x74120002, // 0006 JMPT R4 #000A - 0x50100000, // 0007 LDBOOL R4 0 0 - 0xA8040001, // 0008 EXBLK 1 1 - 0x80040800, // 0009 RET 1 R4 - 0xB8120400, // 000A GETNGBL R4 K2 - 0x88100801, // 000B GETMBR R4 R4 R1 - 0x60140004, // 000C GETGBL R5 G4 - 0x5C180800, // 000D MOVE R6 R4 - 0x7C140200, // 000E CALL R5 1 - 0x20180B03, // 000F NE R6 R5 K3 - 0x781A0004, // 0010 JMPF R6 #0016 - 0x20180B04, // 0011 NE R6 R5 K4 - 0x781A0002, // 0012 JMPF R6 #0016 - 0x50180000, // 0013 LDBOOL R6 0 0 - 0xA8040001, // 0014 EXBLK 1 1 - 0x80040C00, // 0015 RET 1 R6 - 0x4C180000, // 0016 LDNIL R6 - 0x1C180406, // 0017 EQ R6 R2 R6 - 0x781A0002, // 0018 JMPF R6 #001C - 0x50180200, // 0019 LDBOOL R6 1 0 - 0xA8040001, // 001A EXBLK 1 1 - 0x80040C00, // 001B RET 1 R6 - 0xB81A0A00, // 001C GETNGBL R6 K5 - 0x8C180D06, // 001D GETMET R6 R6 K6 - 0x7C180200, // 001E CALL R6 1 - 0xA802000A, // 001F EXBLK 0 #002B - 0x5C1C0800, // 0020 MOVE R7 R4 - 0x5C200C00, // 0021 MOVE R8 R6 - 0x7C1C0200, // 0022 CALL R7 1 - 0x6020000F, // 0023 GETGBL R8 G15 - 0x5C240E00, // 0024 MOVE R9 R7 - 0x5C280400, // 0025 MOVE R10 R2 - 0x7C200400, // 0026 CALL R8 2 - 0xA8040002, // 0027 EXBLK 1 2 - 0x80041000, // 0028 RET 1 R8 - 0xA8040001, // 0029 EXBLK 1 1 - 0x70020006, // 002A JMP #0032 - 0xAC1C0002, // 002B CATCH R7 0 2 - 0x70020003, // 002C JMP #0031 - 0x50240000, // 002D LDBOOL R9 0 0 - 0xA8040001, // 002E EXBLK 1 1 - 0x80041200, // 002F RET 1 R9 - 0x70020000, // 0030 JMP #0032 - 0xB0080000, // 0031 RAISE 2 R0 R0 - 0xA8040001, // 0032 EXBLK 1 1 - 0x70020005, // 0033 JMP #003A - 0xAC0C0002, // 0034 CATCH R3 0 2 - 0x70020002, // 0035 JMP #0039 - 0x50140000, // 0036 LDBOOL R5 0 0 - 0x80040A00, // 0037 RET 1 R5 - 0x70020000, // 0038 JMP #003A - 0xB0080000, // 0039 RAISE 2 R0 R0 - 0x80000000, // 003A RET 0 + 0x740A0005, // 000A JMPT R2 #0011 + 0x88080302, // 000B GETMBR R2 R1 K2 + 0xB80E0600, // 000C GETNGBL R3 K3 + 0x880C0704, // 000D GETMBR R3 R3 K4 + 0x880C0706, // 000E GETMBR R3 R3 K6 + 0x1C080403, // 000F EQ R2 R2 R3 + 0x780A0000, // 0010 JMPF R2 #0012 + 0x70020002, // 0011 JMP #0015 + 0x8C080107, // 0012 GETMET R2 R0 K7 + 0x7C080200, // 0013 CALL R2 1 + 0x7001FFEA, // 0014 JMP #0000 + 0x80000000, // 0015 RET 0 }) ) ); @@ -8685,7 +11293,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* na 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[28]) { /* constants */ + ( &(const bvalue[31]) { /* constants */ /* K0 */ be_nested_str_weak(current), /* K1 */ be_nested_str_weak(), /* K2 */ be_nested_str_weak(type), @@ -8701,23 +11309,26 @@ be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* na /* K12 */ be_nested_str_weak(is_math_method), /* K13 */ be_nested_str_weak(process_function_arguments_for_expression), /* K14 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), - /* K15 */ be_nested_str_weak(template_definitions), - /* K16 */ be_nested_str_weak(contains), - /* K17 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), - /* K18 */ be_nested_str_weak(self_X2Eengine), - /* K19 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K20 */ be_nested_str_weak(_is_simple_function_call), - /* K21 */ be_nested_str_weak(process_function_arguments), - /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K23 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - /* K24 */ be_nested_str_weak(_validate_animation_factory_exists), - /* K25 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), - /* K26 */ be_nested_str_weak(skip_function_arguments), - /* K27 */ be_nested_str_weak(_generate_anonymous_function_call), + /* K15 */ be_nested_str_weak(log), + /* K16 */ be_nested_str_weak(process_log_call), + /* K17 */ be_nested_str_weak(expression), + /* K18 */ be_nested_str_weak(template_definitions), + /* K19 */ be_nested_str_weak(contains), + /* K20 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), + /* K21 */ be_nested_str_weak(self_X2Eengine), + /* K22 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K23 */ be_nested_str_weak(_is_simple_function_call), + /* K24 */ be_nested_str_weak(process_function_arguments), + /* K25 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K26 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + /* K27 */ be_nested_str_weak(_validate_animation_factory_exists), + /* K28 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K29 */ be_nested_str_weak(skip_function_arguments), + /* K30 */ be_nested_str_weak(_generate_anonymous_function_call), }), be_str_weak(process_nested_function_call), &be_const_str_solidified, - ( &(const binstruction[99]) { /* code */ + ( &(const binstruction[109]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x58080001, // 0002 LDCONST R2 K1 @@ -8756,67 +11367,77 @@ be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* na 0x5C1C0600, // 0023 MOVE R7 R3 0x7C100600, // 0024 CALL R4 3 0x80040800, // 0025 RET 1 R4 - 0x880C010F, // 0026 GETMBR R3 R0 K15 - 0x8C0C0710, // 0027 GETMET R3 R3 K16 - 0x5C140400, // 0028 MOVE R5 R2 - 0x7C0C0400, // 0029 CALL R3 2 - 0x780E0010, // 002A JMPF R3 #003C - 0x8C0C010D, // 002B GETMET R3 R0 K13 - 0x7C0C0200, // 002C CALL R3 1 - 0x20100701, // 002D NE R4 R3 K1 - 0x78120004, // 002E JMPF R4 #0034 - 0x60100018, // 002F GETGBL R4 G24 - 0x58140011, // 0030 LDCONST R5 K17 - 0x5C180600, // 0031 MOVE R6 R3 - 0x7C100400, // 0032 CALL R4 2 - 0x70020000, // 0033 JMP #0035 - 0x58100012, // 0034 LDCONST R4 K18 - 0x60140018, // 0035 GETGBL R5 G24 - 0x58180013, // 0036 LDCONST R6 K19 - 0x5C1C0400, // 0037 MOVE R7 R2 - 0x5C200800, // 0038 MOVE R8 R4 - 0x7C140600, // 0039 CALL R5 3 - 0x80040A00, // 003A RET 1 R5 - 0x70020025, // 003B JMP #0062 - 0x8C0C0114, // 003C GETMET R3 R0 K20 - 0x5C140400, // 003D MOVE R5 R2 - 0x7C0C0400, // 003E CALL R3 2 - 0x780E0010, // 003F JMPF R3 #0051 - 0x8C0C0115, // 0040 GETMET R3 R0 K21 - 0x7C0C0200, // 0041 CALL R3 1 - 0x20100701, // 0042 NE R4 R3 K1 - 0x78120006, // 0043 JMPF R4 #004B - 0x60100018, // 0044 GETGBL R4 G24 - 0x58140016, // 0045 LDCONST R5 K22 - 0x5C180400, // 0046 MOVE R6 R2 - 0x5C1C0600, // 0047 MOVE R7 R3 - 0x7C100600, // 0048 CALL R4 3 - 0x80040800, // 0049 RET 1 R4 - 0x70020004, // 004A JMP #0050 - 0x60100018, // 004B GETGBL R4 G24 - 0x58140017, // 004C LDCONST R5 K23 - 0x5C180400, // 004D MOVE R6 R2 - 0x7C100400, // 004E CALL R4 2 - 0x80040800, // 004F RET 1 R4 - 0x70020010, // 0050 JMP #0062 - 0x8C0C0118, // 0051 GETMET R3 R0 K24 - 0x5C140400, // 0052 MOVE R5 R2 - 0x7C0C0400, // 0053 CALL R3 2 - 0x740E0008, // 0054 JMPT R3 #005E - 0x8C0C0109, // 0055 GETMET R3 R0 K9 - 0x60140018, // 0056 GETGBL R5 G24 - 0x58180019, // 0057 LDCONST R6 K25 - 0x5C1C0400, // 0058 MOVE R7 R2 - 0x7C140400, // 0059 CALL R5 2 - 0x7C0C0400, // 005A CALL R3 2 - 0x8C0C011A, // 005B GETMET R3 R0 K26 - 0x7C0C0200, // 005C CALL R3 1 - 0x80061600, // 005D RET 1 K11 - 0x8C0C011B, // 005E GETMET R3 R0 K27 - 0x5C140400, // 005F MOVE R5 R2 - 0x7C0C0400, // 0060 CALL R3 2 - 0x80040600, // 0061 RET 1 R3 - 0x80000000, // 0062 RET 0 + 0x1C0C050F, // 0026 EQ R3 R2 K15 + 0x780E0007, // 0027 JMPF R3 #0030 + 0x8C0C010D, // 0028 GETMET R3 R0 K13 + 0x7C0C0200, // 0029 CALL R3 1 + 0x8C100110, // 002A GETMET R4 R0 K16 + 0x5C180600, // 002B MOVE R6 R3 + 0x581C0011, // 002C LDCONST R7 K17 + 0x58200001, // 002D LDCONST R8 K1 + 0x7C100800, // 002E CALL R4 4 + 0x80040800, // 002F RET 1 R4 + 0x880C0112, // 0030 GETMBR R3 R0 K18 + 0x8C0C0713, // 0031 GETMET R3 R3 K19 + 0x5C140400, // 0032 MOVE R5 R2 + 0x7C0C0400, // 0033 CALL R3 2 + 0x780E0010, // 0034 JMPF R3 #0046 + 0x8C0C010D, // 0035 GETMET R3 R0 K13 + 0x7C0C0200, // 0036 CALL R3 1 + 0x20100701, // 0037 NE R4 R3 K1 + 0x78120004, // 0038 JMPF R4 #003E + 0x60100018, // 0039 GETGBL R4 G24 + 0x58140014, // 003A LDCONST R5 K20 + 0x5C180600, // 003B MOVE R6 R3 + 0x7C100400, // 003C CALL R4 2 + 0x70020000, // 003D JMP #003F + 0x58100015, // 003E LDCONST R4 K21 + 0x60140018, // 003F GETGBL R5 G24 + 0x58180016, // 0040 LDCONST R6 K22 + 0x5C1C0400, // 0041 MOVE R7 R2 + 0x5C200800, // 0042 MOVE R8 R4 + 0x7C140600, // 0043 CALL R5 3 + 0x80040A00, // 0044 RET 1 R5 + 0x70020025, // 0045 JMP #006C + 0x8C0C0117, // 0046 GETMET R3 R0 K23 + 0x5C140400, // 0047 MOVE R5 R2 + 0x7C0C0400, // 0048 CALL R3 2 + 0x780E0010, // 0049 JMPF R3 #005B + 0x8C0C0118, // 004A GETMET R3 R0 K24 + 0x7C0C0200, // 004B CALL R3 1 + 0x20100701, // 004C NE R4 R3 K1 + 0x78120006, // 004D JMPF R4 #0055 + 0x60100018, // 004E GETGBL R4 G24 + 0x58140019, // 004F LDCONST R5 K25 + 0x5C180400, // 0050 MOVE R6 R2 + 0x5C1C0600, // 0051 MOVE R7 R3 + 0x7C100600, // 0052 CALL R4 3 + 0x80040800, // 0053 RET 1 R4 + 0x70020004, // 0054 JMP #005A + 0x60100018, // 0055 GETGBL R4 G24 + 0x5814001A, // 0056 LDCONST R5 K26 + 0x5C180400, // 0057 MOVE R6 R2 + 0x7C100400, // 0058 CALL R4 2 + 0x80040800, // 0059 RET 1 R4 + 0x70020010, // 005A JMP #006C + 0x8C0C011B, // 005B GETMET R3 R0 K27 + 0x5C140400, // 005C MOVE R5 R2 + 0x7C0C0400, // 005D CALL R3 2 + 0x740E0008, // 005E JMPT R3 #0068 + 0x8C0C0109, // 005F GETMET R3 R0 K9 + 0x60140018, // 0060 GETGBL R5 G24 + 0x5818001C, // 0061 LDCONST R6 K28 + 0x5C1C0400, // 0062 MOVE R7 R2 + 0x7C140400, // 0063 CALL R5 2 + 0x7C0C0400, // 0064 CALL R3 2 + 0x8C0C011D, // 0065 GETMET R3 R0 K29 + 0x7C0C0200, // 0066 CALL R3 1 + 0x80061600, // 0067 RET 1 K11 + 0x8C0C011E, // 0068 GETMET R3 R0 K30 + 0x5C140400, // 0069 MOVE R5 R2 + 0x7C0C0400, // 006A CALL R3 2 + 0x80040600, // 006B RET 1 R3 + 0x80000000, // 006C RET 0 }) ) ); @@ -8824,11 +11445,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* na /******************************************************************** -** Solidified function: expect_assign +** Solidified function: transpile ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ +be_local_closure(class_SimpleDSLTranspiler_transpile, /* name */ be_nested_proto( - 5, /* nstack */ + 8, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -8836,208 +11457,63 @@ be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(ASSIGN), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(add), + /* K1 */ be_nested_str_weak(import_X20animation), + /* K2 */ be_nested_str_weak(), + /* K3 */ be_nested_str_weak(at_end), + /* K4 */ be_nested_str_weak(process_statement), + /* K5 */ be_nested_str_weak(generate_engine_start), + /* K6 */ be_nested_str_weak(errors), + /* K7 */ be_const_int(0), + /* K8 */ be_nested_str_weak(join_output), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Transpilation_X20failed_X3A_X20_X25s), }), - be_str_weak(expect_assign), + be_str_weak(transpile), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: validate_user_name -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ - be_nested_proto( - 13, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(color_names), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K5 */ be_nested_str_weak(stop_iteration), - /* K6 */ be_nested_str_weak(statement_keywords), - /* K7 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - }), - be_str_weak(validate_user_name), - &be_const_str_solidified, - ( &(const binstruction[53]) { /* code */ - 0x600C0010, // 0000 GETGBL R3 G16 - 0xB8120000, // 0001 GETNGBL R4 K0 - 0x88100901, // 0002 GETMBR R4 R4 K1 - 0x88100902, // 0003 GETMBR R4 R4 K2 - 0x7C0C0200, // 0004 CALL R3 1 - 0xA802000F, // 0005 EXBLK 0 #0016 - 0x5C100600, // 0006 MOVE R4 R3 - 0x7C100000, // 0007 CALL R4 0 - 0x1C140204, // 0008 EQ R5 R1 R4 - 0x7816000A, // 0009 JMPF R5 #0015 - 0x8C140103, // 000A GETMET R5 R0 K3 - 0x601C0018, // 000B GETGBL R7 G24 - 0x58200004, // 000C LDCONST R8 K4 - 0x5C240200, // 000D MOVE R9 R1 - 0x5C280200, // 000E MOVE R10 R1 - 0x5C2C0200, // 000F MOVE R11 R1 - 0x7C1C0800, // 0010 CALL R7 4 - 0x7C140400, // 0011 CALL R5 2 - 0x50140000, // 0012 LDBOOL R5 0 0 - 0xA8040001, // 0013 EXBLK 1 1 - 0x80040A00, // 0014 RET 1 R5 - 0x7001FFEF, // 0015 JMP #0006 - 0x580C0005, // 0016 LDCONST R3 K5 - 0xAC0C0200, // 0017 CATCH R3 1 0 - 0xB0080000, // 0018 RAISE 2 R0 R0 - 0x600C0010, // 0019 GETGBL R3 G16 - 0xB8120000, // 001A GETNGBL R4 K0 - 0x88100901, // 001B GETMBR R4 R4 K1 - 0x88100906, // 001C GETMBR R4 R4 K6 - 0x7C0C0200, // 001D CALL R3 1 - 0xA8020010, // 001E EXBLK 0 #0030 - 0x5C100600, // 001F MOVE R4 R3 - 0x7C100000, // 0020 CALL R4 0 - 0x1C140204, // 0021 EQ R5 R1 R4 - 0x7816000B, // 0022 JMPF R5 #002F - 0x8C140103, // 0023 GETMET R5 R0 K3 - 0x601C0018, // 0024 GETGBL R7 G24 - 0x58200007, // 0025 LDCONST R8 K7 - 0x5C240200, // 0026 MOVE R9 R1 - 0x5C280400, // 0027 MOVE R10 R2 - 0x5C2C0200, // 0028 MOVE R11 R1 - 0x5C300200, // 0029 MOVE R12 R1 - 0x7C1C0A00, // 002A CALL R7 5 - 0x7C140400, // 002B CALL R5 2 - 0x50140000, // 002C LDBOOL R5 0 0 - 0xA8040001, // 002D EXBLK 1 1 - 0x80040A00, // 002E RET 1 R5 - 0x7001FFEE, // 002F JMP #001F - 0x580C0005, // 0030 LDCONST R3 K5 - 0xAC0C0200, // 0031 CATCH R3 1 0 - 0xB0080000, // 0032 RAISE 2 R0 R0 - 0x500C0200, // 0033 LDBOOL R3 1 0 - 0x80040600, // 0034 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: current -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_current, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - }), - be_str_weak(current), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x14040202, // 0004 LT R1 R1 R2 - 0x78060003, // 0005 JMPF R1 #000A - 0x88040101, // 0006 GETMBR R1 R0 K1 - 0x88080100, // 0007 GETMBR R2 R0 K0 - 0x94040202, // 0008 GETIDX R1 R1 R2 - 0x70020000, // 0009 JMP #000B - 0x4C040000, // 000A LDNIL R1 - 0x80040200, // 000B RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _is_simple_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__is_simple_function_call, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(strip_length), - /* K1 */ be_nested_str_weak(static_value), - /* K2 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(_is_simple_function_call), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x400C0500, // 0002 CONNECT R3 R2 K0 - 0x400C0501, // 0003 CONNECT R3 R2 K1 - 0x600C0010, // 0004 GETGBL R3 G16 - 0x5C100400, // 0005 MOVE R4 R2 - 0x7C0C0200, // 0006 CALL R3 1 - 0xA8020007, // 0007 EXBLK 0 #0010 - 0x5C100600, // 0008 MOVE R4 R3 - 0x7C100000, // 0009 CALL R4 0 - 0x1C140204, // 000A EQ R5 R1 R4 - 0x78160002, // 000B JMPF R5 #000F - 0x50140200, // 000C LDBOOL R5 1 0 - 0xA8040001, // 000D EXBLK 1 1 - 0x80040A00, // 000E RET 1 R5 - 0x7001FFF7, // 000F JMP #0008 - 0x580C0002, // 0010 LDCONST R3 K2 - 0xAC0C0200, // 0011 CATCH R3 1 0 - 0xB0080000, // 0012 RAISE 2 R0 R0 - 0x500C0000, // 0013 LDBOOL R3 0 0 - 0x80040600, // 0014 RET 1 R3 + ( &(const binstruction[41]) { /* code */ + 0xA802001A, // 0000 EXBLK 0 #001C + 0x8C040100, // 0001 GETMET R1 R0 K0 + 0x580C0001, // 0002 LDCONST R3 K1 + 0x7C040400, // 0003 CALL R1 2 + 0x8C040100, // 0004 GETMET R1 R0 K0 + 0x580C0002, // 0005 LDCONST R3 K2 + 0x7C040400, // 0006 CALL R1 2 + 0x8C040103, // 0007 GETMET R1 R0 K3 + 0x7C040200, // 0008 CALL R1 1 + 0x74060002, // 0009 JMPT R1 #000D + 0x8C040104, // 000A GETMET R1 R0 K4 + 0x7C040200, // 000B CALL R1 1 + 0x7001FFF9, // 000C JMP #0007 + 0x8C040105, // 000D GETMET R1 R0 K5 + 0x7C040200, // 000E CALL R1 1 + 0x6004000C, // 000F GETGBL R1 G12 + 0x88080106, // 0010 GETMBR R2 R0 K6 + 0x7C040200, // 0011 CALL R1 1 + 0x1C040307, // 0012 EQ R1 R1 K7 + 0x78060002, // 0013 JMPF R1 #0017 + 0x8C040108, // 0014 GETMET R1 R0 K8 + 0x7C040200, // 0015 CALL R1 1 + 0x70020000, // 0016 JMP #0018 + 0x4C040000, // 0017 LDNIL R1 + 0xA8040001, // 0018 EXBLK 1 1 + 0x80040200, // 0019 RET 1 R1 + 0xA8040001, // 001A EXBLK 1 1 + 0x7002000B, // 001B JMP #0028 + 0xAC040002, // 001C CATCH R1 0 2 + 0x70020008, // 001D JMP #0027 + 0x8C0C0109, // 001E GETMET R3 R0 K9 + 0x60140018, // 001F GETGBL R5 G24 + 0x5818000A, // 0020 LDCONST R6 K10 + 0x5C1C0400, // 0021 MOVE R7 R2 + 0x7C140400, // 0022 CALL R5 2 + 0x7C0C0400, // 0023 CALL R3 2 + 0x4C0C0000, // 0024 LDNIL R3 + 0x80040600, // 0025 RET 1 R3 + 0x70020000, // 0026 JMP #0028 + 0xB0080000, // 0027 RAISE 2 R0 R0 + 0x80000000, // 0028 RET 0 }) ) ); @@ -9089,202 +11565,11 @@ be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization /******************************************************************** -** Solidified function: process_function_call +** Solidified function: process_function_arguments ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* name */ - be_nested_proto( - 10, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[22]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(IDENTIFIER), - /* K6 */ be_nested_str_weak(KEYWORD), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Expected_X20function_X20name), - /* K11 */ be_nested_str_weak(nil), - /* K12 */ be_nested_str_weak(is_math_method), - /* K13 */ be_nested_str_weak(process_function_arguments), - /* K14 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K15 */ be_nested_str_weak(template_definitions), - /* K16 */ be_nested_str_weak(contains), - /* K17 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K18 */ be_nested_str_weak(engine), - /* K19 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K20 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_function_call), - &be_const_str_solidified, - ( &(const binstruction[75]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x580C0001, // 0002 LDCONST R3 K1 - 0x4C100000, // 0003 LDNIL R4 - 0x20100404, // 0004 NE R4 R2 R4 - 0x7812000F, // 0005 JMPF R4 #0016 - 0x88100502, // 0006 GETMBR R4 R2 K2 - 0xB8160600, // 0007 GETNGBL R5 K3 - 0x88140B04, // 0008 GETMBR R5 R5 K4 - 0x88140B05, // 0009 GETMBR R5 R5 K5 - 0x1C100805, // 000A EQ R4 R4 R5 - 0x74120005, // 000B JMPT R4 #0012 - 0x88100502, // 000C GETMBR R4 R2 K2 - 0xB8160600, // 000D GETNGBL R5 K3 - 0x88140B04, // 000E GETMBR R5 R5 K4 - 0x88140B06, // 000F GETMBR R5 R5 K6 - 0x1C100805, // 0010 EQ R4 R4 R5 - 0x78120003, // 0011 JMPF R4 #0016 - 0x880C0507, // 0012 GETMBR R3 R2 K7 - 0x8C100108, // 0013 GETMET R4 R0 K8 - 0x7C100200, // 0014 CALL R4 1 - 0x70020003, // 0015 JMP #001A - 0x8C100109, // 0016 GETMET R4 R0 K9 - 0x5818000A, // 0017 LDCONST R6 K10 - 0x7C100400, // 0018 CALL R4 2 - 0x80061600, // 0019 RET 1 K11 - 0x8C10010C, // 001A GETMET R4 R0 K12 - 0x5C180600, // 001B MOVE R6 R3 - 0x7C100400, // 001C CALL R4 2 - 0x78120007, // 001D JMPF R4 #0026 - 0x8C10010D, // 001E GETMET R4 R0 K13 - 0x7C100200, // 001F CALL R4 1 - 0x60140018, // 0020 GETGBL R5 G24 - 0x5818000E, // 0021 LDCONST R6 K14 - 0x5C1C0600, // 0022 MOVE R7 R3 - 0x5C200800, // 0023 MOVE R8 R4 - 0x7C140600, // 0024 CALL R5 3 - 0x80040A00, // 0025 RET 1 R5 - 0x8C10010D, // 0026 GETMET R4 R0 K13 - 0x7C100200, // 0027 CALL R4 1 - 0x8814010F, // 0028 GETMBR R5 R0 K15 - 0x8C140B10, // 0029 GETMET R5 R5 K16 - 0x5C1C0600, // 002A MOVE R7 R3 - 0x7C140400, // 002B CALL R5 2 - 0x7816000E, // 002C JMPF R5 #003C - 0x20140901, // 002D NE R5 R4 K1 - 0x78160004, // 002E JMPF R5 #0034 - 0x60140018, // 002F GETGBL R5 G24 - 0x58180011, // 0030 LDCONST R6 K17 - 0x5C1C0800, // 0031 MOVE R7 R4 - 0x7C140400, // 0032 CALL R5 2 - 0x70020000, // 0033 JMP #0035 - 0x58140012, // 0034 LDCONST R5 K18 - 0x60180018, // 0035 GETGBL R6 G24 - 0x581C0013, // 0036 LDCONST R7 K19 - 0x5C200600, // 0037 MOVE R8 R3 - 0x5C240A00, // 0038 MOVE R9 R5 - 0x7C180600, // 0039 CALL R6 3 - 0x80040C00, // 003A RET 1 R6 - 0x7002000D, // 003B JMP #004A - 0x20140901, // 003C NE R5 R4 K1 - 0x78160006, // 003D JMPF R5 #0045 - 0x60140018, // 003E GETGBL R5 G24 - 0x58180014, // 003F LDCONST R6 K20 - 0x5C1C0600, // 0040 MOVE R7 R3 - 0x5C200800, // 0041 MOVE R8 R4 - 0x7C140600, // 0042 CALL R5 3 - 0x80040A00, // 0043 RET 1 R5 - 0x70020004, // 0044 JMP #004A - 0x60140018, // 0045 GETGBL R5 G24 - 0x58180015, // 0046 LDCONST R6 K21 - 0x5C1C0600, // 0047 MOVE R7 R3 - 0x7C140400, // 0048 CALL R5 2 - 0x80040A00, // 0049 RET 1 R5 - 0x80000000, // 004A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: can_use_as_identifier -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_can_use_as_identifier, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ be_nested_proto( 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(color), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(palette), - /* K3 */ be_nested_str_weak(startup), - /* K4 */ be_nested_str_weak(shutdown), - /* K5 */ be_nested_str_weak(button_press), - /* K6 */ be_nested_str_weak(button_hold), - /* K7 */ be_nested_str_weak(motion_detected), - /* K8 */ be_nested_str_weak(brightness_change), - /* K9 */ be_nested_str_weak(timer), - /* K10 */ be_nested_str_weak(time), - /* K11 */ be_nested_str_weak(sound_peak), - /* K12 */ be_nested_str_weak(network_message), - /* K13 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(can_use_as_identifier), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x400C0500, // 0002 CONNECT R3 R2 K0 - 0x400C0501, // 0003 CONNECT R3 R2 K1 - 0x400C0502, // 0004 CONNECT R3 R2 K2 - 0x400C0503, // 0005 CONNECT R3 R2 K3 - 0x400C0504, // 0006 CONNECT R3 R2 K4 - 0x400C0505, // 0007 CONNECT R3 R2 K5 - 0x400C0506, // 0008 CONNECT R3 R2 K6 - 0x400C0507, // 0009 CONNECT R3 R2 K7 - 0x400C0508, // 000A CONNECT R3 R2 K8 - 0x400C0509, // 000B CONNECT R3 R2 K9 - 0x400C050A, // 000C CONNECT R3 R2 K10 - 0x400C050B, // 000D CONNECT R3 R2 K11 - 0x400C050C, // 000E CONNECT R3 R2 K12 - 0x600C0010, // 000F GETGBL R3 G16 - 0x5C100400, // 0010 MOVE R4 R2 - 0x7C0C0200, // 0011 CALL R3 1 - 0xA8020007, // 0012 EXBLK 0 #001B - 0x5C100600, // 0013 MOVE R4 R3 - 0x7C100000, // 0014 CALL R4 0 - 0x1C140204, // 0015 EQ R5 R1 R4 - 0x78160002, // 0016 JMPF R5 #001A - 0x50140200, // 0017 LDBOOL R5 1 0 - 0xA8040001, // 0018 EXBLK 1 1 - 0x80040A00, // 0019 RET 1 R5 - 0x7001FFF7, // 001A JMP #0013 - 0x580C000D, // 001B LDCONST R3 K13 - 0xAC0C0200, // 001C CATCH R3 1 0 - 0xB0080000, // 001D RAISE 2 R0 R0 - 0x500C0000, // 001E LDBOOL R3 0 0 - 0x80040600, // 001F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_comma -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ - be_nested_proto( - 5, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -9292,37 +11577,105 @@ be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(COMMA), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), + ( &(const bvalue[21]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_paren), + /* K3 */ be_nested_str_weak(skip_whitespace), + /* K4 */ be_nested_str_weak(process_value), + /* K5 */ be_nested_str_weak(argument), + /* K6 */ be_nested_str_weak(push), + /* K7 */ be_nested_str_weak(current), + /* K8 */ be_nested_str_weak(type), + /* K9 */ be_nested_str_weak(animation_dsl), + /* K10 */ be_nested_str_weak(Token), + /* K11 */ be_nested_str_weak(COMMA), + /* K12 */ be_nested_str_weak(next), + /* K13 */ be_nested_str_weak(error), + /* K14 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K15 */ be_nested_str_weak(expect_right_paren), + /* K16 */ be_nested_str_weak(), + /* K17 */ be_const_int(0), + /* K18 */ be_const_int(1), + /* K19 */ be_nested_str_weak(_X2C_X20), + /* K20 */ be_nested_str_weak(stop_iteration), }), - be_str_weak(expect_comma), + be_str_weak(process_function_arguments), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ + ( &(const binstruction[73]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 + 0x60040012, // 0002 GETGBL R1 G18 + 0x7C040000, // 0003 CALL R1 0 + 0x8C080101, // 0004 GETMET R2 R0 K1 + 0x7C080200, // 0005 CALL R2 1 + 0x740A002A, // 0006 JMPT R2 #0032 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A0027, // 0009 JMPT R2 #0032 + 0x8C080103, // 000A GETMET R2 R0 K3 + 0x7C080200, // 000B CALL R2 1 + 0x8C080102, // 000C GETMET R2 R0 K2 + 0x7C080200, // 000D CALL R2 1 + 0x780A0000, // 000E JMPF R2 #0010 + 0x70020021, // 000F JMP #0032 + 0x8C080104, // 0010 GETMET R2 R0 K4 + 0x58100005, // 0011 LDCONST R4 K5 + 0x7C080400, // 0012 CALL R2 2 + 0x8C0C0306, // 0013 GETMET R3 R1 K6 + 0x5C140400, // 0014 MOVE R5 R2 + 0x7C0C0400, // 0015 CALL R3 2 + 0x8C0C0103, // 0016 GETMET R3 R0 K3 + 0x7C0C0200, // 0017 CALL R3 1 + 0x8C0C0107, // 0018 GETMET R3 R0 K7 + 0x7C0C0200, // 0019 CALL R3 1 + 0x4C100000, // 001A LDNIL R4 + 0x200C0604, // 001B NE R3 R3 R4 + 0x780E000C, // 001C JMPF R3 #002A + 0x8C0C0107, // 001D GETMET R3 R0 K7 + 0x7C0C0200, // 001E CALL R3 1 + 0x880C0708, // 001F GETMBR R3 R3 K8 + 0xB8121200, // 0020 GETNGBL R4 K9 + 0x8810090A, // 0021 GETMBR R4 R4 K10 + 0x8810090B, // 0022 GETMBR R4 R4 K11 + 0x1C0C0604, // 0023 EQ R3 R3 R4 + 0x780E0004, // 0024 JMPF R3 #002A + 0x8C0C010C, // 0025 GETMET R3 R0 K12 + 0x7C0C0200, // 0026 CALL R3 1 + 0x8C0C0103, // 0027 GETMET R3 R0 K3 + 0x7C0C0200, // 0028 CALL R3 1 + 0x70020006, // 0029 JMP #0031 + 0x8C0C0102, // 002A GETMET R3 R0 K2 + 0x7C0C0200, // 002B CALL R3 1 + 0x740E0003, // 002C JMPT R3 #0031 + 0x8C0C010D, // 002D GETMET R3 R0 K13 + 0x5814000E, // 002E LDCONST R5 K14 + 0x7C0C0400, // 002F CALL R3 2 + 0x70020000, // 0030 JMP #0032 + 0x7001FFD1, // 0031 JMP #0004 + 0x8C08010F, // 0032 GETMET R2 R0 K15 + 0x7C080200, // 0033 CALL R2 1 + 0x58080010, // 0034 LDCONST R2 K16 + 0x600C0010, // 0035 GETGBL R3 G16 + 0x6010000C, // 0036 GETGBL R4 G12 + 0x5C140200, // 0037 MOVE R5 R1 + 0x7C100200, // 0038 CALL R4 1 + 0x04100912, // 0039 SUB R4 R4 K18 + 0x40122204, // 003A CONNECT R4 K17 R4 + 0x7C0C0200, // 003B CALL R3 1 + 0xA8020007, // 003C EXBLK 0 #0045 + 0x5C100600, // 003D MOVE R4 R3 + 0x7C100000, // 003E CALL R4 0 + 0x24140911, // 003F GT R5 R4 K17 + 0x78160000, // 0040 JMPF R5 #0042 + 0x00080513, // 0041 ADD R2 R2 K19 + 0x94140204, // 0042 GETIDX R5 R1 R4 + 0x00080405, // 0043 ADD R2 R2 R5 + 0x7001FFF7, // 0044 JMP #003D + 0x580C0014, // 0045 LDCONST R3 K20 + 0xAC0C0200, // 0046 CATCH R3 1 0 + 0xB0080000, // 0047 RAISE 2 R0 R0 + 0x80040400, // 0048 RET 1 R2 }) ) ); @@ -9330,11 +11683,101 @@ be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ /******************************************************************** -** Solidified function: convert_to_vrgb +** Solidified function: process_palette_color ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_to_vrgb, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* name */ be_nested_proto( - 12, /* nstack */ + 8, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette), + /* K3 */ be_nested_str_weak(0xFFFFFFFF), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(COLOR), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(convert_color), + /* K10 */ be_nested_str_weak(value), + /* K11 */ be_nested_str_weak(IDENTIFIER), + /* K12 */ be_nested_str_weak(is_color_name), + /* K13 */ be_nested_str_weak(get_named_color_value), + /* K14 */ be_nested_str_weak(Unknown_X20color_X20_X27_X25s_X27_X2E_X20Palettes_X20only_X20accept_X20hex_X20colors_X20_X280xRRGGBB_X29_X20or_X20predefined_X20color_X20names_X20_X28like_X20_X27red_X27_X2C_X20_X27blue_X27_X2C_X20_X27green_X27_X29_X2C_X20but_X20not_X20custom_X20colors_X20defined_X20previously_X2E_X20For_X20dynamic_X20palettes_X20with_X20custom_X20colors_X2C_X20use_X20user_X20functions_X20instead_X2E), + /* K15 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette_X2E_X20Use_X20hex_X20colors_X20_X280xRRGGBB_X29_X20or_X20predefined_X20color_X20names_X20_X28like_X20_X27red_X27_X2C_X20_X27blue_X27_X2C_X20_X27green_X27_X29_X2E), + }), + be_str_weak(process_palette_color), + &be_const_str_solidified, + ( &(const binstruction[50]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080101, // 0005 GETMET R2 R0 K1 + 0x58100002, // 0006 LDCONST R4 K2 + 0x7C080400, // 0007 CALL R2 2 + 0x80060600, // 0008 RET 1 K3 + 0x88080304, // 0009 GETMBR R2 R1 K4 + 0xB80E0A00, // 000A GETNGBL R3 K5 + 0x880C0706, // 000B GETMBR R3 R3 K6 + 0x880C0707, // 000C GETMBR R3 R3 K7 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A0005, // 000E JMPF R2 #0015 + 0x8C080108, // 000F GETMET R2 R0 K8 + 0x7C080200, // 0010 CALL R2 1 + 0x8C080109, // 0011 GETMET R2 R0 K9 + 0x8810030A, // 0012 GETMBR R4 R1 K10 + 0x7C080400, // 0013 CALL R2 2 + 0x80040400, // 0014 RET 1 R2 + 0x88080304, // 0015 GETMBR R2 R1 K4 + 0xB80E0A00, // 0016 GETNGBL R3 K5 + 0x880C0706, // 0017 GETMBR R3 R3 K6 + 0x880C070B, // 0018 GETMBR R3 R3 K11 + 0x1C080403, // 0019 EQ R2 R2 R3 + 0x780A0012, // 001A JMPF R2 #002E + 0x8808030A, // 001B GETMBR R2 R1 K10 + 0x8C0C0108, // 001C GETMET R3 R0 K8 + 0x7C0C0200, // 001D CALL R3 1 + 0xB80E0A00, // 001E GETNGBL R3 K5 + 0x8C0C070C, // 001F GETMET R3 R3 K12 + 0x5C140400, // 0020 MOVE R5 R2 + 0x7C0C0400, // 0021 CALL R3 2 + 0x780E0003, // 0022 JMPF R3 #0027 + 0x8C0C010D, // 0023 GETMET R3 R0 K13 + 0x5C140400, // 0024 MOVE R5 R2 + 0x7C0C0400, // 0025 CALL R3 2 + 0x80040600, // 0026 RET 1 R3 + 0x8C0C0101, // 0027 GETMET R3 R0 K1 + 0x60140018, // 0028 GETGBL R5 G24 + 0x5818000E, // 0029 LDCONST R6 K14 + 0x5C1C0400, // 002A MOVE R7 R2 + 0x7C140400, // 002B CALL R5 2 + 0x7C0C0400, // 002C CALL R3 2 + 0x80060600, // 002D RET 1 K3 + 0x8C080101, // 002E GETMET R2 R0 K1 + 0x5810000F, // 002F LDCONST R4 K15 + 0x7C080400, // 0030 CALL R2 2 + 0x80060600, // 0031 RET 1 K3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_for_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* name */ + be_nested_proto( + 15, /* nstack */ 3, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -9342,73 +11785,144 @@ be_local_closure(class_SimpleDSLTranspiler_convert_to_vrgb, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(format), - /* K3 */ be_nested_str_weak(_X2502X), - /* K4 */ be_nested_str_weak(FFFFFF), - /* K5 */ be_nested_str_weak(startswith), - /* K6 */ be_nested_str_weak(0x), - /* K7 */ be_const_int(2), + ( &(const bvalue[24]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_create_instance_for_validation), + /* K2 */ be_nested_str_weak(at_end), + /* K3 */ be_nested_str_weak(check_right_paren), + /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K5 */ be_nested_str_weak(expect_identifier), + /* K6 */ be_nested_str_weak(_validate_single_parameter), + /* K7 */ be_nested_str_weak(expect_assign), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(argument), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(add), + /* K12 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K13 */ be_nested_str_weak(current), + /* K14 */ be_nested_str_weak(type), + /* K15 */ be_nested_str_weak(animation_dsl), + /* K16 */ be_nested_str_weak(Token), + /* K17 */ be_nested_str_weak(COMMENT), + /* K18 */ be_nested_str_weak(next), + /* K19 */ be_nested_str_weak(COMMA), + /* K20 */ be_nested_str_weak(NEWLINE), + /* K21 */ be_nested_str_weak(error), + /* K22 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K23 */ be_nested_str_weak(expect_right_paren), }), - be_str_weak(convert_to_vrgb), + be_str_weak(_process_named_arguments_for_animation), &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0x60100009, // 0001 GETGBL R4 G9 - 0x6014000A, // 0002 GETGBL R5 G10 - 0x5C180200, // 0003 MOVE R6 R1 - 0x7C140200, // 0004 CALL R5 1 - 0x7C100200, // 0005 CALL R4 1 - 0x14140901, // 0006 LT R5 R4 K1 - 0x78160001, // 0007 JMPF R5 #000A - 0x58100001, // 0008 LDCONST R4 K1 - 0x70020003, // 0009 JMP #000E - 0x541600FE, // 000A LDINT R5 255 - 0x24140805, // 000B GT R5 R4 R5 - 0x78160000, // 000C JMPF R5 #000E - 0x541200FE, // 000D LDINT R4 255 - 0x8C140702, // 000E GETMET R5 R3 K2 - 0x581C0003, // 000F LDCONST R7 K3 - 0x5C200800, // 0010 MOVE R8 R4 - 0x7C140600, // 0011 CALL R5 3 - 0x60180008, // 0012 GETGBL R6 G8 - 0x5C1C0400, // 0013 MOVE R7 R2 - 0x7C180200, // 0014 CALL R6 1 - 0x581C0004, // 0015 LDCONST R7 K4 - 0x8C200705, // 0016 GETMET R8 R3 K5 - 0x5C280C00, // 0017 MOVE R10 R6 - 0x582C0006, // 0018 LDCONST R11 K6 - 0x7C200600, // 0019 CALL R8 3 - 0x7822000A, // 001A JMPF R8 #0026 - 0x6020000C, // 001B GETGBL R8 G12 - 0x5C240C00, // 001C MOVE R9 R6 - 0x7C200200, // 001D CALL R8 1 - 0x54260009, // 001E LDINT R9 10 - 0x28201009, // 001F GE R8 R8 R9 - 0x78220004, // 0020 JMPF R8 #0026 - 0x54220003, // 0021 LDINT R8 4 - 0x54260008, // 0022 LDINT R9 9 - 0x40201009, // 0023 CONNECT R8 R8 R9 - 0x941C0C08, // 0024 GETIDX R7 R6 R8 - 0x7002000D, // 0025 JMP #0034 - 0x8C200705, // 0026 GETMET R8 R3 K5 - 0x5C280C00, // 0027 MOVE R10 R6 - 0x582C0006, // 0028 LDCONST R11 K6 - 0x7C200600, // 0029 CALL R8 3 - 0x78220008, // 002A JMPF R8 #0034 - 0x6020000C, // 002B GETGBL R8 G12 - 0x5C240C00, // 002C MOVE R9 R6 - 0x7C200200, // 002D CALL R8 1 - 0x54260007, // 002E LDINT R9 8 - 0x1C201009, // 002F EQ R8 R8 R9 - 0x78220002, // 0030 JMPF R8 #0034 - 0x54220006, // 0031 LDINT R8 7 - 0x40220E08, // 0032 CONNECT R8 K7 R8 - 0x941C0C08, // 0033 GETIDX R7 R6 R8 - 0x00200A07, // 0034 ADD R8 R5 R7 - 0x80041000, // 0035 RET 1 R8 + ( &(const binstruction[109]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x8C0C0101, // 0002 GETMET R3 R0 K1 + 0x5C140400, // 0003 MOVE R5 R2 + 0x7C0C0400, // 0004 CALL R3 2 + 0x8C100102, // 0005 GETMET R4 R0 K2 + 0x7C100200, // 0006 CALL R4 1 + 0x74120061, // 0007 JMPT R4 #006A + 0x8C100103, // 0008 GETMET R4 R0 K3 + 0x7C100200, // 0009 CALL R4 1 + 0x7412005E, // 000A JMPT R4 #006A + 0x8C100104, // 000B GETMET R4 R0 K4 + 0x7C100200, // 000C CALL R4 1 + 0x8C100103, // 000D GETMET R4 R0 K3 + 0x7C100200, // 000E CALL R4 1 + 0x78120000, // 000F JMPF R4 #0011 + 0x70020058, // 0010 JMP #006A + 0x8C100105, // 0011 GETMET R4 R0 K5 + 0x7C100200, // 0012 CALL R4 1 + 0x4C140000, // 0013 LDNIL R5 + 0x20140605, // 0014 NE R5 R3 R5 + 0x78160004, // 0015 JMPF R5 #001B + 0x8C140106, // 0016 GETMET R5 R0 K6 + 0x5C1C0400, // 0017 MOVE R7 R2 + 0x5C200800, // 0018 MOVE R8 R4 + 0x5C240600, // 0019 MOVE R9 R3 + 0x7C140800, // 001A CALL R5 4 + 0x8C140107, // 001B GETMET R5 R0 K7 + 0x7C140200, // 001C CALL R5 1 + 0x8C140108, // 001D GETMET R5 R0 K8 + 0x581C0009, // 001E LDCONST R7 K9 + 0x7C140400, // 001F CALL R5 2 + 0x8C18010A, // 0020 GETMET R6 R0 K10 + 0x7C180200, // 0021 CALL R6 1 + 0x8C1C010B, // 0022 GETMET R7 R0 K11 + 0x60240018, // 0023 GETGBL R9 G24 + 0x5828000C, // 0024 LDCONST R10 K12 + 0x5C2C0200, // 0025 MOVE R11 R1 + 0x5C300800, // 0026 MOVE R12 R4 + 0x5C340A00, // 0027 MOVE R13 R5 + 0x5C380C00, // 0028 MOVE R14 R6 + 0x7C240A00, // 0029 CALL R9 5 + 0x7C1C0400, // 002A CALL R7 2 + 0x8C1C0102, // 002B GETMET R7 R0 K2 + 0x7C1C0200, // 002C CALL R7 1 + 0x741E000F, // 002D JMPT R7 #003E + 0x8C1C010D, // 002E GETMET R7 R0 K13 + 0x7C1C0200, // 002F CALL R7 1 + 0x4C200000, // 0030 LDNIL R8 + 0x20200E08, // 0031 NE R8 R7 R8 + 0x78220008, // 0032 JMPF R8 #003C + 0x88200F0E, // 0033 GETMBR R8 R7 K14 + 0xB8261E00, // 0034 GETNGBL R9 K15 + 0x88241310, // 0035 GETMBR R9 R9 K16 + 0x88241311, // 0036 GETMBR R9 R9 K17 + 0x1C201009, // 0037 EQ R8 R8 R9 + 0x78220002, // 0038 JMPF R8 #003C + 0x8C200112, // 0039 GETMET R8 R0 K18 + 0x7C200200, // 003A CALL R8 1 + 0x70020000, // 003B JMP #003D + 0x70020000, // 003C JMP #003E + 0x7001FFEC, // 003D JMP #002B + 0x8C1C010D, // 003E GETMET R7 R0 K13 + 0x7C1C0200, // 003F CALL R7 1 + 0x4C200000, // 0040 LDNIL R8 + 0x201C0E08, // 0041 NE R7 R7 R8 + 0x781E000C, // 0042 JMPF R7 #0050 + 0x8C1C010D, // 0043 GETMET R7 R0 K13 + 0x7C1C0200, // 0044 CALL R7 1 + 0x881C0F0E, // 0045 GETMBR R7 R7 K14 + 0xB8221E00, // 0046 GETNGBL R8 K15 + 0x88201110, // 0047 GETMBR R8 R8 K16 + 0x88201113, // 0048 GETMBR R8 R8 K19 + 0x1C1C0E08, // 0049 EQ R7 R7 R8 + 0x781E0004, // 004A JMPF R7 #0050 + 0x8C1C0112, // 004B GETMET R7 R0 K18 + 0x7C1C0200, // 004C CALL R7 1 + 0x8C1C0104, // 004D GETMET R7 R0 K4 + 0x7C1C0200, // 004E CALL R7 1 + 0x70020018, // 004F JMP #0069 + 0x8C1C010D, // 0050 GETMET R7 R0 K13 + 0x7C1C0200, // 0051 CALL R7 1 + 0x4C200000, // 0052 LDNIL R8 + 0x201C0E08, // 0053 NE R7 R7 R8 + 0x781E000C, // 0054 JMPF R7 #0062 + 0x8C1C010D, // 0055 GETMET R7 R0 K13 + 0x7C1C0200, // 0056 CALL R7 1 + 0x881C0F0E, // 0057 GETMBR R7 R7 K14 + 0xB8221E00, // 0058 GETNGBL R8 K15 + 0x88201110, // 0059 GETMBR R8 R8 K16 + 0x88201114, // 005A GETMBR R8 R8 K20 + 0x1C1C0E08, // 005B EQ R7 R7 R8 + 0x781E0004, // 005C JMPF R7 #0062 + 0x8C1C0112, // 005D GETMET R7 R0 K18 + 0x7C1C0200, // 005E CALL R7 1 + 0x8C1C0104, // 005F GETMET R7 R0 K4 + 0x7C1C0200, // 0060 CALL R7 1 + 0x70020006, // 0061 JMP #0069 + 0x8C1C0103, // 0062 GETMET R7 R0 K3 + 0x7C1C0200, // 0063 CALL R7 1 + 0x741E0003, // 0064 JMPT R7 #0069 + 0x8C1C0115, // 0065 GETMET R7 R0 K21 + 0x58240016, // 0066 LDCONST R9 K22 + 0x7C1C0400, // 0067 CALL R7 2 + 0x70020000, // 0068 JMP #006A + 0x7001FF9A, // 0069 JMP #0005 + 0x8C100117, // 006A GETMET R4 R0 K23 + 0x7C100200, // 006B CALL R4 1 + 0x80000000, // 006C RET 0 }) ) ); @@ -9416,11 +11930,11 @@ be_local_closure(class_SimpleDSLTranspiler_convert_to_vrgb, /* name */ /******************************************************************** -** Solidified function: process_expression_argument +** Solidified function: check_right_paren ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_expression_argument, /* name */ +be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ be_nested_proto( - 3, /* nstack */ + 4, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -9428,368 +11942,30 @@ be_local_closure(class_SimpleDSLTranspiler_process_expression_argument, /* nam 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(process_additive_expression_raw), - }), - be_str_weak(process_expression_argument), - &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x80040200, // 0002 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_math_method -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_math_method, /* name */ - be_nested_proto( - 11, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(closure_value), - /* K3 */ be_nested_str_weak(members), - /* K4 */ be_nested_str_weak(get), - /* K5 */ be_nested_str_weak(ismethod), - /* K6 */ be_nested_str_weak(function), - /* K7 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(is_math_method), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xA802002C, // 0001 EXBLK 0 #002F - 0xB80E0200, // 0002 GETNGBL R3 K1 - 0x880C0702, // 0003 GETMBR R3 R3 K2 - 0x4C100000, // 0004 LDNIL R4 - 0x1C100604, // 0005 EQ R4 R3 R4 - 0x78120002, // 0006 JMPF R4 #000A - 0x50100000, // 0007 LDBOOL R4 0 0 - 0xA8040001, // 0008 EXBLK 1 1 - 0x80040800, // 0009 RET 1 R4 - 0x8C100503, // 000A GETMET R4 R2 K3 - 0x5C180600, // 000B MOVE R6 R3 - 0x7C100400, // 000C CALL R4 2 - 0x60140010, // 000D GETGBL R5 G16 - 0x5C180800, // 000E MOVE R6 R4 - 0x7C140200, // 000F CALL R5 1 - 0xA8020015, // 0010 EXBLK 0 #0027 - 0x5C180A00, // 0011 MOVE R6 R5 - 0x7C180000, // 0012 CALL R6 0 - 0x1C1C0C01, // 0013 EQ R7 R6 R1 - 0x781E0010, // 0014 JMPF R7 #0026 - 0x8C1C0504, // 0015 GETMET R7 R2 K4 - 0x5C240600, // 0016 MOVE R9 R3 - 0x5C280200, // 0017 MOVE R10 R1 - 0x7C1C0600, // 0018 CALL R7 3 - 0x8C200505, // 0019 GETMET R8 R2 K5 - 0x5C280E00, // 001A MOVE R10 R7 - 0x7C200400, // 001B CALL R8 2 - 0x74220005, // 001C JMPT R8 #0023 - 0x60200004, // 001D GETGBL R8 G4 - 0x5C240E00, // 001E MOVE R9 R7 - 0x7C200200, // 001F CALL R8 1 - 0x1C201106, // 0020 EQ R8 R8 K6 - 0x74220000, // 0021 JMPT R8 #0023 - 0x50200001, // 0022 LDBOOL R8 0 1 - 0x50200200, // 0023 LDBOOL R8 1 0 - 0xA8040002, // 0024 EXBLK 1 2 - 0x80041000, // 0025 RET 1 R8 - 0x7001FFE9, // 0026 JMP #0011 - 0x58140007, // 0027 LDCONST R5 K7 - 0xAC140200, // 0028 CATCH R5 1 0 - 0xB0080000, // 0029 RAISE 2 R0 R0 - 0x50140000, // 002A LDBOOL R5 0 0 - 0xA8040001, // 002B EXBLK 1 1 - 0x80040A00, // 002C RET 1 R5 - 0xA8040001, // 002D EXBLK 1 1 - 0x70020005, // 002E JMP #0035 - 0xAC0C0002, // 002F CATCH R3 0 2 - 0x70020002, // 0030 JMP #0034 - 0x50140000, // 0031 LDBOOL R5 0 0 - 0x80040A00, // 0032 RET 1 R5 - 0x70020000, // 0033 JMP #0035 - 0xB0080000, // 0034 RAISE 2 R0 R0 - 0x80000000, // 0035 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_indent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_indent, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_X20_X20), - /* K1 */ be_nested_str_weak(indent_level), - /* K2 */ be_const_int(1), - }), - be_str_weak(get_indent), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040101, // 0000 GETMBR R1 R0 K1 - 0x00040302, // 0001 ADD R1 R1 K2 - 0x08060001, // 0002 MUL R1 K0 R1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: transpile_template_body -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transpile_template_body, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(process_statement), - /* K2 */ be_nested_str_weak(run_statements), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(name), - /* K5 */ be_nested_str_weak(comment), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(engine_X2Eadd_animation_X28_X25s__X29_X25s), - /* K8 */ be_nested_str_weak(stop_iteration), - /* K9 */ be_nested_str_weak(errors), - /* K10 */ be_nested_str_weak(join_output), - /* K11 */ be_nested_str_weak(error), - /* K12 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), - }), - be_str_weak(transpile_template_body), - &be_const_str_solidified, - ( &(const binstruction[57]) { /* code */ - 0xA802002A, // 0000 EXBLK 0 #002C - 0x8C040100, // 0001 GETMET R1 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x74060002, // 0003 JMPT R1 #0007 - 0x8C040101, // 0004 GETMET R1 R0 K1 - 0x7C040200, // 0005 CALL R1 1 - 0x7001FFF9, // 0006 JMP #0001 - 0x6004000C, // 0007 GETGBL R1 G12 - 0x88080102, // 0008 GETMBR R2 R0 K2 - 0x7C040200, // 0009 CALL R1 1 - 0x24040303, // 000A GT R1 R1 K3 - 0x78060012, // 000B JMPF R1 #001F - 0x60040010, // 000C GETGBL R1 G16 - 0x88080102, // 000D GETMBR R2 R0 K2 - 0x7C040200, // 000E CALL R1 1 - 0xA802000B, // 000F EXBLK 0 #001C - 0x5C080200, // 0010 MOVE R2 R1 - 0x7C080000, // 0011 CALL R2 0 - 0x940C0504, // 0012 GETIDX R3 R2 K4 - 0x94100505, // 0013 GETIDX R4 R2 K5 - 0x8C140106, // 0014 GETMET R5 R0 K6 - 0x601C0018, // 0015 GETGBL R7 G24 - 0x58200007, // 0016 LDCONST R8 K7 - 0x5C240600, // 0017 MOVE R9 R3 - 0x5C280800, // 0018 MOVE R10 R4 - 0x7C1C0600, // 0019 CALL R7 3 - 0x7C140400, // 001A CALL R5 2 - 0x7001FFF3, // 001B JMP #0010 - 0x58040008, // 001C LDCONST R1 K8 - 0xAC040200, // 001D CATCH R1 1 0 - 0xB0080000, // 001E RAISE 2 R0 R0 - 0x6004000C, // 001F GETGBL R1 G12 - 0x88080109, // 0020 GETMBR R2 R0 K9 - 0x7C040200, // 0021 CALL R1 1 - 0x1C040303, // 0022 EQ R1 R1 K3 - 0x78060002, // 0023 JMPF R1 #0027 - 0x8C04010A, // 0024 GETMET R1 R0 K10 - 0x7C040200, // 0025 CALL R1 1 - 0x70020000, // 0026 JMP #0028 - 0x4C040000, // 0027 LDNIL R1 - 0xA8040001, // 0028 EXBLK 1 1 - 0x80040200, // 0029 RET 1 R1 - 0xA8040001, // 002A EXBLK 1 1 - 0x7002000B, // 002B JMP #0038 - 0xAC040002, // 002C CATCH R1 0 2 - 0x70020008, // 002D JMP #0037 - 0x8C0C010B, // 002E GETMET R3 R0 K11 - 0x60140018, // 002F GETGBL R5 G24 - 0x5818000C, // 0030 LDCONST R6 K12 - 0x5C1C0400, // 0031 MOVE R7 R2 - 0x7C140400, // 0032 CALL R5 2 - 0x7C0C0400, // 0033 CALL R3 2 - 0x4C0C0000, // 0034 LDNIL R3 - 0x80040600, // 0035 RET 1 R3 - 0x70020000, // 0036 JMP #0038 - 0xB0080000, // 0037 RAISE 2 R0 R0 - 0x80000000, // 0038 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_computed_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_computed_expression, /* name */ - be_nested_proto( - 9, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_X28), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(animation_X2E), - /* K5 */ be_nested_str_weak(_), - }), - be_str_weak(is_computed_expression), - &be_const_str_solidified, - ( &(const binstruction[40]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x8C140901, // 0001 GETMET R5 R4 K1 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x58200002, // 0003 LDCONST R8 K2 - 0x7C140600, // 0004 CALL R5 3 - 0x28140B03, // 0005 GE R5 R5 K3 - 0x7416001E, // 0006 JMPT R5 #0026 - 0x8C140901, // 0007 GETMET R5 R4 K1 - 0x5C1C0600, // 0008 MOVE R7 R3 - 0x58200002, // 0009 LDCONST R8 K2 - 0x7C140600, // 000A CALL R5 3 - 0x28140B03, // 000B GE R5 R5 K3 - 0x74160018, // 000C JMPT R5 #0026 - 0x8C140901, // 000D GETMET R5 R4 K1 - 0x5C1C0200, // 000E MOVE R7 R1 - 0x58200004, // 000F LDCONST R8 K4 - 0x7C140600, // 0010 CALL R5 3 - 0x28140B03, // 0011 GE R5 R5 K3 - 0x74160012, // 0012 JMPT R5 #0026 - 0x8C140901, // 0013 GETMET R5 R4 K1 - 0x5C1C0600, // 0014 MOVE R7 R3 - 0x58200004, // 0015 LDCONST R8 K4 - 0x7C140600, // 0016 CALL R5 3 - 0x28140B03, // 0017 GE R5 R5 K3 - 0x7416000C, // 0018 JMPT R5 #0026 - 0x8C140901, // 0019 GETMET R5 R4 K1 - 0x5C1C0200, // 001A MOVE R7 R1 - 0x58200005, // 001B LDCONST R8 K5 - 0x7C140600, // 001C CALL R5 3 - 0x28140B03, // 001D GE R5 R5 K3 - 0x74160006, // 001E JMPT R5 #0026 - 0x8C140901, // 001F GETMET R5 R4 K1 - 0x5C1C0600, // 0020 MOVE R7 R3 - 0x58200005, // 0021 LDCONST R8 K5 - 0x7C140600, // 0022 CALL R5 3 - 0x28140B03, // 0023 GE R5 R5 K3 - 0x74160000, // 0024 JMPT R5 #0026 - 0x50140001, // 0025 LDBOOL R5 0 1 - 0x50140200, // 0026 LDBOOL R5 1 0 - 0x80040A00, // 0027 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_user_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ + ( &(const bvalue[ 5]) { /* constants */ /* K0 */ be_nested_str_weak(current), /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(animation_dsl), /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(LEFT_PAREN), - /* K5 */ be_nested_str_weak(process_function_arguments_for_expression), - /* K6 */ be_nested_str_weak(), - /* K7 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), - /* K8 */ be_nested_str_weak(self_X2Eengine), - /* K9 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), - /* K10 */ be_nested_str_weak(error), - /* K11 */ be_nested_str_weak(User_X20functions_X20must_X20be_X20called_X20with_X20parentheses_X3A_X20user_X2Efunction_name_X28_X29), - /* K12 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(RIGHT_PAREN), }), - be_str_weak(_process_user_function_call), + be_str_weak(check_right_paren), &be_const_str_solidified, - ( &(const binstruction[35]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0018, // 0004 JMPF R2 #001E - 0x8C080100, // 0005 GETMET R2 R0 K0 - 0x7C080200, // 0006 CALL R2 1 - 0x88080501, // 0007 GETMBR R2 R2 K1 - 0xB80E0400, // 0008 GETNGBL R3 K2 - 0x880C0703, // 0009 GETMBR R3 R3 K3 - 0x880C0704, // 000A GETMBR R3 R3 K4 - 0x1C080403, // 000B EQ R2 R2 R3 - 0x780A0010, // 000C JMPF R2 #001E - 0x8C080105, // 000D GETMET R2 R0 K5 - 0x7C080200, // 000E CALL R2 1 - 0x200C0506, // 000F NE R3 R2 K6 - 0x780E0004, // 0010 JMPF R3 #0016 - 0x600C0018, // 0011 GETGBL R3 G24 - 0x58100007, // 0012 LDCONST R4 K7 - 0x5C140400, // 0013 MOVE R5 R2 - 0x7C0C0400, // 0014 CALL R3 2 - 0x70020000, // 0015 JMP #0017 - 0x580C0008, // 0016 LDCONST R3 K8 - 0x60100018, // 0017 GETGBL R4 G24 - 0x58140009, // 0018 LDCONST R5 K9 - 0x5C180200, // 0019 MOVE R6 R1 - 0x5C1C0600, // 001A MOVE R7 R3 - 0x7C100600, // 001B CALL R4 3 - 0x80040800, // 001C RET 1 R4 - 0x70020003, // 001D JMP #0022 - 0x8C08010A, // 001E GETMET R2 R0 K10 - 0x5810000B, // 001F LDCONST R4 K11 - 0x7C080400, // 0020 CALL R2 2 - 0x80061800, // 0021 RET 1 K12 - 0x80000000, // 0022 RET 0 + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0005, // 0004 JMPF R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 }) ) ); @@ -9797,9 +11973,52 @@ be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* nam /******************************************************************** -** Solidified function: process_color +** Solidified function: check_right_bracket ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ +be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACKET), + }), + be_str_weak(check_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0005, // 0004 JMPF R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ be_nested_proto( 15, /* nstack */ 1, /* argc */ @@ -9813,7 +12032,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ /* K0 */ be_nested_str_weak(next), /* K1 */ be_nested_str_weak(expect_identifier), /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(color), + /* K3 */ be_nested_str_weak(animation), /* K4 */ be_nested_str_weak(skip_statement), /* K5 */ be_nested_str_weak(expect_assign), /* K6 */ be_nested_str_weak(current), @@ -9835,22 +12054,22 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ /* K22 */ be_nested_str_weak(engine), /* K23 */ be_nested_str_weak(add), /* K24 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), - /* K25 */ be_nested_str_weak(_validate_color_provider_factory_exists), + /* K25 */ be_nested_str_weak(_validate_animation_factory_creates_animation), /* K26 */ be_nested_str_weak(error), - /* K27 */ be_nested_str_weak(Color_X20provider_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K27 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X20or_X20does_X20not_X20create_X20an_X20instance_X20of_X20animation_X2Eanimation_X20class_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X20returns_X20an_X20animation_X20object_X2E), /* K28 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), /* K29 */ be_nested_str_weak(_create_instance_for_validation), /* K30 */ be_nested_str_weak(symbol_table), - /* K31 */ be_nested_str_weak(_process_named_arguments_for_color_provider), + /* K31 */ be_nested_str_weak(_process_named_arguments_for_animation), /* K32 */ be_nested_str_weak(_X25s_), /* K33 */ be_nested_str_weak(process_value), /* K34 */ be_nested_str_weak(collect_inline_comment), /* K35 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), /* K36 */ be_nested_str_weak(string), }), - be_str_weak(process_color), + be_str_weak(process_animation), &be_const_str_solidified, - ( &(const binstruction[188]) { /* code */ + ( &(const binstruction[191]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x8C040101, // 0002 GETMET R1 R0 K1 @@ -9976,7 +12195,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ 0x7C200400, // 007A CALL R8 2 0x5C240600, // 007B MOVE R9 R3 0x7C180600, // 007C CALL R6 3 - 0x7002003C, // 007D JMP #00BB + 0x7002003F, // 007D JMP #00BE 0x8C0C0106, // 007E GETMET R3 R0 K6 0x7C0C0200, // 007F CALL R3 1 0x4C100000, // 0080 LDNIL R4 @@ -10020,15 +12239,15 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ 0x5C380E00, // 00A6 MOVE R14 R7 0x7C280800, // 00A7 CALL R10 4 0x7C200400, // 00A8 CALL R8 2 - 0x78120010, // 00A9 JMPF R4 #00BB + 0x78120011, // 00A9 JMPF R4 #00BC 0x4C200000, // 00AA LDNIL R8 0x20200A08, // 00AB NE R8 R5 R8 - 0x7822000D, // 00AC JMPF R8 #00BB + 0x7822000E, // 00AC JMPF R8 #00BC 0x8820011E, // 00AD GETMBR R8 R0 K30 0x8C201113, // 00AE GETMET R8 R8 K19 0x5C280A00, // 00AF MOVE R10 R5 0x7C200400, // 00B0 CALL R8 2 - 0x78220008, // 00B1 JMPF R8 #00BB + 0x78220009, // 00B1 JMPF R8 #00BC 0x8820011E, // 00B2 GETMBR R8 R0 K30 0x94201005, // 00B3 GETIDX R8 R8 R5 0x60240004, // 00B4 GETGBL R9 G4 @@ -10038,7 +12257,10 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ 0x78260001, // 00B8 JMPF R9 #00BB 0x8824011E, // 00B9 GETMBR R9 R0 K30 0x98240208, // 00BA SETIDX R9 R1 R8 - 0x80000000, // 00BB RET 0 + 0x70020001, // 00BB JMP #00BE + 0x8820011E, // 00BC GETMBR R8 R0 K30 + 0x98200303, // 00BD SETIDX R8 R1 K3 + 0x80000000, // 00BE RET 0 }) ) ); @@ -10046,54 +12268,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ /******************************************************************** -** Solidified function: process_import +** Solidified function: _validate_object_reference ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(collect_inline_comment), - /* K3 */ be_nested_str_weak(add), - /* K4 */ be_nested_str_weak(import_X20_X25s_X20_X25s), - }), - be_str_weak(process_import), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0103, // 0006 GETMET R3 R0 K3 - 0x60140018, // 0007 GETGBL R5 G24 - 0x58180004, // 0008 LDCONST R6 K4 - 0x5C1C0200, // 0009 MOVE R7 R1 - 0x5C200400, // 000A MOVE R8 R2 - 0x7C140600, // 000B CALL R5 3 - 0x7C0C0400, // 000C CALL R3 2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_assignment_generic -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, /* name */ - be_nested_proto( - 18, /* nstack */ + 10, /* nstack */ 3, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -10101,340 +12280,55 @@ be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[27]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_identifier), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(DOT), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(symbol_table), - /* K8 */ be_nested_str_weak(contains), - /* K9 */ be_nested_str_weak(string), - /* K10 */ be_nested_str_weak(_validate_single_parameter), - /* K11 */ be_nested_str_weak(error), - /* K12 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20assignments_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), - /* K13 */ be_nested_str_weak(expect_assign), - /* K14 */ be_nested_str_weak(process_value), - /* K15 */ be_nested_str_weak(property), - /* K16 */ be_nested_str_weak(collect_inline_comment), - /* K17 */ be_nested_str_weak(introspect), - /* K18 */ be_nested_str_weak(), - /* K19 */ be_nested_str_weak(animation), - /* K20 */ be_nested_str_weak(animation_X2E_X25s), - /* K21 */ be_nested_str_weak(_X25s_), - /* K22 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s_X2E_X25s_X20_X3D_X20_X25s_X20end), - /* K23 */ be_nested_str_weak(add), - /* K24 */ be_nested_str_weak(_X25s_X25s_X2Epush_X28animation_X2Ecreate_assign_step_X28_X25s_X29_X29_X25s), - /* K25 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), - /* K26 */ be_nested_str_weak(skip_statement), - }), - be_str_weak(process_sequence_assignment_generic), - &be_const_str_solidified, - ( &(const binstruction[97]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x8C100101, // 0002 GETMET R4 R0 K1 - 0x7C100200, // 0003 CALL R4 1 - 0x4C140000, // 0004 LDNIL R5 - 0x20100805, // 0005 NE R4 R4 R5 - 0x78120050, // 0006 JMPF R4 #0058 - 0x8C100101, // 0007 GETMET R4 R0 K1 - 0x7C100200, // 0008 CALL R4 1 - 0x88100902, // 0009 GETMBR R4 R4 K2 - 0xB8160600, // 000A GETNGBL R5 K3 - 0x88140B04, // 000B GETMBR R5 R5 K4 - 0x88140B05, // 000C GETMBR R5 R5 K5 - 0x1C100805, // 000D EQ R4 R4 R5 - 0x78120048, // 000E JMPF R4 #0058 - 0x8C100106, // 000F GETMET R4 R0 K6 - 0x7C100200, // 0010 CALL R4 1 - 0x8C100100, // 0011 GETMET R4 R0 K0 - 0x7C100200, // 0012 CALL R4 1 - 0x88140107, // 0013 GETMBR R5 R0 K7 - 0x8C140B08, // 0014 GETMET R5 R5 K8 - 0x5C1C0600, // 0015 MOVE R7 R3 - 0x7C140400, // 0016 CALL R5 2 - 0x78160016, // 0017 JMPF R5 #002F - 0x88140107, // 0018 GETMBR R5 R0 K7 - 0x94140A03, // 0019 GETIDX R5 R5 R3 - 0x60180004, // 001A GETGBL R6 G4 - 0x5C1C0A00, // 001B MOVE R7 R5 - 0x7C180200, // 001C CALL R6 1 - 0x20180D09, // 001D NE R6 R6 K9 - 0x781A0008, // 001E JMPF R6 #0028 - 0x60180005, // 001F GETGBL R6 G5 - 0x5C1C0A00, // 0020 MOVE R7 R5 - 0x7C180200, // 0021 CALL R6 1 - 0x8C1C010A, // 0022 GETMET R7 R0 K10 - 0x5C240C00, // 0023 MOVE R9 R6 - 0x5C280800, // 0024 MOVE R10 R4 - 0x5C2C0A00, // 0025 MOVE R11 R5 - 0x7C1C0800, // 0026 CALL R7 4 - 0x70020006, // 0027 JMP #002F - 0x8C18010B, // 0028 GETMET R6 R0 K11 - 0x60200018, // 0029 GETGBL R8 G24 - 0x5824000C, // 002A LDCONST R9 K12 - 0x5C280600, // 002B MOVE R10 R3 - 0x7C200400, // 002C CALL R8 2 - 0x7C180400, // 002D CALL R6 2 - 0x80000C00, // 002E RET 0 - 0x8C14010D, // 002F GETMET R5 R0 K13 - 0x7C140200, // 0030 CALL R5 1 - 0x8C14010E, // 0031 GETMET R5 R0 K14 - 0x581C000F, // 0032 LDCONST R7 K15 - 0x7C140400, // 0033 CALL R5 2 - 0x8C180110, // 0034 GETMET R6 R0 K16 - 0x7C180200, // 0035 CALL R6 1 - 0xA41E2200, // 0036 IMPORT R7 K17 - 0x58200012, // 0037 LDCONST R8 K18 - 0x8C240F08, // 0038 GETMET R9 R7 K8 - 0xB82E2600, // 0039 GETNGBL R11 K19 - 0x5C300600, // 003A MOVE R12 R3 - 0x7C240600, // 003B CALL R9 3 - 0x78260005, // 003C JMPF R9 #0043 - 0x60240018, // 003D GETGBL R9 G24 - 0x58280014, // 003E LDCONST R10 K20 - 0x5C2C0600, // 003F MOVE R11 R3 - 0x7C240400, // 0040 CALL R9 2 - 0x5C201200, // 0041 MOVE R8 R9 - 0x70020004, // 0042 JMP #0048 - 0x60240018, // 0043 GETGBL R9 G24 - 0x58280015, // 0044 LDCONST R10 K21 - 0x5C2C0600, // 0045 MOVE R11 R3 - 0x7C240400, // 0046 CALL R9 2 - 0x5C201200, // 0047 MOVE R8 R9 - 0x60240018, // 0048 GETGBL R9 G24 - 0x58280016, // 0049 LDCONST R10 K22 - 0x5C2C1000, // 004A MOVE R11 R8 - 0x5C300800, // 004B MOVE R12 R4 - 0x5C340A00, // 004C MOVE R13 R5 - 0x7C240800, // 004D CALL R9 4 - 0x8C280117, // 004E GETMET R10 R0 K23 - 0x60300018, // 004F GETGBL R12 G24 - 0x58340018, // 0050 LDCONST R13 K24 - 0x5C380200, // 0051 MOVE R14 R1 - 0x5C3C0400, // 0052 MOVE R15 R2 - 0x5C401200, // 0053 MOVE R16 R9 - 0x5C440C00, // 0054 MOVE R17 R6 - 0x7C300A00, // 0055 CALL R12 5 - 0x7C280400, // 0056 CALL R10 2 - 0x70020007, // 0057 JMP #0060 - 0x8C10010B, // 0058 GETMET R4 R0 K11 - 0x60180018, // 0059 GETGBL R6 G24 - 0x581C0019, // 005A LDCONST R7 K25 - 0x5C200600, // 005B MOVE R8 R3 - 0x7C180400, // 005C CALL R6 2 - 0x7C100400, // 005D CALL R4 2 - 0x8C10011A, // 005E GETMET R4 R0 K26 - 0x7C100200, // 005F CALL R4 1 - 0x80000000, // 0060 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_generic -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_generic, /* name */ - be_nested_proto( - 15, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_create_instance_for_validation), - /* K2 */ be_nested_str_weak(at_end), - /* K3 */ be_nested_str_weak(check_right_paren), - /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K5 */ be_nested_str_weak(expect_identifier), - /* K6 */ be_nested_str_weak(_validate_single_parameter), - /* K7 */ be_nested_str_weak(expect_assign), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(argument), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(add), - /* K12 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K13 */ be_nested_str_weak(current), - /* K14 */ be_nested_str_weak(type), - /* K15 */ be_nested_str_weak(animation_dsl), - /* K16 */ be_nested_str_weak(Token), - /* K17 */ be_nested_str_weak(COMMENT), - /* K18 */ be_nested_str_weak(next), - /* K19 */ be_nested_str_weak(COMMA), - /* K20 */ be_nested_str_weak(NEWLINE), - /* K21 */ be_nested_str_weak(error), - /* K22 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K23 */ be_nested_str_weak(expect_right_paren), - }), - be_str_weak(_process_named_arguments_generic), - &be_const_str_solidified, - ( &(const binstruction[109]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x8C0C0101, // 0002 GETMET R3 R0 K1 - 0x5C140400, // 0003 MOVE R5 R2 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C100102, // 0005 GETMET R4 R0 K2 - 0x7C100200, // 0006 CALL R4 1 - 0x74120061, // 0007 JMPT R4 #006A - 0x8C100103, // 0008 GETMET R4 R0 K3 - 0x7C100200, // 0009 CALL R4 1 - 0x7412005E, // 000A JMPT R4 #006A - 0x8C100104, // 000B GETMET R4 R0 K4 - 0x7C100200, // 000C CALL R4 1 - 0x8C100103, // 000D GETMET R4 R0 K3 - 0x7C100200, // 000E CALL R4 1 - 0x78120000, // 000F JMPF R4 #0011 - 0x70020058, // 0010 JMP #006A - 0x8C100105, // 0011 GETMET R4 R0 K5 - 0x7C100200, // 0012 CALL R4 1 - 0x4C140000, // 0013 LDNIL R5 - 0x20140605, // 0014 NE R5 R3 R5 - 0x78160004, // 0015 JMPF R5 #001B - 0x8C140106, // 0016 GETMET R5 R0 K6 - 0x5C1C0400, // 0017 MOVE R7 R2 - 0x5C200800, // 0018 MOVE R8 R4 - 0x5C240600, // 0019 MOVE R9 R3 - 0x7C140800, // 001A CALL R5 4 - 0x8C140107, // 001B GETMET R5 R0 K7 - 0x7C140200, // 001C CALL R5 1 - 0x8C140108, // 001D GETMET R5 R0 K8 - 0x581C0009, // 001E LDCONST R7 K9 - 0x7C140400, // 001F CALL R5 2 - 0x8C18010A, // 0020 GETMET R6 R0 K10 - 0x7C180200, // 0021 CALL R6 1 - 0x8C1C010B, // 0022 GETMET R7 R0 K11 - 0x60240018, // 0023 GETGBL R9 G24 - 0x5828000C, // 0024 LDCONST R10 K12 - 0x5C2C0200, // 0025 MOVE R11 R1 - 0x5C300800, // 0026 MOVE R12 R4 - 0x5C340A00, // 0027 MOVE R13 R5 - 0x5C380C00, // 0028 MOVE R14 R6 - 0x7C240A00, // 0029 CALL R9 5 - 0x7C1C0400, // 002A CALL R7 2 - 0x8C1C0102, // 002B GETMET R7 R0 K2 - 0x7C1C0200, // 002C CALL R7 1 - 0x741E000F, // 002D JMPT R7 #003E - 0x8C1C010D, // 002E GETMET R7 R0 K13 - 0x7C1C0200, // 002F CALL R7 1 - 0x4C200000, // 0030 LDNIL R8 - 0x20200E08, // 0031 NE R8 R7 R8 - 0x78220008, // 0032 JMPF R8 #003C - 0x88200F0E, // 0033 GETMBR R8 R7 K14 - 0xB8261E00, // 0034 GETNGBL R9 K15 - 0x88241310, // 0035 GETMBR R9 R9 K16 - 0x88241311, // 0036 GETMBR R9 R9 K17 - 0x1C201009, // 0037 EQ R8 R8 R9 - 0x78220002, // 0038 JMPF R8 #003C - 0x8C200112, // 0039 GETMET R8 R0 K18 - 0x7C200200, // 003A CALL R8 1 - 0x70020000, // 003B JMP #003D - 0x70020000, // 003C JMP #003E - 0x7001FFEC, // 003D JMP #002B - 0x8C1C010D, // 003E GETMET R7 R0 K13 - 0x7C1C0200, // 003F CALL R7 1 - 0x4C200000, // 0040 LDNIL R8 - 0x201C0E08, // 0041 NE R7 R7 R8 - 0x781E000C, // 0042 JMPF R7 #0050 - 0x8C1C010D, // 0043 GETMET R7 R0 K13 - 0x7C1C0200, // 0044 CALL R7 1 - 0x881C0F0E, // 0045 GETMBR R7 R7 K14 - 0xB8221E00, // 0046 GETNGBL R8 K15 - 0x88201110, // 0047 GETMBR R8 R8 K16 - 0x88201113, // 0048 GETMBR R8 R8 K19 - 0x1C1C0E08, // 0049 EQ R7 R7 R8 - 0x781E0004, // 004A JMPF R7 #0050 - 0x8C1C0112, // 004B GETMET R7 R0 K18 - 0x7C1C0200, // 004C CALL R7 1 - 0x8C1C0104, // 004D GETMET R7 R0 K4 - 0x7C1C0200, // 004E CALL R7 1 - 0x70020018, // 004F JMP #0069 - 0x8C1C010D, // 0050 GETMET R7 R0 K13 - 0x7C1C0200, // 0051 CALL R7 1 - 0x4C200000, // 0052 LDNIL R8 - 0x201C0E08, // 0053 NE R7 R7 R8 - 0x781E000C, // 0054 JMPF R7 #0062 - 0x8C1C010D, // 0055 GETMET R7 R0 K13 - 0x7C1C0200, // 0056 CALL R7 1 - 0x881C0F0E, // 0057 GETMBR R7 R7 K14 - 0xB8221E00, // 0058 GETNGBL R8 K15 - 0x88201110, // 0059 GETMBR R8 R8 K16 - 0x88201114, // 005A GETMBR R8 R8 K20 - 0x1C1C0E08, // 005B EQ R7 R7 R8 - 0x781E0004, // 005C JMPF R7 #0062 - 0x8C1C0112, // 005D GETMET R7 R0 K18 - 0x7C1C0200, // 005E CALL R7 1 - 0x8C1C0104, // 005F GETMET R7 R0 K4 - 0x7C1C0200, // 0060 CALL R7 1 - 0x70020006, // 0061 JMP #0069 - 0x8C1C0103, // 0062 GETMET R7 R0 K3 - 0x7C1C0200, // 0063 CALL R7 1 - 0x741E0003, // 0064 JMPT R7 #0069 - 0x8C1C0115, // 0065 GETMET R7 R0 K21 - 0x58240016, // 0066 LDCONST R9 K22 - 0x7C1C0400, // 0067 CALL R7 2 - 0x70020000, // 0068 JMP #006A - 0x7001FF9A, // 0069 JMP #0005 - 0x8C100117, // 006A GETMET R4 R0 K23 - 0x7C100200, // 006B CALL R4 1 - 0x80000000, // 006C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_identifier_char -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(a), - /* K1 */ be_nested_str_weak(z), - /* K2 */ be_nested_str_weak(A), - /* K3 */ be_nested_str_weak(Z), - /* K4 */ be_nested_str_weak(0), - /* K5 */ be_nested_str_weak(9), - /* K6 */ be_nested_str_weak(_), + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(symbol_table), + /* K2 */ be_nested_str_weak(contains), + /* K3 */ be_nested_str_weak(animation), + /* K4 */ be_nested_str_weak(sequence_names), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X2E_X20Make_X20sure_X20the_X20object_X20is_X20defined_X20before_X20use_X2E), }), - be_str_weak(is_identifier_char), + be_str_weak(_validate_object_reference), &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x28080300, // 0000 GE R2 R1 K0 - 0x780A0001, // 0001 JMPF R2 #0004 - 0x18080301, // 0002 LE R2 R1 K1 - 0x740A000A, // 0003 JMPT R2 #000F - 0x28080302, // 0004 GE R2 R1 K2 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x18080303, // 0006 LE R2 R1 K3 - 0x740A0006, // 0007 JMPT R2 #000F - 0x28080304, // 0008 GE R2 R1 K4 - 0x780A0001, // 0009 JMPF R2 #000C - 0x18080305, // 000A LE R2 R1 K5 - 0x740A0002, // 000B JMPT R2 #000F - 0x1C080306, // 000C EQ R2 R1 K6 - 0x740A0000, // 000D JMPT R2 #000F - 0x50080001, // 000E LDBOOL R2 0 1 - 0x50080200, // 000F LDBOOL R2 1 0 - 0x80040400, // 0010 RET 1 R2 + ( &(const binstruction[37]) { /* code */ + 0xA802001E, // 0000 EXBLK 0 #0020 + 0xA40E0000, // 0001 IMPORT R3 K0 + 0x88100101, // 0002 GETMBR R4 R0 K1 + 0x8C100902, // 0003 GETMET R4 R4 K2 + 0x5C180200, // 0004 MOVE R6 R1 + 0x7C100400, // 0005 CALL R4 2 + 0x78120001, // 0006 JMPF R4 #0009 + 0xA8040001, // 0007 EXBLK 1 1 + 0x80000800, // 0008 RET 0 + 0x8C100702, // 0009 GETMET R4 R3 K2 + 0xB81A0600, // 000A GETNGBL R6 K3 + 0x5C1C0200, // 000B MOVE R7 R1 + 0x7C100600, // 000C CALL R4 3 + 0x78120001, // 000D JMPF R4 #0010 + 0xA8040001, // 000E EXBLK 1 1 + 0x80000800, // 000F RET 0 + 0x88100104, // 0010 GETMBR R4 R0 K4 + 0x8C100902, // 0011 GETMET R4 R4 K2 + 0x5C180200, // 0012 MOVE R6 R1 + 0x7C100400, // 0013 CALL R4 2 + 0x78120001, // 0014 JMPF R4 #0017 + 0xA8040001, // 0015 EXBLK 1 1 + 0x80000800, // 0016 RET 0 + 0x8C100105, // 0017 GETMET R4 R0 K5 + 0x60180018, // 0018 GETGBL R6 G24 + 0x581C0006, // 0019 LDCONST R7 K6 + 0x5C200200, // 001A MOVE R8 R1 + 0x5C240400, // 001B MOVE R9 R2 + 0x7C180600, // 001C CALL R6 3 + 0x7C100400, // 001D CALL R4 2 + 0xA8040001, // 001E EXBLK 1 1 + 0x70020003, // 001F JMP #0024 + 0xAC0C0002, // 0020 CATCH R3 0 2 + 0x70020000, // 0021 JMP #0023 + 0x70020000, // 0022 JMP #0024 + 0xB0080000, // 0023 RAISE 2 R0 R0 + 0x80000000, // 0024 RET 0 }) ) ); @@ -10442,530 +12336,122 @@ be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ /******************************************************************** -** Solidified function: process_property_assignment +** Solidified function: _validate_value_provider_reference ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_reference, /* name */ be_nested_proto( - 15, /* nstack */ - 1, /* argc */ + 12, /* nstack */ + 3, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[34]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_identifier), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(LEFT_PAREN), - /* K6 */ be_nested_str_weak(template_definitions), - /* K7 */ be_nested_str_weak(contains), - /* K8 */ be_nested_str_weak(process_function_arguments), - /* K9 */ be_nested_str_weak(), - /* K10 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K11 */ be_nested_str_weak(engine), - /* K12 */ be_nested_str_weak(collect_inline_comment), - /* K13 */ be_nested_str_weak(add), - /* K14 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), - /* K15 */ be_nested_str_weak(has_template_calls), - /* K16 */ be_nested_str_weak(error), - /* K17 */ be_nested_str_weak(Standalone_X20function_X20calls_X20are_X20only_X20supported_X20for_X20templates_X2E_X20_X27_X25s_X27_X20is_X20not_X20a_X20template_X2E), - /* K18 */ be_nested_str_weak(skip_statement), - /* K19 */ be_nested_str_weak(DOT), - /* K20 */ be_nested_str_weak(next), - /* K21 */ be_nested_str_weak(symbol_table), - /* K22 */ be_nested_str_weak(string), - /* K23 */ be_nested_str_weak(_validate_single_parameter), - /* K24 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20assignments_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), - /* K25 */ be_nested_str_weak(expect_assign), - /* K26 */ be_nested_str_weak(process_value), - /* K27 */ be_nested_str_weak(property), - /* K28 */ be_nested_str_weak(introspect), - /* K29 */ be_nested_str_weak(animation), - /* K30 */ be_nested_str_weak(animation_X2E_X25s), - /* K31 */ be_nested_str_weak(_X25s_), - /* K32 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K33 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(string), + /* K3 */ be_nested_str_weak(value_provider), + /* K4 */ be_nested_str_weak(animation), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(_X27_X25s_X27_X20in_X20_X25s_X20statement_X20is_X20not_X20a_X20value_X20provider_X20or_X20animation_X2E_X20Only_X20value_X20providers_X20_X28like_X20oscillators_X29_X20and_X20animations_X20can_X20be_X20reset_X2Frestarted_X2E), + /* K7 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X2E_X20Make_X20sure_X20the_X20value_X20provider_X20or_X20animation_X20is_X20defined_X20before_X20use_X2E), + /* K8 */ be_nested_str_weak(Could_X20not_X20validate_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X3A_X20_X25s), }), - be_str_weak(process_property_assignment), + be_str_weak(_validate_value_provider_reference), &be_const_str_solidified, - ( &(const binstruction[140]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x4C0C0000, // 0004 LDNIL R3 - 0x20080403, // 0005 NE R2 R2 R3 - 0x780A002C, // 0006 JMPF R2 #0034 - 0x8C080101, // 0007 GETMET R2 R0 K1 - 0x7C080200, // 0008 CALL R2 1 - 0x88080502, // 0009 GETMBR R2 R2 K2 - 0xB80E0600, // 000A GETNGBL R3 K3 - 0x880C0704, // 000B GETMBR R3 R3 K4 - 0x880C0705, // 000C GETMBR R3 R3 K5 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A0024, // 000E JMPF R2 #0034 - 0x88080106, // 000F GETMBR R2 R0 K6 - 0x8C080507, // 0010 GETMET R2 R2 K7 - 0x5C100200, // 0011 MOVE R4 R1 - 0x7C080400, // 0012 CALL R2 2 - 0x780A0016, // 0013 JMPF R2 #002B - 0x8C080108, // 0014 GETMET R2 R0 K8 - 0x7C080200, // 0015 CALL R2 1 - 0x200C0509, // 0016 NE R3 R2 K9 - 0x780E0004, // 0017 JMPF R3 #001D - 0x600C0018, // 0018 GETGBL R3 G24 - 0x5810000A, // 0019 LDCONST R4 K10 - 0x5C140400, // 001A MOVE R5 R2 - 0x7C0C0400, // 001B CALL R3 2 - 0x70020000, // 001C JMP #001E - 0x580C000B, // 001D LDCONST R3 K11 - 0x8C10010C, // 001E GETMET R4 R0 K12 - 0x7C100200, // 001F CALL R4 1 - 0x8C14010D, // 0020 GETMET R5 R0 K13 - 0x601C0018, // 0021 GETGBL R7 G24 - 0x5820000E, // 0022 LDCONST R8 K14 - 0x5C240200, // 0023 MOVE R9 R1 - 0x5C280600, // 0024 MOVE R10 R3 - 0x5C2C0800, // 0025 MOVE R11 R4 - 0x7C1C0800, // 0026 CALL R7 4 - 0x7C140400, // 0027 CALL R5 2 - 0x50140200, // 0028 LDBOOL R5 1 0 - 0x90021E05, // 0029 SETMBR R0 K15 R5 - 0x70020007, // 002A JMP #0033 - 0x8C080110, // 002B GETMET R2 R0 K16 - 0x60100018, // 002C GETGBL R4 G24 - 0x58140011, // 002D LDCONST R5 K17 - 0x5C180200, // 002E MOVE R6 R1 + ( &(const binstruction[90]) { /* code */ + 0xA8020049, // 0000 EXBLK 0 #004B + 0x880C0100, // 0001 GETMBR R3 R0 K0 + 0x8C0C0701, // 0002 GETMET R3 R3 K1 + 0x5C140200, // 0003 MOVE R5 R1 + 0x7C0C0400, // 0004 CALL R3 2 + 0x780E0038, // 0005 JMPF R3 #003F + 0x880C0100, // 0006 GETMBR R3 R0 K0 + 0x940C0601, // 0007 GETIDX R3 R3 R1 + 0x60100004, // 0008 GETGBL R4 G4 + 0x5C140600, // 0009 MOVE R5 R3 + 0x7C100200, // 000A CALL R4 1 + 0x1C100902, // 000B EQ R4 R4 K2 + 0x78120007, // 000C JMPF R4 #0015 + 0x1C100703, // 000D EQ R4 R3 K3 + 0x74120001, // 000E JMPT R4 #0011 + 0x1C100704, // 000F EQ R4 R3 K4 + 0x78120003, // 0010 JMPF R4 #0015 + 0x50100200, // 0011 LDBOOL R4 1 0 + 0xA8040001, // 0012 EXBLK 1 1 + 0x80040800, // 0013 RET 1 R4 + 0x70020029, // 0014 JMP #003F + 0x60100004, // 0015 GETGBL R4 G4 + 0x5C140600, // 0016 MOVE R5 R3 + 0x7C100200, // 0017 CALL R4 1 + 0x1C100902, // 0018 EQ R4 R4 K2 + 0x7812000A, // 0019 JMPF R4 #0025 + 0x8C100105, // 001A GETMET R4 R0 K5 + 0x60180018, // 001B GETGBL R6 G24 + 0x581C0006, // 001C LDCONST R7 K6 + 0x5C200200, // 001D MOVE R8 R1 + 0x5C240400, // 001E MOVE R9 R2 + 0x7C180600, // 001F CALL R6 3 + 0x7C100400, // 0020 CALL R4 2 + 0x50100000, // 0021 LDBOOL R4 0 0 + 0xA8040001, // 0022 EXBLK 1 1 + 0x80040800, // 0023 RET 1 R4 + 0x70020019, // 0024 JMP #003F + 0x6010000F, // 0025 GETGBL R4 G15 + 0x5C140600, // 0026 MOVE R5 R3 + 0xB81A0800, // 0027 GETNGBL R6 K4 + 0x88180D03, // 0028 GETMBR R6 R6 K3 + 0x7C100400, // 0029 CALL R4 2 + 0x74120005, // 002A JMPT R4 #0031 + 0x6010000F, // 002B GETGBL R4 G15 + 0x5C140600, // 002C MOVE R5 R3 + 0xB81A0800, // 002D GETNGBL R6 K4 + 0x88180D04, // 002E GETMBR R6 R6 K4 0x7C100400, // 002F CALL R4 2 - 0x7C080400, // 0030 CALL R2 2 - 0x8C080112, // 0031 GETMET R2 R0 K18 - 0x7C080200, // 0032 CALL R2 1 - 0x80000400, // 0033 RET 0 - 0x8C080101, // 0034 GETMET R2 R0 K1 - 0x7C080200, // 0035 CALL R2 1 - 0x4C0C0000, // 0036 LDNIL R3 - 0x20080403, // 0037 NE R2 R2 R3 - 0x780A0049, // 0038 JMPF R2 #0083 - 0x8C080101, // 0039 GETMET R2 R0 K1 - 0x7C080200, // 003A CALL R2 1 - 0x88080502, // 003B GETMBR R2 R2 K2 - 0xB80E0600, // 003C GETNGBL R3 K3 - 0x880C0704, // 003D GETMBR R3 R3 K4 - 0x880C0713, // 003E GETMBR R3 R3 K19 - 0x1C080403, // 003F EQ R2 R2 R3 - 0x780A0041, // 0040 JMPF R2 #0083 - 0x8C080114, // 0041 GETMET R2 R0 K20 - 0x7C080200, // 0042 CALL R2 1 - 0x8C080100, // 0043 GETMET R2 R0 K0 - 0x7C080200, // 0044 CALL R2 1 - 0x880C0115, // 0045 GETMBR R3 R0 K21 - 0x8C0C0707, // 0046 GETMET R3 R3 K7 - 0x5C140200, // 0047 MOVE R5 R1 - 0x7C0C0400, // 0048 CALL R3 2 - 0x780E0015, // 0049 JMPF R3 #0060 - 0x880C0115, // 004A GETMBR R3 R0 K21 - 0x940C0601, // 004B GETIDX R3 R3 R1 - 0x60100004, // 004C GETGBL R4 G4 - 0x5C140600, // 004D MOVE R5 R3 - 0x7C100200, // 004E CALL R4 1 - 0x20100916, // 004F NE R4 R4 K22 - 0x78120008, // 0050 JMPF R4 #005A - 0x60100005, // 0051 GETGBL R4 G5 - 0x5C140600, // 0052 MOVE R5 R3 - 0x7C100200, // 0053 CALL R4 1 - 0x8C140117, // 0054 GETMET R5 R0 K23 - 0x5C1C0800, // 0055 MOVE R7 R4 - 0x5C200400, // 0056 MOVE R8 R2 - 0x5C240600, // 0057 MOVE R9 R3 - 0x7C140800, // 0058 CALL R5 4 - 0x70020005, // 0059 JMP #0060 - 0x8C100110, // 005A GETMET R4 R0 K16 - 0x60180018, // 005B GETGBL R6 G24 - 0x581C0018, // 005C LDCONST R7 K24 - 0x5C200200, // 005D MOVE R8 R1 - 0x7C180400, // 005E CALL R6 2 - 0x7C100400, // 005F CALL R4 2 - 0x8C0C0119, // 0060 GETMET R3 R0 K25 - 0x7C0C0200, // 0061 CALL R3 1 - 0x8C0C011A, // 0062 GETMET R3 R0 K26 - 0x5814001B, // 0063 LDCONST R5 K27 - 0x7C0C0400, // 0064 CALL R3 2 - 0x8C10010C, // 0065 GETMET R4 R0 K12 - 0x7C100200, // 0066 CALL R4 1 - 0xA4163800, // 0067 IMPORT R5 K28 - 0x58180009, // 0068 LDCONST R6 K9 - 0x8C1C0B07, // 0069 GETMET R7 R5 K7 - 0xB8263A00, // 006A GETNGBL R9 K29 - 0x5C280200, // 006B MOVE R10 R1 - 0x7C1C0600, // 006C CALL R7 3 - 0x781E0005, // 006D JMPF R7 #0074 - 0x601C0018, // 006E GETGBL R7 G24 - 0x5820001E, // 006F LDCONST R8 K30 - 0x5C240200, // 0070 MOVE R9 R1 - 0x7C1C0400, // 0071 CALL R7 2 - 0x5C180E00, // 0072 MOVE R6 R7 - 0x70020004, // 0073 JMP #0079 - 0x601C0018, // 0074 GETGBL R7 G24 - 0x5820001F, // 0075 LDCONST R8 K31 - 0x5C240200, // 0076 MOVE R9 R1 - 0x7C1C0400, // 0077 CALL R7 2 - 0x5C180E00, // 0078 MOVE R6 R7 - 0x8C1C010D, // 0079 GETMET R7 R0 K13 - 0x60240018, // 007A GETGBL R9 G24 - 0x58280020, // 007B LDCONST R10 K32 - 0x5C2C0C00, // 007C MOVE R11 R6 - 0x5C300400, // 007D MOVE R12 R2 - 0x5C340600, // 007E MOVE R13 R3 - 0x5C380800, // 007F MOVE R14 R4 - 0x7C240A00, // 0080 CALL R9 5 - 0x7C1C0400, // 0081 CALL R7 2 - 0x70020007, // 0082 JMP #008B - 0x8C080110, // 0083 GETMET R2 R0 K16 - 0x60100018, // 0084 GETGBL R4 G24 - 0x58140021, // 0085 LDCONST R5 K33 - 0x5C180200, // 0086 MOVE R6 R1 - 0x7C100400, // 0087 CALL R4 2 - 0x7C080400, // 0088 CALL R2 2 - 0x8C080112, // 0089 GETMET R2 R0 K18 - 0x7C080200, // 008A CALL R2 1 - 0x80000000, // 008B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[29]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(sequence), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(sequence_names), - /* K6 */ be_nested_str_weak(symbol_table), - /* K7 */ be_nested_str_weak(1), - /* K8 */ be_nested_str_weak(current), - /* K9 */ be_nested_str_weak(type), - /* K10 */ be_nested_str_weak(animation_dsl), - /* K11 */ be_nested_str_weak(Token), - /* K12 */ be_nested_str_weak(KEYWORD), - /* K13 */ be_nested_str_weak(value), - /* K14 */ be_nested_str_weak(repeat), - /* K15 */ be_nested_str_weak(forever), - /* K16 */ be_nested_str_weak(_X2D1), - /* K17 */ be_nested_str_weak(expect_number), - /* K18 */ be_nested_str_weak(expect_keyword), - /* K19 */ be_nested_str_weak(times), - /* K20 */ be_nested_str_weak(NUMBER), - /* K21 */ be_nested_str_weak(expect_left_brace), - /* K22 */ be_nested_str_weak(add), - /* K23 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), - /* K24 */ be_nested_str_weak(at_end), - /* K25 */ be_nested_str_weak(check_right_brace), - /* K26 */ be_nested_str_weak(process_sequence_statement), - /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X29), - /* K28 */ be_nested_str_weak(expect_right_brace), - }), - be_str_weak(process_sequence), - &be_const_str_solidified, - ( &(const binstruction[129]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x88080105, // 000C GETMBR R2 R0 K5 - 0x500C0200, // 000D LDBOOL R3 1 0 - 0x98080203, // 000E SETIDX R2 R1 R3 - 0x88080106, // 000F GETMBR R2 R0 K6 - 0x98080303, // 0010 SETIDX R2 R1 K3 - 0x50080000, // 0011 LDBOOL R2 0 0 - 0x580C0007, // 0012 LDCONST R3 K7 - 0x8C100108, // 0013 GETMET R4 R0 K8 - 0x7C100200, // 0014 CALL R4 1 - 0x4C140000, // 0015 LDNIL R5 - 0x20140805, // 0016 NE R5 R4 R5 - 0x7816002F, // 0017 JMPF R5 #0048 - 0x88140909, // 0018 GETMBR R5 R4 K9 - 0xB81A1400, // 0019 GETNGBL R6 K10 - 0x88180D0B, // 001A GETMBR R6 R6 K11 - 0x88180D0C, // 001B GETMBR R6 R6 K12 - 0x1C140A06, // 001C EQ R5 R5 R6 - 0x78160029, // 001D JMPF R5 #0048 - 0x8814090D, // 001E GETMBR R5 R4 K13 - 0x1C140B0E, // 001F EQ R5 R5 K14 - 0x7816001E, // 0020 JMPF R5 #0040 - 0x50080200, // 0021 LDBOOL R2 1 0 - 0x8C140100, // 0022 GETMET R5 R0 K0 - 0x7C140200, // 0023 CALL R5 1 - 0x8C140108, // 0024 GETMET R5 R0 K8 - 0x7C140200, // 0025 CALL R5 1 - 0x4C180000, // 0026 LDNIL R6 - 0x20180A06, // 0027 NE R6 R5 R6 - 0x781A000C, // 0028 JMPF R6 #0036 - 0x88180B09, // 0029 GETMBR R6 R5 K9 - 0xB81E1400, // 002A GETNGBL R7 K10 - 0x881C0F0B, // 002B GETMBR R7 R7 K11 - 0x881C0F0C, // 002C GETMBR R7 R7 K12 - 0x1C180C07, // 002D EQ R6 R6 R7 - 0x781A0006, // 002E JMPF R6 #0036 - 0x88180B0D, // 002F GETMBR R6 R5 K13 - 0x1C180D0F, // 0030 EQ R6 R6 K15 - 0x781A0003, // 0031 JMPF R6 #0036 - 0x8C180100, // 0032 GETMET R6 R0 K0 - 0x7C180200, // 0033 CALL R6 1 - 0x580C0010, // 0034 LDCONST R3 K16 - 0x70020008, // 0035 JMP #003F - 0x8C180111, // 0036 GETMET R6 R0 K17 - 0x7C180200, // 0037 CALL R6 1 - 0x8C1C0112, // 0038 GETMET R7 R0 K18 - 0x58240013, // 0039 LDCONST R9 K19 - 0x7C1C0400, // 003A CALL R7 2 - 0x601C0008, // 003B GETGBL R7 G8 - 0x5C200C00, // 003C MOVE R8 R6 - 0x7C1C0200, // 003D CALL R7 1 - 0x5C0C0E00, // 003E MOVE R3 R7 - 0x70020006, // 003F JMP #0047 - 0x8814090D, // 0040 GETMBR R5 R4 K13 - 0x1C140B0F, // 0041 EQ R5 R5 K15 - 0x78160003, // 0042 JMPF R5 #0047 - 0x50080200, // 0043 LDBOOL R2 1 0 - 0x8C140100, // 0044 GETMET R5 R0 K0 - 0x7C140200, // 0045 CALL R5 1 - 0x580C0010, // 0046 LDCONST R3 K16 - 0x70020012, // 0047 JMP #005B - 0x4C140000, // 0048 LDNIL R5 - 0x20140805, // 0049 NE R5 R4 R5 - 0x7816000F, // 004A JMPF R5 #005B - 0x88140909, // 004B GETMBR R5 R4 K9 - 0xB81A1400, // 004C GETNGBL R6 K10 - 0x88180D0B, // 004D GETMBR R6 R6 K11 - 0x88180D14, // 004E GETMBR R6 R6 K20 - 0x1C140A06, // 004F EQ R5 R5 R6 - 0x78160009, // 0050 JMPF R5 #005B - 0x50080200, // 0051 LDBOOL R2 1 0 - 0x8C140111, // 0052 GETMET R5 R0 K17 - 0x7C140200, // 0053 CALL R5 1 - 0x8C180112, // 0054 GETMET R6 R0 K18 - 0x58200013, // 0055 LDCONST R8 K19 - 0x7C180400, // 0056 CALL R6 2 - 0x60180008, // 0057 GETGBL R6 G8 - 0x5C1C0A00, // 0058 MOVE R7 R5 - 0x7C180200, // 0059 CALL R6 1 - 0x5C0C0C00, // 005A MOVE R3 R6 - 0x8C140115, // 005B GETMET R5 R0 K21 - 0x7C140200, // 005C CALL R5 1 - 0x780A0010, // 005D JMPF R2 #006F - 0x8C140116, // 005E GETMET R5 R0 K22 - 0x601C0018, // 005F GETGBL R7 G24 - 0x58200017, // 0060 LDCONST R8 K23 - 0x5C240200, // 0061 MOVE R9 R1 - 0x5C280600, // 0062 MOVE R10 R3 - 0x7C1C0600, // 0063 CALL R7 3 - 0x7C140400, // 0064 CALL R5 2 - 0x8C140118, // 0065 GETMET R5 R0 K24 - 0x7C140200, // 0066 CALL R5 1 - 0x74160005, // 0067 JMPT R5 #006E - 0x8C140119, // 0068 GETMET R5 R0 K25 - 0x7C140200, // 0069 CALL R5 1 - 0x74160002, // 006A JMPT R5 #006E - 0x8C14011A, // 006B GETMET R5 R0 K26 - 0x7C140200, // 006C CALL R5 1 - 0x7001FFF6, // 006D JMP #0065 - 0x7002000E, // 006E JMP #007E - 0x8C140116, // 006F GETMET R5 R0 K22 - 0x601C0018, // 0070 GETGBL R7 G24 - 0x5820001B, // 0071 LDCONST R8 K27 - 0x5C240200, // 0072 MOVE R9 R1 - 0x7C1C0400, // 0073 CALL R7 2 - 0x7C140400, // 0074 CALL R5 2 - 0x8C140118, // 0075 GETMET R5 R0 K24 - 0x7C140200, // 0076 CALL R5 1 - 0x74160005, // 0077 JMPT R5 #007E - 0x8C140119, // 0078 GETMET R5 R0 K25 - 0x7C140200, // 0079 CALL R5 1 - 0x74160002, // 007A JMPT R5 #007E - 0x8C14011A, // 007B GETMET R5 R0 K26 - 0x7C140200, // 007C CALL R5 1 - 0x7001FFF6, // 007D JMP #0075 - 0x8C14011C, // 007E GETMET R5 R0 K28 - 0x7C140200, // 007F CALL R5 1 - 0x80000000, // 0080 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_event_handler -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[26]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(line), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(_X7B_X7D), - /* K6 */ be_nested_str_weak(type), - /* K7 */ be_nested_str_weak(animation_dsl), - /* K8 */ be_nested_str_weak(Token), - /* K9 */ be_nested_str_weak(LEFT_PAREN), - /* K10 */ be_nested_str_weak(process_event_parameters), - /* K11 */ be_nested_str_weak(expect_colon), - /* K12 */ be_nested_str_weak(event_handler__X25s__X25s), - /* K13 */ be_nested_str_weak(add), - /* K14 */ be_nested_str_weak(def_X20_X25s_X28event_data_X29), - /* K15 */ be_nested_str_weak(KEYWORD), - /* K16 */ be_nested_str_weak(value), - /* K17 */ be_nested_str_weak(interrupt), - /* K18 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_current_X28_X29), - /* K19 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_animation_X28_X22_X25s_X22_X29), - /* K20 */ be_nested_str_weak(process_value), - /* K21 */ be_nested_str_weak(animation), - /* K22 */ be_nested_str_weak(_X20_X20var_X20temp_anim_X20_X3D_X20_X25s), - /* K23 */ be_nested_str_weak(_X20_X20engine_X2Eadd_animation_X28temp_anim_X29), - /* K24 */ be_nested_str_weak(end), - /* K25 */ be_nested_str_weak(animation_X2Eregister_event_handler_X28_X22_X25s_X22_X2C_X20_X25s_X2C_X200_X2C_X20nil_X2C_X20_X25s_X29), - }), - be_str_weak(process_event_handler), - &be_const_str_solidified, - ( &(const binstruction[101]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x4C0C0000, // 0006 LDNIL R3 - 0x20080403, // 0007 NE R2 R2 R3 - 0x780A0003, // 0008 JMPF R2 #000D - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x88080503, // 000B GETMBR R2 R2 K3 - 0x70020000, // 000C JMP #000E - 0x58080004, // 000D LDCONST R2 K4 - 0x580C0005, // 000E LDCONST R3 K5 - 0x8C100102, // 000F GETMET R4 R0 K2 - 0x7C100200, // 0010 CALL R4 1 - 0x4C140000, // 0011 LDNIL R5 - 0x20100805, // 0012 NE R4 R4 R5 - 0x7812000A, // 0013 JMPF R4 #001F - 0x8C100102, // 0014 GETMET R4 R0 K2 - 0x7C100200, // 0015 CALL R4 1 - 0x88100906, // 0016 GETMBR R4 R4 K6 - 0xB8160E00, // 0017 GETNGBL R5 K7 - 0x88140B08, // 0018 GETMBR R5 R5 K8 - 0x88140B09, // 0019 GETMBR R5 R5 K9 - 0x1C100805, // 001A EQ R4 R4 R5 - 0x78120002, // 001B JMPF R4 #001F - 0x8C10010A, // 001C GETMET R4 R0 K10 - 0x7C100200, // 001D CALL R4 1 - 0x5C0C0800, // 001E MOVE R3 R4 - 0x8C10010B, // 001F GETMET R4 R0 K11 - 0x7C100200, // 0020 CALL R4 1 - 0x60100018, // 0021 GETGBL R4 G24 - 0x5814000C, // 0022 LDCONST R5 K12 - 0x5C180200, // 0023 MOVE R6 R1 - 0x5C1C0400, // 0024 MOVE R7 R2 - 0x7C100600, // 0025 CALL R4 3 - 0x8C14010D, // 0026 GETMET R5 R0 K13 - 0x601C0018, // 0027 GETGBL R7 G24 - 0x5820000E, // 0028 LDCONST R8 K14 - 0x5C240800, // 0029 MOVE R9 R4 - 0x7C1C0400, // 002A CALL R7 2 - 0x7C140400, // 002B CALL R5 2 - 0x8C140102, // 002C GETMET R5 R0 K2 - 0x7C140200, // 002D CALL R5 1 - 0x4C180000, // 002E LDNIL R6 - 0x20180A06, // 002F NE R6 R5 R6 - 0x781A0027, // 0030 JMPF R6 #0059 - 0x88180B06, // 0031 GETMBR R6 R5 K6 - 0xB81E0E00, // 0032 GETNGBL R7 K7 - 0x881C0F08, // 0033 GETMBR R7 R7 K8 - 0x881C0F0F, // 0034 GETMBR R7 R7 K15 - 0x1C180C07, // 0035 EQ R6 R6 R7 - 0x781A0013, // 0036 JMPF R6 #004B - 0x88180B10, // 0037 GETMBR R6 R5 K16 - 0x1C180D11, // 0038 EQ R6 R6 K17 - 0x781A0010, // 0039 JMPF R6 #004B - 0x8C180100, // 003A GETMET R6 R0 K0 - 0x7C180200, // 003B CALL R6 1 - 0x8C180101, // 003C GETMET R6 R0 K1 - 0x7C180200, // 003D CALL R6 1 - 0x1C1C0D02, // 003E EQ R7 R6 K2 - 0x781E0003, // 003F JMPF R7 #0044 - 0x8C1C010D, // 0040 GETMET R7 R0 K13 - 0x58240012, // 0041 LDCONST R9 K18 - 0x7C1C0400, // 0042 CALL R7 2 - 0x70020005, // 0043 JMP #004A - 0x8C1C010D, // 0044 GETMET R7 R0 K13 - 0x60240018, // 0045 GETGBL R9 G24 - 0x58280013, // 0046 LDCONST R10 K19 - 0x5C2C0C00, // 0047 MOVE R11 R6 - 0x7C240400, // 0048 CALL R9 2 - 0x7C1C0400, // 0049 CALL R7 2 + 0x78120003, // 0030 JMPF R4 #0035 + 0x50100200, // 0031 LDBOOL R4 1 0 + 0xA8040001, // 0032 EXBLK 1 1 + 0x80040800, // 0033 RET 1 R4 + 0x70020009, // 0034 JMP #003F + 0x8C100105, // 0035 GETMET R4 R0 K5 + 0x60180018, // 0036 GETGBL R6 G24 + 0x581C0006, // 0037 LDCONST R7 K6 + 0x5C200200, // 0038 MOVE R8 R1 + 0x5C240400, // 0039 MOVE R9 R2 + 0x7C180600, // 003A CALL R6 3 + 0x7C100400, // 003B CALL R4 2 + 0x50100000, // 003C LDBOOL R4 0 0 + 0xA8040001, // 003D EXBLK 1 1 + 0x80040800, // 003E RET 1 R4 + 0x8C0C0105, // 003F GETMET R3 R0 K5 + 0x60140018, // 0040 GETGBL R5 G24 + 0x58180007, // 0041 LDCONST R6 K7 + 0x5C1C0200, // 0042 MOVE R7 R1 + 0x5C200400, // 0043 MOVE R8 R2 + 0x7C140600, // 0044 CALL R5 3 + 0x7C0C0400, // 0045 CALL R3 2 + 0x500C0000, // 0046 LDBOOL R3 0 0 + 0xA8040001, // 0047 EXBLK 1 1 + 0x80040600, // 0048 RET 1 R3 + 0xA8040001, // 0049 EXBLK 1 1 0x7002000D, // 004A JMP #0059 - 0x8C180114, // 004B GETMET R6 R0 K20 - 0x58200015, // 004C LDCONST R8 K21 - 0x7C180400, // 004D CALL R6 2 - 0x8C1C010D, // 004E GETMET R7 R0 K13 - 0x60240018, // 004F GETGBL R9 G24 - 0x58280016, // 0050 LDCONST R10 K22 - 0x5C2C0C00, // 0051 MOVE R11 R6 - 0x7C240400, // 0052 CALL R9 2 - 0x7C1C0400, // 0053 CALL R7 2 - 0x8C1C010D, // 0054 GETMET R7 R0 K13 - 0x60240018, // 0055 GETGBL R9 G24 - 0x58280017, // 0056 LDCONST R10 K23 - 0x7C240200, // 0057 CALL R9 1 - 0x7C1C0400, // 0058 CALL R7 2 - 0x8C18010D, // 0059 GETMET R6 R0 K13 - 0x58200018, // 005A LDCONST R8 K24 - 0x7C180400, // 005B CALL R6 2 - 0x8C18010D, // 005C GETMET R6 R0 K13 - 0x60200018, // 005D GETGBL R8 G24 - 0x58240019, // 005E LDCONST R9 K25 - 0x5C280200, // 005F MOVE R10 R1 - 0x5C2C0800, // 0060 MOVE R11 R4 - 0x5C300600, // 0061 MOVE R12 R3 - 0x7C200800, // 0062 CALL R8 4 - 0x7C180400, // 0063 CALL R6 2 - 0x80000000, // 0064 RET 0 + 0xAC0C0002, // 004B CATCH R3 0 2 + 0x7002000A, // 004C JMP #0058 + 0x8C140105, // 004D GETMET R5 R0 K5 + 0x601C0018, // 004E GETGBL R7 G24 + 0x58200008, // 004F LDCONST R8 K8 + 0x5C240200, // 0050 MOVE R9 R1 + 0x5C280400, // 0051 MOVE R10 R2 + 0x5C2C0800, // 0052 MOVE R11 R4 + 0x7C1C0800, // 0053 CALL R7 4 + 0x7C140400, // 0054 CALL R5 2 + 0x50140000, // 0055 LDBOOL R5 0 0 + 0x80040A00, // 0056 RET 1 R5 + 0x70020000, // 0057 JMP #0059 + 0xB0080000, // 0058 RAISE 2 R0 R0 + 0x80000000, // 0059 RET 0 }) ) ); @@ -11013,859 +12499,82 @@ be_local_closure(class_SimpleDSLTranspiler_peek, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: process_wait_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(process_time_value), - /* K2 */ be_nested_str_weak(collect_inline_comment), - /* K3 */ be_nested_str_weak(add), - /* K4 */ be_nested_str_weak(_X25s_X2Epush_wait_step_X28_X25s_X29_X25s), - /* K5 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_wait_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0103, // 0006 GETMET R3 R0 K3 - 0x60140018, // 0007 GETGBL R5 G24 - 0x58180004, // 0008 LDCONST R6 K4 - 0x8C1C0105, // 0009 GETMET R7 R0 K5 - 0x7C1C0200, // 000A CALL R7 1 - 0x5C200200, // 000B MOVE R8 R1 - 0x5C240400, // 000C MOVE R9 R2 - 0x7C140800, // 000D CALL R5 4 - 0x7C0C0400, // 000E CALL R3 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_statement, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(NEWLINE), - /* K6 */ be_nested_str_weak(EOF), - /* K7 */ be_nested_str_weak(next), - }), - be_str_weak(skip_statement), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060011, // 0002 JMPT R1 #0015 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x88080302, // 0005 GETMBR R2 R1 K2 - 0xB80E0600, // 0006 GETNGBL R3 K3 - 0x880C0704, // 0007 GETMBR R3 R3 K4 - 0x880C0705, // 0008 GETMBR R3 R3 K5 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0005, // 000A JMPT R2 #0011 - 0x88080302, // 000B GETMBR R2 R1 K2 - 0xB80E0600, // 000C GETNGBL R3 K3 - 0x880C0704, // 000D GETMBR R3 R3 K4 - 0x880C0706, // 000E GETMBR R3 R3 K6 - 0x1C080403, // 000F EQ R2 R2 R3 - 0x780A0000, // 0010 JMPF R2 #0012 - 0x70020002, // 0011 JMP #0015 - 0x8C080107, // 0012 GETMET R2 R0 K7 - 0x7C080200, // 0013 CALL R2 1 - 0x7001FFEA, // 0014 JMP #0000 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_error_report -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(has_errors), - /* K1 */ be_nested_str_weak(No_X20compilation_X20errors), - /* K2 */ be_nested_str_weak(Compilation_X20errors_X3A_X0A), - /* K3 */ be_nested_str_weak(errors), - /* K4 */ be_nested_str_weak(_X20_X20), - /* K5 */ be_nested_str_weak(_X0A), - /* K6 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(get_error_report), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060000, // 0002 JMPT R1 #0004 - 0x80060200, // 0003 RET 1 K1 - 0x58040002, // 0004 LDCONST R1 K2 - 0x60080010, // 0005 GETGBL R2 G16 - 0x880C0103, // 0006 GETMBR R3 R0 K3 - 0x7C080200, // 0007 CALL R2 1 - 0xA8020005, // 0008 EXBLK 0 #000F - 0x5C0C0400, // 0009 MOVE R3 R2 - 0x7C0C0000, // 000A CALL R3 0 - 0x00120803, // 000B ADD R4 K4 R3 - 0x00100905, // 000C ADD R4 R4 K5 - 0x00040204, // 000D ADD R1 R1 R4 - 0x7001FFF9, // 000E JMP #0009 - 0x58080006, // 000F LDCONST R2 K6 - 0xAC080200, // 0010 CATCH R2 1 0 - 0xB0080000, // 0011 RAISE 2 R0 R0 - 0x80040200, // 0012 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_assignment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(process_sequence_assignment_generic), - /* K1 */ be_nested_str_weak(steps), - }), - be_str_weak(process_sequence_assignment), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x58140001, // 0002 LDCONST R5 K1 - 0x7C080600, // 0003 CALL R2 3 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: generate_engine_start -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_engine_start, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(run_statements), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(has_template_calls), - /* K3 */ be_nested_str_weak(name), - /* K4 */ be_nested_str_weak(comment), - /* K5 */ be_nested_str_weak(sequence_names), - /* K6 */ be_nested_str_weak(contains), - /* K7 */ be_nested_str_weak(add), - /* K8 */ be_nested_str_weak(engine_X2Eadd_sequence_manager_X28_X25s__X29_X25s), - /* K9 */ be_nested_str_weak(engine_X2Eadd_animation_X28_X25s__X29_X25s), - /* K10 */ be_nested_str_weak(stop_iteration), - /* K11 */ be_nested_str_weak(engine_X2Estart_X28_X29), - }), - be_str_weak(generate_engine_start), - &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x1C040301, // 0003 EQ R1 R1 K1 - 0x78060002, // 0004 JMPF R1 #0008 - 0x88040102, // 0005 GETMBR R1 R0 K2 - 0x74060000, // 0006 JMPT R1 #0008 - 0x80000200, // 0007 RET 0 - 0x60040010, // 0008 GETGBL R1 G16 - 0x88080100, // 0009 GETMBR R2 R0 K0 - 0x7C040200, // 000A CALL R1 1 - 0xA8020018, // 000B EXBLK 0 #0025 - 0x5C080200, // 000C MOVE R2 R1 - 0x7C080000, // 000D CALL R2 0 - 0x940C0503, // 000E GETIDX R3 R2 K3 - 0x94100504, // 000F GETIDX R4 R2 K4 - 0x88140105, // 0010 GETMBR R5 R0 K5 - 0x8C140B06, // 0011 GETMET R5 R5 K6 - 0x5C1C0600, // 0012 MOVE R7 R3 - 0x7C140400, // 0013 CALL R5 2 - 0x78160007, // 0014 JMPF R5 #001D - 0x8C140107, // 0015 GETMET R5 R0 K7 - 0x601C0018, // 0016 GETGBL R7 G24 - 0x58200008, // 0017 LDCONST R8 K8 - 0x5C240600, // 0018 MOVE R9 R3 - 0x5C280800, // 0019 MOVE R10 R4 - 0x7C1C0600, // 001A CALL R7 3 - 0x7C140400, // 001B CALL R5 2 - 0x70020006, // 001C JMP #0024 - 0x8C140107, // 001D GETMET R5 R0 K7 - 0x601C0018, // 001E GETGBL R7 G24 - 0x58200009, // 001F LDCONST R8 K9 - 0x5C240600, // 0020 MOVE R9 R3 - 0x5C280800, // 0021 MOVE R10 R4 - 0x7C1C0600, // 0022 CALL R7 3 - 0x7C140400, // 0023 CALL R5 2 - 0x7001FFE6, // 0024 JMP #000C - 0x5804000A, // 0025 LDCONST R1 K10 - 0xAC040200, // 0026 CATCH R1 1 0 - 0xB0080000, // 0027 RAISE 2 R0 R0 - 0x8C040107, // 0028 GETMET R1 R0 K7 - 0x580C000B, // 0029 LDCONST R3 K11 - 0x7C040400, // 002A CALL R1 2 - 0x80000000, // 002B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_time_to_ms -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(endswith), - /* K2 */ be_nested_str_weak(ms), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(s), - /* K5 */ be_nested_str_weak(m), - /* K6 */ be_nested_str_weak(h), - /* K7 */ be_const_int(3600000), - }), - be_str_weak(convert_time_to_ms), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x780E0008, // 0005 JMPF R3 #000F - 0x600C0009, // 0006 GETGBL R3 G9 - 0x6010000A, // 0007 GETGBL R4 G10 - 0x5415FFFC, // 0008 LDINT R5 -3 - 0x40160605, // 0009 CONNECT R5 K3 R5 - 0x94140205, // 000A GETIDX R5 R1 R5 - 0x7C100200, // 000B CALL R4 1 - 0x7C0C0200, // 000C CALL R3 1 - 0x80040600, // 000D RET 1 R3 - 0x7002002D, // 000E JMP #003D - 0x8C0C0501, // 000F GETMET R3 R2 K1 - 0x5C140200, // 0010 MOVE R5 R1 - 0x58180004, // 0011 LDCONST R6 K4 - 0x7C0C0600, // 0012 CALL R3 3 - 0x780E000A, // 0013 JMPF R3 #001F - 0x600C0009, // 0014 GETGBL R3 G9 - 0x6010000A, // 0015 GETGBL R4 G10 - 0x5415FFFD, // 0016 LDINT R5 -2 - 0x40160605, // 0017 CONNECT R5 K3 R5 - 0x94140205, // 0018 GETIDX R5 R1 R5 - 0x7C100200, // 0019 CALL R4 1 - 0x541603E7, // 001A LDINT R5 1000 - 0x08100805, // 001B MUL R4 R4 R5 - 0x7C0C0200, // 001C CALL R3 1 - 0x80040600, // 001D RET 1 R3 - 0x7002001D, // 001E JMP #003D - 0x8C0C0501, // 001F GETMET R3 R2 K1 - 0x5C140200, // 0020 MOVE R5 R1 - 0x58180005, // 0021 LDCONST R6 K5 - 0x7C0C0600, // 0022 CALL R3 3 - 0x780E000A, // 0023 JMPF R3 #002F - 0x600C0009, // 0024 GETGBL R3 G9 - 0x6010000A, // 0025 GETGBL R4 G10 - 0x5415FFFD, // 0026 LDINT R5 -2 - 0x40160605, // 0027 CONNECT R5 K3 R5 - 0x94140205, // 0028 GETIDX R5 R1 R5 - 0x7C100200, // 0029 CALL R4 1 - 0x5416EA5F, // 002A LDINT R5 60000 - 0x08100805, // 002B MUL R4 R4 R5 - 0x7C0C0200, // 002C CALL R3 1 - 0x80040600, // 002D RET 1 R3 - 0x7002000D, // 002E JMP #003D - 0x8C0C0501, // 002F GETMET R3 R2 K1 - 0x5C140200, // 0030 MOVE R5 R1 - 0x58180006, // 0031 LDCONST R6 K6 - 0x7C0C0600, // 0032 CALL R3 3 - 0x780E0008, // 0033 JMPF R3 #003D - 0x600C0009, // 0034 GETGBL R3 G9 - 0x6010000A, // 0035 GETGBL R4 G10 - 0x5415FFFD, // 0036 LDINT R5 -2 - 0x40160605, // 0037 CONNECT R5 K3 R5 - 0x94140205, // 0038 GETIDX R5 R1 R5 - 0x7C100200, // 0039 CALL R4 1 - 0x08100907, // 003A MUL R4 R4 K7 - 0x7C0C0200, // 003B CALL R3 1 - 0x80040600, // 003C RET 1 R3 - 0x540E03E7, // 003D LDINT R3 1000 - 0x80040600, // 003E RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACE), - }), - be_str_weak(check_right_brace), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0005, // 0004 JMPF R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0000, // 000A JMPT R2 #000C - 0x50080001, // 000B LDBOOL R2 0 1 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x80040400, // 000D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: generate_template_function -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_template_function, /* name */ - be_nested_proto( - 17, /* nstack */ - 5, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[23]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(engine), - /* K2 */ be_nested_str_weak(_X2C_X20_X25s_), - /* K3 */ be_nested_str_weak(stop_iteration), - /* K4 */ be_nested_str_weak(add), - /* K5 */ be_nested_str_weak(_X23_X20Template_X20function_X3A_X20_X25s), - /* K6 */ be_nested_str_weak(def_X20_X25s_template_X28_X25s_X29), - /* K7 */ be_nested_str_weak(animation_dsl), - /* K8 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K9 */ be_nested_str_weak(symbol_table), - /* K10 */ be_nested_str_weak(strip_initialized), - /* K11 */ be_nested_str_weak(parameter), - /* K12 */ be_nested_str_weak(transpile_template_body), - /* K13 */ be_nested_str_weak(split), - /* K14 */ be_nested_str_weak(_X0A), - /* K15 */ be_const_int(0), - /* K16 */ be_nested_str_weak(_X20_X20_X25s), - /* K17 */ be_nested_str_weak(errors), - /* K18 */ be_nested_str_weak(error), - /* K19 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), - /* K20 */ be_nested_str_weak(end), - /* K21 */ be_nested_str_weak(), - /* K22 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X27_X25s_X27_X2C_X20_X25s_template_X29), - }), - be_str_weak(generate_template_function), - &be_const_str_solidified, - ( &(const binstruction[116]) { /* code */ - 0xA4160000, // 0000 IMPORT R5 K0 - 0x58180001, // 0001 LDCONST R6 K1 - 0x601C0010, // 0002 GETGBL R7 G16 - 0x5C200400, // 0003 MOVE R8 R2 - 0x7C1C0200, // 0004 CALL R7 1 - 0xA8020007, // 0005 EXBLK 0 #000E - 0x5C200E00, // 0006 MOVE R8 R7 - 0x7C200000, // 0007 CALL R8 0 - 0x60240018, // 0008 GETGBL R9 G24 - 0x58280002, // 0009 LDCONST R10 K2 - 0x5C2C1000, // 000A MOVE R11 R8 - 0x7C240400, // 000B CALL R9 2 - 0x00180C09, // 000C ADD R6 R6 R9 - 0x7001FFF7, // 000D JMP #0006 - 0x581C0003, // 000E LDCONST R7 K3 - 0xAC1C0200, // 000F CATCH R7 1 0 - 0xB0080000, // 0010 RAISE 2 R0 R0 - 0x8C1C0104, // 0011 GETMET R7 R0 K4 - 0x60240018, // 0012 GETGBL R9 G24 - 0x58280005, // 0013 LDCONST R10 K5 - 0x5C2C0200, // 0014 MOVE R11 R1 - 0x7C240400, // 0015 CALL R9 2 - 0x7C1C0400, // 0016 CALL R7 2 - 0x8C1C0104, // 0017 GETMET R7 R0 K4 - 0x60240018, // 0018 GETGBL R9 G24 - 0x58280006, // 0019 LDCONST R10 K6 - 0x5C2C0200, // 001A MOVE R11 R1 - 0x5C300C00, // 001B MOVE R12 R6 - 0x7C240600, // 001C CALL R9 3 - 0x7C1C0400, // 001D CALL R7 2 - 0xB81E0E00, // 001E GETNGBL R7 K7 - 0x8C1C0F08, // 001F GETMET R7 R7 K8 - 0x5C240800, // 0020 MOVE R9 R4 - 0x7C1C0400, // 0021 CALL R7 2 - 0x60200013, // 0022 GETGBL R8 G19 - 0x7C200000, // 0023 CALL R8 0 - 0x901E1208, // 0024 SETMBR R7 K9 R8 - 0x50200200, // 0025 LDBOOL R8 1 0 - 0x901E1408, // 0026 SETMBR R7 K10 R8 - 0x60200010, // 0027 GETGBL R8 G16 - 0x5C240400, // 0028 MOVE R9 R2 - 0x7C200200, // 0029 CALL R8 1 - 0xA8020004, // 002A EXBLK 0 #0030 - 0x5C241000, // 002B MOVE R9 R8 - 0x7C240000, // 002C CALL R9 0 - 0x88280F09, // 002D GETMBR R10 R7 K9 - 0x9828130B, // 002E SETIDX R10 R9 K11 - 0x7001FFFA, // 002F JMP #002B - 0x58200003, // 0030 LDCONST R8 K3 - 0xAC200200, // 0031 CATCH R8 1 0 - 0xB0080000, // 0032 RAISE 2 R0 R0 - 0x8C200F0C, // 0033 GETMET R8 R7 K12 - 0x7C200200, // 0034 CALL R8 1 - 0x4C240000, // 0035 LDNIL R9 - 0x20241009, // 0036 NE R9 R8 R9 - 0x78260019, // 0037 JMPF R9 #0052 - 0x8C240B0D, // 0038 GETMET R9 R5 K13 - 0x5C2C1000, // 0039 MOVE R11 R8 - 0x5830000E, // 003A LDCONST R12 K14 - 0x7C240600, // 003B CALL R9 3 - 0x60280010, // 003C GETGBL R10 G16 - 0x5C2C1200, // 003D MOVE R11 R9 - 0x7C280200, // 003E CALL R10 1 - 0xA802000D, // 003F EXBLK 0 #004E - 0x5C2C1400, // 0040 MOVE R11 R10 - 0x7C2C0000, // 0041 CALL R11 0 - 0x6030000C, // 0042 GETGBL R12 G12 - 0x5C341600, // 0043 MOVE R13 R11 - 0x7C300200, // 0044 CALL R12 1 - 0x2430190F, // 0045 GT R12 R12 K15 - 0x78320005, // 0046 JMPF R12 #004D - 0x8C300104, // 0047 GETMET R12 R0 K4 - 0x60380018, // 0048 GETGBL R14 G24 - 0x583C0010, // 0049 LDCONST R15 K16 - 0x5C401600, // 004A MOVE R16 R11 - 0x7C380400, // 004B CALL R14 2 - 0x7C300400, // 004C CALL R12 2 - 0x7001FFF1, // 004D JMP #0040 - 0x58280003, // 004E LDCONST R10 K3 - 0xAC280200, // 004F CATCH R10 1 0 - 0xB0080000, // 0050 RAISE 2 R0 R0 - 0x70020010, // 0051 JMP #0063 - 0x60240010, // 0052 GETGBL R9 G16 - 0x88280F11, // 0053 GETMBR R10 R7 K17 - 0x7C240200, // 0054 CALL R9 1 - 0xA8020009, // 0055 EXBLK 0 #0060 - 0x5C281200, // 0056 MOVE R10 R9 - 0x7C280000, // 0057 CALL R10 0 - 0x8C2C0112, // 0058 GETMET R11 R0 K18 - 0x60340018, // 0059 GETGBL R13 G24 - 0x58380013, // 005A LDCONST R14 K19 - 0x5C3C0200, // 005B MOVE R15 R1 - 0x5C401400, // 005C MOVE R16 R10 - 0x7C340600, // 005D CALL R13 3 - 0x7C2C0400, // 005E CALL R11 2 - 0x7001FFF5, // 005F JMP #0056 - 0x58240003, // 0060 LDCONST R9 K3 - 0xAC240200, // 0061 CATCH R9 1 0 - 0xB0080000, // 0062 RAISE 2 R0 R0 - 0x8C240104, // 0063 GETMET R9 R0 K4 - 0x582C0014, // 0064 LDCONST R11 K20 - 0x7C240400, // 0065 CALL R9 2 - 0x8C240104, // 0066 GETMET R9 R0 K4 - 0x582C0015, // 0067 LDCONST R11 K21 - 0x7C240400, // 0068 CALL R9 2 - 0x8C240104, // 0069 GETMET R9 R0 K4 - 0x602C0018, // 006A GETGBL R11 G24 - 0x58300016, // 006B LDCONST R12 K22 - 0x5C340200, // 006C MOVE R13 R1 - 0x5C380200, // 006D MOVE R14 R1 - 0x7C2C0600, // 006E CALL R11 3 - 0x7C240400, // 006F CALL R9 2 - 0x8C240104, // 0070 GETMET R9 R0 K4 - 0x582C0015, // 0071 LDCONST R11 K21 - 0x7C240400, // 0072 CALL R9 2 - 0x80000000, // 0073 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: transpile -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transpile, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(add), - /* K1 */ be_nested_str_weak(import_X20animation), - /* K2 */ be_nested_str_weak(), - /* K3 */ be_nested_str_weak(at_end), - /* K4 */ be_nested_str_weak(process_statement), - /* K5 */ be_nested_str_weak(generate_engine_start), - /* K6 */ be_nested_str_weak(errors), - /* K7 */ be_const_int(0), - /* K8 */ be_nested_str_weak(join_output), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Transpilation_X20failed_X3A_X20_X25s), - }), - be_str_weak(transpile), - &be_const_str_solidified, - ( &(const binstruction[41]) { /* code */ - 0xA802001A, // 0000 EXBLK 0 #001C - 0x8C040100, // 0001 GETMET R1 R0 K0 - 0x580C0001, // 0002 LDCONST R3 K1 - 0x7C040400, // 0003 CALL R1 2 - 0x8C040100, // 0004 GETMET R1 R0 K0 - 0x580C0002, // 0005 LDCONST R3 K2 - 0x7C040400, // 0006 CALL R1 2 - 0x8C040103, // 0007 GETMET R1 R0 K3 - 0x7C040200, // 0008 CALL R1 1 - 0x74060002, // 0009 JMPT R1 #000D - 0x8C040104, // 000A GETMET R1 R0 K4 - 0x7C040200, // 000B CALL R1 1 - 0x7001FFF9, // 000C JMP #0007 - 0x8C040105, // 000D GETMET R1 R0 K5 - 0x7C040200, // 000E CALL R1 1 - 0x6004000C, // 000F GETGBL R1 G12 - 0x88080106, // 0010 GETMBR R2 R0 K6 - 0x7C040200, // 0011 CALL R1 1 - 0x1C040307, // 0012 EQ R1 R1 K7 - 0x78060002, // 0013 JMPF R1 #0017 - 0x8C040108, // 0014 GETMET R1 R0 K8 - 0x7C040200, // 0015 CALL R1 1 - 0x70020000, // 0016 JMP #0018 - 0x4C040000, // 0017 LDNIL R1 - 0xA8040001, // 0018 EXBLK 1 1 - 0x80040200, // 0019 RET 1 R1 - 0xA8040001, // 001A EXBLK 1 1 - 0x7002000B, // 001B JMP #0028 - 0xAC040002, // 001C CATCH R1 0 2 - 0x70020008, // 001D JMP #0027 - 0x8C0C0109, // 001E GETMET R3 R0 K9 - 0x60140018, // 001F GETGBL R5 G24 - 0x5818000A, // 0020 LDCONST R6 K10 - 0x5C1C0400, // 0021 MOVE R7 R2 - 0x7C140400, // 0022 CALL R5 2 - 0x7C0C0400, // 0023 CALL R3 2 - 0x4C0C0000, // 0024 LDNIL R3 - 0x80040600, // 0025 RET 1 R3 - 0x70020000, // 0026 JMP #0028 - 0xB0080000, // 0027 RAISE 2 R0 R0 - 0x80000000, // 0028 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_anonymous_function -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_anonymous_function, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_X28def_X20), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(_X29_X28engine_X29), - }), - be_str_weak(is_anonymous_function), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x1C0C0703, // 0005 EQ R3 R3 K3 - 0x780E0005, // 0006 JMPF R3 #000D - 0x8C0C0501, // 0007 GETMET R3 R2 K1 - 0x5C140200, // 0008 MOVE R5 R1 - 0x58180004, // 0009 LDCONST R6 K4 - 0x7C0C0600, // 000A CALL R3 3 - 0x280C0703, // 000B GE R3 R3 K3 - 0x740E0000, // 000C JMPT R3 #000E - 0x500C0001, // 000D LDBOOL R3 0 1 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_left_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(LEFT_PAREN), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X28_X27), - }), - be_str_weak(expect_left_paren), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified class: SimpleDSLTranspiler ********************************************************************/ be_local_class(SimpleDSLTranspiler, 12, NULL, - be_nested_map(115, + be_nested_map(123, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(process_multiplicative_expression_raw, 99), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw_closure) }, - { be_const_key_weak(process_named_arguments_for_variable, -1), be_const_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable_closure) }, - { be_const_key_weak(process_unary_expression, 43), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, - { be_const_key_weak(process_function_arguments, 93), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, - { be_const_key_weak(tokens, -1), be_const_var(0) }, - { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, - { be_const_key_weak(expect_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, - { be_const_key_weak(is_anonymous_function, -1), be_const_closure(class_SimpleDSLTranspiler_is_anonymous_function_closure) }, - { be_const_key_weak(process_primary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, - { be_const_key_weak(process_time_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, - { be_const_key_weak(process_function_arguments_for_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expression_closure) }, - { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, - { be_const_key_weak(indent_level, -1), be_const_var(9) }, - { be_const_key_weak(errors, 50), be_const_var(3) }, - { be_const_key_weak(error, -1), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, - { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, - { be_const_key_weak(transpile, 26), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, - { be_const_key_weak(generate_template_function, -1), be_const_closure(class_SimpleDSLTranspiler_generate_template_function_closure) }, - { be_const_key_weak(transform_expression_for_closure, -1), be_const_closure(class_SimpleDSLTranspiler_transform_expression_for_closure_closure) }, - { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, - { be_const_key_weak(process_multiplicative_expression, 18), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, - { be_const_key_weak(convert_time_to_ms, -1), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, - { be_const_key_weak(process_primary_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_raw_closure) }, - { be_const_key_weak(_process_named_arguments_for_color_provider, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, - { be_const_key_weak(_process_named_arguments_for_animation, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation_closure) }, - { be_const_key_weak(has_template_calls, 42), be_const_var(11) }, - { be_const_key_weak(generate_engine_start, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_start_closure) }, - { be_const_key_weak(first_statement, -1), be_const_var(5) }, - { be_const_key_weak(_validate_animation_factory_creates_animation, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation_closure) }, - { be_const_key_weak(_create_instance_for_validation, 57), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, - { be_const_key_weak(process_event_parameters, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, - { be_const_key_weak(expect_left_brace, 108), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, - { be_const_key_weak(process_sequence_assignment_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, - { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, - { be_const_key_weak(process_set, -1), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, - { be_const_key_weak(expect_number, -1), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, - { be_const_key_weak(is_computed_expression_string, -1), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_string_closure) }, - { be_const_key_weak(check_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, - { be_const_key_weak(output, 7), be_const_var(2) }, - { be_const_key_weak(_validate_object_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, - { be_const_key_weak(expect_keyword, 104), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, - { be_const_key_weak(skip_statement, -1), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, - { be_const_key_weak(process_wait_statement_fluent, 69), be_const_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent_closure) }, - { be_const_key_weak(peek, -1), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, - { be_const_key_weak(at_end, -1), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, - { be_const_key_weak(add, 39), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, - { be_const_key_weak(expect_left_bracket, 51), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, - { be_const_key_weak(process_percentage_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, - { be_const_key_weak(transform_operand_for_closure, -1), be_const_closure(class_SimpleDSLTranspiler_transform_operand_for_closure_closure) }, - { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, - { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, - { be_const_key_weak(process_property_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, - { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, - { be_const_key_weak(sequence_names, -1), be_const_var(7) }, - { be_const_key_weak(is_identifier_char, -1), be_const_closure(class_SimpleDSLTranspiler_is_identifier_char_closure) }, - { be_const_key_weak(_generate_anonymous_function_call, 73), be_const_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call_closure) }, - { be_const_key_weak(_process_named_arguments_generic, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_generic_closure) }, - { be_const_key_weak(process_array_literal, -1), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, - { be_const_key_weak(_validate_color_provider_factory_exists, 41), be_const_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists_closure) }, - { be_const_key_weak(process_animation, 31), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, - { be_const_key_weak(init, 66), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, - { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, - { be_const_key_weak(next, 105), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, - { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, - { be_const_key_weak(process_import, 89), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, - { be_const_key_weak(expect_right_brace, 100), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, - { be_const_key_weak(template_definitions, -1), be_const_var(10) }, - { be_const_key_weak(strip_initialized, -1), be_const_var(6) }, - { be_const_key_weak(process_additive_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, - { be_const_key_weak(_process_user_function_call, 113), be_const_closure(class_SimpleDSLTranspiler__process_user_function_call_closure) }, - { be_const_key_weak(is_computed_expression, 83), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_closure) }, - { be_const_key_weak(process_sequence_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, - { be_const_key_weak(transpile_template_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, - { be_const_key_weak(get_indent, 94), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, - { be_const_key_weak(_validate_factory_function, 77), be_const_closure(class_SimpleDSLTranspiler__validate_factory_function_closure) }, - { be_const_key_weak(process_unary_expression_raw, 61), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_raw_closure) }, - { be_const_key_weak(expect_assign, -1), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, - { be_const_key_weak(is_math_method, 84), be_const_closure(class_SimpleDSLTranspiler_is_math_method_closure) }, - { be_const_key_weak(generate_default_strip_initialization, -1), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, - { be_const_key_weak(process_additive_expression_raw, 64), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_raw_closure) }, - { be_const_key_weak(convert_color, 88), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, - { be_const_key_weak(get_named_color_value, 78), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, - { be_const_key_weak(pos, -1), be_const_var(1) }, - { be_const_key_weak(process_function_call, 102), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, - { be_const_key_weak(can_use_as_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, - { be_const_key_weak(expect_comma, -1), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, - { be_const_key_weak(convert_to_vrgb, -1), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, - { be_const_key_weak(process_expression_argument, -1), be_const_closure(class_SimpleDSLTranspiler_process_expression_argument_closure) }, - { be_const_key_weak(_is_simple_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__is_simple_function_call_closure) }, + { be_const_key_weak(peek, 9), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, + { be_const_key_weak(expect_keyword, -1), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, { be_const_key_weak(symbol_table, -1), be_const_var(8) }, - { be_const_key_weak(expect_colon, 72), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, - { be_const_key_weak(skip_function_arguments, 70), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, - { be_const_key_weak(skip_whitespace_including_newlines, 25), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, - { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, - { be_const_key_weak(validate_user_name, -1), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, - { be_const_key_weak(run_statements, -1), be_const_var(4) }, - { be_const_key_weak(process_sequence_assignment_generic, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic_closure) }, - { be_const_key_weak(process_template, 56), be_const_closure(class_SimpleDSLTranspiler_process_template_closure) }, - { be_const_key_weak(expect_right_bracket, 54), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, - { be_const_key_weak(_validate_single_parameter, -1), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, - { be_const_key_weak(process_play_statement_fluent, 103), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, - { be_const_key_weak(skip_whitespace, 49), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, - { be_const_key_weak(process_statement, 4), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, - { be_const_key_weak(get_errors, -1), be_const_closure(class_SimpleDSLTranspiler_get_errors_closure) }, - { be_const_key_weak(create_computation_closure, -1), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_closure) }, - { be_const_key_weak(_validate_animation_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, - { be_const_key_weak(process_sequence_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_closure) }, - { be_const_key_weak(process_color, 16), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, - { be_const_key_weak(has_errors, 112), be_const_closure(class_SimpleDSLTranspiler_has_errors_closure) }, - { be_const_key_weak(process_palette, 21), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, + { be_const_key_weak(create_computation_closure_from_string, -1), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string_closure) }, + { be_const_key_weak(expect_left_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, + { be_const_key_weak(process_import, -1), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, - { be_const_key_weak(get_error_report, 17), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, + { be_const_key_weak(first_statement, 84), be_const_var(5) }, + { be_const_key_weak(process_unary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, + { be_const_key_weak(has_template_calls, 102), be_const_var(11) }, + { be_const_key_weak(_validate_color_provider_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists_closure) }, + { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, + { be_const_key_weak(process_palette, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, + { be_const_key_weak(_process_named_arguments_for_animation, 79), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation_closure) }, + { be_const_key_weak(process_function_arguments_for_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expression_closure) }, + { be_const_key_weak(_validate_value_provider_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_factory_exists_closure) }, + { be_const_key_weak(_generate_anonymous_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call_closure) }, + { be_const_key_weak(process_array_literal, 103), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, + { be_const_key_weak(process_palette_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, + { be_const_key_weak(process_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, + { be_const_key_weak(process_multiplicative_expression_raw, 0), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw_closure) }, + { be_const_key_weak(process_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, + { be_const_key_weak(process_percentage_value, 86), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, + { be_const_key_weak(process_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, + { be_const_key_weak(at_end, 29), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, + { be_const_key_weak(template_definitions, -1), be_const_var(10) }, + { be_const_key_weak(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, + { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, + { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, + { be_const_key_weak(skip_statement, 109), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, + { be_const_key_weak(expect_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, + { be_const_key_weak(expect_colon, 8), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, + { be_const_key_weak(transform_operand_for_closure, 117), be_const_closure(class_SimpleDSLTranspiler_transform_operand_for_closure_closure) }, + { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, + { be_const_key_weak(process_wait_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent_closure) }, + { be_const_key_weak(_process_named_arguments_for_color_provider, 104), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, + { be_const_key_weak(_is_simple_function_call, 23), be_const_closure(class_SimpleDSLTranspiler__is_simple_function_call_closure) }, + { be_const_key_weak(run_statements, -1), be_const_var(4) }, + { be_const_key_weak(get_named_color_value, 115), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, + { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, + { be_const_key_weak(generate_template_function, -1), be_const_closure(class_SimpleDSLTranspiler_generate_template_function_closure) }, + { be_const_key_weak(expect_left_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, + { be_const_key_weak(create_computation_closure, 113), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_closure) }, + { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, + { be_const_key_weak(has_errors, -1), be_const_closure(class_SimpleDSLTranspiler_has_errors_closure) }, + { be_const_key_weak(process_log_call, 13), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, + { be_const_key_weak(process_primary_expression, 58), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, + { be_const_key_weak(process_sequence_statement, 76), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, + { be_const_key_weak(_validate_single_parameter, -1), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, + { be_const_key_weak(can_use_as_identifier, 27), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, + { be_const_key_weak(expect_right_brace, 21), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, + { be_const_key_weak(skip_whitespace, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, + { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, + { be_const_key_weak(errors, 97), be_const_var(3) }, + { be_const_key_weak(process_sequence_assignment_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, + { be_const_key_weak(tokens, -1), be_const_var(0) }, + { be_const_key_weak(transform_expression_for_closure, -1), be_const_closure(class_SimpleDSLTranspiler_transform_expression_for_closure_closure) }, + { be_const_key_weak(process_standalone_log, 108), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, + { be_const_key_weak(process_sequence_assignment, 90), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_closure) }, + { be_const_key_weak(strip_initialized, -1), be_const_var(6) }, + { be_const_key_weak(process_run, 93), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, + { be_const_key_weak(create_simple_function_from_string, 56), be_const_closure(class_SimpleDSLTranspiler_create_simple_function_from_string_closure) }, + { be_const_key_weak(skip_whitespace_including_newlines, 44), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, + { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, + { be_const_key_weak(sequence_names, -1), be_const_var(7) }, + { be_const_key_weak(process_additive_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, + { be_const_key_weak(expect_number, 67), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, + { be_const_key_weak(process_time_value, 51), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, { be_const_key_weak(named_colors, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(37, ( (struct bmapnode*) &(const bmapnode[]) { @@ -11907,8 +12616,60 @@ be_local_class(SimpleDSLTranspiler, { be_const_key_weak(tan, -1), be_nested_str_weak(0xFFD2B48C) }, { be_const_key_weak(maroon, -1), be_nested_str_weak(0xFF800000) }, })) ) } )) }, - { be_const_key_weak(create_computation_closure_from_string, -1), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string_closure) }, - { be_const_key_weak(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, + { be_const_key_weak(_process_user_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__process_user_function_call_closure) }, + { be_const_key_weak(process_event_parameters, 68), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, + { be_const_key_weak(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, + { be_const_key_weak(expect_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, + { be_const_key_weak(output, -1), be_const_var(2) }, + { be_const_key_weak(expect_assign, -1), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, + { be_const_key_weak(process_named_arguments_for_variable, -1), be_const_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable_closure) }, + { be_const_key_weak(convert_color, -1), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, + { be_const_key_weak(generate_engine_start, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_start_closure) }, + { be_const_key_weak(pos, -1), be_const_var(1) }, + { be_const_key_weak(process_property_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, + { be_const_key_weak(process_additive_expression_raw, 81), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_raw_closure) }, + { be_const_key_weak(is_anonymous_function, -1), be_const_closure(class_SimpleDSLTranspiler_is_anonymous_function_closure) }, + { be_const_key_weak(expect_comma, -1), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, + { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, + { be_const_key_weak(indent_level, -1), be_const_var(9) }, + { be_const_key_weak(is_computed_expression_string, -1), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_string_closure) }, + { be_const_key_weak(process_function_call, 3), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, + { be_const_key_weak(process_reset_restart_statement_fluent, 96), be_const_closure(class_SimpleDSLTranspiler_process_reset_restart_statement_fluent_closure) }, + { be_const_key_weak(is_identifier_char, 85), be_const_closure(class_SimpleDSLTranspiler_is_identifier_char_closure) }, + { be_const_key_weak(_validate_animation_factory_exists, 19), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, + { be_const_key_weak(process_expression_argument, -1), be_const_closure(class_SimpleDSLTranspiler_process_expression_argument_closure) }, + { be_const_key_weak(join_output, 98), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, + { be_const_key_weak(expect_identifier, 91), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, + { be_const_key_weak(_process_named_arguments_generic, 101), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_generic_closure) }, + { be_const_key_weak(process_sequence_assignment_generic, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic_closure) }, + { be_const_key_weak(convert_to_vrgb, 30), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(process_primary_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_raw_closure) }, + { be_const_key_weak(process_template, -1), be_const_closure(class_SimpleDSLTranspiler_process_template_closure) }, + { be_const_key_weak(convert_time_to_ms, -1), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, + { be_const_key_weak(get_errors, -1), be_const_closure(class_SimpleDSLTranspiler_get_errors_closure) }, + { be_const_key_weak(error, 71), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, + { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, + { be_const_key_weak(transpile_template_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, + { be_const_key_weak(process_set, 2), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, + { be_const_key_weak(next, 10), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, + { be_const_key_weak(init, 54), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, + { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, + { be_const_key_weak(process_log_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_statement_fluent_closure) }, + { be_const_key_weak(is_computed_expression, -1), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_closure) }, + { be_const_key_weak(validate_user_name, 4), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, + { be_const_key_weak(_validate_factory_function, 122), be_const_closure(class_SimpleDSLTranspiler__validate_factory_function_closure) }, + { be_const_key_weak(transpile, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, + { be_const_key_weak(generate_default_strip_initialization, -1), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, + { be_const_key_weak(_validate_animation_factory_creates_animation, 110), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation_closure) }, + { be_const_key_weak(process_play_statement_fluent, 18), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, + { be_const_key_weak(get_indent, -1), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, + { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, + { be_const_key_weak(is_math_method, -1), be_const_closure(class_SimpleDSLTranspiler_is_math_method_closure) }, + { be_const_key_weak(check_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, + { be_const_key_weak(process_animation, -1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, + { be_const_key_weak(_validate_object_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, + { be_const_key_weak(_validate_value_provider_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_reference_closure) }, + { be_const_key_weak(process_unary_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_raw_closure) }, })), be_str_weak(SimpleDSLTranspiler) ); diff --git a/lib/libesp32/berry_animation/src/tests/animation_opacity_test.be b/lib/libesp32/berry_animation/src/tests/animation_opacity_test.be index 7d2cb1b31..7722cd6fa 100644 --- a/lib/libesp32/berry_animation/src/tests/animation_opacity_test.be +++ b/lib/libesp32/berry_animation/src/tests/animation_opacity_test.be @@ -49,6 +49,7 @@ opacity_engine.start() var opacity_frame = animation.frame_buffer(10) base_anim.start() var render_result = base_anim.render(opacity_frame, opacity_engine.time_ms) +base_anim.post_render(opacity_frame, opacity_engine.time_ms) assert_test(render_result, "Animation with numeric opacity should render successfully") assert_equals(base_anim.opacity, 128, "Numeric opacity should be preserved") @@ -86,6 +87,7 @@ opacity_mask.start() # Test rendering with animation opacity var masked_frame = animation.frame_buffer(10) render_result = masked_anim.render(masked_frame, opacity_engine.time_ms) +masked_anim.post_render(masked_frame, opacity_engine.time_ms) assert_test(render_result, "Animation with animation opacity should render successfully") assert_not_nil(masked_anim.opacity_frame, "Opacity frame buffer should be created") @@ -122,6 +124,7 @@ var base_time = 2000 pulsing_opacity.color = 0xFF808080 # Gray (50% opacity) render_result = rainbow_base.render(test_frame, base_time) +rainbow_base.post_render(test_frame, base_time) assert_test(render_result, "Complex opacity animation should render successfully") # Test 11f: Opacity animation lifecycle management @@ -147,6 +150,7 @@ assert_test(!auto_start_opacity.is_running, "Opacity animation should start stop auto_start_main.start() var auto_frame = animation.frame_buffer(10) render_result = auto_start_main.render(auto_frame, opacity_engine.time_ms) +auto_start_main.post_render(auto_frame, opacity_engine.time_ms) # Opacity animation should now be running assert_test(auto_start_opacity.is_running, "Opacity animation should auto-start when main animation renders") @@ -185,6 +189,8 @@ opacity2.start() var nested_frame = animation.frame_buffer(10) render_result = base_nested.render(nested_frame, opacity_engine.time_ms) +base_nested.post_render(nested_frame, opacity_engine.time_ms) +opacity1.post_render(nested_frame, opacity_engine.time_ms) assert_test(render_result, "Nested animation opacity should render successfully") assert_not_nil(base_nested.opacity_frame, "Base animation should have opacity frame buffer") @@ -211,21 +217,25 @@ param_opacity.start() var param_frame = animation.frame_buffer(10) render_result = param_base.render(param_frame, opacity_engine.time_ms) +param_base.post_render(param_frame, opacity_engine.time_ms) assert_test(render_result, "Animation should render before opacity parameter change") # Change opacity animation color param_opacity.color = 0xFFFFFFFF # White (full opacity) render_result = param_base.render(param_frame, opacity_engine.time_ms + 100) +param_base.post_render(param_frame, opacity_engine.time_ms + 100) assert_test(render_result, "Animation should render after opacity parameter change") # Change opacity animation to numeric value param_base.opacity = 64 # 25% opacity render_result = param_base.render(param_frame, opacity_engine.time_ms + 200) +param_base.post_render(param_frame, opacity_engine.time_ms + 200) assert_test(render_result, "Animation should render after changing from animation to numeric opacity") # Change back to animation opacity param_base.opacity = param_opacity render_result = param_base.render(param_frame, opacity_engine.time_ms + 300) +param_base.post_render(param_frame, opacity_engine.time_ms + 300) assert_test(render_result, "Animation should render after changing from numeric to animation opacity") # Test 11i: Opacity with full transparency and full opacity @@ -241,11 +251,13 @@ edge_base.opacity = 0 edge_base.start() var edge_frame = animation.frame_buffer(10) render_result = edge_base.render(edge_frame, opacity_engine.time_ms) +edge_base.post_render(edge_frame, opacity_engine.time_ms) assert_test(render_result, "Animation with 0 opacity should still render") # Test full opacity (should render normally) edge_base.opacity = 255 render_result = edge_base.render(edge_frame, opacity_engine.time_ms + 100) +edge_base.post_render(edge_frame, opacity_engine.time_ms + 100) assert_test(render_result, "Animation with full opacity should render normally") # Test transparent animation as opacity @@ -257,6 +269,7 @@ transparent_opacity.name = "transparent_opacity" edge_base.opacity = transparent_opacity transparent_opacity.start() render_result = edge_base.render(edge_frame, opacity_engine.time_ms + 200) +edge_base.post_render(edge_frame, opacity_engine.time_ms + 200) assert_test(render_result, "Animation with transparent animation opacity should render") # Test 11j: Performance with animation opacity diff --git a/lib/libesp32/berry_animation/src/tests/animation_test.be b/lib/libesp32/berry_animation/src/tests/animation_test.be index ef55893b2..acb3daee8 100644 --- a/lib/libesp32/berry_animation/src/tests/animation_test.be +++ b/lib/libesp32/berry_animation/src/tests/animation_test.be @@ -104,82 +104,6 @@ assert(result == true, "Update should return true for looping animation") assert(loop_anim.is_running == true, "Looping animation should still be running after duration") assert(loop_anim.start_time == 5000, "Start time should be adjusted for looping") -# Test get_progress -engine.time_ms = 4500 -var non_loop_progress = animation.animation(engine) -non_loop_progress.priority = 1 -non_loop_progress.duration = 1000 -non_loop_progress.loop = false -non_loop_progress.opacity = 255 -non_loop_progress.name = "progress" -non_loop_progress.color = 0xFF0000 -non_loop_progress.start(4000) -non_loop_progress.update(engine.time_ms) -assert(non_loop_progress.get_progress() == 128, "Progress should be 128 at midpoint (500ms of 1000ms)") - -# Test progress at start (0ms elapsed) -engine.time_ms = 4000 -var start_progress = animation.animation(engine) -start_progress.priority = 1 -start_progress.duration = 1000 -start_progress.loop = false -start_progress.opacity = 255 -start_progress.name = "start" -start_progress.color = 0xFF0000 -start_progress.start(4000) -start_progress.update(engine.time_ms) -assert(start_progress.get_progress() == 0, "Progress should be 0 at start") - -# Test progress at end (1000ms elapsed) - test before update stops the animation -engine.time_ms = 5000 -var end_progress = animation.animation(engine) -end_progress.priority = 1 -end_progress.duration = 1000 -end_progress.loop = false -end_progress.opacity = 255 -end_progress.name = "end" -end_progress.color = 0xFF0000 -end_progress.start(4000) -end_progress.current_time = 5000 # Set current time manually to avoid stopping -assert(end_progress.get_progress() == 255, "Progress should be 255 at end") - -# Test progress at quarter point (250ms elapsed) -engine.time_ms = 4250 -var quarter_progress = animation.animation(engine) -quarter_progress.priority = 1 -quarter_progress.duration = 1000 -quarter_progress.loop = false -quarter_progress.opacity = 255 -quarter_progress.name = "quarter" -quarter_progress.color = 0xFF0000 -quarter_progress.start(4000) -quarter_progress.update(engine.time_ms) -assert(quarter_progress.get_progress() == 64, "Progress should be 64 at quarter point (250ms of 1000ms)") - -# Test looping animation progress (should wrap around) -engine.time_ms = 5500 # 1500ms elapsed = 1.5 loops of 1000ms -var loop_progress = animation.animation(engine) -loop_progress.priority = 1 -loop_progress.duration = 1000 -loop_progress.loop = true -loop_progress.opacity = 255 -loop_progress.name = "loop_progress" -loop_progress.color = 0xFF0000 -loop_progress.start(4000) -loop_progress.current_time = 5500 # Set manually to avoid loop adjustment in update() -assert(loop_progress.get_progress() == 128, "Looping animation should wrap around (500ms into second loop)") - -# Test infinite animation progress -var infinite_anim = animation.animation(engine) -infinite_anim.priority = 1 -infinite_anim.duration = 0 # infinite -infinite_anim.loop = false -infinite_anim.opacity = 255 -infinite_anim.name = "infinite" -infinite_anim.color = 0xFF0000 -infinite_anim.start(4000) -assert(infinite_anim.get_progress() == 0, "Infinite animation should always return 0 progress") - # Test direct parameter assignment (no setter methods needed) var setter_anim = animation.animation(engine) setter_anim.priority = 20 @@ -192,12 +116,6 @@ assert(setter_anim.loop == true, "Loop should be updated") # Test parameter handling with static parameters var param_anim = animation.animation(engine) -# Test static parameter metadata access -var params_metadata = param_anim.get_params_metadata() -assert(params_metadata.contains("priority"), "Priority parameter should be defined") -assert(params_metadata["priority"]["min"] == 0, "Priority parameter min should be 0") -assert(params_metadata["priority"]["default"] == 10, "Priority parameter default should be 10") - # Test parameter validation and setting (using existing 'priority' parameter) assert(param_anim.set_param("priority", 75) == true, "Valid parameter should be accepted") assert(param_anim.get_param("priority", nil) == 75, "Parameter value should be updated") diff --git a/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be b/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be new file mode 100644 index 000000000..87754f2ef --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be @@ -0,0 +1,191 @@ +#!/usr/bin/env berry + +# Test for ColorCycleColorProvider palette_size read-only parameter +import animation + +# Mock engine for testing +class MockEngine + var time_ms + def init() + self.time_ms = 1000 + end +end + +def test_palette_size_parameter_access() + print("Testing palette_size parameter access...") + + var engine = MockEngine() + var provider = animation.color_cycle(engine) + + # Test 1: Default palette_size should be 3 + var default_size = provider.palette_size + assert(default_size == 3, f"Default palette_size should be 3, got {default_size}") + + # Test 2: palette_size should match _get_palette_size() + var internal_size = provider._get_palette_size() + assert(default_size == internal_size, f"palette_size ({default_size}) should match _get_palette_size() ({internal_size})") + + print("✓ palette_size parameter access tests passed!") +end + +def test_palette_size_read_only() + print("Testing palette_size is read-only...") + + var engine = MockEngine() + var provider = animation.color_cycle(engine) + + var original_size = provider.palette_size + + # Test 1: Direct assignment should raise exception + var caught_exception = false + try + provider.palette_size = 10 + except "value_error" as e + caught_exception = true + end + assert(caught_exception, "Direct assignment to palette_size should raise value_error") + + # Test 2: Value should remain unchanged after failed write + var size_after_write = provider.palette_size + assert(size_after_write == original_size, f"palette_size should remain {original_size} after failed write, got {size_after_write}") + + # Test 3: set_param method should return false and not change value + var set_success = provider.set_param("palette_size", 99) + assert(set_success == false, "set_param should return false for read-only parameter") + + var size_after_set_param = provider.palette_size + assert(size_after_set_param == original_size, f"palette_size should remain {original_size} after set_param, got {size_after_set_param}") + + # Test 4: get_param should return the actual value, not the attempted write + var raw_value = provider.get_param("palette_size") + assert(raw_value == original_size, f"get_param should return actual value {original_size}, got {raw_value}") + + print("✓ palette_size read-only tests passed!") +end + +def test_palette_size_updates_with_palette_changes() + print("Testing palette_size updates when palette changes...") + + var engine = MockEngine() + var provider = animation.color_cycle(engine) + + # Test 1: 2-color palette + var palette_2 = bytes("FFFF0000" "FF00FF00") + provider.palette = palette_2 + var size_2 = provider.palette_size + assert(size_2 == 2, f"palette_size should be 2 for 2-color palette, got {size_2}") + + # Test 2: 5-color palette + var palette_5 = bytes("FFFF0000" "FF00FF00" "FF0000FF" "FFFFFF00" "FFFF00FF") + provider.palette = palette_5 + var size_5 = provider.palette_size + assert(size_5 == 5, f"palette_size should be 5 for 5-color palette, got {size_5}") + + # Test 3: 1-color palette + var palette_1 = bytes("FFFF0000") + provider.palette = palette_1 + var size_1 = provider.palette_size + assert(size_1 == 1, f"palette_size should be 1 for 1-color palette, got {size_1}") + + # Test 4: Empty palette + var empty_palette = bytes() + provider.palette = empty_palette + var size_0 = provider.palette_size + assert(size_0 == 0, f"palette_size should be 0 for empty palette, got {size_0}") + + # Test 5: Large palette (10 colors) + var palette_10 = bytes( + "FFFF0000" "FF00FF00" "FF0000FF" "FFFFFF00" "FFFF00FF" + "FF800000" "FF008000" "FF000080" "FF808000" "FF800080" + ) + provider.palette = palette_10 + var size_10 = provider.palette_size + assert(size_10 == 10, f"palette_size should be 10 for 10-color palette, got {size_10}") + + # Test 6: Verify palette_size is still read-only after palette changes + var caught_exception = false + try + provider.palette_size = 15 + except "value_error" + caught_exception = true + end + assert(caught_exception, "palette_size should still be read-only after palette changes") + + var final_size = provider.palette_size + assert(final_size == 10, f"palette_size should remain 10 after failed write, got {final_size}") + + print("✓ palette_size update tests passed!") +end + +def test_palette_size_with_new_instances() + print("Testing palette_size with new provider instances...") + + var engine = MockEngine() + + # Test 1: Multiple instances should have correct default palette_size + var provider1 = animation.color_cycle(engine) + var provider2 = animation.color_cycle(engine) + + assert(provider1.palette_size == 3, "First provider should have default palette_size of 3") + assert(provider2.palette_size == 3, "Second provider should have default palette_size of 3") + + # Test 2: Changing one instance shouldn't affect the other + var custom_palette = bytes("FFFF0000" "FF00FF00") + provider1.palette = custom_palette + + assert(provider1.palette_size == 2, "First provider should have palette_size of 2 after change") + assert(provider2.palette_size == 3, "Second provider should still have palette_size of 3") + + # Test 3: Both instances should maintain read-only behavior + var caught_exception_1 = false + var caught_exception_2 = false + + try + provider1.palette_size = 5 + except "value_error" + caught_exception_1 = true + end + + try + provider2.palette_size = 7 + except "value_error" + caught_exception_2 = true + end + + assert(caught_exception_1, "First provider should reject palette_size writes") + assert(caught_exception_2, "Second provider should reject palette_size writes") + + assert(provider1.palette_size == 2, "First provider palette_size should remain 2") + assert(provider2.palette_size == 3, "Second provider palette_size should remain 3") + + print("✓ Multiple instance tests passed!") +end + +def test_palette_size_parameter_metadata() + print("Testing palette_size parameter metadata...") + + var engine = MockEngine() + var provider = animation.color_cycle(engine) + + # Test 1: Parameter should exist in metadata + var metadata = provider.get_param_metadata("palette_size") + assert(metadata != nil, "palette_size should have metadata") + + # Test 2: Check parameter definition + assert(metadata.contains("type"), "palette_size metadata should have type") + assert(metadata["type"] == "int", f"palette_size type should be 'int', got '{metadata['type']}'") + + assert(metadata.contains("default"), "palette_size metadata should have default") + assert(metadata["default"] == 3, f"palette_size default should be 3, got {metadata['default']}") + + print("✓ Parameter metadata tests passed!") +end + +# Run all tests +test_palette_size_parameter_access() +test_palette_size_read_only() +test_palette_size_updates_with_palette_changes() +test_palette_size_with_new_instances() +test_palette_size_parameter_metadata() + +print("✓ All ColorCycleColorProvider palette_size tests completed successfully!") \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be b/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be index dec0b9769..5bda6a7e6 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be @@ -203,7 +203,7 @@ def test_sequence_processing() assert(string.find(berry_code, "var demo_ = animation.SequenceManager(engine)") >= 0, "Should define sequence manager") assert(string.find(berry_code, "red_anim") >= 0, "Should reference animation") assert(string.find(berry_code, ".push_play_step(red_anim_, 2000)") >= 0, "Should create play step") - assert(string.find(berry_code, "engine.add_sequence_manager(demo_)") >= 0, "Should add sequence manager") + assert(string.find(berry_code, "engine.add(demo_)") >= 0, "Should add sequence manager") assert(string.find(berry_code, "engine.start()") >= 0, "Should start engine") # Test repeat in sequence diff --git a/lib/libesp32/berry_animation/src/tests/dsl_reset_restart_test.be b/lib/libesp32/berry_animation/src/tests/dsl_reset_restart_test.be new file mode 100644 index 000000000..fa4fb3fe4 --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/dsl_reset_restart_test.be @@ -0,0 +1,397 @@ +# DSL Reset/Restart Test Suite +# Tests for reset and restart functionality in sequences +# +# Command to run test is: +# ./berry -s -g -m lib/libesp32/berry_animation/src -e "import tasmota def log(x) print(x) end" lib/libesp32/berry_animation/src/tests/dsl_reset_restart_test.be + +import animation +import animation_dsl +import string + +# Test basic reset functionality +def test_reset_basic() + print("Testing basic reset functionality...") + + var dsl_source = "set osc_val = triangle(min_value=0, max_value=10, duration=2s)\n" + + "animation test_anim = solid(color=red)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 1s\n" + + " reset osc_val\n" + + " play test_anim for 1s\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code for reset") + assert(string.find(berry_code, "animation.triangle(engine)") >= 0, "Should generate triangle oscillator") + assert(string.find(berry_code, "push_closure_step") >= 0, "Should generate closure step for reset") + assert(string.find(berry_code, "osc_val_.start(engine.time_ms)") >= 0, "Should call start() method") + + print("✓ Basic reset test passed") + return true +end + +# Test basic restart functionality +def test_restart_basic() + print("Testing basic restart functionality...") + + var dsl_source = "set smooth_val = smooth(min_value=5, max_value=15, duration=3s)\n" + + "animation test_anim = solid(color=blue)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 1s\n" + + " restart smooth_val\n" + + " play test_anim for 1s\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code for restart") + assert(string.find(berry_code, "animation.smooth(engine)") >= 0, "Should generate smooth oscillator") + assert(string.find(berry_code, "push_closure_step") >= 0, "Should generate closure step for restart") + assert(string.find(berry_code, "smooth_val_.start(engine.time_ms)") >= 0, "Should call start() method") + + print("✓ Basic restart test passed") + return true +end + +# Test reset/restart with different value provider types +def test_reset_restart_different_providers() + print("Testing reset/restart with different value provider types...") + + var dsl_source = "set triangle_val = triangle(min_value=0, max_value=29, duration=5s)\n" + + "set cosine_val = cosine_osc(min_value=0, max_value=29, duration=5s)\n" + + "set sine_val = sine_osc(min_value=0, max_value=255, duration=2s)\n" + + "animation test_anim = solid(color=green)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 500ms\n" + + " reset triangle_val\n" + + " wait 200ms\n" + + " restart cosine_val\n" + + " wait 200ms\n" + + " reset sine_val\n" + + " play test_anim for 500ms\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code for multiple providers") + assert(string.find(berry_code, "triangle_val_.start(engine.time_ms)") >= 0, "Should reset triangle") + assert(string.find(berry_code, "cosine_val_.start(engine.time_ms)") >= 0, "Should restart cosine") + assert(string.find(berry_code, "sine_val_.start(engine.time_ms)") >= 0, "Should reset sine") + + # Count the number of closure steps - should be 3 (one for each reset/restart) + var closure_count = 0 + var pos = 0 + while true + pos = string.find(berry_code, "push_closure_step", pos) + if pos < 0 break end + closure_count += 1 + pos += 1 + end + assert(closure_count == 3, f"Should have 3 closure steps for reset/restart, found {closure_count}") + + print("✓ Different providers test passed") + return true +end + +# Test reset/restart with animations +def test_reset_restart_animations() + print("Testing reset/restart with animations...") + + var dsl_source = "set osc_val = triangle(min_value=0, max_value=10, duration=2s)\n" + + "animation pulse_anim = pulsating_animation(color=red, period=3s)\n" + + "animation solid_anim = solid(color=blue)\n" + + "\n" + + "sequence demo {\n" + + " play pulse_anim for 1s\n" + + " reset pulse_anim\n" + + " play solid_anim for 1s\n" + + " restart solid_anim\n" + + " play pulse_anim for 1s\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code for animation reset/restart") + assert(string.find(berry_code, "pulse_anim_.start(engine.time_ms)") >= 0, "Should reset pulse animation") + assert(string.find(berry_code, "solid_anim_.start(engine.time_ms)") >= 0, "Should restart solid animation") + + # Count the number of closure steps - should be 2 (one for each reset/restart) + var closure_count = 0 + var pos = 0 + while true + pos = string.find(berry_code, "push_closure_step", pos) + if pos < 0 break end + closure_count += 1 + pos += 1 + end + assert(closure_count == 2, f"Should have 2 closure steps for animation reset/restart, found {closure_count}") + + print("✓ Animation reset/restart test passed") + return true +end + +# Test reset/restart in repeat blocks +def test_reset_restart_in_repeat() + print("Testing reset/restart in repeat blocks...") + + var dsl_source = "set osc_val = triangle(min_value=0, max_value=10, duration=1s)\n" + + "animation test_anim = solid(color=yellow)\n" + + "\n" + + "sequence demo {\n" + + " repeat 3 times {\n" + + " play test_anim for 500ms\n" + + " reset osc_val\n" + + " wait 200ms\n" + + " }\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code for reset in repeat") + assert(string.find(berry_code, "push_repeat_subsequence") >= 0, "Should generate repeat block") + assert(string.find(berry_code, "osc_val_.start(engine.time_ms)") >= 0, "Should reset in repeat block") + + print("✓ Reset/restart in repeat test passed") + return true +end + +# Test error handling - undefined value provider +def test_error_undefined_provider() + print("Testing error handling for undefined value provider...") + + var dsl_source = "animation test_anim = solid(color=red)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 1s\n" + + " reset undefined_provider\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = nil + try + berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should fail with undefined provider error") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Undefined reference 'undefined_provider'") >= 0, "Should report undefined reference error") + end + + print("✓ Undefined provider error test passed") + return true +end + +# Test error handling - non-value provider +def test_error_non_value_provider() + print("Testing error handling for non-value provider...") + + var dsl_source = "color my_color = 0xFF0000\n" + + "animation test_anim = solid(color=red)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 1s\n" + + " reset my_color\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = nil + try + berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should fail with non-value provider error") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "is not a value provider") >= 0, "Should report non-value provider error") + end + + print("✓ Non-value provider error test passed") + return true +end + +# Test error handling - animation instead of value provider +def test_error_animation_not_provider() + print("Testing error handling for animation instead of value provider...") + + var dsl_source = "animation my_anim = solid(color=blue)\n" + + "\n" + + "sequence demo {\n" + + " play my_anim for 1s\n" + + " restart my_anim\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = nil + try + berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should fail with animation not value provider error") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "is not a value provider") >= 0, "Should report animation not value provider error") + end + + print("✓ Animation not provider error test passed") + return true +end + +# Test error handling - variable instead of value provider +def test_error_variable_not_provider() + print("Testing error handling for variable instead of value provider...") + + var dsl_source = "set my_var = 100\n" + + "animation test_anim = solid(color=green)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 1s\n" + + " reset my_var\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = nil + try + berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should fail with variable not value provider error") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "is not a value provider") >= 0, "Should report variable not value provider error") + end + + print("✓ Variable not provider error test passed") + return true +end + +# Test complex scenario with multiple resets/restarts +def test_complex_scenario() + print("Testing complex scenario with multiple resets/restarts...") + + var dsl_source = "# Complex cylon eye with reset functionality\n" + + "set strip_len = strip_length()\n" + + "palette eye_palette = [ red, yellow, green, violet ]\n" + + "color eye_color = color_cycle(palette=eye_palette, cycle_period=0)\n" + + "set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)\n" + + "set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = 5s)\n" + + "\n" + + "animation red_eye = beacon_animation(\n" + + " color = eye_color\n" + + " pos = cosine_val\n" + + " beacon_size = 3\n" + + " slew_size = 2\n" + + " priority = 10\n" + + ")\n" + + "\n" + + "sequence cylon_eye {\n" + + " play red_eye for 3s\n" + + " red_eye.pos = triangle_val\n" + + " reset triangle_val\n" + + " play red_eye for 3s\n" + + " red_eye.pos = cosine_val\n" + + " restart cosine_val\n" + + " eye_color.next = 1\n" + + "}\n" + + "\n" + + "run cylon_eye" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should compile complex scenario") + assert(string.find(berry_code, "triangle_val_.start(engine.time_ms)") >= 0, "Should reset triangle_val") + assert(string.find(berry_code, "cosine_val_.start(engine.time_ms)") >= 0, "Should restart cosine_val") + + # Should have multiple closure steps: 2 assignments + 2 resets + 1 color advance = 5 total + var closure_count = 0 + var pos = 0 + while true + pos = string.find(berry_code, "push_closure_step", pos) + if pos < 0 break end + closure_count += 1 + pos += 1 + end + assert(closure_count == 5, f"Should have 5 closure steps in complex scenario, found {closure_count}") + + print("✓ Complex scenario test passed") + return true +end + +# Test that reset/restart works with comments +def test_reset_restart_with_comments() + print("Testing reset/restart with comments...") + + var dsl_source = "set osc_val = triangle(min_value=0, max_value=10, duration=2s) # Triangle oscillator\n" + + "animation test_anim = solid(color=red)\n" + + "\n" + + "sequence demo {\n" + + " play test_anim for 1s\n" + + " reset osc_val # Reset the oscillator\n" + + " restart osc_val # Restart it again\n" + + " play test_anim for 1s\n" + + "}\n" + + "\n" + + "run demo" + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code with comments") + assert(string.find(berry_code, "# Reset the oscillator") >= 0, "Should preserve reset comment") + assert(string.find(berry_code, "# Restart it again") >= 0, "Should preserve restart comment") + + # Should have 2 closure steps for reset and restart + var closure_count = 0 + var pos = 0 + while true + pos = string.find(berry_code, "push_closure_step", pos) + if pos < 0 break end + closure_count += 1 + pos += 1 + end + assert(closure_count == 2, f"Should have 2 closure steps, found {closure_count}") + + print("✓ Reset/restart with comments test passed") + return true +end + +# Run all tests +def run_all_reset_restart_tests() + print("Starting DSL Reset/Restart Tests...") + + test_reset_basic() + test_restart_basic() + test_reset_restart_different_providers() + test_reset_restart_in_repeat() + test_error_undefined_provider() + test_error_non_value_provider() + test_error_animation_not_provider() + test_error_variable_not_provider() + test_complex_scenario() + test_reset_restart_with_comments() + + print("\n🎉 All DSL Reset/Restart tests passed!") + return true +end + +# Execute tests +run_all_reset_restart_tests() + +return { + "run_all_reset_restart_tests": run_all_reset_restart_tests, + "test_reset_basic": test_reset_basic, + "test_restart_basic": test_restart_basic, + "test_reset_restart_different_providers": test_reset_restart_different_providers, + "test_reset_restart_in_repeat": test_reset_restart_in_repeat, + "test_error_undefined_provider": test_error_undefined_provider, + "test_error_non_value_provider": test_error_non_value_provider, + "test_error_animation_not_provider": test_error_animation_not_provider, + "test_error_variable_not_provider": test_error_variable_not_provider, + "test_complex_scenario": test_complex_scenario, + "test_reset_restart_with_comments": test_reset_restart_with_comments +} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be index 72dd4e906..7826d89e4 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be @@ -29,7 +29,7 @@ def test_basic_transpilation() assert(string.find(berry_code, "var engine = animation.init_strip()") >= 0, "Should generate strip configuration") assert(string.find(berry_code, "var custom_red_ = 0xFFFF0000") >= 0, "Should generate color definition") assert(string.find(berry_code, "var demo_ = animation.SequenceManager(engine)") >= 0, "Should generate sequence manager") - assert(string.find(berry_code, "engine.add_sequence_manager(demo_)") >= 0, "Should add sequence manager") + assert(string.find(berry_code, "engine.add(demo_)") >= 0, "Should add sequence manager") # print("Generated Berry code:") # print("==================================================") @@ -185,7 +185,7 @@ def test_sequence_assignments() var berry_code = animation_dsl.compile(dsl_source) assert(berry_code != nil, "Should compile sequence with assignments") assert(string.find(berry_code, "var demo_ = animation.SequenceManager(engine)") >= 0, "Should define sequence manager") - assert(string.find(berry_code, ".push_assign_step") >= 0, "Should generate assign step") + assert(string.find(berry_code, ".push_closure_step") >= 0, "Should generate closure step") assert(string.find(berry_code, "test_.opacity = brightness_") >= 0, "Should generate assignment") # Test multiple assignments in sequence @@ -212,7 +212,7 @@ def test_sequence_assignments() var assign_count = 0 var pos = 0 while true - pos = string.find(multi_berry_code, "push_assign_step", pos) + pos = string.find(multi_berry_code, "push_closure_step", pos) if pos < 0 break end assign_count += 1 pos += 1 @@ -235,9 +235,10 @@ def test_sequence_assignments() "run demo" var repeat_berry_code = animation_dsl.compile(repeat_assign_dsl) +print(repeat_berry_code) assert(repeat_berry_code != nil, "Should compile repeat with assignments") assert(string.find(repeat_berry_code, "push_repeat_subsequence") >= 0, "Should generate repeat loop") - assert(string.find(repeat_berry_code, "push_assign_step") >= 0, "Should generate assign step in repeat") + assert(string.find(repeat_berry_code, "push_closure_step") >= 0, "Should generate closure step in repeat") # Test complex cylon rainbow example var cylon_dsl = "set strip_len = strip_length()\n" + @@ -375,9 +376,9 @@ def test_multiple_run_statements() assert(start_count == 1, f"Should have exactly 1 engine.start() call, found {start_count}") # Check that all animations are added to the engine - assert(string.find(berry_code, "engine.add_animation(red_anim_)") >= 0, "Should add red_anim to engine") - assert(string.find(berry_code, "engine.add_animation(blue_anim_)") >= 0, "Should add blue_anim to engine") - assert(string.find(berry_code, "engine.add_animation(green_anim_)") >= 0, "Should add green_anim to engine") + assert(string.find(berry_code, "engine.add(red_anim_)") >= 0, "Should add red_anim to engine") + assert(string.find(berry_code, "engine.add(blue_anim_)") >= 0, "Should add blue_anim to engine") + assert(string.find(berry_code, "engine.add(green_anim_)") >= 0, "Should add green_anim to engine") # Verify the engine.start() comes after all animations are added var start_line_index = -1 @@ -388,7 +389,7 @@ def test_multiple_run_statements() if string.find(line, "engine.start()") >= 0 start_line_index = i end - if string.find(line, "engine.add_animation") >= 0 || string.find(line, "engine.add_sequence_manager") >= 0 + if string.find(line, "engine.add(") >= 0 last_add_line_index = i end end @@ -425,8 +426,8 @@ def test_multiple_run_statements() assert(mixed_start_count == 1, f"Mixed scenario should have exactly 1 engine.start() call, found {mixed_start_count}") # Check that both animation and sequence are handled - assert(string.find(mixed_berry_code, "engine.add_animation(red_anim_)") >= 0, "Should add animation to engine") - assert(string.find(mixed_berry_code, "engine.add_sequence_manager(blue_seq_)") >= 0, "Should add sequence to engine") + assert(string.find(mixed_berry_code, "engine.add(red_anim_)") >= 0, "Should add animation to engine") + assert(string.find(mixed_berry_code, "engine.add(blue_seq_)") >= 0, "Should add sequence to engine") print("✓ Multiple run statements test passed") return true @@ -685,7 +686,7 @@ def test_complex_dsl() assert(string.find(berry_code, "var engine = animation.init_strip()") >= 0, "Should have default strip initialization") assert(string.find(berry_code, "var custom_red_ = 0xFFFF0000") >= 0, "Should have color definitions") assert(string.find(berry_code, "var demo_ = animation.SequenceManager(engine)") >= 0, "Should have sequence definition") - assert(string.find(berry_code, "engine.add_sequence_manager(demo_)") >= 0, "Should have execution") + assert(string.find(berry_code, "engine.add(demo_)") >= 0, "Should have execution") print("Generated code structure looks correct") else @@ -1038,6 +1039,81 @@ def test_color_type_checking() return true end +# Test invalid sequence commands +def test_invalid_sequence_commands() + print("Testing invalid sequence commands...") + + # Test 1: Invalid command in sequence + var invalid_command_dsl = + "animation test_anim = solid(color=red)\n" + + "sequence bad {\n" + + " do_bad_things anim\n" + + " play test_anim for 1s\n" + + "}" + + try + var result1 = animation_dsl.compile(invalid_command_dsl) + assert(false, "Should have thrown an exception for invalid command") + except "dsl_compilation_error" + # Expected - invalid command should cause compilation error + end + + # Test 2: Another invalid command + var invalid_command_dsl2 = + "animation test_anim = solid(color=red)\n" + + "sequence bad {\n" + + " play test_anim for 1s\n" + + " invalid_command\n" + + " wait 500ms\n" + + "}" + + try + var result2 = animation_dsl.compile(invalid_command_dsl2) + assert(false, "Should have thrown an exception for invalid command") + except "dsl_compilation_error" + # Expected - invalid command should cause compilation error + end + + # Test 3: Invalid command in repeat block + var invalid_repeat_dsl = + "animation test_anim = solid(color=red)\n" + + "sequence bad {\n" + + " repeat 3 times {\n" + + " play test_anim for 1s\n" + + " bad_command_in_repeat\n" + + " wait 500ms\n" + + " }\n" + + "}" + + try + var result3 = animation_dsl.compile(invalid_repeat_dsl) + assert(false, "Should have thrown an exception for invalid command in repeat") + except "dsl_compilation_error" + # Expected - invalid command should cause compilation error + end + + # Test 4: Valid sequence should still work + var valid_sequence_dsl = + "animation test_anim = solid(color=red)\n" + + "sequence good {\n" + + " play test_anim for 1s\n" + + " wait 500ms\n" + + " log(\"test message\")\n" + + " test_anim.opacity = 128\n" + + "}" + + var result4 = animation_dsl.compile(valid_sequence_dsl) + assert(result4 != nil, "Should compile valid sequence successfully") + assert(string.find(result4, "SequenceManager") >= 0, "Should generate sequence manager") + assert(string.find(result4, "push_play_step") >= 0, "Should generate play step") + assert(string.find(result4, "push_wait_step") >= 0, "Should generate wait step") + assert(string.find(result4, "log(f\"test message\", 3)") >= 0, "Should generate log statement") + assert(string.find(result4, "push_closure_step") >= 0, "Should generate closure steps") + + print("✓ Invalid sequence commands test passed") + return true +end + # Run all tests def run_dsl_transpiler_tests() print("=== DSL Transpiler Test Suite ===") @@ -1064,7 +1140,8 @@ def run_dsl_transpiler_tests() test_comment_preservation, test_easing_keywords, test_animation_type_checking, - test_color_type_checking + test_color_type_checking, + test_invalid_sequence_commands ] var passed = 0 diff --git a/lib/libesp32/berry_animation/src/tests/frame_buffer_test.be b/lib/libesp32/berry_animation/src/tests/frame_buffer_test.be index 4ae727fb1..129f468ca 100644 --- a/lib/libesp32/berry_animation/src/tests/frame_buffer_test.be +++ b/lib/libesp32/berry_animation/src/tests/frame_buffer_test.be @@ -173,7 +173,7 @@ fb1.fill_pixels(0xFF0000FF) # Fill fb1 with red (fully opaque) fb2.fill_pixels(0x8000FF00) # Fill fb2 with green at 50% alpha # Blend fb2 into fb1 using per-pixel alpha, but only for the first half -fb1.blend_pixels(fb2, animation.frame_buffer.BLEND_MODE_NORMAL, 0, 4) +fb1.blend_pixels(fb2, 0, 4) var first_half_blended = true var second_half_original = true diff --git a/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be b/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be index 4ae58fa26..7966d7131 100644 --- a/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be +++ b/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be @@ -59,28 +59,6 @@ def test_palette_with_named_colors() print("✓ Palette with named colors test passed") end -# Test palette with custom colors -def test_palette_with_custom_colors() - print("Testing palette with custom colors...") - - var dsl_source = - "# Define custom colors first\n" + - "color aurora_green = 0x00AA44\n" + - "color aurora_purple = 0x8800AA\n" + - "\n" + - "palette aurora_palette = [\n" + - " (0, 0x000022), # Dark night sky\n" + - " (64, aurora_green), # Custom green\n" + - " (192, aurora_purple), # Custom purple\n" + - " (255, 0xCCAAFF) # Pale purple\n" + - "]\n" - - var berry_code = animation_dsl.compile(dsl_source) - assert(berry_code != nil, "DSL compilation with custom colors should succeed") - - print("✓ Palette with custom colors test passed") -end - # Test error handling for invalid palette syntax def test_palette_error_handling() print("Testing palette error handling...") @@ -627,6 +605,76 @@ def test_alternative_syntax_integration() print("✓ Alternative syntax integration test passed") end +# Test that non-predefined colors raise exceptions +# Palettes only accept hex colors (0xRRGGBB) or predefined color names, +# but not custom colors defined previously. For dynamic palettes, use user functions. +def test_non_predefined_color_exceptions() + print("Testing non-predefined color exceptions...") + + # Test 1: Custom color identifier in tuple syntax should fail + try + var custom_color_tuple = "palette test1 = [(0, custom_red)]" + var result1 = animation_dsl.compile(custom_color_tuple) + assert(result1 == nil, "Should fail with custom color identifier in tuple syntax") + print("✗ FAIL: Custom color identifier in tuple syntax was accepted") + return false + except .. as e, msg + # Expected to fail - custom color identifier not allowed + print("✓ Custom color identifier in tuple syntax correctly rejected") + end + + # Test 2: Custom color identifier in alternative syntax should fail + try + var custom_color_alt = "palette test2 = [red, custom_blue, green]" + var result2 = animation_dsl.compile(custom_color_alt) + assert(result2 == nil, "Should fail with custom color identifier in alternative syntax") + print("✗ FAIL: Custom color identifier in alternative syntax was accepted") + return false + except .. as e, msg + # Expected to fail - custom color identifier not allowed + print("✓ Custom color identifier in alternative syntax correctly rejected") + end + + # Test 3: The specific case from the user report - 'grrreen' should fail + try + var grrreen_case = "palette rainbow_with_white = [red, grrreen]" + var result3 = animation_dsl.compile(grrreen_case) + assert(result3 == nil, "Should fail with 'grrreen' identifier") + print("✗ FAIL: 'grrreen' identifier was accepted") + return false + except .. as e, msg + # Expected to fail - 'grrreen' is not a predefined color + print("✓ 'grrreen' identifier correctly rejected") + end + + # Test 4: Misspelled predefined color should fail + try + var misspelled = "palette test4 = [red, bleu, green]" # 'bleu' instead of 'blue' + var result4 = animation_dsl.compile(misspelled) + assert(result4 == nil, "Should fail with misspelled color 'bleu'") + print("✗ FAIL: Misspelled color 'bleu' was accepted") + return false + except .. as e, msg + # Expected to fail - 'bleu' is not a predefined color + print("✓ Misspelled color 'bleu' correctly rejected") + end + + # Test 5: Random identifier should fail + try + var random_id = "palette test5 = [red, some_random_name, blue]" + var result5 = animation_dsl.compile(random_id) + assert(result5 == nil, "Should fail with random identifier") + print("✗ FAIL: Random identifier was accepted") + return false + except .. as e, msg + # Expected to fail - random identifier is not a predefined color + print("✓ Random identifier correctly rejected") + end + + print("✓ Non-predefined color exceptions test passed") + return true +end + # Run all palette tests def run_palette_tests() print("=== Palette DSL Tests ===") @@ -635,9 +683,9 @@ def run_palette_tests() test_palette_keyword_recognition() test_palette_definition() test_palette_with_named_colors() - test_palette_with_custom_colors() test_palette_error_handling() test_nonexistent_color_names() + test_non_predefined_color_exceptions() # New test for strict color validation test_palette_integration() test_vrgb_format_validation() test_complete_workflow() diff --git a/lib/libesp32/berry_animation/src/tests/parameterized_object_test.be b/lib/libesp32/berry_animation/src/tests/parameterized_object_test.be index 0014c79cd..b57ee3e79 100644 --- a/lib/libesp32/berry_animation/src/tests/parameterized_object_test.be +++ b/lib/libesp32/berry_animation/src/tests/parameterized_object_test.be @@ -216,12 +216,6 @@ def test_parameter_metadata() assert(enum_meta.contains("enum"), "Should have enum constraint") assert(enum_meta["default"] == 1, "Should have default value") - # Test getting all metadata - var all_meta = obj.get_params_metadata() - assert(all_meta.contains("range_param"), "Should contain range_param metadata") - assert(all_meta.contains("enum_param"), "Should contain enum_param metadata") - assert(all_meta.contains("simple_param"), "Should contain simple_param metadata") - print("✓ Parameter metadata test passed") end diff --git a/lib/libesp32/berry_animation/src/tests/sequence_manager_test.be b/lib/libesp32/berry_animation/src/tests/sequence_manager_test.be index 6172bb621..b69b97917 100644 --- a/lib/libesp32/berry_animation/src/tests/sequence_manager_test.be +++ b/lib/libesp32/berry_animation/src/tests/sequence_manager_test.be @@ -62,12 +62,12 @@ def test_sequence_manager_step_creation() assert(wait_step["type"] == "wait", "Wait step should have correct type") assert(wait_step["duration"] == 2000, "Wait step should have correct duration") - # Test push_assign_step + # Test push_closure_step var test_closure = def (engine) test_anim.opacity = 128 end - seq_manager.push_assign_step(test_closure) - assert(seq_manager.steps.size() == 3, "Should have three steps after push_assign_step") + seq_manager.push_closure_step(test_closure) + assert(seq_manager.steps.size() == 3, "Should have three steps after push_closure_step") var assign_step = seq_manager.steps[2] - assert(assign_step["type"] == "assign", "Assign step should have correct type") + assert(assign_step["type"] == "closure", "Assign step should have correct type") assert(assign_step["closure"] == test_closure, "Assign step should have correct closure") print("✓ Step creation tests passed") @@ -318,7 +318,7 @@ def test_sequence_manager_assignment_steps() # Create sequence with assignment step using fluent interface seq_manager.push_play_step(test_anim, 500) # Play for 0.5s - .push_assign_step(assignment_closure) # Assign new opacity + .push_closure_step(assignment_closure) # Assign new opacity .push_play_step(test_anim, 500) # Play for another 0.5s # Start sequence @@ -475,6 +475,247 @@ def test_sequence_manager_integration() print("✓ Integration tests passed") end +def test_sequence_manager_parametric_repeat_counts() + print("=== SequenceManager Parametric Repeat Count Tests ===") + + # Create strip and engine + var strip = global.Leds(30) + var engine = animation.create_engine(strip) + + # Test 1: Static repeat count (baseline) + var static_repeat_count = 3 + var seq_manager1 = animation.SequenceManager(engine, static_repeat_count) + + # Test get_resolved_repeat_count with static number + var resolved_count = seq_manager1.get_resolved_repeat_count() + assert(resolved_count == 3, f"Static repeat count should resolve to 3, got {resolved_count}") + + # Test 2: Function-based repeat count (simulating col1.palette_size) + var palette_size_function = def (engine) return 5 end # Simulates a palette with 5 colors + var seq_manager2 = animation.SequenceManager(engine, palette_size_function) + + # Test get_resolved_repeat_count with function + resolved_count = seq_manager2.get_resolved_repeat_count() + assert(resolved_count == 5, f"Function repeat count should resolve to 5, got {resolved_count}") + + # Test 3: Dynamic repeat count that changes over time + var dynamic_counter = 0 + var dynamic_function = def (engine) + dynamic_counter += 1 + return dynamic_counter <= 1 ? 2 : 4 # First call returns 2, subsequent calls return 4 + end + + var seq_manager3 = animation.SequenceManager(engine, dynamic_function) + var first_resolved = seq_manager3.get_resolved_repeat_count() + var second_resolved = seq_manager3.get_resolved_repeat_count() + assert(first_resolved == 2, f"First dynamic call should return 2, got {first_resolved}") + assert(second_resolved == 4, f"Second dynamic call should return 4, got {second_resolved}") + + print("✓ Parametric repeat count tests passed") +end + +def test_sequence_manager_repeat_execution_with_functions() + print("=== SequenceManager Repeat Execution with Functions Tests ===") + + # Create strip and engine + var strip = global.Leds(30) + var engine = animation.create_engine(strip) + + # Create test animation + var color_provider = animation.static_color(engine) + color_provider.color = 0xFF00FF00 + var test_anim = animation.solid(engine) + test_anim.color = color_provider + test_anim.priority = 0 + test_anim.duration = 0 + test_anim.loop = true + test_anim.name = "test_repeat" + + # Create a function that returns repeat count (simulating palette_size) + var repeat_count_func = def (engine) return 3 end + + # Create sequence manager with function-based repeat count + var seq_manager = animation.SequenceManager(engine, repeat_count_func) + seq_manager.push_play_step(test_anim, 50) # Short duration for testing + + # Verify repeat count is resolved correctly + var resolved_count = seq_manager.get_resolved_repeat_count() + assert(resolved_count == 3, f"Repeat count should resolve to 3, got {resolved_count}") + + # Test that the sequence manager accepts function-based repeat counts + assert(type(seq_manager.repeat_count) == "function", "Repeat count should be stored as function") + + # Test that multiple calls to get_resolved_repeat_count work + var second_resolved = seq_manager.get_resolved_repeat_count() + assert(second_resolved == 3, f"Second resolution should also return 3, got {second_resolved}") + + # Test sequence execution with function-based repeat count + tasmota.set_millis(90000) + seq_manager.start(90000) + assert(seq_manager.is_running == true, "Sequence should start running") + assert(seq_manager.current_iteration == 0, "Should start at iteration 0") + + print("✓ Repeat execution with functions tests passed") +end + +def test_sequence_manager_palette_size_simulation() + print("=== SequenceManager Palette Size Simulation Tests ===") + + # Create strip and engine + var strip = global.Leds(30) + var engine = animation.create_engine(strip) + + # Simulate a color cycle with palette_size property (like col1.palette_size) + var mock_color_cycle = { + "palette_size": 5, # Use smaller palette for simpler testing + "current_index": 0 + } + + # Create function that accesses palette_size (simulating col1.palette_size) + var palette_size_func = def (engine) return mock_color_cycle["palette_size"] end + + # Create closure that advances color cycle (simulating col1.next = 1) + var advance_color_func = def (engine) + mock_color_cycle["current_index"] = (mock_color_cycle["current_index"] + 1) % mock_color_cycle["palette_size"] + end + + # Create sequence similar to demo_shutter_rainbow.anim: + # sequence shutter_seq repeat col1.palette_size times { + # play shutter_animation for duration + # col1.next = 1 + # } + var seq_manager = animation.SequenceManager(engine, palette_size_func) + seq_manager.push_closure_step(advance_color_func) # Just test the closure execution + + # Test that repeat count is resolved correctly + var resolved_count = seq_manager.get_resolved_repeat_count() + assert(resolved_count == 5, f"Should resolve to palette size 5, got {resolved_count}") + + # Test that the closure function works + var initial_index = mock_color_cycle["current_index"] + advance_color_func(engine) + assert(mock_color_cycle["current_index"] == (initial_index + 1) % 5, "Color should advance when closure is called") + + # Test that the function can be called multiple times + var second_resolved = seq_manager.get_resolved_repeat_count() + assert(second_resolved == 5, f"Second resolution should also return 5, got {second_resolved}") + + print("✓ Palette size simulation tests passed") +end + +def test_sequence_manager_dynamic_repeat_changes() + print("=== SequenceManager Dynamic Repeat Changes Tests ===") + + # Create strip and engine + var strip = global.Leds(30) + var engine = animation.create_engine(strip) + + # Create test animation + var color_provider = animation.static_color(engine) + color_provider.color = 0xFF0080FF + var test_anim = animation.solid(engine) + test_anim.color = color_provider + test_anim.priority = 0 + test_anim.duration = 0 + test_anim.loop = true + test_anim.name = "dynamic_test" + + # Create dynamic repeat count that changes based on external state + var external_state = {"multiplier": 2} + var dynamic_repeat_func = def (engine) + return external_state["multiplier"] * 2 # Returns 4 initially, can change + end + + # Create sequence with dynamic repeat count + var seq_manager = animation.SequenceManager(engine, dynamic_repeat_func) + seq_manager.push_play_step(test_anim, 250) + + # Start sequence + tasmota.set_millis(120000) + engine.add_sequence_manager(seq_manager) + engine.start() + engine.on_tick(120000) + seq_manager.start(120000) + + # Test initial repeat count resolution + var initial_count = seq_manager.get_resolved_repeat_count() + assert(initial_count == 4, f"Initial repeat count should be 4, got {initial_count}") + + # Change external state mid-execution (simulating dynamic conditions) + external_state["multiplier"] = 3 + + # Test that new calls get updated count + var updated_count = seq_manager.get_resolved_repeat_count() + assert(updated_count == 6, f"Updated repeat count should be 6, got {updated_count}") + + # Test with function that depends on engine state + var engine_dependent_func = def (engine) + # Simulating a function that depends on strip length or other engine properties + return engine.strip != nil ? 3 : 1 + end + + var seq_manager2 = animation.SequenceManager(engine, engine_dependent_func) + var engine_count = seq_manager2.get_resolved_repeat_count() + assert(engine_count == 3, f"Engine-dependent count should be 3, got {engine_count}") + + print("✓ Dynamic repeat changes tests passed") +end + +def test_sequence_manager_complex_parametric_scenario() + print("=== SequenceManager Complex Parametric Scenario Tests ===") + + # Create strip and engine + var strip = global.Leds(30) + var engine = animation.create_engine(strip) + + # Simulate complex scenario with multiple parametric elements + # Similar to a more complex version of demo_shutter_rainbow.anim + + # Mock palette and color cycle objects + var rainbow_palette = { + "colors": [0xFFFF0000, 0xFFFF8000, 0xFFFFFF00], # Smaller palette for testing + "size": 3 + } + + var color_cycle1 = { + "palette": rainbow_palette, + "current_index": 0, + "palette_size": rainbow_palette["size"] + } + + # Functions for parametric behavior + var palette_size_func = def (engine) return color_cycle1["palette_size"] end + var advance_colors_func = def (engine) + color_cycle1["current_index"] = (color_cycle1["current_index"] + 1) % color_cycle1["palette_size"] + end + + # Create sequence with parametric repeat + var seq_manager = animation.SequenceManager(engine, palette_size_func) + seq_manager.push_closure_step(advance_colors_func) + + # Verify sequence setup + var resolved_count = seq_manager.get_resolved_repeat_count() + assert(resolved_count == 3, f"Complex sequence should repeat 3 times, got {resolved_count}") + + # Test that the functions work correctly + var initial_color_index = color_cycle1["current_index"] + + # Test closure execution + advance_colors_func(engine) + assert(color_cycle1["current_index"] == (initial_color_index + 1) % 3, "Color should advance") + + # Test multiple function calls + var second_resolved = seq_manager.get_resolved_repeat_count() + assert(second_resolved == 3, f"Second resolution should still return 3, got {second_resolved}") + + # Test that palette size function works with different values + color_cycle1["palette_size"] = 5 + var updated_resolved = seq_manager.get_resolved_repeat_count() + assert(updated_resolved == 5, f"Updated resolution should return 5, got {updated_resolved}") + + print("✓ Complex parametric scenario tests passed") +end + # Run all tests def run_all_sequence_manager_tests() print("Starting SequenceManager Unit Tests...") @@ -489,6 +730,11 @@ def run_all_sequence_manager_tests() test_sequence_manager_assignment_steps() test_sequence_manager_complex_sequence() test_sequence_manager_integration() + test_sequence_manager_parametric_repeat_counts() + test_sequence_manager_repeat_execution_with_functions() + test_sequence_manager_palette_size_simulation() + test_sequence_manager_dynamic_repeat_changes() + test_sequence_manager_complex_parametric_scenario() print("\n🎉 All SequenceManager tests passed!") return true @@ -508,5 +754,10 @@ return { "test_sequence_manager_is_running": test_sequence_manager_is_running, "test_sequence_manager_assignment_steps": test_sequence_manager_assignment_steps, "test_sequence_manager_complex_sequence": test_sequence_manager_complex_sequence, - "test_sequence_manager_integration": test_sequence_manager_integration + "test_sequence_manager_integration": test_sequence_manager_integration, + "test_sequence_manager_parametric_repeat_counts": test_sequence_manager_parametric_repeat_counts, + "test_sequence_manager_repeat_execution_with_functions": test_sequence_manager_repeat_execution_with_functions, + "test_sequence_manager_palette_size_simulation": test_sequence_manager_palette_size_simulation, + "test_sequence_manager_dynamic_repeat_changes": test_sequence_manager_dynamic_repeat_changes, + "test_sequence_manager_complex_parametric_scenario": test_sequence_manager_complex_parametric_scenario } \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/static_value_provider_test.be b/lib/libesp32/berry_animation/src/tests/static_value_provider_test.be index 2f6b4f0aa..45ef72bca 100644 --- a/lib/libesp32/berry_animation/src/tests/static_value_provider_test.be +++ b/lib/libesp32/berry_animation/src/tests/static_value_provider_test.be @@ -127,15 +127,9 @@ def test_parameterized_object_integration() assert(provider.engine == engine, "Provider should have correct engine reference") # Test parameter system methods exist - assert(type(provider.get_params_metadata) == "function", "Should have get_params_metadata method") assert(type(provider.set_param) == "function", "Should have set_param method") assert(type(provider.get_param) == "function", "Should have get_param method") - # Test parameter metadata - var params = provider.get_params_metadata() - assert(params.contains("value"), "Should have 'value' parameter defined") - assert(params["value"]["default"] == nil, "Default value should be nil") - # Test parameter setting via parameter system assert(provider.set_param("value", 777) == true, "Should be able to set value via parameter system") assert(provider.get_param("value", nil) == 777, "Should retrieve value via parameter system") diff --git a/lib/libesp32/berry_animation/src/tests/test_all.be b/lib/libesp32/berry_animation/src/tests/test_all.be index a8cc38049..3647542d6 100644 --- a/lib/libesp32/berry_animation/src/tests/test_all.be +++ b/lib/libesp32/berry_animation/src/tests/test_all.be @@ -60,6 +60,7 @@ def run_all_tests() "lib/libesp32/berry_animation/src/tests/breathe_animation_test.be", "lib/libesp32/berry_animation/src/tests/color_cycle_animation_test.be", "lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be", # Tests ColorCycleColorProvider with bytes palette + "lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be", # Tests ColorCycleColorProvider palette_size read-only parameter "lib/libesp32/berry_animation/src/tests/rich_palette_animation_test.be", "lib/libesp32/berry_animation/src/tests/rich_palette_animation_class_test.be", "lib/libesp32/berry_animation/src/tests/comet_animation_test.be", diff --git a/lib/libesp32/berry_animation/src/tests/value_provider_test.be b/lib/libesp32/berry_animation/src/tests/value_provider_test.be index 62ace3d1d..ea3a4a323 100644 --- a/lib/libesp32/berry_animation/src/tests/value_provider_test.be +++ b/lib/libesp32/berry_animation/src/tests/value_provider_test.be @@ -98,7 +98,6 @@ def test_parameterized_object_integration() assert(provider.engine == engine, "Provider should have correct engine reference") # Test parameter system methods exist - assert(type(provider.get_params_metadata) == "function", "Should have get_params_metadata method") assert(type(provider.set_param) == "function", "Should have set_param method") assert(type(provider.get_param) == "function", "Should have get_param method")