diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md index 275bf06c4..5a801e6ae 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md +++ b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md @@ -26,65 +26,6 @@ This document contains a summary of the DSL compilation process, including symbo ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF110000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='heart_bg_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='150', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 150 - provider.duty_cycle = 20 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFCC0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='150', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 180 - provider.duration = 150 - provider.duty_cycle = 15 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFF660000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 30 - provider.max_value = 100 - provider.duration = 1000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 200 - provider.duration = 100 - provider.duty_cycle = 10 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) SUCCESS ``` @@ -106,16 +47,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF000033', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='night_sky_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFAA', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='300', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -157,67 +88,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.triangle(engine) - provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = 5000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.cosine_osc(engine) - provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = 5000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='64', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='eye_palette_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='eye_color_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='cosine_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='triangle_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='cosine_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_low_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_high_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_low_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='0xFF008000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_high_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=6 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='triangle_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='cosine_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='triangle_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='cosine_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_low_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_high_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_low_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='0xFF008000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_high_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -243,29 +113,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='fire_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='fire_base_color_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='800', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 180 - provider.max_value = 255 - provider.duration = 800 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='fire_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='flicker_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -290,51 +137,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='(strip_len_ + 1) / 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure '(strip_len_ + 1) / 2' -=== transform_expression_for_closure '(animation.resolve(strip_len_) + 1) / 2' -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = strip_len_ - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len2_ - (shutter_size_ + 1) / 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len2_ - (shutter_size_ + 1) / 2' -=== transform_expression_for_closure 'animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2' -> process_value context=1 result=ExpressionResult(expr='shutter_size_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len2_ - (strip_len_ - shutter_size_ + 1) / 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len2_ - (strip_len_ - shutter_size_ + 1) / 2' -=== transform_expression_for_closure 'animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2' -> process_value context=1 result=ExpressionResult(expr='strip_len_ - shutter_size_', funcs=false, vars=true, props=false, comp=true, type=value_provider, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - shutter_size_' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - animation.resolve(shutter_size_)' -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='col1_.palette_size', funcs=false, vars=false, props=true, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='col1_.palette_size', funcs=false, vars=false, props=true, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='rainbow_with_white_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -365,64 +167,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='disco_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='disco_rich_color_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 100 - provider.duty_cycle = 30 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 50 - provider.duty_cycle = 10 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='disco_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='sparkle_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='80', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='disco_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='800', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='pulse_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='56', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 4 - provider.max_value = 56 - provider.duration = 2000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) SUCCESS ``` @@ -441,10 +185,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='x_ + 4', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'x_ + 4' -=== transform_expression_for_closure 'animation.resolve(x_) + 4' SUCCESS ``` @@ -475,37 +215,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF000000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='matrix_bg_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='matrix_greens_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='stream1_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='matrix_greens_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1800', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='stream2_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='matrix_greens_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='stream3_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1800', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFF00FFAA', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='150', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -519,6 +228,7 @@ SUCCESS |---------------------|----------------------------|---------|-----------|------------| | `PALETTE_RAINBOW` | palette_constant | ✓ | | | | `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | +| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `col1` | color | | | | | `col2` | color | | | | | `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ | @@ -533,31 +243,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = strip_len_ - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='animation.PALETTE_RAINBOW', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.PALETTE_RAINBOW', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='shutter_size_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -571,6 +256,7 @@ SUCCESS |--------------------|----------------------------|---------|-----------|------------| | `background` | animation | | | | | `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | +| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `pos_test` | value_provider | | | | | `scanner_bg` | color | | | | | `scanner_trail` | animation | | | | @@ -581,40 +267,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF110000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='scanner_bg_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='57', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.triangle(engine) - provider.min_value = 2 - provider.max_value = 57 - provider.duration = 2000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFF660000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='57', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.triangle(engine) - provider.min_value = 2 - provider.max_value = 57 - provider.duration = 2000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='pos_test_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='128', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -633,17 +285,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='pal1_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='cycle_color_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='back_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='fire_palette_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='ocean_palette_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0xFF001100', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) SUCCESS ``` @@ -668,32 +309,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = strip_len_ - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='shutter_size_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='rainbow_with_white_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -708,6 +323,7 @@ SUCCESS | `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `candy_red` | color | | | | | `candy_white` | color | | | | +| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `move_speed` | variable | | | | | `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `stripe10` | animation | | | | @@ -724,149 +340,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_red_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_white_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='9', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_red_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_white_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='21', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_red_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='27', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_white_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='33', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_red_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='39', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_white_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='45', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_red_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='51', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='candy_white_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='57', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='63', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 3 - provider.max_value = 63 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='9', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='69', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 9 - provider.max_value = 69 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='75', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 15 - provider.max_value = 75 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='21', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='81', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 21 - provider.max_value = 81 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='27', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='87', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 27 - provider.max_value = 87 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='33', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='93', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 33 - provider.max_value = 93 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='39', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='99', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 39 - provider.max_value = 99 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='45', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='105', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 45 - provider.max_value = 105 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='51', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='111', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 51 - provider.max_value = 111 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='57', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='117', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='move_speed_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 57 - provider.max_value = 117 - provider.duration = move_speed_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) SUCCESS ``` @@ -877,9 +350,11 @@ SUCCESS ### Compilation Output ``` -DSL compilation failed -Errors: - Line 4: Cannot redefine predefined color 'red'. Use a different name like 'red_custom' or 'my_red' +dsl_compilation_error: Line 4: Transpilation failed: Line 4: Cannot redefine predefined color 'red'. Use a different name like 'red_custom' or 'my_red' +stack traceback: + : in function `error` + : in function `transpile` + : in function `main` ``` ## test_shutter_rainbow_bidir.anim @@ -903,48 +378,6 @@ Errors: ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ + 0', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ + 0' -=== transform_expression_for_closure 'animation.resolve(strip_len_) + 0' -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) + 0 end) - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='shutter_size_ + 0', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'shutter_size_ + 0' -=== transform_expression_for_closure 'animation.resolve(shutter_size_) + 0' -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - shutter_size_', funcs=false, vars=true, props=false, comp=true, type=value_provider, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - shutter_size_' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - animation.resolve(shutter_size_)' -> process_value context=1 result=ExpressionResult(expr='0 + 0', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='col1_.palette_size', funcs=false, vars=false, props=true, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='col1_.palette_size', funcs=false, vars=false, props=true, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='rainbow_with_white_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -968,27 +401,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFF00FF00', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='red_custom_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='blue_custom_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='green_custom_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='45', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='150', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1007,27 +419,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='eye_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='back_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(-1)', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.cosine_osc(engine) - provider.min_value = (-1) - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0x00000000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1061,41 +452,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='eye_palette_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='eye_duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.cosine_osc(engine) - provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = eye_duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='eye_duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.triangle(engine) - provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = eye_duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='eye_color_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='cosine_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='triangle_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='cosine_val_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1120,44 +476,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = strip_len_ - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='shutter_size_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - shutter_size_', funcs=false, vars=true, props=false, comp=true, type=value_provider, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - shutter_size_' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - animation.resolve(shutter_size_)' -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='col1_.palette_size', funcs=false, vars=false, props=true, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='col1_.palette_size', funcs=false, vars=false, props=true, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='rainbow_with_white_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1189,43 +507,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF006600', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='tree_green_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='ornament_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='ornament_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='800', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFF00', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='58', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 200 - provider.max_value = 255 - provider.duration = 2000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='400', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='ornament_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='garland_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1254,77 +535,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='plasma_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='plasma_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='wave1_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='40', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 0 - provider.max_value = 40 - provider.duration = 8000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='plasma_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='wave2_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='45', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='45', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 45 - provider.max_value = 15 - provider.duration = 10000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='plasma_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='220', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='wave3_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 20 - provider.max_value = 50 - provider.duration = 6000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='150', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 150 - provider.max_value = 255 - provider.duration = 12000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) SUCCESS ``` @@ -1353,52 +563,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='ocean_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='ocean_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='wave1_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='48', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = 48 - provider.duration = 5000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='ocean_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='wave2_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='52', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='52', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='7000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 52 - provider.max_value = 8 - provider.duration = 7000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='300', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1430,11 +594,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='palette_olivary_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='olivary_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1461,32 +620,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF000011', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='space_bg_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFAA00', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFAAAAFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1800', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFAAAA', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='14', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFCCCCCC', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='25', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1510,13 +643,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='fire_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='ocean_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.PALETTE_FOREST', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1527,21 +653,13 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.linear(engine) + nil', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation.linear(engine) + nil' -=== transform_expression_for_closure 'animation.linear(engine) + nil' -> process_value context=1 result=ExpressionResult(expr='animation.triangle(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='animation.linear(engine) + nil', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation.linear(engine) + nil' -=== transform_expression_for_closure 'animation.linear(engine) + nil' -DSL compilation failed -Errors: - Line 4: Function 'triangle' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: - set var_name = triangle() # Single function call - set computed = (existing_var + 1) / 2 # Computation with existing values - Line 6: Function 'triangle' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: - set var_name = triangle() # Single function call +dsl_compilation_error: Line 4: Transpilation failed: Line 4: Expression 'animation.linear(engine)' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: + set var_name = animation.linear(engine)() # Single function call set computed = (existing_var + 1) / 2 # Computation with existing values +stack traceback: + : in function `error` + : in function `transpile` + : in function `main` ``` ## fail_name_predefined.anim @@ -1551,9 +669,11 @@ Errors: ### Compilation Output ``` -DSL compilation failed -Errors: - Line 4: Cannot redefine built-in symbol 'abs' (type: 4). Use a different name like 'abs_custom' or 'my_abs' +dsl_compilation_error: Line 4: Transpilation failed: Line 4: Cannot redefine built-in symbol 'abs' (type: 4). Use a different name like 'abs_custom' or 'my_abs' +stack traceback: + : in function `error` + : in function `transpile` + : in function `main` ``` ## test_shutter_rainbow_central.anim @@ -1563,48 +683,13 @@ Errors: ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='(strip_len_ + 1) / 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure '(strip_len_ + 1) / 2' -=== transform_expression_for_closure '(animation.resolve(strip_len_) + 1) / 2' -> process_value context=1 result=ExpressionResult(expr='1 + nil', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(nil)', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.sawtooth(engine) - provider.min_value = 0 - provider.max_value = strip_len_ - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='colors_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col2_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='col1_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len3_ - shutter_size_ / 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len3_ - shutter_size_ / 2' -=== transform_expression_for_closure 'animation.resolve(strip_len3_) - animation.resolve(shutter_size_) / 2' -> process_value context=1 result=ExpressionResult(expr='shutter_size_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='rainbow_with_white_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=4 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -DSL compilation failed -Errors: - Line 38: Template 'shutter_central' body error: Line 12: Function 'strip_length' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: - set var_name = strip_length() # Single function call +dsl_compilation_error: Line 38: Transpilation failed: Line 12: Template body transpilation failed: Line 12: Expression 'animation.strip_length(engine)' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: + set var_name = animation.strip_length(engine)() # Single function call set computed = (existing_var + 1) / 2 # Computation with existing values - Line 38: Template 'shutter_central' body error: Line 13: Function 'strip_length' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: - set var_name = strip_length() # Single function call - set computed = (existing_var + 1) / 2 # Computation with existing values - Line 38: Template 'shutter_central' body error: Line 13: Expected ')' +stack traceback: + : in function `error` + : in function `transpile` + : in function `main` ``` ## sunrise_sunset.anim @@ -1628,72 +713,6 @@ Errors: ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='daylight_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='60000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFAA', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='55', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 5 - provider.max_value = 55 - provider.duration = 30000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 30000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFCC88', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='16', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='55', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 5 - provider.max_value = 55 - provider.duration = 30000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='150', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 0 - provider.max_value = 150 - provider.duration = 30000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 255 - provider.max_value = 0 - provider.duration = 30000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) SUCCESS ``` @@ -1718,8 +737,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='rainbow_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1751,33 +768,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='fire_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFF000088', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(-1)', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='6000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.cosine_osc(engine) - provider.min_value = (-1) - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = 6000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0x00000000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='eye_pos_', funcs=false, vars=true, props=false, comp=false, type=value_provider, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='fire_color_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ / 4', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ / 4' -=== transform_expression_for_closure 'animation.resolve(strip_len_) / 4' -> process_value context=1 result=ExpressionResult(expr='eye_mask_', funcs=false, vars=true, props=false, comp=false, type=animation, instance=nil) SUCCESS ``` @@ -1809,57 +799,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='neon_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='220', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 220 - provider.max_value = 255 - provider.duration = 200 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 50 - provider.duty_cycle = 2 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='neon_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.LINEAR', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='segment_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='segment_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='24', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='segment_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='42', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFAAAAFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1882,22 +821,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.cosine_osc(engine) - provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = 5000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -1926,23 +849,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation.get_user_function('rand_demo')(engine)' -=== transform_expression_for_closure 'animation.get_user_function('rand_demo')(engine)' -> process_value context=1 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine) + 100', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation._math.max(50, animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100))', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.max(50, animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100))' -=== transform_expression_for_closure 'animation._math.max(50, animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100))' -> process_value context=1 result=ExpressionResult(expr='0xFF008000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine) - 128', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation._math.abs(animation.get_user_function('rand_demo')(engine) - 128) + 64', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.abs(animation.get_user_function('rand_demo')(engine) - 128) + 64' -=== transform_expression_for_closure 'animation._math.abs(animation.get_user_function('rand_demo')(engine) - 128) + 64' SUCCESS ``` @@ -1974,75 +880,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='lava_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='lava_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='blob1_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='9', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='18', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='9', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='51', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 9 - provider.max_value = 51 - provider.duration = 20000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='lava_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='220', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='blob2_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='46', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='14', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='46', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='14', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='25000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 46 - provider.max_value = 14 - provider.duration = 25000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='lava_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='blob3_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='25', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='25', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='35', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='18000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 25 - provider.max_value = 35 - provider.duration = 18000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='lava_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='shimmer_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='1500', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -2065,55 +902,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='30', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='400', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 400 - provider.duty_cycle = 50 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='45', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='400', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 255 - provider.max_value = 0 - provider.duration = 400 - provider.duty_cycle = 50 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 100 - provider.duty_cycle = 5 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -2148,41 +936,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation.get_user_function('rand_demo')(engine)' -=== transform_expression_for_closure 'animation.get_user_function('rand_demo')(engine)' -> process_value context=1 result=ExpressionResult(expr='0xFFFFA500', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='50', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine) + 100', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation._math.max(50, animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100))', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.max(50, animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100))' -=== transform_expression_for_closure 'animation._math.max(50, animation._math.min(255, animation.get_user_function('rand_demo')(engine) + 100))' -> process_value context=1 result=ExpressionResult(expr='0xFF800080', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine) - 128', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation._math.abs(animation.get_user_function('rand_demo')(engine) - 128) + 64', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.abs(animation.get_user_function('rand_demo')(engine) - 128) + 64' -=== transform_expression_for_closure 'animation._math.abs(animation.get_user_function('rand_demo')(engine) - 128) + 64' -> process_value context=1 result=ExpressionResult(expr='0xFF00FFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation._math.max(100, animation.get_user_function('rand_demo')(engine))', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.max(100, animation.get_user_function('rand_demo')(engine))' -=== transform_expression_for_closure 'animation._math.max(100, animation.get_user_function('rand_demo')(engine))' -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='animation.get_user_function('rand_demo')(engine) - 100', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='(animation.get_user_function('rand_demo')(engine) + 128) / 2 + animation._math.abs(animation.get_user_function('rand_demo')(engine) - 100)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='animation._math.round((animation.get_user_function('rand_demo')(engine) + 128) / 2 + animation._math.abs(animation.get_user_function('rand_demo')(engine) - 100))', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.round((animation.get_user_function('rand_demo')(engine) + 128) / 2 + animation._math.abs(animation.get_user_function('rand_demo')(engine) - 100))' -=== transform_expression_for_closure 'animation._math.round((animation.get_user_function('rand_demo')(engine) + 128) / 2 + animation._math.abs(animation.get_user_function('rand_demo')(engine) - 100))' SUCCESS ``` @@ -2200,12 +953,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='base_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='204', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -2227,14 +974,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='strip_len_ / 4', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ / 4' -=== transform_expression_for_closure 'animation.resolve(strip_len_) / 4' -> process_value context=4 result=ExpressionResult(expr='strip_len_ / 4', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation._math.abs(strip_len_ / 4)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.abs(strip_len_ / 4)' -=== transform_expression_for_closure 'animation._math.abs(animation.resolve(strip_len_) / 4)' SUCCESS ``` @@ -2262,59 +1001,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='storm_colors_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='80', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 255 - provider.duration = 80 - provider.duty_cycle = 3 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFAA', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='30', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='20', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='15', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='120', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 200 - provider.duration = 120 - provider.duty_cycle = 4 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='0xFF4444FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='80', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.square(engine) - provider.min_value = 0 - provider.max_value = 80 - provider.duration = 200 - provider.duty_cycle = 8 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=5 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFF666699', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='300', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -2325,54 +1011,11 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='nil', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=4 result=ExpressionResult(expr='strip_len_ / 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation._math.abs(strip_len_ / 2)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.abs(strip_len_ / 2)' -=== transform_expression_for_closure 'animation._math.abs(animation.resolve(strip_len_) / 2)' -> process_value context=1 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.strip_length(engine) - provider.is_running = 0 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='animation.sawtooth(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='animation.triangle(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=4 result=ExpressionResult(expr='osc1_ + osc2_', funcs=false, vars=true, props=false, comp=true, type=value_provider, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation._math.scale(osc1_ + osc2_, 0, 200, 0, 255)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.scale(osc1_ + osc2_, 0, 200, 0, 255)' -=== transform_expression_for_closure 'animation._math.scale(animation.resolve(osc1_) + animation.resolve(osc2_), 0, 200, 0, 255)' -> process_value context=1 result=ExpressionResult(expr='animation.sawtooth(engine) + nil', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation.sawtooth(engine) + nil' -=== transform_expression_for_closure 'animation.sawtooth(engine) + nil' -> process_value context=1 result=ExpressionResult(expr='eye_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='back_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(-1)', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ - 2', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ - 2' -=== transform_expression_for_closure 'animation.resolve(strip_len_) - 2' -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.cosine_osc(engine) - provider.min_value = (-1) - provider.max_value = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - 2 end) - provider.duration = duration_ - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) -> process_value context=1 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -DSL compilation failed -Errors: - Line 29: Template 'cylon_effect' body error: Line 9: Unknown function or identifier 'abs2'. Make sure it's defined before use. - Line 29: Template 'cylon_effect' body error: Line 17: Function 'triangle' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: - set var_name = triangle() # Single function call - set computed = (existing_var + 1) / 2 # Computation with existing values +dsl_compilation_error: Line 29: Transpilation failed: Line 9: Template body transpilation failed: Line 9: Unknown function or identifier 'abs2'. Make sure it's defined before use. +stack traceback: + : in function `error` + : in function `transpile` + : in function `main` ``` ## computed_values_demo.anim @@ -2397,30 +1040,6 @@ Errors: ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='animation.strip_length(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=StripLengthProvider) -> process_value context=1 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='strip_len_ / 4', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation._math.abs(strip_len_ / 4)', funcs=true, vars=false, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'animation._math.abs(strip_len_ / 4)' -=== transform_expression_for_closure 'animation._math.abs(animation.resolve(strip_len_) / 4)' -> process_value context=1 result=ExpressionResult(expr='1.5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2.0', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='strip_len_ / 8 + (2 * strip_len_) - 10', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ / 8 + (2 * strip_len_) - 10' -=== transform_expression_for_closure 'animation.resolve(strip_len_) / 8 + (2 * animation.resolve(strip_len_)) - 10' -> process_value context=1 result=ExpressionResult(expr='base_speed_ * 1.5', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'base_speed_ * 1.5' -=== transform_expression_for_closure 'animation.resolve(base_speed_) * 1.5' -> process_value context=1 result=ExpressionResult(expr='(-1)', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='strip_len_ / 5', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ / 5' -=== transform_expression_for_closure 'animation.resolve(strip_len_) / 5' -> process_value context=5 result=ExpressionResult(expr='strip_len_ * 4', funcs=false, vars=true, props=false, comp=true, type=variable, instance=nil) -+++ transform_expression_for_closure 'strip_len_ * 4' -=== transform_expression_for_closure 'animation.resolve(strip_len_) * 4' SUCCESS ``` @@ -2447,27 +1066,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFF00FF00', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFF0000FF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFF800080', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=2 result=ExpressionResult(expr='0xFFFF8000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='breathe_palette_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='15000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='palette_pattern_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='100', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='255', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='4000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='(def (engine) - var provider = animation.smooth(engine) - provider.min_value = 100 - provider.max_value = 255 - provider.duration = 4000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=value_provider, instance=OscillatorValueProvider) SUCCESS ``` @@ -2485,12 +1083,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='base_color_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='duration_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=5 result=ExpressionResult(expr='brightness_', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='0xFFFF0000', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=4 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=4 result=ExpressionResult(expr='204', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -2527,27 +1119,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='fire_gradient_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(def (engine) - var provider = animation.rich_palette(engine) - provider.palette = fire_gradient_ - provider.cycle_period = 3000 - return provider -end)(engine)', funcs=true, vars=false, props=false, comp=false, type=color, instance=RichPaletteColorProvider) -> process_value context=1 result=ExpressionResult(expr='ocean_depths_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='200', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='aurora_borealis_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='12000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='180', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='sunset_sky_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='6000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='animation.SINE', funcs=false, vars=true, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='220', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=6 result=ExpressionResult(expr='3', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` @@ -2568,9 +1139,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=1 result=ExpressionResult(expr='rainbow_palette_', funcs=false, vars=true, props=false, comp=false, type=palette, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='rainbow_cycle_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) SUCCESS ``` @@ -2594,21 +1162,6 @@ SUCCESS ### Compilation Output ``` -> process_value context=2 result=ExpressionResult(expr='0xFF000066', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='space_blue_', funcs=false, vars=true, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFFFFFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='10', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='2000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='7', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFFF4500', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='3000', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='(-1)', funcs=false, vars=false, props=false, comp=true, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='5', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='0xFFAAAAFF', funcs=false, vars=false, props=false, comp=false, type=color, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='400', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) -> process_value context=1 result=ExpressionResult(expr='8', funcs=false, vars=false, props=false, comp=false, type=variable, instance=nil) SUCCESS ``` 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 9d5a4e766..2eae934c8 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be @@ -37,9 +37,11 @@ red_eye_.pos = cosine_val_ # oscillator for position 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_closure_step(def (engine) cosine_val_.start(engine.time_ms) end) + .push_play_step(red_eye_, animation.resolve(eye_duration_)) # use COSINE movement .push_closure_step(def (engine) red_eye_.pos = triangle_val_ end) # switch to TRIANGLE - .push_play_step(red_eye_, eye_duration_) + .push_closure_step(def (engine) triangle_val_.start(engine.time_ms) end) + .push_play_step(red_eye_, animation.resolve(eye_duration_)) .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_) @@ -69,8 +71,10 @@ animation red_eye = beacon_animation( ) sequence cylon_eye forever { + restart cosine_val play red_eye for eye_duration # use COSINE movement red_eye.pos = triangle_val # switch to TRIANGLE + restart triangle_val play red_eye for eye_duration red_eye.pos = cosine_val # switch back to COSINE for next iteration eye_color.next = 1 # advance to next color 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 index e60120da1..41a72424a 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be @@ -38,7 +38,7 @@ 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_play_step(shutter_animation_, animation.resolve(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) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be index c28b4115f..bdf3b639a 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be @@ -9,9 +9,6 @@ import animation # Demo Shutter Rainbow Bidir # # Shutter from left to right iterating in all colors, then right to left -# Auto-generated strip initialization (using Tasmota configuration) -var engine = animation.init_strip() - # Template function: shutter_bidir def shutter_bidir_template(engine, colors_, duration_) var strip_len_ = animation.strip_length(engine) @@ -48,13 +45,13 @@ def shutter_bidir_template(engine, colors_, duration_) var shutter_seq_ = animation.SequenceManager(engine, -1) .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_lr_animation_, duration_) + .push_play_step(shutter_lr_animation_, animation.resolve(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_play_step(shutter_rl_animation_, animation.resolve(duration_)) .push_closure_step(def (engine) col1_.next = 1 end) .push_closure_step(def (engine) col2_.next = 1 end) ) @@ -63,6 +60,9 @@ end animation.register_user_function('shutter_bidir', shutter_bidir_template) +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + var rainbow_with_white_ = bytes( "FFFF0000" "FFFFA500" diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be index ea200adc3..cf885fa07 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be @@ -46,13 +46,13 @@ def shutter_central_template(engine, colors_, duration_) var shutter_seq_ = animation.SequenceManager(engine, -1) .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_inout_animation_, duration_) + .push_play_step(shutter_inout_animation_, animation.resolve(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_outin_animation_, duration_) + .push_play_step(shutter_outin_animation_, animation.resolve(duration_)) .push_closure_step(def (engine) col1_.next = 1 end) .push_closure_step(def (engine) col2_.next = 1 end) ) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be index 76da7b54a..fda57e0a3 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be @@ -9,9 +9,6 @@ import animation # Demo Shutter Rainbow # # Shutter from left to right iterating in all colors, then right to left -# Auto-generated strip initialization (using Tasmota configuration) -var engine = animation.init_strip() - # Template function: shutter_lr def shutter_lr_template(engine, colors_, duration_) var strip_len_ = animation.strip_length(engine) @@ -39,7 +36,7 @@ def shutter_lr_template(engine, colors_, duration_) shutter_lr_animation_.priority = 5 var shutter_seq_ = animation.SequenceManager(engine, -1) .push_closure_step(def (engine) shutter_size_.start(engine.time_ms) end) - .push_play_step(shutter_lr_animation_, duration_) + .push_play_step(shutter_lr_animation_, animation.resolve(duration_)) .push_closure_step(def (engine) col1_.next = 1 end) .push_closure_step(def (engine) col2_.next = 1 end) engine.add(shutter_seq_) @@ -47,6 +44,9 @@ end animation.register_user_function('shutter_lr', shutter_lr_template) +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + var rainbow_with_white_ = bytes( "FFFF0000" "FFFFA500" 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 a699badd0..0db01863d 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 @@ -7,9 +7,6 @@ import animation # Complex template test -# Auto-generated strip initialization (using Tasmota configuration) -var engine = animation.init_strip() - # Template function: rainbow_pulse def rainbow_pulse_template(engine, pal1_, pal2_, duration_, back_color_) var cycle_color_ = animation.color_cycle(engine) @@ -33,12 +30,18 @@ end animation.register_user_function('rainbow_pulse', rainbow_pulse_template) # Create palettes +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + var fire_palette_ = bytes("00000000" "80FF0000" "FFFFFF00") var ocean_palette_ = bytes("00000080" "800080FF" "FF00FFFF") # Use the template rainbow_pulse_template(engine, fire_palette_, ocean_palette_, 3000, 0xFF001100) engine.run() +# Compilation warnings: +# Line 28: Template 'rainbow_pulse' parameter 'pal2' is declared but never used in the template body. + #- Original DSL source: # Complex template test diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be index 00a154e61..9a5f754bc 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be @@ -46,14 +46,14 @@ def shutter_bidir_template(engine, colors_, duration_) .push_repeat_subsequence(animation.SequenceManager(engine, def (engine) return col1_.palette_size end) .push_closure_step(def (engine) log(f"begin 1", 3) end) .push_closure_step(def (engine) shutter_size_.start(engine.time_ms) end) - .push_play_step(shutter_lr_animation_, duration_) + .push_play_step(shutter_lr_animation_, animation.resolve(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) log(f"begin 2", 3) end) .push_closure_step(def (engine) shutter_size_.start(engine.time_ms) end) - .push_play_step(shutter_rl_animation_, duration_) + .push_play_step(shutter_rl_animation_, animation.resolve(duration_)) .push_closure_step(def (engine) col1_.next = 1 end) .push_closure_step(def (engine) col2_.next = 1 end) ) diff --git a/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim b/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim index fb7d3a905..99ab95f77 100644 --- a/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim +++ b/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim @@ -20,8 +20,10 @@ animation red_eye = beacon_animation( ) sequence cylon_eye forever { + restart cosine_val play red_eye for eye_duration # use COSINE movement red_eye.pos = triangle_val # switch to TRIANGLE + restart triangle_val play red_eye for eye_duration red_eye.pos = cosine_val # switch back to COSINE for next iteration eye_color.next = 1 # advance to next color diff --git a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md index c431f563e..a1b8fa88e 100644 --- a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md +++ b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md @@ -1069,6 +1069,53 @@ Files containing only templates generate pure Berry function definitions without - Templates can be called multiple times to create multiple instances - `engine.run()` is automatically called when templates are used at the top level +### Template Parameter Validation + +The DSL transpiler provides comprehensive validation for template parameters to ensure code quality and catch errors early: + +**Parameter Name Validation:** +- **Duplicate Detection**: Prevents using the same parameter name twice +- **Reserved Keywords**: Prevents conflicts with Berry keywords (`animation`, `color`, `def`, etc.) +- **Built-in Colors**: Prevents conflicts with predefined color names (`red`, `blue`, etc.) + +```berry +template bad_example { + param color type color # ❌ Error: conflicts with built-in color + param animation type number # ❌ Error: conflicts with reserved keyword + param my_param type color + param my_param type number # ❌ Error: duplicate parameter name +} +``` + +**Type Annotation Validation:** +Valid parameter types are: `color`, `palette`, `animation`, `number`, `string`, `boolean`, `time`, `percentage`, `variable`, `value_provider` + +```berry +template type_example { + param my_color type invalid_type # ❌ Error: invalid type annotation + param valid_color type color # ✅ Valid type annotation +} +``` + +**Parameter Usage Validation:** +The transpiler generates **warnings** (not errors) for unused parameters: + +```berry +template unused_example { + param used_color type color + param unused_param type number # ⚠️ Warning: parameter never used + + animation test = solid(color=used_color) + run test +} +``` + +**Validation Benefits:** +- **Early Error Detection**: Catches parameter issues at compile time +- **Clear Error Messages**: Provides helpful suggestions for fixing issues +- **Code Quality**: Encourages proper parameter naming and usage +- **Warnings vs Errors**: Unused parameters generate warnings that don't prevent compilation + ## Execution Statements Execute animations or sequences: diff --git a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md index d96f00038..7d54d398e 100644 --- a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md +++ b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md @@ -600,17 +600,68 @@ set strip_len = strip_length() # Single function call set strip_len3 = (strip_len + 1) / 2 # Computation with existing value ``` +**Template Parameter Validation:** +```berry +# Error: Duplicate parameter names +template bad_template { + param color type color + param color type number # Error: duplicate parameter name +} +# Transpiler error: "Duplicate parameter name 'color' in template" + +# Error: Reserved keyword as parameter name +template reserved_template { + param animation type color # Error: conflicts with reserved keyword +} +# Transpiler error: "Parameter name 'animation' conflicts with reserved keyword" + +# Error: Built-in color name as parameter +template color_template { + param red type number # Error: conflicts with built-in color +} +# Transpiler error: "Parameter name 'red' conflicts with built-in color name" + +# Error: Invalid type annotation +template type_template { + param value type invalid_type # Error: invalid type +} +# Transpiler error: "Invalid parameter type 'invalid_type'. Valid types are: [...]" + +# Warning: Unused parameter (compilation succeeds) +template unused_template { + param used_color type color + param unused_param type number # Warning: never used + + animation test = solid(color=used_color) + run test +} +# Transpiler warning: "Template 'unused_template' parameter 'unused_param' is declared but never used" +``` + ### Error Categories - **Syntax errors**: Invalid DSL syntax (lexer/parser errors) - **Factory validation**: Non-existent or invalid animation/color provider factories - **Parameter validation**: Invalid parameter names in constructors or property assignments +- **Template validation**: Invalid template parameter names, types, or usage patterns - **Constraint validation**: Parameter values that violate defined constraints (min/max, enums, types) - **Reference validation**: Using undefined colors, animations, or variables - **Type validation**: Incorrect parameter types or incompatible assignments - **Safety validation**: Dangerous patterns that could cause memory leaks or performance issues - **Runtime errors**: Errors during Berry code execution (rare with good validation) +### Warning Categories + +The DSL transpiler also generates **warnings** that don't prevent compilation but indicate potential code quality issues: + +- **Unused parameters**: Template parameters that are declared but never used in the template body +- **Code quality**: Suggestions for better coding practices + +**Warning Behavior:** +- Warnings are included as comments in the generated Berry code +- Compilation succeeds even with warnings present +- Warnings help maintain code quality without being overly restrictive + ## Performance Considerations ### DSL vs Programmatic Performance diff --git a/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md b/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md index f49edcc19..a4dd64d1c 100644 --- a/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md +++ b/lib/libesp32/berry_animation/docs/TROUBLESHOOTING.md @@ -999,10 +999,10 @@ run red_solid ```berry # Define reusable template template pulse_effect { - param color type color - param speed + param base_color type color # Use descriptive names + param speed type time # Add type annotations for clarity - animation pulse = pulsating_animation(color=color, period=speed) + animation pulse = pulsating_animation(color=base_color, period=speed) run pulse } @@ -1011,6 +1011,31 @@ pulse_effect(red, 2s) pulse_effect(blue, 1s) ``` +**Common Template Parameter Issues:** + +```berry +# ❌ AVOID: Parameter name conflicts +template bad_example { + param color type color # Error: conflicts with built-in color name + param animation type number # Error: conflicts with reserved keyword +} + +# ✅ CORRECT: Use descriptive, non-conflicting names +template good_example { + param base_color type color # Clear, non-conflicting name + param anim_speed type time # Descriptive parameter name +} + +# ⚠️ WARNING: Unused parameters generate warnings +template unused_param_example { + param used_color type color + param unused_value type number # Warning: never used in template body + + animation test = solid(color=used_color) + run test +} +``` + ### Animation with Parameters ```berry color blue = 0x0000FF diff --git a/lib/libesp32/berry_animation/src/animation_dsl.be b/lib/libesp32/berry_animation/src/animation_dsl.be index bc24505b6..5eff202dd 100644 --- a/lib/libesp32/berry_animation/src/animation_dsl.be +++ b/lib/libesp32/berry_animation/src/animation_dsl.be @@ -102,4 +102,60 @@ def create_runtime(strip, debug_mode) end animation_dsl.create_runtime = create_runtime +# Compile .anim file to .be file +# Takes a filename with .anim suffix and compiles to same prefix with .be suffix +# +# @param filename: string - Path to .anim file +# @return bool - True if compilation successful +# @raises "io_error" - If file cannot be read or written +# @raises "dsl_compilation_error" - If DSL compilation fails +# @raises "invalid_filename" - If filename doesn't have .anim extension +def compile_file(filename) + import string + + # Validate input filename + if !string.endswith(filename, ".anim") + raise "invalid_filename", f"Input file must have .anim extension: {filename}" + end + + # Generate output filename + var base_name = filename[0..-6] # Remove .anim extension (5 chars + 1 for 0-based) + var output_filename = base_name + ".be" + + # Read DSL source + var f = open(filename, "r") + if f == nil + raise "io_error", f"Cannot open input file: {filename}" + end + + var dsl_source = f.read() + f.close() + + # Compile DSL to Berry code + var berry_code = animation_dsl.compile(dsl_source) + if berry_code == nil + raise "dsl_compilation_error", f"DSL compilation failed for: {filename}" + end + + # Generate header with metadata (no original source for compile_file) + var header = "# Generated Berry code from Animation DSL\n" + + f"# Source: {filename}\n" + + "# Generated automatically by animation_dsl.compile_file()\n" + + "# \n" + + "# Do not edit manually - changes will be overwritten\n" + + "\n" + + # Write complete Berry file (no footer with original source) + var output_f = open(output_filename, "w") + if output_f == nil + raise "io_error", f"Cannot create output file: {output_filename}" + end + + output_f.write(header + berry_code) + output_f.close() + + return true +end +animation_dsl.compile_file = compile_file + return animation_dsl diff --git a/lib/libesp32/berry_animation/src/dsl/lexer.be b/lib/libesp32/berry_animation/src/dsl/lexer.be index bc102e730..26b235df1 100644 --- a/lib/libesp32/berry_animation/src/dsl/lexer.be +++ b/lib/libesp32/berry_animation/src/dsl/lexer.be @@ -12,7 +12,6 @@ class DSLLexer var line # Integer - current line number (1-based) var column # Integer - current column number (1-based) var tokens # List - generated tokens - var errors # List - lexical errors encountered # Initialize lexer with source code # @@ -23,7 +22,6 @@ class DSLLexer self.line = 1 self.column = 1 self.tokens = [] - self.errors = [] end # Tokenize the entire source code @@ -31,7 +29,6 @@ class DSLLexer # @return list - Array of Token objects def tokenize() self.tokens = [] - self.errors = [] self.position = 0 self.line = 1 self.column = 1 @@ -117,8 +114,7 @@ class DSLLexer if hex_digits == 6 || hex_digits == 8 self.add_token(4 #-animation_dsl.Token.COLOR-#, color_value, size(color_value)) else - self.add_error("Invalid hex color format: " + color_value + " (expected 0xRRGGBB or 0xAARRGGBB)") - self.add_token(39 #-animation_dsl.Token.ERROR-#, color_value, size(color_value)) + self.error("Invalid hex color format: " + color_value + " (expected 0xRRGGBB or 0xAARRGGBB)") end end @@ -265,8 +261,7 @@ class DSLLexer end if self.at_end() - self.add_error("Unterminated string literal") - self.add_token(39 #-animation_dsl.Token.ERROR-#, value, self.position - start_pos) + self.error("Unterminated string literal") else # Consume closing quote self.advance() @@ -310,8 +305,7 @@ class DSLLexer # Check if we reached end without finding closing quotes if self.at_end() && !(self.source[self.position-3..self.position-1] == quote_char + quote_char + quote_char) - self.add_error("Unterminated triple-quoted string literal") - self.add_token(39 #-animation_dsl.Token.ERROR-#, value, self.position - start_pos) + self.error("Unterminated triple-quoted string literal") else self.add_token(3 #-animation_dsl.Token.STRING-#, value, self.position - start_pos) end @@ -323,9 +317,7 @@ class DSLLexer var start_column = self.column - 1 if self.at_end() || !(self.is_alpha(self.peek()) || self.peek() == '_') - self.add_error("Invalid variable reference: $ must be followed by identifier") - self.add_token(39 #-animation_dsl.Token.ERROR-#, "$", 1) - return + self.error("Invalid variable reference: $ must be followed by identifier") end # Scan identifier part @@ -358,7 +350,7 @@ class DSLLexer self.add_token(18 #-animation_dsl.Token.LESS_EQUAL-#, "<=", 2) elif self.match('<') # Left shift - not used in DSL but included for completeness - self.add_token(39 #-animation_dsl.Token.ERROR-#, "<<", 2) + self.error("Left shift operator '<<' not supported in DSL") else self.add_token(17 #-animation_dsl.Token.LESS_THAN-#, "<", 1) end @@ -367,7 +359,7 @@ class DSLLexer self.add_token(20 #-animation_dsl.Token.GREATER_EQUAL-#, ">=", 2) elif self.match('>') # Right shift - not used in DSL but included for completeness - self.add_token(39 #-animation_dsl.Token.ERROR-#, ">>", 2) + self.error("Right shift operator '>>' not supported in DSL") else self.add_token(19 #-animation_dsl.Token.GREATER_THAN-#, ">", 1) end @@ -375,15 +367,13 @@ class DSLLexer if self.match('&') self.add_token(21 #-animation_dsl.Token.LOGICAL_AND-#, "&&", 2) else - self.add_error("Single '&' not supported in DSL") - self.add_token(39 #-animation_dsl.Token.ERROR-#, "&", 1) + self.error("Single '&' not supported in DSL") end elif ch == '|' if self.match('|') self.add_token(22 #-animation_dsl.Token.LOGICAL_OR-#, "||", 2) else - self.add_error("Single '|' not supported in DSL") - self.add_token(39 #-animation_dsl.Token.ERROR-#, "|", 1) + self.error("Single '|' not supported in DSL") end elif ch == '-' if self.match('>') @@ -428,8 +418,7 @@ class DSLLexer self.add_token(33 #-animation_dsl.Token.DOT-#, ".", 1) end else - self.add_error("Unexpected character: '" + ch + "'") - self.add_token(39 #-animation_dsl.Token.ERROR-#, ch, 1) + self.error("Unexpected character: '" + ch + "'") end end @@ -510,37 +499,10 @@ class DSLLexer self.tokens.push(token) end - # Add error to errors list - def add_error(message) - self.errors.push({ - "message": message, - "line": self.line, - "column": self.column, - "position": self.position - }) - end - - # Get all errors encountered during tokenization - def get_errors() - return self.errors - end - - # Check if any errors were encountered - def has_errors() - return size(self.errors) > 0 - end - - # Get a formatted error report - def get_error_report() - if !self.has_errors() - return "No lexical errors" - end - - var report = "Lexical errors (" + str(size(self.errors)) + "):\n" - for error : self.errors - report += " Line " + str(error["line"]) + ":" + str(error["column"]) + ": " + error["message"] + "\n" - end - return report + # Raise lexical error immediately + def error(message) + var error_msg = "Line " + str(self.line) + ":" + str(self.column) + ": " + message + raise "lexical_error", error_msg end # Reset lexer state for reuse @@ -550,7 +512,6 @@ class DSLLexer self.line = 1 self.column = 1 self.tokens = [] - self.errors = [] end # Get current position info for debugging @@ -563,16 +524,7 @@ class DSLLexer } end - # Tokenize and return both tokens and errors - def tokenize_with_errors() - var tokens = self.tokenize() - var result = { - "tokens": tokens, - "errors": self.errors, - "success": !self.has_errors() - } - return result - end + end # Utility function to tokenize DSL source code @@ -584,17 +536,7 @@ def tokenize_dsl(source) return lexer.tokenize() end -# Utility function to tokenize with error handling -# -# @param source: string - DSL source code -# @return map - {tokens: list, errors: list, success: bool} -def tokenize_dsl_with_errors(source) - var lexer = animation_dsl.DSLLexer(source) - return lexer.tokenize_with_errors() -end - return { "DSLLexer": DSLLexer, - "tokenize_dsl": tokenize_dsl, - "tokenize_dsl_with_errors": tokenize_dsl_with_errors + "tokenize_dsl": tokenize_dsl } \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/dsl/transpiler.be b/lib/libesp32/berry_animation/src/dsl/transpiler.be index 50be17b8c..30870b39e 100644 --- a/lib/libesp32/berry_animation/src/dsl/transpiler.be +++ b/lib/libesp32/berry_animation/src/dsl/transpiler.be @@ -7,7 +7,7 @@ class SimpleDSLTranspiler var tokens # Token stream from lexer var pos # Current token position var output # Generated Berry code lines - var errors # Compilation errors + var warnings # Compilation warnings var run_statements # Collect all run statements for single engine.run() var strip_initialized # Track if strip was initialized var symbol_table # Enhanced symbol cache: name -> {type, instance, class_obj} @@ -31,108 +31,124 @@ class SimpleDSLTranspiler #@ solidify:ExpressionResult,weak static class ExpressionResult var expr # The expression string - var has_functions # Boolean: true if contains function calls - var has_variables # Boolean: true if contains variable references - var has_properties # Boolean: true if contains property access + var has_dynamic # Boolean: true if contains dynamic content that may change over time, hence needs to wrap into a closure + var has_dangerous # Boolean: true if contains dangerous code, i.e. code that creates new instances so it shouldn't be called at each tick but only at initialization var has_computation # Boolean: true if contains operators (computation) - var return_type # String: result type matching symbol_table.be types + var return_type # Int: result type number from SymbolEntry constants var instance_for_validation # Instance object for validation (nil by default) - def init(expr, has_functions, has_variables, has_properties, has_computation, return_type, instance_for_validation) + def init(expr, has_dynamic, has_dangerous, has_computation, return_type, instance_for_validation) self.expr = (expr != nil) ? expr : "" - self.has_functions = bool(has_functions) - self.has_variables = bool(has_variables) - self.has_properties = bool(has_properties) + self.has_dynamic = bool(has_dynamic) + self.has_dangerous = bool(has_dangerous) self.has_computation = bool(has_computation) - self.return_type = (return_type != nil) ? return_type : "variable" + self.return_type = (return_type != nil) ? return_type : animation_dsl._symbol_entry.TYPE_VARIABLE self.instance_for_validation = instance_for_validation # nil by default end # Check if this expression needs closure wrapping def needs_closure() - return self.has_computation && (self.has_functions || self.has_variables || self.has_properties) + return self.has_dynamic end # Check if this expression needs function wrapping def needs_function() - return (self.has_functions || self.has_variables || self.has_properties) + return self.has_dynamic end # String representation for debugging def tostring() var instance_str = (self.instance_for_validation != nil) ? f"instance={classname(self.instance_for_validation)}" : "instance=nil" - return f"ExpressionResult(expr='{self.expr}', funcs={self.has_functions}, vars={self.has_variables}, props={self.has_properties}, comp={self.has_computation}, type={self.return_type}, {instance_str})" + var type_str = self._type_to_string(self.return_type) + return f"ExpressionResult(expr='{self.expr}', dynamic={self.has_dynamic}, dangerous={self.has_dangerous}, comp={self.has_computation}, type={type_str}, {instance_str})" + end + + # Helper method to convert type number to string for debugging + def _type_to_string(type_num) + if type_num == animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT return "palette_constant" + elif type_num == animation_dsl._symbol_entry.TYPE_PALETTE return "palette" + elif type_num == animation_dsl._symbol_entry.TYPE_CONSTANT return "constant" + elif type_num == animation_dsl._symbol_entry.TYPE_MATH_FUNCTION return "math_function" + elif type_num == animation_dsl._symbol_entry.TYPE_USER_FUNCTION return "user_function" + elif type_num == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR return "value_provider_constructor" + elif type_num == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER return "value_provider" + elif type_num == animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR return "animation_constructor" + elif type_num == animation_dsl._symbol_entry.TYPE_ANIMATION return "animation" + elif type_num == animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR return "color_constructor" + elif type_num == animation_dsl._symbol_entry.TYPE_COLOR return "color" + elif type_num == animation_dsl._symbol_entry.TYPE_VARIABLE return "variable" + elif type_num == animation_dsl._symbol_entry.TYPE_SEQUENCE return "sequence" + elif type_num == animation_dsl._symbol_entry.TYPE_TEMPLATE return "template" + else return f"unknown({type_num})" + end end # Static method to combine expression results # Takes an expression string and 1-2 ExpressionResult parameters (checks for nil) static def combine(expr_str, result1, result2) - var has_functions = false - var has_variables = false - var has_properties = false + var has_dynamic = false + var has_dangerous = false var has_computation = true # If we're combining, it means there's an operator - var return_type = "variable" # Default to variable for composite expressions + var return_type = animation_dsl._symbol_entry.TYPE_VARIABLE # Default to variable for composite expressions # Combine flags from all non-nil results if result1 != nil - has_functions = has_functions || result1.has_functions - has_variables = has_variables || result1.has_variables - has_properties = has_properties || result1.has_properties + has_dynamic = has_dynamic || result1.has_dynamic + has_dangerous = has_dangerous || result1.has_dangerous has_computation = has_computation || result1.has_computation end if result2 != nil - has_functions = has_functions || result2.has_functions - has_variables = has_variables || result2.has_variables - has_properties = has_properties || result2.has_properties + has_dynamic = has_dynamic || result2.has_dynamic + has_dangerous = has_dangerous || result2.has_dangerous has_computation = has_computation || result2.has_computation end # Compute the new return type - # For composite expressions (combining two results), typically revert to "variable" + # For composite expressions (combining two results), typically revert to TYPE_VARIABLE # unless both operands are the same specific type if result1 != nil && result2 != nil # If both operands have the same specific type, preserve it - if result1.return_type == result2.return_type && result1.return_type != "variable" + if result1.return_type == result2.return_type && result1.return_type != animation_dsl._symbol_entry.TYPE_VARIABLE return_type = result1.return_type else # Different types or one is variable -> result is variable - return_type = "variable" + return_type = animation_dsl._symbol_entry.TYPE_VARIABLE end elif result1 != nil # Only one operand (unary operation) - preserve its type unless it's composite - return_type = has_computation ? "variable" : result1.return_type + return_type = has_computation ? animation_dsl._symbol_entry.TYPE_VARIABLE : result1.return_type elif result2 != nil # Only one operand (unary operation) - preserve its type unless it's composite - return_type = has_computation ? "variable" : result2.return_type + return_type = has_computation ? animation_dsl._symbol_entry.TYPE_VARIABLE : result2.return_type end - return _class(expr_str, has_functions, has_variables, has_properties, has_computation, return_type, nil) + return _class(expr_str, has_dynamic #-has_dynamic-#, has_dangerous #-has_dangerous-#, has_computation #-has_computation-#, return_type, nil) end # Create a simple literal result (no dynamic elements) static def literal(expr, return_type, instance_for_validation) - return _class(expr, false, false, false, false, return_type, instance_for_validation) + return _class(expr, false #-has_dynamic-#, false #-has_dangerous-#, false #-has_computation-#, return_type, instance_for_validation) end - # Create a function call result (comp=true) + # Create a function call result (dynamic=true, dangerous=true) static def function_call(expr, return_type, instance_for_validation) - return _class(expr, true, false, false, true, return_type, instance_for_validation) + return _class(expr, true #-has_dynamic-#, false #-has_dangerous-#, false #-has_computation-#, return_type, instance_for_validation) end - # Create a constructor call result (comp=false) + # Create a constructor call result (dynamic=false, dangerous=true) static def constructor_call(expr, return_type, instance_for_validation) - return _class(expr, true, false, false, false, return_type, instance_for_validation) + return _class(expr, false #-has_dynamic-#, true #-has_dangerous-#, false #-has_computation-#, return_type, instance_for_validation) end - # Create a variable reference result + # Create a variable reference result (dynamic=true, dangerous=false) static def variable_ref(expr, return_type, instance_for_validation) - return _class(expr, false, true, false, false, return_type, instance_for_validation) + return _class(expr, true #-has_dynamic-#, false #-has_dangerous-#, false #-has_computation-#, return_type, instance_for_validation) end - # Create a property access result + # Create a property access result (dynamic=true, dangerous=false) static def property_access(expr, return_type, instance_for_validation) - return _class(expr, false, false, true, false, return_type, instance_for_validation) + return _class(expr, true #-has_dynamic-#, false #-has_dangerous-#, false #-has_computation-#, return_type, instance_for_validation) end end @@ -140,7 +156,7 @@ class SimpleDSLTranspiler self.tokens = tokens != nil ? tokens : [] self.pos = 0 self.output = [] - self.errors = [] + self.warnings = [] # Separate array for warnings self.run_statements = [] self.strip_initialized = false # Track if strip was initialized self.symbol_table = animation_dsl._symbol_table() # Enhanced symbol cache with built-in detection @@ -150,29 +166,6 @@ class SimpleDSLTranspiler # Note: Special functions like 'log' are now auto-discovered dynamically by the symbol table end - - - # Check if a function call has parameters by looking ahead - def _has_function_parameters() - # Save current position - var saved_pos = self.pos - - # Expect and consume the opening parenthesis - if self.current() == nil || self.current().type != animation_dsl.Token.LEFT_PAREN - return false - end - self.next() # consume '(' - - # Skip whitespace and check if we immediately hit the closing parenthesis - self.skip_whitespace_including_newlines() - var has_params = !(self.current() != nil && self.current().type == animation_dsl.Token.RIGHT_PAREN) - - # Restore position - self.pos = saved_pos - - return has_params - end - # Get current indentation string def get_indent() return " " * (self.indent_level + 1) # Base indentation is 2 spaces @@ -226,73 +219,119 @@ class SimpleDSLTranspiler end end + # Helper method to unwrap animation.resolve() calls + # Takes an expression like "animation.resolve(strip_len_)" and returns "strip_len_" + # Returns nil if the expression doesn't match the pattern or if the unwrapped part isn't a valid identifier + def _unwrap_resolve(expr) + import string + + # Check if expression starts with "animation.resolve(" and ends with ")" + if string.find(expr, "animation.resolve(") == 0 && expr[-1] == ')' + # Extract the content between parentheses + var start_pos = size("animation.resolve(") + var end_pos = size(expr) - 1 # Position of the closing parenthesis + var inner_expr = expr[start_pos..end_pos-1] + + # Check if the inner expression looks like a valid identifier + # It should contain only letters, digits, and underscores, and not be empty + if size(inner_expr) > 0 && self._is_valid_identifier(inner_expr) + return inner_expr + end + end + + return nil + end + + # Helper method to check if a string is a valid identifier + def _is_valid_identifier(text) + import string + + if size(text) == 0 + return false + end + + # First character must be letter or underscore + var first_char = text[0] + if !((first_char >= 'a' && first_char <= 'z') || + (first_char >= 'A' && first_char <= 'Z') || + first_char == '_') + return false + end + + # Remaining characters must be letters, digits, or underscores + for i: 1..size(text)-1 + var ch = text[i] + if !((ch >= 'a' && ch <= 'z') || + (ch >= 'A' && ch <= 'Z') || + (ch >= '0' && ch <= '9') || + ch == '_') + return false + end + end + + return true + end + # Helper method to determine the return type of a function call def _determine_function_return_type(entry) if entry != nil if entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR || entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION - return "animation" + return animation_dsl._symbol_entry.TYPE_ANIMATION elif entry.type == animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR || entry.type == animation_dsl._symbol_entry.TYPE_COLOR - return "color" + return animation_dsl._symbol_entry.TYPE_COLOR elif entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR || entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER - return "value_provider" + return animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER elif entry.type == animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT || entry.type == animation_dsl._symbol_entry.TYPE_PALETTE - return "palette" + return animation_dsl._symbol_entry.TYPE_PALETTE elif entry.type == animation_dsl._symbol_entry.TYPE_MATH_FUNCTION - return "variable" # Math functions return numeric values + return animation_dsl._symbol_entry.TYPE_VARIABLE # Math functions return numeric values elif entry.type == animation_dsl._symbol_entry.TYPE_USER_FUNCTION || entry.type == animation_dsl._symbol_entry.TYPE_TEMPLATE - return "variable" # User functions and templates can return anything + return animation_dsl._symbol_entry.TYPE_VARIABLE # User functions and templates can return anything end end - return "variable" # Default fallback + return animation_dsl._symbol_entry.TYPE_VARIABLE # Default fallback end - # Helper method to create symbol entry based on return type string + # Helper method to create symbol entry based on return type number def _create_symbol_by_return_type(name, return_type, instance) - if return_type == "animation" + if return_type == animation_dsl._symbol_entry.TYPE_ANIMATION return self.symbol_table.create_animation(name, instance) - elif return_type == "color" + elif return_type == animation_dsl._symbol_entry.TYPE_COLOR return self.symbol_table.create_color(name, instance) - elif return_type == "value_provider" + elif return_type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER return self.symbol_table.create_value_provider(name, instance) - elif return_type == "palette" + elif return_type == animation_dsl._symbol_entry.TYPE_PALETTE return self.symbol_table.create_palette(name, instance) - elif return_type == "sequence" + elif return_type == animation_dsl._symbol_entry.TYPE_SEQUENCE return self.symbol_table.create_sequence(name) - elif return_type == "template" + elif return_type == animation_dsl._symbol_entry.TYPE_TEMPLATE return self.symbol_table.create_template(name, nil) - else # "variable" or any other type + else # TYPE_VARIABLE or any other type return self.symbol_table.create_variable(name) end end # Helper method to determine the return type of a symbol reference - def _determine_symbol_return_type(symbol_name) - # Check if it's a named color first - if animation_dsl.is_color_name(symbol_name) - return "color" + def _determine_symbol_return_type(entry) + if entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION || entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR + return animation_dsl._symbol_entry.TYPE_ANIMATION + elif entry.type == animation_dsl._symbol_entry.TYPE_COLOR || entry.type == animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR + return animation_dsl._symbol_entry.TYPE_COLOR + elif entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER || entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR + return animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER + elif entry.type == animation_dsl._symbol_entry.TYPE_PALETTE || entry.type == animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT + return animation_dsl._symbol_entry.TYPE_PALETTE + elif entry.type == animation_dsl._symbol_entry.TYPE_CONSTANT + return animation_dsl._symbol_entry.TYPE_VARIABLE # Constants are numeric values + elif entry.type == animation_dsl._symbol_entry.TYPE_VARIABLE + return animation_dsl._symbol_entry.TYPE_VARIABLE + elif entry.type == animation_dsl._symbol_entry.TYPE_SEQUENCE + return animation_dsl._symbol_entry.TYPE_SEQUENCE + elif entry.type == animation_dsl._symbol_entry.TYPE_TEMPLATE + return animation_dsl._symbol_entry.TYPE_TEMPLATE + else + return animation_dsl._symbol_entry.TYPE_VARIABLE # Default fallback end - - var entry = self.symbol_table.get(symbol_name) - if entry != nil - if entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION || entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR - return "animation" - elif entry.type == animation_dsl._symbol_entry.TYPE_COLOR || entry.type == animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR - return "color" - elif entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER || entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR - return "value_provider" - elif entry.type == animation_dsl._symbol_entry.TYPE_PALETTE || entry.type == animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT - return "palette" - elif entry.type == animation_dsl._symbol_entry.TYPE_CONSTANT - return "variable" # Constants are numeric values - elif entry.type == animation_dsl._symbol_entry.TYPE_VARIABLE - return "variable" - elif entry.type == animation_dsl._symbol_entry.TYPE_SEQUENCE - return "sequence" - elif entry.type == animation_dsl._symbol_entry.TYPE_TEMPLATE - return "template" - end - end - return "variable" # Default fallback end # Main transpilation method - single pass @@ -309,10 +348,18 @@ class SimpleDSLTranspiler # Generate single engine.run() call after all run statements self.generate_engine_run() - return size(self.errors) == 0 ? self.join_output() : nil + # Add warnings as comments if any exist + if self.has_warnings() + self.add("") + self.add("# Compilation warnings:") + for warning : self.warnings + self.add(f"# {warning}") + end + end + + return self.join_output() except .. as e, msg self.error(f"Transpilation failed: {msg}") - return nil end end @@ -334,10 +381,9 @@ class SimpleDSLTranspiler end end - return size(self.errors) == 0 ? self.join_output() : nil + return self.join_output() except .. as e, msg self.error(f"Template body transpilation failed: {msg}") - return nil end end @@ -452,9 +498,23 @@ class SimpleDSLTranspiler # Check if this is a template call first if entry != nil && entry.type == animation_dsl._symbol_entry.TYPE_TEMPLATE - # This is a template call - treat like user function - var args = self.process_function_arguments(false) - var full_args = args != "" ? f"engine, {args}" : "engine" + # This is a template call - validate and process + var args_str = self.process_function_arguments(false) + + # Validate template call arguments + var provided_args = args_str != "" ? self._split_function_arguments(args_str) : [] + var template_info = entry.instance # This should contain parameter info + if template_info != nil && template_info.contains("params") + var expected_params = template_info["params"] + var param_types = template_info.find("param_types", {}) + + if !self._validate_template_call_arguments(func_name, provided_args, expected_params, param_types) + self.skip_statement() + return + end + end + + var full_args = args_str != "" ? f"engine, {args_str}" : "engine" self.add(f"var {name}_ = {func_name}_template({full_args}){inline_comment}") # Register in symbol table as color instance @@ -702,7 +762,8 @@ class SimpleDSLTranspiler else # Built-in functions use the new engine-first + named parameters pattern # Validate that the factory function creates an animation instance at transpile time - if !self._validate_animation_factory_creates_animation(func_name) + # Use symbol table's dynamic detection with type checking for animation constructors only + if entry == nil || entry.type != animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR self.error(f"Animation factory function '{func_name}' does not exist or does not create an instance of animation.animation class. Check the function name and ensure it returns an animation object.") self.skip_statement() return @@ -773,9 +834,10 @@ class SimpleDSLTranspiler self.expect_left_brace() - # First pass: collect all parameters + # First pass: collect all parameters with validation var params = [] var param_types = {} + var param_names_seen = {} # Track duplicate parameter names while !self.at_end() && !self.check_right_brace() self.skip_whitespace_including_newlines() @@ -791,14 +853,28 @@ class SimpleDSLTranspiler self.next() # skip 'param' var param_name = self.expect_identifier() + # Validate parameter name + if !self._validate_template_parameter_name(param_name, param_names_seen) + self.skip_statement() + return + end + # Check for optional type annotation var param_type = nil if self.current() != nil && self.current().type == animation_dsl.Token.KEYWORD && self.current().value == "type" self.next() # skip 'type' param_type = self.expect_identifier() + + # Validate type annotation + if !self._validate_template_parameter_type(param_type) + self.skip_statement() + return + end end + # Add parameter to collections params.push(param_name) + param_names_seen[param_name] = true if param_type != nil param_types[param_name] = param_type end @@ -846,8 +922,12 @@ class SimpleDSLTranspiler # Generate Berry function for this template self.generate_template_function(name, params, param_types, body_tokens) - # Add template to symbol table with parameter types - self.symbol_table.create_template(name, param_types) + # Add template to symbol table with parameter information + var template_info = { + "params": params, + "param_types": param_types + } + self.symbol_table.create_template(name, template_info) end # Process sequence definition: sequence demo { ... } or sequence demo repeat N times { ... } @@ -937,7 +1017,7 @@ class SimpleDSLTranspiler return end - # Skip whitespace (newlines) + # Skip whitespace (newlines) - we specifically don't call skip_whitespace_including_newlines() if tok.type == animation_dsl.Token.NEWLINE self.next() return @@ -955,43 +1035,8 @@ class SimpleDSLTranspiler elif tok.type == animation_dsl.Token.KEYWORD && tok.value == "restart" self.process_restart_statement_fluent() - elif tok.type == animation_dsl.Token.KEYWORD && tok.value == "reset" - self.error("'reset' command is no longer supported. Use 'restart' instead.") - self.skip_statement() - elif tok.type == animation_dsl.Token.KEYWORD && tok.value == "repeat" - self.next() # skip 'repeat' - - # Parse repeat count: either number or "forever" - var repeat_count = "1" - var tok_after_repeat = self.current() - if tok_after_repeat != nil && tok_after_repeat.type == animation_dsl.Token.KEYWORD && tok_after_repeat.value == "forever" - self.next() # skip 'forever' - repeat_count = "-1" # -1 means forever - else - var count_result = self.process_value(self.CONTEXT_REPEAT_COUNT) - self.expect_keyword("times") - repeat_count = count_result.expr - end - - self.expect_left_brace() - - # Create a nested sub-sequence using recursive processing - self.add(f"{self.get_indent()}.push_repeat_subsequence(animation.SequenceManager(engine, {repeat_count})") - - # Increase indentation level for nested content - self.indent_level += 1 - - # Process repeat body recursively - just call the same method - while !self.at_end() && !self.check_right_brace() - self.process_sequence_statement() - end - - self.expect_right_brace() - - # Decrease indentation level and close the sub-sequence - self.add(f"{self.get_indent()})") - self.indent_level -= 1 + self.process_repeat_statement_fluent() elif tok.type == animation_dsl.Token.IDENTIFIER # Check if this is a property assignment (identifier.property = value) @@ -1023,11 +1068,6 @@ class SimpleDSLTranspiler self.add(f"{self.get_indent()}.push_closure_step({closure_code}){inline_comment}") end - # Process property assignment inside sequences: object.property = value (legacy) - def process_sequence_assignment(indent) - self.process_sequence_assignment_generic(indent, "steps") - end - # Generic method to process sequence assignment with configurable target array def process_sequence_assignment_generic(indent, target_array) var object_name = self.expect_identifier() @@ -1174,6 +1214,42 @@ class SimpleDSLTranspiler self.add(f"{self.get_indent()}.push_closure_step({closure_code}){inline_comment}") end + # Helper method to process repeat statement using fluent style + def process_repeat_statement_fluent() + self.next() # skip 'repeat' + + # Parse repeat count: either number or "forever" + var repeat_count = "1" + var tok_after_repeat = self.current() + if tok_after_repeat != nil && tok_after_repeat.type == animation_dsl.Token.KEYWORD && tok_after_repeat.value == "forever" + self.next() # skip 'forever' + repeat_count = "-1" # -1 means forever + else + var count_result = self.process_value(self.CONTEXT_REPEAT_COUNT) + self.expect_keyword("times") + repeat_count = count_result.expr + end + + self.expect_left_brace() + + # Create a nested sub-sequence using recursive processing + self.add(f"{self.get_indent()}.push_repeat_subsequence(animation.SequenceManager(engine, {repeat_count})") + + # Increase indentation level for nested content + self.indent_level += 1 + + # Process repeat body recursively - just call the same method + while !self.at_end() && !self.check_right_brace() + self.process_sequence_statement() + end + + self.expect_right_brace() + + # Decrease indentation level and close the sub-sequence + self.add(f"{self.get_indent()})") + self.indent_level -= 1 + end + # Process import statement: import user_functions or import module_name def process_import() self.next() # skip 'import' @@ -1299,24 +1375,34 @@ class SimpleDSLTranspiler def process_value(context) var result = self.process_additive_expression(context, true, false) # true = top-level, false = not raw mode # Handle closure wrapping for top-level expressions (not in raw mode) only if there is computation needed - print(f"> process_value {context=} {result=}") - if ((context == self.CONTEXT_VARIABLE || context == self.CONTEXT_PROPERTY) && result.needs_closure()) + # print(f"> process_value {context=} {result.needs_function()=} {result=}") + if (((context == self.CONTEXT_VARIABLE) || (context == self.CONTEXT_PROPERTY)) && result.needs_closure()) || ((context == self.CONTEXT_REPEAT_COUNT) && result.needs_function()) # Special handling for repeat_count context - always create simple function for property access if context == self.CONTEXT_REPEAT_COUNT - import string - if string.find(result.expr, ".") >= 0 - var closure_expr = self.create_simple_function_from_string(result.expr) - # Return new ExpressionResult with closure expression but preserve return type - return self.ExpressionResult.function_call(closure_expr) - else - # Return the original result unchanged - return result - end + # print(f">>> CONTEXT_REPEAT_COUNT") + var closure_expr = f"def (engine) return {result.expr} end" + # Return new ExpressionResult with closure expression but preserve return type + return self.ExpressionResult.function_call(closure_expr, result.return_type) else - var closure_expr = self.create_computation_closure_from_string(result.expr) + # Default behavior is to wrap into `animation.create_closure_value(engine, def (engine) return <> end)` + var expr = f"animation.create_closure_value(engine, def (engine) return {result.expr} end)" + + if result.return_type == animation_dsl._symbol_entry.TYPE_ANIMATION && !result.has_computation + # Special case of a reference to another variable containing an animation, in such case no need for wrapping + expr = result.expr + end + + # Simple optimization, unwrap a single `animation.resolve()` instead of wrapping in a closure + var unwrapped_expr = self._unwrap_resolve(result.expr) + # print(f"{unwrapped_expr=}") + if unwrapped_expr != nil + expr = unwrapped_expr # override expr + end + + # var closure_expr = self.create_computation_closure_from_string(result.expr) var entry_for_closure_value = self.symbol_table.get("closure_value") - return self.ExpressionResult.function_call(closure_expr, entry_for_closure_value.type, entry_for_closure_value.instance) + return self.ExpressionResult.function_call(expr, entry_for_closure_value.type, entry_for_closure_value.instance) end else # Return the original result unchanged @@ -1368,7 +1454,17 @@ class SimpleDSLTranspiler var op = tok.value self.next() # consume operator var right_result = self.process_multiplicative_expression(context, false, raw_mode) # sub-expressions are not top-level + + # Check if either of left or right are dangerous calls, if so raise an error + if left_result.has_dangerous || right_result.has_dangerous + var dangerous_expr = left_result.has_dangerous ? left_result.expr : right_result.expr + self.error(f"Expression '{dangerous_expr}' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either:\n set var_name = {dangerous_expr}() # Single function call\n set computed = (existing_var + 1) / 2 # Computation with existing values") + self.skip_statement() + return self.ExpressionResult.literal("nil") + end + left_result = self.ExpressionResult.combine(f"{left_result.expr} {op} {right_result.expr}", left_result, right_result) + else break end @@ -1387,6 +1483,16 @@ class SimpleDSLTranspiler var op = tok.value self.next() # consume operator var right_result = self.process_unary_expression(context, false, raw_mode) # sub-expressions are not top-level + + # Check if either of left or right are dangerous calls, if so raise an error + if left_result.has_dangerous || right_result.has_dangerous + var dangerous_expr = left_result.has_dangerous ? left_result.expr : right_result.expr + self.error(f"Expression '{dangerous_expr}' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either:\n set var_name = {dangerous_expr}() # Single function call\n set computed = (existing_var + 1) / 2 # Computation with existing values") + self.skip_statement() + return self.ExpressionResult.literal("nil") + end + + left_result = self.ExpressionResult.combine(f"{left_result.expr} {op} {right_result.expr}", left_result, right_result) else break @@ -1408,7 +1514,7 @@ class SimpleDSLTranspiler if tok.type == animation_dsl.Token.MINUS self.next() # consume the minus var expr_result = self.process_unary_expression(context, false, raw_mode) # sub-expressions are not top-level - return self.ExpressionResult(f"(-{expr_result.expr})", expr_result.has_functions, expr_result.has_variables, expr_result.has_properties, true) + return self.ExpressionResult(f"(-{expr_result.expr})", expr_result.has_dynamic, expr_result.has_dangerous, true #-force has_computation-#, expr_result.return_type, expr_result.instance_for_validation) end # Handle unary plus (optional) @@ -1432,13 +1538,13 @@ class SimpleDSLTranspiler self.next() # consume '(' var expr_result = self.process_additive_expression(context, false, raw_mode) # parenthesized expressions are not top-level self.expect_right_paren() - return self.ExpressionResult(f"({expr_result.expr})", expr_result.has_functions, expr_result.has_variables, expr_result.has_properties, true) + return self.ExpressionResult(f"({expr_result.expr})", expr_result.has_dynamic, expr_result.has_dangerous, expr_result.has_computation, expr_result.return_type, expr_result.instance_for_validation) end # Color value if tok.type == animation_dsl.Token.COLOR self.next() - return self.ExpressionResult.literal(self.convert_color(tok.value), "color") + return self.ExpressionResult.literal(self.convert_color(tok.value), animation_dsl._symbol_entry.TYPE_COLOR) end # Time value @@ -1481,7 +1587,6 @@ class SimpleDSLTranspiler # Anthing that looks like a function call 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 var entry = self.symbol_table.get(func_name) @@ -1499,14 +1604,6 @@ class SimpleDSLTranspiler return self.ExpressionResult.function_call(result) end - # Check for dangerous function calls (constructors that create new instances) - # Only block them in computed expressions (when not top-level) - if !is_top_level && entry.is_dangerous_call() - self.error(f"Function '{func_name}' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either:\n set var_name = {func_name}() # Single function call\n set computed = (existing_var + 1) / 2 # Computation with existing values") - self.skip_statement() - return self.ExpressionResult.literal("nil") - end - # In raw mode, handle function calls differently if raw_mode self.next() @@ -1583,25 +1680,25 @@ class SimpleDSLTranspiler # Use consolidated symbol resolution for the object reference var object_ref = self.symbol_table.get_reference(name) - # In raw mode or repeat_count context, generate simple property access - if raw_mode || context == self.CONTEXT_REPEAT_COUNT - return self.ExpressionResult.property_access(f"{object_ref}.{property_name}", "variable") - else - # Return a closure expression that will be wrapped by the caller if needed - return self.ExpressionResult.property_access(f"animation.resolve({object_ref}, '{property_name}')", "variable") - end + return self.ExpressionResult.property_access(f"{object_ref}.{property_name}", "variable") end + if entry.type == animation_dsl._symbol_entry.TYPE_COLOR || + entry.type == animation_dsl._symbol_entry.TYPE_PALETTE || + entry.type == animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT || + entry.type == animation_dsl._symbol_entry.TYPE_CONSTANT + return self.ExpressionResult.literal(entry.get_reference(), animation_dsl._symbol_entry.TYPE_COLOR) + end + # Regular identifier - check if it's a variable reference var ref = self.symbol_table.get_reference(name) - if self.symbol_table.symbol_exists(name) - var return_type = self._determine_symbol_return_type(name) - return self.ExpressionResult.variable_ref(ref, return_type) - else - self.error(f"Unknown identifier '{name}'. Make sure it's defined before use.") - self.skip_statement() - return self.ExpressionResult.literal("nil") + var return_type = self._determine_symbol_return_type(entry) # compute the return type based on entry + if entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER || + entry.type == animation_dsl._symbol_entry.TYPE_VARIABLE + # Special case for simple value providers, wrap in animation.resolve() + return self.ExpressionResult.function_call(f"animation.resolve({ref})", return_type) end + return self.ExpressionResult.variable_ref(ref, return_type) end # Handle keywords that should be treated as identifiers (not sure this actually happens), 'run' @@ -1616,182 +1713,6 @@ class SimpleDSLTranspiler return self.ExpressionResult.literal("nil") end - # Check if an expression string contains computed values that need a closure - def is_computed_expression_string(expr_str) - import string - - # Check if the expression contains operators that make it a computation - var has_operators = ( - string.find(expr_str, " + ") >= 0 || # Addition - string.find(expr_str, " - ") >= 0 || # Subtraction - string.find(expr_str, " * ") >= 0 || # Multiplication - string.find(expr_str, " / ") >= 0 # Division - ) - - # Check for function calls (parentheses with identifiers before them) - # This excludes simple parenthesized literals like (-1) and simple function calls - var has_function_calls = false - var paren_pos = string.find(expr_str, "(") - if paren_pos > 0 - # Check if there's an identifier before the parenthesis (indicating a function call) - var char_before = expr_str[paren_pos-1] - if self.is_identifier_char(char_before) - # Extract the function name to check if it's a simple function - var func_start = paren_pos - 1 - while func_start >= 0 && self.is_identifier_char(expr_str[func_start]) - func_start -= 1 - end - func_start += 1 - var func_name = expr_str[func_start..paren_pos-1] - - # Only mark as needing closure if it's NOT a simple function - if self._is_named_arg_constructor(func_name) - has_function_calls = true - end - end - end - - # Only create closures for expressions that actually involve computation - return has_operators || has_function_calls - end - - # Check if an expression contains computed values that need a closure (legacy method) - def is_computed_expression(left, op, right) - import string - - # Check if either operand contains a function call, variable reference, or user variable - # We're permissive here - any expression with these patterns gets a closure - var has_dynamic_content = ( - string.find(left, "(") >= 0 || string.find(right, "(") >= 0 || # Function calls - string.find(left, "animation.") >= 0 || string.find(right, "animation.") >= 0 || # Animation module calls - string.find(left, "_") >= 0 || string.find(right, "_") >= 0 # User variables (might be ValueProviders) - ) - - 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 - - # Transform the entire expression to handle ValueProvider instances - var transformed_expr = self.transform_expression_for_closure(expr_str) - - # Clean up spacing in the expression - remove extra spaces - while string.find(transformed_expr, " ") >= 0 - transformed_expr = string.replace(transformed_expr, " ", " ") - end - - var closure_code = f"def (engine) return {transformed_expr} end" - - # Return a closure value provider instance - 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 - print(f"+++ transform_expression_for_closure '{expr_str}'") - var result = expr_str - var pos = 0 - - # First pass: Check for and reject dangerous function calls in computed expressions - # This prevents dangerous patterns where functions that create new instances are called - # inside closures, which would create a new instance at each closure evaluation - - # Look for animation.function_name(engine) patterns and check if they're dangerous - var search_pos = 0 - while true - var anim_pos = string.find(result, "animation.", search_pos) - if anim_pos < 0 - break - end - - # Find the function name after "animation." - var func_start = anim_pos + 10 # length of "animation." - var func_end = func_start - while func_end < size(result) && (self.is_identifier_char(result[func_end]) || result[func_end] == '_') - func_end += 1 - end - - if func_end > func_start && func_end + 8 < size(result) && result[func_end..func_end+7] == "(engine)" - var func_name = result[func_start..func_end-1] - - end - - search_pos = anim_pos + 1 - end - - # Second pass: Replace all user variables (ending with _) with resolve calls - pos = 0 - while pos < size(result) - var underscore_pos = string.find(result, "_", pos) - if underscore_pos < 0 - break - end - - # Find the start of the identifier - var start_pos = underscore_pos - while start_pos > 0 && self.is_identifier_char(result[start_pos-1]) - start_pos -= 1 - end - - # Check if this is a user variable (not preceded by "animation." or already inside a resolve call) - var is_user_var = true - if start_pos >= 18 - var check_start = start_pos >= 18 ? start_pos - 18 : 0 - var prefix = result[check_start..start_pos-1] - if string.find(prefix, "animation.resolve(") >= 0 - is_user_var = false - end - end - if is_user_var && start_pos >= 10 - var check_start = start_pos >= 10 ? start_pos - 10 : 0 - var prefix = result[check_start..start_pos-1] - if string.find(prefix, "animation.") >= 0 - is_user_var = false - end - end - - if is_user_var && start_pos < underscore_pos - # Extract the variable name - var var_name = result[start_pos..underscore_pos] - - # Check if it's followed by non-identifier characters - var end_pos = underscore_pos + 1 - if end_pos >= size(result) || !self.is_identifier_char(result[end_pos]) - # Replace the variable with the resolve call - var replacement = f"animation.resolve({var_name})" - var before = start_pos > 0 ? result[0..start_pos-1] : "" - var after = end_pos < size(result) ? result[end_pos..] : "" - result = before + replacement + after - pos = start_pos + size(replacement) - else - pos = underscore_pos + 1 - end - else - pos = underscore_pos + 1 - end - end - - print(f"=== transform_expression_for_closure '{result}'") - return result - end - - # Helper method to check if a character is part of an identifier - def is_identifier_char(ch) - return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || ch == '_' - end - # Process function call (legacy - for non-animation contexts) def process_function_call(context) var tok = self.current() @@ -2097,11 +2018,6 @@ class SimpleDSLTranspiler end end - # Process named arguments for a variable (new simpler pattern with parameter validation) - def process_named_arguments_for_variable(var_name) - self._process_named_arguments_unified(var_name, "", self.CONTEXT_VARIABLE) - end - def expect_assign() var tok = self.current() if tok != nil && tok.type == animation_dsl.Token.ASSIGN @@ -2303,26 +2219,6 @@ class SimpleDSLTranspiler end end - # Handle legacy # hex colors (for backward compatibility during transition) - if string.startswith(color_str, "#") - if size(color_str) == 9 # #AARRGGBB (with alpha channel) - return f"0x{color_str[1..]}" - elif size(color_str) == 7 # #RRGGBB (without alpha channel - add opaque alpha) - return f"0xFF{color_str[1..]}" - elif size(color_str) == 5 # #ARGB (short form with alpha) - var a = color_str[1] - var r = color_str[2] - var g = color_str[3] - var b = color_str[4] - return f"0x{a}{a}{r}{r}{g}{g}{b}{b}" - elif size(color_str) == 4 # #RGB (short form without alpha - add opaque alpha) - var r = color_str[1] - var g = color_str[2] - var b = color_str[3] - return f"0xFF{r}{r}{g}{g}{b}{b}" - end - end - # Handle named colors - use framework's color name system if animation_dsl.is_color_name(color_str) return self.get_named_color_value(color_str) @@ -2429,15 +2325,21 @@ class SimpleDSLTranspiler def error(msg) var line = self.current() != nil ? self.current().line : 0 - self.errors.push(f"Line {line}: {msg}") + var error_msg = f"Line {line}: {msg}" + raise "dsl_compilation_error", error_msg end - def get_errors() - return self.errors + def warning(msg) + var line = self.current() != nil ? self.current().line : 0 + self.warnings.push(f"Line {line}: {msg}") end - def has_errors() - return size(self.errors) > 0 + def get_warnings() + return self.warnings + end + + def has_warnings() + return size(self.warnings) > 0 end def get_symbol_table_report() @@ -2595,14 +2497,19 @@ class SimpleDSLTranspiler end def get_error_report() - if !self.has_errors() - return "No compilation errors" + var report = "" + + if self.has_warnings() + report += "Compilation warnings:\n" + for warning : self.warnings + report += " " + warning + "\n" + end end - var report = "Compilation errors:\n" - for error : self.errors - report += " " + error + "\n" + if report == "" + return "No compilation warnings" end + return report end @@ -2660,8 +2567,7 @@ class SimpleDSLTranspiler else # Assume it's an animation function call or reference var action_result = self.process_value(self.CONTEXT_ANIMATION) - self.add(f" var temp_anim = {action_result.expr}") - self.add(f" engine.add(temp_anim)") + self.add(f" engine.add({action_result.expr})") end end @@ -2753,9 +2659,16 @@ class SimpleDSLTranspiler template_transpiler.symbol_table = animation_dsl._symbol_table() # Fresh symbol table for template template_transpiler.strip_initialized = true # Templates assume engine exists - # Add parameters to template's symbol table + # Add parameters to template's symbol table with proper types for param : params - template_transpiler.symbol_table.create_variable(param) # Parameters are treated as variables + var param_type = param_types.find(param) + if param_type != nil + # Create typed parameter based on type annotation + self._add_typed_parameter_to_symbol_table(template_transpiler.symbol_table, param, param_type) + else + # Default to variable type for untyped parameters + template_transpiler.symbol_table.create_variable(param) + end end # Transpile the template body @@ -2769,6 +2682,9 @@ class SimpleDSLTranspiler self.add(f" {line}") # Add 2-space indentation end end + + # Validate parameter usage in template body (post-transpilation check) + self._validate_template_parameter_usage(name, params, template_body) else # Error in template body transpilation for error : template_transpiler.errors @@ -2816,8 +2732,11 @@ class SimpleDSLTranspiler end end + except "dsl_compilation_error" as e, msg + # Re-raise DSL compilation errors (these are intentional validation failures) + raise e, msg except .. as e, msg - # If validation fails for any reason, just continue + # If validation fails for any other reason, just continue # This ensures the transpiler is robust even if validation has issues end end @@ -2826,16 +2745,15 @@ class SimpleDSLTranspiler # # @param object_name: string - Name of the object being referenced # @param context: string - Context where the reference occurs (for error messages) + # @return bool: true if exists, false if not found def _validate_object_reference(object_name, context) - try - # Use consolidated symbol resolution - self.validate_symbol_reference(object_name, context) - except .. as e, msg - # If validation fails for any reason, just continue - # This ensures the transpiler is robust even if validation has issues + if !self.symbol_table.symbol_exists(object_name) + self.error(f"Undefined reference '{object_name}' in {context}. Make sure the object is defined before use.") + return false end + return true end - + # Validate animation factory exists - simplified using symbol_table def _validate_animation_factory_exists(func_name) # Use symbol table's dynamic detection - any callable function is valid @@ -2843,12 +2761,6 @@ class SimpleDSLTranspiler return entry != nil end - def _validate_animation_factory_creates_animation(func_name) - # Use symbol table's dynamic detection with type checking for animation constructors only - var entry = self.symbol_table.get(func_name) - return entry != nil && entry.type == animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR - end - # Validate color provider factory exists - simplified using symbol_table def _validate_color_provider_factory_exists(func_name) # Use symbol table's dynamic detection - any callable function is valid @@ -2856,24 +2768,6 @@ class SimpleDSLTranspiler return entry != nil && entry.type == animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR end - # Validate value provider factory exists - simplified using symbol_table - def _validate_value_provider_factory_exists(func_name) - # Use symbol table's dynamic detection for validation - var entry = self.symbol_table.get(func_name) - return entry != nil && entry.type == animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR - end - - - - # Validate symbol reference with error reporting - simplified using symbol_table - def validate_symbol_reference(name, context) - if !self.symbol_table.symbol_exists(name) - self.error(f"Undefined reference '{name}' in {context}. Make sure the object is defined before use.") - return false - end - return true - end - # Validate that a referenced object is a value provider or animation - simplified using symbol_table def _validate_value_provider_reference(object_name, context) try @@ -2915,18 +2809,6 @@ class SimpleDSLTranspiler var instance = nil var effective_func_name = func_name - if validation_type == self.CONTEXT_VARIABLE - # Extract function name from variable name for validation - import string - if string.find(func_name, "temp_") == 0 - # Extract function name from temp variable: temp_breathe_123 -> breathe - var parts = string.split(func_name, "_") - if size(parts) >= 2 - effective_func_name = parts[1] - end - end - end - # Create validation instance if we have a function name if effective_func_name != "" instance = self._create_instance_for_validation(effective_func_name) @@ -2995,53 +2877,145 @@ class SimpleDSLTranspiler self.expect_right_paren() end - # Legacy wrapper methods for backward compatibility - def _process_named_arguments_generic(var_name, func_name) - self._process_named_arguments_unified(var_name, func_name, self.CONTEXT_GENERIC) - end - def _process_named_arguments_for_color_provider(var_name, func_name) self._process_named_arguments_unified(var_name, func_name, self.CONTEXT_COLOR_PROVIDER) end - # Check if this is a function taking named arguments - def _is_named_arg_constructor(func_name) - # Check if the function exists in the symbol table - var entry = self.symbol_table.get(func_name) - if entry != nil - return entry.takes_named_args() + # Template parameter validation methods + + # Validate template parameter name + def _validate_template_parameter_name(param_name, param_names_seen) + # Check for duplicate parameter names + if param_names_seen.contains(param_name) + self.error(f"Duplicate parameter name '{param_name}' in template. Each parameter must have a unique name.") + return false + end + + # Check if parameter name conflicts with reserved keywords + var reserved_keywords = [ + "engine", "self", "animation", "color", "palette", "sequence", "template", + "import", "def", "end", "class", "var", "if", "else", "while", "for", + "true", "false", "nil", "return", "break", "continue" + ] + + for keyword : reserved_keywords + if param_name == keyword + self.error(f"Parameter name '{param_name}' conflicts with reserved keyword. Use a different name like '{param_name}_param' or 'my_{param_name}'.") + return false + end + end + + # Check if parameter name conflicts with built-in color names + if animation_dsl.is_color_name(param_name) + self.error(f"Parameter name '{param_name}' conflicts with built-in color name. Use a different name like '{param_name}_param' or 'my_{param_name}'.") + return false end - # If not in symbol table, assume it's complex (needs named parameter handling) return true end + + # Validate template parameter type annotation + def _validate_template_parameter_type(param_type) + var valid_types = [ + "color", "palette", "animation", "number", "string", "boolean", + "time", "percentage", "variable", "value_provider" + ] + + for valid_type : valid_types + if param_type == valid_type + return true + end + end + + self.error(f"Invalid parameter type '{param_type}'. Valid types are: {valid_types}") + return false + end + + # Add typed parameter to symbol table based on type annotation + def _add_typed_parameter_to_symbol_table(symbol_table, param_name, param_type) + if param_type == "color" + symbol_table.create_color(param_name, nil) + elif param_type == "palette" + symbol_table.create_palette(param_name, nil) + elif param_type == "animation" + symbol_table.create_animation(param_name, nil) + elif param_type == "value_provider" + symbol_table.create_value_provider(param_name, nil) + else + # Default to variable for number, string, boolean, time, percentage, variable + symbol_table.create_variable(param_name) + end + end + + # Validate template parameter usage in generated body + def _validate_template_parameter_usage(template_name, params, template_body) + import string + + # Check if each parameter is actually used in the template body + for param : params + var param_ref = f"{param}_" # Parameters are referenced with underscore suffix + + if string.find(template_body, param_ref) == -1 + # Parameter not found in body - this is a warning, not an error + self.warning(f"Template '{template_name}' parameter '{param}' is declared but never used in the template body.") + end + end + end + + # Validate template call arguments (called when processing template calls) + def _validate_template_call_arguments(template_name, provided_args, expected_params, param_types) + # Check argument count + if size(provided_args) != size(expected_params) + self.error(f"Template '{template_name}' expects {size(expected_params)} arguments but {size(provided_args)} were provided. Expected parameters: {expected_params}") + return false + end + + # TODO: Add type checking for arguments based on param_types + # This would require more sophisticated type inference for the provided arguments + + return true + end + + # Helper method to split function arguments string into array + def _split_function_arguments(args_str) + import string + + if args_str == "" || args_str == nil + return [] + end + + # Simple split by comma - this is a basic implementation + # A more sophisticated version would handle nested parentheses and quotes + var args = string.split(args_str, ",") + var result = [] + + for arg : args + # Trim whitespace + var trimmed = string.strip(arg) + if size(trimmed) > 0 + result.push(trimmed) + end + end + + return result + end end # DSL compilation function def compile_dsl(source) var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var tokens - if lexer.has_errors() - var error_msg = "DSL Lexer errors:\n" - for error : lexer.get_errors() - error_msg += " " + error + "\n" - end - raise "dsl_compilation_error", error_msg + try + tokens = lexer.tokenize() + except "lexical_error" as e, msg + raise "dsl_compilation_error", msg end var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) var berry_code = transpiler.transpile() - if transpiler.has_errors() - var error_msg = "DSL Transpiler errors:\n" - for error : transpiler.get_errors() - error_msg += " " + error + "\n" - end - raise "dsl_compilation_error", error_msg - end - return berry_code end 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 4d8d2712d..e4238f469 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h @@ -4,26 +4,89 @@ \********************************************************************/ #include "be_constobj.h" extern const bclass be_class_ExpressionResult; -// compact class 'ExpressionResult' ktab size: 13, total: 38 (saved 200 bytes) -static const bvalue be_ktab_class_ExpressionResult[13] = { - /* K0 */ be_nested_str_weak(instance_for_validation), - /* K1 */ be_nested_str_weak(instance_X3D_X25s), - /* K2 */ be_nested_str_weak(instance_X3Dnil), - /* K3 */ be_nested_str_weak(ExpressionResult_X28expr_X3D_X27_X25s_X27_X2C_X20funcs_X3D_X25s_X2C_X20vars_X3D_X25s_X2C_X20props_X3D_X25s_X2C_X20comp_X3D_X25s_X2C_X20type_X3D_X25s_X2C_X20_X25s_X29), - /* K4 */ be_nested_str_weak(expr), - /* K5 */ be_nested_str_weak(has_functions), - /* K6 */ be_nested_str_weak(has_variables), - /* K7 */ be_nested_str_weak(has_properties), - /* K8 */ be_nested_str_weak(has_computation), - /* K9 */ be_nested_str_weak(return_type), - /* K10 */ be_nested_str_weak(), - /* K11 */ be_nested_str_weak(variable), - /* K12 */ be_const_class(be_class_ExpressionResult), +// compact class 'ExpressionResult' ktab size: 43, total: 66 (saved 184 bytes) +static const bvalue be_ktab_class_ExpressionResult[43] = { + /* K0 */ be_const_class(be_class_ExpressionResult), + /* K1 */ be_nested_str_weak(instance_for_validation), + /* K2 */ be_nested_str_weak(instance_X3D_X25s), + /* K3 */ be_nested_str_weak(instance_X3Dnil), + /* K4 */ be_nested_str_weak(_type_to_string), + /* K5 */ be_nested_str_weak(return_type), + /* K6 */ be_nested_str_weak(ExpressionResult_X28expr_X3D_X27_X25s_X27_X2C_X20dynamic_X3D_X25s_X2C_X20dangerous_X3D_X25s_X2C_X20comp_X3D_X25s_X2C_X20type_X3D_X25s_X2C_X20_X25s_X29), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(has_dynamic), + /* K9 */ be_nested_str_weak(has_dangerous), + /* K10 */ be_nested_str_weak(has_computation), + /* K11 */ be_nested_str_weak(), + /* K12 */ be_nested_str_weak(animation_dsl), + /* K13 */ be_nested_str_weak(_symbol_entry), + /* K14 */ be_nested_str_weak(TYPE_VARIABLE), + /* K15 */ be_nested_str_weak(TYPE_PALETTE_CONSTANT), + /* K16 */ be_nested_str_weak(palette_constant), + /* K17 */ be_nested_str_weak(TYPE_PALETTE), + /* K18 */ be_nested_str_weak(palette), + /* K19 */ be_nested_str_weak(TYPE_CONSTANT), + /* K20 */ be_nested_str_weak(constant), + /* K21 */ be_nested_str_weak(TYPE_MATH_FUNCTION), + /* K22 */ be_nested_str_weak(math_function), + /* K23 */ be_nested_str_weak(TYPE_USER_FUNCTION), + /* K24 */ be_nested_str_weak(user_function), + /* K25 */ be_nested_str_weak(TYPE_VALUE_PROVIDER_CONSTRUCTOR), + /* K26 */ be_nested_str_weak(value_provider_constructor), + /* K27 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), + /* K28 */ be_nested_str_weak(value_provider), + /* K29 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), + /* K30 */ be_nested_str_weak(animation_constructor), + /* K31 */ be_nested_str_weak(TYPE_ANIMATION), + /* K32 */ be_nested_str_weak(animation), + /* K33 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), + /* K34 */ be_nested_str_weak(color_constructor), + /* K35 */ be_nested_str_weak(TYPE_COLOR), + /* K36 */ be_nested_str_weak(color), + /* K37 */ be_nested_str_weak(variable), + /* K38 */ be_nested_str_weak(TYPE_SEQUENCE), + /* K39 */ be_nested_str_weak(sequence), + /* K40 */ be_nested_str_weak(TYPE_TEMPLATE), + /* K41 */ be_nested_str_weak(template), + /* K42 */ be_nested_str_weak(unknown_X28_X25s_X29), }; extern const bclass be_class_ExpressionResult; +/******************************************************************** +** Solidified function: literal +********************************************************************/ +be_local_closure(class_ExpressionResult_literal, /* name */ + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ExpressionResult, /* shared constants */ + be_str_weak(literal), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x580C0000, // 0000 LDCONST R3 K0 + 0x5C100600, // 0001 MOVE R4 R3 + 0x5C140000, // 0002 MOVE R5 R0 + 0x50180000, // 0003 LDBOOL R6 0 0 + 0x501C0000, // 0004 LDBOOL R7 0 0 + 0x50200000, // 0005 LDBOOL R8 0 0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: tostring ********************************************************************/ @@ -40,30 +103,32 @@ be_local_closure(class_ExpressionResult_tostring, /* name */ &be_ktab_class_ExpressionResult, /* shared constants */ be_str_weak(tostring), &be_const_str_solidified, - ( &(const binstruction[23]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 + ( &(const binstruction[25]) { /* code */ + 0x88040101, // 0000 GETMBR R1 R0 K1 0x4C080000, // 0001 LDNIL R2 0x20040202, // 0002 NE R1 R1 R2 0x78060006, // 0003 JMPF R1 #000B 0x60040018, // 0004 GETGBL R1 G24 - 0x58080001, // 0005 LDCONST R2 K1 + 0x58080002, // 0005 LDCONST R2 K2 0x600C0005, // 0006 GETGBL R3 G5 - 0x88100100, // 0007 GETMBR R4 R0 K0 + 0x88100101, // 0007 GETMBR R4 R0 K1 0x7C0C0200, // 0008 CALL R3 1 0x7C040400, // 0009 CALL R1 2 0x70020000, // 000A JMP #000C - 0x58040002, // 000B LDCONST R1 K2 - 0x60080018, // 000C GETGBL R2 G24 - 0x580C0003, // 000D LDCONST R3 K3 - 0x88100104, // 000E GETMBR R4 R0 K4 - 0x88140105, // 000F GETMBR R5 R0 K5 - 0x88180106, // 0010 GETMBR R6 R0 K6 - 0x881C0107, // 0011 GETMBR R7 R0 K7 - 0x88200108, // 0012 GETMBR R8 R0 K8 - 0x88240109, // 0013 GETMBR R9 R0 K9 - 0x5C280200, // 0014 MOVE R10 R1 - 0x7C081000, // 0015 CALL R2 8 - 0x80040400, // 0016 RET 1 R2 + 0x58040003, // 000B LDCONST R1 K3 + 0x8C080104, // 000C GETMET R2 R0 K4 + 0x88100105, // 000D GETMBR R4 R0 K5 + 0x7C080400, // 000E CALL R2 2 + 0x600C0018, // 000F GETGBL R3 G24 + 0x58100006, // 0010 LDCONST R4 K6 + 0x88140107, // 0011 GETMBR R5 R0 K7 + 0x88180108, // 0012 GETMBR R6 R0 K8 + 0x881C0109, // 0013 GETMBR R7 R0 K9 + 0x8820010A, // 0014 GETMBR R8 R0 K10 + 0x5C240400, // 0015 MOVE R9 R2 + 0x5C280200, // 0016 MOVE R10 R1 + 0x7C0C0E00, // 0017 CALL R3 7 + 0x80040600, // 0018 RET 1 R3 }) ) ); @@ -75,8 +140,8 @@ be_local_closure(class_ExpressionResult_tostring, /* name */ ********************************************************************/ be_local_closure(class_ExpressionResult_init, /* name */ be_nested_proto( - 10, /* nstack */ - 8, /* argc */ + 9, /* nstack */ + 7, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -86,39 +151,37 @@ be_local_closure(class_ExpressionResult_init, /* name */ &be_ktab_class_ExpressionResult, /* shared constants */ be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x4C200000, // 0000 LDNIL R8 - 0x20200208, // 0001 NE R8 R1 R8 - 0x78220001, // 0002 JMPF R8 #0005 - 0x5C200200, // 0003 MOVE R8 R1 + ( &(const binstruction[30]) { /* code */ + 0x4C1C0000, // 0000 LDNIL R7 + 0x201C0207, // 0001 NE R7 R1 R7 + 0x781E0001, // 0002 JMPF R7 #0005 + 0x5C1C0200, // 0003 MOVE R7 R1 0x70020000, // 0004 JMP #0006 - 0x5820000A, // 0005 LDCONST R8 K10 - 0x90020808, // 0006 SETMBR R0 K4 R8 - 0x60200017, // 0007 GETGBL R8 G23 - 0x5C240400, // 0008 MOVE R9 R2 - 0x7C200200, // 0009 CALL R8 1 - 0x90020A08, // 000A SETMBR R0 K5 R8 - 0x60200017, // 000B GETGBL R8 G23 - 0x5C240600, // 000C MOVE R9 R3 - 0x7C200200, // 000D CALL R8 1 - 0x90020C08, // 000E SETMBR R0 K6 R8 - 0x60200017, // 000F GETGBL R8 G23 - 0x5C240800, // 0010 MOVE R9 R4 - 0x7C200200, // 0011 CALL R8 1 - 0x90020E08, // 0012 SETMBR R0 K7 R8 - 0x60200017, // 0013 GETGBL R8 G23 - 0x5C240A00, // 0014 MOVE R9 R5 - 0x7C200200, // 0015 CALL R8 1 - 0x90021008, // 0016 SETMBR R0 K8 R8 - 0x4C200000, // 0017 LDNIL R8 - 0x20200C08, // 0018 NE R8 R6 R8 - 0x78220001, // 0019 JMPF R8 #001C - 0x5C200C00, // 001A MOVE R8 R6 - 0x70020000, // 001B JMP #001D - 0x5820000B, // 001C LDCONST R8 K11 - 0x90021208, // 001D SETMBR R0 K9 R8 - 0x90020007, // 001E SETMBR R0 K0 R7 - 0x80000000, // 001F RET 0 + 0x581C000B, // 0005 LDCONST R7 K11 + 0x90020E07, // 0006 SETMBR R0 K7 R7 + 0x601C0017, // 0007 GETGBL R7 G23 + 0x5C200400, // 0008 MOVE R8 R2 + 0x7C1C0200, // 0009 CALL R7 1 + 0x90021007, // 000A SETMBR R0 K8 R7 + 0x601C0017, // 000B GETGBL R7 G23 + 0x5C200600, // 000C MOVE R8 R3 + 0x7C1C0200, // 000D CALL R7 1 + 0x90021207, // 000E SETMBR R0 K9 R7 + 0x601C0017, // 000F GETGBL R7 G23 + 0x5C200800, // 0010 MOVE R8 R4 + 0x7C1C0200, // 0011 CALL R7 1 + 0x90021407, // 0012 SETMBR R0 K10 R7 + 0x4C1C0000, // 0013 LDNIL R7 + 0x201C0A07, // 0014 NE R7 R5 R7 + 0x781E0001, // 0015 JMPF R7 #0018 + 0x5C1C0A00, // 0016 MOVE R7 R5 + 0x70020002, // 0017 JMP #001B + 0xB81E1800, // 0018 GETNGBL R7 K12 + 0x881C0F0D, // 0019 GETMBR R7 R7 K13 + 0x881C0F0E, // 001A GETMBR R7 R7 K14 + 0x90020A07, // 001B SETMBR R0 K5 R7 + 0x90020206, // 001C SETMBR R0 K1 R6 + 0x80000000, // 001D RET 0 }) ) ); @@ -141,84 +204,9 @@ be_local_closure(class_ExpressionResult_needs_function, /* name */ &be_ktab_class_ExpressionResult, /* shared constants */ be_str_weak(needs_function), &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x88040105, // 0000 GETMBR R1 R0 K5 - 0x74060004, // 0001 JMPT R1 #0007 - 0x88040106, // 0002 GETMBR R1 R0 K6 - 0x74060002, // 0003 JMPT R1 #0007 - 0x88040107, // 0004 GETMBR R1 R0 K7 - 0x74060000, // 0005 JMPT R1 #0007 - 0x50040001, // 0006 LDBOOL R1 0 1 - 0x50040200, // 0007 LDBOOL R1 1 0 - 0x80040200, // 0008 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: constructor_call -********************************************************************/ -be_local_closure(class_ExpressionResult_constructor_call, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(constructor_call), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x580C000C, // 0000 LDCONST R3 K12 - 0x5C100600, // 0001 MOVE R4 R3 - 0x5C140000, // 0002 MOVE R5 R0 - 0x50180200, // 0003 LDBOOL R6 1 0 - 0x501C0000, // 0004 LDBOOL R7 0 0 - 0x50200000, // 0005 LDBOOL R8 0 0 - 0x50240000, // 0006 LDBOOL R9 0 0 - 0x5C280200, // 0007 MOVE R10 R1 - 0x5C2C0400, // 0008 MOVE R11 R2 - 0x7C100E00, // 0009 CALL R4 7 - 0x80040800, // 000A RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: variable_ref -********************************************************************/ -be_local_closure(class_ExpressionResult_variable_ref, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(variable_ref), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x580C000C, // 0000 LDCONST R3 K12 - 0x5C100600, // 0001 MOVE R4 R3 - 0x5C140000, // 0002 MOVE R5 R0 - 0x50180000, // 0003 LDBOOL R6 0 0 - 0x501C0200, // 0004 LDBOOL R7 1 0 - 0x50200000, // 0005 LDBOOL R8 0 0 - 0x50240000, // 0006 LDBOOL R9 0 0 - 0x5C280200, // 0007 MOVE R10 R1 - 0x5C2C0400, // 0008 MOVE R11 R2 - 0x7C100E00, // 0009 CALL R4 7 - 0x80040800, // 000A RET 1 R4 + ( &(const binstruction[ 2]) { /* code */ + 0x88040108, // 0000 GETMBR R1 R0 K8 + 0x80040200, // 0001 RET 1 R1 }) ) ); @@ -230,7 +218,7 @@ be_local_closure(class_ExpressionResult_variable_ref, /* name */ ********************************************************************/ be_local_closure(class_ExpressionResult_combine, /* name */ be_nested_proto( - 17, /* nstack */ + 15, /* nstack */ 3, /* argc */ 12, /* varg */ 0, /* has upvals */ @@ -241,111 +229,108 @@ be_local_closure(class_ExpressionResult_combine, /* name */ &be_ktab_class_ExpressionResult, /* shared constants */ be_str_weak(combine), &be_const_str_solidified, - ( &(const binstruction[104]) { /* code */ - 0x580C000C, // 0000 LDCONST R3 K12 + ( &(const binstruction[101]) { /* code */ + 0x580C0000, // 0000 LDCONST R3 K0 0x50100000, // 0001 LDBOOL R4 0 0 0x50140000, // 0002 LDBOOL R5 0 0 - 0x50180000, // 0003 LDBOOL R6 0 0 - 0x501C0200, // 0004 LDBOOL R7 1 0 - 0x5820000B, // 0005 LDCONST R8 K11 - 0x4C240000, // 0006 LDNIL R9 - 0x20240209, // 0007 NE R9 R1 R9 - 0x78260017, // 0008 JMPF R9 #0021 - 0x74120002, // 0009 JMPT R4 #000D - 0x88240305, // 000A GETMBR R9 R1 K5 - 0x74260000, // 000B JMPT R9 #000D - 0x50240001, // 000C LDBOOL R9 0 1 - 0x50240200, // 000D LDBOOL R9 1 0 - 0x5C101200, // 000E MOVE R4 R9 - 0x74160002, // 000F JMPT R5 #0013 - 0x88240306, // 0010 GETMBR R9 R1 K6 - 0x74260000, // 0011 JMPT R9 #0013 - 0x50240001, // 0012 LDBOOL R9 0 1 - 0x50240200, // 0013 LDBOOL R9 1 0 - 0x5C141200, // 0014 MOVE R5 R9 - 0x741A0002, // 0015 JMPT R6 #0019 - 0x88240307, // 0016 GETMBR R9 R1 K7 - 0x74260000, // 0017 JMPT R9 #0019 - 0x50240001, // 0018 LDBOOL R9 0 1 - 0x50240200, // 0019 LDBOOL R9 1 0 - 0x5C181200, // 001A MOVE R6 R9 - 0x741E0002, // 001B JMPT R7 #001F - 0x88240308, // 001C GETMBR R9 R1 K8 - 0x74260000, // 001D JMPT R9 #001F - 0x50240001, // 001E LDBOOL R9 0 1 - 0x50240200, // 001F LDBOOL R9 1 0 - 0x5C1C1200, // 0020 MOVE R7 R9 - 0x4C240000, // 0021 LDNIL R9 - 0x20240409, // 0022 NE R9 R2 R9 - 0x78260017, // 0023 JMPF R9 #003C - 0x74120002, // 0024 JMPT R4 #0028 - 0x88240505, // 0025 GETMBR R9 R2 K5 - 0x74260000, // 0026 JMPT R9 #0028 - 0x50240001, // 0027 LDBOOL R9 0 1 - 0x50240200, // 0028 LDBOOL R9 1 0 - 0x5C101200, // 0029 MOVE R4 R9 - 0x74160002, // 002A JMPT R5 #002E - 0x88240506, // 002B GETMBR R9 R2 K6 - 0x74260000, // 002C JMPT R9 #002E - 0x50240001, // 002D LDBOOL R9 0 1 - 0x50240200, // 002E LDBOOL R9 1 0 - 0x5C141200, // 002F MOVE R5 R9 - 0x741A0002, // 0030 JMPT R6 #0034 - 0x88240507, // 0031 GETMBR R9 R2 K7 - 0x74260000, // 0032 JMPT R9 #0034 - 0x50240001, // 0033 LDBOOL R9 0 1 - 0x50240200, // 0034 LDBOOL R9 1 0 - 0x5C181200, // 0035 MOVE R6 R9 - 0x741E0002, // 0036 JMPT R7 #003A - 0x88240508, // 0037 GETMBR R9 R2 K8 - 0x74260000, // 0038 JMPT R9 #003A - 0x50240001, // 0039 LDBOOL R9 0 1 - 0x50240200, // 003A LDBOOL R9 1 0 - 0x5C1C1200, // 003B MOVE R7 R9 - 0x4C240000, // 003C LDNIL R9 - 0x20240209, // 003D NE R9 R1 R9 - 0x7826000D, // 003E JMPF R9 #004D - 0x4C240000, // 003F LDNIL R9 - 0x20240409, // 0040 NE R9 R2 R9 - 0x7826000A, // 0041 JMPF R9 #004D - 0x88240309, // 0042 GETMBR R9 R1 K9 - 0x88280509, // 0043 GETMBR R10 R2 K9 - 0x1C24120A, // 0044 EQ R9 R9 R10 - 0x78260004, // 0045 JMPF R9 #004B - 0x88240309, // 0046 GETMBR R9 R1 K9 - 0x2024130B, // 0047 NE R9 R9 K11 - 0x78260001, // 0048 JMPF R9 #004B - 0x88200309, // 0049 GETMBR R8 R1 K9 - 0x70020000, // 004A JMP #004C - 0x5820000B, // 004B LDCONST R8 K11 - 0x70020010, // 004C JMP #005E - 0x4C240000, // 004D LDNIL R9 - 0x20240209, // 004E NE R9 R1 R9 - 0x78260005, // 004F JMPF R9 #0056 - 0x781E0001, // 0050 JMPF R7 #0053 - 0x5824000B, // 0051 LDCONST R9 K11 - 0x70020000, // 0052 JMP #0054 - 0x88240309, // 0053 GETMBR R9 R1 K9 - 0x5C201200, // 0054 MOVE R8 R9 - 0x70020007, // 0055 JMP #005E - 0x4C240000, // 0056 LDNIL R9 - 0x20240409, // 0057 NE R9 R2 R9 - 0x78260004, // 0058 JMPF R9 #005E - 0x781E0001, // 0059 JMPF R7 #005C - 0x5824000B, // 005A LDCONST R9 K11 - 0x70020000, // 005B JMP #005D - 0x88240509, // 005C GETMBR R9 R2 K9 - 0x5C201200, // 005D MOVE R8 R9 - 0x5C240600, // 005E MOVE R9 R3 - 0x5C280000, // 005F MOVE R10 R0 - 0x5C2C0800, // 0060 MOVE R11 R4 - 0x5C300A00, // 0061 MOVE R12 R5 - 0x5C340C00, // 0062 MOVE R13 R6 - 0x5C380E00, // 0063 MOVE R14 R7 - 0x5C3C1000, // 0064 MOVE R15 R8 - 0x4C400000, // 0065 LDNIL R16 - 0x7C240E00, // 0066 CALL R9 7 - 0x80041200, // 0067 RET 1 R9 + 0x50180200, // 0003 LDBOOL R6 1 0 + 0xB81E1800, // 0004 GETNGBL R7 K12 + 0x881C0F0D, // 0005 GETMBR R7 R7 K13 + 0x881C0F0E, // 0006 GETMBR R7 R7 K14 + 0x4C200000, // 0007 LDNIL R8 + 0x20200208, // 0008 NE R8 R1 R8 + 0x78220011, // 0009 JMPF R8 #001C + 0x74120002, // 000A JMPT R4 #000E + 0x88200308, // 000B GETMBR R8 R1 K8 + 0x74220000, // 000C JMPT R8 #000E + 0x50200001, // 000D LDBOOL R8 0 1 + 0x50200200, // 000E LDBOOL R8 1 0 + 0x5C101000, // 000F MOVE R4 R8 + 0x74160002, // 0010 JMPT R5 #0014 + 0x88200309, // 0011 GETMBR R8 R1 K9 + 0x74220000, // 0012 JMPT R8 #0014 + 0x50200001, // 0013 LDBOOL R8 0 1 + 0x50200200, // 0014 LDBOOL R8 1 0 + 0x5C141000, // 0015 MOVE R5 R8 + 0x741A0002, // 0016 JMPT R6 #001A + 0x8820030A, // 0017 GETMBR R8 R1 K10 + 0x74220000, // 0018 JMPT R8 #001A + 0x50200001, // 0019 LDBOOL R8 0 1 + 0x50200200, // 001A LDBOOL R8 1 0 + 0x5C181000, // 001B MOVE R6 R8 + 0x4C200000, // 001C LDNIL R8 + 0x20200408, // 001D NE R8 R2 R8 + 0x78220011, // 001E JMPF R8 #0031 + 0x74120002, // 001F JMPT R4 #0023 + 0x88200508, // 0020 GETMBR R8 R2 K8 + 0x74220000, // 0021 JMPT R8 #0023 + 0x50200001, // 0022 LDBOOL R8 0 1 + 0x50200200, // 0023 LDBOOL R8 1 0 + 0x5C101000, // 0024 MOVE R4 R8 + 0x74160002, // 0025 JMPT R5 #0029 + 0x88200509, // 0026 GETMBR R8 R2 K9 + 0x74220000, // 0027 JMPT R8 #0029 + 0x50200001, // 0028 LDBOOL R8 0 1 + 0x50200200, // 0029 LDBOOL R8 1 0 + 0x5C141000, // 002A MOVE R5 R8 + 0x741A0002, // 002B JMPT R6 #002F + 0x8820050A, // 002C GETMBR R8 R2 K10 + 0x74220000, // 002D JMPT R8 #002F + 0x50200001, // 002E LDBOOL R8 0 1 + 0x50200200, // 002F LDBOOL R8 1 0 + 0x5C181000, // 0030 MOVE R6 R8 + 0x4C200000, // 0031 LDNIL R8 + 0x20200208, // 0032 NE R8 R1 R8 + 0x78220012, // 0033 JMPF R8 #0047 + 0x4C200000, // 0034 LDNIL R8 + 0x20200408, // 0035 NE R8 R2 R8 + 0x7822000F, // 0036 JMPF R8 #0047 + 0x88200305, // 0037 GETMBR R8 R1 K5 + 0x88240505, // 0038 GETMBR R9 R2 K5 + 0x1C201009, // 0039 EQ R8 R8 R9 + 0x78220007, // 003A JMPF R8 #0043 + 0x88200305, // 003B GETMBR R8 R1 K5 + 0xB8261800, // 003C GETNGBL R9 K12 + 0x8824130D, // 003D GETMBR R9 R9 K13 + 0x8824130E, // 003E GETMBR R9 R9 K14 + 0x20201009, // 003F NE R8 R8 R9 + 0x78220001, // 0040 JMPF R8 #0043 + 0x881C0305, // 0041 GETMBR R7 R1 K5 + 0x70020002, // 0042 JMP #0046 + 0xB8221800, // 0043 GETNGBL R8 K12 + 0x8820110D, // 0044 GETMBR R8 R8 K13 + 0x881C110E, // 0045 GETMBR R7 R8 K14 + 0x70020014, // 0046 JMP #005C + 0x4C200000, // 0047 LDNIL R8 + 0x20200208, // 0048 NE R8 R1 R8 + 0x78220007, // 0049 JMPF R8 #0052 + 0x781A0003, // 004A JMPF R6 #004F + 0xB8221800, // 004B GETNGBL R8 K12 + 0x8820110D, // 004C GETMBR R8 R8 K13 + 0x8820110E, // 004D GETMBR R8 R8 K14 + 0x70020000, // 004E JMP #0050 + 0x88200305, // 004F GETMBR R8 R1 K5 + 0x5C1C1000, // 0050 MOVE R7 R8 + 0x70020009, // 0051 JMP #005C + 0x4C200000, // 0052 LDNIL R8 + 0x20200408, // 0053 NE R8 R2 R8 + 0x78220006, // 0054 JMPF R8 #005C + 0x781A0003, // 0055 JMPF R6 #005A + 0xB8221800, // 0056 GETNGBL R8 K12 + 0x8820110D, // 0057 GETMBR R8 R8 K13 + 0x8820110E, // 0058 GETMBR R8 R8 K14 + 0x70020000, // 0059 JMP #005B + 0x88200505, // 005A GETMBR R8 R2 K5 + 0x5C1C1000, // 005B MOVE R7 R8 + 0x5C200600, // 005C MOVE R8 R3 + 0x5C240000, // 005D MOVE R9 R0 + 0x5C280800, // 005E MOVE R10 R4 + 0x5C2C0A00, // 005F MOVE R11 R5 + 0x5C300C00, // 0060 MOVE R12 R6 + 0x5C340E00, // 0061 MOVE R13 R7 + 0x4C380000, // 0062 LDNIL R14 + 0x7C200C00, // 0063 CALL R8 6 + 0x80041000, // 0064 RET 1 R8 }) ) ); @@ -353,11 +338,11 @@ be_local_closure(class_ExpressionResult_combine, /* name */ /******************************************************************** -** Solidified function: property_access +** Solidified function: constructor_call ********************************************************************/ -be_local_closure(class_ExpressionResult_property_access, /* name */ +be_local_closure(class_ExpressionResult_constructor_call, /* name */ be_nested_proto( - 12, /* nstack */ + 11, /* nstack */ 3, /* argc */ 12, /* varg */ 0, /* has upvals */ @@ -366,20 +351,179 @@ be_local_closure(class_ExpressionResult_property_access, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(property_access), + be_str_weak(constructor_call), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x580C000C, // 0000 LDCONST R3 K12 + ( &(const binstruction[10]) { /* code */ + 0x580C0000, // 0000 LDCONST R3 K0 0x5C100600, // 0001 MOVE R4 R3 0x5C140000, // 0002 MOVE R5 R0 0x50180000, // 0003 LDBOOL R6 0 0 + 0x501C0200, // 0004 LDBOOL R7 1 0 + 0x50200000, // 0005 LDBOOL R8 0 0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _type_to_string +********************************************************************/ +be_local_closure(class_ExpressionResult__type_to_string, /* 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_ExpressionResult, /* shared constants */ + be_str_weak(_type_to_string), + &be_const_str_solidified, + ( &(const binstruction[104]) { /* code */ + 0xB80A1800, // 0000 GETNGBL R2 K12 + 0x8808050D, // 0001 GETMBR R2 R2 K13 + 0x8808050F, // 0002 GETMBR R2 R2 K15 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0001, // 0004 JMPF R2 #0007 + 0x80062000, // 0005 RET 1 K16 + 0x7002005F, // 0006 JMP #0067 + 0xB80A1800, // 0007 GETNGBL R2 K12 + 0x8808050D, // 0008 GETMBR R2 R2 K13 + 0x88080511, // 0009 GETMBR R2 R2 K17 + 0x1C080202, // 000A EQ R2 R1 R2 + 0x780A0001, // 000B JMPF R2 #000E + 0x80062400, // 000C RET 1 K18 + 0x70020058, // 000D JMP #0067 + 0xB80A1800, // 000E GETNGBL R2 K12 + 0x8808050D, // 000F GETMBR R2 R2 K13 + 0x88080513, // 0010 GETMBR R2 R2 K19 + 0x1C080202, // 0011 EQ R2 R1 R2 + 0x780A0001, // 0012 JMPF R2 #0015 + 0x80062800, // 0013 RET 1 K20 + 0x70020051, // 0014 JMP #0067 + 0xB80A1800, // 0015 GETNGBL R2 K12 + 0x8808050D, // 0016 GETMBR R2 R2 K13 + 0x88080515, // 0017 GETMBR R2 R2 K21 + 0x1C080202, // 0018 EQ R2 R1 R2 + 0x780A0001, // 0019 JMPF R2 #001C + 0x80062C00, // 001A RET 1 K22 + 0x7002004A, // 001B JMP #0067 + 0xB80A1800, // 001C GETNGBL R2 K12 + 0x8808050D, // 001D GETMBR R2 R2 K13 + 0x88080517, // 001E GETMBR R2 R2 K23 + 0x1C080202, // 001F EQ R2 R1 R2 + 0x780A0001, // 0020 JMPF R2 #0023 + 0x80063000, // 0021 RET 1 K24 + 0x70020043, // 0022 JMP #0067 + 0xB80A1800, // 0023 GETNGBL R2 K12 + 0x8808050D, // 0024 GETMBR R2 R2 K13 + 0x88080519, // 0025 GETMBR R2 R2 K25 + 0x1C080202, // 0026 EQ R2 R1 R2 + 0x780A0001, // 0027 JMPF R2 #002A + 0x80063400, // 0028 RET 1 K26 + 0x7002003C, // 0029 JMP #0067 + 0xB80A1800, // 002A GETNGBL R2 K12 + 0x8808050D, // 002B GETMBR R2 R2 K13 + 0x8808051B, // 002C GETMBR R2 R2 K27 + 0x1C080202, // 002D EQ R2 R1 R2 + 0x780A0001, // 002E JMPF R2 #0031 + 0x80063800, // 002F RET 1 K28 + 0x70020035, // 0030 JMP #0067 + 0xB80A1800, // 0031 GETNGBL R2 K12 + 0x8808050D, // 0032 GETMBR R2 R2 K13 + 0x8808051D, // 0033 GETMBR R2 R2 K29 + 0x1C080202, // 0034 EQ R2 R1 R2 + 0x780A0001, // 0035 JMPF R2 #0038 + 0x80063C00, // 0036 RET 1 K30 + 0x7002002E, // 0037 JMP #0067 + 0xB80A1800, // 0038 GETNGBL R2 K12 + 0x8808050D, // 0039 GETMBR R2 R2 K13 + 0x8808051F, // 003A GETMBR R2 R2 K31 + 0x1C080202, // 003B EQ R2 R1 R2 + 0x780A0001, // 003C JMPF R2 #003F + 0x80064000, // 003D RET 1 K32 + 0x70020027, // 003E JMP #0067 + 0xB80A1800, // 003F GETNGBL R2 K12 + 0x8808050D, // 0040 GETMBR R2 R2 K13 + 0x88080521, // 0041 GETMBR R2 R2 K33 + 0x1C080202, // 0042 EQ R2 R1 R2 + 0x780A0001, // 0043 JMPF R2 #0046 + 0x80064400, // 0044 RET 1 K34 + 0x70020020, // 0045 JMP #0067 + 0xB80A1800, // 0046 GETNGBL R2 K12 + 0x8808050D, // 0047 GETMBR R2 R2 K13 + 0x88080523, // 0048 GETMBR R2 R2 K35 + 0x1C080202, // 0049 EQ R2 R1 R2 + 0x780A0001, // 004A JMPF R2 #004D + 0x80064800, // 004B RET 1 K36 + 0x70020019, // 004C JMP #0067 + 0xB80A1800, // 004D GETNGBL R2 K12 + 0x8808050D, // 004E GETMBR R2 R2 K13 + 0x8808050E, // 004F GETMBR R2 R2 K14 + 0x1C080202, // 0050 EQ R2 R1 R2 + 0x780A0001, // 0051 JMPF R2 #0054 + 0x80064A00, // 0052 RET 1 K37 + 0x70020012, // 0053 JMP #0067 + 0xB80A1800, // 0054 GETNGBL R2 K12 + 0x8808050D, // 0055 GETMBR R2 R2 K13 + 0x88080526, // 0056 GETMBR R2 R2 K38 + 0x1C080202, // 0057 EQ R2 R1 R2 + 0x780A0001, // 0058 JMPF R2 #005B + 0x80064E00, // 0059 RET 1 K39 + 0x7002000B, // 005A JMP #0067 + 0xB80A1800, // 005B GETNGBL R2 K12 + 0x8808050D, // 005C GETMBR R2 R2 K13 + 0x88080528, // 005D GETMBR R2 R2 K40 + 0x1C080202, // 005E EQ R2 R1 R2 + 0x780A0001, // 005F JMPF R2 #0062 + 0x80065200, // 0060 RET 1 K41 + 0x70020004, // 0061 JMP #0067 + 0x60080018, // 0062 GETGBL R2 G24 + 0x580C002A, // 0063 LDCONST R3 K42 + 0x5C100200, // 0064 MOVE R4 R1 + 0x7C080400, // 0065 CALL R2 2 + 0x80040400, // 0066 RET 1 R2 + 0x80000000, // 0067 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: variable_ref +********************************************************************/ +be_local_closure(class_ExpressionResult_variable_ref, /* name */ + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ExpressionResult, /* shared constants */ + be_str_weak(variable_ref), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x580C0000, // 0000 LDCONST R3 K0 + 0x5C100600, // 0001 MOVE R4 R3 + 0x5C140000, // 0002 MOVE R5 R0 + 0x50180200, // 0003 LDBOOL R6 1 0 0x501C0000, // 0004 LDBOOL R7 0 0 - 0x50200200, // 0005 LDBOOL R8 1 0 - 0x50240000, // 0006 LDBOOL R9 0 0 - 0x5C280200, // 0007 MOVE R10 R1 - 0x5C2C0400, // 0008 MOVE R11 R2 - 0x7C100E00, // 0009 CALL R4 7 - 0x80040800, // 000A RET 1 R4 + 0x50200000, // 0005 LDBOOL R8 0 0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 }) ) ); @@ -391,7 +535,7 @@ be_local_closure(class_ExpressionResult_property_access, /* name */ ********************************************************************/ be_local_closure(class_ExpressionResult_function_call, /* name */ be_nested_proto( - 12, /* nstack */ + 11, /* nstack */ 3, /* argc */ 12, /* varg */ 0, /* has upvals */ @@ -402,18 +546,17 @@ be_local_closure(class_ExpressionResult_function_call, /* name */ &be_ktab_class_ExpressionResult, /* shared constants */ be_str_weak(function_call), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x580C000C, // 0000 LDCONST R3 K12 + ( &(const binstruction[10]) { /* code */ + 0x580C0000, // 0000 LDCONST R3 K0 0x5C100600, // 0001 MOVE R4 R3 0x5C140000, // 0002 MOVE R5 R0 0x50180200, // 0003 LDBOOL R6 1 0 0x501C0000, // 0004 LDBOOL R7 0 0 0x50200000, // 0005 LDBOOL R8 0 0 - 0x50240200, // 0006 LDBOOL R9 1 0 - 0x5C280200, // 0007 MOVE R10 R1 - 0x5C2C0400, // 0008 MOVE R11 R2 - 0x7C100E00, // 0009 CALL R4 7 - 0x80040800, // 000A RET 1 R4 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 }) ) ); @@ -436,18 +579,9 @@ be_local_closure(class_ExpressionResult_needs_closure, /* name */ &be_ktab_class_ExpressionResult, /* shared constants */ be_str_weak(needs_closure), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ + ( &(const binstruction[ 2]) { /* code */ 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x78060005, // 0001 JMPF R1 #0008 - 0x88040105, // 0002 GETMBR R1 R0 K5 - 0x74060004, // 0003 JMPT R1 #0009 - 0x88040106, // 0004 GETMBR R1 R0 K6 - 0x74060002, // 0005 JMPT R1 #0009 - 0x88040107, // 0006 GETMBR R1 R0 K7 - 0x74060000, // 0007 JMPT R1 #0009 - 0x50040001, // 0008 LDBOOL R1 0 1 - 0x50040200, // 0009 LDBOOL R1 1 0 - 0x80040200, // 000A RET 1 R1 + 0x80040200, // 0001 RET 1 R1 }) ) ); @@ -455,11 +589,11 @@ be_local_closure(class_ExpressionResult_needs_closure, /* name */ /******************************************************************** -** Solidified function: literal +** Solidified function: property_access ********************************************************************/ -be_local_closure(class_ExpressionResult_literal, /* name */ +be_local_closure(class_ExpressionResult_property_access, /* name */ be_nested_proto( - 12, /* nstack */ + 11, /* nstack */ 3, /* argc */ 12, /* varg */ 0, /* has upvals */ @@ -468,20 +602,19 @@ be_local_closure(class_ExpressionResult_literal, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(literal), + be_str_weak(property_access), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x580C000C, // 0000 LDCONST R3 K12 + ( &(const binstruction[10]) { /* code */ + 0x580C0000, // 0000 LDCONST R3 K0 0x5C100600, // 0001 MOVE R4 R3 0x5C140000, // 0002 MOVE R5 R0 - 0x50180000, // 0003 LDBOOL R6 0 0 + 0x50180200, // 0003 LDBOOL R6 1 0 0x501C0000, // 0004 LDBOOL R7 0 0 0x50200000, // 0005 LDBOOL R8 0 0 - 0x50240000, // 0006 LDBOOL R9 0 0 - 0x5C280200, // 0007 MOVE R10 R1 - 0x5C2C0400, // 0008 MOVE R11 R2 - 0x7C100E00, // 0009 CALL R4 7 - 0x80040800, // 000A RET 1 R4 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 }) ) ); @@ -492,27 +625,27 @@ be_local_closure(class_ExpressionResult_literal, /* name */ ** Solidified class: ExpressionResult ********************************************************************/ be_local_class(ExpressionResult, - 7, + 6, NULL, be_nested_map(17, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(return_type, -1), be_const_var(5) }, - { be_const_key_weak(literal, 4), be_const_static_closure(class_ExpressionResult_literal_closure) }, + { be_const_key_weak(return_type, -1), be_const_var(4) }, + { be_const_key_weak(property_access, 10), be_const_static_closure(class_ExpressionResult_property_access_closure) }, { be_const_key_weak(tostring, -1), be_const_closure(class_ExpressionResult_tostring_closure) }, { be_const_key_weak(expr, -1), be_const_var(0) }, - { be_const_key_weak(needs_closure, 9), be_const_closure(class_ExpressionResult_needs_closure_closure) }, + { be_const_key_weak(needs_closure, 14), be_const_closure(class_ExpressionResult_needs_closure_closure) }, { be_const_key_weak(needs_function, -1), be_const_closure(class_ExpressionResult_needs_function_closure) }, - { be_const_key_weak(has_properties, 10), be_const_var(3) }, - { be_const_key_weak(constructor_call, -1), be_const_static_closure(class_ExpressionResult_constructor_call_closure) }, - { be_const_key_weak(has_computation, 16), be_const_var(4) }, - { be_const_key_weak(variable_ref, -1), be_const_static_closure(class_ExpressionResult_variable_ref_closure) }, { be_const_key_weak(combine, -1), be_const_static_closure(class_ExpressionResult_combine_closure) }, - { be_const_key_weak(property_access, -1), be_const_static_closure(class_ExpressionResult_property_access_closure) }, - { be_const_key_weak(instance_for_validation, 11), be_const_var(6) }, + { be_const_key_weak(constructor_call, -1), be_const_static_closure(class_ExpressionResult_constructor_call_closure) }, + { be_const_key_weak(has_computation, -1), be_const_var(3) }, + { be_const_key_weak(_type_to_string, -1), be_const_closure(class_ExpressionResult__type_to_string_closure) }, + { be_const_key_weak(instance_for_validation, -1), be_const_var(5) }, + { be_const_key_weak(has_dynamic, -1), be_const_var(1) }, + { be_const_key_weak(has_dangerous, 1), be_const_var(2) }, { be_const_key_weak(function_call, -1), be_const_static_closure(class_ExpressionResult_function_call_closure) }, - { be_const_key_weak(has_variables, -1), be_const_var(2) }, - { be_const_key_weak(init, 1), be_const_closure(class_ExpressionResult_init_closure) }, - { be_const_key_weak(has_functions, -1), be_const_var(1) }, + { be_const_key_weak(variable_ref, 16), be_const_static_closure(class_ExpressionResult_variable_ref_closure) }, + { be_const_key_weak(literal, 4), be_const_static_closure(class_ExpressionResult_literal_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_ExpressionResult_init_closure) }, })), be_str_weak(ExpressionResult) ); @@ -1007,6 +1140,126 @@ be_local_class(DSLRuntime, be_str_weak(DSLRuntime) ); +/******************************************************************** +** Solidified function: compile_file +********************************************************************/ +be_local_closure(compile_file, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 0, /* 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(string), + /* K1 */ be_nested_str_weak(endswith), + /* K2 */ be_nested_str_weak(_X2Eanim), + /* K3 */ be_nested_str_weak(Input_X20file_X20must_X20have_X20_X2Eanim_X20extension_X3A_X20_X25s), + /* K4 */ be_nested_str_weak(invalid_filename), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(_X2Ebe), + /* K7 */ be_nested_str_weak(r), + /* K8 */ be_nested_str_weak(Cannot_X20open_X20input_X20file_X3A_X20_X25s), + /* K9 */ be_nested_str_weak(io_error), + /* K10 */ be_nested_str_weak(read), + /* K11 */ be_nested_str_weak(close), + /* K12 */ be_nested_str_weak(animation_dsl), + /* K13 */ be_nested_str_weak(compile), + /* K14 */ be_nested_str_weak(DSL_X20compilation_X20failed_X20for_X3A_X20_X25s), + /* K15 */ be_nested_str_weak(dsl_compilation_error), + /* K16 */ be_nested_str_weak(_X23_X20Generated_X20Berry_X20code_X20from_X20Animation_X20DSL_X0A), + /* K17 */ be_nested_str_weak(_X23_X20Source_X3A_X20_X25s_X0A), + /* K18 */ be_nested_str_weak(_X23_X20Generated_X20automatically_X20by_X20animation_dsl_X2Ecompile_file_X28_X29_X0A), + /* K19 */ be_nested_str_weak(_X23_X20_X0A), + /* K20 */ be_nested_str_weak(_X23_X20Do_X20not_X20edit_X20manually_X20_X2D_X20changes_X20will_X20be_X20overwritten_X0A), + /* K21 */ be_nested_str_weak(_X0A), + /* K22 */ be_nested_str_weak(w), + /* K23 */ be_nested_str_weak(Cannot_X20create_X20output_X20file_X3A_X20_X25s), + /* K24 */ be_nested_str_weak(write), + }), + be_str_weak(compile_file), + &be_const_str_solidified, + ( &(const binstruction[71]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080301, // 0001 GETMET R2 R1 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x58140002, // 0003 LDCONST R5 K2 + 0x7C080600, // 0004 CALL R2 3 + 0x740A0004, // 0005 JMPT R2 #000B + 0x60080018, // 0006 GETGBL R2 G24 + 0x580C0003, // 0007 LDCONST R3 K3 + 0x5C100000, // 0008 MOVE R4 R0 + 0x7C080400, // 0009 CALL R2 2 + 0xB0060802, // 000A RAISE 1 K4 R2 + 0x5409FFF9, // 000B LDINT R2 -6 + 0x400A0A02, // 000C CONNECT R2 K5 R2 + 0x94080002, // 000D GETIDX R2 R0 R2 + 0x000C0506, // 000E ADD R3 R2 K6 + 0x60100011, // 000F GETGBL R4 G17 + 0x5C140000, // 0010 MOVE R5 R0 + 0x58180007, // 0011 LDCONST R6 K7 + 0x7C100400, // 0012 CALL R4 2 + 0x4C140000, // 0013 LDNIL R5 + 0x1C140805, // 0014 EQ R5 R4 R5 + 0x78160004, // 0015 JMPF R5 #001B + 0x60140018, // 0016 GETGBL R5 G24 + 0x58180008, // 0017 LDCONST R6 K8 + 0x5C1C0000, // 0018 MOVE R7 R0 + 0x7C140400, // 0019 CALL R5 2 + 0xB0061205, // 001A RAISE 1 K9 R5 + 0x8C14090A, // 001B GETMET R5 R4 K10 + 0x7C140200, // 001C CALL R5 1 + 0x8C18090B, // 001D GETMET R6 R4 K11 + 0x7C180200, // 001E CALL R6 1 + 0xB81A1800, // 001F GETNGBL R6 K12 + 0x8C180D0D, // 0020 GETMET R6 R6 K13 + 0x5C200A00, // 0021 MOVE R8 R5 + 0x7C180400, // 0022 CALL R6 2 + 0x4C1C0000, // 0023 LDNIL R7 + 0x1C1C0C07, // 0024 EQ R7 R6 R7 + 0x781E0004, // 0025 JMPF R7 #002B + 0x601C0018, // 0026 GETGBL R7 G24 + 0x5820000E, // 0027 LDCONST R8 K14 + 0x5C240000, // 0028 MOVE R9 R0 + 0x7C1C0400, // 0029 CALL R7 2 + 0xB0061E07, // 002A RAISE 1 K15 R7 + 0x601C0018, // 002B GETGBL R7 G24 + 0x58200011, // 002C LDCONST R8 K17 + 0x5C240000, // 002D MOVE R9 R0 + 0x7C1C0400, // 002E CALL R7 2 + 0x001E2007, // 002F ADD R7 K16 R7 + 0x001C0F12, // 0030 ADD R7 R7 K18 + 0x001C0F13, // 0031 ADD R7 R7 K19 + 0x001C0F14, // 0032 ADD R7 R7 K20 + 0x001C0F15, // 0033 ADD R7 R7 K21 + 0x60200011, // 0034 GETGBL R8 G17 + 0x5C240600, // 0035 MOVE R9 R3 + 0x58280016, // 0036 LDCONST R10 K22 + 0x7C200400, // 0037 CALL R8 2 + 0x4C240000, // 0038 LDNIL R9 + 0x1C241009, // 0039 EQ R9 R8 R9 + 0x78260004, // 003A JMPF R9 #0040 + 0x60240018, // 003B GETGBL R9 G24 + 0x58280017, // 003C LDCONST R10 K23 + 0x5C2C0600, // 003D MOVE R11 R3 + 0x7C240400, // 003E CALL R9 2 + 0xB0061209, // 003F RAISE 1 K9 R9 + 0x8C241118, // 0040 GETMET R9 R8 K24 + 0x002C0E06, // 0041 ADD R11 R7 R6 + 0x7C240400, // 0042 CALL R9 2 + 0x8C24110B, // 0043 GETMET R9 R8 K11 + 0x7C240200, // 0044 CALL R9 1 + 0x50240200, // 0045 LDBOOL R9 1 0 + 0x80041200, // 0046 RET 1 R9 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: create_runtime ********************************************************************/ @@ -1118,94 +1371,6 @@ be_local_closure(execute, /* name */ ); /*******************************************************************/ - -/******************************************************************** -** Solidified function: compile_dsl -********************************************************************/ -be_local_closure(compile_dsl, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 0, /* 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(animation_dsl), - /* K1 */ be_nested_str_weak(DSLLexer), - /* K2 */ be_nested_str_weak(tokenize), - /* K3 */ be_nested_str_weak(has_errors), - /* K4 */ be_nested_str_weak(DSL_X20Lexer_X20errors_X3A_X0A), - /* K5 */ be_nested_str_weak(get_errors), - /* K6 */ be_nested_str_weak(_X20_X20), - /* K7 */ be_nested_str_weak(_X0A), - /* K8 */ be_nested_str_weak(stop_iteration), - /* K9 */ be_nested_str_weak(dsl_compilation_error), - /* K10 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K11 */ be_nested_str_weak(transpile), - /* K12 */ be_nested_str_weak(DSL_X20Transpiler_X20errors_X3A_X0A), - }), - be_str_weak(compile_dsl), - &be_const_str_solidified, - ( &(const binstruction[51]) { /* code */ - 0xB8060000, // 0000 GETNGBL R1 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C040400, // 0003 CALL R1 2 - 0x8C080302, // 0004 GETMET R2 R1 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0303, // 0006 GETMET R3 R1 K3 - 0x7C0C0200, // 0007 CALL R3 1 - 0x780E000F, // 0008 JMPF R3 #0019 - 0x580C0004, // 0009 LDCONST R3 K4 - 0x60100010, // 000A GETGBL R4 G16 - 0x8C140305, // 000B GETMET R5 R1 K5 - 0x7C140200, // 000C CALL R5 1 - 0x7C100200, // 000D CALL R4 1 - 0xA8020005, // 000E EXBLK 0 #0015 - 0x5C140800, // 000F MOVE R5 R4 - 0x7C140000, // 0010 CALL R5 0 - 0x001A0C05, // 0011 ADD R6 K6 R5 - 0x00180D07, // 0012 ADD R6 R6 K7 - 0x000C0606, // 0013 ADD R3 R3 R6 - 0x7001FFF9, // 0014 JMP #000F - 0x58100008, // 0015 LDCONST R4 K8 - 0xAC100200, // 0016 CATCH R4 1 0 - 0xB0080000, // 0017 RAISE 2 R0 R0 - 0xB0061203, // 0018 RAISE 1 K9 R3 - 0xB80E0000, // 0019 GETNGBL R3 K0 - 0x8C0C070A, // 001A GETMET R3 R3 K10 - 0x5C140400, // 001B MOVE R5 R2 - 0x7C0C0400, // 001C CALL R3 2 - 0x8C10070B, // 001D GETMET R4 R3 K11 - 0x7C100200, // 001E CALL R4 1 - 0x8C140703, // 001F GETMET R5 R3 K3 - 0x7C140200, // 0020 CALL R5 1 - 0x7816000F, // 0021 JMPF R5 #0032 - 0x5814000C, // 0022 LDCONST R5 K12 - 0x60180010, // 0023 GETGBL R6 G16 - 0x8C1C0705, // 0024 GETMET R7 R3 K5 - 0x7C1C0200, // 0025 CALL R7 1 - 0x7C180200, // 0026 CALL R6 1 - 0xA8020005, // 0027 EXBLK 0 #002E - 0x5C1C0C00, // 0028 MOVE R7 R6 - 0x7C1C0000, // 0029 CALL R7 0 - 0x00220C07, // 002A ADD R8 K6 R7 - 0x00201107, // 002B ADD R8 R8 K7 - 0x00140A08, // 002C ADD R5 R5 R8 - 0x7001FFF9, // 002D JMP #0028 - 0x58180008, // 002E LDCONST R6 K8 - 0xAC180200, // 002F CATCH R6 1 0 - 0xB0080000, // 0030 RAISE 2 R0 R0 - 0xB0061205, // 0031 RAISE 1 K9 R5 - 0x80040800, // 0032 RET 1 R4 - }) - ) -); -/*******************************************************************/ - extern const bclass be_class_SymbolEntry; // compact class 'SymbolEntry' ktab size: 61, total: 146 (saved 680 bytes) static const bvalue be_ktab_class_SymbolEntry[61] = { @@ -2645,36 +2810,127 @@ be_local_closure(compile_dsl_source, /* name */ ); /*******************************************************************/ + +/******************************************************************** +** Solidified function: is_keyword +********************************************************************/ +be_local_closure(is_keyword, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 0, /* 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(animation_dsl), + /* K1 */ be_nested_str_weak(Token), + /* K2 */ be_nested_str_weak(keywords), + /* K3 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(is_keyword), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x60040010, // 0000 GETGBL R1 G16 + 0xB80A0000, // 0001 GETNGBL R2 K0 + 0x88080501, // 0002 GETMBR R2 R2 K1 + 0x88080502, // 0003 GETMBR R2 R2 K2 + 0x7C040200, // 0004 CALL R1 1 + 0xA8020007, // 0005 EXBLK 0 #000E + 0x5C080200, // 0006 MOVE R2 R1 + 0x7C080000, // 0007 CALL R2 0 + 0x1C0C0002, // 0008 EQ R3 R0 R2 + 0x780E0002, // 0009 JMPF R3 #000D + 0x500C0200, // 000A LDBOOL R3 1 0 + 0xA8040001, // 000B EXBLK 1 1 + 0x80040600, // 000C RET 1 R3 + 0x7001FFF7, // 000D JMP #0006 + 0x58040003, // 000E LDCONST R1 K3 + 0xAC040200, // 000F CATCH R1 1 0 + 0xB0080000, // 0010 RAISE 2 R0 R0 + 0x50040000, // 0011 LDBOOL R1 0 0 + 0x80040200, // 0012 RET 1 R1 + }) + ) +); +/*******************************************************************/ + // ktab too big for class 'SimpleDSLTranspiler' - skipping extern const bclass be_class_SimpleDSLTranspiler; /******************************************************************** -** Solidified function: _process_named_arguments_generic +** Solidified function: _validate_single_parameter ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_generic, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_single_parameter, /* name */ be_nested_proto( - 8, /* nstack */ - 3, /* argc */ + 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[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_process_named_arguments_unified), - /* K1 */ be_nested_str_weak(CONTEXT_GENERIC), + ( &(const bvalue[ 9]) { /* 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), + /* K8 */ be_nested_str_weak(dsl_compilation_error), }), - be_str_weak(_process_named_arguments_generic), + be_str_weak(_validate_single_parameter), &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x881C0101, // 0003 GETMBR R7 R0 K1 - 0x7C0C0800, // 0004 CALL R3 4 - 0x80000000, // 0005 RET 0 + ( &(const binstruction[43]) { /* 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 + 0x70020008, // 0020 JMP #002A + 0x58100008, // 0021 LDCONST R4 K8 + 0xAC100202, // 0022 CATCH R4 1 2 + 0x70020001, // 0023 JMP #0026 + 0xB0040805, // 0024 RAISE 1 R4 R5 + 0x70020003, // 0025 JMP #002A + 0xAC100002, // 0026 CATCH R4 0 2 + 0x70020000, // 0027 JMP #0029 + 0x70020000, // 0028 JMP #002A + 0xB0080000, // 0029 RAISE 2 R0 R0 + 0x80000000, // 002A RET 0 }) ) ); @@ -2682,71 +2938,1494 @@ be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_generic, / /******************************************************************** -** Solidified function: _process_named_arguments_unified +** Solidified function: expect_right_paren ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_unified, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ be_nested_proto( - 10, /* nstack */ + 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_template +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_template, /* 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[31]) { /* 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(_validate_template_parameter_name), + /* K17 */ be_nested_str_weak(_validate_template_parameter_type), + /* K18 */ be_nested_str_weak(push), + /* K19 */ be_nested_str_weak(NEWLINE), + /* K20 */ be_const_int(0), + /* K21 */ be_nested_str_weak(EOF), + /* K22 */ be_nested_str_weak(LEFT_BRACE), + /* K23 */ be_const_int(1), + /* K24 */ be_nested_str_weak(RIGHT_BRACE), + /* K25 */ be_nested_str_weak(expect_right_brace), + /* K26 */ be_nested_str_weak(generate_template_function), + /* K27 */ be_nested_str_weak(params), + /* K28 */ be_nested_str_weak(param_types), + /* K29 */ be_nested_str_weak(symbol_table), + /* K30 */ be_nested_str_weak(create_template), + }), + be_str_weak(process_template), + &be_const_str_solidified, + ( &(const binstruction[184]) { /* 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 + 0x60100013, // 0012 GETGBL R4 G19 + 0x7C100000, // 0013 CALL R4 0 + 0x8C140106, // 0014 GETMET R5 R0 K6 + 0x7C140200, // 0015 CALL R5 1 + 0x7416005C, // 0016 JMPT R5 #0074 + 0x8C140107, // 0017 GETMET R5 R0 K7 + 0x7C140200, // 0018 CALL R5 1 + 0x74160059, // 0019 JMPT R5 #0074 + 0x8C140108, // 001A GETMET R5 R0 K8 + 0x7C140200, // 001B CALL R5 1 + 0x8C140107, // 001C GETMET R5 R0 K7 + 0x7C140200, // 001D CALL R5 1 + 0x78160000, // 001E JMPF R5 #0020 + 0x70020053, // 001F JMP #0074 + 0x8C140109, // 0020 GETMET R5 R0 K9 + 0x7C140200, // 0021 CALL R5 1 + 0x4C180000, // 0022 LDNIL R6 + 0x20180A06, // 0023 NE R6 R5 R6 + 0x781A004C, // 0024 JMPF R6 #0072 + 0x88180B0A, // 0025 GETMBR R6 R5 K10 + 0xB81E1600, // 0026 GETNGBL R7 K11 + 0x881C0F0C, // 0027 GETMBR R7 R7 K12 + 0x881C0F0D, // 0028 GETMBR R7 R7 K13 + 0x1C180C07, // 0029 EQ R6 R6 R7 + 0x781A0046, // 002A JMPF R6 #0072 + 0x88180B0E, // 002B GETMBR R6 R5 K14 + 0x1C180D0F, // 002C EQ R6 R6 K15 + 0x781A0043, // 002D JMPF R6 #0072 + 0x8C180100, // 002E GETMET R6 R0 K0 + 0x7C180200, // 002F CALL R6 1 + 0x8C180101, // 0030 GETMET R6 R0 K1 + 0x7C180200, // 0031 CALL R6 1 + 0x8C1C0110, // 0032 GETMET R7 R0 K16 + 0x5C240C00, // 0033 MOVE R9 R6 + 0x5C280800, // 0034 MOVE R10 R4 + 0x7C1C0600, // 0035 CALL R7 3 + 0x741E0002, // 0036 JMPT R7 #003A + 0x8C1C0104, // 0037 GETMET R7 R0 K4 + 0x7C1C0200, // 0038 CALL R7 1 + 0x80000E00, // 0039 RET 0 + 0x4C1C0000, // 003A LDNIL R7 + 0x8C200109, // 003B GETMET R8 R0 K9 + 0x7C200200, // 003C CALL R8 1 + 0x4C240000, // 003D LDNIL R9 + 0x20201009, // 003E NE R8 R8 R9 + 0x78220018, // 003F JMPF R8 #0059 + 0x8C200109, // 0040 GETMET R8 R0 K9 + 0x7C200200, // 0041 CALL R8 1 + 0x8820110A, // 0042 GETMBR R8 R8 K10 + 0xB8261600, // 0043 GETNGBL R9 K11 + 0x8824130C, // 0044 GETMBR R9 R9 K12 + 0x8824130D, // 0045 GETMBR R9 R9 K13 + 0x1C201009, // 0046 EQ R8 R8 R9 + 0x78220010, // 0047 JMPF R8 #0059 + 0x8C200109, // 0048 GETMET R8 R0 K9 + 0x7C200200, // 0049 CALL R8 1 + 0x8820110E, // 004A GETMBR R8 R8 K14 + 0x1C20110A, // 004B EQ R8 R8 K10 + 0x7822000B, // 004C JMPF R8 #0059 + 0x8C200100, // 004D GETMET R8 R0 K0 + 0x7C200200, // 004E CALL R8 1 + 0x8C200101, // 004F GETMET R8 R0 K1 + 0x7C200200, // 0050 CALL R8 1 + 0x5C1C1000, // 0051 MOVE R7 R8 + 0x8C200111, // 0052 GETMET R8 R0 K17 + 0x5C280E00, // 0053 MOVE R10 R7 + 0x7C200400, // 0054 CALL R8 2 + 0x74220002, // 0055 JMPT R8 #0059 + 0x8C200104, // 0056 GETMET R8 R0 K4 + 0x7C200200, // 0057 CALL R8 1 + 0x80001000, // 0058 RET 0 + 0x8C200512, // 0059 GETMET R8 R2 K18 + 0x5C280C00, // 005A MOVE R10 R6 + 0x7C200400, // 005B CALL R8 2 + 0x50200200, // 005C LDBOOL R8 1 0 + 0x98100C08, // 005D SETIDX R4 R6 R8 + 0x4C200000, // 005E LDNIL R8 + 0x20200E08, // 005F NE R8 R7 R8 + 0x78220000, // 0060 JMPF R8 #0062 + 0x980C0C07, // 0061 SETIDX R3 R6 R7 + 0x8C200109, // 0062 GETMET R8 R0 K9 + 0x7C200200, // 0063 CALL R8 1 + 0x4C240000, // 0064 LDNIL R9 + 0x20201009, // 0065 NE R8 R8 R9 + 0x78220009, // 0066 JMPF R8 #0071 + 0x8C200109, // 0067 GETMET R8 R0 K9 + 0x7C200200, // 0068 CALL R8 1 + 0x8820110A, // 0069 GETMBR R8 R8 K10 + 0xB8261600, // 006A GETNGBL R9 K11 + 0x8824130C, // 006B GETMBR R9 R9 K12 + 0x88241313, // 006C GETMBR R9 R9 K19 + 0x1C201009, // 006D EQ R8 R8 R9 + 0x78220001, // 006E JMPF R8 #0071 + 0x8C200100, // 006F GETMET R8 R0 K0 + 0x7C200200, // 0070 CALL R8 1 + 0x70020000, // 0071 JMP #0073 + 0x70020000, // 0072 JMP #0074 + 0x7001FF9F, // 0073 JMP #0014 + 0x60140012, // 0074 GETGBL R5 G18 + 0x7C140000, // 0075 CALL R5 0 + 0x58180014, // 0076 LDCONST R6 K20 + 0x8C1C0106, // 0077 GETMET R7 R0 K6 + 0x7C1C0200, // 0078 CALL R7 1 + 0x741E002B, // 0079 JMPT R7 #00A6 + 0x8C1C0109, // 007A GETMET R7 R0 K9 + 0x7C1C0200, // 007B CALL R7 1 + 0x4C200000, // 007C LDNIL R8 + 0x1C200E08, // 007D EQ R8 R7 R8 + 0x74220005, // 007E JMPT R8 #0085 + 0x88200F0A, // 007F GETMBR R8 R7 K10 + 0xB8261600, // 0080 GETNGBL R9 K11 + 0x8824130C, // 0081 GETMBR R9 R9 K12 + 0x88241315, // 0082 GETMBR R9 R9 K21 + 0x1C201009, // 0083 EQ R8 R8 R9 + 0x78220000, // 0084 JMPF R8 #0086 + 0x7002001F, // 0085 JMP #00A6 + 0x88200F0A, // 0086 GETMBR R8 R7 K10 + 0xB8261600, // 0087 GETNGBL R9 K11 + 0x8824130C, // 0088 GETMBR R9 R9 K12 + 0x88241316, // 0089 GETMBR R9 R9 K22 + 0x1C201009, // 008A EQ R8 R8 R9 + 0x78220004, // 008B JMPF R8 #0091 + 0x00180D17, // 008C ADD R6 R6 K23 + 0x8C200B12, // 008D GETMET R8 R5 K18 + 0x5C280E00, // 008E MOVE R10 R7 + 0x7C200400, // 008F CALL R8 2 + 0x70020011, // 0090 JMP #00A3 + 0x88200F0A, // 0091 GETMBR R8 R7 K10 + 0xB8261600, // 0092 GETNGBL R9 K11 + 0x8824130C, // 0093 GETMBR R9 R9 K12 + 0x88241318, // 0094 GETMBR R9 R9 K24 + 0x1C201009, // 0095 EQ R8 R8 R9 + 0x78220008, // 0096 JMPF R8 #00A0 + 0x1C200D14, // 0097 EQ R8 R6 K20 + 0x78220001, // 0098 JMPF R8 #009B + 0x7002000B, // 0099 JMP #00A6 + 0x70020003, // 009A JMP #009F + 0x04180D17, // 009B SUB R6 R6 K23 + 0x8C200B12, // 009C GETMET R8 R5 K18 + 0x5C280E00, // 009D MOVE R10 R7 + 0x7C200400, // 009E CALL R8 2 + 0x70020002, // 009F JMP #00A3 + 0x8C200B12, // 00A0 GETMET R8 R5 K18 + 0x5C280E00, // 00A1 MOVE R10 R7 + 0x7C200400, // 00A2 CALL R8 2 + 0x8C200100, // 00A3 GETMET R8 R0 K0 + 0x7C200200, // 00A4 CALL R8 1 + 0x7001FFD0, // 00A5 JMP #0077 + 0x8C1C0119, // 00A6 GETMET R7 R0 K25 + 0x7C1C0200, // 00A7 CALL R7 1 + 0x8C1C011A, // 00A8 GETMET R7 R0 K26 + 0x5C240200, // 00A9 MOVE R9 R1 + 0x5C280400, // 00AA MOVE R10 R2 + 0x5C2C0600, // 00AB MOVE R11 R3 + 0x5C300A00, // 00AC MOVE R12 R5 + 0x7C1C0A00, // 00AD CALL R7 5 + 0x601C0013, // 00AE GETGBL R7 G19 + 0x7C1C0000, // 00AF CALL R7 0 + 0x981E3602, // 00B0 SETIDX R7 K27 R2 + 0x981E3803, // 00B1 SETIDX R7 K28 R3 + 0x8820011D, // 00B2 GETMBR R8 R0 K29 + 0x8C20111E, // 00B3 GETMET R8 R8 K30 + 0x5C280200, // 00B4 MOVE R10 R1 + 0x5C2C0E00, // 00B5 MOVE R11 R7 + 0x7C200600, // 00B6 CALL R8 3 + 0x80000000, // 00B7 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: expect_comma +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* 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(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: 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[17]) { /* 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(CONTEXT_VARIABLE), + /* K8 */ be_nested_str_weak(collect_inline_comment), + /* K9 */ be_nested_str_weak(_create_symbol_by_return_type), + /* K10 */ be_nested_str_weak(return_type), + /* K11 */ be_nested_str_weak(instance_for_validation), + /* K12 */ be_nested_str_weak(get_reference), + /* K13 */ be_nested_str_weak(_X25s_), + /* K14 */ be_nested_str_weak(add), + /* K15 */ be_nested_str_weak(var_X20_X25s_X20_X3D_X20_X25s_X25s), + /* K16 */ be_nested_str_weak(expr), + }), + be_str_weak(process_set), + &be_const_str_solidified, + ( &(const binstruction[43]) { /* 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 + 0x88100107, // 000F GETMBR R4 R0 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x8C0C0108, // 0011 GETMET R3 R0 K8 + 0x7C0C0200, // 0012 CALL R3 1 + 0x8C100109, // 0013 GETMET R4 R0 K9 + 0x5C180200, // 0014 MOVE R6 R1 + 0x881C050A, // 0015 GETMBR R7 R2 K10 + 0x8820050B, // 0016 GETMBR R8 R2 K11 + 0x7C100800, // 0017 CALL R4 4 + 0x4C140000, // 0018 LDNIL R5 + 0x20140805, // 0019 NE R5 R4 R5 + 0x78160002, // 001A JMPF R5 #001E + 0x8C14090C, // 001B GETMET R5 R4 K12 + 0x7C140200, // 001C CALL R5 1 + 0x70020003, // 001D JMP #0022 + 0x60140018, // 001E GETGBL R5 G24 + 0x5818000D, // 001F LDCONST R6 K13 + 0x5C1C0200, // 0020 MOVE R7 R1 + 0x7C140400, // 0021 CALL R5 2 + 0x8C18010E, // 0022 GETMET R6 R0 K14 + 0x60200018, // 0023 GETGBL R8 G24 + 0x5824000F, // 0024 LDCONST R9 K15 + 0x5C280A00, // 0025 MOVE R10 R5 + 0x882C0510, // 0026 GETMBR R11 R2 K16 + 0x5C300600, // 0027 MOVE R12 R3 + 0x7C200800, // 0028 CALL R8 4 + 0x7C180400, // 0029 CALL R6 2 + 0x80000000, // 002A 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), + /* K6 */ be_nested_str_weak(), + /* K7 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K8 */ be_nested_str_weak(engine), + /* 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[36]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0019, // 0004 JMPF R2 #001F + 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 + 0x780A0011, // 000C JMPF R2 #001F + 0x8C080105, // 000D GETMET R2 R0 K5 + 0x50100200, // 000E LDBOOL R4 1 0 + 0x7C080400, // 000F CALL R2 2 + 0x200C0506, // 0010 NE R3 R2 K6 + 0x780E0004, // 0011 JMPF R3 #0017 + 0x600C0018, // 0012 GETGBL R3 G24 + 0x58100007, // 0013 LDCONST R4 K7 + 0x5C140400, // 0014 MOVE R5 R2 + 0x7C0C0400, // 0015 CALL R3 2 + 0x70020000, // 0016 JMP #0018 + 0x580C0008, // 0017 LDCONST R3 K8 + 0x60100018, // 0018 GETGBL R4 G24 + 0x58140009, // 0019 LDCONST R5 K9 + 0x5C180200, // 001A MOVE R6 R1 + 0x5C1C0600, // 001B MOVE R7 R3 + 0x7C100600, // 001C CALL R4 3 + 0x80040800, // 001D RET 1 R4 + 0x70020003, // 001E JMP #0023 + 0x8C08010A, // 001F GETMET R2 R0 K10 + 0x5810000B, // 0020 LDCONST R4 K11 + 0x7C080400, // 0021 CALL R2 2 + 0x80061800, // 0022 RET 1 K12 + 0x80000000, // 0023 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[11]) { /* 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(CONTEXT_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(expr), + /* 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_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 + 0x88140104, // 0009 GETMBR R5 R0 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 + 0x88240707, // 0011 GETMBR R9 R3 K7 + 0x7C140800, // 0012 CALL R5 4 + 0x8C180108, // 0013 GETMET R6 R0 K8 + 0x60200018, // 0014 GETGBL R8 G24 + 0x58240009, // 0015 LDCONST R9 K9 + 0x8C28010A, // 0016 GETMET R10 R0 K10 + 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: 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: get_named_color_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* 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(symbol_table), + /* K1 */ be_nested_str_weak(get_reference), + }), + be_str_weak(get_named_color_value), + &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 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(), + /* K1 */ be_nested_str_weak(has_warnings), + /* K2 */ be_nested_str_weak(Compilation_X20warnings_X3A_X0A), + /* K3 */ be_nested_str_weak(warnings), + /* K4 */ be_nested_str_weak(_X20_X20), + /* K5 */ be_nested_str_weak(_X0A), + /* K6 */ be_nested_str_weak(stop_iteration), + /* K7 */ be_nested_str_weak(No_X20compilation_X20warnings), + }), + be_str_weak(get_error_report), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0x8C080101, // 0001 GETMET R2 R0 K1 + 0x7C080200, // 0002 CALL R2 1 + 0x780A000D, // 0003 JMPF R2 #0012 + 0x00040302, // 0004 ADD R1 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 + 0x1C080300, // 0012 EQ R2 R1 K0 + 0x780A0000, // 0013 JMPF R2 #0015 + 0x80060E00, // 0014 RET 1 K7 + 0x80040200, // 0015 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_additive_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ + be_nested_proto( + 15, /* nstack */ 4, /* 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(has_dangerous), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expression_X20_X27_X25s_X27_X20cannot_X20be_X20used_X20in_X20computed_X20expressions_X2E_X20This_X20creates_X20a_X20new_X20instance_X20at_X20each_X20evaluation_X2E_X20Use_X20either_X3A_X0A_X20_X20set_X20var_name_X20_X3D_X20_X25s_X28_X29_X20_X20_X23_X20Single_X20function_X20call_X0A_X20_X20set_X20computed_X20_X3D_X20_X28existing_var_X20_X2B_X201_X29_X20_X2F_X202_X20_X20_X23_X20Computation_X20with_X20existing_X20values), + /* K14 */ be_nested_str_weak(skip_statement), + /* K15 */ be_nested_str_weak(ExpressionResult), + /* K16 */ be_nested_str_weak(literal), + /* K17 */ be_nested_str_weak(nil), + /* K18 */ be_nested_str_weak(combine), + /* K19 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + }), + be_str_weak(process_additive_expression), + &be_const_str_solidified, + ( &(const binstruction[72]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x5C180200, // 0001 MOVE R6 R1 + 0x5C1C0400, // 0002 MOVE R7 R2 + 0x5C200600, // 0003 MOVE R8 R3 + 0x7C100800, // 0004 CALL R4 4 + 0x8C140101, // 0005 GETMET R5 R0 K1 + 0x7C140200, // 0006 CALL R5 1 + 0x7416003E, // 0007 JMPT R5 #0047 + 0x8C140102, // 0008 GETMET R5 R0 K2 + 0x7C140200, // 0009 CALL R5 1 + 0x4C180000, // 000A LDNIL R6 + 0x20180A06, // 000B NE R6 R5 R6 + 0x781A0037, // 000C JMPF R6 #0045 + 0x88180B03, // 000D GETMBR R6 R5 K3 + 0xB81E0800, // 000E GETNGBL R7 K4 + 0x881C0F05, // 000F GETMBR R7 R7 K5 + 0x881C0F06, // 0010 GETMBR R7 R7 K6 + 0x1C180C07, // 0011 EQ R6 R6 R7 + 0x741A0005, // 0012 JMPT R6 #0019 + 0x88180B03, // 0013 GETMBR R6 R5 K3 + 0xB81E0800, // 0014 GETNGBL R7 K4 + 0x881C0F05, // 0015 GETMBR R7 R7 K5 + 0x881C0F07, // 0016 GETMBR R7 R7 K7 + 0x1C180C07, // 0017 EQ R6 R6 R7 + 0x781A002B, // 0018 JMPF R6 #0045 + 0x88180B08, // 0019 GETMBR R6 R5 K8 + 0x8C1C0109, // 001A GETMET R7 R0 K9 + 0x7C1C0200, // 001B CALL R7 1 + 0x8C1C0100, // 001C GETMET R7 R0 K0 + 0x5C240200, // 001D MOVE R9 R1 + 0x50280000, // 001E LDBOOL R10 0 0 + 0x5C2C0600, // 001F MOVE R11 R3 + 0x7C1C0800, // 0020 CALL R7 4 + 0x8820090A, // 0021 GETMBR R8 R4 K10 + 0x74220001, // 0022 JMPT R8 #0025 + 0x88200F0A, // 0023 GETMBR R8 R7 K10 + 0x78220012, // 0024 JMPF R8 #0038 + 0x8820090A, // 0025 GETMBR R8 R4 K10 + 0x78220001, // 0026 JMPF R8 #0029 + 0x8820090B, // 0027 GETMBR R8 R4 K11 + 0x70020000, // 0028 JMP #002A + 0x88200F0B, // 0029 GETMBR R8 R7 K11 + 0x8C24010C, // 002A GETMET R9 R0 K12 + 0x602C0018, // 002B GETGBL R11 G24 + 0x5830000D, // 002C LDCONST R12 K13 + 0x5C341000, // 002D MOVE R13 R8 + 0x5C381000, // 002E MOVE R14 R8 + 0x7C2C0600, // 002F CALL R11 3 + 0x7C240400, // 0030 CALL R9 2 + 0x8C24010E, // 0031 GETMET R9 R0 K14 + 0x7C240200, // 0032 CALL R9 1 + 0x8824010F, // 0033 GETMBR R9 R0 K15 + 0x8C241310, // 0034 GETMET R9 R9 K16 + 0x582C0011, // 0035 LDCONST R11 K17 + 0x7C240400, // 0036 CALL R9 2 + 0x80041200, // 0037 RET 1 R9 + 0x8820010F, // 0038 GETMBR R8 R0 K15 + 0x8C201112, // 0039 GETMET R8 R8 K18 + 0x60280018, // 003A GETGBL R10 G24 + 0x582C0013, // 003B LDCONST R11 K19 + 0x8830090B, // 003C GETMBR R12 R4 K11 + 0x5C340C00, // 003D MOVE R13 R6 + 0x88380F0B, // 003E GETMBR R14 R7 K11 + 0x7C280800, // 003F CALL R10 4 + 0x5C2C0800, // 0040 MOVE R11 R4 + 0x5C300E00, // 0041 MOVE R12 R7 + 0x7C200800, // 0042 CALL R8 4 + 0x5C101000, // 0043 MOVE R4 R8 + 0x70020000, // 0044 JMP #0046 + 0x70020000, // 0045 JMP #0047 + 0x7001FFBD, // 0046 JMP #0005 + 0x80040800, // 0047 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_parameter_name +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_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[30]) { /* constants */ + /* K0 */ be_nested_str_weak(contains), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Duplicate_X20parameter_X20name_X20_X27_X25s_X27_X20in_X20template_X2E_X20Each_X20parameter_X20must_X20have_X20a_X20unique_X20name_X2E), + /* K3 */ be_nested_str_weak(engine), + /* K4 */ be_nested_str_weak(self), + /* K5 */ be_nested_str_weak(animation), + /* K6 */ be_nested_str_weak(color), + /* K7 */ be_nested_str_weak(palette), + /* K8 */ be_nested_str_weak(sequence), + /* K9 */ be_nested_str_weak(template), + /* K10 */ be_nested_str_weak(import), + /* K11 */ be_nested_str_weak(def), + /* K12 */ be_nested_str_weak(end), + /* K13 */ be_nested_str_weak(class), + /* K14 */ be_nested_str_weak(var), + /* K15 */ be_nested_str_weak(if), + /* K16 */ be_nested_str_weak(else), + /* K17 */ be_nested_str_weak(while), + /* K18 */ be_nested_str_weak(for), + /* K19 */ be_nested_str_weak(true), + /* K20 */ be_nested_str_weak(false), + /* K21 */ be_nested_str_weak(nil), + /* K22 */ be_nested_str_weak(return), + /* K23 */ be_nested_str_weak(break), + /* K24 */ be_nested_str_weak(continue), + /* K25 */ be_nested_str_weak(Parameter_X20name_X20_X27_X25s_X27_X20conflicts_X20with_X20reserved_X20keyword_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_param_X27_X20or_X20_X27my__X25s_X27_X2E), + /* K26 */ be_nested_str_weak(stop_iteration), + /* K27 */ be_nested_str_weak(animation_dsl), + /* K28 */ be_nested_str_weak(is_color_name), + /* K29 */ be_nested_str_weak(Parameter_X20name_X20_X27_X25s_X27_X20conflicts_X20with_X20built_X2Din_X20color_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_param_X27_X20or_X20_X27my__X25s_X27_X2E), + }), + be_str_weak(_validate_template_parameter_name), + &be_const_str_solidified, + ( &(const binstruction[76]) { /* code */ + 0x8C0C0500, // 0000 GETMET R3 R2 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x7C0C0400, // 0002 CALL R3 2 + 0x780E0007, // 0003 JMPF R3 #000C + 0x8C0C0101, // 0004 GETMET R3 R0 K1 + 0x60140018, // 0005 GETGBL R5 G24 + 0x58180002, // 0006 LDCONST R6 K2 + 0x5C1C0200, // 0007 MOVE R7 R1 + 0x7C140400, // 0008 CALL R5 2 + 0x7C0C0400, // 0009 CALL R3 2 + 0x500C0000, // 000A LDBOOL R3 0 0 + 0x80040600, // 000B RET 1 R3 + 0x600C0012, // 000C GETGBL R3 G18 + 0x7C0C0000, // 000D CALL R3 0 + 0x40100703, // 000E CONNECT R4 R3 K3 + 0x40100704, // 000F CONNECT R4 R3 K4 + 0x40100705, // 0010 CONNECT R4 R3 K5 + 0x40100706, // 0011 CONNECT R4 R3 K6 + 0x40100707, // 0012 CONNECT R4 R3 K7 + 0x40100708, // 0013 CONNECT R4 R3 K8 + 0x40100709, // 0014 CONNECT R4 R3 K9 + 0x4010070A, // 0015 CONNECT R4 R3 K10 + 0x4010070B, // 0016 CONNECT R4 R3 K11 + 0x4010070C, // 0017 CONNECT R4 R3 K12 + 0x4010070D, // 0018 CONNECT R4 R3 K13 + 0x4010070E, // 0019 CONNECT R4 R3 K14 + 0x4010070F, // 001A CONNECT R4 R3 K15 + 0x40100710, // 001B CONNECT R4 R3 K16 + 0x40100711, // 001C CONNECT R4 R3 K17 + 0x40100712, // 001D CONNECT R4 R3 K18 + 0x40100713, // 001E CONNECT R4 R3 K19 + 0x40100714, // 001F CONNECT R4 R3 K20 + 0x40100715, // 0020 CONNECT R4 R3 K21 + 0x40100716, // 0021 CONNECT R4 R3 K22 + 0x40100717, // 0022 CONNECT R4 R3 K23 + 0x40100718, // 0023 CONNECT R4 R3 K24 + 0x60100010, // 0024 GETGBL R4 G16 + 0x5C140600, // 0025 MOVE R5 R3 + 0x7C100200, // 0026 CALL R4 1 + 0xA802000F, // 0027 EXBLK 0 #0038 + 0x5C140800, // 0028 MOVE R5 R4 + 0x7C140000, // 0029 CALL R5 0 + 0x1C180205, // 002A EQ R6 R1 R5 + 0x781A000A, // 002B JMPF R6 #0037 + 0x8C180101, // 002C GETMET R6 R0 K1 + 0x60200018, // 002D GETGBL R8 G24 + 0x58240019, // 002E LDCONST R9 K25 + 0x5C280200, // 002F MOVE R10 R1 + 0x5C2C0200, // 0030 MOVE R11 R1 + 0x5C300200, // 0031 MOVE R12 R1 + 0x7C200800, // 0032 CALL R8 4 + 0x7C180400, // 0033 CALL R6 2 + 0x50180000, // 0034 LDBOOL R6 0 0 + 0xA8040001, // 0035 EXBLK 1 1 + 0x80040C00, // 0036 RET 1 R6 + 0x7001FFEF, // 0037 JMP #0028 + 0x5810001A, // 0038 LDCONST R4 K26 + 0xAC100200, // 0039 CATCH R4 1 0 + 0xB0080000, // 003A RAISE 2 R0 R0 + 0xB8123600, // 003B GETNGBL R4 K27 + 0x8C10091C, // 003C GETMET R4 R4 K28 + 0x5C180200, // 003D MOVE R6 R1 + 0x7C100400, // 003E CALL R4 2 + 0x78120009, // 003F JMPF R4 #004A + 0x8C100101, // 0040 GETMET R4 R0 K1 + 0x60180018, // 0041 GETGBL R6 G24 + 0x581C001D, // 0042 LDCONST R7 K29 + 0x5C200200, // 0043 MOVE R8 R1 + 0x5C240200, // 0044 MOVE R9 R1 + 0x5C280200, // 0045 MOVE R10 R1 + 0x7C180800, // 0046 CALL R6 4 + 0x7C100400, // 0047 CALL R4 2 + 0x50100000, // 0048 LDBOOL R4 0 0 + 0x80040800, // 0049 RET 1 R4 + 0x50100200, // 004A LDBOOL R4 1 0 + 0x80040800, // 004B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: 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: 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: 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: process_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ + be_nested_proto( + 16, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ 1, /* has sup protos */ ( &(const struct bproto*[ 1]) { be_nested_proto( - 11, /* nstack */ - 3, /* argc */ + 6, /* nstack */ + 2, /* argc */ 0, /* varg */ 1, /* has upvals */ - ( &(const bupvaldesc[ 2]) { /* upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ be_local_const_upval(1, 0), - be_local_const_upval(1, 1), }), 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(add), - /* K1 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(create_animation), }), - be_str_weak(_anonymous_), + be_str_weak(_X3Clambda_X3E), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x680C0000, // 0000 GETUPV R3 U0 - 0x8C0C0700, // 0001 GETMET R3 R3 K0 - 0x60140018, // 0002 GETGBL R5 G24 - 0x58180001, // 0003 LDCONST R6 K1 - 0x681C0001, // 0004 GETUPV R7 U1 - 0x5C200000, // 0005 MOVE R8 R0 - 0x5C240200, // 0006 MOVE R9 R1 - 0x5C280400, // 0007 MOVE R10 R2 - 0x7C140A00, // 0008 CALL R5 5 - 0x7C0C0400, // 0009 CALL R3 2 - 0x80000000, // 000A RET 0 + ( &(const binstruction[ 7]) { /* code */ + 0x68080000, // 0000 GETUPV R2 U0 + 0x88080500, // 0001 GETMBR R2 R2 K0 + 0x8C080501, // 0002 GETMET R2 R2 K1 + 0x5C100000, // 0003 MOVE R4 R0 + 0x5C140200, // 0004 MOVE R5 R1 + 0x7C080600, // 0005 CALL R2 3 + 0x80040400, // 0006 RET 1 R2 }) ), }), 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_process_parameters_core), - /* K2 */ be_nested_str_weak(expect_right_paren), + ( &(const bvalue[39]) { /* 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), + /* 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(symbol_table), + /* K19 */ be_nested_str_weak(get), + /* K20 */ be_nested_str_weak(_symbol_entry), + /* K21 */ be_nested_str_weak(TYPE_TEMPLATE), + /* K22 */ be_nested_str_weak(process_function_arguments), + /* K23 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K24 */ be_nested_str_weak(engine), + /* K25 */ be_nested_str_weak(add), + /* K26 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), + /* K27 */ be_nested_str_weak(create_animation), + /* K28 */ be_nested_str_weak(TYPE_USER_FUNCTION), + /* K29 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), + /* K30 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), + /* K31 */ be_nested_str_weak(error), + /* K32 */ 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), + /* K33 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), + /* K34 */ be_nested_str_weak(_create_instance_for_validation), + /* K35 */ be_nested_str_weak(_process_named_arguments_for_animation), + /* K36 */ be_nested_str_weak(_X25s_), + /* K37 */ be_nested_str_weak(_process_simple_value_assignment), + /* K38 */ be_nested_str_weak(CONTEXT_ANIMATION), }), - be_str_weak(_process_named_arguments_unified), + be_str_weak(process_animation), &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x84100000, // 0002 CLOSURE R4 P0 - 0x8C140101, // 0003 GETMET R5 R0 K1 - 0x5C1C0400, // 0004 MOVE R7 R2 - 0x5C200600, // 0005 MOVE R8 R3 - 0x5C240800, // 0006 MOVE R9 R4 - 0x7C140800, // 0007 CALL R5 4 - 0x8C140102, // 0008 GETMET R5 R0 K2 - 0x7C140200, // 0009 CALL R5 1 - 0xA0000000, // 000A CLOSE R0 - 0x80000000, // 000B RET 0 + ( &(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 + 0x780E009B, // 001B JMPF R3 #00B8 + 0x8C0C010C, // 001C GETMET R3 R0 K12 + 0x7C0C0200, // 001D CALL R3 1 + 0x4C100000, // 001E LDNIL R4 + 0x200C0604, // 001F NE R3 R3 R4 + 0x780E0096, // 0020 JMPF R3 #00B8 + 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 + 0x780E008E, // 0028 JMPF R3 #00B8 + 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 + 0x4C180000, // 0045 LDNIL R6 + 0x20180A06, // 0046 NE R6 R5 R6 + 0x781A001F, // 0047 JMPF R6 #0068 + 0x88180B07, // 0048 GETMBR R6 R5 K7 + 0xB81E1000, // 0049 GETNGBL R7 K8 + 0x881C0F14, // 004A GETMBR R7 R7 K20 + 0x881C0F15, // 004B GETMBR R7 R7 K21 + 0x1C180C07, // 004C EQ R6 R6 R7 + 0x781A0019, // 004D JMPF R6 #0068 + 0x8C180116, // 004E GETMET R6 R0 K22 + 0x50200000, // 004F LDBOOL R8 0 0 + 0x7C180400, // 0050 CALL R6 2 + 0x201C0D0F, // 0051 NE R7 R6 K15 + 0x781E0004, // 0052 JMPF R7 #0058 + 0x601C0018, // 0053 GETGBL R7 G24 + 0x58200017, // 0054 LDCONST R8 K23 + 0x5C240C00, // 0055 MOVE R9 R6 + 0x7C1C0400, // 0056 CALL R7 2 + 0x70020000, // 0057 JMP #0059 + 0x581C0018, // 0058 LDCONST R7 K24 + 0x8C200119, // 0059 GETMET R8 R0 K25 + 0x60280018, // 005A GETGBL R10 G24 + 0x582C001A, // 005B LDCONST R11 K26 + 0x5C300200, // 005C MOVE R12 R1 + 0x5C340600, // 005D MOVE R13 R3 + 0x5C380E00, // 005E MOVE R14 R7 + 0x5C3C0800, // 005F MOVE R15 R4 + 0x7C280A00, // 0060 CALL R10 5 + 0x7C200400, // 0061 CALL R8 2 + 0x88200112, // 0062 GETMBR R8 R0 K18 + 0x8C20111B, // 0063 GETMET R8 R8 K27 + 0x5C280200, // 0064 MOVE R10 R1 + 0x4C2C0000, // 0065 LDNIL R11 + 0x7C200600, // 0066 CALL R8 3 + 0x7002004E, // 0067 JMP #00B7 + 0x4C180000, // 0068 LDNIL R6 + 0x20180A06, // 0069 NE R6 R5 R6 + 0x781A001F, // 006A JMPF R6 #008B + 0x88180B07, // 006B GETMBR R6 R5 K7 + 0xB81E1000, // 006C GETNGBL R7 K8 + 0x881C0F14, // 006D GETMBR R7 R7 K20 + 0x881C0F1C, // 006E GETMBR R7 R7 K28 + 0x1C180C07, // 006F EQ R6 R6 R7 + 0x781A0019, // 0070 JMPF R6 #008B + 0x8C180116, // 0071 GETMET R6 R0 K22 + 0x50200000, // 0072 LDBOOL R8 0 0 + 0x7C180400, // 0073 CALL R6 2 + 0x201C0D0F, // 0074 NE R7 R6 K15 + 0x781E0004, // 0075 JMPF R7 #007B + 0x601C0018, // 0076 GETGBL R7 G24 + 0x58200017, // 0077 LDCONST R8 K23 + 0x5C240C00, // 0078 MOVE R9 R6 + 0x7C1C0400, // 0079 CALL R7 2 + 0x70020000, // 007A JMP #007C + 0x581C0018, // 007B LDCONST R7 K24 + 0x8C200119, // 007C GETMET R8 R0 K25 + 0x60280018, // 007D GETGBL R10 G24 + 0x582C001D, // 007E LDCONST R11 K29 + 0x5C300200, // 007F MOVE R12 R1 + 0x5C340600, // 0080 MOVE R13 R3 + 0x5C380E00, // 0081 MOVE R14 R7 + 0x5C3C0800, // 0082 MOVE R15 R4 + 0x7C280A00, // 0083 CALL R10 5 + 0x7C200400, // 0084 CALL R8 2 + 0x88200112, // 0085 GETMBR R8 R0 K18 + 0x8C20111B, // 0086 GETMET R8 R8 K27 + 0x5C280200, // 0087 MOVE R10 R1 + 0x4C2C0000, // 0088 LDNIL R11 + 0x7C200600, // 0089 CALL R8 3 + 0x7002002B, // 008A JMP #00B7 + 0x4C180000, // 008B LDNIL R6 + 0x1C180A06, // 008C EQ R6 R5 R6 + 0x741A0005, // 008D JMPT R6 #0094 + 0x88180B07, // 008E GETMBR R6 R5 K7 + 0xB81E1000, // 008F GETNGBL R7 K8 + 0x881C0F14, // 0090 GETMBR R7 R7 K20 + 0x881C0F1E, // 0091 GETMBR R7 R7 K30 + 0x20180C07, // 0092 NE R6 R6 R7 + 0x781A0008, // 0093 JMPF R6 #009D + 0x8C18011F, // 0094 GETMET R6 R0 K31 + 0x60200018, // 0095 GETGBL R8 G24 + 0x58240020, // 0096 LDCONST R9 K32 + 0x5C280600, // 0097 MOVE R10 R3 + 0x7C200400, // 0098 CALL R8 2 + 0x7C180400, // 0099 CALL R6 2 + 0x8C180104, // 009A GETMET R6 R0 K4 + 0x7C180200, // 009B CALL R6 1 + 0x80000C00, // 009C RET 0 + 0x8C180119, // 009D GETMET R6 R0 K25 + 0x60200018, // 009E GETGBL R8 G24 + 0x58240021, // 009F LDCONST R9 K33 + 0x5C280200, // 00A0 MOVE R10 R1 + 0x5C2C0600, // 00A1 MOVE R11 R3 + 0x5C300800, // 00A2 MOVE R12 R4 + 0x7C200800, // 00A3 CALL R8 4 + 0x7C180400, // 00A4 CALL R6 2 + 0x8C180122, // 00A5 GETMET R6 R0 K34 + 0x5C200600, // 00A6 MOVE R8 R3 + 0x7C180400, // 00A7 CALL R6 2 + 0x4C1C0000, // 00A8 LDNIL R7 + 0x201C0C07, // 00A9 NE R7 R6 R7 + 0x781E0004, // 00AA JMPF R7 #00B0 + 0x881C0112, // 00AB GETMBR R7 R0 K18 + 0x8C1C0F1B, // 00AC GETMET R7 R7 K27 + 0x5C240200, // 00AD MOVE R9 R1 + 0x5C280C00, // 00AE MOVE R10 R6 + 0x7C1C0600, // 00AF CALL R7 3 + 0x8C1C0123, // 00B0 GETMET R7 R0 K35 + 0x60240018, // 00B1 GETGBL R9 G24 + 0x58280024, // 00B2 LDCONST R10 K36 + 0x5C2C0200, // 00B3 MOVE R11 R1 + 0x7C240400, // 00B4 CALL R9 2 + 0x5C280600, // 00B5 MOVE R10 R3 + 0x7C1C0600, // 00B6 CALL R7 3 + 0x70020004, // 00B7 JMP #00BD + 0x8C0C0125, // 00B8 GETMET R3 R0 K37 + 0x5C140200, // 00B9 MOVE R5 R1 + 0x88180126, // 00BA GETMBR R6 R0 K38 + 0x841C0000, // 00BB CLOSURE R7 P0 + 0x7C0C0800, // 00BC CALL R3 4 + 0xA0000000, // 00BD CLOSE R0 + 0x80000000, // 00BE RET 0 }) ) ); @@ -2792,62 +4471,11 @@ be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* /******************************************************************** -** Solidified function: process_run +** Solidified function: _process_parameters_core ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ +be_local_closure(class_SimpleDSLTranspiler__process_parameters_core, /* 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_symbol_by_return_type -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type, /* name */ - be_nested_proto( - 8, /* nstack */ + 13, /* nstack */ 4, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -2855,84 +4483,482 @@ be_local_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type, /* n 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(animation), - /* K1 */ be_nested_str_weak(symbol_table), - /* K2 */ be_nested_str_weak(create_animation), - /* K3 */ be_nested_str_weak(color), - /* K4 */ be_nested_str_weak(create_color), - /* K5 */ be_nested_str_weak(value_provider), - /* K6 */ be_nested_str_weak(create_value_provider), - /* K7 */ be_nested_str_weak(palette), - /* K8 */ be_nested_str_weak(create_palette), - /* K9 */ be_nested_str_weak(sequence), - /* K10 */ be_nested_str_weak(create_sequence), - /* K11 */ be_nested_str_weak(template), - /* K12 */ be_nested_str_weak(create_template), - /* K13 */ be_nested_str_weak(create_variable), + ( &(const bvalue[22]) { /* constants */ + /* K0 */ be_nested_str_weak(), + /* 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(CONTEXT_VARIABLE), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(current), + /* K13 */ be_nested_str_weak(type), + /* K14 */ be_nested_str_weak(animation_dsl), + /* K15 */ be_nested_str_weak(Token), + /* K16 */ be_nested_str_weak(COMMENT), + /* K17 */ be_nested_str_weak(next), + /* K18 */ be_nested_str_weak(COMMA), + /* K19 */ be_nested_str_weak(NEWLINE), + /* K20 */ be_nested_str_weak(error), + /* K21 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), }), - be_str_weak(_create_symbol_by_return_type), + be_str_weak(_process_parameters_core), &be_const_str_solidified, - ( &(const binstruction[59]) { /* code */ - 0x1C100500, // 0000 EQ R4 R2 K0 - 0x78120006, // 0001 JMPF R4 #0009 - 0x88100101, // 0002 GETMBR R4 R0 K1 - 0x8C100902, // 0003 GETMET R4 R4 K2 - 0x5C180200, // 0004 MOVE R6 R1 - 0x5C1C0600, // 0005 MOVE R7 R3 - 0x7C100600, // 0006 CALL R4 3 - 0x80040800, // 0007 RET 1 R4 - 0x70020030, // 0008 JMP #003A - 0x1C100503, // 0009 EQ R4 R2 K3 - 0x78120006, // 000A JMPF R4 #0012 - 0x88100101, // 000B GETMBR R4 R0 K1 - 0x8C100904, // 000C GETMET R4 R4 K4 - 0x5C180200, // 000D MOVE R6 R1 - 0x5C1C0600, // 000E MOVE R7 R3 - 0x7C100600, // 000F CALL R4 3 - 0x80040800, // 0010 RET 1 R4 - 0x70020027, // 0011 JMP #003A - 0x1C100505, // 0012 EQ R4 R2 K5 - 0x78120006, // 0013 JMPF R4 #001B - 0x88100101, // 0014 GETMBR R4 R0 K1 - 0x8C100906, // 0015 GETMET R4 R4 K6 - 0x5C180200, // 0016 MOVE R6 R1 - 0x5C1C0600, // 0017 MOVE R7 R3 - 0x7C100600, // 0018 CALL R4 3 - 0x80040800, // 0019 RET 1 R4 - 0x7002001E, // 001A JMP #003A - 0x1C100507, // 001B EQ R4 R2 K7 - 0x78120006, // 001C JMPF R4 #0024 - 0x88100101, // 001D GETMBR R4 R0 K1 - 0x8C100908, // 001E GETMET R4 R4 K8 - 0x5C180200, // 001F MOVE R6 R1 - 0x5C1C0600, // 0020 MOVE R7 R3 - 0x7C100600, // 0021 CALL R4 3 - 0x80040800, // 0022 RET 1 R4 - 0x70020015, // 0023 JMP #003A - 0x1C100509, // 0024 EQ R4 R2 K9 - 0x78120005, // 0025 JMPF R4 #002C - 0x88100101, // 0026 GETMBR R4 R0 K1 - 0x8C10090A, // 0027 GETMET R4 R4 K10 - 0x5C180200, // 0028 MOVE R6 R1 - 0x7C100400, // 0029 CALL R4 2 - 0x80040800, // 002A RET 1 R4 - 0x7002000D, // 002B JMP #003A - 0x1C10050B, // 002C EQ R4 R2 K11 - 0x78120006, // 002D JMPF R4 #0035 - 0x88100101, // 002E GETMBR R4 R0 K1 - 0x8C10090C, // 002F GETMET R4 R4 K12 - 0x5C180200, // 0030 MOVE R6 R1 - 0x4C1C0000, // 0031 LDNIL R7 - 0x7C100600, // 0032 CALL R4 3 - 0x80040800, // 0033 RET 1 R4 - 0x70020004, // 0034 JMP #003A - 0x88100101, // 0035 GETMBR R4 R0 K1 - 0x8C10090D, // 0036 GETMET R4 R4 K13 - 0x5C180200, // 0037 MOVE R6 R1 - 0x7C100400, // 0038 CALL R4 2 - 0x80040800, // 0039 RET 1 R4 - 0x80000000, // 003A RET 0 + ( &(const binstruction[108]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x5C140200, // 0001 MOVE R5 R1 + 0x20180B00, // 0002 NE R6 R5 K0 + 0x781A0003, // 0003 JMPF R6 #0008 + 0x8C180101, // 0004 GETMET R6 R0 K1 + 0x5C200A00, // 0005 MOVE R8 R5 + 0x7C180400, // 0006 CALL R6 2 + 0x5C100C00, // 0007 MOVE R4 R6 + 0x8C180102, // 0008 GETMET R6 R0 K2 + 0x7C180200, // 0009 CALL R6 1 + 0x741A005F, // 000A JMPT R6 #006B + 0x8C180103, // 000B GETMET R6 R0 K3 + 0x7C180200, // 000C CALL R6 1 + 0x741A005C, // 000D JMPT R6 #006B + 0x8C180104, // 000E GETMET R6 R0 K4 + 0x7C180200, // 000F CALL R6 1 + 0x8C180103, // 0010 GETMET R6 R0 K3 + 0x7C180200, // 0011 CALL R6 1 + 0x781A0000, // 0012 JMPF R6 #0014 + 0x70020056, // 0013 JMP #006B + 0x8C180105, // 0014 GETMET R6 R0 K5 + 0x7C180200, // 0015 CALL R6 1 + 0x4C1C0000, // 0016 LDNIL R7 + 0x201C0807, // 0017 NE R7 R4 R7 + 0x781E0006, // 0018 JMPF R7 #0020 + 0x201C0B00, // 0019 NE R7 R5 K0 + 0x781E0004, // 001A JMPF R7 #0020 + 0x8C1C0106, // 001B GETMET R7 R0 K6 + 0x5C240A00, // 001C MOVE R9 R5 + 0x5C280C00, // 001D MOVE R10 R6 + 0x5C2C0800, // 001E MOVE R11 R4 + 0x7C1C0800, // 001F CALL R7 4 + 0x8C1C0107, // 0020 GETMET R7 R0 K7 + 0x7C1C0200, // 0021 CALL R7 1 + 0x8C1C0108, // 0022 GETMET R7 R0 K8 + 0x88240109, // 0023 GETMBR R9 R0 K9 + 0x7C1C0400, // 0024 CALL R7 2 + 0x8C20010A, // 0025 GETMET R8 R0 K10 + 0x7C200200, // 0026 CALL R8 1 + 0x5C240600, // 0027 MOVE R9 R3 + 0x5C280C00, // 0028 MOVE R10 R6 + 0x882C0F0B, // 0029 GETMBR R11 R7 K11 + 0x5C301000, // 002A MOVE R12 R8 + 0x7C240600, // 002B CALL R9 3 + 0x8C240102, // 002C GETMET R9 R0 K2 + 0x7C240200, // 002D CALL R9 1 + 0x7426000F, // 002E JMPT R9 #003F + 0x8C24010C, // 002F GETMET R9 R0 K12 + 0x7C240200, // 0030 CALL R9 1 + 0x4C280000, // 0031 LDNIL R10 + 0x2028120A, // 0032 NE R10 R9 R10 + 0x782A0008, // 0033 JMPF R10 #003D + 0x8828130D, // 0034 GETMBR R10 R9 K13 + 0xB82E1C00, // 0035 GETNGBL R11 K14 + 0x882C170F, // 0036 GETMBR R11 R11 K15 + 0x882C1710, // 0037 GETMBR R11 R11 K16 + 0x1C28140B, // 0038 EQ R10 R10 R11 + 0x782A0002, // 0039 JMPF R10 #003D + 0x8C280111, // 003A GETMET R10 R0 K17 + 0x7C280200, // 003B CALL R10 1 + 0x70020000, // 003C JMP #003E + 0x70020000, // 003D JMP #003F + 0x7001FFEC, // 003E JMP #002C + 0x8C24010C, // 003F GETMET R9 R0 K12 + 0x7C240200, // 0040 CALL R9 1 + 0x4C280000, // 0041 LDNIL R10 + 0x2024120A, // 0042 NE R9 R9 R10 + 0x7826000C, // 0043 JMPF R9 #0051 + 0x8C24010C, // 0044 GETMET R9 R0 K12 + 0x7C240200, // 0045 CALL R9 1 + 0x8824130D, // 0046 GETMBR R9 R9 K13 + 0xB82A1C00, // 0047 GETNGBL R10 K14 + 0x8828150F, // 0048 GETMBR R10 R10 K15 + 0x88281512, // 0049 GETMBR R10 R10 K18 + 0x1C24120A, // 004A EQ R9 R9 R10 + 0x78260004, // 004B JMPF R9 #0051 + 0x8C240111, // 004C GETMET R9 R0 K17 + 0x7C240200, // 004D CALL R9 1 + 0x8C240104, // 004E GETMET R9 R0 K4 + 0x7C240200, // 004F CALL R9 1 + 0x70020018, // 0050 JMP #006A + 0x8C24010C, // 0051 GETMET R9 R0 K12 + 0x7C240200, // 0052 CALL R9 1 + 0x4C280000, // 0053 LDNIL R10 + 0x2024120A, // 0054 NE R9 R9 R10 + 0x7826000C, // 0055 JMPF R9 #0063 + 0x8C24010C, // 0056 GETMET R9 R0 K12 + 0x7C240200, // 0057 CALL R9 1 + 0x8824130D, // 0058 GETMBR R9 R9 K13 + 0xB82A1C00, // 0059 GETNGBL R10 K14 + 0x8828150F, // 005A GETMBR R10 R10 K15 + 0x88281513, // 005B GETMBR R10 R10 K19 + 0x1C24120A, // 005C EQ R9 R9 R10 + 0x78260004, // 005D JMPF R9 #0063 + 0x8C240111, // 005E GETMET R9 R0 K17 + 0x7C240200, // 005F CALL R9 1 + 0x8C240104, // 0060 GETMET R9 R0 K4 + 0x7C240200, // 0061 CALL R9 1 + 0x70020006, // 0062 JMP #006A + 0x8C240103, // 0063 GETMET R9 R0 K3 + 0x7C240200, // 0064 CALL R9 1 + 0x74260003, // 0065 JMPT R9 #006A + 0x8C240114, // 0066 GETMET R9 R0 K20 + 0x582C0015, // 0067 LDCONST R11 K21 + 0x7C240400, // 0068 CALL R9 2 + 0x70020000, // 0069 JMP #006B + 0x7001FF9C, // 006A JMP #0008 + 0x80000000, // 006B 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: _validate_template_parameter_type +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_type, /* 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[13]) { /* constants */ + /* K0 */ be_nested_str_weak(color), + /* K1 */ be_nested_str_weak(palette), + /* K2 */ be_nested_str_weak(animation), + /* K3 */ be_nested_str_weak(number), + /* K4 */ be_nested_str_weak(string), + /* K5 */ be_nested_str_weak(boolean), + /* K6 */ be_nested_str_weak(time), + /* K7 */ be_nested_str_weak(percentage), + /* K8 */ be_nested_str_weak(variable), + /* K9 */ be_nested_str_weak(value_provider), + /* K10 */ be_nested_str_weak(stop_iteration), + /* K11 */ be_nested_str_weak(error), + /* K12 */ be_nested_str_weak(Invalid_X20parameter_X20type_X20_X27_X25s_X27_X2E_X20Valid_X20types_X20are_X3A_X20_X25s), + }), + be_str_weak(_validate_template_parameter_type), + &be_const_str_solidified, + ( &(const binstruction[36]) { /* 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 + 0x600C0010, // 000C GETGBL R3 G16 + 0x5C100400, // 000D MOVE R4 R2 + 0x7C0C0200, // 000E CALL R3 1 + 0xA8020007, // 000F EXBLK 0 #0018 + 0x5C100600, // 0010 MOVE R4 R3 + 0x7C100000, // 0011 CALL R4 0 + 0x1C140204, // 0012 EQ R5 R1 R4 + 0x78160002, // 0013 JMPF R5 #0017 + 0x50140200, // 0014 LDBOOL R5 1 0 + 0xA8040001, // 0015 EXBLK 1 1 + 0x80040A00, // 0016 RET 1 R5 + 0x7001FFF7, // 0017 JMP #0010 + 0x580C000A, // 0018 LDCONST R3 K10 + 0xAC0C0200, // 0019 CATCH R3 1 0 + 0xB0080000, // 001A RAISE 2 R0 R0 + 0x8C0C010B, // 001B GETMET R3 R0 K11 + 0x60140018, // 001C GETGBL R5 G24 + 0x5818000C, // 001D LDCONST R6 K12 + 0x5C1C0200, // 001E MOVE R7 R1 + 0x5C200400, // 001F MOVE R8 R2 + 0x7C140600, // 0020 CALL R5 3 + 0x7C0C0400, // 0021 CALL R3 2 + 0x500C0000, // 0022 LDBOOL R3 0 0 + 0x80040600, // 0023 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[17]) { /* 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(expr), + /* K15 */ be_nested_str_weak(expect_right_paren), + /* K16 */ 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 + 0x8818070E, // 0021 GETMBR R6 R3 K14 + 0x7C100400, // 0022 CALL R4 2 + 0x00040204, // 0023 ADD R1 R1 R4 + 0x8C08010F, // 0024 GETMET R2 R0 K15 + 0x7C080200, // 0025 CALL R2 1 + 0x00040310, // 0026 ADD R1 R1 K16 + 0x80040200, // 0027 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: check_right_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* 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_PAREN), + }), + be_str_weak(check_right_paren), + &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: 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 }) ) ); @@ -2989,6 +5015,2214 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_warnings +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_warnings, /* 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(warnings), + }), + be_str_weak(get_warnings), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_palette_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* 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[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_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(CONTEXT_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[31]) { /* 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 + 0x7002000E, // 000E JMP #001E + 0x88100104, // 000F GETMBR R4 R0 K4 + 0x1C100404, // 0010 EQ R4 R2 R4 + 0x78120005, // 0011 JMPF R4 #0018 + 0x60100018, // 0012 GETGBL R4 G24 + 0x58140005, // 0013 LDCONST R5 K5 + 0x5C180200, // 0014 MOVE R6 R1 + 0x7C100400, // 0015 CALL R4 2 + 0x80040800, // 0016 RET 1 R4 + 0x70020005, // 0017 JMP #001E + 0x60100018, // 0018 GETGBL R4 G24 + 0x58140006, // 0019 LDCONST R5 K6 + 0x5C180200, // 001A MOVE R6 R1 + 0x5C1C0600, // 001B MOVE R7 R3 + 0x7C100600, // 001C CALL R4 3 + 0x80040800, // 001D RET 1 R4 + 0x80000000, // 001E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: has_warnings +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_has_warnings, /* 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(warnings), + /* K1 */ be_const_int(0), + }), + be_str_weak(has_warnings), + &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: convert_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_convert_color, /* 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[10]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(startswith), + /* K2 */ be_nested_str_weak(0x), + /* K3 */ be_nested_str_weak(0xFF_X25s), + /* K4 */ be_const_int(2), + /* K5 */ be_const_int(2147483647), + /* K6 */ be_nested_str_weak(animation_dsl), + /* K7 */ be_nested_str_weak(is_color_name), + /* K8 */ be_nested_str_weak(get_named_color_value), + /* K9 */ be_nested_str_weak(0xFFFFFFFF), + }), + be_str_weak(convert_color), + &be_const_str_solidified, + ( &(const binstruction[36]) { /* 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 + 0x780E0013, // 0005 JMPF R3 #001A + 0x600C000C, // 0006 GETGBL R3 G12 + 0x5C100200, // 0007 MOVE R4 R1 + 0x7C0C0200, // 0008 CALL R3 1 + 0x54120009, // 0009 LDINT R4 10 + 0x1C0C0604, // 000A EQ R3 R3 R4 + 0x780E0001, // 000B JMPF R3 #000E + 0x80040200, // 000C RET 1 R1 + 0x7002000B, // 000D JMP #001A + 0x600C000C, // 000E GETGBL R3 G12 + 0x5C100200, // 000F MOVE R4 R1 + 0x7C0C0200, // 0010 CALL R3 1 + 0x54120007, // 0011 LDINT R4 8 + 0x1C0C0604, // 0012 EQ R3 R3 R4 + 0x780E0005, // 0013 JMPF R3 #001A + 0x600C0018, // 0014 GETGBL R3 G24 + 0x58100003, // 0015 LDCONST R4 K3 + 0x40160905, // 0016 CONNECT R5 K4 K5 + 0x94140205, // 0017 GETIDX R5 R1 R5 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80040600, // 0019 RET 1 R3 + 0xB80E0C00, // 001A GETNGBL R3 K6 + 0x8C0C0707, // 001B GETMET R3 R3 K7 + 0x5C140200, // 001C MOVE R5 R1 + 0x7C0C0400, // 001D CALL R3 2 + 0x780E0003, // 001E JMPF R3 #0023 + 0x8C0C0108, // 001F GETMET R3 R0 K8 + 0x5C140200, // 0020 MOVE R5 R1 + 0x7C0C0400, // 0021 CALL R3 2 + 0x80040600, // 0022 RET 1 R3 + 0x80061200, // 0023 RET 1 K9 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: 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( + 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[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(get), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(_symbol_entry), + /* K5 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), + }), + be_str_weak(_validate_color_provider_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x780E0005, // 0006 JMPF R3 #000D + 0x880C0502, // 0007 GETMBR R3 R2 K2 + 0xB8120600, // 0008 GETNGBL R4 K3 + 0x88100904, // 0009 GETMBR R4 R4 K4 + 0x88100905, // 000A GETMBR R4 R4 K5 + 0x1C0C0604, // 000B EQ R3 R3 R4 + 0x740E0000, // 000C JMPT R3 #000E + 0x500C0001, // 000D LDBOOL R3 0 1 + 0x500C0200, // 000E LDBOOL R3 1 0 + 0x80040600, // 000F RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[22]) { /* 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(CONTEXT_ARRAY_ELEMENT), + /* K5 */ be_nested_str_weak(push), + /* K6 */ be_nested_str_weak(expr), + /* 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_X5D_X27_X20in_X20array_X20literal), + /* K15 */ be_nested_str_weak(expect_right_bracket), + /* K16 */ be_nested_str_weak(_X5B), + /* K17 */ be_const_int(0), + /* K18 */ be_const_int(1), + /* K19 */ be_nested_str_weak(_X2C_X20), + /* K20 */ be_nested_str_weak(stop_iteration), + /* K21 */ 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 + 0x88100104, // 000B GETMBR R4 R0 K4 + 0x7C080400, // 000C CALL R2 2 + 0x8C0C0305, // 000D GETMET R3 R1 K5 + 0x88140506, // 000E GETMBR R5 R2 K6 + 0x7C0C0400, // 000F CALL R3 2 + 0x8C0C0107, // 0010 GETMET R3 R0 K7 + 0x7C0C0200, // 0011 CALL R3 1 + 0x4C100000, // 0012 LDNIL R4 + 0x200C0604, // 0013 NE R3 R3 R4 + 0x780E000A, // 0014 JMPF R3 #0020 + 0x8C0C0107, // 0015 GETMET R3 R0 K7 + 0x7C0C0200, // 0016 CALL R3 1 + 0x880C0708, // 0017 GETMBR R3 R3 K8 + 0xB8121200, // 0018 GETNGBL R4 K9 + 0x8810090A, // 0019 GETMBR R4 R4 K10 + 0x8810090B, // 001A GETMBR R4 R4 K11 + 0x1C0C0604, // 001B EQ R3 R3 R4 + 0x780E0002, // 001C JMPF R3 #0020 + 0x8C0C010C, // 001D GETMET R3 R0 K12 + 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 + 0x8C0C010D, // 0023 GETMET R3 R0 K13 + 0x5814000E, // 0024 LDCONST R5 K14 + 0x7C0C0400, // 0025 CALL R3 2 + 0x70020000, // 0026 JMP #0028 + 0x7001FFDB, // 0027 JMP #0004 + 0x8C08010F, // 0028 GETMET R2 R0 K15 + 0x7C080200, // 0029 CALL R2 1 + 0x58080010, // 002A LDCONST R2 K16 + 0x600C0010, // 002B GETGBL R3 G16 + 0x6010000C, // 002C GETGBL R4 G12 + 0x5C140200, // 002D MOVE R5 R1 + 0x7C100200, // 002E CALL R4 1 + 0x04100912, // 002F SUB R4 R4 K18 + 0x40122204, // 0030 CONNECT R4 K17 R4 + 0x7C0C0200, // 0031 CALL R3 1 + 0xA8020007, // 0032 EXBLK 0 #003B + 0x5C100600, // 0033 MOVE R4 R3 + 0x7C100000, // 0034 CALL R4 0 + 0x24140911, // 0035 GT R5 R4 K17 + 0x78160000, // 0036 JMPF R5 #0038 + 0x00080513, // 0037 ADD R2 R2 K19 + 0x94140204, // 0038 GETIDX R5 R1 R4 + 0x00080405, // 0039 ADD R2 R2 R5 + 0x7001FFF7, // 003A JMP #0033 + 0x580C0014, // 003B LDCONST R3 K20 + 0xAC0C0200, // 003C CATCH R3 1 0 + 0xB0080000, // 003D RAISE 2 R0 R0 + 0x00080515, // 003E ADD R2 R2 K21 + 0x80040400, // 003F RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _is_valid_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__is_valid_identifier, /* 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[11]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(a), + /* K3 */ be_nested_str_weak(z), + /* K4 */ be_nested_str_weak(A), + /* K5 */ be_nested_str_weak(Z), + /* K6 */ be_nested_str_weak(_), + /* K7 */ be_const_int(1), + /* K8 */ be_nested_str_weak(0), + /* K9 */ be_nested_str_weak(9), + /* K10 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_is_valid_identifier), + &be_const_str_solidified, + ( &(const binstruction[61]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x1C0C0701, // 0004 EQ R3 R3 K1 + 0x780E0001, // 0005 JMPF R3 #0008 + 0x500C0000, // 0006 LDBOOL R3 0 0 + 0x80040600, // 0007 RET 1 R3 + 0x940C0301, // 0008 GETIDX R3 R1 K1 + 0x28100702, // 0009 GE R4 R3 K2 + 0x78120001, // 000A JMPF R4 #000D + 0x18100703, // 000B LE R4 R3 K3 + 0x74120006, // 000C JMPT R4 #0014 + 0x28100704, // 000D GE R4 R3 K4 + 0x78120001, // 000E JMPF R4 #0011 + 0x18100705, // 000F LE R4 R3 K5 + 0x74120002, // 0010 JMPT R4 #0014 + 0x1C100706, // 0011 EQ R4 R3 K6 + 0x74120000, // 0012 JMPT R4 #0014 + 0x50100001, // 0013 LDBOOL R4 0 1 + 0x50100200, // 0014 LDBOOL R4 1 0 + 0x74120001, // 0015 JMPT R4 #0018 + 0x50100000, // 0016 LDBOOL R4 0 0 + 0x80040800, // 0017 RET 1 R4 + 0x60100010, // 0018 GETGBL R4 G16 + 0x6014000C, // 0019 GETGBL R5 G12 + 0x5C180200, // 001A MOVE R6 R1 + 0x7C140200, // 001B CALL R5 1 + 0x04140B07, // 001C SUB R5 R5 K7 + 0x40160E05, // 001D CONNECT R5 K7 R5 + 0x7C100200, // 001E CALL R4 1 + 0xA8020017, // 001F EXBLK 0 #0038 + 0x5C140800, // 0020 MOVE R5 R4 + 0x7C140000, // 0021 CALL R5 0 + 0x94180205, // 0022 GETIDX R6 R1 R5 + 0x281C0D02, // 0023 GE R7 R6 K2 + 0x781E0001, // 0024 JMPF R7 #0027 + 0x181C0D03, // 0025 LE R7 R6 K3 + 0x741E000A, // 0026 JMPT R7 #0032 + 0x281C0D04, // 0027 GE R7 R6 K4 + 0x781E0001, // 0028 JMPF R7 #002B + 0x181C0D05, // 0029 LE R7 R6 K5 + 0x741E0006, // 002A JMPT R7 #0032 + 0x281C0D08, // 002B GE R7 R6 K8 + 0x781E0001, // 002C JMPF R7 #002F + 0x181C0D09, // 002D LE R7 R6 K9 + 0x741E0002, // 002E JMPT R7 #0032 + 0x1C1C0D06, // 002F EQ R7 R6 K6 + 0x741E0000, // 0030 JMPT R7 #0032 + 0x501C0001, // 0031 LDBOOL R7 0 1 + 0x501C0200, // 0032 LDBOOL R7 1 0 + 0x741E0002, // 0033 JMPT R7 #0037 + 0x501C0000, // 0034 LDBOOL R7 0 0 + 0xA8040001, // 0035 EXBLK 1 1 + 0x80040E00, // 0036 RET 1 R7 + 0x7001FFE7, // 0037 JMP #0020 + 0x5810000A, // 0038 LDCONST R4 K10 + 0xAC100200, // 0039 CATCH R4 1 0 + 0xB0080000, // 003A RAISE 2 R0 R0 + 0x50100200, // 003B LDBOOL R4 1 0 + 0x80040800, // 003C RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: _split_function_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__split_function_arguments, /* 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(string), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(split), + /* K3 */ be_nested_str_weak(_X2C), + /* K4 */ be_nested_str_weak(strip), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(push), + /* K7 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_split_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x1C0C0301, // 0001 EQ R3 R1 K1 + 0x740E0002, // 0002 JMPT R3 #0006 + 0x4C0C0000, // 0003 LDNIL R3 + 0x1C0C0203, // 0004 EQ R3 R1 R3 + 0x780E0002, // 0005 JMPF R3 #0009 + 0x600C0012, // 0006 GETGBL R3 G18 + 0x7C0C0000, // 0007 CALL R3 0 + 0x80040600, // 0008 RET 1 R3 + 0x8C0C0502, // 0009 GETMET R3 R2 K2 + 0x5C140200, // 000A MOVE R5 R1 + 0x58180003, // 000B LDCONST R6 K3 + 0x7C0C0600, // 000C CALL R3 3 + 0x60100012, // 000D GETGBL R4 G18 + 0x7C100000, // 000E CALL R4 0 + 0x60140010, // 000F GETGBL R5 G16 + 0x5C180600, // 0010 MOVE R6 R3 + 0x7C140200, // 0011 CALL R5 1 + 0xA802000D, // 0012 EXBLK 0 #0021 + 0x5C180A00, // 0013 MOVE R6 R5 + 0x7C180000, // 0014 CALL R6 0 + 0x8C1C0504, // 0015 GETMET R7 R2 K4 + 0x5C240C00, // 0016 MOVE R9 R6 + 0x7C1C0400, // 0017 CALL R7 2 + 0x6020000C, // 0018 GETGBL R8 G12 + 0x5C240E00, // 0019 MOVE R9 R7 + 0x7C200200, // 001A CALL R8 1 + 0x24201105, // 001B GT R8 R8 K5 + 0x78220002, // 001C JMPF R8 #0020 + 0x8C200906, // 001D GETMET R8 R4 K6 + 0x5C280E00, // 001E MOVE R10 R7 + 0x7C200400, // 001F CALL R8 2 + 0x7001FFF1, // 0020 JMP #0013 + 0x58140007, // 0021 LDCONST R5 K7 + 0xAC140200, // 0022 CATCH R5 1 0 + 0xB0080000, // 0023 RAISE 2 R0 R0 + 0x80040800, // 0024 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_time_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* 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[18]) { /* 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(CONTEXT_TIME), + /* K14 */ be_nested_str_weak(expr), + /* K15 */ be_nested_str_weak(error), + /* K16 */ be_nested_str_weak(Expected_X20time_X20value), + /* K17 */ be_nested_str_weak(1000), + }), + be_str_weak(process_time_value), + &be_const_str_solidified, + ( &(const binstruction[71]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A000F, // 0004 JMPF R2 #0015 + 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 + 0x780A0009, // 000A JMPF R2 #0015 + 0x88080305, // 000B GETMBR R2 R1 K5 + 0x8C0C0106, // 000C GETMET R3 R0 K6 + 0x7C0C0200, // 000D CALL R3 1 + 0x600C0008, // 000E GETGBL R3 G8 + 0x8C100107, // 000F GETMET R4 R0 K7 + 0x5C180400, // 0010 MOVE R6 R2 + 0x7C100400, // 0011 CALL R4 2 + 0x7C0C0200, // 0012 CALL R3 1 + 0x80040600, // 0013 RET 1 R3 + 0x70020030, // 0014 JMP #0046 + 0x4C080000, // 0015 LDNIL R2 + 0x20080202, // 0016 NE R2 R1 R2 + 0x780A0013, // 0017 JMPF R2 #002C + 0x88080301, // 0018 GETMBR R2 R1 K1 + 0xB80E0400, // 0019 GETNGBL R3 K2 + 0x880C0703, // 001A GETMBR R3 R3 K3 + 0x880C0708, // 001B GETMBR R3 R3 K8 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A000D, // 001D JMPF R2 #002C + 0x88080305, // 001E GETMBR R2 R1 K5 + 0x8C0C0106, // 001F GETMET R3 R0 K6 + 0x7C0C0200, // 0020 CALL R3 1 + 0x600C0008, // 0021 GETGBL R3 G8 + 0x60100009, // 0022 GETGBL R4 G9 + 0x6014000A, // 0023 GETGBL R5 G10 + 0x5C180400, // 0024 MOVE R6 R2 + 0x7C140200, // 0025 CALL R5 1 + 0x7C100200, // 0026 CALL R4 1 + 0x541603E7, // 0027 LDINT R5 1000 + 0x08100805, // 0028 MUL R4 R4 R5 + 0x7C0C0200, // 0029 CALL R3 1 + 0x80040600, // 002A RET 1 R3 + 0x70020019, // 002B JMP #0046 + 0x4C080000, // 002C LDNIL R2 + 0x20080202, // 002D NE R2 R1 R2 + 0x780A0012, // 002E JMPF R2 #0042 + 0x88080301, // 002F GETMBR R2 R1 K1 + 0xB80E0400, // 0030 GETNGBL R3 K2 + 0x880C0703, // 0031 GETMBR R3 R3 K3 + 0x880C0709, // 0032 GETMBR R3 R3 K9 + 0x1C080403, // 0033 EQ R2 R2 R3 + 0x780A000C, // 0034 JMPF R2 #0042 + 0x88080305, // 0035 GETMBR R2 R1 K5 + 0x8C0C010A, // 0036 GETMET R3 R0 K10 + 0x5C140400, // 0037 MOVE R5 R2 + 0x5818000B, // 0038 LDCONST R6 K11 + 0x7C0C0600, // 0039 CALL R3 3 + 0x8C0C010C, // 003A GETMET R3 R0 K12 + 0x8814010D, // 003B GETMBR R5 R0 K13 + 0x50180200, // 003C LDBOOL R6 1 0 + 0x501C0000, // 003D LDBOOL R7 0 0 + 0x7C0C0800, // 003E CALL R3 4 + 0x8810070E, // 003F GETMBR R4 R3 K14 + 0x80040800, // 0040 RET 1 R4 + 0x70020003, // 0041 JMP #0046 + 0x8C08010F, // 0042 GETMET R2 R0 K15 + 0x58100010, // 0043 LDCONST R4 K16 + 0x7C080400, // 0044 CALL R2 2 + 0x80062200, // 0045 RET 1 K17 + 0x80000000, // 0046 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: warning +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_warning, /* 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(warnings), + /* K4 */ be_nested_str_weak(push), + /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), + }), + be_str_weak(warning), + &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 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_assignment_generic +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, /* name */ + be_nested_proto( + 17, /* 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(get), + /* K10 */ be_nested_str_weak(instance), + /* K11 */ be_nested_str_weak(_validate_single_parameter), + /* K12 */ be_nested_str_weak(_symbol_entry), + /* K13 */ be_nested_str_weak(TYPE_SEQUENCE), + /* K14 */ be_nested_str_weak(error), + /* K15 */ 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), + /* K16 */ be_nested_str_weak(expect_assign), + /* K17 */ be_nested_str_weak(process_value), + /* K18 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K19 */ be_nested_str_weak(collect_inline_comment), + /* K20 */ be_nested_str_weak(get_reference), + /* K21 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s_X2E_X25s_X20_X3D_X20_X25s_X20end), + /* K22 */ be_nested_str_weak(expr), + /* 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[96]) { /* 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 + 0x7812004F, // 0006 JMPF R4 #0057 + 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 + 0x78120047, // 000E JMPF R4 #0057 + 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 + 0x78160023, // 0017 JMPF R5 #003C + 0x88140107, // 0018 GETMBR R5 R0 K7 + 0x8C140B09, // 0019 GETMET R5 R5 K9 + 0x5C1C0600, // 001A MOVE R7 R3 + 0x7C140400, // 001B CALL R5 2 + 0x4C180000, // 001C LDNIL R6 + 0x20180A06, // 001D NE R6 R5 R6 + 0x781A000C, // 001E JMPF R6 #002C + 0x88180B0A, // 001F GETMBR R6 R5 K10 + 0x4C1C0000, // 0020 LDNIL R7 + 0x20180C07, // 0021 NE R6 R6 R7 + 0x781A0008, // 0022 JMPF R6 #002C + 0x60180005, // 0023 GETGBL R6 G5 + 0x881C0B0A, // 0024 GETMBR R7 R5 K10 + 0x7C180200, // 0025 CALL R6 1 + 0x8C1C010B, // 0026 GETMET R7 R0 K11 + 0x5C240C00, // 0027 MOVE R9 R6 + 0x5C280800, // 0028 MOVE R10 R4 + 0x882C0B0A, // 0029 GETMBR R11 R5 K10 + 0x7C1C0800, // 002A CALL R7 4 + 0x7002000F, // 002B JMP #003C + 0x4C180000, // 002C LDNIL R6 + 0x20180A06, // 002D NE R6 R5 R6 + 0x781A000C, // 002E JMPF R6 #003C + 0x88180B02, // 002F GETMBR R6 R5 K2 + 0xB81E0600, // 0030 GETNGBL R7 K3 + 0x881C0F0C, // 0031 GETMBR R7 R7 K12 + 0x881C0F0D, // 0032 GETMBR R7 R7 K13 + 0x1C180C07, // 0033 EQ R6 R6 R7 + 0x781A0006, // 0034 JMPF R6 #003C + 0x8C18010E, // 0035 GETMET R6 R0 K14 + 0x60200018, // 0036 GETGBL R8 G24 + 0x5824000F, // 0037 LDCONST R9 K15 + 0x5C280600, // 0038 MOVE R10 R3 + 0x7C200400, // 0039 CALL R8 2 + 0x7C180400, // 003A CALL R6 2 + 0x80000C00, // 003B RET 0 + 0x8C140110, // 003C GETMET R5 R0 K16 + 0x7C140200, // 003D CALL R5 1 + 0x8C140111, // 003E GETMET R5 R0 K17 + 0x881C0112, // 003F GETMBR R7 R0 K18 + 0x7C140400, // 0040 CALL R5 2 + 0x8C180113, // 0041 GETMET R6 R0 K19 + 0x7C180200, // 0042 CALL R6 1 + 0x881C0107, // 0043 GETMBR R7 R0 K7 + 0x8C1C0F14, // 0044 GETMET R7 R7 K20 + 0x5C240600, // 0045 MOVE R9 R3 + 0x7C1C0400, // 0046 CALL R7 2 + 0x60200018, // 0047 GETGBL R8 G24 + 0x58240015, // 0048 LDCONST R9 K21 + 0x5C280E00, // 0049 MOVE R10 R7 + 0x5C2C0800, // 004A MOVE R11 R4 + 0x88300B16, // 004B GETMBR R12 R5 K22 + 0x7C200800, // 004C CALL R8 4 + 0x8C240117, // 004D GETMET R9 R0 K23 + 0x602C0018, // 004E GETGBL R11 G24 + 0x58300018, // 004F LDCONST R12 K24 + 0x5C340200, // 0050 MOVE R13 R1 + 0x5C380400, // 0051 MOVE R14 R2 + 0x5C3C1000, // 0052 MOVE R15 R8 + 0x5C400C00, // 0053 MOVE R16 R6 + 0x7C2C0A00, // 0054 CALL R11 5 + 0x7C240400, // 0055 CALL R9 2 + 0x70020007, // 0056 JMP #005F + 0x8C10010E, // 0057 GETMET R4 R0 K14 + 0x60180018, // 0058 GETGBL R6 G24 + 0x581C0019, // 0059 LDCONST R7 K25 + 0x5C200600, // 005A MOVE R8 R3 + 0x7C180400, // 005B CALL R6 2 + 0x7C100400, // 005C CALL R4 2 + 0x8C10011A, // 005D GETMET R4 R0 K26 + 0x7C100200, // 005E CALL R4 1 + 0x80000000, // 005F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_animation_factory_exists +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* 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(symbol_table), + /* K1 */ be_nested_str_weak(get), + }), + be_str_weak(_validate_animation_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x80040600, // 0006 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_for_color_provider +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* 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[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_process_named_arguments_unified), + /* K1 */ be_nested_str_weak(CONTEXT_COLOR_PROVIDER), + }), + be_str_weak(_process_named_arguments_for_color_provider), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x881C0101, // 0003 GETMBR R7 R0 K1 + 0x7C0C0800, // 0004 CALL R3 4 + 0x80000000, // 0005 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_call_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_call_arguments, /* name */ + be_nested_proto( + 13, /* nstack */ + 5, /* 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(error), + /* K1 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20expects_X20_X25s_X20arguments_X20but_X20_X25s_X20were_X20provided_X2E_X20Expected_X20parameters_X3A_X20_X25s), + }), + be_str_weak(_validate_template_call_arguments), + &be_const_str_solidified, + ( &(const binstruction[25]) { /* code */ + 0x6014000C, // 0000 GETGBL R5 G12 + 0x5C180400, // 0001 MOVE R6 R2 + 0x7C140200, // 0002 CALL R5 1 + 0x6018000C, // 0003 GETGBL R6 G12 + 0x5C1C0600, // 0004 MOVE R7 R3 + 0x7C180200, // 0005 CALL R6 1 + 0x20140A06, // 0006 NE R5 R5 R6 + 0x7816000E, // 0007 JMPF R5 #0017 + 0x8C140100, // 0008 GETMET R5 R0 K0 + 0x601C0018, // 0009 GETGBL R7 G24 + 0x58200001, // 000A LDCONST R8 K1 + 0x5C240200, // 000B MOVE R9 R1 + 0x6028000C, // 000C GETGBL R10 G12 + 0x5C2C0600, // 000D MOVE R11 R3 + 0x7C280200, // 000E CALL R10 1 + 0x602C000C, // 000F GETGBL R11 G12 + 0x5C300400, // 0010 MOVE R12 R2 + 0x7C2C0200, // 0011 CALL R11 1 + 0x5C300600, // 0012 MOVE R12 R3 + 0x7C1C0A00, // 0013 CALL R7 5 + 0x7C140400, // 0014 CALL R5 2 + 0x50140000, // 0015 LDBOOL R5 0 0 + 0x80040A00, // 0016 RET 1 R5 + 0x50140200, // 0017 LDBOOL R5 1 0 + 0x80040A00, // 0018 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_object_reference +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ + be_nested_proto( + 9, /* nstack */ + 3, /* 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(symbol_table), + /* K1 */ be_nested_str_weak(symbol_exists), + /* K2 */ be_nested_str_weak(error), + /* K3 */ 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(_validate_object_reference), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x880C0100, // 0000 GETMBR R3 R0 K0 + 0x8C0C0701, // 0001 GETMET R3 R3 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x740E0008, // 0004 JMPT R3 #000E + 0x8C0C0102, // 0005 GETMET R3 R0 K2 + 0x60140018, // 0006 GETGBL R5 G24 + 0x58180003, // 0007 LDCONST R6 K3 + 0x5C1C0200, // 0008 MOVE R7 R1 + 0x5C200400, // 0009 MOVE R8 R2 + 0x7C140600, // 000A CALL R5 3 + 0x7C0C0400, // 000B CALL R3 2 + 0x500C0000, // 000C LDBOOL R3 0 0 + 0x80040600, // 000D RET 1 R3 + 0x500C0200, // 000E LDBOOL R3 1 0 + 0x80040600, // 000F RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: generate_engine_run +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_engine_run, /* 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[ 9]) { /* 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(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_X2Erun_X28_X29), + }), + be_str_weak(generate_engine_run), + &be_const_str_solidified, + ( &(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 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: _add_typed_parameter_to_symbol_table +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table, /* name */ + be_nested_proto( + 8, /* 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(color), + /* K1 */ be_nested_str_weak(create_color), + /* K2 */ be_nested_str_weak(palette), + /* K3 */ be_nested_str_weak(create_palette), + /* K4 */ be_nested_str_weak(animation), + /* K5 */ be_nested_str_weak(create_animation), + /* K6 */ be_nested_str_weak(value_provider), + /* K7 */ be_nested_str_weak(create_value_provider), + /* K8 */ be_nested_str_weak(create_variable), + }), + be_str_weak(_add_typed_parameter_to_symbol_table), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x1C100700, // 0000 EQ R4 R3 K0 + 0x78120004, // 0001 JMPF R4 #0007 + 0x8C100301, // 0002 GETMET R4 R1 K1 + 0x5C180400, // 0003 MOVE R6 R2 + 0x4C1C0000, // 0004 LDNIL R7 + 0x7C100600, // 0005 CALL R4 3 + 0x70020017, // 0006 JMP #001F + 0x1C100702, // 0007 EQ R4 R3 K2 + 0x78120004, // 0008 JMPF R4 #000E + 0x8C100303, // 0009 GETMET R4 R1 K3 + 0x5C180400, // 000A MOVE R6 R2 + 0x4C1C0000, // 000B LDNIL R7 + 0x7C100600, // 000C CALL R4 3 + 0x70020010, // 000D JMP #001F + 0x1C100704, // 000E EQ R4 R3 K4 + 0x78120004, // 000F JMPF R4 #0015 + 0x8C100305, // 0010 GETMET R4 R1 K5 + 0x5C180400, // 0011 MOVE R6 R2 + 0x4C1C0000, // 0012 LDNIL R7 + 0x7C100600, // 0013 CALL R4 3 + 0x70020009, // 0014 JMP #001F + 0x1C100706, // 0015 EQ R4 R3 K6 + 0x78120004, // 0016 JMPF R4 #001C + 0x8C100307, // 0017 GETMET R4 R1 K7 + 0x5C180400, // 0018 MOVE R6 R2 + 0x4C1C0000, // 0019 LDNIL R7 + 0x7C100600, // 001A CALL R4 3 + 0x70020002, // 001B JMP #001F + 0x8C100308, // 001C GETMET R4 R1 K8 + 0x5C180400, // 001D MOVE R6 R2 + 0x7C100400, // 001E CALL R4 2 + 0x80000000, // 001F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* 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[30]) { /* 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(restart), + /* K20 */ be_nested_str_weak(process_restart_statement_fluent), + /* K21 */ be_nested_str_weak(repeat), + /* K22 */ be_nested_str_weak(process_repeat_statement_fluent), + /* K23 */ be_nested_str_weak(peek), + /* K24 */ be_nested_str_weak(DOT), + /* K25 */ be_nested_str_weak(process_sequence_assignment_fluent), + /* K26 */ be_nested_str_weak(error), + /* K27 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), + /* K28 */ be_nested_str_weak(skip_statement), + /* K29 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), + }), + be_str_weak(process_sequence_statement), + &be_const_str_solidified, + ( &(const binstruction[135]) { /* 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 + 0x70020055, // 002F JMP #0086 + 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 + 0x70020049, // 003B JMP #0086 + 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 + 0x7002003D, // 0047 JMP #0086 + 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 + 0x780A0005, // 004D JMPF R2 #0054 + 0x88080308, // 004E GETMBR R2 R1 K8 + 0x1C080513, // 004F EQ R2 R2 K19 + 0x780A0002, // 0050 JMPF R2 #0054 + 0x8C080114, // 0051 GETMET R2 R0 K20 + 0x7C080200, // 0052 CALL R2 1 + 0x70020031, // 0053 JMP #0086 + 0x88080301, // 0054 GETMBR R2 R1 K1 + 0xB80E0400, // 0055 GETNGBL R3 K2 + 0x880C0703, // 0056 GETMBR R3 R3 K3 + 0x880C070B, // 0057 GETMBR R3 R3 K11 + 0x1C080403, // 0058 EQ R2 R2 R3 + 0x780A0005, // 0059 JMPF R2 #0060 + 0x88080308, // 005A GETMBR R2 R1 K8 + 0x1C080515, // 005B EQ R2 R2 K21 + 0x780A0002, // 005C JMPF R2 #0060 + 0x8C080116, // 005D GETMET R2 R0 K22 + 0x7C080200, // 005E CALL R2 1 + 0x70020025, // 005F JMP #0086 + 0x88080301, // 0060 GETMBR R2 R1 K1 + 0xB80E0400, // 0061 GETNGBL R3 K2 + 0x880C0703, // 0062 GETMBR R3 R3 K3 + 0x880C0710, // 0063 GETMBR R3 R3 K16 + 0x1C080403, // 0064 EQ R2 R2 R3 + 0x780A0018, // 0065 JMPF R2 #007F + 0x8C080117, // 0066 GETMET R2 R0 K23 + 0x7C080200, // 0067 CALL R2 1 + 0x4C0C0000, // 0068 LDNIL R3 + 0x20080403, // 0069 NE R2 R2 R3 + 0x780A000A, // 006A JMPF R2 #0076 + 0x8C080117, // 006B GETMET R2 R0 K23 + 0x7C080200, // 006C CALL R2 1 + 0x88080501, // 006D GETMBR R2 R2 K1 + 0xB80E0400, // 006E GETNGBL R3 K2 + 0x880C0703, // 006F GETMBR R3 R3 K3 + 0x880C0718, // 0070 GETMBR R3 R3 K24 + 0x1C080403, // 0071 EQ R2 R2 R3 + 0x780A0002, // 0072 JMPF R2 #0076 + 0x8C080119, // 0073 GETMET R2 R0 K25 + 0x7C080200, // 0074 CALL R2 1 + 0x70020007, // 0075 JMP #007E + 0x8C08011A, // 0076 GETMET R2 R0 K26 + 0x60100018, // 0077 GETGBL R4 G24 + 0x5814001B, // 0078 LDCONST R5 K27 + 0x88180308, // 0079 GETMBR R6 R1 K8 + 0x7C100400, // 007A CALL R4 2 + 0x7C080400, // 007B CALL R2 2 + 0x8C08011C, // 007C GETMET R2 R0 K28 + 0x7C080200, // 007D CALL R2 1 + 0x70020006, // 007E JMP #0086 + 0x8C08011A, // 007F GETMET R2 R0 K26 + 0x60100018, // 0080 GETGBL R4 G24 + 0x5814001D, // 0081 LDCONST R5 K29 + 0x7C100200, // 0082 CALL R4 1 + 0x7C080400, // 0083 CALL R2 2 + 0x8C08011C, // 0084 GETMET R2 R0 K28 + 0x7C080200, // 0085 CALL R2 1 + 0x80000000, // 0086 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[14]) { /* 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_run), + /* K6 */ be_nested_str_weak(has_warnings), + /* K7 */ be_nested_str_weak(_X23_X20Compilation_X20warnings_X3A), + /* K8 */ be_nested_str_weak(warnings), + /* K9 */ be_nested_str_weak(_X23_X20_X25s), + /* K10 */ be_nested_str_weak(stop_iteration), + /* K11 */ be_nested_str_weak(join_output), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Transpilation_X20failed_X3A_X20_X25s), + }), + be_str_weak(transpile), + &be_const_str_solidified, + ( &(const binstruction[57]) { /* code */ + 0xA802002C, // 0000 EXBLK 0 #002E + 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 + 0x8C040106, // 000F GETMET R1 R0 K6 + 0x7C040200, // 0010 CALL R1 1 + 0x78060015, // 0011 JMPF R1 #0028 + 0x8C040100, // 0012 GETMET R1 R0 K0 + 0x580C0002, // 0013 LDCONST R3 K2 + 0x7C040400, // 0014 CALL R1 2 + 0x8C040100, // 0015 GETMET R1 R0 K0 + 0x580C0007, // 0016 LDCONST R3 K7 + 0x7C040400, // 0017 CALL R1 2 + 0x60040010, // 0018 GETGBL R1 G16 + 0x88080108, // 0019 GETMBR R2 R0 K8 + 0x7C040200, // 001A CALL R1 1 + 0xA8020008, // 001B EXBLK 0 #0025 + 0x5C080200, // 001C MOVE R2 R1 + 0x7C080000, // 001D CALL R2 0 + 0x8C0C0100, // 001E GETMET R3 R0 K0 + 0x60140018, // 001F GETGBL R5 G24 + 0x58180009, // 0020 LDCONST R6 K9 + 0x5C1C0400, // 0021 MOVE R7 R2 + 0x7C140400, // 0022 CALL R5 2 + 0x7C0C0400, // 0023 CALL R3 2 + 0x7001FFF6, // 0024 JMP #001C + 0x5804000A, // 0025 LDCONST R1 K10 + 0xAC040200, // 0026 CATCH R1 1 0 + 0xB0080000, // 0027 RAISE 2 R0 R0 + 0x8C04010B, // 0028 GETMET R1 R0 K11 + 0x7C040200, // 0029 CALL R1 1 + 0xA8040001, // 002A EXBLK 1 1 + 0x80040200, // 002B RET 1 R1 + 0xA8040001, // 002C EXBLK 1 1 + 0x70020009, // 002D JMP #0038 + 0xAC040002, // 002E CATCH R1 0 2 + 0x70020006, // 002F JMP #0037 + 0x8C0C010C, // 0030 GETMET R3 R0 K12 + 0x60140018, // 0031 GETGBL R5 G24 + 0x5818000D, // 0032 LDCONST R6 K13 + 0x5C1C0400, // 0033 MOVE R7 R2 + 0x7C140400, // 0034 CALL R5 2 + 0x7C0C0400, // 0035 CALL R3 2 + 0x70020000, // 0036 JMP #0038 + 0xB0080000, // 0037 RAISE 2 R0 R0 + 0x80000000, // 0038 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_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(CONTEXT_ANIMATION), + /* K22 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28_X25s_X29), + /* K23 */ be_nested_str_weak(expr), + /* 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[96]) { /* 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 + 0x781A0022, // 0030 JMPF R6 #0054 + 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 + 0x70020008, // 004A JMP #0054 + 0x8C180114, // 004B GETMET R6 R0 K20 + 0x88200115, // 004C GETMBR R8 R0 K21 + 0x7C180400, // 004D CALL R6 2 + 0x8C1C010D, // 004E GETMET R7 R0 K13 + 0x60240018, // 004F GETGBL R9 G24 + 0x58280016, // 0050 LDCONST R10 K22 + 0x882C0D17, // 0051 GETMBR R11 R6 K23 + 0x7C240400, // 0052 CALL R9 2 + 0x7C1C0400, // 0053 CALL R7 2 + 0x8C18010D, // 0054 GETMET R6 R0 K13 + 0x58200018, // 0055 LDCONST R8 K24 + 0x7C180400, // 0056 CALL R6 2 + 0x8C18010D, // 0057 GETMET R6 R0 K13 + 0x60200018, // 0058 GETGBL R8 G24 + 0x58240019, // 0059 LDCONST R9 K25 + 0x5C280200, // 005A MOVE R10 R1 + 0x5C2C0800, // 005B MOVE R11 R4 + 0x5C300600, // 005C MOVE R12 R3 + 0x7C200800, // 005D CALL R8 4 + 0x7C180400, // 005E CALL R6 2 + 0x80000000, // 005F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _determine_function_return_type +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__determine_function_return_type, /* name */ + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_nested_str_weak(type), + /* K1 */ be_nested_str_weak(animation_dsl), + /* K2 */ be_nested_str_weak(_symbol_entry), + /* K3 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), + /* K4 */ be_nested_str_weak(TYPE_ANIMATION), + /* K5 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), + /* K6 */ be_nested_str_weak(TYPE_COLOR), + /* K7 */ be_nested_str_weak(TYPE_VALUE_PROVIDER_CONSTRUCTOR), + /* K8 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), + /* K9 */ be_nested_str_weak(TYPE_PALETTE_CONSTANT), + /* K10 */ be_nested_str_weak(TYPE_PALETTE), + /* K11 */ be_nested_str_weak(TYPE_MATH_FUNCTION), + /* K12 */ be_nested_str_weak(TYPE_VARIABLE), + /* K13 */ be_nested_str_weak(TYPE_USER_FUNCTION), + /* K14 */ be_nested_str_weak(TYPE_TEMPLATE), + }), + be_str_weak(_determine_function_return_type), + &be_const_str_solidified, + ( &(const binstruction[102]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A005E, // 0002 JMPF R2 #0062 + 0x88080300, // 0003 GETMBR R2 R1 K0 + 0xB80E0200, // 0004 GETNGBL R3 K1 + 0x880C0702, // 0005 GETMBR R3 R3 K2 + 0x880C0703, // 0006 GETMBR R3 R3 K3 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0005, // 0008 JMPT R2 #000F + 0x88080300, // 0009 GETMBR R2 R1 K0 + 0xB80E0200, // 000A GETNGBL R3 K1 + 0x880C0702, // 000B GETMBR R3 R3 K2 + 0x880C0704, // 000C GETMBR R3 R3 K4 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A0004, // 000E JMPF R2 #0014 + 0xB80A0200, // 000F GETNGBL R2 K1 + 0x88080502, // 0010 GETMBR R2 R2 K2 + 0x88080504, // 0011 GETMBR R2 R2 K4 + 0x80040400, // 0012 RET 1 R2 + 0x7002004D, // 0013 JMP #0062 + 0x88080300, // 0014 GETMBR R2 R1 K0 + 0xB80E0200, // 0015 GETNGBL R3 K1 + 0x880C0702, // 0016 GETMBR R3 R3 K2 + 0x880C0705, // 0017 GETMBR R3 R3 K5 + 0x1C080403, // 0018 EQ R2 R2 R3 + 0x740A0005, // 0019 JMPT R2 #0020 + 0x88080300, // 001A GETMBR R2 R1 K0 + 0xB80E0200, // 001B GETNGBL R3 K1 + 0x880C0702, // 001C GETMBR R3 R3 K2 + 0x880C0706, // 001D GETMBR R3 R3 K6 + 0x1C080403, // 001E EQ R2 R2 R3 + 0x780A0004, // 001F JMPF R2 #0025 + 0xB80A0200, // 0020 GETNGBL R2 K1 + 0x88080502, // 0021 GETMBR R2 R2 K2 + 0x88080506, // 0022 GETMBR R2 R2 K6 + 0x80040400, // 0023 RET 1 R2 + 0x7002003C, // 0024 JMP #0062 + 0x88080300, // 0025 GETMBR R2 R1 K0 + 0xB80E0200, // 0026 GETNGBL R3 K1 + 0x880C0702, // 0027 GETMBR R3 R3 K2 + 0x880C0707, // 0028 GETMBR R3 R3 K7 + 0x1C080403, // 0029 EQ R2 R2 R3 + 0x740A0005, // 002A JMPT R2 #0031 + 0x88080300, // 002B GETMBR R2 R1 K0 + 0xB80E0200, // 002C GETNGBL R3 K1 + 0x880C0702, // 002D GETMBR R3 R3 K2 + 0x880C0708, // 002E GETMBR R3 R3 K8 + 0x1C080403, // 002F EQ R2 R2 R3 + 0x780A0004, // 0030 JMPF R2 #0036 + 0xB80A0200, // 0031 GETNGBL R2 K1 + 0x88080502, // 0032 GETMBR R2 R2 K2 + 0x88080508, // 0033 GETMBR R2 R2 K8 + 0x80040400, // 0034 RET 1 R2 + 0x7002002B, // 0035 JMP #0062 + 0x88080300, // 0036 GETMBR R2 R1 K0 + 0xB80E0200, // 0037 GETNGBL R3 K1 + 0x880C0702, // 0038 GETMBR R3 R3 K2 + 0x880C0709, // 0039 GETMBR R3 R3 K9 + 0x1C080403, // 003A EQ R2 R2 R3 + 0x740A0005, // 003B JMPT R2 #0042 + 0x88080300, // 003C GETMBR R2 R1 K0 + 0xB80E0200, // 003D GETNGBL R3 K1 + 0x880C0702, // 003E GETMBR R3 R3 K2 + 0x880C070A, // 003F GETMBR R3 R3 K10 + 0x1C080403, // 0040 EQ R2 R2 R3 + 0x780A0004, // 0041 JMPF R2 #0047 + 0xB80A0200, // 0042 GETNGBL R2 K1 + 0x88080502, // 0043 GETMBR R2 R2 K2 + 0x8808050A, // 0044 GETMBR R2 R2 K10 + 0x80040400, // 0045 RET 1 R2 + 0x7002001A, // 0046 JMP #0062 + 0x88080300, // 0047 GETMBR R2 R1 K0 + 0xB80E0200, // 0048 GETNGBL R3 K1 + 0x880C0702, // 0049 GETMBR R3 R3 K2 + 0x880C070B, // 004A GETMBR R3 R3 K11 + 0x1C080403, // 004B EQ R2 R2 R3 + 0x780A0004, // 004C JMPF R2 #0052 + 0xB80A0200, // 004D GETNGBL R2 K1 + 0x88080502, // 004E GETMBR R2 R2 K2 + 0x8808050C, // 004F GETMBR R2 R2 K12 + 0x80040400, // 0050 RET 1 R2 + 0x7002000F, // 0051 JMP #0062 + 0x88080300, // 0052 GETMBR R2 R1 K0 + 0xB80E0200, // 0053 GETNGBL R3 K1 + 0x880C0702, // 0054 GETMBR R3 R3 K2 + 0x880C070D, // 0055 GETMBR R3 R3 K13 + 0x1C080403, // 0056 EQ R2 R2 R3 + 0x740A0005, // 0057 JMPT R2 #005E + 0x88080300, // 0058 GETMBR R2 R1 K0 + 0xB80E0200, // 0059 GETNGBL R3 K1 + 0x880C0702, // 005A GETMBR R3 R3 K2 + 0x880C070E, // 005B GETMBR R3 R3 K14 + 0x1C080403, // 005C EQ R2 R2 R3 + 0x780A0003, // 005D JMPF R2 #0062 + 0xB80A0200, // 005E GETNGBL R2 K1 + 0x88080502, // 005F GETMBR R2 R2 K2 + 0x8808050C, // 0060 GETMBR R2 R2 K12 + 0x80040400, // 0061 RET 1 R2 + 0xB80A0200, // 0062 GETNGBL R2 K1 + 0x88080502, // 0063 GETMBR R2 R2 K2 + 0x8808050C, // 0064 GETMBR R2 R2 K12 + 0x80040400, // 0065 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 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: validate_user_name ********************************************************************/ @@ -3107,6 +7341,1375 @@ be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: process_primary_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name */ + be_nested_proto( + 16, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[85]) { /* 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(ExpressionResult), + /* K4 */ be_nested_str_weak(literal), + /* K5 */ be_nested_str_weak(nil), + /* 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(next), + /* K11 */ be_nested_str_weak(process_additive_expression), + /* K12 */ be_nested_str_weak(expect_right_paren), + /* K13 */ be_nested_str_weak(_X28_X25s_X29), + /* K14 */ be_nested_str_weak(expr), + /* K15 */ be_nested_str_weak(has_dynamic), + /* K16 */ be_nested_str_weak(has_dangerous), + /* K17 */ be_nested_str_weak(has_computation), + /* K18 */ be_nested_str_weak(return_type), + /* K19 */ be_nested_str_weak(instance_for_validation), + /* K20 */ be_nested_str_weak(COLOR), + /* K21 */ be_nested_str_weak(convert_color), + /* K22 */ be_nested_str_weak(value), + /* K23 */ be_nested_str_weak(_symbol_entry), + /* K24 */ be_nested_str_weak(TYPE_COLOR), + /* K25 */ be_nested_str_weak(TIME), + /* K26 */ be_nested_str_weak(process_time_value), + /* K27 */ be_nested_str_weak(PERCENTAGE), + /* K28 */ be_nested_str_weak(process_percentage_value), + /* K29 */ be_nested_str_weak(NUMBER), + /* K30 */ be_nested_str_weak(KEYWORD), + /* K31 */ be_nested_str_weak(true), + /* K32 */ be_nested_str_weak(false), + /* K33 */ be_nested_str_weak(STRING), + /* K34 */ be_nested_str_weak(_X22_X25s_X22), + /* K35 */ be_nested_str_weak(LEFT_BRACKET), + /* K36 */ be_nested_str_weak(process_array_literal), + /* K37 */ be_nested_str_weak(IDENTIFIER), + /* K38 */ be_nested_str_weak(peek), + /* K39 */ be_nested_str_weak(symbol_table), + /* K40 */ be_nested_str_weak(get), + /* K41 */ be_nested_str_weak(Unknown_X20function_X20or_X20identifier_X20_X27_X25s_X27_X2E_X20Make_X20sure_X20it_X27s_X20defined_X20before_X20use_X2E), + /* K42 */ be_nested_str_weak(skip_statement), + /* K43 */ be_nested_str_weak(is_user_function), + /* K44 */ be_nested_str_weak(_process_user_function_call), + /* K45 */ be_nested_str_weak(function_call), + /* K46 */ be_nested_str_weak(TYPE_MATH_FUNCTION), + /* K47 */ be_nested_str_weak(process_function_arguments), + /* K48 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K49 */ be_nested_str_weak(get_reference), + /* K50 */ be_nested_str_weak(TYPE_TEMPLATE), + /* K51 */ be_nested_str_weak(), + /* K52 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K53 */ be_nested_str_weak(engine), + /* K54 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K55 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20not_X20supported_X20in_X20expression_X20context), + /* K56 */ be_nested_str_weak(takes_named_args), + /* K57 */ be_nested_str_weak(process_function_call), + /* K58 */ be_nested_str_weak(_determine_function_return_type), + /* K59 */ be_nested_str_weak(instance), + /* K60 */ be_nested_str_weak(CONTEXT_ARGUMENT), + /* K61 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K62 */ be_nested_str_weak(CONTEXT_VARIABLE), + /* K63 */ be_nested_str_weak(process_nested_function_call), + /* K64 */ be_nested_str_weak(constructor_call), + /* K65 */ be_nested_str_weak(Unknown_X20identifier_X20_X27_X25s_X27_X2E_X20Make_X20sure_X20it_X27s_X20defined_X20before_X20use_X2E), + /* K66 */ be_nested_str_weak(DOT), + /* K67 */ be_nested_str_weak(expect_identifier), + /* K68 */ be_nested_str_weak(_X25s_X2E_X25s), + /* K69 */ be_nested_str_weak(contains), + /* K70 */ be_nested_str_weak(_validate_single_parameter), + /* K71 */ be_nested_str_weak(TYPE_SEQUENCE), + /* K72 */ 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), + /* K73 */ be_nested_str_weak(property_access), + /* K74 */ be_nested_str_weak(variable), + /* K75 */ be_nested_str_weak(TYPE_PALETTE), + /* K76 */ be_nested_str_weak(TYPE_PALETTE_CONSTANT), + /* K77 */ be_nested_str_weak(TYPE_CONSTANT), + /* K78 */ be_nested_str_weak(_determine_symbol_return_type), + /* K79 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), + /* K80 */ be_nested_str_weak(TYPE_VARIABLE), + /* K81 */ be_nested_str_weak(animation_X2Eresolve_X28_X25s_X29), + /* K82 */ be_nested_str_weak(variable_ref), + /* K83 */ be_nested_str_weak(animation_X2E_X25s), + /* K84 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), + }), + be_str_weak(process_primary_expression), + &be_const_str_solidified, + ( &(const binstruction[531]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x4C140000, // 0002 LDNIL R5 + 0x1C140805, // 0003 EQ R5 R4 R5 + 0x78160007, // 0004 JMPF R5 #000D + 0x8C140101, // 0005 GETMET R5 R0 K1 + 0x581C0002, // 0006 LDCONST R7 K2 + 0x7C140400, // 0007 CALL R5 2 + 0x88140103, // 0008 GETMBR R5 R0 K3 + 0x8C140B04, // 0009 GETMET R5 R5 K4 + 0x581C0005, // 000A LDCONST R7 K5 + 0x7C140400, // 000B CALL R5 2 + 0x80040A00, // 000C RET 1 R5 + 0x88140906, // 000D GETMBR R5 R4 K6 + 0xB81A0E00, // 000E GETNGBL R6 K7 + 0x88180D08, // 000F GETMBR R6 R6 K8 + 0x88180D09, // 0010 GETMBR R6 R6 K9 + 0x1C140A06, // 0011 EQ R5 R5 R6 + 0x78160014, // 0012 JMPF R5 #0028 + 0x8C14010A, // 0013 GETMET R5 R0 K10 + 0x7C140200, // 0014 CALL R5 1 + 0x8C14010B, // 0015 GETMET R5 R0 K11 + 0x5C1C0200, // 0016 MOVE R7 R1 + 0x50200000, // 0017 LDBOOL R8 0 0 + 0x5C240600, // 0018 MOVE R9 R3 + 0x7C140800, // 0019 CALL R5 4 + 0x8C18010C, // 001A GETMET R6 R0 K12 + 0x7C180200, // 001B CALL R6 1 + 0x8C180103, // 001C GETMET R6 R0 K3 + 0x60200018, // 001D GETGBL R8 G24 + 0x5824000D, // 001E LDCONST R9 K13 + 0x88280B0E, // 001F GETMBR R10 R5 K14 + 0x7C200400, // 0020 CALL R8 2 + 0x88240B0F, // 0021 GETMBR R9 R5 K15 + 0x88280B10, // 0022 GETMBR R10 R5 K16 + 0x882C0B11, // 0023 GETMBR R11 R5 K17 + 0x88300B12, // 0024 GETMBR R12 R5 K18 + 0x88340B13, // 0025 GETMBR R13 R5 K19 + 0x7C180E00, // 0026 CALL R6 7 + 0x80040C00, // 0027 RET 1 R6 + 0x88140906, // 0028 GETMBR R5 R4 K6 + 0xB81A0E00, // 0029 GETNGBL R6 K7 + 0x88180D08, // 002A GETMBR R6 R6 K8 + 0x88180D14, // 002B GETMBR R6 R6 K20 + 0x1C140A06, // 002C EQ R5 R5 R6 + 0x7816000B, // 002D JMPF R5 #003A + 0x8C14010A, // 002E GETMET R5 R0 K10 + 0x7C140200, // 002F CALL R5 1 + 0x88140103, // 0030 GETMBR R5 R0 K3 + 0x8C140B04, // 0031 GETMET R5 R5 K4 + 0x8C1C0115, // 0032 GETMET R7 R0 K21 + 0x88240916, // 0033 GETMBR R9 R4 K22 + 0x7C1C0400, // 0034 CALL R7 2 + 0xB8220E00, // 0035 GETNGBL R8 K7 + 0x88201117, // 0036 GETMBR R8 R8 K23 + 0x88201118, // 0037 GETMBR R8 R8 K24 + 0x7C140600, // 0038 CALL R5 3 + 0x80040A00, // 0039 RET 1 R5 + 0x88140906, // 003A GETMBR R5 R4 K6 + 0xB81A0E00, // 003B GETNGBL R6 K7 + 0x88180D08, // 003C GETMBR R6 R6 K8 + 0x88180D19, // 003D GETMBR R6 R6 K25 + 0x1C140A06, // 003E EQ R5 R5 R6 + 0x78160005, // 003F JMPF R5 #0046 + 0x88140103, // 0040 GETMBR R5 R0 K3 + 0x8C140B04, // 0041 GETMET R5 R5 K4 + 0x8C1C011A, // 0042 GETMET R7 R0 K26 + 0x7C1C0200, // 0043 CALL R7 1 + 0x7C140400, // 0044 CALL R5 2 + 0x80040A00, // 0045 RET 1 R5 + 0x88140906, // 0046 GETMBR R5 R4 K6 + 0xB81A0E00, // 0047 GETNGBL R6 K7 + 0x88180D08, // 0048 GETMBR R6 R6 K8 + 0x88180D1B, // 0049 GETMBR R6 R6 K27 + 0x1C140A06, // 004A EQ R5 R5 R6 + 0x78160007, // 004B JMPF R5 #0054 + 0x88140103, // 004C GETMBR R5 R0 K3 + 0x8C140B04, // 004D GETMET R5 R5 K4 + 0x601C0008, // 004E GETGBL R7 G8 + 0x8C20011C, // 004F GETMET R8 R0 K28 + 0x7C200200, // 0050 CALL R8 1 + 0x7C1C0200, // 0051 CALL R7 1 + 0x7C140400, // 0052 CALL R5 2 + 0x80040A00, // 0053 RET 1 R5 + 0x88140906, // 0054 GETMBR R5 R4 K6 + 0xB81A0E00, // 0055 GETNGBL R6 K7 + 0x88180D08, // 0056 GETMBR R6 R6 K8 + 0x88180D1D, // 0057 GETMBR R6 R6 K29 + 0x1C140A06, // 0058 EQ R5 R5 R6 + 0x78160007, // 0059 JMPF R5 #0062 + 0x88140916, // 005A GETMBR R5 R4 K22 + 0x8C18010A, // 005B GETMET R6 R0 K10 + 0x7C180200, // 005C CALL R6 1 + 0x88180103, // 005D GETMBR R6 R0 K3 + 0x8C180D04, // 005E GETMET R6 R6 K4 + 0x5C200A00, // 005F MOVE R8 R5 + 0x7C180400, // 0060 CALL R6 2 + 0x80040C00, // 0061 RET 1 R6 + 0x88140906, // 0062 GETMBR R5 R4 K6 + 0xB81A0E00, // 0063 GETNGBL R6 K7 + 0x88180D08, // 0064 GETMBR R6 R6 K8 + 0x88180D1E, // 0065 GETMBR R6 R6 K30 + 0x1C140A06, // 0066 EQ R5 R5 R6 + 0x7816000D, // 0067 JMPF R5 #0076 + 0x88140916, // 0068 GETMBR R5 R4 K22 + 0x1C140B1F, // 0069 EQ R5 R5 K31 + 0x74160002, // 006A JMPT R5 #006E + 0x88140916, // 006B GETMBR R5 R4 K22 + 0x1C140B20, // 006C EQ R5 R5 K32 + 0x78160007, // 006D JMPF R5 #0076 + 0x88140916, // 006E GETMBR R5 R4 K22 + 0x8C18010A, // 006F GETMET R6 R0 K10 + 0x7C180200, // 0070 CALL R6 1 + 0x88180103, // 0071 GETMBR R6 R0 K3 + 0x8C180D04, // 0072 GETMET R6 R6 K4 + 0x5C200A00, // 0073 MOVE R8 R5 + 0x7C180400, // 0074 CALL R6 2 + 0x80040C00, // 0075 RET 1 R6 + 0x88140906, // 0076 GETMBR R5 R4 K6 + 0xB81A0E00, // 0077 GETNGBL R6 K7 + 0x88180D08, // 0078 GETMBR R6 R6 K8 + 0x88180D21, // 0079 GETMBR R6 R6 K33 + 0x1C140A06, // 007A EQ R5 R5 R6 + 0x7816000A, // 007B JMPF R5 #0087 + 0x88140916, // 007C GETMBR R5 R4 K22 + 0x8C18010A, // 007D GETMET R6 R0 K10 + 0x7C180200, // 007E CALL R6 1 + 0x88180103, // 007F GETMBR R6 R0 K3 + 0x8C180D04, // 0080 GETMET R6 R6 K4 + 0x60200018, // 0081 GETGBL R8 G24 + 0x58240022, // 0082 LDCONST R9 K34 + 0x5C280A00, // 0083 MOVE R10 R5 + 0x7C200400, // 0084 CALL R8 2 + 0x7C180400, // 0085 CALL R6 2 + 0x80040C00, // 0086 RET 1 R6 + 0x88140906, // 0087 GETMBR R5 R4 K6 + 0xB81A0E00, // 0088 GETNGBL R6 K7 + 0x88180D08, // 0089 GETMBR R6 R6 K8 + 0x88180D23, // 008A GETMBR R6 R6 K35 + 0x1C140A06, // 008B EQ R5 R5 R6 + 0x78160008, // 008C JMPF R5 #0096 + 0x5C140600, // 008D MOVE R5 R3 + 0x74160006, // 008E JMPT R5 #0096 + 0x8C140124, // 008F GETMET R5 R0 K36 + 0x7C140200, // 0090 CALL R5 1 + 0x88180103, // 0091 GETMBR R6 R0 K3 + 0x8C180D04, // 0092 GETMET R6 R6 K4 + 0x5C200A00, // 0093 MOVE R8 R5 + 0x7C180400, // 0094 CALL R6 2 + 0x80040C00, // 0095 RET 1 R6 + 0x88140906, // 0096 GETMBR R5 R4 K6 + 0xB81A0E00, // 0097 GETNGBL R6 K7 + 0x88180D08, // 0098 GETMBR R6 R6 K8 + 0x88180D1E, // 0099 GETMBR R6 R6 K30 + 0x1C140A06, // 009A EQ R5 R5 R6 + 0x74160005, // 009B JMPT R5 #00A2 + 0x88140906, // 009C GETMBR R5 R4 K6 + 0xB81A0E00, // 009D GETNGBL R6 K7 + 0x88180D08, // 009E GETMBR R6 R6 K8 + 0x88180D25, // 009F GETMBR R6 R6 K37 + 0x1C140A06, // 00A0 EQ R5 R5 R6 + 0x781600A3, // 00A1 JMPF R5 #0146 + 0x8C140126, // 00A2 GETMET R5 R0 K38 + 0x7C140200, // 00A3 CALL R5 1 + 0x4C180000, // 00A4 LDNIL R6 + 0x20140A06, // 00A5 NE R5 R5 R6 + 0x7816009E, // 00A6 JMPF R5 #0146 + 0x8C140126, // 00A7 GETMET R5 R0 K38 + 0x7C140200, // 00A8 CALL R5 1 + 0x88140B06, // 00A9 GETMBR R5 R5 K6 + 0xB81A0E00, // 00AA GETNGBL R6 K7 + 0x88180D08, // 00AB GETMBR R6 R6 K8 + 0x88180D09, // 00AC GETMBR R6 R6 K9 + 0x1C140A06, // 00AD EQ R5 R5 R6 + 0x78160096, // 00AE JMPF R5 #0146 + 0x88140916, // 00AF GETMBR R5 R4 K22 + 0x88180127, // 00B0 GETMBR R6 R0 K39 + 0x8C180D28, // 00B1 GETMET R6 R6 K40 + 0x5C200A00, // 00B2 MOVE R8 R5 + 0x7C180400, // 00B3 CALL R6 2 + 0x4C1C0000, // 00B4 LDNIL R7 + 0x1C1C0C07, // 00B5 EQ R7 R6 R7 + 0x781E000C, // 00B6 JMPF R7 #00C4 + 0x8C1C0101, // 00B7 GETMET R7 R0 K1 + 0x60240018, // 00B8 GETGBL R9 G24 + 0x58280029, // 00B9 LDCONST R10 K41 + 0x5C2C0A00, // 00BA MOVE R11 R5 + 0x7C240400, // 00BB CALL R9 2 + 0x7C1C0400, // 00BC CALL R7 2 + 0x8C1C012A, // 00BD GETMET R7 R0 K42 + 0x7C1C0200, // 00BE CALL R7 1 + 0x881C0103, // 00BF GETMBR R7 R0 K3 + 0x8C1C0F04, // 00C0 GETMET R7 R7 K4 + 0x58240005, // 00C1 LDCONST R9 K5 + 0x7C1C0400, // 00C2 CALL R7 2 + 0x80040E00, // 00C3 RET 1 R7 + 0x8C1C0D2B, // 00C4 GETMET R7 R6 K43 + 0x7C1C0200, // 00C5 CALL R7 1 + 0x781E0009, // 00C6 JMPF R7 #00D1 + 0x8C1C010A, // 00C7 GETMET R7 R0 K10 + 0x7C1C0200, // 00C8 CALL R7 1 + 0x8C1C012C, // 00C9 GETMET R7 R0 K44 + 0x5C240A00, // 00CA MOVE R9 R5 + 0x7C1C0400, // 00CB CALL R7 2 + 0x88200103, // 00CC GETMBR R8 R0 K3 + 0x8C20112D, // 00CD GETMET R8 R8 K45 + 0x5C280E00, // 00CE MOVE R10 R7 + 0x7C200400, // 00CF CALL R8 2 + 0x80041000, // 00D0 RET 1 R8 + 0x780E003F, // 00D1 JMPF R3 #0112 + 0x8C1C010A, // 00D2 GETMET R7 R0 K10 + 0x7C1C0200, // 00D3 CALL R7 1 + 0x4C1C0000, // 00D4 LDNIL R7 + 0x201C0C07, // 00D5 NE R7 R6 R7 + 0x781E0011, // 00D6 JMPF R7 #00E9 + 0x881C0D06, // 00D7 GETMBR R7 R6 K6 + 0xB8220E00, // 00D8 GETNGBL R8 K7 + 0x88201117, // 00D9 GETMBR R8 R8 K23 + 0x8820112E, // 00DA GETMBR R8 R8 K46 + 0x1C1C0E08, // 00DB EQ R7 R7 R8 + 0x781E000B, // 00DC JMPF R7 #00E9 + 0x8C1C012F, // 00DD GETMET R7 R0 K47 + 0x50240200, // 00DE LDBOOL R9 1 0 + 0x7C1C0400, // 00DF CALL R7 2 + 0x88200103, // 00E0 GETMBR R8 R0 K3 + 0x8C20112D, // 00E1 GETMET R8 R8 K45 + 0x60280018, // 00E2 GETGBL R10 G24 + 0x582C0030, // 00E3 LDCONST R11 K48 + 0x8C300D31, // 00E4 GETMET R12 R6 K49 + 0x7C300200, // 00E5 CALL R12 1 + 0x5C340E00, // 00E6 MOVE R13 R7 + 0x7C280600, // 00E7 CALL R10 3 + 0x7C200400, // 00E8 CALL R8 2 + 0x4C1C0000, // 00E9 LDNIL R7 + 0x201C0C07, // 00EA NE R7 R6 R7 + 0x781E0019, // 00EB JMPF R7 #0106 + 0x881C0D06, // 00EC GETMBR R7 R6 K6 + 0xB8220E00, // 00ED GETNGBL R8 K7 + 0x88201117, // 00EE GETMBR R8 R8 K23 + 0x88201132, // 00EF GETMBR R8 R8 K50 + 0x1C1C0E08, // 00F0 EQ R7 R7 R8 + 0x781E0013, // 00F1 JMPF R7 #0106 + 0x8C1C012F, // 00F2 GETMET R7 R0 K47 + 0x50240200, // 00F3 LDBOOL R9 1 0 + 0x7C1C0400, // 00F4 CALL R7 2 + 0x20200F33, // 00F5 NE R8 R7 K51 + 0x78220004, // 00F6 JMPF R8 #00FC + 0x60200018, // 00F7 GETGBL R8 G24 + 0x58240034, // 00F8 LDCONST R9 K52 + 0x5C280E00, // 00F9 MOVE R10 R7 + 0x7C200400, // 00FA CALL R8 2 + 0x70020000, // 00FB JMP #00FD + 0x58200035, // 00FC LDCONST R8 K53 + 0x88240103, // 00FD GETMBR R9 R0 K3 + 0x8C24132D, // 00FE GETMET R9 R9 K45 + 0x602C0018, // 00FF GETGBL R11 G24 + 0x58300036, // 0100 LDCONST R12 K54 + 0x5C340A00, // 0101 MOVE R13 R5 + 0x5C381000, // 0102 MOVE R14 R8 + 0x7C2C0600, // 0103 CALL R11 3 + 0x7C240400, // 0104 CALL R9 2 + 0x80041200, // 0105 RET 1 R9 + 0x8C1C0101, // 0106 GETMET R7 R0 K1 + 0x60240018, // 0107 GETGBL R9 G24 + 0x58280037, // 0108 LDCONST R10 K55 + 0x5C2C0A00, // 0109 MOVE R11 R5 + 0x7C240400, // 010A CALL R9 2 + 0x7C1C0400, // 010B CALL R7 2 + 0x881C0103, // 010C GETMBR R7 R0 K3 + 0x8C1C0F04, // 010D GETMET R7 R7 K4 + 0x58240005, // 010E LDCONST R9 K5 + 0x7C1C0400, // 010F CALL R7 2 + 0x80040E00, // 0110 RET 1 R7 + 0x70020033, // 0111 JMP #0146 + 0x8C1C0D38, // 0112 GETMET R7 R6 K56 + 0x7C1C0200, // 0113 CALL R7 1 + 0x741E000D, // 0114 JMPT R7 #0123 + 0x8C1C0139, // 0115 GETMET R7 R0 K57 + 0x5C240200, // 0116 MOVE R9 R1 + 0x7C1C0400, // 0117 CALL R7 2 + 0x8C20013A, // 0118 GETMET R8 R0 K58 + 0x5C280C00, // 0119 MOVE R10 R6 + 0x7C200400, // 011A CALL R8 2 + 0x88240103, // 011B GETMBR R9 R0 K3 + 0x8C24132D, // 011C GETMET R9 R9 K45 + 0x5C2C0E00, // 011D MOVE R11 R7 + 0x5C301000, // 011E MOVE R12 R8 + 0x88340D3B, // 011F GETMBR R13 R6 K59 + 0x7C240800, // 0120 CALL R9 4 + 0x80041200, // 0121 RET 1 R9 + 0x70020022, // 0122 JMP #0146 + 0x881C013C, // 0123 GETMBR R7 R0 K60 + 0x1C1C0207, // 0124 EQ R7 R1 R7 + 0x741E0005, // 0125 JMPT R7 #012C + 0x881C013D, // 0126 GETMBR R7 R0 K61 + 0x1C1C0207, // 0127 EQ R7 R1 R7 + 0x741E0002, // 0128 JMPT R7 #012C + 0x881C013E, // 0129 GETMBR R7 R0 K62 + 0x1C1C0207, // 012A EQ R7 R1 R7 + 0x781E000C, // 012B JMPF R7 #0139 + 0x8C1C013F, // 012C GETMET R7 R0 K63 + 0x7C1C0200, // 012D CALL R7 1 + 0x8C20013A, // 012E GETMET R8 R0 K58 + 0x5C280C00, // 012F MOVE R10 R6 + 0x7C200400, // 0130 CALL R8 2 + 0x88240103, // 0131 GETMBR R9 R0 K3 + 0x8C241340, // 0132 GETMET R9 R9 K64 + 0x5C2C0E00, // 0133 MOVE R11 R7 + 0x5C301000, // 0134 MOVE R12 R8 + 0x88340D3B, // 0135 GETMBR R13 R6 K59 + 0x7C240800, // 0136 CALL R9 4 + 0x80041200, // 0137 RET 1 R9 + 0x7002000C, // 0138 JMP #0146 + 0x8C1C0139, // 0139 GETMET R7 R0 K57 + 0x5C240200, // 013A MOVE R9 R1 + 0x7C1C0400, // 013B CALL R7 2 + 0x8C20013A, // 013C GETMET R8 R0 K58 + 0x5C280C00, // 013D MOVE R10 R6 + 0x7C200400, // 013E CALL R8 2 + 0x88240103, // 013F GETMBR R9 R0 K3 + 0x8C241340, // 0140 GETMET R9 R9 K64 + 0x5C2C0E00, // 0141 MOVE R11 R7 + 0x5C301000, // 0142 MOVE R12 R8 + 0x88340D3B, // 0143 GETMBR R13 R6 K59 + 0x7C240800, // 0144 CALL R9 4 + 0x80041200, // 0145 RET 1 R9 + 0x88140906, // 0146 GETMBR R5 R4 K6 + 0xB81A0E00, // 0147 GETNGBL R6 K7 + 0x88180D08, // 0148 GETMBR R6 R6 K8 + 0x88180D25, // 0149 GETMBR R6 R6 K37 + 0x1C140A06, // 014A EQ R5 R5 R6 + 0x781600A8, // 014B JMPF R5 #01F5 + 0x88140916, // 014C GETMBR R5 R4 K22 + 0x88180127, // 014D GETMBR R6 R0 K39 + 0x8C180D28, // 014E GETMET R6 R6 K40 + 0x5C200A00, // 014F MOVE R8 R5 + 0x7C180400, // 0150 CALL R6 2 + 0x4C1C0000, // 0151 LDNIL R7 + 0x1C1C0C07, // 0152 EQ R7 R6 R7 + 0x781E000C, // 0153 JMPF R7 #0161 + 0x8C1C0101, // 0154 GETMET R7 R0 K1 + 0x60240018, // 0155 GETGBL R9 G24 + 0x58280041, // 0156 LDCONST R10 K65 + 0x5C2C0A00, // 0157 MOVE R11 R5 + 0x7C240400, // 0158 CALL R9 2 + 0x7C1C0400, // 0159 CALL R7 2 + 0x8C1C012A, // 015A GETMET R7 R0 K42 + 0x7C1C0200, // 015B CALL R7 1 + 0x881C0103, // 015C GETMBR R7 R0 K3 + 0x8C1C0F04, // 015D GETMET R7 R7 K4 + 0x58240005, // 015E LDCONST R9 K5 + 0x7C1C0400, // 015F CALL R7 2 + 0x80040E00, // 0160 RET 1 R7 + 0x8C1C010A, // 0161 GETMET R7 R0 K10 + 0x7C1C0200, // 0162 CALL R7 1 + 0x8C1C0100, // 0163 GETMET R7 R0 K0 + 0x7C1C0200, // 0164 CALL R7 1 + 0x4C200000, // 0165 LDNIL R8 + 0x201C0E08, // 0166 NE R7 R7 R8 + 0x781E0049, // 0167 JMPF R7 #01B2 + 0x8C1C0100, // 0168 GETMET R7 R0 K0 + 0x7C1C0200, // 0169 CALL R7 1 + 0x881C0F06, // 016A GETMBR R7 R7 K6 + 0xB8220E00, // 016B GETNGBL R8 K7 + 0x88201108, // 016C GETMBR R8 R8 K8 + 0x88201142, // 016D GETMBR R8 R8 K66 + 0x1C1C0E08, // 016E EQ R7 R7 R8 + 0x781E0041, // 016F JMPF R7 #01B2 + 0x8C1C010A, // 0170 GETMET R7 R0 K10 + 0x7C1C0200, // 0171 CALL R7 1 + 0x8C1C0143, // 0172 GETMET R7 R0 K67 + 0x7C1C0200, // 0173 CALL R7 1 + 0x60200018, // 0174 GETGBL R8 G24 + 0x58240044, // 0175 LDCONST R9 K68 + 0x5C280A00, // 0176 MOVE R10 R5 + 0x5C2C0E00, // 0177 MOVE R11 R7 + 0x7C200600, // 0178 CALL R8 3 + 0x5C240600, // 0179 MOVE R9 R3 + 0x74260028, // 017A JMPT R9 #01A4 + 0x88240127, // 017B GETMBR R9 R0 K39 + 0x8C241345, // 017C GETMET R9 R9 K69 + 0x5C2C0A00, // 017D MOVE R11 R5 + 0x7C240400, // 017E CALL R9 2 + 0x78260023, // 017F JMPF R9 #01A4 + 0x4C240000, // 0180 LDNIL R9 + 0x20240C09, // 0181 NE R9 R6 R9 + 0x7826000C, // 0182 JMPF R9 #0190 + 0x88240D3B, // 0183 GETMBR R9 R6 K59 + 0x4C280000, // 0184 LDNIL R10 + 0x2024120A, // 0185 NE R9 R9 R10 + 0x78260008, // 0186 JMPF R9 #0190 + 0x60240005, // 0187 GETGBL R9 G5 + 0x88280D3B, // 0188 GETMBR R10 R6 K59 + 0x7C240200, // 0189 CALL R9 1 + 0x8C280146, // 018A GETMET R10 R0 K70 + 0x5C301200, // 018B MOVE R12 R9 + 0x5C340E00, // 018C MOVE R13 R7 + 0x88380D3B, // 018D GETMBR R14 R6 K59 + 0x7C280800, // 018E CALL R10 4 + 0x70020013, // 018F JMP #01A4 + 0x4C240000, // 0190 LDNIL R9 + 0x20240C09, // 0191 NE R9 R6 R9 + 0x78260010, // 0192 JMPF R9 #01A4 + 0x88240D06, // 0193 GETMBR R9 R6 K6 + 0xB82A0E00, // 0194 GETNGBL R10 K7 + 0x88281517, // 0195 GETMBR R10 R10 K23 + 0x88281547, // 0196 GETMBR R10 R10 K71 + 0x1C24120A, // 0197 EQ R9 R9 R10 + 0x7826000A, // 0198 JMPF R9 #01A4 + 0x8C240101, // 0199 GETMET R9 R0 K1 + 0x602C0018, // 019A GETGBL R11 G24 + 0x58300048, // 019B LDCONST R12 K72 + 0x5C340A00, // 019C MOVE R13 R5 + 0x7C2C0400, // 019D CALL R11 2 + 0x7C240400, // 019E CALL R9 2 + 0x88240103, // 019F GETMBR R9 R0 K3 + 0x8C241304, // 01A0 GETMET R9 R9 K4 + 0x582C0005, // 01A1 LDCONST R11 K5 + 0x7C240400, // 01A2 CALL R9 2 + 0x80041200, // 01A3 RET 1 R9 + 0x88240127, // 01A4 GETMBR R9 R0 K39 + 0x8C241331, // 01A5 GETMET R9 R9 K49 + 0x5C2C0A00, // 01A6 MOVE R11 R5 + 0x7C240400, // 01A7 CALL R9 2 + 0x88280103, // 01A8 GETMBR R10 R0 K3 + 0x8C281549, // 01A9 GETMET R10 R10 K73 + 0x60300018, // 01AA GETGBL R12 G24 + 0x58340044, // 01AB LDCONST R13 K68 + 0x5C381200, // 01AC MOVE R14 R9 + 0x5C3C0E00, // 01AD MOVE R15 R7 + 0x7C300600, // 01AE CALL R12 3 + 0x5834004A, // 01AF LDCONST R13 K74 + 0x7C280600, // 01B0 CALL R10 3 + 0x80041400, // 01B1 RET 1 R10 + 0x881C0D06, // 01B2 GETMBR R7 R6 K6 + 0xB8220E00, // 01B3 GETNGBL R8 K7 + 0x88201117, // 01B4 GETMBR R8 R8 K23 + 0x88201118, // 01B5 GETMBR R8 R8 K24 + 0x1C1C0E08, // 01B6 EQ R7 R7 R8 + 0x741E0011, // 01B7 JMPT R7 #01CA + 0x881C0D06, // 01B8 GETMBR R7 R6 K6 + 0xB8220E00, // 01B9 GETNGBL R8 K7 + 0x88201117, // 01BA GETMBR R8 R8 K23 + 0x8820114B, // 01BB GETMBR R8 R8 K75 + 0x1C1C0E08, // 01BC EQ R7 R7 R8 + 0x741E000B, // 01BD JMPT R7 #01CA + 0x881C0D06, // 01BE GETMBR R7 R6 K6 + 0xB8220E00, // 01BF GETNGBL R8 K7 + 0x88201117, // 01C0 GETMBR R8 R8 K23 + 0x8820114C, // 01C1 GETMBR R8 R8 K76 + 0x1C1C0E08, // 01C2 EQ R7 R7 R8 + 0x741E0005, // 01C3 JMPT R7 #01CA + 0x881C0D06, // 01C4 GETMBR R7 R6 K6 + 0xB8220E00, // 01C5 GETNGBL R8 K7 + 0x88201117, // 01C6 GETMBR R8 R8 K23 + 0x8820114D, // 01C7 GETMBR R8 R8 K77 + 0x1C1C0E08, // 01C8 EQ R7 R7 R8 + 0x781E0008, // 01C9 JMPF R7 #01D3 + 0x881C0103, // 01CA GETMBR R7 R0 K3 + 0x8C1C0F04, // 01CB GETMET R7 R7 K4 + 0x8C240D31, // 01CC GETMET R9 R6 K49 + 0x7C240200, // 01CD CALL R9 1 + 0xB82A0E00, // 01CE GETNGBL R10 K7 + 0x88281517, // 01CF GETMBR R10 R10 K23 + 0x88281518, // 01D0 GETMBR R10 R10 K24 + 0x7C1C0600, // 01D1 CALL R7 3 + 0x80040E00, // 01D2 RET 1 R7 + 0x881C0127, // 01D3 GETMBR R7 R0 K39 + 0x8C1C0F31, // 01D4 GETMET R7 R7 K49 + 0x5C240A00, // 01D5 MOVE R9 R5 + 0x7C1C0400, // 01D6 CALL R7 2 + 0x8C20014E, // 01D7 GETMET R8 R0 K78 + 0x5C280C00, // 01D8 MOVE R10 R6 + 0x7C200400, // 01D9 CALL R8 2 + 0x88240D06, // 01DA GETMBR R9 R6 K6 + 0xB82A0E00, // 01DB GETNGBL R10 K7 + 0x88281517, // 01DC GETMBR R10 R10 K23 + 0x8828154F, // 01DD GETMBR R10 R10 K79 + 0x1C24120A, // 01DE EQ R9 R9 R10 + 0x74260005, // 01DF JMPT R9 #01E6 + 0x88240D06, // 01E0 GETMBR R9 R6 K6 + 0xB82A0E00, // 01E1 GETNGBL R10 K7 + 0x88281517, // 01E2 GETMBR R10 R10 K23 + 0x88281550, // 01E3 GETMBR R10 R10 K80 + 0x1C24120A, // 01E4 EQ R9 R9 R10 + 0x78260008, // 01E5 JMPF R9 #01EF + 0x88240103, // 01E6 GETMBR R9 R0 K3 + 0x8C24132D, // 01E7 GETMET R9 R9 K45 + 0x602C0018, // 01E8 GETGBL R11 G24 + 0x58300051, // 01E9 LDCONST R12 K81 + 0x5C340E00, // 01EA MOVE R13 R7 + 0x7C2C0400, // 01EB CALL R11 2 + 0x5C301000, // 01EC MOVE R12 R8 + 0x7C240600, // 01ED CALL R9 3 + 0x80041200, // 01EE RET 1 R9 + 0x88240103, // 01EF GETMBR R9 R0 K3 + 0x8C241352, // 01F0 GETMET R9 R9 K82 + 0x5C2C0E00, // 01F1 MOVE R11 R7 + 0x5C301000, // 01F2 MOVE R12 R8 + 0x7C240600, // 01F3 CALL R9 3 + 0x80041200, // 01F4 RET 1 R9 + 0x88140906, // 01F5 GETMBR R5 R4 K6 + 0xB81A0E00, // 01F6 GETNGBL R6 K7 + 0x88180D08, // 01F7 GETMBR R6 R6 K8 + 0x88180D1E, // 01F8 GETMBR R6 R6 K30 + 0x1C140A06, // 01F9 EQ R5 R5 R6 + 0x7816000A, // 01FA JMPF R5 #0206 + 0x88140916, // 01FB GETMBR R5 R4 K22 + 0x8C18010A, // 01FC GETMET R6 R0 K10 + 0x7C180200, // 01FD CALL R6 1 + 0x88180103, // 01FE GETMBR R6 R0 K3 + 0x8C180D04, // 01FF GETMET R6 R6 K4 + 0x60200018, // 0200 GETGBL R8 G24 + 0x58240053, // 0201 LDCONST R9 K83 + 0x5C280A00, // 0202 MOVE R10 R5 + 0x7C200400, // 0203 CALL R8 2 + 0x7C180400, // 0204 CALL R6 2 + 0x80040C00, // 0205 RET 1 R6 + 0x8C140101, // 0206 GETMET R5 R0 K1 + 0x601C0018, // 0207 GETGBL R7 G24 + 0x58200054, // 0208 LDCONST R8 K84 + 0x88240916, // 0209 GETMBR R9 R4 K22 + 0x7C1C0400, // 020A CALL R7 2 + 0x7C140400, // 020B CALL R5 2 + 0x8C14012A, // 020C GETMET R5 R0 K42 + 0x7C140200, // 020D CALL R5 1 + 0x88140103, // 020E GETMBR R5 R0 K3 + 0x8C140B04, // 020F GETMET R5 R5 K4 + 0x581C0005, // 0210 LDCONST R7 K5 + 0x7C140400, // 0211 CALL R5 2 + 0x80040A00, // 0212 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_unary_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ + be_nested_proto( + 14, /* nstack */ + 4, /* 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(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(ExpressionResult), + /* K4 */ be_nested_str_weak(literal), + /* K5 */ be_nested_str_weak(nil), + /* K6 */ be_nested_str_weak(type), + /* K7 */ be_nested_str_weak(animation_dsl), + /* K8 */ be_nested_str_weak(Token), + /* K9 */ be_nested_str_weak(MINUS), + /* K10 */ be_nested_str_weak(next), + /* K11 */ be_nested_str_weak(process_unary_expression), + /* K12 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K13 */ be_nested_str_weak(expr), + /* K14 */ be_nested_str_weak(has_dynamic), + /* K15 */ be_nested_str_weak(has_dangerous), + /* K16 */ be_nested_str_weak(return_type), + /* K17 */ be_nested_str_weak(instance_for_validation), + /* K18 */ be_nested_str_weak(PLUS), + /* K19 */ be_nested_str_weak(process_primary_expression), + }), + be_str_weak(process_unary_expression), + &be_const_str_solidified, + ( &(const binstruction[58]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x4C140000, // 0002 LDNIL R5 + 0x1C140805, // 0003 EQ R5 R4 R5 + 0x78160007, // 0004 JMPF R5 #000D + 0x8C140101, // 0005 GETMET R5 R0 K1 + 0x581C0002, // 0006 LDCONST R7 K2 + 0x7C140400, // 0007 CALL R5 2 + 0x88140103, // 0008 GETMBR R5 R0 K3 + 0x8C140B04, // 0009 GETMET R5 R5 K4 + 0x581C0005, // 000A LDCONST R7 K5 + 0x7C140400, // 000B CALL R5 2 + 0x80040A00, // 000C RET 1 R5 + 0x88140906, // 000D GETMBR R5 R4 K6 + 0xB81A0E00, // 000E GETNGBL R6 K7 + 0x88180D08, // 000F GETMBR R6 R6 K8 + 0x88180D09, // 0010 GETMBR R6 R6 K9 + 0x1C140A06, // 0011 EQ R5 R5 R6 + 0x78160012, // 0012 JMPF R5 #0026 + 0x8C14010A, // 0013 GETMET R5 R0 K10 + 0x7C140200, // 0014 CALL R5 1 + 0x8C14010B, // 0015 GETMET R5 R0 K11 + 0x5C1C0200, // 0016 MOVE R7 R1 + 0x50200000, // 0017 LDBOOL R8 0 0 + 0x5C240600, // 0018 MOVE R9 R3 + 0x7C140800, // 0019 CALL R5 4 + 0x8C180103, // 001A GETMET R6 R0 K3 + 0x60200018, // 001B GETGBL R8 G24 + 0x5824000C, // 001C LDCONST R9 K12 + 0x88280B0D, // 001D GETMBR R10 R5 K13 + 0x7C200400, // 001E CALL R8 2 + 0x88240B0E, // 001F GETMBR R9 R5 K14 + 0x88280B0F, // 0020 GETMBR R10 R5 K15 + 0x502C0200, // 0021 LDBOOL R11 1 0 + 0x88300B10, // 0022 GETMBR R12 R5 K16 + 0x88340B11, // 0023 GETMBR R13 R5 K17 + 0x7C180E00, // 0024 CALL R6 7 + 0x80040C00, // 0025 RET 1 R6 + 0x88140906, // 0026 GETMBR R5 R4 K6 + 0xB81A0E00, // 0027 GETNGBL R6 K7 + 0x88180D08, // 0028 GETMBR R6 R6 K8 + 0x88180D12, // 0029 GETMBR R6 R6 K18 + 0x1C140A06, // 002A EQ R5 R5 R6 + 0x78160007, // 002B JMPF R5 #0034 + 0x8C14010A, // 002C GETMET R5 R0 K10 + 0x7C140200, // 002D CALL R5 1 + 0x8C14010B, // 002E GETMET R5 R0 K11 + 0x5C1C0200, // 002F MOVE R7 R1 + 0x50200000, // 0030 LDBOOL R8 0 0 + 0x5C240600, // 0031 MOVE R9 R3 + 0x7C140800, // 0032 CALL R5 4 + 0x80040A00, // 0033 RET 1 R5 + 0x8C140113, // 0034 GETMET R5 R0 K19 + 0x5C1C0200, // 0035 MOVE R7 R1 + 0x5C200400, // 0036 MOVE R8 R2 + 0x5C240600, // 0037 MOVE R9 R3 + 0x7C140800, // 0038 CALL R5 4 + 0x80040A00, // 0039 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_function_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* 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[23]) { /* 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_additive_expression), + /* K5 */ be_nested_str_weak(CONTEXT_ARGUMENT), + /* K6 */ be_nested_str_weak(expr), + /* K7 */ be_nested_str_weak(process_value), + /* K8 */ be_nested_str_weak(push), + /* 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(COMMA), + /* K14 */ be_nested_str_weak(next), + /* K15 */ be_nested_str_weak(error), + /* K16 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K17 */ be_nested_str_weak(expect_right_paren), + /* K18 */ be_nested_str_weak(), + /* K19 */ be_const_int(0), + /* K20 */ be_const_int(1), + /* K21 */ be_nested_str_weak(_X2C_X20), + /* K22 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(process_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[83]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x60080012, // 0002 GETGBL R2 G18 + 0x7C080000, // 0003 CALL R2 0 + 0x8C0C0101, // 0004 GETMET R3 R0 K1 + 0x7C0C0200, // 0005 CALL R3 1 + 0x740E0034, // 0006 JMPT R3 #003C + 0x8C0C0102, // 0007 GETMET R3 R0 K2 + 0x7C0C0200, // 0008 CALL R3 1 + 0x740E0031, // 0009 JMPT R3 #003C + 0x8C0C0103, // 000A GETMET R3 R0 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x8C0C0102, // 000C GETMET R3 R0 K2 + 0x7C0C0200, // 000D CALL R3 1 + 0x780E0000, // 000E JMPF R3 #0010 + 0x7002002B, // 000F JMP #003C + 0x4C0C0000, // 0010 LDNIL R3 + 0x78060006, // 0011 JMPF R1 #0019 + 0x8C100104, // 0012 GETMET R4 R0 K4 + 0x88180105, // 0013 GETMBR R6 R0 K5 + 0x501C0200, // 0014 LDBOOL R7 1 0 + 0x50200200, // 0015 LDBOOL R8 1 0 + 0x7C100800, // 0016 CALL R4 4 + 0x880C0906, // 0017 GETMBR R3 R4 K6 + 0x70020003, // 0018 JMP #001D + 0x8C100107, // 0019 GETMET R4 R0 K7 + 0x88180105, // 001A GETMBR R6 R0 K5 + 0x7C100400, // 001B CALL R4 2 + 0x880C0906, // 001C GETMBR R3 R4 K6 + 0x8C100508, // 001D GETMET R4 R2 K8 + 0x5C180600, // 001E MOVE R6 R3 + 0x7C100400, // 001F CALL R4 2 + 0x8C100103, // 0020 GETMET R4 R0 K3 + 0x7C100200, // 0021 CALL R4 1 + 0x8C100109, // 0022 GETMET R4 R0 K9 + 0x7C100200, // 0023 CALL R4 1 + 0x4C140000, // 0024 LDNIL R5 + 0x20100805, // 0025 NE R4 R4 R5 + 0x7812000C, // 0026 JMPF R4 #0034 + 0x8C100109, // 0027 GETMET R4 R0 K9 + 0x7C100200, // 0028 CALL R4 1 + 0x8810090A, // 0029 GETMBR R4 R4 K10 + 0xB8161600, // 002A GETNGBL R5 K11 + 0x88140B0C, // 002B GETMBR R5 R5 K12 + 0x88140B0D, // 002C GETMBR R5 R5 K13 + 0x1C100805, // 002D EQ R4 R4 R5 + 0x78120004, // 002E JMPF R4 #0034 + 0x8C10010E, // 002F GETMET R4 R0 K14 + 0x7C100200, // 0030 CALL R4 1 + 0x8C100103, // 0031 GETMET R4 R0 K3 + 0x7C100200, // 0032 CALL R4 1 + 0x70020006, // 0033 JMP #003B + 0x8C100102, // 0034 GETMET R4 R0 K2 + 0x7C100200, // 0035 CALL R4 1 + 0x74120003, // 0036 JMPT R4 #003B + 0x8C10010F, // 0037 GETMET R4 R0 K15 + 0x58180010, // 0038 LDCONST R6 K16 + 0x7C100400, // 0039 CALL R4 2 + 0x70020000, // 003A JMP #003C + 0x7001FFC7, // 003B JMP #0004 + 0x8C0C0111, // 003C GETMET R3 R0 K17 + 0x7C0C0200, // 003D CALL R3 1 + 0x580C0012, // 003E LDCONST R3 K18 + 0x60100010, // 003F GETGBL R4 G16 + 0x6014000C, // 0040 GETGBL R5 G12 + 0x5C180400, // 0041 MOVE R6 R2 + 0x7C140200, // 0042 CALL R5 1 + 0x04140B14, // 0043 SUB R5 R5 K20 + 0x40162605, // 0044 CONNECT R5 K19 R5 + 0x7C100200, // 0045 CALL R4 1 + 0xA8020007, // 0046 EXBLK 0 #004F + 0x5C140800, // 0047 MOVE R5 R4 + 0x7C140000, // 0048 CALL R5 0 + 0x24180B13, // 0049 GT R6 R5 K19 + 0x781A0000, // 004A JMPF R6 #004C + 0x000C0715, // 004B ADD R3 R3 K21 + 0x94180405, // 004C GETIDX R6 R2 R5 + 0x000C0606, // 004D ADD R3 R3 R6 + 0x7001FFF7, // 004E JMP #0047 + 0x58100016, // 004F LDCONST R4 K22 + 0xAC100200, // 0050 CATCH R4 1 0 + 0xB0080000, // 0051 RAISE 2 R0 R0 + 0x80040600, // 0052 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[12]) { /* 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_X28_X25s__X29_X25s), + /* K8 */ be_nested_str_weak(stop_iteration), + /* K9 */ be_nested_str_weak(join_output), + /* K10 */ be_nested_str_weak(error), + /* K11 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), + }), + be_str_weak(transpile_template_body), + &be_const_str_solidified, + ( &(const binstruction[48]) { /* code */ + 0xA8020023, // 0000 EXBLK 0 #0025 + 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 + 0x8C040109, // 001F GETMET R1 R0 K9 + 0x7C040200, // 0020 CALL R1 1 + 0xA8040001, // 0021 EXBLK 1 1 + 0x80040200, // 0022 RET 1 R1 + 0xA8040001, // 0023 EXBLK 1 1 + 0x70020009, // 0024 JMP #002F + 0xAC040002, // 0025 CATCH R1 0 2 + 0x70020006, // 0026 JMP #002E + 0x8C0C010A, // 0027 GETMET R3 R0 K10 + 0x60140018, // 0028 GETGBL R5 G24 + 0x5818000B, // 0029 LDCONST R6 K11 + 0x5C1C0400, // 002A MOVE R7 R2 + 0x7C140400, // 002B CALL R5 2 + 0x7C0C0400, // 002C CALL R3 2 + 0x70020000, // 002D JMP #002F + 0xB0080000, // 002E RAISE 2 R0 R0 + 0x80000000, // 002F 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: process_log_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* 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(fluent), + /* K15 */ be_nested_str_weak(add), + }), + be_str_weak(process_log_statement_fluent), + &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_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_value, /* 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[22]) { /* constants */ + /* K0 */ be_nested_str_weak(process_additive_expression), + /* K1 */ be_nested_str_weak(CONTEXT_VARIABLE), + /* K2 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K3 */ be_nested_str_weak(needs_closure), + /* K4 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), + /* K5 */ be_nested_str_weak(needs_function), + /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20_X25s_X20end), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(ExpressionResult), + /* K9 */ be_nested_str_weak(function_call), + /* K10 */ be_nested_str_weak(return_type), + /* K11 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20def_X20_X28engine_X29_X20return_X20_X25s_X20end_X29), + /* K12 */ be_nested_str_weak(animation_dsl), + /* K13 */ be_nested_str_weak(_symbol_entry), + /* K14 */ be_nested_str_weak(TYPE_ANIMATION), + /* K15 */ be_nested_str_weak(has_computation), + /* K16 */ be_nested_str_weak(_unwrap_resolve), + /* K17 */ be_nested_str_weak(symbol_table), + /* K18 */ be_nested_str_weak(get), + /* K19 */ be_nested_str_weak(closure_value), + /* K20 */ be_nested_str_weak(type), + /* K21 */ be_nested_str_weak(instance), + }), + be_str_weak(process_value), + &be_const_str_solidified, + ( &(const binstruction[68]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x50140200, // 0002 LDBOOL R5 1 0 + 0x50180000, // 0003 LDBOOL R6 0 0 + 0x7C080800, // 0004 CALL R2 4 + 0x880C0101, // 0005 GETMBR R3 R0 K1 + 0x1C0C0203, // 0006 EQ R3 R1 R3 + 0x740E0002, // 0007 JMPT R3 #000B + 0x880C0102, // 0008 GETMBR R3 R0 K2 + 0x1C0C0203, // 0009 EQ R3 R1 R3 + 0x780E0002, // 000A JMPF R3 #000E + 0x8C0C0503, // 000B GETMET R3 R2 K3 + 0x7C0C0200, // 000C CALL R3 1 + 0x740E0005, // 000D JMPT R3 #0014 + 0x880C0104, // 000E GETMBR R3 R0 K4 + 0x1C0C0203, // 000F EQ R3 R1 R3 + 0x780E0030, // 0010 JMPF R3 #0042 + 0x8C0C0505, // 0011 GETMET R3 R2 K5 + 0x7C0C0200, // 0012 CALL R3 1 + 0x780E002D, // 0013 JMPF R3 #0042 + 0x880C0104, // 0014 GETMBR R3 R0 K4 + 0x1C0C0203, // 0015 EQ R3 R1 R3 + 0x780E000A, // 0016 JMPF R3 #0022 + 0x600C0018, // 0017 GETGBL R3 G24 + 0x58100006, // 0018 LDCONST R4 K6 + 0x88140507, // 0019 GETMBR R5 R2 K7 + 0x7C0C0400, // 001A CALL R3 2 + 0x88100108, // 001B GETMBR R4 R0 K8 + 0x8C100909, // 001C GETMET R4 R4 K9 + 0x5C180600, // 001D MOVE R6 R3 + 0x881C050A, // 001E GETMBR R7 R2 K10 + 0x7C100600, // 001F CALL R4 3 + 0x80040800, // 0020 RET 1 R4 + 0x7002001E, // 0021 JMP #0041 + 0x600C0018, // 0022 GETGBL R3 G24 + 0x5810000B, // 0023 LDCONST R4 K11 + 0x88140507, // 0024 GETMBR R5 R2 K7 + 0x7C0C0400, // 0025 CALL R3 2 + 0x8810050A, // 0026 GETMBR R4 R2 K10 + 0xB8161800, // 0027 GETNGBL R5 K12 + 0x88140B0D, // 0028 GETMBR R5 R5 K13 + 0x88140B0E, // 0029 GETMBR R5 R5 K14 + 0x1C100805, // 002A EQ R4 R4 R5 + 0x78120002, // 002B JMPF R4 #002F + 0x8810050F, // 002C GETMBR R4 R2 K15 + 0x74120000, // 002D JMPT R4 #002F + 0x880C0507, // 002E GETMBR R3 R2 K7 + 0x8C100110, // 002F GETMET R4 R0 K16 + 0x88180507, // 0030 GETMBR R6 R2 K7 + 0x7C100400, // 0031 CALL R4 2 + 0x4C140000, // 0032 LDNIL R5 + 0x20140805, // 0033 NE R5 R4 R5 + 0x78160000, // 0034 JMPF R5 #0036 + 0x5C0C0800, // 0035 MOVE R3 R4 + 0x88140111, // 0036 GETMBR R5 R0 K17 + 0x8C140B12, // 0037 GETMET R5 R5 K18 + 0x581C0013, // 0038 LDCONST R7 K19 + 0x7C140400, // 0039 CALL R5 2 + 0x88180108, // 003A GETMBR R6 R0 K8 + 0x8C180D09, // 003B GETMET R6 R6 K9 + 0x5C200600, // 003C MOVE R8 R3 + 0x88240B14, // 003D GETMBR R9 R5 K20 + 0x88280B15, // 003E GETMBR R10 R5 K21 + 0x7C180800, // 003F CALL R6 4 + 0x80040C00, // 0040 RET 1 R6 + 0x70020000, // 0041 JMP #0043 + 0x80040400, // 0042 RET 1 R2 + 0x80000000, // 0043 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_simple_value_assignment +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_simple_value_assignment, /* name */ + be_nested_proto( + 16, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[17]) { /* 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(peek), + /* K6 */ be_nested_str_weak(LEFT_PAREN), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(collect_inline_comment), + /* K10 */ be_nested_str_weak(add), + /* K11 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K12 */ be_nested_str_weak(expr), + /* K13 */ be_nested_str_weak(symbol_table), + /* K14 */ be_nested_str_weak(contains), + /* K15 */ be_nested_str_weak(get), + /* K16 */ be_nested_str_weak(instance), + }), + be_str_weak(_process_simple_value_assignment), + &be_const_str_solidified, + ( &(const binstruction[78]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x4C140000, // 0002 LDNIL R5 + 0x20140805, // 0003 NE R5 R4 R5 + 0x78160012, // 0004 JMPF R5 #0018 + 0x88140901, // 0005 GETMBR R5 R4 K1 + 0xB81A0400, // 0006 GETNGBL R6 K2 + 0x88180D03, // 0007 GETMBR R6 R6 K3 + 0x88180D04, // 0008 GETMBR R6 R6 K4 + 0x1C140A06, // 0009 EQ R5 R5 R6 + 0x7816000C, // 000A JMPF R5 #0018 + 0x8C140105, // 000B GETMET R5 R0 K5 + 0x7C140200, // 000C CALL R5 1 + 0x4C180000, // 000D LDNIL R6 + 0x1C140A06, // 000E EQ R5 R5 R6 + 0x74160008, // 000F JMPT R5 #0019 + 0x8C140105, // 0010 GETMET R5 R0 K5 + 0x7C140200, // 0011 CALL R5 1 + 0x88140B01, // 0012 GETMBR R5 R5 K1 + 0xB81A0400, // 0013 GETNGBL R6 K2 + 0x88180D03, // 0014 GETMBR R6 R6 K3 + 0x88180D06, // 0015 GETMBR R6 R6 K6 + 0x20140A06, // 0016 NE R5 R5 R6 + 0x74160000, // 0017 JMPT R5 #0019 + 0x50140001, // 0018 LDBOOL R5 0 1 + 0x50140200, // 0019 LDBOOL R5 1 0 + 0x78160001, // 001A JMPF R5 #001D + 0x88180907, // 001B GETMBR R6 R4 K7 + 0x70020000, // 001C JMP #001E + 0x4C180000, // 001D LDNIL R6 + 0x8C1C0108, // 001E GETMET R7 R0 K8 + 0x5C240400, // 001F MOVE R9 R2 + 0x7C1C0400, // 0020 CALL R7 2 + 0x8C200109, // 0021 GETMET R8 R0 K9 + 0x7C200200, // 0022 CALL R8 1 + 0x8C24010A, // 0023 GETMET R9 R0 K10 + 0x602C0018, // 0024 GETGBL R11 G24 + 0x5830000B, // 0025 LDCONST R12 K11 + 0x5C340200, // 0026 MOVE R13 R1 + 0x88380F0C, // 0027 GETMBR R14 R7 K12 + 0x5C3C1000, // 0028 MOVE R15 R8 + 0x7C2C0800, // 0029 CALL R11 4 + 0x7C240400, // 002A CALL R9 2 + 0x7816001C, // 002B JMPF R5 #0049 + 0x4C240000, // 002C LDNIL R9 + 0x20240C09, // 002D NE R9 R6 R9 + 0x78260019, // 002E JMPF R9 #0049 + 0x8824010D, // 002F GETMBR R9 R0 K13 + 0x8C24130E, // 0030 GETMET R9 R9 K14 + 0x5C2C0C00, // 0031 MOVE R11 R6 + 0x7C240400, // 0032 CALL R9 2 + 0x78260014, // 0033 JMPF R9 #0049 + 0x8824010D, // 0034 GETMBR R9 R0 K13 + 0x8C24130F, // 0035 GETMET R9 R9 K15 + 0x5C2C0C00, // 0036 MOVE R11 R6 + 0x7C240400, // 0037 CALL R9 2 + 0x4C280000, // 0038 LDNIL R10 + 0x2028120A, // 0039 NE R10 R9 R10 + 0x782A0008, // 003A JMPF R10 #0044 + 0x88281310, // 003B GETMBR R10 R9 K16 + 0x4C2C0000, // 003C LDNIL R11 + 0x2028140B, // 003D NE R10 R10 R11 + 0x782A0004, // 003E JMPF R10 #0044 + 0x5C280600, // 003F MOVE R10 R3 + 0x5C2C0200, // 0040 MOVE R11 R1 + 0x88301310, // 0041 GETMBR R12 R9 K16 + 0x7C280400, // 0042 CALL R10 2 + 0x70020003, // 0043 JMP #0048 + 0x5C280600, // 0044 MOVE R10 R3 + 0x5C2C0200, // 0045 MOVE R11 R1 + 0x4C300000, // 0046 LDNIL R12 + 0x7C280400, // 0047 CALL R10 2 + 0x70020003, // 0048 JMP #004D + 0x5C240600, // 0049 MOVE R9 R3 + 0x5C280200, // 004A MOVE R10 R1 + 0x4C2C0000, // 004B LDNIL R11 + 0x7C240400, // 004C CALL R9 2 + 0x80000000, // 004D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_unified +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_unified, /* name */ + be_nested_proto( + 10, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 2]) { /* upvals */ + be_local_const_upval(1, 0), + be_local_const_upval(1, 1), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(add), + /* K1 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + }), + be_str_weak(_anonymous_), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x680C0000, // 0000 GETUPV R3 U0 + 0x8C0C0700, // 0001 GETMET R3 R3 K0 + 0x60140018, // 0002 GETGBL R5 G24 + 0x58180001, // 0003 LDCONST R6 K1 + 0x681C0001, // 0004 GETUPV R7 U1 + 0x5C200000, // 0005 MOVE R8 R0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C140A00, // 0008 CALL R5 5 + 0x7C0C0400, // 0009 CALL R3 2 + 0x80000000, // 000A RET 0 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_process_parameters_core), + /* K2 */ be_nested_str_weak(expect_right_paren), + }), + be_str_weak(_process_named_arguments_unified), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x84100000, // 0002 CLOSURE R4 P0 + 0x8C140101, // 0003 GETMET R5 R0 K1 + 0x5C1C0400, // 0004 MOVE R7 R2 + 0x5C200600, // 0005 MOVE R8 R3 + 0x5C240800, // 0006 MOVE R9 R4 + 0x7C140800, // 0007 CALL R5 4 + 0x8C140102, // 0008 GETMET R5 R0 K2 + 0x7C140200, // 0009 CALL R5 1 + 0xA0000000, // 000A CLOSE R0 + 0x80000000, // 000B RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: _validate_value_provider_reference ********************************************************************/ @@ -3213,181 +8816,11 @@ be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_reference, /******************************************************************** -** Solidified function: _validate_animation_factory_creates_animation +** Solidified function: skip_whitespace_including_newlines ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation, /* 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[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(_symbol_entry), - /* K5 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), - }), - be_str_weak(_validate_animation_factory_creates_animation), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0005, // 0006 JMPF R3 #000D - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0xB8120600, // 0008 GETNGBL R4 K3 - 0x88100904, // 0009 GETMBR R4 R4 K4 - 0x88100905, // 000A GETMBR R4 R4 K5 - 0x1C0C0604, // 000B EQ R3 R3 R4 - 0x740E0000, // 000C JMPT R3 #000E - 0x500C0001, // 000D LDBOOL R3 0 1 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _determine_function_return_type -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__determine_function_return_type, /* name */ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ be_nested_proto( 4, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[19]) { /* constants */ - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_nested_str_weak(animation_dsl), - /* K2 */ be_nested_str_weak(_symbol_entry), - /* K3 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), - /* K4 */ be_nested_str_weak(TYPE_ANIMATION), - /* K5 */ be_nested_str_weak(animation), - /* K6 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), - /* K7 */ be_nested_str_weak(TYPE_COLOR), - /* K8 */ be_nested_str_weak(color), - /* K9 */ be_nested_str_weak(TYPE_VALUE_PROVIDER_CONSTRUCTOR), - /* K10 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), - /* K11 */ be_nested_str_weak(value_provider), - /* K12 */ be_nested_str_weak(TYPE_PALETTE_CONSTANT), - /* K13 */ be_nested_str_weak(TYPE_PALETTE), - /* K14 */ be_nested_str_weak(palette), - /* K15 */ be_nested_str_weak(TYPE_MATH_FUNCTION), - /* K16 */ be_nested_str_weak(variable), - /* K17 */ be_nested_str_weak(TYPE_USER_FUNCTION), - /* K18 */ be_nested_str_weak(TYPE_TEMPLATE), - }), - be_str_weak(_determine_function_return_type), - &be_const_str_solidified, - ( &(const binstruction[81]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A004C, // 0002 JMPF R2 #0050 - 0x88080300, // 0003 GETMBR R2 R1 K0 - 0xB80E0200, // 0004 GETNGBL R3 K1 - 0x880C0702, // 0005 GETMBR R3 R3 K2 - 0x880C0703, // 0006 GETMBR R3 R3 K3 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0005, // 0008 JMPT R2 #000F - 0x88080300, // 0009 GETMBR R2 R1 K0 - 0xB80E0200, // 000A GETNGBL R3 K1 - 0x880C0702, // 000B GETMBR R3 R3 K2 - 0x880C0704, // 000C GETMBR R3 R3 K4 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A0001, // 000E JMPF R2 #0011 - 0x80060A00, // 000F RET 1 K5 - 0x7002003E, // 0010 JMP #0050 - 0x88080300, // 0011 GETMBR R2 R1 K0 - 0xB80E0200, // 0012 GETNGBL R3 K1 - 0x880C0702, // 0013 GETMBR R3 R3 K2 - 0x880C0706, // 0014 GETMBR R3 R3 K6 - 0x1C080403, // 0015 EQ R2 R2 R3 - 0x740A0005, // 0016 JMPT R2 #001D - 0x88080300, // 0017 GETMBR R2 R1 K0 - 0xB80E0200, // 0018 GETNGBL R3 K1 - 0x880C0702, // 0019 GETMBR R3 R3 K2 - 0x880C0707, // 001A GETMBR R3 R3 K7 - 0x1C080403, // 001B EQ R2 R2 R3 - 0x780A0001, // 001C JMPF R2 #001F - 0x80061000, // 001D RET 1 K8 - 0x70020030, // 001E JMP #0050 - 0x88080300, // 001F GETMBR R2 R1 K0 - 0xB80E0200, // 0020 GETNGBL R3 K1 - 0x880C0702, // 0021 GETMBR R3 R3 K2 - 0x880C0709, // 0022 GETMBR R3 R3 K9 - 0x1C080403, // 0023 EQ R2 R2 R3 - 0x740A0005, // 0024 JMPT R2 #002B - 0x88080300, // 0025 GETMBR R2 R1 K0 - 0xB80E0200, // 0026 GETNGBL R3 K1 - 0x880C0702, // 0027 GETMBR R3 R3 K2 - 0x880C070A, // 0028 GETMBR R3 R3 K10 - 0x1C080403, // 0029 EQ R2 R2 R3 - 0x780A0001, // 002A JMPF R2 #002D - 0x80061600, // 002B RET 1 K11 - 0x70020022, // 002C JMP #0050 - 0x88080300, // 002D GETMBR R2 R1 K0 - 0xB80E0200, // 002E GETNGBL R3 K1 - 0x880C0702, // 002F GETMBR R3 R3 K2 - 0x880C070C, // 0030 GETMBR R3 R3 K12 - 0x1C080403, // 0031 EQ R2 R2 R3 - 0x740A0005, // 0032 JMPT R2 #0039 - 0x88080300, // 0033 GETMBR R2 R1 K0 - 0xB80E0200, // 0034 GETNGBL R3 K1 - 0x880C0702, // 0035 GETMBR R3 R3 K2 - 0x880C070D, // 0036 GETMBR R3 R3 K13 - 0x1C080403, // 0037 EQ R2 R2 R3 - 0x780A0001, // 0038 JMPF R2 #003B - 0x80061C00, // 0039 RET 1 K14 - 0x70020014, // 003A JMP #0050 - 0x88080300, // 003B GETMBR R2 R1 K0 - 0xB80E0200, // 003C GETNGBL R3 K1 - 0x880C0702, // 003D GETMBR R3 R3 K2 - 0x880C070F, // 003E GETMBR R3 R3 K15 - 0x1C080403, // 003F EQ R2 R2 R3 - 0x780A0001, // 0040 JMPF R2 #0043 - 0x80062000, // 0041 RET 1 K16 - 0x7002000C, // 0042 JMP #0050 - 0x88080300, // 0043 GETMBR R2 R1 K0 - 0xB80E0200, // 0044 GETNGBL R3 K1 - 0x880C0702, // 0045 GETMBR R3 R3 K2 - 0x880C0711, // 0046 GETMBR R3 R3 K17 - 0x1C080403, // 0047 EQ R2 R2 R3 - 0x740A0005, // 0048 JMPT R2 #004F - 0x88080300, // 0049 GETMBR R2 R1 K0 - 0xB80E0200, // 004A GETNGBL R3 K1 - 0x880C0702, // 004B GETMBR R3 R3 K2 - 0x880C0712, // 004C GETMBR R3 R3 K18 - 0x1C080403, // 004D EQ R2 R2 R3 - 0x780A0000, // 004E JMPF R2 #0050 - 0x80062000, // 004F RET 1 K16 - 0x80062000, // 0050 RET 1 K16 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_set -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ - be_nested_proto( - 13, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -3395,71 +8828,45 @@ be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[17]) { /* 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(CONTEXT_VARIABLE), - /* K8 */ be_nested_str_weak(collect_inline_comment), - /* K9 */ be_nested_str_weak(_create_symbol_by_return_type), - /* K10 */ be_nested_str_weak(return_type), - /* K11 */ be_nested_str_weak(instance_for_validation), - /* K12 */ be_nested_str_weak(get_reference), - /* K13 */ be_nested_str_weak(_X25s_), - /* K14 */ be_nested_str_weak(add), - /* K15 */ be_nested_str_weak(var_X20_X25s_X20_X3D_X20_X25s_X25s), - /* K16 */ be_nested_str_weak(expr), + ( &(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(process_set), + be_str_weak(skip_whitespace_including_newlines), &be_const_str_solidified, - ( &(const binstruction[43]) { /* code */ + ( &(const binstruction[26]) { /* 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 - 0x88100107, // 000F GETMBR R4 R0 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x8C0C0108, // 0011 GETMET R3 R0 K8 - 0x7C0C0200, // 0012 CALL R3 1 - 0x8C100109, // 0013 GETMET R4 R0 K9 - 0x5C180200, // 0014 MOVE R6 R1 - 0x881C050A, // 0015 GETMBR R7 R2 K10 - 0x8820050B, // 0016 GETMBR R8 R2 K11 - 0x7C100800, // 0017 CALL R4 4 - 0x4C140000, // 0018 LDNIL R5 - 0x20140805, // 0019 NE R5 R4 R5 - 0x78160002, // 001A JMPF R5 #001E - 0x8C14090C, // 001B GETMET R5 R4 K12 - 0x7C140200, // 001C CALL R5 1 - 0x70020003, // 001D JMP #0022 - 0x60140018, // 001E GETGBL R5 G24 - 0x5818000D, // 001F LDCONST R6 K13 - 0x5C1C0200, // 0020 MOVE R7 R1 - 0x7C140400, // 0021 CALL R5 2 - 0x8C18010E, // 0022 GETMET R6 R0 K14 - 0x60200018, // 0023 GETGBL R8 G24 - 0x5824000F, // 0024 LDCONST R9 K15 - 0x5C280A00, // 0025 MOVE R10 R5 - 0x882C0510, // 0026 GETMBR R11 R2 K16 - 0x5C300600, // 0027 MOVE R12 R3 - 0x7C200800, // 0028 CALL R8 4 - 0x7C180400, // 0029 CALL R6 2 - 0x80000000, // 002A RET 0 + 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 }) ) ); @@ -3467,75 +8874,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ /******************************************************************** -** Solidified function: process_sequence_assignment_fluent +** Solidified function: process_restart_statement_fluent ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_restart_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[11]) { /* 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(CONTEXT_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(expr), - /* 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_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 - 0x88140104, // 0009 GETMBR R5 R0 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 - 0x88240707, // 0011 GETMBR R9 R3 K7 - 0x7C140800, // 0012 CALL R5 4 - 0x8C180108, // 0013 GETMET R6 R0 K8 - 0x60200018, // 0014 GETGBL R8 G24 - 0x58240009, // 0015 LDCONST R9 K9 - 0x8C28010A, // 0016 GETMET R10 R0 K10 - 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_percentage_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ - be_nested_proto( - 7, /* nstack */ + 12, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -3545,71 +8888,144 @@ be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name * 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), + /* 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_percentage_value), + be_str_weak(process_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_berry_code_block +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_berry_code_block, /* 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[18]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* 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(STRING), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20string_X20literal_X20after_X20_X27berry_X27_X20keyword_X2E_X20Use_X20berry_X20_X22_X22_X22_X3Ccode_X3E_X22_X22_X22_X20or_X20berry_X20_X27_X27_X27_X3Ccode_X3E_X27_X27_X27), + /* K8 */ be_nested_str_weak(skip_statement), + /* K9 */ be_nested_str_weak(value), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(add), + /* K12 */ be_nested_str_weak(_X23_X20Berry_X20code_X20block_X25s), + /* K13 */ be_nested_str_weak(string), + /* K14 */ be_nested_str_weak(split), + /* K15 */ be_nested_str_weak(_X0A), + /* K16 */ be_nested_str_weak(stop_iteration), + /* K17 */ be_nested_str_weak(_X23_X20End_X20berry_X20code_X20block), + }), + be_str_weak(process_berry_code_block), &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 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x4C080000, // 0004 LDNIL R2 + 0x1C080202, // 0005 EQ R2 R1 R2 + 0x740A0005, // 0006 JMPT R2 #000D + 0x88080302, // 0007 GETMBR R2 R1 K2 + 0xB80E0600, // 0008 GETNGBL R3 K3 + 0x880C0704, // 0009 GETMBR R3 R3 K4 + 0x880C0705, // 000A GETMBR R3 R3 K5 + 0x20080403, // 000B NE R2 R2 R3 + 0x780A0005, // 000C JMPF R2 #0013 + 0x8C080106, // 000D GETMET R2 R0 K6 + 0x58100007, // 000E LDCONST R4 K7 + 0x7C080400, // 000F CALL R2 2 + 0x8C080108, // 0010 GETMET R2 R0 K8 + 0x7C080200, // 0011 CALL R2 1 + 0x80000400, // 0012 RET 0 + 0x88080309, // 0013 GETMBR R2 R1 K9 + 0x8C0C0100, // 0014 GETMET R3 R0 K0 + 0x7C0C0200, // 0015 CALL R3 1 + 0x8C0C010A, // 0016 GETMET R3 R0 K10 + 0x7C0C0200, // 0017 CALL R3 1 + 0x8C10010B, // 0018 GETMET R4 R0 K11 + 0x60180018, // 0019 GETGBL R6 G24 + 0x581C000C, // 001A LDCONST R7 K12 + 0x5C200600, // 001B MOVE R8 R3 + 0x7C180400, // 001C CALL R6 2 + 0x7C100400, // 001D CALL R4 2 + 0xA4121A00, // 001E IMPORT R4 K13 + 0x8C14090E, // 001F GETMET R5 R4 K14 + 0x5C1C0400, // 0020 MOVE R7 R2 + 0x5820000F, // 0021 LDCONST R8 K15 + 0x7C140600, // 0022 CALL R5 3 + 0x60180010, // 0023 GETGBL R6 G16 + 0x5C1C0A00, // 0024 MOVE R7 R5 + 0x7C180200, // 0025 CALL R6 1 + 0xA8020005, // 0026 EXBLK 0 #002D + 0x5C1C0C00, // 0027 MOVE R7 R6 + 0x7C1C0000, // 0028 CALL R7 0 + 0x8C20010B, // 0029 GETMET R8 R0 K11 + 0x5C280E00, // 002A MOVE R10 R7 + 0x7C200400, // 002B CALL R8 2 + 0x7001FFF9, // 002C JMP #0027 + 0x58180010, // 002D LDCONST R6 K16 + 0xAC180200, // 002E CATCH R6 1 0 + 0xB0080000, // 002F RAISE 2 R0 R0 + 0x8C18010B, // 0030 GETMET R6 R0 K11 + 0x58200011, // 0031 LDCONST R8 K17 + 0x7C180400, // 0032 CALL R6 2 0x80000000, // 0033 RET 0 }) ) @@ -3618,166 +9034,780 @@ be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name * /******************************************************************** -** Solidified function: generate_template_function +** Solidified function: expect_dot ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_template_function, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_dot, /* name */ be_nested_proto( - 17, /* nstack */ - 5, /* argc */ + 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[24]) { /* 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(_symbol_table), - /* K11 */ be_nested_str_weak(strip_initialized), - /* K12 */ be_nested_str_weak(create_variable), - /* K13 */ be_nested_str_weak(transpile_template_body), - /* K14 */ be_nested_str_weak(split), - /* K15 */ be_nested_str_weak(_X0A), - /* K16 */ be_const_int(0), - /* K17 */ be_nested_str_weak(_X20_X20_X25s), - /* K18 */ be_nested_str_weak(errors), - /* K19 */ be_nested_str_weak(error), - /* K20 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), - /* K21 */ be_nested_str_weak(end), - /* K22 */ be_nested_str_weak(), - /* K23 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X27_X25s_X27_X2C_X20_X25s_template_X29), + ( &(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(DOT), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X2E_X27), }), - be_str_weak(generate_template_function), + be_str_weak(expect_dot), &be_const_str_solidified, - ( &(const binstruction[119]) { /* 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 - 0xB8220E00, // 0022 GETNGBL R8 K7 - 0x8C20110A, // 0023 GETMET R8 R8 K10 - 0x7C200200, // 0024 CALL R8 1 - 0x901E1208, // 0025 SETMBR R7 K9 R8 - 0x50200200, // 0026 LDBOOL R8 1 0 - 0x901E1608, // 0027 SETMBR R7 K11 R8 - 0x60200010, // 0028 GETGBL R8 G16 - 0x5C240400, // 0029 MOVE R9 R2 - 0x7C200200, // 002A CALL R8 1 - 0xA8020006, // 002B EXBLK 0 #0033 - 0x5C241000, // 002C MOVE R9 R8 - 0x7C240000, // 002D CALL R9 0 - 0x88280F09, // 002E GETMBR R10 R7 K9 - 0x8C28150C, // 002F GETMET R10 R10 K12 - 0x5C301200, // 0030 MOVE R12 R9 - 0x7C280400, // 0031 CALL R10 2 - 0x7001FFF8, // 0032 JMP #002C - 0x58200003, // 0033 LDCONST R8 K3 - 0xAC200200, // 0034 CATCH R8 1 0 - 0xB0080000, // 0035 RAISE 2 R0 R0 - 0x8C200F0D, // 0036 GETMET R8 R7 K13 - 0x7C200200, // 0037 CALL R8 1 - 0x4C240000, // 0038 LDNIL R9 - 0x20241009, // 0039 NE R9 R8 R9 - 0x78260019, // 003A JMPF R9 #0055 - 0x8C240B0E, // 003B GETMET R9 R5 K14 - 0x5C2C1000, // 003C MOVE R11 R8 - 0x5830000F, // 003D LDCONST R12 K15 - 0x7C240600, // 003E CALL R9 3 - 0x60280010, // 003F GETGBL R10 G16 - 0x5C2C1200, // 0040 MOVE R11 R9 - 0x7C280200, // 0041 CALL R10 1 - 0xA802000D, // 0042 EXBLK 0 #0051 - 0x5C2C1400, // 0043 MOVE R11 R10 - 0x7C2C0000, // 0044 CALL R11 0 - 0x6030000C, // 0045 GETGBL R12 G12 - 0x5C341600, // 0046 MOVE R13 R11 - 0x7C300200, // 0047 CALL R12 1 - 0x24301910, // 0048 GT R12 R12 K16 - 0x78320005, // 0049 JMPF R12 #0050 - 0x8C300104, // 004A GETMET R12 R0 K4 - 0x60380018, // 004B GETGBL R14 G24 - 0x583C0011, // 004C LDCONST R15 K17 - 0x5C401600, // 004D MOVE R16 R11 - 0x7C380400, // 004E CALL R14 2 - 0x7C300400, // 004F CALL R12 2 - 0x7001FFF1, // 0050 JMP #0043 - 0x58280003, // 0051 LDCONST R10 K3 - 0xAC280200, // 0052 CATCH R10 1 0 - 0xB0080000, // 0053 RAISE 2 R0 R0 - 0x70020010, // 0054 JMP #0066 - 0x60240010, // 0055 GETGBL R9 G16 - 0x88280F12, // 0056 GETMBR R10 R7 K18 - 0x7C240200, // 0057 CALL R9 1 - 0xA8020009, // 0058 EXBLK 0 #0063 - 0x5C281200, // 0059 MOVE R10 R9 - 0x7C280000, // 005A CALL R10 0 - 0x8C2C0113, // 005B GETMET R11 R0 K19 - 0x60340018, // 005C GETGBL R13 G24 - 0x58380014, // 005D LDCONST R14 K20 - 0x5C3C0200, // 005E MOVE R15 R1 - 0x5C401400, // 005F MOVE R16 R10 - 0x7C340600, // 0060 CALL R13 3 - 0x7C2C0400, // 0061 CALL R11 2 - 0x7001FFF5, // 0062 JMP #0059 - 0x58240003, // 0063 LDCONST R9 K3 - 0xAC240200, // 0064 CATCH R9 1 0 - 0xB0080000, // 0065 RAISE 2 R0 R0 - 0x8C240104, // 0066 GETMET R9 R0 K4 - 0x582C0015, // 0067 LDCONST R11 K21 - 0x7C240400, // 0068 CALL R9 2 - 0x8C240104, // 0069 GETMET R9 R0 K4 - 0x582C0016, // 006A LDCONST R11 K22 - 0x7C240400, // 006B CALL R9 2 - 0x8C240104, // 006C GETMET R9 R0 K4 - 0x602C0018, // 006D GETGBL R11 G24 - 0x58300017, // 006E LDCONST R12 K23 - 0x5C340200, // 006F MOVE R13 R1 - 0x5C380200, // 0070 MOVE R14 R1 - 0x7C2C0600, // 0071 CALL R11 3 - 0x7C240400, // 0072 CALL R9 2 - 0x8C240104, // 0073 GETMET R9 R0 K4 - 0x582C0016, // 0074 LDCONST R11 K22 - 0x7C240400, // 0075 CALL R9 2 - 0x80000000, // 0076 RET 0 + ( &(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_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* 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[28]) { /* 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(symbol_table), + /* K13 */ be_nested_str_weak(get), + /* K14 */ be_nested_str_weak(_symbol_entry), + /* K15 */ be_nested_str_weak(TYPE_MATH_FUNCTION), + /* K16 */ be_nested_str_weak(process_function_arguments), + /* K17 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K18 */ be_nested_str_weak(get_reference), + /* K19 */ be_nested_str_weak(log), + /* K20 */ be_nested_str_weak(process_log_call), + /* K21 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K22 */ be_nested_str_weak(TYPE_TEMPLATE), + /* K23 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K24 */ be_nested_str_weak(engine), + /* K25 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K26 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K27 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_function_call), + &be_const_str_solidified, + ( &(const binstruction[102]) { /* 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 + 0x8810010C, // 001A GETMBR R4 R0 K12 + 0x8C10090D, // 001B GETMET R4 R4 K13 + 0x5C180600, // 001C MOVE R6 R3 + 0x7C100400, // 001D CALL R4 2 + 0x4C140000, // 001E LDNIL R5 + 0x20140805, // 001F NE R5 R4 R5 + 0x7816000F, // 0020 JMPF R5 #0031 + 0x88140902, // 0021 GETMBR R5 R4 K2 + 0xB81A0600, // 0022 GETNGBL R6 K3 + 0x88180D0E, // 0023 GETMBR R6 R6 K14 + 0x88180D0F, // 0024 GETMBR R6 R6 K15 + 0x1C140A06, // 0025 EQ R5 R5 R6 + 0x78160009, // 0026 JMPF R5 #0031 + 0x8C140110, // 0027 GETMET R5 R0 K16 + 0x501C0000, // 0028 LDBOOL R7 0 0 + 0x7C140400, // 0029 CALL R5 2 + 0x60180018, // 002A GETGBL R6 G24 + 0x581C0011, // 002B LDCONST R7 K17 + 0x8C200912, // 002C GETMET R8 R4 K18 + 0x7C200200, // 002D CALL R8 1 + 0x5C240A00, // 002E MOVE R9 R5 + 0x7C180600, // 002F CALL R6 3 + 0x80040C00, // 0030 RET 1 R6 + 0x1C140713, // 0031 EQ R5 R3 K19 + 0x78160008, // 0032 JMPF R5 #003C + 0x8C140110, // 0033 GETMET R5 R0 K16 + 0x501C0000, // 0034 LDBOOL R7 0 0 + 0x7C140400, // 0035 CALL R5 2 + 0x8C180114, // 0036 GETMET R6 R0 K20 + 0x5C200A00, // 0037 MOVE R8 R5 + 0x88240115, // 0038 GETMBR R9 R0 K21 + 0x58280001, // 0039 LDCONST R10 K1 + 0x7C180800, // 003A CALL R6 4 + 0x80040C00, // 003B RET 1 R6 + 0x8C140110, // 003C GETMET R5 R0 K16 + 0x501C0000, // 003D LDBOOL R7 0 0 + 0x7C140400, // 003E CALL R5 2 + 0x4C180000, // 003F LDNIL R6 + 0x20180806, // 0040 NE R6 R4 R6 + 0x781A0014, // 0041 JMPF R6 #0057 + 0x88180902, // 0042 GETMBR R6 R4 K2 + 0xB81E0600, // 0043 GETNGBL R7 K3 + 0x881C0F0E, // 0044 GETMBR R7 R7 K14 + 0x881C0F16, // 0045 GETMBR R7 R7 K22 + 0x1C180C07, // 0046 EQ R6 R6 R7 + 0x781A000E, // 0047 JMPF R6 #0057 + 0x20180B01, // 0048 NE R6 R5 K1 + 0x781A0004, // 0049 JMPF R6 #004F + 0x60180018, // 004A GETGBL R6 G24 + 0x581C0017, // 004B LDCONST R7 K23 + 0x5C200A00, // 004C MOVE R8 R5 + 0x7C180400, // 004D CALL R6 2 + 0x70020000, // 004E JMP #0050 + 0x58180018, // 004F LDCONST R6 K24 + 0x601C0018, // 0050 GETGBL R7 G24 + 0x58200019, // 0051 LDCONST R8 K25 + 0x5C240600, // 0052 MOVE R9 R3 + 0x5C280C00, // 0053 MOVE R10 R6 + 0x7C1C0600, // 0054 CALL R7 3 + 0x80040E00, // 0055 RET 1 R7 + 0x7002000D, // 0056 JMP #0065 + 0x20180B01, // 0057 NE R6 R5 K1 + 0x781A0006, // 0058 JMPF R6 #0060 + 0x60180018, // 0059 GETGBL R6 G24 + 0x581C001A, // 005A LDCONST R7 K26 + 0x5C200600, // 005B MOVE R8 R3 + 0x5C240A00, // 005C MOVE R9 R5 + 0x7C180600, // 005D CALL R6 3 + 0x80040C00, // 005E RET 1 R6 + 0x70020004, // 005F JMP #0065 + 0x60180018, // 0060 GETGBL R6 G24 + 0x581C001B, // 0061 LDCONST R7 K27 + 0x5C200600, // 0062 MOVE R8 R3 + 0x7C180400, // 0063 CALL R6 2 + 0x80040C00, // 0064 RET 1 R6 + 0x80000000, // 0065 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: error +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_error, /* 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(current), + /* K1 */ be_nested_str_weak(line), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), + /* K4 */ be_nested_str_weak(dsl_compilation_error), + }), + be_str_weak(error), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* 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 + 0x600C0018, // 000A GETGBL R3 G24 + 0x58100003, // 000B LDCONST R4 K3 + 0x5C140400, // 000C MOVE R5 R2 + 0x5C180200, // 000D MOVE R6 R1 + 0x7C0C0600, // 000E CALL R3 3 + 0xB0060803, // 000F RAISE 1 K4 R3 + 0x80000000, // 0010 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: 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: 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: 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: process_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_statement, /* 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[45]) { /* 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(KEYWORD), + /* K11 */ be_nested_str_weak(strip), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), + /* K14 */ be_nested_str_weak(skip_statement), + /* K15 */ be_nested_str_weak(template), + /* K16 */ be_nested_str_weak(process_template), + /* 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(run), + /* K30 */ be_nested_str_weak(process_run), + /* K31 */ be_nested_str_weak(import), + /* K32 */ be_nested_str_weak(process_import), + /* K33 */ be_nested_str_weak(on), + /* K34 */ be_nested_str_weak(process_event_handler), + /* K35 */ be_nested_str_weak(berry), + /* K36 */ be_nested_str_weak(process_berry_code_block), + /* K37 */ be_nested_str_weak(Unknown_X20keyword_X20_X27_X25s_X27_X2E), + /* K38 */ be_nested_str_weak(IDENTIFIER), + /* K39 */ be_nested_str_weak(log), + /* K40 */ be_nested_str_weak(peek), + /* K41 */ be_nested_str_weak(LEFT_PAREN), + /* K42 */ be_nested_str_weak(process_standalone_log), + /* K43 */ be_nested_str_weak(process_property_assignment), + /* K44 */ be_nested_str_weak(Unexpected_X20token_X20_X27_X25s_X27_X2E), + }), + be_str_weak(process_statement), + &be_const_str_solidified, + ( &(const binstruction[163]) { /* 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 + 0x88080301, // 0021 GETMBR R2 R1 K1 + 0xB80E0400, // 0022 GETNGBL R3 K2 + 0x880C0703, // 0023 GETMBR R3 R3 K3 + 0x880C070A, // 0024 GETMBR R3 R3 K10 + 0x1C080403, // 0025 EQ R2 R2 R3 + 0x780A0052, // 0026 JMPF R2 #007A + 0x88080307, // 0027 GETMBR R2 R1 K7 + 0x1C08050B, // 0028 EQ R2 R2 K11 + 0x780A0006, // 0029 JMPF R2 #0031 + 0x8C08010C, // 002A GETMET R2 R0 K12 + 0x5810000D, // 002B LDCONST R4 K13 + 0x7C080400, // 002C CALL R2 2 + 0x8C08010E, // 002D GETMET R2 R0 K14 + 0x7C080200, // 002E CALL R2 1 + 0x80000400, // 002F RET 0 + 0x70020047, // 0030 JMP #0079 + 0x88080307, // 0031 GETMBR R2 R1 K7 + 0x1C08050F, // 0032 EQ R2 R2 K15 + 0x780A0002, // 0033 JMPF R2 #0037 + 0x8C080110, // 0034 GETMET R2 R0 K16 + 0x7C080200, // 0035 CALL R2 1 + 0x70020041, // 0036 JMP #0079 + 0x88080111, // 0037 GETMBR R2 R0 K17 + 0x740A0001, // 0038 JMPT R2 #003B + 0x8C080112, // 0039 GETMET R2 R0 K18 + 0x7C080200, // 003A CALL R2 1 + 0x88080307, // 003B GETMBR R2 R1 K7 + 0x1C080513, // 003C EQ R2 R2 K19 + 0x780A0002, // 003D JMPF R2 #0041 + 0x8C080114, // 003E GETMET R2 R0 K20 + 0x7C080200, // 003F CALL R2 1 + 0x70020037, // 0040 JMP #0079 + 0x88080307, // 0041 GETMBR R2 R1 K7 + 0x1C080515, // 0042 EQ R2 R2 K21 + 0x780A0002, // 0043 JMPF R2 #0047 + 0x8C080116, // 0044 GETMET R2 R0 K22 + 0x7C080200, // 0045 CALL R2 1 + 0x70020031, // 0046 JMP #0079 + 0x88080307, // 0047 GETMBR R2 R1 K7 + 0x1C080517, // 0048 EQ R2 R2 K23 + 0x780A0002, // 0049 JMPF R2 #004D + 0x8C080118, // 004A GETMET R2 R0 K24 + 0x7C080200, // 004B CALL R2 1 + 0x7002002B, // 004C JMP #0079 + 0x88080307, // 004D GETMBR R2 R1 K7 + 0x1C080519, // 004E EQ R2 R2 K25 + 0x780A0002, // 004F JMPF R2 #0053 + 0x8C08011A, // 0050 GETMET R2 R0 K26 + 0x7C080200, // 0051 CALL R2 1 + 0x70020025, // 0052 JMP #0079 + 0x88080307, // 0053 GETMBR R2 R1 K7 + 0x1C08051B, // 0054 EQ R2 R2 K27 + 0x780A0002, // 0055 JMPF R2 #0059 + 0x8C08011C, // 0056 GETMET R2 R0 K28 + 0x7C080200, // 0057 CALL R2 1 + 0x7002001F, // 0058 JMP #0079 + 0x88080307, // 0059 GETMBR R2 R1 K7 + 0x1C08051D, // 005A EQ R2 R2 K29 + 0x780A0002, // 005B JMPF R2 #005F + 0x8C08011E, // 005C GETMET R2 R0 K30 + 0x7C080200, // 005D CALL R2 1 + 0x70020019, // 005E JMP #0079 + 0x88080307, // 005F GETMBR R2 R1 K7 + 0x1C08051F, // 0060 EQ R2 R2 K31 + 0x780A0002, // 0061 JMPF R2 #0065 + 0x8C080120, // 0062 GETMET R2 R0 K32 + 0x7C080200, // 0063 CALL R2 1 + 0x70020013, // 0064 JMP #0079 + 0x88080307, // 0065 GETMBR R2 R1 K7 + 0x1C080521, // 0066 EQ R2 R2 K33 + 0x780A0002, // 0067 JMPF R2 #006B + 0x8C080122, // 0068 GETMET R2 R0 K34 + 0x7C080200, // 0069 CALL R2 1 + 0x7002000D, // 006A JMP #0079 + 0x88080307, // 006B GETMBR R2 R1 K7 + 0x1C080523, // 006C EQ R2 R2 K35 + 0x780A0002, // 006D JMPF R2 #0071 + 0x8C080124, // 006E GETMET R2 R0 K36 + 0x7C080200, // 006F CALL R2 1 + 0x70020007, // 0070 JMP #0079 + 0x8C08010C, // 0071 GETMET R2 R0 K12 + 0x60100018, // 0072 GETGBL R4 G24 + 0x58140025, // 0073 LDCONST R5 K37 + 0x88180307, // 0074 GETMBR R6 R1 K7 + 0x7C100400, // 0075 CALL R4 2 + 0x7C080400, // 0076 CALL R2 2 + 0x8C08010E, // 0077 GETMET R2 R0 K14 + 0x7C080200, // 0078 CALL R2 1 + 0x70020027, // 0079 JMP #00A2 + 0x88080301, // 007A GETMBR R2 R1 K1 + 0xB80E0400, // 007B GETNGBL R3 K2 + 0x880C0703, // 007C GETMBR R3 R3 K3 + 0x880C0726, // 007D GETMBR R3 R3 K38 + 0x1C080403, // 007E EQ R2 R2 R3 + 0x780A0019, // 007F JMPF R2 #009A + 0x88080111, // 0080 GETMBR R2 R0 K17 + 0x740A0001, // 0081 JMPT R2 #0084 + 0x8C080112, // 0082 GETMET R2 R0 K18 + 0x7C080200, // 0083 CALL R2 1 + 0x88080307, // 0084 GETMBR R2 R1 K7 + 0x1C080527, // 0085 EQ R2 R2 K39 + 0x780A000F, // 0086 JMPF R2 #0097 + 0x8C080128, // 0087 GETMET R2 R0 K40 + 0x7C080200, // 0088 CALL R2 1 + 0x4C0C0000, // 0089 LDNIL R3 + 0x20080403, // 008A NE R2 R2 R3 + 0x780A000A, // 008B JMPF R2 #0097 + 0x8C080128, // 008C GETMET R2 R0 K40 + 0x7C080200, // 008D CALL R2 1 + 0x88080501, // 008E GETMBR R2 R2 K1 + 0xB80E0400, // 008F GETNGBL R3 K2 + 0x880C0703, // 0090 GETMBR R3 R3 K3 + 0x880C0729, // 0091 GETMBR R3 R3 K41 + 0x1C080403, // 0092 EQ R2 R2 R3 + 0x780A0002, // 0093 JMPF R2 #0097 + 0x8C08012A, // 0094 GETMET R2 R0 K42 + 0x7C080200, // 0095 CALL R2 1 + 0x70020001, // 0096 JMP #0099 + 0x8C08012B, // 0097 GETMET R2 R0 K43 + 0x7C080200, // 0098 CALL R2 1 + 0x70020007, // 0099 JMP #00A2 + 0x8C08010C, // 009A GETMET R2 R0 K12 + 0x60100018, // 009B GETGBL R4 G24 + 0x5814002C, // 009C LDCONST R5 K44 + 0x88180307, // 009D GETMBR R6 R1 K7 + 0x7C100400, // 009E CALL R4 2 + 0x7C080400, // 009F CALL R2 2 + 0x8C08010E, // 00A0 GETMET R2 R0 K14 + 0x7C080200, // 00A1 CALL R2 1 + 0x80000000, // 00A2 RET 0 }) ) ); @@ -4011,230 +10041,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* nam /******************************************************************** -** Solidified function: transform_expression_for_closure +** Solidified function: process_repeat_statement_fluent ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transform_expression_for_closure, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent, /* name */ be_nested_proto( - 16, /* 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(string), - /* K1 */ be_nested_str_weak(_X2B_X2B_X2B_X20transform_expression_for_closure_X20_X27_X25s_X27), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(find), - /* K4 */ be_nested_str_weak(animation_X2E), - /* K5 */ be_nested_str_weak(is_identifier_char), - /* K6 */ be_nested_str_weak(_), - /* K7 */ be_const_int(1), - /* K8 */ be_nested_str_weak(_X28engine_X29), - /* K9 */ be_nested_str_weak(animation_X2Eresolve_X28), - /* K10 */ be_nested_str_weak(animation_X2Eresolve_X28_X25s_X29), - /* K11 */ be_nested_str_weak(), - /* K12 */ be_const_int(2147483647), - /* K13 */ be_nested_str_weak(_X3D_X3D_X3D_X20transform_expression_for_closure_X20_X27_X25s_X27), - }), - be_str_weak(transform_expression_for_closure), - &be_const_str_solidified, - ( &(const binstruction[181]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x600C0001, // 0001 GETGBL R3 G1 - 0x60100018, // 0002 GETGBL R4 G24 - 0x58140001, // 0003 LDCONST R5 K1 - 0x5C180200, // 0004 MOVE R6 R1 - 0x7C100400, // 0005 CALL R4 2 - 0x7C0C0200, // 0006 CALL R3 1 - 0x5C0C0200, // 0007 MOVE R3 R1 - 0x58100002, // 0008 LDCONST R4 K2 - 0x58140002, // 0009 LDCONST R5 K2 - 0x50180200, // 000A LDBOOL R6 1 0 - 0x781A002D, // 000B JMPF R6 #003A - 0x8C180503, // 000C GETMET R6 R2 K3 - 0x5C200600, // 000D MOVE R8 R3 - 0x58240004, // 000E LDCONST R9 K4 - 0x5C280A00, // 000F MOVE R10 R5 - 0x7C180800, // 0010 CALL R6 4 - 0x141C0D02, // 0011 LT R7 R6 K2 - 0x781E0000, // 0012 JMPF R7 #0014 - 0x70020025, // 0013 JMP #003A - 0x541E0009, // 0014 LDINT R7 10 - 0x001C0C07, // 0015 ADD R7 R6 R7 - 0x5C200E00, // 0016 MOVE R8 R7 - 0x6024000C, // 0017 GETGBL R9 G12 - 0x5C280600, // 0018 MOVE R10 R3 - 0x7C240200, // 0019 CALL R9 1 - 0x14241009, // 001A LT R9 R8 R9 - 0x78260008, // 001B JMPF R9 #0025 - 0x8C240105, // 001C GETMET R9 R0 K5 - 0x942C0608, // 001D GETIDX R11 R3 R8 - 0x7C240400, // 001E CALL R9 2 - 0x74260002, // 001F JMPT R9 #0023 - 0x94240608, // 0020 GETIDX R9 R3 R8 - 0x1C241306, // 0021 EQ R9 R9 K6 - 0x78260001, // 0022 JMPF R9 #0025 - 0x00201107, // 0023 ADD R8 R8 K7 - 0x7001FFF1, // 0024 JMP #0017 - 0x24241007, // 0025 GT R9 R8 R7 - 0x7826000F, // 0026 JMPF R9 #0037 - 0x54260007, // 0027 LDINT R9 8 - 0x00241009, // 0028 ADD R9 R8 R9 - 0x6028000C, // 0029 GETGBL R10 G12 - 0x5C2C0600, // 002A MOVE R11 R3 - 0x7C280200, // 002B CALL R10 1 - 0x1424120A, // 002C LT R9 R9 R10 - 0x78260008, // 002D JMPF R9 #0037 - 0x54260006, // 002E LDINT R9 7 - 0x00241009, // 002F ADD R9 R8 R9 - 0x40241009, // 0030 CONNECT R9 R8 R9 - 0x94240609, // 0031 GETIDX R9 R3 R9 - 0x1C241308, // 0032 EQ R9 R9 K8 - 0x78260002, // 0033 JMPF R9 #0037 - 0x04241107, // 0034 SUB R9 R8 K7 - 0x40240E09, // 0035 CONNECT R9 R7 R9 - 0x94240609, // 0036 GETIDX R9 R3 R9 - 0x00240D07, // 0037 ADD R9 R6 K7 - 0x5C141200, // 0038 MOVE R5 R9 - 0x7001FFCF, // 0039 JMP #000A - 0x58100002, // 003A LDCONST R4 K2 - 0x6018000C, // 003B GETGBL R6 G12 - 0x5C1C0600, // 003C MOVE R7 R3 - 0x7C180200, // 003D CALL R6 1 - 0x14180806, // 003E LT R6 R4 R6 - 0x781A006D, // 003F JMPF R6 #00AE - 0x8C180503, // 0040 GETMET R6 R2 K3 - 0x5C200600, // 0041 MOVE R8 R3 - 0x58240006, // 0042 LDCONST R9 K6 - 0x5C280800, // 0043 MOVE R10 R4 - 0x7C180800, // 0044 CALL R6 4 - 0x141C0D02, // 0045 LT R7 R6 K2 - 0x781E0000, // 0046 JMPF R7 #0048 - 0x70020065, // 0047 JMP #00AE - 0x5C1C0C00, // 0048 MOVE R7 R6 - 0x24200F02, // 0049 GT R8 R7 K2 - 0x78220006, // 004A JMPF R8 #0052 - 0x8C200105, // 004B GETMET R8 R0 K5 - 0x04280F07, // 004C SUB R10 R7 K7 - 0x9428060A, // 004D GETIDX R10 R3 R10 - 0x7C200400, // 004E CALL R8 2 - 0x78220001, // 004F JMPF R8 #0052 - 0x041C0F07, // 0050 SUB R7 R7 K7 - 0x7001FFF6, // 0051 JMP #0049 - 0x50200200, // 0052 LDBOOL R8 1 0 - 0x54260011, // 0053 LDINT R9 18 - 0x28240E09, // 0054 GE R9 R7 R9 - 0x78260010, // 0055 JMPF R9 #0067 - 0x54260011, // 0056 LDINT R9 18 - 0x28240E09, // 0057 GE R9 R7 R9 - 0x78260002, // 0058 JMPF R9 #005C - 0x54260011, // 0059 LDINT R9 18 - 0x04240E09, // 005A SUB R9 R7 R9 - 0x70020000, // 005B JMP #005D - 0x58240002, // 005C LDCONST R9 K2 - 0x04280F07, // 005D SUB R10 R7 K7 - 0x4028120A, // 005E CONNECT R10 R9 R10 - 0x9428060A, // 005F GETIDX R10 R3 R10 - 0x8C2C0503, // 0060 GETMET R11 R2 K3 - 0x5C341400, // 0061 MOVE R13 R10 - 0x58380009, // 0062 LDCONST R14 K9 - 0x7C2C0600, // 0063 CALL R11 3 - 0x282C1702, // 0064 GE R11 R11 K2 - 0x782E0000, // 0065 JMPF R11 #0067 - 0x50200000, // 0066 LDBOOL R8 0 0 - 0x78220013, // 0067 JMPF R8 #007C - 0x54260009, // 0068 LDINT R9 10 - 0x28240E09, // 0069 GE R9 R7 R9 - 0x78260010, // 006A JMPF R9 #007C - 0x54260009, // 006B LDINT R9 10 - 0x28240E09, // 006C GE R9 R7 R9 - 0x78260002, // 006D JMPF R9 #0071 - 0x54260009, // 006E LDINT R9 10 - 0x04240E09, // 006F SUB R9 R7 R9 - 0x70020000, // 0070 JMP #0072 - 0x58240002, // 0071 LDCONST R9 K2 - 0x04280F07, // 0072 SUB R10 R7 K7 - 0x4028120A, // 0073 CONNECT R10 R9 R10 - 0x9428060A, // 0074 GETIDX R10 R3 R10 - 0x8C2C0503, // 0075 GETMET R11 R2 K3 - 0x5C341400, // 0076 MOVE R13 R10 - 0x58380004, // 0077 LDCONST R14 K4 - 0x7C2C0600, // 0078 CALL R11 3 - 0x282C1702, // 0079 GE R11 R11 K2 - 0x782E0000, // 007A JMPF R11 #007C - 0x50200000, // 007B LDBOOL R8 0 0 - 0x7822002D, // 007C JMPF R8 #00AB - 0x14240E06, // 007D LT R9 R7 R6 - 0x7826002B, // 007E JMPF R9 #00AB - 0x40240E06, // 007F CONNECT R9 R7 R6 - 0x94240609, // 0080 GETIDX R9 R3 R9 - 0x00280D07, // 0081 ADD R10 R6 K7 - 0x602C000C, // 0082 GETGBL R11 G12 - 0x5C300600, // 0083 MOVE R12 R3 - 0x7C2C0200, // 0084 CALL R11 1 - 0x282C140B, // 0085 GE R11 R10 R11 - 0x742E0003, // 0086 JMPT R11 #008B - 0x8C2C0105, // 0087 GETMET R11 R0 K5 - 0x9434060A, // 0088 GETIDX R13 R3 R10 - 0x7C2C0400, // 0089 CALL R11 2 - 0x742E001C, // 008A JMPT R11 #00A8 - 0x602C0018, // 008B GETGBL R11 G24 - 0x5830000A, // 008C LDCONST R12 K10 - 0x5C341200, // 008D MOVE R13 R9 - 0x7C2C0400, // 008E CALL R11 2 - 0x24300F02, // 008F GT R12 R7 K2 - 0x78320003, // 0090 JMPF R12 #0095 - 0x04300F07, // 0091 SUB R12 R7 K7 - 0x4032040C, // 0092 CONNECT R12 K2 R12 - 0x9430060C, // 0093 GETIDX R12 R3 R12 - 0x70020000, // 0094 JMP #0096 - 0x5830000B, // 0095 LDCONST R12 K11 - 0x6034000C, // 0096 GETGBL R13 G12 - 0x5C380600, // 0097 MOVE R14 R3 - 0x7C340200, // 0098 CALL R13 1 - 0x1434140D, // 0099 LT R13 R10 R13 - 0x78360002, // 009A JMPF R13 #009E - 0x4034150C, // 009B CONNECT R13 R10 K12 - 0x9434060D, // 009C GETIDX R13 R3 R13 - 0x70020000, // 009D JMP #009F - 0x5834000B, // 009E LDCONST R13 K11 - 0x0038180B, // 009F ADD R14 R12 R11 - 0x00381C0D, // 00A0 ADD R14 R14 R13 - 0x5C0C1C00, // 00A1 MOVE R3 R14 - 0x6038000C, // 00A2 GETGBL R14 G12 - 0x5C3C1600, // 00A3 MOVE R15 R11 - 0x7C380200, // 00A4 CALL R14 1 - 0x00380E0E, // 00A5 ADD R14 R7 R14 - 0x5C101C00, // 00A6 MOVE R4 R14 - 0x70020001, // 00A7 JMP #00AA - 0x002C0D07, // 00A8 ADD R11 R6 K7 - 0x5C101600, // 00A9 MOVE R4 R11 - 0x70020001, // 00AA JMP #00AD - 0x00240D07, // 00AB ADD R9 R6 K7 - 0x5C101200, // 00AC MOVE R4 R9 - 0x7001FF8C, // 00AD JMP #003B - 0x60180001, // 00AE GETGBL R6 G1 - 0x601C0018, // 00AF GETGBL R7 G24 - 0x5820000D, // 00B0 LDCONST R8 K13 - 0x5C240600, // 00B1 MOVE R9 R3 - 0x7C1C0400, // 00B2 CALL R7 2 - 0x7C180200, // 00B3 CALL R6 1 - 0x80040600, // 00B4 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ - be_nested_proto( - 4, /* nstack */ + 9, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -4242,325 +10053,100 @@ 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[26]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(1), + /* 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(KEYWORD), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(forever), + /* K9 */ be_nested_str_weak(_X2D1), + /* K10 */ be_nested_str_weak(process_value), + /* K11 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), + /* K12 */ be_nested_str_weak(expect_keyword), + /* K13 */ be_nested_str_weak(times), + /* K14 */ be_nested_str_weak(expr), + /* K15 */ be_nested_str_weak(expect_left_brace), + /* K16 */ be_nested_str_weak(add), + /* K17 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), + /* K18 */ be_nested_str_weak(get_indent), + /* K19 */ be_nested_str_weak(indent_level), + /* K20 */ be_const_int(1), + /* K21 */ be_nested_str_weak(at_end), + /* K22 */ be_nested_str_weak(check_right_brace), + /* K23 */ be_nested_str_weak(process_sequence_statement), + /* K24 */ be_nested_str_weak(expect_right_brace), + /* K25 */ be_nested_str_weak(_X25s_X29), }), - be_str_weak(check_right_paren), + be_str_weak(process_repeat_statement_fluent), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ + ( &(const binstruction[63]) { /* 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: 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: process_sequence_assignment_generic -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, /* name */ - be_nested_proto( - 17, /* 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(get), - /* K10 */ be_nested_str_weak(instance), - /* K11 */ be_nested_str_weak(_validate_single_parameter), - /* K12 */ be_nested_str_weak(_symbol_entry), - /* K13 */ be_nested_str_weak(TYPE_SEQUENCE), - /* K14 */ be_nested_str_weak(error), - /* K15 */ 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), - /* K16 */ be_nested_str_weak(expect_assign), - /* K17 */ be_nested_str_weak(process_value), - /* K18 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K19 */ be_nested_str_weak(collect_inline_comment), - /* K20 */ be_nested_str_weak(get_reference), - /* K21 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s_X2E_X25s_X20_X3D_X20_X25s_X20end), - /* K22 */ be_nested_str_weak(expr), - /* 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[96]) { /* 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 - 0x7812004F, // 0006 JMPF R4 #0057 - 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 - 0x78120047, // 000E JMPF R4 #0057 - 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 - 0x78160023, // 0017 JMPF R5 #003C - 0x88140107, // 0018 GETMBR R5 R0 K7 - 0x8C140B09, // 0019 GETMET R5 R5 K9 - 0x5C1C0600, // 001A MOVE R7 R3 - 0x7C140400, // 001B CALL R5 2 - 0x4C180000, // 001C LDNIL R6 - 0x20180A06, // 001D NE R6 R5 R6 - 0x781A000C, // 001E JMPF R6 #002C - 0x88180B0A, // 001F GETMBR R6 R5 K10 - 0x4C1C0000, // 0020 LDNIL R7 - 0x20180C07, // 0021 NE R6 R6 R7 - 0x781A0008, // 0022 JMPF R6 #002C - 0x60180005, // 0023 GETGBL R6 G5 - 0x881C0B0A, // 0024 GETMBR R7 R5 K10 - 0x7C180200, // 0025 CALL R6 1 - 0x8C1C010B, // 0026 GETMET R7 R0 K11 - 0x5C240C00, // 0027 MOVE R9 R6 - 0x5C280800, // 0028 MOVE R10 R4 - 0x882C0B0A, // 0029 GETMBR R11 R5 K10 - 0x7C1C0800, // 002A CALL R7 4 - 0x7002000F, // 002B JMP #003C - 0x4C180000, // 002C LDNIL R6 - 0x20180A06, // 002D NE R6 R5 R6 - 0x781A000C, // 002E JMPF R6 #003C - 0x88180B02, // 002F GETMBR R6 R5 K2 - 0xB81E0600, // 0030 GETNGBL R7 K3 - 0x881C0F0C, // 0031 GETMBR R7 R7 K12 - 0x881C0F0D, // 0032 GETMBR R7 R7 K13 - 0x1C180C07, // 0033 EQ R6 R6 R7 - 0x781A0006, // 0034 JMPF R6 #003C - 0x8C18010E, // 0035 GETMET R6 R0 K14 - 0x60200018, // 0036 GETGBL R8 G24 - 0x5824000F, // 0037 LDCONST R9 K15 - 0x5C280600, // 0038 MOVE R10 R3 - 0x7C200400, // 0039 CALL R8 2 - 0x7C180400, // 003A CALL R6 2 - 0x80000C00, // 003B RET 0 - 0x8C140110, // 003C GETMET R5 R0 K16 - 0x7C140200, // 003D CALL R5 1 - 0x8C140111, // 003E GETMET R5 R0 K17 - 0x881C0112, // 003F GETMBR R7 R0 K18 - 0x7C140400, // 0040 CALL R5 2 - 0x8C180113, // 0041 GETMET R6 R0 K19 - 0x7C180200, // 0042 CALL R6 1 - 0x881C0107, // 0043 GETMBR R7 R0 K7 - 0x8C1C0F14, // 0044 GETMET R7 R7 K20 - 0x5C240600, // 0045 MOVE R9 R3 - 0x7C1C0400, // 0046 CALL R7 2 - 0x60200018, // 0047 GETGBL R8 G24 - 0x58240015, // 0048 LDCONST R9 K21 - 0x5C280E00, // 0049 MOVE R10 R7 - 0x5C2C0800, // 004A MOVE R11 R4 - 0x88300B16, // 004B GETMBR R12 R5 K22 - 0x7C200800, // 004C CALL R8 4 - 0x8C240117, // 004D GETMET R9 R0 K23 - 0x602C0018, // 004E GETGBL R11 G24 - 0x58300018, // 004F LDCONST R12 K24 - 0x5C340200, // 0050 MOVE R13 R1 - 0x5C380400, // 0051 MOVE R14 R2 - 0x5C3C1000, // 0052 MOVE R15 R8 - 0x5C400C00, // 0053 MOVE R16 R6 - 0x7C2C0A00, // 0054 CALL R11 5 - 0x7C240400, // 0055 CALL R9 2 - 0x70020007, // 0056 JMP #005F - 0x8C10010E, // 0057 GETMET R4 R0 K14 - 0x60180018, // 0058 GETGBL R6 G24 - 0x581C0019, // 0059 LDCONST R7 K25 - 0x5C200600, // 005A MOVE R8 R3 - 0x7C180400, // 005B CALL R6 2 - 0x7C100400, // 005C CALL R4 2 - 0x8C10011A, // 005D GETMET R4 R0 K26 - 0x7C100200, // 005E CALL R4 1 - 0x80000000, // 005F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_named_arguments_for_variable -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable, /* 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[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_process_named_arguments_unified), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(CONTEXT_VARIABLE), - }), - be_str_weak(process_named_arguments_for_variable), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x58140001, // 0002 LDCONST R5 K1 - 0x88180102, // 0003 GETMBR R6 R0 K2 - 0x7C080800, // 0004 CALL R2 4 - 0x80000000, // 0005 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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 + 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 + 0x780E000C, // 0007 JMPF R3 #0015 + 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 + 0x780E0006, // 000D JMPF R3 #0015 + 0x880C0507, // 000E GETMBR R3 R2 K7 + 0x1C0C0708, // 000F EQ R3 R3 K8 + 0x780E0003, // 0010 JMPF R3 #0015 + 0x8C0C0100, // 0011 GETMET R3 R0 K0 + 0x7C0C0200, // 0012 CALL R3 1 + 0x58040009, // 0013 LDCONST R1 K9 + 0x70020006, // 0014 JMP #001C + 0x8C0C010A, // 0015 GETMET R3 R0 K10 + 0x8814010B, // 0016 GETMBR R5 R0 K11 + 0x7C0C0400, // 0017 CALL R3 2 + 0x8C10010C, // 0018 GETMET R4 R0 K12 + 0x5818000D, // 0019 LDCONST R6 K13 + 0x7C100400, // 001A CALL R4 2 + 0x8804070E, // 001B GETMBR R1 R3 K14 + 0x8C0C010F, // 001C GETMET R3 R0 K15 + 0x7C0C0200, // 001D CALL R3 1 + 0x8C0C0110, // 001E GETMET R3 R0 K16 + 0x60140018, // 001F GETGBL R5 G24 + 0x58180011, // 0020 LDCONST R6 K17 + 0x8C1C0112, // 0021 GETMET R7 R0 K18 + 0x7C1C0200, // 0022 CALL R7 1 + 0x5C200200, // 0023 MOVE R8 R1 + 0x7C140600, // 0024 CALL R5 3 + 0x7C0C0400, // 0025 CALL R3 2 + 0x880C0113, // 0026 GETMBR R3 R0 K19 + 0x000C0714, // 0027 ADD R3 R3 K20 + 0x90022603, // 0028 SETMBR R0 K19 R3 + 0x8C0C0115, // 0029 GETMET R3 R0 K21 + 0x7C0C0200, // 002A CALL R3 1 + 0x740E0005, // 002B JMPT R3 #0032 + 0x8C0C0116, // 002C GETMET R3 R0 K22 + 0x7C0C0200, // 002D CALL R3 1 + 0x740E0002, // 002E JMPT R3 #0032 + 0x8C0C0117, // 002F GETMET R3 R0 K23 + 0x7C0C0200, // 0030 CALL R3 1 + 0x7001FFF6, // 0031 JMP #0029 + 0x8C0C0118, // 0032 GETMET R3 R0 K24 + 0x7C0C0200, // 0033 CALL R3 1 + 0x8C0C0110, // 0034 GETMET R3 R0 K16 + 0x60140018, // 0035 GETGBL R5 G24 + 0x58180019, // 0036 LDCONST R6 K25 + 0x8C1C0112, // 0037 GETMET R7 R0 K18 + 0x7C1C0200, // 0038 CALL R7 1 + 0x7C140400, // 0039 CALL R5 2 + 0x7C0C0400, // 003A CALL R3 2 + 0x880C0113, // 003B GETMBR R3 R0 K19 + 0x040C0714, // 003C SUB R3 R3 K20 + 0x90022603, // 003D SETMBR R0 K19 R3 + 0x80000000, // 003E RET 0 }) ) ); @@ -4815,11 +10401,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* na /******************************************************************** -** Solidified function: join_output +** Solidified function: current ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_join_output, /* name */ +be_local_closure(class_SimpleDSLTranspiler_current, /* name */ be_nested_proto( - 5, /* nstack */ + 4, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -4827,116 +10413,25 @@ be_local_closure(class_SimpleDSLTranspiler_join_output, /* name */ 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), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_nested_str_weak(tokens), }), - 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: 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: _validate_object_reference -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* 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(validate_symbol_reference), - }), - be_str_weak(_validate_object_reference), + be_str_weak(current), &be_const_str_solidified, ( &(const binstruction[12]) { /* code */ - 0xA8020005, // 0000 EXBLK 0 #0007 - 0x8C0C0100, // 0001 GETMET R3 R0 K0 - 0x5C140200, // 0002 MOVE R5 R1 - 0x5C180400, // 0003 MOVE R6 R2 - 0x7C0C0600, // 0004 CALL R3 3 - 0xA8040001, // 0005 EXBLK 1 1 - 0x70020003, // 0006 JMP #000B - 0xAC0C0002, // 0007 CATCH R3 0 2 - 0x70020000, // 0008 JMP #000A + 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 - 0xB0080000, // 000A RAISE 2 R0 R0 - 0x80000000, // 000B RET 0 + 0x4C040000, // 000A LDNIL R1 + 0x80040200, // 000B RET 1 R1 }) ) ); @@ -4944,9 +10439,9 @@ be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name /******************************************************************** -** Solidified function: process_standalone_log +** Solidified function: process_import ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ be_nested_proto( 9, /* nstack */ 1, /* argc */ @@ -4956,64 +10451,30 @@ be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ + ( &(const bvalue[ 5]) { /* 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), + /* 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_standalone_log), + be_str_weak(process_import), &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ + ( &(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 - 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 + 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 }) ) ); @@ -5021,9 +10482,228 @@ be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ /******************************************************************** -** Solidified function: process_event_handler +** Solidified function: expect_keyword ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ +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: generate_default_strip_initialization +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization, /* 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(strip_initialized), + /* K1 */ be_nested_str_weak(add), + /* K2 */ be_nested_str_weak(_X23_X20Auto_X2Dgenerated_X20strip_X20initialization_X20_X28using_X20Tasmota_X20configuration_X29), + /* K3 */ be_nested_str_weak(var_X20engine_X20_X3D_X20animation_X2Einit_strip_X28_X29), + /* K4 */ be_nested_str_weak(), + }), + be_str_weak(generate_default_strip_initialization), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x78060000, // 0001 JMPF R1 #0003 + 0x80000200, // 0002 RET 0 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x580C0002, // 0004 LDCONST R3 K2 + 0x7C040400, // 0005 CALL R1 2 + 0x8C040101, // 0006 GETMET R1 R0 K1 + 0x580C0003, // 0007 LDCONST R3 K3 + 0x7C040400, // 0008 CALL R1 2 + 0x8C040101, // 0009 GETMET R1 R0 K1 + 0x580C0004, // 000A LDCONST R3 K4 + 0x7C040400, // 000B CALL R1 2 + 0x50040200, // 000C LDBOOL R1 1 0 + 0x90020001, // 000D SETMBR R0 K0 R1 + 0x80000000, // 000E 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: init +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_init, /* name */ + be_nested_proto( + 4, /* 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(tokens), + /* K1 */ be_nested_str_weak(pos), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(output), + /* K4 */ be_nested_str_weak(warnings), + /* K5 */ be_nested_str_weak(run_statements), + /* K6 */ be_nested_str_weak(strip_initialized), + /* K7 */ be_nested_str_weak(symbol_table), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(_symbol_table), + /* K10 */ be_nested_str_weak(indent_level), + /* K11 */ be_nested_str_weak(has_template_calls), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[28]) { /* 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 + 0x50080000, // 0012 LDBOOL R2 0 0 + 0x90020C02, // 0013 SETMBR R0 K6 R2 + 0xB80A1000, // 0014 GETNGBL R2 K8 + 0x8C080509, // 0015 GETMET R2 R2 K9 + 0x7C080200, // 0016 CALL R2 1 + 0x90020E02, // 0017 SETMBR R0 K7 R2 + 0x90021502, // 0018 SETMBR R0 K10 K2 + 0x50080000, // 0019 LDBOOL R2 0 0 + 0x90021602, // 001A SETMBR R0 K11 R2 + 0x80000000, // 001B 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 */ @@ -5033,139 +10713,119 @@ be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[27]) { /* constants */ + ( &(const bvalue[23]) { /* constants */ /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(), /* 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), + /* 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_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), + /* 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(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(CONTEXT_ANIMATION), - /* K22 */ be_nested_str_weak(_X20_X20var_X20temp_anim_X20_X3D_X20_X25s), - /* K23 */ be_nested_str_weak(expr), - /* K24 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28temp_anim_X29), - /* K25 */ be_nested_str_weak(end), - /* K26 */ be_nested_str_weak(animation_X2Eregister_event_handler_X28_X22_X25s_X22_X2C_X20_X25s_X2C_X200_X2C_X20nil_X2C_X20_X25s_X29), + /* 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_event_handler), + be_str_weak(process_play_statement_fluent), &be_const_str_solidified, - ( &(const binstruction[101]) { /* code */ + ( &(const binstruction[85]) { /* 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 - 0x88200115, // 004C GETMBR R8 R0 K21 - 0x7C180400, // 004D CALL R6 2 - 0x8C1C010D, // 004E GETMET R7 R0 K13 - 0x60240018, // 004F GETGBL R9 G24 - 0x58280016, // 0050 LDCONST R10 K22 - 0x882C0D17, // 0051 GETMBR R11 R6 K23 - 0x7C240400, // 0052 CALL R9 2 - 0x7C1C0400, // 0053 CALL R7 2 - 0x8C1C010D, // 0054 GETMET R7 R0 K13 - 0x60240018, // 0055 GETGBL R9 G24 - 0x58280018, // 0056 LDCONST R10 K24 - 0x7C240200, // 0057 CALL R9 1 - 0x7C1C0400, // 0058 CALL R7 2 - 0x8C18010D, // 0059 GETMET R6 R0 K13 - 0x58200019, // 005A LDCONST R8 K25 - 0x7C180400, // 005B CALL R6 2 - 0x8C18010D, // 005C GETMET R6 R0 K13 - 0x60200018, // 005D GETGBL R8 G24 - 0x5824001A, // 005E LDCONST R9 K26 - 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 + 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 + 0x78120011, // 0035 JMPF R4 #0048 + 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 + 0x78120009, // 003D JMPF R4 #0048 + 0x8C100102, // 003E GETMET R4 R0 K2 + 0x7C100200, // 003F CALL R4 1 + 0x88100910, // 0040 GETMBR R4 R4 K16 + 0x1C100911, // 0041 EQ R4 R4 K17 + 0x78120004, // 0042 JMPF R4 #0048 + 0x8C100100, // 0043 GETMET R4 R0 K0 + 0x7C100200, // 0044 CALL R4 1 + 0x8C100112, // 0045 GETMET R4 R0 K18 + 0x7C100200, // 0046 CALL R4 1 + 0x5C0C0800, // 0047 MOVE R3 R4 + 0x8C100113, // 0048 GETMET R4 R0 K19 + 0x7C100200, // 0049 CALL R4 1 + 0x8C140114, // 004A GETMET R5 R0 K20 + 0x601C0018, // 004B GETGBL R7 G24 + 0x58200015, // 004C LDCONST R8 K21 + 0x8C240116, // 004D GETMET R9 R0 K22 + 0x7C240200, // 004E CALL R9 1 + 0x5C280200, // 004F MOVE R10 R1 + 0x5C2C0600, // 0050 MOVE R11 R3 + 0x5C300800, // 0051 MOVE R12 R4 + 0x7C1C0A00, // 0052 CALL R7 5 + 0x7C140400, // 0053 CALL R5 2 + 0x80000000, // 0054 RET 0 }) ) ); @@ -5173,149 +10833,50 @@ be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ /******************************************************************** -** Solidified function: _determine_symbol_return_type +** Solidified function: process_run ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__determine_symbol_return_type, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ be_nested_proto( - 5, /* nstack */ - 2, /* argc */ + 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[25]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(is_color_name), - /* K2 */ be_nested_str_weak(color), - /* K3 */ be_nested_str_weak(symbol_table), - /* K4 */ be_nested_str_weak(get), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(_symbol_entry), - /* K7 */ be_nested_str_weak(TYPE_ANIMATION), - /* K8 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), - /* K9 */ be_nested_str_weak(animation), - /* K10 */ be_nested_str_weak(TYPE_COLOR), - /* K11 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), - /* K12 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), - /* K13 */ be_nested_str_weak(TYPE_VALUE_PROVIDER_CONSTRUCTOR), - /* K14 */ be_nested_str_weak(value_provider), - /* K15 */ be_nested_str_weak(TYPE_PALETTE), - /* K16 */ be_nested_str_weak(TYPE_PALETTE_CONSTANT), - /* K17 */ be_nested_str_weak(palette), - /* K18 */ be_nested_str_weak(TYPE_CONSTANT), - /* K19 */ be_nested_str_weak(variable), - /* K20 */ be_nested_str_weak(TYPE_VARIABLE), - /* K21 */ be_nested_str_weak(TYPE_SEQUENCE), - /* K22 */ be_nested_str_weak(sequence), - /* K23 */ be_nested_str_weak(TYPE_TEMPLATE), - /* K24 */ be_nested_str_weak(template), + ( &(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(_determine_symbol_return_type), + be_str_weak(process_run), &be_const_str_solidified, - ( &(const binstruction[101]) { /* code */ - 0xB80A0000, // 0000 GETNGBL R2 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x780A0000, // 0004 JMPF R2 #0006 - 0x80060400, // 0005 RET 1 K2 - 0x88080103, // 0006 GETMBR R2 R0 K3 - 0x8C080504, // 0007 GETMET R2 R2 K4 - 0x5C100200, // 0008 MOVE R4 R1 - 0x7C080400, // 0009 CALL R2 2 - 0x4C0C0000, // 000A LDNIL R3 - 0x200C0403, // 000B NE R3 R2 R3 - 0x780E0056, // 000C JMPF R3 #0064 - 0x880C0505, // 000D GETMBR R3 R2 K5 - 0xB8120000, // 000E GETNGBL R4 K0 - 0x88100906, // 000F GETMBR R4 R4 K6 - 0x88100907, // 0010 GETMBR R4 R4 K7 - 0x1C0C0604, // 0011 EQ R3 R3 R4 - 0x740E0005, // 0012 JMPT R3 #0019 - 0x880C0505, // 0013 GETMBR R3 R2 K5 - 0xB8120000, // 0014 GETNGBL R4 K0 - 0x88100906, // 0015 GETMBR R4 R4 K6 - 0x88100908, // 0016 GETMBR R4 R4 K8 - 0x1C0C0604, // 0017 EQ R3 R3 R4 - 0x780E0001, // 0018 JMPF R3 #001B - 0x80061200, // 0019 RET 1 K9 - 0x70020048, // 001A JMP #0064 - 0x880C0505, // 001B GETMBR R3 R2 K5 - 0xB8120000, // 001C GETNGBL R4 K0 - 0x88100906, // 001D GETMBR R4 R4 K6 - 0x8810090A, // 001E GETMBR R4 R4 K10 - 0x1C0C0604, // 001F EQ R3 R3 R4 - 0x740E0005, // 0020 JMPT R3 #0027 - 0x880C0505, // 0021 GETMBR R3 R2 K5 - 0xB8120000, // 0022 GETNGBL R4 K0 - 0x88100906, // 0023 GETMBR R4 R4 K6 - 0x8810090B, // 0024 GETMBR R4 R4 K11 - 0x1C0C0604, // 0025 EQ R3 R3 R4 - 0x780E0001, // 0026 JMPF R3 #0029 - 0x80060400, // 0027 RET 1 K2 - 0x7002003A, // 0028 JMP #0064 - 0x880C0505, // 0029 GETMBR R3 R2 K5 - 0xB8120000, // 002A GETNGBL R4 K0 - 0x88100906, // 002B GETMBR R4 R4 K6 - 0x8810090C, // 002C GETMBR R4 R4 K12 - 0x1C0C0604, // 002D EQ R3 R3 R4 - 0x740E0005, // 002E JMPT R3 #0035 - 0x880C0505, // 002F GETMBR R3 R2 K5 - 0xB8120000, // 0030 GETNGBL R4 K0 - 0x88100906, // 0031 GETMBR R4 R4 K6 - 0x8810090D, // 0032 GETMBR R4 R4 K13 - 0x1C0C0604, // 0033 EQ R3 R3 R4 - 0x780E0001, // 0034 JMPF R3 #0037 - 0x80061C00, // 0035 RET 1 K14 - 0x7002002C, // 0036 JMP #0064 - 0x880C0505, // 0037 GETMBR R3 R2 K5 - 0xB8120000, // 0038 GETNGBL R4 K0 - 0x88100906, // 0039 GETMBR R4 R4 K6 - 0x8810090F, // 003A GETMBR R4 R4 K15 - 0x1C0C0604, // 003B EQ R3 R3 R4 - 0x740E0005, // 003C JMPT R3 #0043 - 0x880C0505, // 003D GETMBR R3 R2 K5 - 0xB8120000, // 003E GETNGBL R4 K0 - 0x88100906, // 003F GETMBR R4 R4 K6 - 0x88100910, // 0040 GETMBR R4 R4 K16 - 0x1C0C0604, // 0041 EQ R3 R3 R4 - 0x780E0001, // 0042 JMPF R3 #0045 - 0x80062200, // 0043 RET 1 K17 - 0x7002001E, // 0044 JMP #0064 - 0x880C0505, // 0045 GETMBR R3 R2 K5 - 0xB8120000, // 0046 GETNGBL R4 K0 - 0x88100906, // 0047 GETMBR R4 R4 K6 - 0x88100912, // 0048 GETMBR R4 R4 K18 - 0x1C0C0604, // 0049 EQ R3 R3 R4 - 0x780E0001, // 004A JMPF R3 #004D - 0x80062600, // 004B RET 1 K19 - 0x70020016, // 004C JMP #0064 - 0x880C0505, // 004D GETMBR R3 R2 K5 - 0xB8120000, // 004E GETNGBL R4 K0 - 0x88100906, // 004F GETMBR R4 R4 K6 - 0x88100914, // 0050 GETMBR R4 R4 K20 - 0x1C0C0604, // 0051 EQ R3 R3 R4 - 0x780E0001, // 0052 JMPF R3 #0055 - 0x80062600, // 0053 RET 1 K19 - 0x7002000E, // 0054 JMP #0064 - 0x880C0505, // 0055 GETMBR R3 R2 K5 - 0xB8120000, // 0056 GETNGBL R4 K0 - 0x88100906, // 0057 GETMBR R4 R4 K6 - 0x88100915, // 0058 GETMBR R4 R4 K21 - 0x1C0C0604, // 0059 EQ R3 R3 R4 - 0x780E0001, // 005A JMPF R3 #005D - 0x80062C00, // 005B RET 1 K22 - 0x70020006, // 005C JMP #0064 - 0x880C0505, // 005D GETMBR R3 R2 K5 - 0xB8120000, // 005E GETNGBL R4 K0 - 0x88100906, // 005F GETMBR R4 R4 K6 - 0x88100917, // 0060 GETMBR R4 R4 K23 - 0x1C0C0604, // 0061 EQ R3 R3 R4 - 0x780E0000, // 0062 JMPF R3 #0064 - 0x80063000, // 0063 RET 1 K24 - 0x80062600, // 0064 RET 1 K19 + ( &(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 }) ) ); @@ -5501,1630 +11062,6 @@ be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ /*******************************************************************/ -/******************************************************************** -** 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: _validate_animation_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* 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(symbol_table), - /* K1 */ be_nested_str_weak(get), - }), - be_str_weak(_validate_animation_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x80040600, // 0006 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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: 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: 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: expect_comma -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* 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(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: process_additive_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ - be_nested_proto( - 15, /* nstack */ - 4, /* 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(ExpressionResult), - /* K11 */ be_nested_str_weak(combine), - /* K12 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - /* K13 */ be_nested_str_weak(expr), - }), - be_str_weak(process_additive_expression), - &be_const_str_solidified, - ( &(const binstruction[49]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x5C180200, // 0001 MOVE R6 R1 - 0x5C1C0400, // 0002 MOVE R7 R2 - 0x5C200600, // 0003 MOVE R8 R3 - 0x7C100800, // 0004 CALL R4 4 - 0x8C140101, // 0005 GETMET R5 R0 K1 - 0x7C140200, // 0006 CALL R5 1 - 0x74160027, // 0007 JMPT R5 #0030 - 0x8C140102, // 0008 GETMET R5 R0 K2 - 0x7C140200, // 0009 CALL R5 1 - 0x4C180000, // 000A LDNIL R6 - 0x20180A06, // 000B NE R6 R5 R6 - 0x781A0020, // 000C JMPF R6 #002E - 0x88180B03, // 000D GETMBR R6 R5 K3 - 0xB81E0800, // 000E GETNGBL R7 K4 - 0x881C0F05, // 000F GETMBR R7 R7 K5 - 0x881C0F06, // 0010 GETMBR R7 R7 K6 - 0x1C180C07, // 0011 EQ R6 R6 R7 - 0x741A0005, // 0012 JMPT R6 #0019 - 0x88180B03, // 0013 GETMBR R6 R5 K3 - 0xB81E0800, // 0014 GETNGBL R7 K4 - 0x881C0F05, // 0015 GETMBR R7 R7 K5 - 0x881C0F07, // 0016 GETMBR R7 R7 K7 - 0x1C180C07, // 0017 EQ R6 R6 R7 - 0x781A0014, // 0018 JMPF R6 #002E - 0x88180B08, // 0019 GETMBR R6 R5 K8 - 0x8C1C0109, // 001A GETMET R7 R0 K9 - 0x7C1C0200, // 001B CALL R7 1 - 0x8C1C0100, // 001C GETMET R7 R0 K0 - 0x5C240200, // 001D MOVE R9 R1 - 0x50280000, // 001E LDBOOL R10 0 0 - 0x5C2C0600, // 001F MOVE R11 R3 - 0x7C1C0800, // 0020 CALL R7 4 - 0x8820010A, // 0021 GETMBR R8 R0 K10 - 0x8C20110B, // 0022 GETMET R8 R8 K11 - 0x60280018, // 0023 GETGBL R10 G24 - 0x582C000C, // 0024 LDCONST R11 K12 - 0x8830090D, // 0025 GETMBR R12 R4 K13 - 0x5C340C00, // 0026 MOVE R13 R6 - 0x88380F0D, // 0027 GETMBR R14 R7 K13 - 0x7C280800, // 0028 CALL R10 4 - 0x5C2C0800, // 0029 MOVE R11 R4 - 0x5C300E00, // 002A MOVE R12 R7 - 0x7C200800, // 002B CALL R8 4 - 0x5C101000, // 002C MOVE R4 R8 - 0x70020000, // 002D JMP #002F - 0x70020000, // 002E JMP #0030 - 0x7001FFD4, // 002F JMP #0005 - 0x80040800, // 0030 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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: is_computed_expression_string -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_computed_expression_string, /* name */ - be_nested_proto( - 12, /* nstack */ - 2, /* 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(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_X20_X2B_X20), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(_X20_X2D_X20), - /* K5 */ be_nested_str_weak(_X20_X2A_X20), - /* K6 */ be_nested_str_weak(_X20_X2F_X20), - /* K7 */ be_nested_str_weak(_X28), - /* K8 */ be_const_int(1), - /* K9 */ be_nested_str_weak(is_identifier_char), - /* K10 */ be_nested_str_weak(_is_named_arg_constructor), - }), - be_str_weak(is_computed_expression_string), - &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 - 0x280C0703, // 0005 GE R3 R3 K3 - 0x740E0012, // 0006 JMPT R3 #001A - 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 - 0x740E000C, // 000C JMPT R3 #001A - 0x8C0C0501, // 000D GETMET R3 R2 K1 - 0x5C140200, // 000E MOVE R5 R1 - 0x58180005, // 000F LDCONST R6 K5 - 0x7C0C0600, // 0010 CALL R3 3 - 0x280C0703, // 0011 GE R3 R3 K3 - 0x740E0006, // 0012 JMPT R3 #001A - 0x8C0C0501, // 0013 GETMET R3 R2 K1 - 0x5C140200, // 0014 MOVE R5 R1 - 0x58180006, // 0015 LDCONST R6 K6 - 0x7C0C0600, // 0016 CALL R3 3 - 0x280C0703, // 0017 GE R3 R3 K3 - 0x740E0000, // 0018 JMPT R3 #001A - 0x500C0001, // 0019 LDBOOL R3 0 1 - 0x500C0200, // 001A LDBOOL R3 1 0 - 0x50100000, // 001B LDBOOL R4 0 0 - 0x8C140501, // 001C GETMET R5 R2 K1 - 0x5C1C0200, // 001D MOVE R7 R1 - 0x58200007, // 001E LDCONST R8 K7 - 0x7C140600, // 001F CALL R5 3 - 0x24180B03, // 0020 GT R6 R5 K3 - 0x781A0017, // 0021 JMPF R6 #003A - 0x04180B08, // 0022 SUB R6 R5 K8 - 0x94180206, // 0023 GETIDX R6 R1 R6 - 0x8C1C0109, // 0024 GETMET R7 R0 K9 - 0x5C240C00, // 0025 MOVE R9 R6 - 0x7C1C0400, // 0026 CALL R7 2 - 0x781E0011, // 0027 JMPF R7 #003A - 0x041C0B08, // 0028 SUB R7 R5 K8 - 0x28200F03, // 0029 GE R8 R7 K3 - 0x78220005, // 002A JMPF R8 #0031 - 0x8C200109, // 002B GETMET R8 R0 K9 - 0x94280207, // 002C GETIDX R10 R1 R7 - 0x7C200400, // 002D CALL R8 2 - 0x78220001, // 002E JMPF R8 #0031 - 0x041C0F08, // 002F SUB R7 R7 K8 - 0x7001FFF7, // 0030 JMP #0029 - 0x001C0F08, // 0031 ADD R7 R7 K8 - 0x04200B08, // 0032 SUB R8 R5 K8 - 0x40200E08, // 0033 CONNECT R8 R7 R8 - 0x94200208, // 0034 GETIDX R8 R1 R8 - 0x8C24010A, // 0035 GETMET R9 R0 K10 - 0x5C2C1000, // 0036 MOVE R11 R8 - 0x7C240400, // 0037 CALL R9 2 - 0x78260000, // 0038 JMPF R9 #003A - 0x50100200, // 0039 LDBOOL R4 1 0 - 0x740E0001, // 003A JMPT R3 #003D - 0x74120000, // 003B JMPT R4 #003D - 0x50180001, // 003C LDBOOL R6 0 1 - 0x50180200, // 003D LDBOOL R6 1 0 - 0x80040C00, // 003E RET 1 R6 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_named_arguments_for_color_provider -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* 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[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_process_named_arguments_unified), - /* K1 */ be_nested_str_weak(CONTEXT_COLOR_PROVIDER), - }), - be_str_weak(_process_named_arguments_for_color_provider), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x881C0101, // 0003 GETMBR R7 R0 K1 - 0x7C0C0800, // 0004 CALL R3 4 - 0x80000000, // 0005 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_berry_code_block -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_berry_code_block, /* 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[18]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* 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(STRING), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20string_X20literal_X20after_X20_X27berry_X27_X20keyword_X2E_X20Use_X20berry_X20_X22_X22_X22_X3Ccode_X3E_X22_X22_X22_X20or_X20berry_X20_X27_X27_X27_X3Ccode_X3E_X27_X27_X27), - /* K8 */ be_nested_str_weak(skip_statement), - /* K9 */ be_nested_str_weak(value), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(add), - /* K12 */ be_nested_str_weak(_X23_X20Berry_X20code_X20block_X25s), - /* K13 */ be_nested_str_weak(string), - /* K14 */ be_nested_str_weak(split), - /* K15 */ be_nested_str_weak(_X0A), - /* K16 */ be_nested_str_weak(stop_iteration), - /* K17 */ be_nested_str_weak(_X23_X20End_X20berry_X20code_X20block), - }), - be_str_weak(process_berry_code_block), - &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x4C080000, // 0004 LDNIL R2 - 0x1C080202, // 0005 EQ R2 R1 R2 - 0x740A0005, // 0006 JMPT R2 #000D - 0x88080302, // 0007 GETMBR R2 R1 K2 - 0xB80E0600, // 0008 GETNGBL R3 K3 - 0x880C0704, // 0009 GETMBR R3 R3 K4 - 0x880C0705, // 000A GETMBR R3 R3 K5 - 0x20080403, // 000B NE R2 R2 R3 - 0x780A0005, // 000C JMPF R2 #0013 - 0x8C080106, // 000D GETMET R2 R0 K6 - 0x58100007, // 000E LDCONST R4 K7 - 0x7C080400, // 000F CALL R2 2 - 0x8C080108, // 0010 GETMET R2 R0 K8 - 0x7C080200, // 0011 CALL R2 1 - 0x80000400, // 0012 RET 0 - 0x88080309, // 0013 GETMBR R2 R1 K9 - 0x8C0C0100, // 0014 GETMET R3 R0 K0 - 0x7C0C0200, // 0015 CALL R3 1 - 0x8C0C010A, // 0016 GETMET R3 R0 K10 - 0x7C0C0200, // 0017 CALL R3 1 - 0x8C10010B, // 0018 GETMET R4 R0 K11 - 0x60180018, // 0019 GETGBL R6 G24 - 0x581C000C, // 001A LDCONST R7 K12 - 0x5C200600, // 001B MOVE R8 R3 - 0x7C180400, // 001C CALL R6 2 - 0x7C100400, // 001D CALL R4 2 - 0xA4121A00, // 001E IMPORT R4 K13 - 0x8C14090E, // 001F GETMET R5 R4 K14 - 0x5C1C0400, // 0020 MOVE R7 R2 - 0x5820000F, // 0021 LDCONST R8 K15 - 0x7C140600, // 0022 CALL R5 3 - 0x60180010, // 0023 GETGBL R6 G16 - 0x5C1C0A00, // 0024 MOVE R7 R5 - 0x7C180200, // 0025 CALL R6 1 - 0xA8020005, // 0026 EXBLK 0 #002D - 0x5C1C0C00, // 0027 MOVE R7 R6 - 0x7C1C0000, // 0028 CALL R7 0 - 0x8C20010B, // 0029 GETMET R8 R0 K11 - 0x5C280E00, // 002A MOVE R10 R7 - 0x7C200400, // 002B CALL R8 2 - 0x7001FFF9, // 002C JMP #0027 - 0x58180010, // 002D LDCONST R6 K16 - 0xAC180200, // 002E CATCH R6 1 0 - 0xB0080000, // 002F RAISE 2 R0 R0 - 0x8C18010B, // 0030 GETMET R6 R0 K11 - 0x58200011, // 0031 LDCONST R8 K17 - 0x7C180400, // 0032 CALL R6 2 - 0x80000000, // 0033 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_palette_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* 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[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: 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_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: generate_engine_run -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_engine_run, /* 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[ 9]) { /* 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(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_X2Erun_X28_X29), - }), - be_str_weak(generate_engine_run), - &be_const_str_solidified, - ( &(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 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _has_function_parameters -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__has_function_parameters, /* 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[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* 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(next), - /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K8 */ be_nested_str_weak(RIGHT_PAREN), - }), - be_str_weak(_has_function_parameters), - &be_const_str_solidified, - ( &(const binstruction[40]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C080101, // 0001 GETMET R2 R0 K1 - 0x7C080200, // 0002 CALL R2 1 - 0x4C0C0000, // 0003 LDNIL R3 - 0x1C080403, // 0004 EQ R2 R2 R3 - 0x740A0007, // 0005 JMPT R2 #000E - 0x8C080101, // 0006 GETMET R2 R0 K1 - 0x7C080200, // 0007 CALL R2 1 - 0x88080502, // 0008 GETMBR R2 R2 K2 - 0xB80E0600, // 0009 GETNGBL R3 K3 - 0x880C0704, // 000A GETMBR R3 R3 K4 - 0x880C0705, // 000B GETMBR R3 R3 K5 - 0x20080403, // 000C NE R2 R2 R3 - 0x780A0001, // 000D JMPF R2 #0010 - 0x50080000, // 000E LDBOOL R2 0 0 - 0x80040400, // 000F RET 1 R2 - 0x8C080106, // 0010 GETMET R2 R0 K6 - 0x7C080200, // 0011 CALL R2 1 - 0x8C080107, // 0012 GETMET R2 R0 K7 - 0x7C080200, // 0013 CALL R2 1 - 0x8C080101, // 0014 GETMET R2 R0 K1 - 0x7C080200, // 0015 CALL R2 1 - 0x4C0C0000, // 0016 LDNIL R3 - 0x20080403, // 0017 NE R2 R2 R3 - 0x780A0007, // 0018 JMPF R2 #0021 - 0x8C080101, // 0019 GETMET R2 R0 K1 - 0x7C080200, // 001A CALL R2 1 - 0x88080502, // 001B GETMBR R2 R2 K2 - 0xB80E0600, // 001C GETNGBL R3 K3 - 0x880C0704, // 001D GETMBR R3 R3 K4 - 0x880C0708, // 001E GETMBR R3 R3 K8 - 0x1C080403, // 001F EQ R2 R2 R3 - 0x740A0000, // 0020 JMPT R2 #0022 - 0x50080001, // 0021 LDBOOL R2 0 1 - 0x50080200, // 0022 LDBOOL R2 1 0 - 0x780A0000, // 0023 JMPF R2 #0025 - 0x50080001, // 0024 LDBOOL R2 0 1 - 0x50080200, // 0025 LDBOOL R2 1 0 - 0x90020001, // 0026 SETMBR R0 K0 R1 - 0x80040400, // 0027 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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: _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: 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: validate_symbol_reference -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_validate_symbol_reference, /* name */ - be_nested_proto( - 9, /* nstack */ - 3, /* 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(symbol_table), - /* K1 */ be_nested_str_weak(symbol_exists), - /* K2 */ be_nested_str_weak(error), - /* K3 */ 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(validate_symbol_reference), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C0C0701, // 0001 GETMET R3 R3 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x740E0008, // 0004 JMPT R3 #000E - 0x8C0C0102, // 0005 GETMET R3 R0 K2 - 0x60140018, // 0006 GETGBL R5 G24 - 0x58180003, // 0007 LDCONST R6 K3 - 0x5C1C0200, // 0008 MOVE R7 R1 - 0x5C200400, // 0009 MOVE R8 R2 - 0x7C140600, // 000A CALL R5 3 - 0x7C0C0400, // 000B CALL R3 2 - 0x500C0000, // 000C LDBOOL R3 0 0 - 0x80040600, // 000D RET 1 R3 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F 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: process_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* 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[28]) { /* 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(symbol_table), - /* K13 */ be_nested_str_weak(get), - /* K14 */ be_nested_str_weak(_symbol_entry), - /* K15 */ be_nested_str_weak(TYPE_MATH_FUNCTION), - /* K16 */ be_nested_str_weak(process_function_arguments), - /* K17 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K18 */ be_nested_str_weak(get_reference), - /* K19 */ be_nested_str_weak(log), - /* K20 */ be_nested_str_weak(process_log_call), - /* K21 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K22 */ be_nested_str_weak(TYPE_TEMPLATE), - /* K23 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K24 */ be_nested_str_weak(engine), - /* K25 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K26 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K27 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_function_call), - &be_const_str_solidified, - ( &(const binstruction[102]) { /* 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 - 0x8810010C, // 001A GETMBR R4 R0 K12 - 0x8C10090D, // 001B GETMET R4 R4 K13 - 0x5C180600, // 001C MOVE R6 R3 - 0x7C100400, // 001D CALL R4 2 - 0x4C140000, // 001E LDNIL R5 - 0x20140805, // 001F NE R5 R4 R5 - 0x7816000F, // 0020 JMPF R5 #0031 - 0x88140902, // 0021 GETMBR R5 R4 K2 - 0xB81A0600, // 0022 GETNGBL R6 K3 - 0x88180D0E, // 0023 GETMBR R6 R6 K14 - 0x88180D0F, // 0024 GETMBR R6 R6 K15 - 0x1C140A06, // 0025 EQ R5 R5 R6 - 0x78160009, // 0026 JMPF R5 #0031 - 0x8C140110, // 0027 GETMET R5 R0 K16 - 0x501C0000, // 0028 LDBOOL R7 0 0 - 0x7C140400, // 0029 CALL R5 2 - 0x60180018, // 002A GETGBL R6 G24 - 0x581C0011, // 002B LDCONST R7 K17 - 0x8C200912, // 002C GETMET R8 R4 K18 - 0x7C200200, // 002D CALL R8 1 - 0x5C240A00, // 002E MOVE R9 R5 - 0x7C180600, // 002F CALL R6 3 - 0x80040C00, // 0030 RET 1 R6 - 0x1C140713, // 0031 EQ R5 R3 K19 - 0x78160008, // 0032 JMPF R5 #003C - 0x8C140110, // 0033 GETMET R5 R0 K16 - 0x501C0000, // 0034 LDBOOL R7 0 0 - 0x7C140400, // 0035 CALL R5 2 - 0x8C180114, // 0036 GETMET R6 R0 K20 - 0x5C200A00, // 0037 MOVE R8 R5 - 0x88240115, // 0038 GETMBR R9 R0 K21 - 0x58280001, // 0039 LDCONST R10 K1 - 0x7C180800, // 003A CALL R6 4 - 0x80040C00, // 003B RET 1 R6 - 0x8C140110, // 003C GETMET R5 R0 K16 - 0x501C0000, // 003D LDBOOL R7 0 0 - 0x7C140400, // 003E CALL R5 2 - 0x4C180000, // 003F LDNIL R6 - 0x20180806, // 0040 NE R6 R4 R6 - 0x781A0014, // 0041 JMPF R6 #0057 - 0x88180902, // 0042 GETMBR R6 R4 K2 - 0xB81E0600, // 0043 GETNGBL R7 K3 - 0x881C0F0E, // 0044 GETMBR R7 R7 K14 - 0x881C0F16, // 0045 GETMBR R7 R7 K22 - 0x1C180C07, // 0046 EQ R6 R6 R7 - 0x781A000E, // 0047 JMPF R6 #0057 - 0x20180B01, // 0048 NE R6 R5 K1 - 0x781A0004, // 0049 JMPF R6 #004F - 0x60180018, // 004A GETGBL R6 G24 - 0x581C0017, // 004B LDCONST R7 K23 - 0x5C200A00, // 004C MOVE R8 R5 - 0x7C180400, // 004D CALL R6 2 - 0x70020000, // 004E JMP #0050 - 0x58180018, // 004F LDCONST R6 K24 - 0x601C0018, // 0050 GETGBL R7 G24 - 0x58200019, // 0051 LDCONST R8 K25 - 0x5C240600, // 0052 MOVE R9 R3 - 0x5C280C00, // 0053 MOVE R10 R6 - 0x7C1C0600, // 0054 CALL R7 3 - 0x80040E00, // 0055 RET 1 R7 - 0x7002000D, // 0056 JMP #0065 - 0x20180B01, // 0057 NE R6 R5 K1 - 0x781A0006, // 0058 JMPF R6 #0060 - 0x60180018, // 0059 GETGBL R6 G24 - 0x581C001A, // 005A LDCONST R7 K26 - 0x5C200600, // 005B MOVE R8 R3 - 0x5C240A00, // 005C MOVE R9 R5 - 0x7C180600, // 005D CALL R6 3 - 0x80040C00, // 005E RET 1 R6 - 0x70020004, // 005F JMP #0065 - 0x60180018, // 0060 GETGBL R6 G24 - 0x581C001B, // 0061 LDCONST R7 K27 - 0x5C200600, // 0062 MOVE R8 R3 - 0x7C180400, // 0063 CALL R6 2 - 0x80040C00, // 0064 RET 1 R6 - 0x80000000, // 0065 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[85]) { /* 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 - 0x78120011, // 0035 JMPF R4 #0048 - 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 - 0x78120009, // 003D JMPF R4 #0048 - 0x8C100102, // 003E GETMET R4 R0 K2 - 0x7C100200, // 003F CALL R4 1 - 0x88100910, // 0040 GETMBR R4 R4 K16 - 0x1C100911, // 0041 EQ R4 R4 K17 - 0x78120004, // 0042 JMPF R4 #0048 - 0x8C100100, // 0043 GETMET R4 R0 K0 - 0x7C100200, // 0044 CALL R4 1 - 0x8C100112, // 0045 GETMET R4 R0 K18 - 0x7C100200, // 0046 CALL R4 1 - 0x5C0C0800, // 0047 MOVE R3 R4 - 0x8C100113, // 0048 GETMET R4 R0 K19 - 0x7C100200, // 0049 CALL R4 1 - 0x8C140114, // 004A GETMET R5 R0 K20 - 0x601C0018, // 004B GETGBL R7 G24 - 0x58200015, // 004C LDCONST R8 K21 - 0x8C240116, // 004D GETMET R9 R0 K22 - 0x7C240200, // 004E CALL R9 1 - 0x5C280200, // 004F MOVE R10 R1 - 0x5C2C0600, // 0050 MOVE R11 R3 - 0x5C300800, // 0051 MOVE R12 R4 - 0x7C1C0A00, // 0052 CALL R7 5 - 0x7C140400, // 0053 CALL R5 2 - 0x80000000, // 0054 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: _process_named_arguments_for_animation ********************************************************************/ @@ -7158,40 +11095,116 @@ be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animatio /******************************************************************** -** Solidified function: peek +** Solidified function: _create_symbol_by_return_type ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_peek, /* name */ +be_local_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type, /* name */ be_nested_proto( - 4, /* nstack */ - 1, /* argc */ + 8, /* nstack */ + 4, /* 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_const_int(1), - /* K2 */ be_nested_str_weak(tokens), + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(_symbol_entry), + /* K2 */ be_nested_str_weak(TYPE_ANIMATION), + /* K3 */ be_nested_str_weak(symbol_table), + /* K4 */ be_nested_str_weak(create_animation), + /* K5 */ be_nested_str_weak(TYPE_COLOR), + /* K6 */ be_nested_str_weak(create_color), + /* K7 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), + /* K8 */ be_nested_str_weak(create_value_provider), + /* K9 */ be_nested_str_weak(TYPE_PALETTE), + /* K10 */ be_nested_str_weak(create_palette), + /* K11 */ be_nested_str_weak(TYPE_SEQUENCE), + /* K12 */ be_nested_str_weak(create_sequence), + /* K13 */ be_nested_str_weak(TYPE_TEMPLATE), + /* K14 */ be_nested_str_weak(create_template), + /* K15 */ be_nested_str_weak(create_variable), }), - be_str_weak(peek), + be_str_weak(_create_symbol_by_return_type), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x00040301, // 0001 ADD R1 R1 K1 - 0x6008000C, // 0002 GETGBL R2 G12 - 0x880C0102, // 0003 GETMBR R3 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x14040202, // 0005 LT R1 R1 R2 - 0x78060004, // 0006 JMPF R1 #000C - 0x88040100, // 0007 GETMBR R1 R0 K0 - 0x00040301, // 0008 ADD R1 R1 K1 - 0x88080102, // 0009 GETMBR R2 R0 K2 - 0x94040401, // 000A GETIDX R1 R2 R1 - 0x70020000, // 000B JMP #000D - 0x4C040000, // 000C LDNIL R1 - 0x80040200, // 000D RET 1 R1 + ( &(const binstruction[77]) { /* code */ + 0xB8120000, // 0000 GETNGBL R4 K0 + 0x88100901, // 0001 GETMBR R4 R4 K1 + 0x88100902, // 0002 GETMBR R4 R4 K2 + 0x1C100404, // 0003 EQ R4 R2 R4 + 0x78120006, // 0004 JMPF R4 #000C + 0x88100103, // 0005 GETMBR R4 R0 K3 + 0x8C100904, // 0006 GETMET R4 R4 K4 + 0x5C180200, // 0007 MOVE R6 R1 + 0x5C1C0600, // 0008 MOVE R7 R3 + 0x7C100600, // 0009 CALL R4 3 + 0x80040800, // 000A RET 1 R4 + 0x7002003F, // 000B JMP #004C + 0xB8120000, // 000C GETNGBL R4 K0 + 0x88100901, // 000D GETMBR R4 R4 K1 + 0x88100905, // 000E GETMBR R4 R4 K5 + 0x1C100404, // 000F EQ R4 R2 R4 + 0x78120006, // 0010 JMPF R4 #0018 + 0x88100103, // 0011 GETMBR R4 R0 K3 + 0x8C100906, // 0012 GETMET R4 R4 K6 + 0x5C180200, // 0013 MOVE R6 R1 + 0x5C1C0600, // 0014 MOVE R7 R3 + 0x7C100600, // 0015 CALL R4 3 + 0x80040800, // 0016 RET 1 R4 + 0x70020033, // 0017 JMP #004C + 0xB8120000, // 0018 GETNGBL R4 K0 + 0x88100901, // 0019 GETMBR R4 R4 K1 + 0x88100907, // 001A GETMBR R4 R4 K7 + 0x1C100404, // 001B EQ R4 R2 R4 + 0x78120006, // 001C JMPF R4 #0024 + 0x88100103, // 001D GETMBR R4 R0 K3 + 0x8C100908, // 001E GETMET R4 R4 K8 + 0x5C180200, // 001F MOVE R6 R1 + 0x5C1C0600, // 0020 MOVE R7 R3 + 0x7C100600, // 0021 CALL R4 3 + 0x80040800, // 0022 RET 1 R4 + 0x70020027, // 0023 JMP #004C + 0xB8120000, // 0024 GETNGBL R4 K0 + 0x88100901, // 0025 GETMBR R4 R4 K1 + 0x88100909, // 0026 GETMBR R4 R4 K9 + 0x1C100404, // 0027 EQ R4 R2 R4 + 0x78120006, // 0028 JMPF R4 #0030 + 0x88100103, // 0029 GETMBR R4 R0 K3 + 0x8C10090A, // 002A GETMET R4 R4 K10 + 0x5C180200, // 002B MOVE R6 R1 + 0x5C1C0600, // 002C MOVE R7 R3 + 0x7C100600, // 002D CALL R4 3 + 0x80040800, // 002E RET 1 R4 + 0x7002001B, // 002F JMP #004C + 0xB8120000, // 0030 GETNGBL R4 K0 + 0x88100901, // 0031 GETMBR R4 R4 K1 + 0x8810090B, // 0032 GETMBR R4 R4 K11 + 0x1C100404, // 0033 EQ R4 R2 R4 + 0x78120005, // 0034 JMPF R4 #003B + 0x88100103, // 0035 GETMBR R4 R0 K3 + 0x8C10090C, // 0036 GETMET R4 R4 K12 + 0x5C180200, // 0037 MOVE R6 R1 + 0x7C100400, // 0038 CALL R4 2 + 0x80040800, // 0039 RET 1 R4 + 0x70020010, // 003A JMP #004C + 0xB8120000, // 003B GETNGBL R4 K0 + 0x88100901, // 003C GETMBR R4 R4 K1 + 0x8810090D, // 003D GETMBR R4 R4 K13 + 0x1C100404, // 003E EQ R4 R2 R4 + 0x78120006, // 003F JMPF R4 #0047 + 0x88100103, // 0040 GETMBR R4 R0 K3 + 0x8C10090E, // 0041 GETMET R4 R4 K14 + 0x5C180200, // 0042 MOVE R6 R1 + 0x4C1C0000, // 0043 LDNIL R7 + 0x7C100600, // 0044 CALL R4 3 + 0x80040800, // 0045 RET 1 R4 + 0x70020004, // 0046 JMP #004C + 0x88100103, // 0047 GETMBR R4 R0 K3 + 0x8C10090F, // 0048 GETMET R4 R4 K15 + 0x5C180200, // 0049 MOVE R6 R1 + 0x7C100400, // 004A CALL R4 2 + 0x80040800, // 004B RET 1 R4 + 0x80000000, // 004C RET 0 }) ) ); @@ -7199,64 +11212,11 @@ be_local_closure(class_SimpleDSLTranspiler_peek, /* name */ /******************************************************************** -** Solidified function: at_end +** Solidified function: _determine_symbol_return_type ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ +be_local_closure(class_SimpleDSLTranspiler__determine_symbol_return_type, /* 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: is_identifier_char -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ - be_nested_proto( - 3, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -7264,85 +11224,143 @@ be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ 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(_), + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_nested_str_weak(type), + /* K1 */ be_nested_str_weak(animation_dsl), + /* K2 */ be_nested_str_weak(_symbol_entry), + /* K3 */ be_nested_str_weak(TYPE_ANIMATION), + /* K4 */ be_nested_str_weak(TYPE_ANIMATION_CONSTRUCTOR), + /* K5 */ be_nested_str_weak(TYPE_COLOR), + /* K6 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), + /* K7 */ be_nested_str_weak(TYPE_VALUE_PROVIDER), + /* K8 */ be_nested_str_weak(TYPE_VALUE_PROVIDER_CONSTRUCTOR), + /* K9 */ be_nested_str_weak(TYPE_PALETTE), + /* K10 */ be_nested_str_weak(TYPE_PALETTE_CONSTANT), + /* K11 */ be_nested_str_weak(TYPE_CONSTANT), + /* K12 */ be_nested_str_weak(TYPE_VARIABLE), + /* K13 */ be_nested_str_weak(TYPE_SEQUENCE), + /* K14 */ be_nested_str_weak(TYPE_TEMPLATE), }), - be_str_weak(is_identifier_char), + be_str_weak(_determine_symbol_return_type), &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 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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 + ( &(const binstruction[117]) { /* code */ + 0x88080300, // 0000 GETMBR R2 R1 K0 + 0xB80E0200, // 0001 GETNGBL R3 K1 + 0x880C0702, // 0002 GETMBR R3 R3 K2 + 0x880C0703, // 0003 GETMBR R3 R3 K3 + 0x1C080403, // 0004 EQ R2 R2 R3 + 0x740A0005, // 0005 JMPT R2 #000C + 0x88080300, // 0006 GETMBR R2 R1 K0 + 0xB80E0200, // 0007 GETNGBL R3 K1 + 0x880C0702, // 0008 GETMBR R3 R3 K2 + 0x880C0704, // 0009 GETMBR R3 R3 K4 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x780A0004, // 000B JMPF R2 #0011 + 0xB80A0200, // 000C GETNGBL R2 K1 + 0x88080502, // 000D GETMBR R2 R2 K2 + 0x88080503, // 000E GETMBR R2 R2 K3 0x80040400, // 000F RET 1 R2 - 0x80061000, // 0010 RET 1 K8 + 0x70020062, // 0010 JMP #0074 + 0x88080300, // 0011 GETMBR R2 R1 K0 + 0xB80E0200, // 0012 GETNGBL R3 K1 + 0x880C0702, // 0013 GETMBR R3 R3 K2 + 0x880C0705, // 0014 GETMBR R3 R3 K5 + 0x1C080403, // 0015 EQ R2 R2 R3 + 0x740A0005, // 0016 JMPT R2 #001D + 0x88080300, // 0017 GETMBR R2 R1 K0 + 0xB80E0200, // 0018 GETNGBL R3 K1 + 0x880C0702, // 0019 GETMBR R3 R3 K2 + 0x880C0706, // 001A GETMBR R3 R3 K6 + 0x1C080403, // 001B EQ R2 R2 R3 + 0x780A0004, // 001C JMPF R2 #0022 + 0xB80A0200, // 001D GETNGBL R2 K1 + 0x88080502, // 001E GETMBR R2 R2 K2 + 0x88080505, // 001F GETMBR R2 R2 K5 + 0x80040400, // 0020 RET 1 R2 + 0x70020051, // 0021 JMP #0074 + 0x88080300, // 0022 GETMBR R2 R1 K0 + 0xB80E0200, // 0023 GETNGBL R3 K1 + 0x880C0702, // 0024 GETMBR R3 R3 K2 + 0x880C0707, // 0025 GETMBR R3 R3 K7 + 0x1C080403, // 0026 EQ R2 R2 R3 + 0x740A0005, // 0027 JMPT R2 #002E + 0x88080300, // 0028 GETMBR R2 R1 K0 + 0xB80E0200, // 0029 GETNGBL R3 K1 + 0x880C0702, // 002A GETMBR R3 R3 K2 + 0x880C0708, // 002B GETMBR R3 R3 K8 + 0x1C080403, // 002C EQ R2 R2 R3 + 0x780A0004, // 002D JMPF R2 #0033 + 0xB80A0200, // 002E GETNGBL R2 K1 + 0x88080502, // 002F GETMBR R2 R2 K2 + 0x88080507, // 0030 GETMBR R2 R2 K7 + 0x80040400, // 0031 RET 1 R2 + 0x70020040, // 0032 JMP #0074 + 0x88080300, // 0033 GETMBR R2 R1 K0 + 0xB80E0200, // 0034 GETNGBL R3 K1 + 0x880C0702, // 0035 GETMBR R3 R3 K2 + 0x880C0709, // 0036 GETMBR R3 R3 K9 + 0x1C080403, // 0037 EQ R2 R2 R3 + 0x740A0005, // 0038 JMPT R2 #003F + 0x88080300, // 0039 GETMBR R2 R1 K0 + 0xB80E0200, // 003A GETNGBL R3 K1 + 0x880C0702, // 003B GETMBR R3 R3 K2 + 0x880C070A, // 003C GETMBR R3 R3 K10 + 0x1C080403, // 003D EQ R2 R2 R3 + 0x780A0004, // 003E JMPF R2 #0044 + 0xB80A0200, // 003F GETNGBL R2 K1 + 0x88080502, // 0040 GETMBR R2 R2 K2 + 0x88080509, // 0041 GETMBR R2 R2 K9 + 0x80040400, // 0042 RET 1 R2 + 0x7002002F, // 0043 JMP #0074 + 0x88080300, // 0044 GETMBR R2 R1 K0 + 0xB80E0200, // 0045 GETNGBL R3 K1 + 0x880C0702, // 0046 GETMBR R3 R3 K2 + 0x880C070B, // 0047 GETMBR R3 R3 K11 + 0x1C080403, // 0048 EQ R2 R2 R3 + 0x780A0004, // 0049 JMPF R2 #004F + 0xB80A0200, // 004A GETNGBL R2 K1 + 0x88080502, // 004B GETMBR R2 R2 K2 + 0x8808050C, // 004C GETMBR R2 R2 K12 + 0x80040400, // 004D RET 1 R2 + 0x70020024, // 004E JMP #0074 + 0x88080300, // 004F GETMBR R2 R1 K0 + 0xB80E0200, // 0050 GETNGBL R3 K1 + 0x880C0702, // 0051 GETMBR R3 R3 K2 + 0x880C070C, // 0052 GETMBR R3 R3 K12 + 0x1C080403, // 0053 EQ R2 R2 R3 + 0x780A0004, // 0054 JMPF R2 #005A + 0xB80A0200, // 0055 GETNGBL R2 K1 + 0x88080502, // 0056 GETMBR R2 R2 K2 + 0x8808050C, // 0057 GETMBR R2 R2 K12 + 0x80040400, // 0058 RET 1 R2 + 0x70020019, // 0059 JMP #0074 + 0x88080300, // 005A GETMBR R2 R1 K0 + 0xB80E0200, // 005B GETNGBL R3 K1 + 0x880C0702, // 005C GETMBR R3 R3 K2 + 0x880C070D, // 005D GETMBR R3 R3 K13 + 0x1C080403, // 005E EQ R2 R2 R3 + 0x780A0004, // 005F JMPF R2 #0065 + 0xB80A0200, // 0060 GETNGBL R2 K1 + 0x88080502, // 0061 GETMBR R2 R2 K2 + 0x8808050D, // 0062 GETMBR R2 R2 K13 + 0x80040400, // 0063 RET 1 R2 + 0x7002000E, // 0064 JMP #0074 + 0x88080300, // 0065 GETMBR R2 R1 K0 + 0xB80E0200, // 0066 GETNGBL R3 K1 + 0x880C0702, // 0067 GETMBR R3 R3 K2 + 0x880C070E, // 0068 GETMBR R3 R3 K14 + 0x1C080403, // 0069 EQ R2 R2 R3 + 0x780A0004, // 006A JMPF R2 #0070 + 0xB80A0200, // 006B GETNGBL R2 K1 + 0x88080502, // 006C GETMBR R2 R2 K2 + 0x8808050E, // 006D GETMBR R2 R2 K14 + 0x80040400, // 006E RET 1 R2 + 0x70020003, // 006F JMP #0074 + 0xB80A0200, // 0070 GETNGBL R2 K1 + 0x88080502, // 0071 GETMBR R2 R2 K2 + 0x8808050C, // 0072 GETMBR R2 R2 K12 + 0x80040400, // 0073 RET 1 R2 + 0x80000000, // 0074 RET 0 }) ) ); @@ -7350,50 +11368,97 @@ be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ /******************************************************************** -** Solidified function: process_template +** Solidified function: process_color ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ be_nested_proto( - 12, /* nstack */ + 18, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 0), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(create_color), + }), + be_str_weak(_X3Clambda_X3E), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x68080000, // 0000 GETUPV R2 U0 + 0x88080500, // 0001 GETMBR R2 R2 K0 + 0x8C080501, // 0002 GETMET R2 R2 K1 + 0x5C100000, // 0003 MOVE R4 R0 + 0x5C140200, // 0004 MOVE R5 R1 + 0x7C080600, // 0005 CALL R2 3 + 0x80040400, // 0006 RET 1 R2 + }) + ), + }), 1, /* has constants */ - ( &(const bvalue[27]) { /* constants */ + ( &(const bvalue[46]) { /* 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), + /* K3 */ be_nested_str_weak(color), /* 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), + /* 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(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(generate_template_function), - /* K25 */ be_nested_str_weak(symbol_table), - /* K26 */ be_nested_str_weak(create_template), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_nested_str_weak(COMMENT), + /* K17 */ be_nested_str_weak(_X20_X20), + /* K18 */ be_nested_str_weak(symbol_table), + /* K19 */ be_nested_str_weak(get), + /* K20 */ be_nested_str_weak(_symbol_entry), + /* K21 */ be_nested_str_weak(TYPE_TEMPLATE), + /* K22 */ be_nested_str_weak(process_function_arguments), + /* K23 */ be_nested_str_weak(_split_function_arguments), + /* K24 */ be_nested_str_weak(instance), + /* K25 */ be_nested_str_weak(contains), + /* K26 */ be_nested_str_weak(params), + /* K27 */ be_nested_str_weak(find), + /* K28 */ be_nested_str_weak(param_types), + /* K29 */ be_nested_str_weak(_validate_template_call_arguments), + /* K30 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K31 */ be_nested_str_weak(engine), + /* K32 */ be_nested_str_weak(add), + /* K33 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), + /* K34 */ be_nested_str_weak(create_color), + /* K35 */ be_nested_str_weak(TYPE_USER_FUNCTION), + /* K36 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), + /* K37 */ be_nested_str_weak(_validate_color_provider_factory_exists), + /* K38 */ be_nested_str_weak(error), + /* K39 */ 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), + /* K40 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), + /* K41 */ be_nested_str_weak(_create_instance_for_validation), + /* K42 */ be_nested_str_weak(_process_named_arguments_for_color_provider), + /* K43 */ be_nested_str_weak(_X25s_), + /* K44 */ be_nested_str_weak(_process_simple_value_assignment), + /* K45 */ be_nested_str_weak(CONTEXT_COLOR), }), - be_str_weak(process_template), + be_str_weak(process_color), &be_const_str_solidified, - ( &(const binstruction[161]) { /* code */ + ( &(const binstruction[218]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x8C040101, // 0002 GETMET R1 R0 K1 @@ -7408,203 +11473,210 @@ be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ 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 - 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 - 0x8C180118, // 0095 GETMET R6 R0 K24 - 0x5C200200, // 0096 MOVE R8 R1 - 0x5C240400, // 0097 MOVE R9 R2 - 0x5C280600, // 0098 MOVE R10 R3 - 0x5C2C0800, // 0099 MOVE R11 R4 - 0x7C180A00, // 009A CALL R6 5 - 0x88180119, // 009B GETMBR R6 R0 K25 - 0x8C180D1A, // 009C GETMET R6 R6 K26 - 0x5C200200, // 009D MOVE R8 R1 - 0x5C240600, // 009E MOVE R9 R3 - 0x7C180600, // 009F CALL R6 3 - 0x80000000, // 00A0 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_dot -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_dot, /* 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(DOT), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X2E_X27), - }), - be_str_weak(expect_dot), - &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 + 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 + 0x780E00B6, // 001B JMPF R3 #00D3 + 0x8C0C010C, // 001C GETMET R3 R0 K12 + 0x7C0C0200, // 001D CALL R3 1 + 0x4C100000, // 001E LDNIL R4 + 0x200C0604, // 001F NE R3 R3 R4 + 0x780E00B1, // 0020 JMPF R3 #00D3 + 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 + 0x780E00A9, // 0028 JMPF R3 #00D3 + 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 + 0x4C180000, // 0045 LDNIL R6 + 0x20180A06, // 0046 NE R6 R5 R6 + 0x781A003F, // 0047 JMPF R6 #0088 + 0x88180B07, // 0048 GETMBR R6 R5 K7 + 0xB81E1000, // 0049 GETNGBL R7 K8 + 0x881C0F14, // 004A GETMBR R7 R7 K20 + 0x881C0F15, // 004B GETMBR R7 R7 K21 + 0x1C180C07, // 004C EQ R6 R6 R7 + 0x781A0039, // 004D JMPF R6 #0088 + 0x8C180116, // 004E GETMET R6 R0 K22 + 0x50200000, // 004F LDBOOL R8 0 0 + 0x7C180400, // 0050 CALL R6 2 + 0x201C0D0F, // 0051 NE R7 R6 K15 + 0x781E0003, // 0052 JMPF R7 #0057 + 0x8C1C0117, // 0053 GETMET R7 R0 K23 + 0x5C240C00, // 0054 MOVE R9 R6 + 0x7C1C0400, // 0055 CALL R7 2 + 0x70020001, // 0056 JMP #0059 + 0x601C0012, // 0057 GETGBL R7 G18 + 0x7C1C0000, // 0058 CALL R7 0 + 0x88200B18, // 0059 GETMBR R8 R5 K24 + 0x4C240000, // 005A LDNIL R9 + 0x20241009, // 005B NE R9 R8 R9 + 0x78260013, // 005C JMPF R9 #0071 + 0x8C241119, // 005D GETMET R9 R8 K25 + 0x582C001A, // 005E LDCONST R11 K26 + 0x7C240400, // 005F CALL R9 2 + 0x7826000F, // 0060 JMPF R9 #0071 + 0x9424111A, // 0061 GETIDX R9 R8 K26 + 0x8C28111B, // 0062 GETMET R10 R8 K27 + 0x5830001C, // 0063 LDCONST R12 K28 + 0x60340013, // 0064 GETGBL R13 G19 + 0x7C340000, // 0065 CALL R13 0 + 0x7C280600, // 0066 CALL R10 3 + 0x8C2C011D, // 0067 GETMET R11 R0 K29 + 0x5C340600, // 0068 MOVE R13 R3 + 0x5C380E00, // 0069 MOVE R14 R7 + 0x5C3C1200, // 006A MOVE R15 R9 + 0x5C401400, // 006B MOVE R16 R10 + 0x7C2C0A00, // 006C CALL R11 5 + 0x742E0002, // 006D JMPT R11 #0071 + 0x8C2C0104, // 006E GETMET R11 R0 K4 + 0x7C2C0200, // 006F CALL R11 1 + 0x80001600, // 0070 RET 0 + 0x20240D0F, // 0071 NE R9 R6 K15 + 0x78260004, // 0072 JMPF R9 #0078 + 0x60240018, // 0073 GETGBL R9 G24 + 0x5828001E, // 0074 LDCONST R10 K30 + 0x5C2C0C00, // 0075 MOVE R11 R6 + 0x7C240400, // 0076 CALL R9 2 + 0x70020000, // 0077 JMP #0079 + 0x5824001F, // 0078 LDCONST R9 K31 + 0x8C280120, // 0079 GETMET R10 R0 K32 + 0x60300018, // 007A GETGBL R12 G24 + 0x58340021, // 007B LDCONST R13 K33 + 0x5C380200, // 007C MOVE R14 R1 + 0x5C3C0600, // 007D MOVE R15 R3 + 0x5C401200, // 007E MOVE R16 R9 + 0x5C440800, // 007F MOVE R17 R4 + 0x7C300A00, // 0080 CALL R12 5 + 0x7C280400, // 0081 CALL R10 2 + 0x88280112, // 0082 GETMBR R10 R0 K18 + 0x8C281522, // 0083 GETMET R10 R10 K34 + 0x5C300200, // 0084 MOVE R12 R1 + 0x4C340000, // 0085 LDNIL R13 + 0x7C280600, // 0086 CALL R10 3 + 0x70020049, // 0087 JMP #00D2 + 0x4C180000, // 0088 LDNIL R6 + 0x20180A06, // 0089 NE R6 R5 R6 + 0x781A001F, // 008A JMPF R6 #00AB + 0x88180B07, // 008B GETMBR R6 R5 K7 + 0xB81E1000, // 008C GETNGBL R7 K8 + 0x881C0F14, // 008D GETMBR R7 R7 K20 + 0x881C0F23, // 008E GETMBR R7 R7 K35 + 0x1C180C07, // 008F EQ R6 R6 R7 + 0x781A0019, // 0090 JMPF R6 #00AB + 0x8C180116, // 0091 GETMET R6 R0 K22 + 0x50200000, // 0092 LDBOOL R8 0 0 + 0x7C180400, // 0093 CALL R6 2 + 0x201C0D0F, // 0094 NE R7 R6 K15 + 0x781E0004, // 0095 JMPF R7 #009B + 0x601C0018, // 0096 GETGBL R7 G24 + 0x5820001E, // 0097 LDCONST R8 K30 + 0x5C240C00, // 0098 MOVE R9 R6 + 0x7C1C0400, // 0099 CALL R7 2 + 0x70020000, // 009A JMP #009C + 0x581C001F, // 009B LDCONST R7 K31 + 0x8C200120, // 009C GETMET R8 R0 K32 + 0x60280018, // 009D GETGBL R10 G24 + 0x582C0024, // 009E LDCONST R11 K36 + 0x5C300200, // 009F MOVE R12 R1 + 0x5C340600, // 00A0 MOVE R13 R3 + 0x5C380E00, // 00A1 MOVE R14 R7 + 0x5C3C0800, // 00A2 MOVE R15 R4 + 0x7C280A00, // 00A3 CALL R10 5 + 0x7C200400, // 00A4 CALL R8 2 + 0x88200112, // 00A5 GETMBR R8 R0 K18 + 0x8C201122, // 00A6 GETMET R8 R8 K34 + 0x5C280200, // 00A7 MOVE R10 R1 + 0x4C2C0000, // 00A8 LDNIL R11 + 0x7C200600, // 00A9 CALL R8 3 + 0x70020026, // 00AA JMP #00D2 + 0x8C180125, // 00AB GETMET R6 R0 K37 + 0x5C200600, // 00AC MOVE R8 R3 + 0x7C180400, // 00AD CALL R6 2 + 0x741A0008, // 00AE JMPT R6 #00B8 + 0x8C180126, // 00AF GETMET R6 R0 K38 + 0x60200018, // 00B0 GETGBL R8 G24 + 0x58240027, // 00B1 LDCONST R9 K39 + 0x5C280600, // 00B2 MOVE R10 R3 + 0x7C200400, // 00B3 CALL R8 2 + 0x7C180400, // 00B4 CALL R6 2 + 0x8C180104, // 00B5 GETMET R6 R0 K4 + 0x7C180200, // 00B6 CALL R6 1 + 0x80000C00, // 00B7 RET 0 + 0x8C180120, // 00B8 GETMET R6 R0 K32 + 0x60200018, // 00B9 GETGBL R8 G24 + 0x58240028, // 00BA LDCONST R9 K40 + 0x5C280200, // 00BB MOVE R10 R1 + 0x5C2C0600, // 00BC MOVE R11 R3 + 0x5C300800, // 00BD MOVE R12 R4 + 0x7C200800, // 00BE CALL R8 4 + 0x7C180400, // 00BF CALL R6 2 + 0x8C180129, // 00C0 GETMET R6 R0 K41 + 0x5C200600, // 00C1 MOVE R8 R3 + 0x7C180400, // 00C2 CALL R6 2 + 0x4C1C0000, // 00C3 LDNIL R7 + 0x201C0C07, // 00C4 NE R7 R6 R7 + 0x781E0004, // 00C5 JMPF R7 #00CB + 0x881C0112, // 00C6 GETMBR R7 R0 K18 + 0x8C1C0F22, // 00C7 GETMET R7 R7 K34 + 0x5C240200, // 00C8 MOVE R9 R1 + 0x5C280C00, // 00C9 MOVE R10 R6 + 0x7C1C0600, // 00CA CALL R7 3 + 0x8C1C012A, // 00CB GETMET R7 R0 K42 + 0x60240018, // 00CC GETGBL R9 G24 + 0x5828002B, // 00CD LDCONST R10 K43 + 0x5C2C0200, // 00CE MOVE R11 R1 + 0x7C240400, // 00CF CALL R9 2 + 0x5C280600, // 00D0 MOVE R10 R3 + 0x7C1C0600, // 00D1 CALL R7 3 + 0x70020004, // 00D2 JMP #00D8 + 0x8C0C012C, // 00D3 GETMET R3 R0 K44 + 0x5C140200, // 00D4 MOVE R5 R1 + 0x8818012D, // 00D5 GETMBR R6 R0 K45 + 0x841C0000, // 00D6 CLOSURE R7 P0 + 0x7C0C0800, // 00D7 CALL R3 4 + 0xA0000000, // 00D8 CLOSE R0 + 0x80000000, // 00D9 RET 0 }) ) ); @@ -7612,437 +11684,9 @@ be_local_closure(class_SimpleDSLTranspiler_expect_dot, /* name */ /******************************************************************** -** Solidified function: _process_simple_value_assignment +** Solidified function: process_standalone_log ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_simple_value_assignment, /* name */ - be_nested_proto( - 16, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[17]) { /* 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(peek), - /* K6 */ be_nested_str_weak(LEFT_PAREN), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(collect_inline_comment), - /* K10 */ be_nested_str_weak(add), - /* K11 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - /* K12 */ be_nested_str_weak(expr), - /* K13 */ be_nested_str_weak(symbol_table), - /* K14 */ be_nested_str_weak(contains), - /* K15 */ be_nested_str_weak(get), - /* K16 */ be_nested_str_weak(instance), - }), - be_str_weak(_process_simple_value_assignment), - &be_const_str_solidified, - ( &(const binstruction[78]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x4C140000, // 0002 LDNIL R5 - 0x20140805, // 0003 NE R5 R4 R5 - 0x78160012, // 0004 JMPF R5 #0018 - 0x88140901, // 0005 GETMBR R5 R4 K1 - 0xB81A0400, // 0006 GETNGBL R6 K2 - 0x88180D03, // 0007 GETMBR R6 R6 K3 - 0x88180D04, // 0008 GETMBR R6 R6 K4 - 0x1C140A06, // 0009 EQ R5 R5 R6 - 0x7816000C, // 000A JMPF R5 #0018 - 0x8C140105, // 000B GETMET R5 R0 K5 - 0x7C140200, // 000C CALL R5 1 - 0x4C180000, // 000D LDNIL R6 - 0x1C140A06, // 000E EQ R5 R5 R6 - 0x74160008, // 000F JMPT R5 #0019 - 0x8C140105, // 0010 GETMET R5 R0 K5 - 0x7C140200, // 0011 CALL R5 1 - 0x88140B01, // 0012 GETMBR R5 R5 K1 - 0xB81A0400, // 0013 GETNGBL R6 K2 - 0x88180D03, // 0014 GETMBR R6 R6 K3 - 0x88180D06, // 0015 GETMBR R6 R6 K6 - 0x20140A06, // 0016 NE R5 R5 R6 - 0x74160000, // 0017 JMPT R5 #0019 - 0x50140001, // 0018 LDBOOL R5 0 1 - 0x50140200, // 0019 LDBOOL R5 1 0 - 0x78160001, // 001A JMPF R5 #001D - 0x88180907, // 001B GETMBR R6 R4 K7 - 0x70020000, // 001C JMP #001E - 0x4C180000, // 001D LDNIL R6 - 0x8C1C0108, // 001E GETMET R7 R0 K8 - 0x5C240400, // 001F MOVE R9 R2 - 0x7C1C0400, // 0020 CALL R7 2 - 0x8C200109, // 0021 GETMET R8 R0 K9 - 0x7C200200, // 0022 CALL R8 1 - 0x8C24010A, // 0023 GETMET R9 R0 K10 - 0x602C0018, // 0024 GETGBL R11 G24 - 0x5830000B, // 0025 LDCONST R12 K11 - 0x5C340200, // 0026 MOVE R13 R1 - 0x88380F0C, // 0027 GETMBR R14 R7 K12 - 0x5C3C1000, // 0028 MOVE R15 R8 - 0x7C2C0800, // 0029 CALL R11 4 - 0x7C240400, // 002A CALL R9 2 - 0x7816001C, // 002B JMPF R5 #0049 - 0x4C240000, // 002C LDNIL R9 - 0x20240C09, // 002D NE R9 R6 R9 - 0x78260019, // 002E JMPF R9 #0049 - 0x8824010D, // 002F GETMBR R9 R0 K13 - 0x8C24130E, // 0030 GETMET R9 R9 K14 - 0x5C2C0C00, // 0031 MOVE R11 R6 - 0x7C240400, // 0032 CALL R9 2 - 0x78260014, // 0033 JMPF R9 #0049 - 0x8824010D, // 0034 GETMBR R9 R0 K13 - 0x8C24130F, // 0035 GETMET R9 R9 K15 - 0x5C2C0C00, // 0036 MOVE R11 R6 - 0x7C240400, // 0037 CALL R9 2 - 0x4C280000, // 0038 LDNIL R10 - 0x2028120A, // 0039 NE R10 R9 R10 - 0x782A0008, // 003A JMPF R10 #0044 - 0x88281310, // 003B GETMBR R10 R9 K16 - 0x4C2C0000, // 003C LDNIL R11 - 0x2028140B, // 003D NE R10 R10 R11 - 0x782A0004, // 003E JMPF R10 #0044 - 0x5C280600, // 003F MOVE R10 R3 - 0x5C2C0200, // 0040 MOVE R11 R1 - 0x88301310, // 0041 GETMBR R12 R9 K16 - 0x7C280400, // 0042 CALL R10 2 - 0x70020003, // 0043 JMP #0048 - 0x5C280600, // 0044 MOVE R10 R3 - 0x5C2C0200, // 0045 MOVE R11 R1 - 0x4C300000, // 0046 LDNIL R12 - 0x7C280400, // 0047 CALL R10 2 - 0x70020003, // 0048 JMP #004D - 0x5C240600, // 0049 MOVE R9 R3 - 0x5C280200, // 004A MOVE R10 R1 - 0x4C2C0000, // 004B LDNIL R11 - 0x7C240400, // 004C CALL R9 2 - 0x80000000, // 004D 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: 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_X28engine_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: 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: _is_named_arg_constructor -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__is_named_arg_constructor, /* 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[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(takes_named_args), - }), - be_str_weak(_is_named_arg_constructor), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0002, // 0006 JMPF R3 #000A - 0x8C0C0502, // 0007 GETMET R3 R2 K2 - 0x7C0C0200, // 0008 CALL R3 1 - 0x80040600, // 0009 RET 1 R3 - 0x500C0200, // 000A LDBOOL R3 1 0 - 0x80040600, // 000B RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_unary_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ - be_nested_proto( - 13, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[19]) { /* 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(ExpressionResult), - /* K4 */ be_nested_str_weak(literal), - /* K5 */ be_nested_str_weak(nil), - /* K6 */ be_nested_str_weak(type), - /* K7 */ be_nested_str_weak(animation_dsl), - /* K8 */ be_nested_str_weak(Token), - /* K9 */ be_nested_str_weak(MINUS), - /* K10 */ be_nested_str_weak(next), - /* K11 */ be_nested_str_weak(process_unary_expression), - /* K12 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K13 */ be_nested_str_weak(expr), - /* K14 */ be_nested_str_weak(has_functions), - /* K15 */ be_nested_str_weak(has_variables), - /* K16 */ be_nested_str_weak(has_properties), - /* K17 */ be_nested_str_weak(PLUS), - /* K18 */ be_nested_str_weak(process_primary_expression), - }), - be_str_weak(process_unary_expression), - &be_const_str_solidified, - ( &(const binstruction[57]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x4C140000, // 0002 LDNIL R5 - 0x1C140805, // 0003 EQ R5 R4 R5 - 0x78160007, // 0004 JMPF R5 #000D - 0x8C140101, // 0005 GETMET R5 R0 K1 - 0x581C0002, // 0006 LDCONST R7 K2 - 0x7C140400, // 0007 CALL R5 2 - 0x88140103, // 0008 GETMBR R5 R0 K3 - 0x8C140B04, // 0009 GETMET R5 R5 K4 - 0x581C0005, // 000A LDCONST R7 K5 - 0x7C140400, // 000B CALL R5 2 - 0x80040A00, // 000C RET 1 R5 - 0x88140906, // 000D GETMBR R5 R4 K6 - 0xB81A0E00, // 000E GETNGBL R6 K7 - 0x88180D08, // 000F GETMBR R6 R6 K8 - 0x88180D09, // 0010 GETMBR R6 R6 K9 - 0x1C140A06, // 0011 EQ R5 R5 R6 - 0x78160011, // 0012 JMPF R5 #0025 - 0x8C14010A, // 0013 GETMET R5 R0 K10 - 0x7C140200, // 0014 CALL R5 1 - 0x8C14010B, // 0015 GETMET R5 R0 K11 - 0x5C1C0200, // 0016 MOVE R7 R1 - 0x50200000, // 0017 LDBOOL R8 0 0 - 0x5C240600, // 0018 MOVE R9 R3 - 0x7C140800, // 0019 CALL R5 4 - 0x8C180103, // 001A GETMET R6 R0 K3 - 0x60200018, // 001B GETGBL R8 G24 - 0x5824000C, // 001C LDCONST R9 K12 - 0x88280B0D, // 001D GETMBR R10 R5 K13 - 0x7C200400, // 001E CALL R8 2 - 0x88240B0E, // 001F GETMBR R9 R5 K14 - 0x88280B0F, // 0020 GETMBR R10 R5 K15 - 0x882C0B10, // 0021 GETMBR R11 R5 K16 - 0x50300200, // 0022 LDBOOL R12 1 0 - 0x7C180C00, // 0023 CALL R6 6 - 0x80040C00, // 0024 RET 1 R6 - 0x88140906, // 0025 GETMBR R5 R4 K6 - 0xB81A0E00, // 0026 GETNGBL R6 K7 - 0x88180D08, // 0027 GETMBR R6 R6 K8 - 0x88180D11, // 0028 GETMBR R6 R6 K17 - 0x1C140A06, // 0029 EQ R5 R5 R6 - 0x78160007, // 002A JMPF R5 #0033 - 0x8C14010A, // 002B GETMET R5 R0 K10 - 0x7C140200, // 002C CALL R5 1 - 0x8C14010B, // 002D GETMET R5 R0 K11 - 0x5C1C0200, // 002E MOVE R7 R1 - 0x50200000, // 002F LDBOOL R8 0 0 - 0x5C240600, // 0030 MOVE R9 R3 - 0x7C140800, // 0031 CALL R5 4 - 0x80040A00, // 0032 RET 1 R5 - 0x8C140112, // 0033 GETMET R5 R0 K18 - 0x5C1C0200, // 0034 MOVE R7 R1 - 0x5C200400, // 0035 MOVE R8 R2 - 0x5C240600, // 0036 MOVE R9 R3 - 0x7C140800, // 0037 CALL R5 4 - 0x80040A00, // 0038 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_log_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ be_nested_proto( 9, /* nstack */ 1, /* argc */ @@ -8067,10 +11711,10 @@ be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* na /* 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), + /* K14 */ be_nested_str_weak(standalone), /* K15 */ be_nested_str_weak(add), }), - be_str_weak(process_log_statement_fluent), + be_str_weak(process_standalone_log), &be_const_str_solidified, ( &(const binstruction[37]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 @@ -8117,112 +11761,59 @@ be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* na /******************************************************************** -** Solidified function: process_time_value +** Solidified function: _validate_template_parameter_usage ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, /* name */ be_nested_proto( - 8, /* nstack */ - 1, /* argc */ + 14, /* nstack */ + 4, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[18]) { /* 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(CONTEXT_TIME), - /* K14 */ be_nested_str_weak(expr), - /* K15 */ be_nested_str_weak(error), - /* K16 */ be_nested_str_weak(Expected_X20time_X20value), - /* K17 */ be_nested_str_weak(1000), + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(_X25s_), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(warning), + /* K4 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20parameter_X20_X27_X25s_X27_X20is_X20declared_X20but_X20never_X20used_X20in_X20the_X20template_X20body_X2E), + /* K5 */ be_nested_str_weak(stop_iteration), }), - be_str_weak(process_time_value), + be_str_weak(_validate_template_parameter_usage), &be_const_str_solidified, - ( &(const binstruction[71]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000F, // 0004 JMPF R2 #0015 - 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 - 0x780A0009, // 000A JMPF R2 #0015 - 0x88080305, // 000B GETMBR R2 R1 K5 - 0x8C0C0106, // 000C GETMET R3 R0 K6 - 0x7C0C0200, // 000D CALL R3 1 - 0x600C0008, // 000E GETGBL R3 G8 - 0x8C100107, // 000F GETMET R4 R0 K7 - 0x5C180400, // 0010 MOVE R6 R2 - 0x7C100400, // 0011 CALL R4 2 - 0x7C0C0200, // 0012 CALL R3 1 - 0x80040600, // 0013 RET 1 R3 - 0x70020030, // 0014 JMP #0046 - 0x4C080000, // 0015 LDNIL R2 - 0x20080202, // 0016 NE R2 R1 R2 - 0x780A0013, // 0017 JMPF R2 #002C - 0x88080301, // 0018 GETMBR R2 R1 K1 - 0xB80E0400, // 0019 GETNGBL R3 K2 - 0x880C0703, // 001A GETMBR R3 R3 K3 - 0x880C0708, // 001B GETMBR R3 R3 K8 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A000D, // 001D JMPF R2 #002C - 0x88080305, // 001E GETMBR R2 R1 K5 - 0x8C0C0106, // 001F GETMET R3 R0 K6 - 0x7C0C0200, // 0020 CALL R3 1 - 0x600C0008, // 0021 GETGBL R3 G8 - 0x60100009, // 0022 GETGBL R4 G9 - 0x6014000A, // 0023 GETGBL R5 G10 - 0x5C180400, // 0024 MOVE R6 R2 - 0x7C140200, // 0025 CALL R5 1 - 0x7C100200, // 0026 CALL R4 1 - 0x541603E7, // 0027 LDINT R5 1000 - 0x08100805, // 0028 MUL R4 R4 R5 - 0x7C0C0200, // 0029 CALL R3 1 - 0x80040600, // 002A RET 1 R3 - 0x70020019, // 002B JMP #0046 - 0x4C080000, // 002C LDNIL R2 - 0x20080202, // 002D NE R2 R1 R2 - 0x780A0012, // 002E JMPF R2 #0042 - 0x88080301, // 002F GETMBR R2 R1 K1 - 0xB80E0400, // 0030 GETNGBL R3 K2 - 0x880C0703, // 0031 GETMBR R3 R3 K3 - 0x880C0709, // 0032 GETMBR R3 R3 K9 - 0x1C080403, // 0033 EQ R2 R2 R3 - 0x780A000C, // 0034 JMPF R2 #0042 - 0x88080305, // 0035 GETMBR R2 R1 K5 - 0x8C0C010A, // 0036 GETMET R3 R0 K10 - 0x5C140400, // 0037 MOVE R5 R2 - 0x5818000B, // 0038 LDCONST R6 K11 - 0x7C0C0600, // 0039 CALL R3 3 - 0x8C0C010C, // 003A GETMET R3 R0 K12 - 0x8814010D, // 003B GETMBR R5 R0 K13 - 0x50180200, // 003C LDBOOL R6 1 0 - 0x501C0000, // 003D LDBOOL R7 0 0 - 0x7C0C0800, // 003E CALL R3 4 - 0x8810070E, // 003F GETMBR R4 R3 K14 - 0x80040800, // 0040 RET 1 R4 - 0x70020003, // 0041 JMP #0046 - 0x8C08010F, // 0042 GETMET R2 R0 K15 - 0x58100010, // 0043 LDCONST R4 K16 - 0x7C080400, // 0044 CALL R2 2 - 0x80062200, // 0045 RET 1 K17 - 0x80000000, // 0046 RET 0 + ( &(const binstruction[30]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x60140010, // 0001 GETGBL R5 G16 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C140200, // 0003 CALL R5 1 + 0xA8020014, // 0004 EXBLK 0 #001A + 0x5C180A00, // 0005 MOVE R6 R5 + 0x7C180000, // 0006 CALL R6 0 + 0x601C0018, // 0007 GETGBL R7 G24 + 0x58200001, // 0008 LDCONST R8 K1 + 0x5C240C00, // 0009 MOVE R9 R6 + 0x7C1C0400, // 000A CALL R7 2 + 0x8C200902, // 000B GETMET R8 R4 K2 + 0x5C280600, // 000C MOVE R10 R3 + 0x5C2C0E00, // 000D MOVE R11 R7 + 0x7C200600, // 000E CALL R8 3 + 0x5425FFFE, // 000F LDINT R9 -1 + 0x1C201009, // 0010 EQ R8 R8 R9 + 0x78220006, // 0011 JMPF R8 #0019 + 0x8C200103, // 0012 GETMET R8 R0 K3 + 0x60280018, // 0013 GETGBL R10 G24 + 0x582C0004, // 0014 LDCONST R11 K4 + 0x5C300200, // 0015 MOVE R12 R1 + 0x5C340C00, // 0016 MOVE R13 R6 + 0x7C280600, // 0017 CALL R10 3 + 0x7C200400, // 0018 CALL R8 2 + 0x7001FFEA, // 0019 JMP #0005 + 0x58140005, // 001A LDCONST R5 K5 + 0xAC140200, // 001B CATCH R5 1 0 + 0xB0080000, // 001C RAISE 2 R0 R0 + 0x80000000, // 001D RET 0 }) ) ); @@ -8230,65 +11821,186 @@ be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* name */ /******************************************************************** -** Solidified function: process_restart_statement_fluent +** Solidified function: generate_template_function ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent, /* name */ +be_local_closure(class_SimpleDSLTranspiler_generate_template_function, /* name */ be_nested_proto( - 12, /* nstack */ - 1, /* argc */ + 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[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), + ( &(const bvalue[27]) { /* 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(_symbol_table), + /* K11 */ be_nested_str_weak(strip_initialized), + /* K12 */ be_nested_str_weak(find), + /* K13 */ be_nested_str_weak(_add_typed_parameter_to_symbol_table), + /* K14 */ be_nested_str_weak(create_variable), + /* K15 */ be_nested_str_weak(transpile_template_body), + /* K16 */ be_nested_str_weak(split), + /* K17 */ be_nested_str_weak(_X0A), + /* K18 */ be_const_int(0), + /* K19 */ be_nested_str_weak(_X20_X20_X25s), + /* K20 */ be_nested_str_weak(_validate_template_parameter_usage), + /* K21 */ be_nested_str_weak(errors), + /* K22 */ be_nested_str_weak(error), + /* K23 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), + /* K24 */ be_nested_str_weak(end), + /* K25 */ be_nested_str_weak(), + /* K26 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X27_X25s_X27_X2C_X20_X25s_template_X29), }), - be_str_weak(process_restart_statement_fluent), + be_str_weak(generate_template_function), &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 + ( &(const binstruction[136]) { /* 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 + 0xB8220E00, // 0022 GETNGBL R8 K7 + 0x8C20110A, // 0023 GETMET R8 R8 K10 + 0x7C200200, // 0024 CALL R8 1 + 0x901E1208, // 0025 SETMBR R7 K9 R8 + 0x50200200, // 0026 LDBOOL R8 1 0 + 0x901E1608, // 0027 SETMBR R7 K11 R8 + 0x60200010, // 0028 GETGBL R8 G16 + 0x5C240400, // 0029 MOVE R9 R2 + 0x7C200200, // 002A CALL R8 1 + 0xA8020012, // 002B EXBLK 0 #003F + 0x5C241000, // 002C MOVE R9 R8 + 0x7C240000, // 002D CALL R9 0 + 0x8C28070C, // 002E GETMET R10 R3 K12 + 0x5C301200, // 002F MOVE R12 R9 + 0x7C280400, // 0030 CALL R10 2 + 0x4C2C0000, // 0031 LDNIL R11 + 0x202C140B, // 0032 NE R11 R10 R11 + 0x782E0005, // 0033 JMPF R11 #003A + 0x8C2C010D, // 0034 GETMET R11 R0 K13 + 0x88340F09, // 0035 GETMBR R13 R7 K9 + 0x5C381200, // 0036 MOVE R14 R9 + 0x5C3C1400, // 0037 MOVE R15 R10 + 0x7C2C0800, // 0038 CALL R11 4 + 0x70020003, // 0039 JMP #003E + 0x882C0F09, // 003A GETMBR R11 R7 K9 + 0x8C2C170E, // 003B GETMET R11 R11 K14 + 0x5C341200, // 003C MOVE R13 R9 + 0x7C2C0400, // 003D CALL R11 2 + 0x7001FFEC, // 003E JMP #002C + 0x58200003, // 003F LDCONST R8 K3 + 0xAC200200, // 0040 CATCH R8 1 0 + 0xB0080000, // 0041 RAISE 2 R0 R0 + 0x8C200F0F, // 0042 GETMET R8 R7 K15 + 0x7C200200, // 0043 CALL R8 1 + 0x4C240000, // 0044 LDNIL R9 + 0x20241009, // 0045 NE R9 R8 R9 + 0x7826001E, // 0046 JMPF R9 #0066 + 0x8C240B10, // 0047 GETMET R9 R5 K16 + 0x5C2C1000, // 0048 MOVE R11 R8 + 0x58300011, // 0049 LDCONST R12 K17 + 0x7C240600, // 004A CALL R9 3 + 0x60280010, // 004B GETGBL R10 G16 + 0x5C2C1200, // 004C MOVE R11 R9 + 0x7C280200, // 004D CALL R10 1 + 0xA802000D, // 004E EXBLK 0 #005D + 0x5C2C1400, // 004F MOVE R11 R10 + 0x7C2C0000, // 0050 CALL R11 0 + 0x6030000C, // 0051 GETGBL R12 G12 + 0x5C341600, // 0052 MOVE R13 R11 + 0x7C300200, // 0053 CALL R12 1 + 0x24301912, // 0054 GT R12 R12 K18 + 0x78320005, // 0055 JMPF R12 #005C + 0x8C300104, // 0056 GETMET R12 R0 K4 + 0x60380018, // 0057 GETGBL R14 G24 + 0x583C0013, // 0058 LDCONST R15 K19 + 0x5C401600, // 0059 MOVE R16 R11 + 0x7C380400, // 005A CALL R14 2 + 0x7C300400, // 005B CALL R12 2 + 0x7001FFF1, // 005C JMP #004F + 0x58280003, // 005D LDCONST R10 K3 + 0xAC280200, // 005E CATCH R10 1 0 + 0xB0080000, // 005F RAISE 2 R0 R0 + 0x8C280114, // 0060 GETMET R10 R0 K20 + 0x5C300200, // 0061 MOVE R12 R1 + 0x5C340400, // 0062 MOVE R13 R2 + 0x5C381000, // 0063 MOVE R14 R8 + 0x7C280800, // 0064 CALL R10 4 + 0x70020010, // 0065 JMP #0077 + 0x60240010, // 0066 GETGBL R9 G16 + 0x88280F15, // 0067 GETMBR R10 R7 K21 + 0x7C240200, // 0068 CALL R9 1 + 0xA8020009, // 0069 EXBLK 0 #0074 + 0x5C281200, // 006A MOVE R10 R9 + 0x7C280000, // 006B CALL R10 0 + 0x8C2C0116, // 006C GETMET R11 R0 K22 + 0x60340018, // 006D GETGBL R13 G24 + 0x58380017, // 006E LDCONST R14 K23 + 0x5C3C0200, // 006F MOVE R15 R1 + 0x5C401400, // 0070 MOVE R16 R10 + 0x7C340600, // 0071 CALL R13 3 + 0x7C2C0400, // 0072 CALL R11 2 + 0x7001FFF5, // 0073 JMP #006A + 0x58240003, // 0074 LDCONST R9 K3 + 0xAC240200, // 0075 CATCH R9 1 0 + 0xB0080000, // 0076 RAISE 2 R0 R0 + 0x8C240104, // 0077 GETMET R9 R0 K4 + 0x582C0018, // 0078 LDCONST R11 K24 + 0x7C240400, // 0079 CALL R9 2 + 0x8C240104, // 007A GETMET R9 R0 K4 + 0x582C0019, // 007B LDCONST R11 K25 + 0x7C240400, // 007C CALL R9 2 + 0x8C240104, // 007D GETMET R9 R0 K4 + 0x602C0018, // 007E GETGBL R11 G24 + 0x5830001A, // 007F LDCONST R12 K26 + 0x5C340200, // 0080 MOVE R13 R1 + 0x5C380200, // 0081 MOVE R14 R1 + 0x7C2C0600, // 0082 CALL R11 3 + 0x7C240400, // 0083 CALL R9 2 + 0x8C240104, // 0084 GETMET R9 R0 K4 + 0x582C0019, // 0085 LDCONST R11 K25 + 0x7C240400, // 0086 CALL R9 2 + 0x80000000, // 0087 RET 0 }) ) ); @@ -8296,59 +12008,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent, / /******************************************************************** -** Solidified function: expect_assign +** Solidified function: check_right_bracket ********************************************************************/ -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: generate_default_strip_initialization -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization, /* name */ +be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ @@ -8359,1357 +12021,29 @@ be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(strip_initialized), - /* K1 */ be_nested_str_weak(add), - /* K2 */ be_nested_str_weak(_X23_X20Auto_X2Dgenerated_X20strip_X20initialization_X20_X28using_X20Tasmota_X20configuration_X29), - /* K3 */ be_nested_str_weak(var_X20engine_X20_X3D_X20animation_X2Einit_strip_X28_X29), - /* K4 */ be_nested_str_weak(), - }), - be_str_weak(generate_default_strip_initialization), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x78060000, // 0001 JMPF R1 #0003 - 0x80000200, // 0002 RET 0 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x580C0002, // 0004 LDCONST R3 K2 - 0x7C040400, // 0005 CALL R1 2 - 0x8C040101, // 0006 GETMET R1 R0 K1 - 0x580C0003, // 0007 LDCONST R3 K3 - 0x7C040400, // 0008 CALL R1 2 - 0x8C040101, // 0009 GETMET R1 R0 K1 - 0x580C0004, // 000A LDCONST R3 K4 - 0x7C040400, // 000B CALL R1 2 - 0x50040200, // 000C LDBOOL R1 1 0 - 0x90020001, // 000D SETMBR R0 K0 R1 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_primary_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name */ - be_nested_proto( - 16, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[82]) { /* 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(ExpressionResult), - /* K4 */ be_nested_str_weak(literal), - /* K5 */ be_nested_str_weak(nil), - /* 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(next), - /* K11 */ be_nested_str_weak(process_additive_expression), - /* K12 */ be_nested_str_weak(expect_right_paren), - /* K13 */ be_nested_str_weak(_X28_X25s_X29), - /* K14 */ be_nested_str_weak(expr), - /* K15 */ be_nested_str_weak(has_functions), - /* K16 */ be_nested_str_weak(has_variables), - /* K17 */ be_nested_str_weak(has_properties), - /* K18 */ be_nested_str_weak(COLOR), - /* K19 */ be_nested_str_weak(convert_color), - /* K20 */ be_nested_str_weak(value), - /* K21 */ be_nested_str_weak(color), - /* K22 */ be_nested_str_weak(TIME), - /* K23 */ be_nested_str_weak(process_time_value), - /* K24 */ be_nested_str_weak(PERCENTAGE), - /* K25 */ be_nested_str_weak(process_percentage_value), - /* K26 */ be_nested_str_weak(NUMBER), - /* K27 */ be_nested_str_weak(KEYWORD), - /* K28 */ be_nested_str_weak(true), - /* K29 */ be_nested_str_weak(false), - /* K30 */ be_nested_str_weak(STRING), - /* K31 */ be_nested_str_weak(_X22_X25s_X22), - /* K32 */ be_nested_str_weak(LEFT_BRACKET), - /* K33 */ be_nested_str_weak(process_array_literal), - /* K34 */ be_nested_str_weak(IDENTIFIER), - /* K35 */ be_nested_str_weak(peek), - /* K36 */ be_nested_str_weak(symbol_table), - /* K37 */ be_nested_str_weak(get), - /* K38 */ be_nested_str_weak(Unknown_X20function_X20or_X20identifier_X20_X27_X25s_X27_X2E_X20Make_X20sure_X20it_X27s_X20defined_X20before_X20use_X2E), - /* K39 */ be_nested_str_weak(skip_statement), - /* K40 */ be_nested_str_weak(is_user_function), - /* K41 */ be_nested_str_weak(_process_user_function_call), - /* K42 */ be_nested_str_weak(function_call), - /* K43 */ be_nested_str_weak(is_dangerous_call), - /* K44 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20cannot_X20be_X20used_X20in_X20computed_X20expressions_X2E_X20This_X20creates_X20a_X20new_X20instance_X20at_X20each_X20evaluation_X2E_X20Use_X20either_X3A_X0A_X20_X20set_X20var_name_X20_X3D_X20_X25s_X28_X29_X20_X20_X23_X20Single_X20function_X20call_X0A_X20_X20set_X20computed_X20_X3D_X20_X28existing_var_X20_X2B_X201_X29_X20_X2F_X202_X20_X20_X23_X20Computation_X20with_X20existing_X20values), - /* K45 */ be_nested_str_weak(_symbol_entry), - /* K46 */ be_nested_str_weak(TYPE_MATH_FUNCTION), - /* K47 */ be_nested_str_weak(process_function_arguments), - /* K48 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K49 */ be_nested_str_weak(get_reference), - /* K50 */ be_nested_str_weak(TYPE_TEMPLATE), - /* K51 */ be_nested_str_weak(), - /* K52 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K53 */ be_nested_str_weak(engine), - /* K54 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K55 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20not_X20supported_X20in_X20expression_X20context), - /* K56 */ be_nested_str_weak(takes_named_args), - /* K57 */ be_nested_str_weak(process_function_call), - /* K58 */ be_nested_str_weak(_determine_function_return_type), - /* K59 */ be_nested_str_weak(instance), - /* K60 */ be_nested_str_weak(CONTEXT_ARGUMENT), - /* K61 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K62 */ be_nested_str_weak(CONTEXT_VARIABLE), - /* K63 */ be_nested_str_weak(process_nested_function_call), - /* K64 */ be_nested_str_weak(constructor_call), - /* K65 */ be_nested_str_weak(Unknown_X20identifier_X20_X27_X25s_X27_X2E_X20Make_X20sure_X20it_X27s_X20defined_X20before_X20use_X2E), - /* K66 */ be_nested_str_weak(DOT), - /* K67 */ be_nested_str_weak(expect_identifier), - /* K68 */ be_nested_str_weak(_X25s_X2E_X25s), - /* K69 */ be_nested_str_weak(contains), - /* K70 */ be_nested_str_weak(_validate_single_parameter), - /* K71 */ be_nested_str_weak(TYPE_SEQUENCE), - /* K72 */ 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), - /* K73 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K74 */ be_nested_str_weak(property_access), - /* K75 */ be_nested_str_weak(variable), - /* K76 */ be_nested_str_weak(animation_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), - /* K77 */ be_nested_str_weak(symbol_exists), - /* K78 */ be_nested_str_weak(_determine_symbol_return_type), - /* K79 */ be_nested_str_weak(variable_ref), - /* K80 */ be_nested_str_weak(animation_X2E_X25s), - /* K81 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), - }), - be_str_weak(process_primary_expression), - &be_const_str_solidified, - ( &(const binstruction[527]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x4C140000, // 0002 LDNIL R5 - 0x1C140805, // 0003 EQ R5 R4 R5 - 0x78160007, // 0004 JMPF R5 #000D - 0x8C140101, // 0005 GETMET R5 R0 K1 - 0x581C0002, // 0006 LDCONST R7 K2 - 0x7C140400, // 0007 CALL R5 2 - 0x88140103, // 0008 GETMBR R5 R0 K3 - 0x8C140B04, // 0009 GETMET R5 R5 K4 - 0x581C0005, // 000A LDCONST R7 K5 - 0x7C140400, // 000B CALL R5 2 - 0x80040A00, // 000C RET 1 R5 - 0x88140906, // 000D GETMBR R5 R4 K6 - 0xB81A0E00, // 000E GETNGBL R6 K7 - 0x88180D08, // 000F GETMBR R6 R6 K8 - 0x88180D09, // 0010 GETMBR R6 R6 K9 - 0x1C140A06, // 0011 EQ R5 R5 R6 - 0x78160013, // 0012 JMPF R5 #0027 - 0x8C14010A, // 0013 GETMET R5 R0 K10 - 0x7C140200, // 0014 CALL R5 1 - 0x8C14010B, // 0015 GETMET R5 R0 K11 - 0x5C1C0200, // 0016 MOVE R7 R1 - 0x50200000, // 0017 LDBOOL R8 0 0 - 0x5C240600, // 0018 MOVE R9 R3 - 0x7C140800, // 0019 CALL R5 4 - 0x8C18010C, // 001A GETMET R6 R0 K12 - 0x7C180200, // 001B CALL R6 1 - 0x8C180103, // 001C GETMET R6 R0 K3 - 0x60200018, // 001D GETGBL R8 G24 - 0x5824000D, // 001E LDCONST R9 K13 - 0x88280B0E, // 001F GETMBR R10 R5 K14 - 0x7C200400, // 0020 CALL R8 2 - 0x88240B0F, // 0021 GETMBR R9 R5 K15 - 0x88280B10, // 0022 GETMBR R10 R5 K16 - 0x882C0B11, // 0023 GETMBR R11 R5 K17 - 0x50300200, // 0024 LDBOOL R12 1 0 - 0x7C180C00, // 0025 CALL R6 6 - 0x80040C00, // 0026 RET 1 R6 - 0x88140906, // 0027 GETMBR R5 R4 K6 - 0xB81A0E00, // 0028 GETNGBL R6 K7 - 0x88180D08, // 0029 GETMBR R6 R6 K8 - 0x88180D12, // 002A GETMBR R6 R6 K18 - 0x1C140A06, // 002B EQ R5 R5 R6 - 0x78160009, // 002C JMPF R5 #0037 - 0x8C14010A, // 002D GETMET R5 R0 K10 - 0x7C140200, // 002E CALL R5 1 - 0x88140103, // 002F GETMBR R5 R0 K3 - 0x8C140B04, // 0030 GETMET R5 R5 K4 - 0x8C1C0113, // 0031 GETMET R7 R0 K19 - 0x88240914, // 0032 GETMBR R9 R4 K20 - 0x7C1C0400, // 0033 CALL R7 2 - 0x58200015, // 0034 LDCONST R8 K21 - 0x7C140600, // 0035 CALL R5 3 - 0x80040A00, // 0036 RET 1 R5 - 0x88140906, // 0037 GETMBR R5 R4 K6 - 0xB81A0E00, // 0038 GETNGBL R6 K7 - 0x88180D08, // 0039 GETMBR R6 R6 K8 - 0x88180D16, // 003A GETMBR R6 R6 K22 - 0x1C140A06, // 003B EQ R5 R5 R6 - 0x78160005, // 003C JMPF R5 #0043 - 0x88140103, // 003D GETMBR R5 R0 K3 - 0x8C140B04, // 003E GETMET R5 R5 K4 - 0x8C1C0117, // 003F GETMET R7 R0 K23 - 0x7C1C0200, // 0040 CALL R7 1 - 0x7C140400, // 0041 CALL R5 2 - 0x80040A00, // 0042 RET 1 R5 - 0x88140906, // 0043 GETMBR R5 R4 K6 - 0xB81A0E00, // 0044 GETNGBL R6 K7 - 0x88180D08, // 0045 GETMBR R6 R6 K8 - 0x88180D18, // 0046 GETMBR R6 R6 K24 - 0x1C140A06, // 0047 EQ R5 R5 R6 - 0x78160007, // 0048 JMPF R5 #0051 - 0x88140103, // 0049 GETMBR R5 R0 K3 - 0x8C140B04, // 004A GETMET R5 R5 K4 - 0x601C0008, // 004B GETGBL R7 G8 - 0x8C200119, // 004C GETMET R8 R0 K25 - 0x7C200200, // 004D CALL R8 1 - 0x7C1C0200, // 004E CALL R7 1 - 0x7C140400, // 004F CALL R5 2 - 0x80040A00, // 0050 RET 1 R5 - 0x88140906, // 0051 GETMBR R5 R4 K6 - 0xB81A0E00, // 0052 GETNGBL R6 K7 - 0x88180D08, // 0053 GETMBR R6 R6 K8 - 0x88180D1A, // 0054 GETMBR R6 R6 K26 - 0x1C140A06, // 0055 EQ R5 R5 R6 - 0x78160007, // 0056 JMPF R5 #005F - 0x88140914, // 0057 GETMBR R5 R4 K20 - 0x8C18010A, // 0058 GETMET R6 R0 K10 - 0x7C180200, // 0059 CALL R6 1 - 0x88180103, // 005A GETMBR R6 R0 K3 - 0x8C180D04, // 005B GETMET R6 R6 K4 - 0x5C200A00, // 005C MOVE R8 R5 - 0x7C180400, // 005D CALL R6 2 - 0x80040C00, // 005E RET 1 R6 - 0x88140906, // 005F GETMBR R5 R4 K6 - 0xB81A0E00, // 0060 GETNGBL R6 K7 - 0x88180D08, // 0061 GETMBR R6 R6 K8 - 0x88180D1B, // 0062 GETMBR R6 R6 K27 - 0x1C140A06, // 0063 EQ R5 R5 R6 - 0x7816000D, // 0064 JMPF R5 #0073 - 0x88140914, // 0065 GETMBR R5 R4 K20 - 0x1C140B1C, // 0066 EQ R5 R5 K28 - 0x74160002, // 0067 JMPT R5 #006B - 0x88140914, // 0068 GETMBR R5 R4 K20 - 0x1C140B1D, // 0069 EQ R5 R5 K29 - 0x78160007, // 006A JMPF R5 #0073 - 0x88140914, // 006B GETMBR R5 R4 K20 - 0x8C18010A, // 006C GETMET R6 R0 K10 - 0x7C180200, // 006D CALL R6 1 - 0x88180103, // 006E GETMBR R6 R0 K3 - 0x8C180D04, // 006F GETMET R6 R6 K4 - 0x5C200A00, // 0070 MOVE R8 R5 - 0x7C180400, // 0071 CALL R6 2 - 0x80040C00, // 0072 RET 1 R6 - 0x88140906, // 0073 GETMBR R5 R4 K6 - 0xB81A0E00, // 0074 GETNGBL R6 K7 - 0x88180D08, // 0075 GETMBR R6 R6 K8 - 0x88180D1E, // 0076 GETMBR R6 R6 K30 - 0x1C140A06, // 0077 EQ R5 R5 R6 - 0x7816000A, // 0078 JMPF R5 #0084 - 0x88140914, // 0079 GETMBR R5 R4 K20 - 0x8C18010A, // 007A GETMET R6 R0 K10 - 0x7C180200, // 007B CALL R6 1 - 0x88180103, // 007C GETMBR R6 R0 K3 - 0x8C180D04, // 007D GETMET R6 R6 K4 - 0x60200018, // 007E GETGBL R8 G24 - 0x5824001F, // 007F LDCONST R9 K31 - 0x5C280A00, // 0080 MOVE R10 R5 - 0x7C200400, // 0081 CALL R8 2 - 0x7C180400, // 0082 CALL R6 2 - 0x80040C00, // 0083 RET 1 R6 - 0x88140906, // 0084 GETMBR R5 R4 K6 - 0xB81A0E00, // 0085 GETNGBL R6 K7 - 0x88180D08, // 0086 GETMBR R6 R6 K8 - 0x88180D20, // 0087 GETMBR R6 R6 K32 - 0x1C140A06, // 0088 EQ R5 R5 R6 - 0x78160008, // 0089 JMPF R5 #0093 - 0x5C140600, // 008A MOVE R5 R3 - 0x74160006, // 008B JMPT R5 #0093 - 0x8C140121, // 008C GETMET R5 R0 K33 - 0x7C140200, // 008D CALL R5 1 - 0x88180103, // 008E GETMBR R6 R0 K3 - 0x8C180D04, // 008F GETMET R6 R6 K4 - 0x5C200A00, // 0090 MOVE R8 R5 - 0x7C180400, // 0091 CALL R6 2 - 0x80040C00, // 0092 RET 1 R6 - 0x88140906, // 0093 GETMBR R5 R4 K6 - 0xB81A0E00, // 0094 GETNGBL R6 K7 - 0x88180D08, // 0095 GETMBR R6 R6 K8 - 0x88180D1B, // 0096 GETMBR R6 R6 K27 - 0x1C140A06, // 0097 EQ R5 R5 R6 - 0x74160005, // 0098 JMPT R5 #009F - 0x88140906, // 0099 GETMBR R5 R4 K6 - 0xB81A0E00, // 009A GETNGBL R6 K7 - 0x88180D08, // 009B GETMBR R6 R6 K8 - 0x88180D22, // 009C GETMBR R6 R6 K34 - 0x1C140A06, // 009D EQ R5 R5 R6 - 0x781600B6, // 009E JMPF R5 #0156 - 0x8C140123, // 009F GETMET R5 R0 K35 - 0x7C140200, // 00A0 CALL R5 1 - 0x4C180000, // 00A1 LDNIL R6 - 0x20140A06, // 00A2 NE R5 R5 R6 - 0x781600B1, // 00A3 JMPF R5 #0156 - 0x8C140123, // 00A4 GETMET R5 R0 K35 - 0x7C140200, // 00A5 CALL R5 1 - 0x88140B06, // 00A6 GETMBR R5 R5 K6 - 0xB81A0E00, // 00A7 GETNGBL R6 K7 - 0x88180D08, // 00A8 GETMBR R6 R6 K8 - 0x88180D09, // 00A9 GETMBR R6 R6 K9 - 0x1C140A06, // 00AA EQ R5 R5 R6 - 0x781600A9, // 00AB JMPF R5 #0156 - 0x88140914, // 00AC GETMBR R5 R4 K20 - 0x88180124, // 00AD GETMBR R6 R0 K36 - 0x8C180D25, // 00AE GETMET R6 R6 K37 - 0x5C200A00, // 00AF MOVE R8 R5 - 0x7C180400, // 00B0 CALL R6 2 - 0x4C1C0000, // 00B1 LDNIL R7 - 0x1C1C0C07, // 00B2 EQ R7 R6 R7 - 0x781E000C, // 00B3 JMPF R7 #00C1 - 0x8C1C0101, // 00B4 GETMET R7 R0 K1 - 0x60240018, // 00B5 GETGBL R9 G24 - 0x58280026, // 00B6 LDCONST R10 K38 - 0x5C2C0A00, // 00B7 MOVE R11 R5 - 0x7C240400, // 00B8 CALL R9 2 - 0x7C1C0400, // 00B9 CALL R7 2 - 0x8C1C0127, // 00BA GETMET R7 R0 K39 - 0x7C1C0200, // 00BB CALL R7 1 - 0x881C0103, // 00BC GETMBR R7 R0 K3 - 0x8C1C0F04, // 00BD GETMET R7 R7 K4 - 0x58240005, // 00BE LDCONST R9 K5 - 0x7C1C0400, // 00BF CALL R7 2 - 0x80040E00, // 00C0 RET 1 R7 - 0x8C1C0D28, // 00C1 GETMET R7 R6 K40 - 0x7C1C0200, // 00C2 CALL R7 1 - 0x781E0009, // 00C3 JMPF R7 #00CE - 0x8C1C010A, // 00C4 GETMET R7 R0 K10 - 0x7C1C0200, // 00C5 CALL R7 1 - 0x8C1C0129, // 00C6 GETMET R7 R0 K41 - 0x5C240A00, // 00C7 MOVE R9 R5 - 0x7C1C0400, // 00C8 CALL R7 2 - 0x88200103, // 00C9 GETMBR R8 R0 K3 - 0x8C20112A, // 00CA GETMET R8 R8 K42 - 0x5C280E00, // 00CB MOVE R10 R7 - 0x7C200400, // 00CC CALL R8 2 - 0x80041000, // 00CD RET 1 R8 - 0x5C1C0400, // 00CE MOVE R7 R2 - 0x741E0010, // 00CF JMPT R7 #00E1 - 0x8C1C0D2B, // 00D0 GETMET R7 R6 K43 - 0x7C1C0200, // 00D1 CALL R7 1 - 0x781E000D, // 00D2 JMPF R7 #00E1 - 0x8C1C0101, // 00D3 GETMET R7 R0 K1 - 0x60240018, // 00D4 GETGBL R9 G24 - 0x5828002C, // 00D5 LDCONST R10 K44 - 0x5C2C0A00, // 00D6 MOVE R11 R5 - 0x5C300A00, // 00D7 MOVE R12 R5 - 0x7C240600, // 00D8 CALL R9 3 - 0x7C1C0400, // 00D9 CALL R7 2 - 0x8C1C0127, // 00DA GETMET R7 R0 K39 - 0x7C1C0200, // 00DB CALL R7 1 - 0x881C0103, // 00DC GETMBR R7 R0 K3 - 0x8C1C0F04, // 00DD GETMET R7 R7 K4 - 0x58240005, // 00DE LDCONST R9 K5 - 0x7C1C0400, // 00DF CALL R7 2 - 0x80040E00, // 00E0 RET 1 R7 - 0x780E003F, // 00E1 JMPF R3 #0122 - 0x8C1C010A, // 00E2 GETMET R7 R0 K10 - 0x7C1C0200, // 00E3 CALL R7 1 - 0x4C1C0000, // 00E4 LDNIL R7 - 0x201C0C07, // 00E5 NE R7 R6 R7 - 0x781E0011, // 00E6 JMPF R7 #00F9 - 0x881C0D06, // 00E7 GETMBR R7 R6 K6 - 0xB8220E00, // 00E8 GETNGBL R8 K7 - 0x8820112D, // 00E9 GETMBR R8 R8 K45 - 0x8820112E, // 00EA GETMBR R8 R8 K46 - 0x1C1C0E08, // 00EB EQ R7 R7 R8 - 0x781E000B, // 00EC JMPF R7 #00F9 - 0x8C1C012F, // 00ED GETMET R7 R0 K47 - 0x50240200, // 00EE LDBOOL R9 1 0 - 0x7C1C0400, // 00EF CALL R7 2 - 0x88200103, // 00F0 GETMBR R8 R0 K3 - 0x8C20112A, // 00F1 GETMET R8 R8 K42 - 0x60280018, // 00F2 GETGBL R10 G24 - 0x582C0030, // 00F3 LDCONST R11 K48 - 0x8C300D31, // 00F4 GETMET R12 R6 K49 - 0x7C300200, // 00F5 CALL R12 1 - 0x5C340E00, // 00F6 MOVE R13 R7 - 0x7C280600, // 00F7 CALL R10 3 - 0x7C200400, // 00F8 CALL R8 2 - 0x4C1C0000, // 00F9 LDNIL R7 - 0x201C0C07, // 00FA NE R7 R6 R7 - 0x781E0019, // 00FB JMPF R7 #0116 - 0x881C0D06, // 00FC GETMBR R7 R6 K6 - 0xB8220E00, // 00FD GETNGBL R8 K7 - 0x8820112D, // 00FE GETMBR R8 R8 K45 - 0x88201132, // 00FF GETMBR R8 R8 K50 - 0x1C1C0E08, // 0100 EQ R7 R7 R8 - 0x781E0013, // 0101 JMPF R7 #0116 - 0x8C1C012F, // 0102 GETMET R7 R0 K47 - 0x50240200, // 0103 LDBOOL R9 1 0 - 0x7C1C0400, // 0104 CALL R7 2 - 0x20200F33, // 0105 NE R8 R7 K51 - 0x78220004, // 0106 JMPF R8 #010C - 0x60200018, // 0107 GETGBL R8 G24 - 0x58240034, // 0108 LDCONST R9 K52 - 0x5C280E00, // 0109 MOVE R10 R7 - 0x7C200400, // 010A CALL R8 2 - 0x70020000, // 010B JMP #010D - 0x58200035, // 010C LDCONST R8 K53 - 0x88240103, // 010D GETMBR R9 R0 K3 - 0x8C24132A, // 010E GETMET R9 R9 K42 - 0x602C0018, // 010F GETGBL R11 G24 - 0x58300036, // 0110 LDCONST R12 K54 - 0x5C340A00, // 0111 MOVE R13 R5 - 0x5C381000, // 0112 MOVE R14 R8 - 0x7C2C0600, // 0113 CALL R11 3 - 0x7C240400, // 0114 CALL R9 2 - 0x80041200, // 0115 RET 1 R9 - 0x8C1C0101, // 0116 GETMET R7 R0 K1 - 0x60240018, // 0117 GETGBL R9 G24 - 0x58280037, // 0118 LDCONST R10 K55 - 0x5C2C0A00, // 0119 MOVE R11 R5 - 0x7C240400, // 011A CALL R9 2 - 0x7C1C0400, // 011B CALL R7 2 - 0x881C0103, // 011C GETMBR R7 R0 K3 - 0x8C1C0F04, // 011D GETMET R7 R7 K4 - 0x58240005, // 011E LDCONST R9 K5 - 0x7C1C0400, // 011F CALL R7 2 - 0x80040E00, // 0120 RET 1 R7 - 0x70020033, // 0121 JMP #0156 - 0x8C1C0D38, // 0122 GETMET R7 R6 K56 - 0x7C1C0200, // 0123 CALL R7 1 - 0x741E000D, // 0124 JMPT R7 #0133 - 0x8C1C0139, // 0125 GETMET R7 R0 K57 - 0x5C240200, // 0126 MOVE R9 R1 - 0x7C1C0400, // 0127 CALL R7 2 - 0x8C20013A, // 0128 GETMET R8 R0 K58 - 0x5C280C00, // 0129 MOVE R10 R6 - 0x7C200400, // 012A CALL R8 2 - 0x88240103, // 012B GETMBR R9 R0 K3 - 0x8C24132A, // 012C GETMET R9 R9 K42 - 0x5C2C0E00, // 012D MOVE R11 R7 - 0x5C301000, // 012E MOVE R12 R8 - 0x88340D3B, // 012F GETMBR R13 R6 K59 - 0x7C240800, // 0130 CALL R9 4 - 0x80041200, // 0131 RET 1 R9 - 0x70020022, // 0132 JMP #0156 - 0x881C013C, // 0133 GETMBR R7 R0 K60 - 0x1C1C0207, // 0134 EQ R7 R1 R7 - 0x741E0005, // 0135 JMPT R7 #013C - 0x881C013D, // 0136 GETMBR R7 R0 K61 - 0x1C1C0207, // 0137 EQ R7 R1 R7 - 0x741E0002, // 0138 JMPT R7 #013C - 0x881C013E, // 0139 GETMBR R7 R0 K62 - 0x1C1C0207, // 013A EQ R7 R1 R7 - 0x781E000C, // 013B JMPF R7 #0149 - 0x8C1C013F, // 013C GETMET R7 R0 K63 - 0x7C1C0200, // 013D CALL R7 1 - 0x8C20013A, // 013E GETMET R8 R0 K58 - 0x5C280C00, // 013F MOVE R10 R6 - 0x7C200400, // 0140 CALL R8 2 - 0x88240103, // 0141 GETMBR R9 R0 K3 - 0x8C241340, // 0142 GETMET R9 R9 K64 - 0x5C2C0E00, // 0143 MOVE R11 R7 - 0x5C301000, // 0144 MOVE R12 R8 - 0x88340D3B, // 0145 GETMBR R13 R6 K59 - 0x7C240800, // 0146 CALL R9 4 - 0x80041200, // 0147 RET 1 R9 - 0x7002000C, // 0148 JMP #0156 - 0x8C1C0139, // 0149 GETMET R7 R0 K57 - 0x5C240200, // 014A MOVE R9 R1 - 0x7C1C0400, // 014B CALL R7 2 - 0x8C20013A, // 014C GETMET R8 R0 K58 - 0x5C280C00, // 014D MOVE R10 R6 - 0x7C200400, // 014E CALL R8 2 - 0x88240103, // 014F GETMBR R9 R0 K3 - 0x8C241340, // 0150 GETMET R9 R9 K64 - 0x5C2C0E00, // 0151 MOVE R11 R7 - 0x5C301000, // 0152 MOVE R12 R8 - 0x88340D3B, // 0153 GETMBR R13 R6 K59 - 0x7C240800, // 0154 CALL R9 4 - 0x80041200, // 0155 RET 1 R9 - 0x88140906, // 0156 GETMBR R5 R4 K6 - 0xB81A0E00, // 0157 GETNGBL R6 K7 - 0x88180D08, // 0158 GETMBR R6 R6 K8 - 0x88180D22, // 0159 GETMBR R6 R6 K34 - 0x1C140A06, // 015A EQ R5 R5 R6 - 0x78160094, // 015B JMPF R5 #01F1 - 0x88140914, // 015C GETMBR R5 R4 K20 - 0x88180124, // 015D GETMBR R6 R0 K36 - 0x8C180D25, // 015E GETMET R6 R6 K37 - 0x5C200A00, // 015F MOVE R8 R5 - 0x7C180400, // 0160 CALL R6 2 - 0x4C1C0000, // 0161 LDNIL R7 - 0x1C1C0C07, // 0162 EQ R7 R6 R7 - 0x781E000C, // 0163 JMPF R7 #0171 - 0x8C1C0101, // 0164 GETMET R7 R0 K1 - 0x60240018, // 0165 GETGBL R9 G24 - 0x58280041, // 0166 LDCONST R10 K65 - 0x5C2C0A00, // 0167 MOVE R11 R5 - 0x7C240400, // 0168 CALL R9 2 - 0x7C1C0400, // 0169 CALL R7 2 - 0x8C1C0127, // 016A GETMET R7 R0 K39 - 0x7C1C0200, // 016B CALL R7 1 - 0x881C0103, // 016C GETMBR R7 R0 K3 - 0x8C1C0F04, // 016D GETMET R7 R7 K4 - 0x58240005, // 016E LDCONST R9 K5 - 0x7C1C0400, // 016F CALL R7 2 - 0x80040E00, // 0170 RET 1 R7 - 0x8C1C010A, // 0171 GETMET R7 R0 K10 - 0x7C1C0200, // 0172 CALL R7 1 - 0x8C1C0100, // 0173 GETMET R7 R0 K0 - 0x7C1C0200, // 0174 CALL R7 1 - 0x4C200000, // 0175 LDNIL R8 - 0x201C0E08, // 0176 NE R7 R7 R8 - 0x781E0058, // 0177 JMPF R7 #01D1 - 0x8C1C0100, // 0178 GETMET R7 R0 K0 - 0x7C1C0200, // 0179 CALL R7 1 - 0x881C0F06, // 017A GETMBR R7 R7 K6 - 0xB8220E00, // 017B GETNGBL R8 K7 - 0x88201108, // 017C GETMBR R8 R8 K8 - 0x88201142, // 017D GETMBR R8 R8 K66 - 0x1C1C0E08, // 017E EQ R7 R7 R8 - 0x781E0050, // 017F JMPF R7 #01D1 - 0x8C1C010A, // 0180 GETMET R7 R0 K10 - 0x7C1C0200, // 0181 CALL R7 1 - 0x8C1C0143, // 0182 GETMET R7 R0 K67 - 0x7C1C0200, // 0183 CALL R7 1 - 0x60200018, // 0184 GETGBL R8 G24 - 0x58240044, // 0185 LDCONST R9 K68 - 0x5C280A00, // 0186 MOVE R10 R5 - 0x5C2C0E00, // 0187 MOVE R11 R7 - 0x7C200600, // 0188 CALL R8 3 - 0x5C240600, // 0189 MOVE R9 R3 - 0x74260028, // 018A JMPT R9 #01B4 - 0x88240124, // 018B GETMBR R9 R0 K36 - 0x8C241345, // 018C GETMET R9 R9 K69 - 0x5C2C0A00, // 018D MOVE R11 R5 - 0x7C240400, // 018E CALL R9 2 - 0x78260023, // 018F JMPF R9 #01B4 - 0x4C240000, // 0190 LDNIL R9 - 0x20240C09, // 0191 NE R9 R6 R9 - 0x7826000C, // 0192 JMPF R9 #01A0 - 0x88240D3B, // 0193 GETMBR R9 R6 K59 - 0x4C280000, // 0194 LDNIL R10 - 0x2024120A, // 0195 NE R9 R9 R10 - 0x78260008, // 0196 JMPF R9 #01A0 - 0x60240005, // 0197 GETGBL R9 G5 - 0x88280D3B, // 0198 GETMBR R10 R6 K59 - 0x7C240200, // 0199 CALL R9 1 - 0x8C280146, // 019A GETMET R10 R0 K70 - 0x5C301200, // 019B MOVE R12 R9 - 0x5C340E00, // 019C MOVE R13 R7 - 0x88380D3B, // 019D GETMBR R14 R6 K59 - 0x7C280800, // 019E CALL R10 4 - 0x70020013, // 019F JMP #01B4 - 0x4C240000, // 01A0 LDNIL R9 - 0x20240C09, // 01A1 NE R9 R6 R9 - 0x78260010, // 01A2 JMPF R9 #01B4 - 0x88240D06, // 01A3 GETMBR R9 R6 K6 - 0xB82A0E00, // 01A4 GETNGBL R10 K7 - 0x8828152D, // 01A5 GETMBR R10 R10 K45 - 0x88281547, // 01A6 GETMBR R10 R10 K71 - 0x1C24120A, // 01A7 EQ R9 R9 R10 - 0x7826000A, // 01A8 JMPF R9 #01B4 - 0x8C240101, // 01A9 GETMET R9 R0 K1 - 0x602C0018, // 01AA GETGBL R11 G24 - 0x58300048, // 01AB LDCONST R12 K72 - 0x5C340A00, // 01AC MOVE R13 R5 - 0x7C2C0400, // 01AD CALL R11 2 - 0x7C240400, // 01AE CALL R9 2 - 0x88240103, // 01AF GETMBR R9 R0 K3 - 0x8C241304, // 01B0 GETMET R9 R9 K4 - 0x582C0005, // 01B1 LDCONST R11 K5 - 0x7C240400, // 01B2 CALL R9 2 - 0x80041200, // 01B3 RET 1 R9 - 0x88240124, // 01B4 GETMBR R9 R0 K36 - 0x8C241331, // 01B5 GETMET R9 R9 K49 - 0x5C2C0A00, // 01B6 MOVE R11 R5 - 0x7C240400, // 01B7 CALL R9 2 - 0x740E0002, // 01B8 JMPT R3 #01BC - 0x88280149, // 01B9 GETMBR R10 R0 K73 - 0x1C28020A, // 01BA EQ R10 R1 R10 - 0x782A000A, // 01BB JMPF R10 #01C7 - 0x88280103, // 01BC GETMBR R10 R0 K3 - 0x8C28154A, // 01BD GETMET R10 R10 K74 - 0x60300018, // 01BE GETGBL R12 G24 - 0x58340044, // 01BF LDCONST R13 K68 - 0x5C381200, // 01C0 MOVE R14 R9 - 0x5C3C0E00, // 01C1 MOVE R15 R7 - 0x7C300600, // 01C2 CALL R12 3 - 0x5834004B, // 01C3 LDCONST R13 K75 - 0x7C280600, // 01C4 CALL R10 3 - 0x80041400, // 01C5 RET 1 R10 - 0x70020009, // 01C6 JMP #01D1 - 0x88280103, // 01C7 GETMBR R10 R0 K3 - 0x8C28154A, // 01C8 GETMET R10 R10 K74 - 0x60300018, // 01C9 GETGBL R12 G24 - 0x5834004C, // 01CA LDCONST R13 K76 - 0x5C381200, // 01CB MOVE R14 R9 - 0x5C3C0E00, // 01CC MOVE R15 R7 - 0x7C300600, // 01CD CALL R12 3 - 0x5834004B, // 01CE LDCONST R13 K75 - 0x7C280600, // 01CF CALL R10 3 - 0x80041400, // 01D0 RET 1 R10 - 0x881C0124, // 01D1 GETMBR R7 R0 K36 - 0x8C1C0F31, // 01D2 GETMET R7 R7 K49 - 0x5C240A00, // 01D3 MOVE R9 R5 - 0x7C1C0400, // 01D4 CALL R7 2 - 0x88200124, // 01D5 GETMBR R8 R0 K36 - 0x8C20114D, // 01D6 GETMET R8 R8 K77 - 0x5C280A00, // 01D7 MOVE R10 R5 - 0x7C200400, // 01D8 CALL R8 2 - 0x78220009, // 01D9 JMPF R8 #01E4 - 0x8C20014E, // 01DA GETMET R8 R0 K78 - 0x5C280A00, // 01DB MOVE R10 R5 - 0x7C200400, // 01DC CALL R8 2 - 0x88240103, // 01DD GETMBR R9 R0 K3 - 0x8C24134F, // 01DE GETMET R9 R9 K79 - 0x5C2C0E00, // 01DF MOVE R11 R7 - 0x5C301000, // 01E0 MOVE R12 R8 - 0x7C240600, // 01E1 CALL R9 3 - 0x80041200, // 01E2 RET 1 R9 - 0x7002000C, // 01E3 JMP #01F1 - 0x8C200101, // 01E4 GETMET R8 R0 K1 - 0x60280018, // 01E5 GETGBL R10 G24 - 0x582C0041, // 01E6 LDCONST R11 K65 - 0x5C300A00, // 01E7 MOVE R12 R5 - 0x7C280400, // 01E8 CALL R10 2 - 0x7C200400, // 01E9 CALL R8 2 - 0x8C200127, // 01EA GETMET R8 R0 K39 - 0x7C200200, // 01EB CALL R8 1 - 0x88200103, // 01EC GETMBR R8 R0 K3 - 0x8C201104, // 01ED GETMET R8 R8 K4 - 0x58280005, // 01EE LDCONST R10 K5 - 0x7C200400, // 01EF CALL R8 2 - 0x80041000, // 01F0 RET 1 R8 - 0x88140906, // 01F1 GETMBR R5 R4 K6 - 0xB81A0E00, // 01F2 GETNGBL R6 K7 - 0x88180D08, // 01F3 GETMBR R6 R6 K8 - 0x88180D1B, // 01F4 GETMBR R6 R6 K27 - 0x1C140A06, // 01F5 EQ R5 R5 R6 - 0x7816000A, // 01F6 JMPF R5 #0202 - 0x88140914, // 01F7 GETMBR R5 R4 K20 - 0x8C18010A, // 01F8 GETMET R6 R0 K10 - 0x7C180200, // 01F9 CALL R6 1 - 0x88180103, // 01FA GETMBR R6 R0 K3 - 0x8C180D04, // 01FB GETMET R6 R6 K4 - 0x60200018, // 01FC GETGBL R8 G24 - 0x58240050, // 01FD LDCONST R9 K80 - 0x5C280A00, // 01FE MOVE R10 R5 - 0x7C200400, // 01FF CALL R8 2 - 0x7C180400, // 0200 CALL R6 2 - 0x80040C00, // 0201 RET 1 R6 - 0x8C140101, // 0202 GETMET R5 R0 K1 - 0x601C0018, // 0203 GETGBL R7 G24 - 0x58200051, // 0204 LDCONST R8 K81 - 0x88240914, // 0205 GETMBR R9 R4 K20 - 0x7C1C0400, // 0206 CALL R7 2 - 0x7C140400, // 0207 CALL R5 2 - 0x8C140127, // 0208 GETMET R5 R0 K39 - 0x7C140200, // 0209 CALL R5 1 - 0x88140103, // 020A GETMBR R5 R0 K3 - 0x8C140B04, // 020B GETMET R5 R5 K4 - 0x581C0005, // 020C LDCONST R7 K5 - 0x7C140400, // 020D CALL R5 2 - 0x80040A00, // 020E RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_run), - /* 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: 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: 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: 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: 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(CONTEXT_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[31]) { /* 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 - 0x7002000E, // 000E JMP #001E - 0x88100104, // 000F GETMBR R4 R0 K4 - 0x1C100404, // 0010 EQ R4 R2 R4 - 0x78120005, // 0011 JMPF R4 #0018 - 0x60100018, // 0012 GETGBL R4 G24 - 0x58140005, // 0013 LDCONST R5 K5 - 0x5C180200, // 0014 MOVE R6 R1 - 0x7C100400, // 0015 CALL R4 2 - 0x80040800, // 0016 RET 1 R4 - 0x70020005, // 0017 JMP #001E - 0x60100018, // 0018 GETGBL R4 G24 - 0x58140006, // 0019 LDCONST R5 K6 - 0x5C180200, // 001A MOVE R6 R1 - 0x5C1C0600, // 001B MOVE R7 R3 - 0x7C100600, // 001C CALL R4 3 - 0x80040800, // 001D RET 1 R4 - 0x80000000, // 001E 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), + /* K4 */ be_nested_str_weak(RIGHT_BRACKET), }), - be_str_weak(expect_identifier), + be_str_weak(check_right_bracket), &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ + ( &(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 - 0x780A001A, // 0004 JMPF R2 #0020 + 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 - 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: 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: 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_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_value, /* 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[21]) { /* constants */ - /* K0 */ be_nested_str_weak(process_additive_expression), - /* K1 */ be_nested_str_weak(_X3E_X20process_value_X20context_X3D_X25s_X20result_X3D_X25s), - /* K2 */ be_nested_str_weak(CONTEXT_VARIABLE), - /* K3 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K4 */ be_nested_str_weak(needs_closure), - /* K5 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K6 */ be_nested_str_weak(needs_function), - /* K7 */ be_nested_str_weak(string), - /* K8 */ be_nested_str_weak(find), - /* K9 */ be_nested_str_weak(expr), - /* K10 */ be_nested_str_weak(_X2E), - /* K11 */ be_const_int(0), - /* K12 */ be_nested_str_weak(create_simple_function_from_string), - /* K13 */ be_nested_str_weak(ExpressionResult), - /* K14 */ be_nested_str_weak(function_call), - /* K15 */ be_nested_str_weak(create_computation_closure_from_string), - /* K16 */ be_nested_str_weak(symbol_table), - /* K17 */ be_nested_str_weak(get), - /* K18 */ be_nested_str_weak(closure_value), - /* K19 */ be_nested_str_weak(type), - /* K20 */ be_nested_str_weak(instance), - }), - be_str_weak(process_value), - &be_const_str_solidified, - ( &(const binstruction[65]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x50140200, // 0002 LDBOOL R5 1 0 - 0x50180000, // 0003 LDBOOL R6 0 0 - 0x7C080800, // 0004 CALL R2 4 - 0x600C0001, // 0005 GETGBL R3 G1 - 0x60100018, // 0006 GETGBL R4 G24 - 0x58140001, // 0007 LDCONST R5 K1 - 0x5C180200, // 0008 MOVE R6 R1 - 0x5C1C0400, // 0009 MOVE R7 R2 - 0x7C100600, // 000A CALL R4 3 - 0x7C0C0200, // 000B CALL R3 1 - 0x880C0102, // 000C GETMBR R3 R0 K2 - 0x1C0C0203, // 000D EQ R3 R1 R3 - 0x740E0002, // 000E JMPT R3 #0012 - 0x880C0103, // 000F GETMBR R3 R0 K3 - 0x1C0C0203, // 0010 EQ R3 R1 R3 - 0x780E0002, // 0011 JMPF R3 #0015 - 0x8C0C0504, // 0012 GETMET R3 R2 K4 - 0x7C0C0200, // 0013 CALL R3 1 - 0x740E0005, // 0014 JMPT R3 #001B - 0x880C0105, // 0015 GETMBR R3 R0 K5 - 0x1C0C0203, // 0016 EQ R3 R1 R3 - 0x780E0026, // 0017 JMPF R3 #003F - 0x8C0C0506, // 0018 GETMET R3 R2 K6 - 0x7C0C0200, // 0019 CALL R3 1 - 0x780E0023, // 001A JMPF R3 #003F - 0x880C0105, // 001B GETMBR R3 R0 K5 - 0x1C0C0203, // 001C EQ R3 R1 R3 - 0x780E0011, // 001D JMPF R3 #0030 - 0xA40E0E00, // 001E IMPORT R3 K7 - 0x8C100708, // 001F GETMET R4 R3 K8 - 0x88180509, // 0020 GETMBR R6 R2 K9 - 0x581C000A, // 0021 LDCONST R7 K10 - 0x7C100600, // 0022 CALL R4 3 - 0x2810090B, // 0023 GE R4 R4 K11 - 0x78120008, // 0024 JMPF R4 #002E - 0x8C10010C, // 0025 GETMET R4 R0 K12 - 0x88180509, // 0026 GETMBR R6 R2 K9 - 0x7C100400, // 0027 CALL R4 2 - 0x8814010D, // 0028 GETMBR R5 R0 K13 - 0x8C140B0E, // 0029 GETMET R5 R5 K14 - 0x5C1C0800, // 002A MOVE R7 R4 - 0x7C140400, // 002B CALL R5 2 - 0x80040A00, // 002C RET 1 R5 - 0x70020000, // 002D JMP #002F - 0x80040400, // 002E RET 1 R2 - 0x7002000D, // 002F JMP #003E - 0x8C0C010F, // 0030 GETMET R3 R0 K15 - 0x88140509, // 0031 GETMBR R5 R2 K9 - 0x7C0C0400, // 0032 CALL R3 2 - 0x88100110, // 0033 GETMBR R4 R0 K16 - 0x8C100911, // 0034 GETMET R4 R4 K17 - 0x58180012, // 0035 LDCONST R6 K18 - 0x7C100400, // 0036 CALL R4 2 - 0x8814010D, // 0037 GETMBR R5 R0 K13 - 0x8C140B0E, // 0038 GETMET R5 R5 K14 - 0x5C1C0600, // 0039 MOVE R7 R3 - 0x88200913, // 003A GETMBR R8 R4 K19 - 0x88240914, // 003B GETMBR R9 R4 K20 - 0x7C140800, // 003C CALL R5 4 - 0x80040A00, // 003D RET 1 R5 - 0x70020000, // 003E JMP #0040 - 0x80040400, // 003F RET 1 R2 - 0x80000000, // 0040 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_init, /* name */ - be_nested_proto( - 4, /* 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(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(strip_initialized), - /* K7 */ be_nested_str_weak(symbol_table), - /* K8 */ be_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(_symbol_table), - /* K10 */ be_nested_str_weak(indent_level), - /* K11 */ be_nested_str_weak(has_template_calls), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* 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 - 0x50080000, // 0012 LDBOOL R2 0 0 - 0x90020C02, // 0013 SETMBR R0 K6 R2 - 0xB80A1000, // 0014 GETNGBL R2 K8 - 0x8C080509, // 0015 GETMET R2 R2 K9 - 0x7C080200, // 0016 CALL R2 1 - 0x90020E02, // 0017 SETMBR R0 K7 R2 - 0x90021502, // 0018 SETMBR R0 K10 K2 - 0x50080000, // 0019 LDBOOL R2 0 0 - 0x90021602, // 001A SETMBR R0 K11 R2 - 0x80000000, // 001B RET 0 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 }) ) ); @@ -10138,262 +12472,6 @@ be_local_closure(class_SimpleDSLTranspiler_process_palette, /* name */ /*******************************************************************/ -/******************************************************************** -** 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: _validate_color_provider_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* 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[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(_symbol_entry), - /* K5 */ be_nested_str_weak(TYPE_COLOR_CONSTRUCTOR), - }), - be_str_weak(_validate_color_provider_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0005, // 0006 JMPF R3 #000D - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0xB8120600, // 0008 GETNGBL R4 K3 - 0x88100904, // 0009 GETMBR R4 R4 K4 - 0x88100905, // 000A GETMBR R4 R4 K5 - 0x1C0C0604, // 000B EQ R3 R3 R4 - 0x740E0000, // 000C JMPT R3 #000E - 0x500C0001, // 000D LDBOOL R3 0 1 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[22]) { /* 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(CONTEXT_ARRAY_ELEMENT), - /* K5 */ be_nested_str_weak(push), - /* K6 */ be_nested_str_weak(expr), - /* 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_X5D_X27_X20in_X20array_X20literal), - /* K15 */ be_nested_str_weak(expect_right_bracket), - /* K16 */ be_nested_str_weak(_X5B), - /* K17 */ be_const_int(0), - /* K18 */ be_const_int(1), - /* K19 */ be_nested_str_weak(_X2C_X20), - /* K20 */ be_nested_str_weak(stop_iteration), - /* K21 */ 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 - 0x88100104, // 000B GETMBR R4 R0 K4 - 0x7C080400, // 000C CALL R2 2 - 0x8C0C0305, // 000D GETMET R3 R1 K5 - 0x88140506, // 000E GETMBR R5 R2 K6 - 0x7C0C0400, // 000F CALL R3 2 - 0x8C0C0107, // 0010 GETMET R3 R0 K7 - 0x7C0C0200, // 0011 CALL R3 1 - 0x4C100000, // 0012 LDNIL R4 - 0x200C0604, // 0013 NE R3 R3 R4 - 0x780E000A, // 0014 JMPF R3 #0020 - 0x8C0C0107, // 0015 GETMET R3 R0 K7 - 0x7C0C0200, // 0016 CALL R3 1 - 0x880C0708, // 0017 GETMBR R3 R3 K8 - 0xB8121200, // 0018 GETNGBL R4 K9 - 0x8810090A, // 0019 GETMBR R4 R4 K10 - 0x8810090B, // 001A GETMBR R4 R4 K11 - 0x1C0C0604, // 001B EQ R3 R3 R4 - 0x780E0002, // 001C JMPF R3 #0020 - 0x8C0C010C, // 001D GETMET R3 R0 K12 - 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 - 0x8C0C010D, // 0023 GETMET R3 R0 K13 - 0x5814000E, // 0024 LDCONST R5 K14 - 0x7C0C0400, // 0025 CALL R3 2 - 0x70020000, // 0026 JMP #0028 - 0x7001FFDB, // 0027 JMP #0004 - 0x8C08010F, // 0028 GETMET R2 R0 K15 - 0x7C080200, // 0029 CALL R2 1 - 0x58080010, // 002A LDCONST R2 K16 - 0x600C0010, // 002B GETGBL R3 G16 - 0x6010000C, // 002C GETGBL R4 G12 - 0x5C140200, // 002D MOVE R5 R1 - 0x7C100200, // 002E CALL R4 1 - 0x04100912, // 002F SUB R4 R4 K18 - 0x40122204, // 0030 CONNECT R4 K17 R4 - 0x7C0C0200, // 0031 CALL R3 1 - 0xA8020007, // 0032 EXBLK 0 #003B - 0x5C100600, // 0033 MOVE R4 R3 - 0x7C100000, // 0034 CALL R4 0 - 0x24140911, // 0035 GT R5 R4 K17 - 0x78160000, // 0036 JMPF R5 #0038 - 0x00080513, // 0037 ADD R2 R2 K19 - 0x94140204, // 0038 GETIDX R5 R1 R4 - 0x00080405, // 0039 ADD R2 R2 R5 - 0x7001FFF7, // 003A JMP #0033 - 0x580C0014, // 003B LDCONST R3 K20 - 0xAC0C0200, // 003C CATCH R3 1 0 - 0xB0080000, // 003D RAISE 2 R0 R0 - 0x00080515, // 003E ADD R2 R2 K21 - 0x80040400, // 003F RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_multiplicative_expression ********************************************************************/ @@ -10407,7 +12485,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ + ( &(const bvalue[20]) { /* constants */ /* K0 */ be_nested_str_weak(process_unary_expression), /* K1 */ be_nested_str_weak(at_end), /* K2 */ be_nested_str_weak(current), @@ -10418,14 +12496,20 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, /* K7 */ be_nested_str_weak(DIVIDE), /* K8 */ be_nested_str_weak(value), /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(ExpressionResult), - /* K11 */ be_nested_str_weak(combine), - /* K12 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - /* K13 */ be_nested_str_weak(expr), + /* K10 */ be_nested_str_weak(has_dangerous), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expression_X20_X27_X25s_X27_X20cannot_X20be_X20used_X20in_X20computed_X20expressions_X2E_X20This_X20creates_X20a_X20new_X20instance_X20at_X20each_X20evaluation_X2E_X20Use_X20either_X3A_X0A_X20_X20set_X20var_name_X20_X3D_X20_X25s_X28_X29_X20_X20_X23_X20Single_X20function_X20call_X0A_X20_X20set_X20computed_X20_X3D_X20_X28existing_var_X20_X2B_X201_X29_X20_X2F_X202_X20_X20_X23_X20Computation_X20with_X20existing_X20values), + /* K14 */ be_nested_str_weak(skip_statement), + /* K15 */ be_nested_str_weak(ExpressionResult), + /* K16 */ be_nested_str_weak(literal), + /* K17 */ be_nested_str_weak(nil), + /* K18 */ be_nested_str_weak(combine), + /* K19 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), }), be_str_weak(process_multiplicative_expression), &be_const_str_solidified, - ( &(const binstruction[49]) { /* code */ + ( &(const binstruction[72]) { /* code */ 0x8C100100, // 0000 GETMET R4 R0 K0 0x5C180200, // 0001 MOVE R6 R1 0x5C1C0400, // 0002 MOVE R7 R2 @@ -10433,12 +12517,12 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, 0x7C100800, // 0004 CALL R4 4 0x8C140101, // 0005 GETMET R5 R0 K1 0x7C140200, // 0006 CALL R5 1 - 0x74160027, // 0007 JMPT R5 #0030 + 0x7416003E, // 0007 JMPT R5 #0047 0x8C140102, // 0008 GETMET R5 R0 K2 0x7C140200, // 0009 CALL R5 1 0x4C180000, // 000A LDNIL R6 0x20180A06, // 000B NE R6 R5 R6 - 0x781A0020, // 000C JMPF R6 #002E + 0x781A0037, // 000C JMPF R6 #0045 0x88180B03, // 000D GETMBR R6 R5 K3 0xB81E0800, // 000E GETNGBL R7 K4 0x881C0F05, // 000F GETMBR R7 R7 K5 @@ -10450,7 +12534,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, 0x881C0F05, // 0015 GETMBR R7 R7 K5 0x881C0F07, // 0016 GETMBR R7 R7 K7 0x1C180C07, // 0017 EQ R6 R6 R7 - 0x781A0014, // 0018 JMPF R6 #002E + 0x781A002B, // 0018 JMPF R6 #0045 0x88180B08, // 0019 GETMBR R6 R5 K8 0x8C1C0109, // 001A GETMET R7 R0 K9 0x7C1C0200, // 001B CALL R7 1 @@ -10459,22 +12543,45 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, 0x50280000, // 001E LDBOOL R10 0 0 0x5C2C0600, // 001F MOVE R11 R3 0x7C1C0800, // 0020 CALL R7 4 - 0x8820010A, // 0021 GETMBR R8 R0 K10 - 0x8C20110B, // 0022 GETMET R8 R8 K11 - 0x60280018, // 0023 GETGBL R10 G24 - 0x582C000C, // 0024 LDCONST R11 K12 - 0x8830090D, // 0025 GETMBR R12 R4 K13 - 0x5C340C00, // 0026 MOVE R13 R6 - 0x88380F0D, // 0027 GETMBR R14 R7 K13 - 0x7C280800, // 0028 CALL R10 4 - 0x5C2C0800, // 0029 MOVE R11 R4 - 0x5C300E00, // 002A MOVE R12 R7 - 0x7C200800, // 002B CALL R8 4 - 0x5C101000, // 002C MOVE R4 R8 - 0x70020000, // 002D JMP #002F - 0x70020000, // 002E JMP #0030 - 0x7001FFD4, // 002F JMP #0005 - 0x80040800, // 0030 RET 1 R4 + 0x8820090A, // 0021 GETMBR R8 R4 K10 + 0x74220001, // 0022 JMPT R8 #0025 + 0x88200F0A, // 0023 GETMBR R8 R7 K10 + 0x78220012, // 0024 JMPF R8 #0038 + 0x8820090A, // 0025 GETMBR R8 R4 K10 + 0x78220001, // 0026 JMPF R8 #0029 + 0x8820090B, // 0027 GETMBR R8 R4 K11 + 0x70020000, // 0028 JMP #002A + 0x88200F0B, // 0029 GETMBR R8 R7 K11 + 0x8C24010C, // 002A GETMET R9 R0 K12 + 0x602C0018, // 002B GETGBL R11 G24 + 0x5830000D, // 002C LDCONST R12 K13 + 0x5C341000, // 002D MOVE R13 R8 + 0x5C381000, // 002E MOVE R14 R8 + 0x7C2C0600, // 002F CALL R11 3 + 0x7C240400, // 0030 CALL R9 2 + 0x8C24010E, // 0031 GETMET R9 R0 K14 + 0x7C240200, // 0032 CALL R9 1 + 0x8824010F, // 0033 GETMBR R9 R0 K15 + 0x8C241310, // 0034 GETMET R9 R9 K16 + 0x582C0011, // 0035 LDCONST R11 K17 + 0x7C240400, // 0036 CALL R9 2 + 0x80041200, // 0037 RET 1 R9 + 0x8820010F, // 0038 GETMBR R8 R0 K15 + 0x8C201112, // 0039 GETMET R8 R8 K18 + 0x60280018, // 003A GETGBL R10 G24 + 0x582C0013, // 003B LDCONST R11 K19 + 0x8830090B, // 003C GETMBR R12 R4 K11 + 0x5C340C00, // 003D MOVE R13 R6 + 0x88380F0B, // 003E GETMBR R14 R7 K11 + 0x7C280800, // 003F CALL R10 4 + 0x5C2C0800, // 0040 MOVE R11 R4 + 0x5C300E00, // 0041 MOVE R12 R7 + 0x7C200800, // 0042 CALL R8 4 + 0x5C101000, // 0043 MOVE R4 R8 + 0x70020000, // 0044 JMP #0046 + 0x70020000, // 0045 JMP #0047 + 0x7001FFBD, // 0046 JMP #0005 + 0x80040800, // 0047 RET 1 R4 }) ) ); @@ -10482,291 +12589,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, /******************************************************************** -** Solidified function: process_sequence_statement +** Solidified function: peek ********************************************************************/ -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[48]) { /* 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(restart), - /* K20 */ be_nested_str_weak(process_restart_statement_fluent), - /* K21 */ be_nested_str_weak(reset), - /* K22 */ be_nested_str_weak(error), - /* K23 */ be_nested_str_weak(_X27reset_X27_X20command_X20is_X20no_X20longer_X20supported_X2E_X20Use_X20_X27restart_X27_X20instead_X2E), - /* K24 */ be_nested_str_weak(skip_statement), - /* K25 */ be_nested_str_weak(repeat), - /* K26 */ be_nested_str_weak(1), - /* K27 */ be_nested_str_weak(forever), - /* K28 */ be_nested_str_weak(_X2D1), - /* K29 */ be_nested_str_weak(process_value), - /* K30 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K31 */ be_nested_str_weak(expect_keyword), - /* K32 */ be_nested_str_weak(times), - /* K33 */ be_nested_str_weak(expr), - /* K34 */ be_nested_str_weak(expect_left_brace), - /* K35 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), - /* K36 */ be_nested_str_weak(indent_level), - /* K37 */ be_const_int(1), - /* K38 */ be_nested_str_weak(at_end), - /* K39 */ be_nested_str_weak(check_right_brace), - /* K40 */ be_nested_str_weak(process_sequence_statement), - /* K41 */ be_nested_str_weak(expect_right_brace), - /* K42 */ be_nested_str_weak(_X25s_X29), - /* K43 */ be_nested_str_weak(peek), - /* K44 */ be_nested_str_weak(DOT), - /* K45 */ be_nested_str_weak(process_sequence_assignment_fluent), - /* K46 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), - /* K47 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), - }), - be_str_weak(process_sequence_statement), - &be_const_str_solidified, - ( &(const binstruction[210]) { /* 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 - 0x700200A0, // 002F JMP #00D1 - 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 - 0x70020094, // 003B JMP #00D1 - 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 - 0x70020088, // 0047 JMP #00D1 - 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 - 0x780A0005, // 004D JMPF R2 #0054 - 0x88080308, // 004E GETMBR R2 R1 K8 - 0x1C080513, // 004F EQ R2 R2 K19 - 0x780A0002, // 0050 JMPF R2 #0054 - 0x8C080114, // 0051 GETMET R2 R0 K20 - 0x7C080200, // 0052 CALL R2 1 - 0x7002007C, // 0053 JMP #00D1 - 0x88080301, // 0054 GETMBR R2 R1 K1 - 0xB80E0400, // 0055 GETNGBL R3 K2 - 0x880C0703, // 0056 GETMBR R3 R3 K3 - 0x880C070B, // 0057 GETMBR R3 R3 K11 - 0x1C080403, // 0058 EQ R2 R2 R3 - 0x780A0008, // 0059 JMPF R2 #0063 - 0x88080308, // 005A GETMBR R2 R1 K8 - 0x1C080515, // 005B EQ R2 R2 K21 - 0x780A0005, // 005C JMPF R2 #0063 - 0x8C080116, // 005D GETMET R2 R0 K22 - 0x58100017, // 005E LDCONST R4 K23 - 0x7C080400, // 005F CALL R2 2 - 0x8C080118, // 0060 GETMET R2 R0 K24 - 0x7C080200, // 0061 CALL R2 1 - 0x7002006D, // 0062 JMP #00D1 - 0x88080301, // 0063 GETMBR R2 R1 K1 - 0xB80E0400, // 0064 GETNGBL R3 K2 - 0x880C0703, // 0065 GETMBR R3 R3 K3 - 0x880C070B, // 0066 GETMBR R3 R3 K11 - 0x1C080403, // 0067 EQ R2 R2 R3 - 0x780A0041, // 0068 JMPF R2 #00AB - 0x88080308, // 0069 GETMBR R2 R1 K8 - 0x1C080519, // 006A EQ R2 R2 K25 - 0x780A003E, // 006B JMPF R2 #00AB - 0x8C080109, // 006C GETMET R2 R0 K9 - 0x7C080200, // 006D CALL R2 1 - 0x5808001A, // 006E LDCONST R2 K26 - 0x8C0C0100, // 006F GETMET R3 R0 K0 - 0x7C0C0200, // 0070 CALL R3 1 - 0x4C100000, // 0071 LDNIL R4 - 0x20100604, // 0072 NE R4 R3 R4 - 0x7812000C, // 0073 JMPF R4 #0081 - 0x88100701, // 0074 GETMBR R4 R3 K1 - 0xB8160400, // 0075 GETNGBL R5 K2 - 0x88140B03, // 0076 GETMBR R5 R5 K3 - 0x88140B0B, // 0077 GETMBR R5 R5 K11 - 0x1C100805, // 0078 EQ R4 R4 R5 - 0x78120006, // 0079 JMPF R4 #0081 - 0x88100708, // 007A GETMBR R4 R3 K8 - 0x1C10091B, // 007B EQ R4 R4 K27 - 0x78120003, // 007C JMPF R4 #0081 - 0x8C100109, // 007D GETMET R4 R0 K9 - 0x7C100200, // 007E CALL R4 1 - 0x5808001C, // 007F LDCONST R2 K28 - 0x70020006, // 0080 JMP #0088 - 0x8C10011D, // 0081 GETMET R4 R0 K29 - 0x8818011E, // 0082 GETMBR R6 R0 K30 - 0x7C100400, // 0083 CALL R4 2 - 0x8C14011F, // 0084 GETMET R5 R0 K31 - 0x581C0020, // 0085 LDCONST R7 K32 - 0x7C140400, // 0086 CALL R5 2 - 0x88080921, // 0087 GETMBR R2 R4 K33 - 0x8C100122, // 0088 GETMET R4 R0 K34 - 0x7C100200, // 0089 CALL R4 1 - 0x8C100106, // 008A GETMET R4 R0 K6 - 0x60180018, // 008B GETGBL R6 G24 - 0x581C0023, // 008C LDCONST R7 K35 - 0x8C200107, // 008D GETMET R8 R0 K7 - 0x7C200200, // 008E CALL R8 1 - 0x5C240400, // 008F MOVE R9 R2 - 0x7C180600, // 0090 CALL R6 3 - 0x7C100400, // 0091 CALL R4 2 - 0x88100124, // 0092 GETMBR R4 R0 K36 - 0x00100925, // 0093 ADD R4 R4 K37 - 0x90024804, // 0094 SETMBR R0 K36 R4 - 0x8C100126, // 0095 GETMET R4 R0 K38 - 0x7C100200, // 0096 CALL R4 1 - 0x74120005, // 0097 JMPT R4 #009E - 0x8C100127, // 0098 GETMET R4 R0 K39 - 0x7C100200, // 0099 CALL R4 1 - 0x74120002, // 009A JMPT R4 #009E - 0x8C100128, // 009B GETMET R4 R0 K40 - 0x7C100200, // 009C CALL R4 1 - 0x7001FFF6, // 009D JMP #0095 - 0x8C100129, // 009E GETMET R4 R0 K41 - 0x7C100200, // 009F CALL R4 1 - 0x8C100106, // 00A0 GETMET R4 R0 K6 - 0x60180018, // 00A1 GETGBL R6 G24 - 0x581C002A, // 00A2 LDCONST R7 K42 - 0x8C200107, // 00A3 GETMET R8 R0 K7 - 0x7C200200, // 00A4 CALL R8 1 - 0x7C180400, // 00A5 CALL R6 2 - 0x7C100400, // 00A6 CALL R4 2 - 0x88100124, // 00A7 GETMBR R4 R0 K36 - 0x04100925, // 00A8 SUB R4 R4 K37 - 0x90024804, // 00A9 SETMBR R0 K36 R4 - 0x70020025, // 00AA JMP #00D1 - 0x88080301, // 00AB GETMBR R2 R1 K1 - 0xB80E0400, // 00AC GETNGBL R3 K2 - 0x880C0703, // 00AD GETMBR R3 R3 K3 - 0x880C0710, // 00AE GETMBR R3 R3 K16 - 0x1C080403, // 00AF EQ R2 R2 R3 - 0x780A0018, // 00B0 JMPF R2 #00CA - 0x8C08012B, // 00B1 GETMET R2 R0 K43 - 0x7C080200, // 00B2 CALL R2 1 - 0x4C0C0000, // 00B3 LDNIL R3 - 0x20080403, // 00B4 NE R2 R2 R3 - 0x780A000A, // 00B5 JMPF R2 #00C1 - 0x8C08012B, // 00B6 GETMET R2 R0 K43 - 0x7C080200, // 00B7 CALL R2 1 - 0x88080501, // 00B8 GETMBR R2 R2 K1 - 0xB80E0400, // 00B9 GETNGBL R3 K2 - 0x880C0703, // 00BA GETMBR R3 R3 K3 - 0x880C072C, // 00BB GETMBR R3 R3 K44 - 0x1C080403, // 00BC EQ R2 R2 R3 - 0x780A0002, // 00BD JMPF R2 #00C1 - 0x8C08012D, // 00BE GETMET R2 R0 K45 - 0x7C080200, // 00BF CALL R2 1 - 0x70020007, // 00C0 JMP #00C9 - 0x8C080116, // 00C1 GETMET R2 R0 K22 - 0x60100018, // 00C2 GETGBL R4 G24 - 0x5814002E, // 00C3 LDCONST R5 K46 - 0x88180308, // 00C4 GETMBR R6 R1 K8 - 0x7C100400, // 00C5 CALL R4 2 - 0x7C080400, // 00C6 CALL R2 2 - 0x8C080118, // 00C7 GETMET R2 R0 K24 - 0x7C080200, // 00C8 CALL R2 1 - 0x70020006, // 00C9 JMP #00D1 - 0x8C080116, // 00CA GETMET R2 R0 K22 - 0x60100018, // 00CB GETGBL R4 G24 - 0x5814002F, // 00CC LDCONST R5 K47 - 0x7C100200, // 00CD CALL R4 1 - 0x7C080400, // 00CE CALL R2 2 - 0x8C080118, // 00CF GETMET R2 R0 K24 - 0x7C080200, // 00D0 CALL R2 1 - 0x80000000, // 00D1 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ +be_local_closure(class_SimpleDSLTranspiler_peek, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ @@ -10776,389 +12601,28 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* 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_BRACKET), + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_const_int(1), + /* K2 */ be_nested_str_weak(tokens), }), - be_str_weak(check_right_bracket), + be_str_weak(peek), &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: _validate_value_provider_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_factory_exists, /* 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[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(_symbol_entry), - /* K5 */ be_nested_str_weak(TYPE_VALUE_PROVIDER_CONSTRUCTOR), - }), - be_str_weak(_validate_value_provider_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0005, // 0006 JMPF R3 #000D - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0xB8120600, // 0008 GETNGBL R4 K3 - 0x88100904, // 0009 GETMBR R4 R4 K4 - 0x88100905, // 000A GETMBR R4 R4 K5 - 0x1C0C0604, // 000B EQ R3 R3 R4 - 0x740E0000, // 000C JMPT R3 #000E - 0x500C0001, // 000D LDBOOL R3 0 1 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_statement, /* 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[45]) { /* 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(KEYWORD), - /* K11 */ be_nested_str_weak(strip), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), - /* K14 */ be_nested_str_weak(skip_statement), - /* K15 */ be_nested_str_weak(template), - /* K16 */ be_nested_str_weak(process_template), - /* 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(run), - /* K30 */ be_nested_str_weak(process_run), - /* K31 */ be_nested_str_weak(import), - /* K32 */ be_nested_str_weak(process_import), - /* K33 */ be_nested_str_weak(on), - /* K34 */ be_nested_str_weak(process_event_handler), - /* K35 */ be_nested_str_weak(berry), - /* K36 */ be_nested_str_weak(process_berry_code_block), - /* K37 */ be_nested_str_weak(Unknown_X20keyword_X20_X27_X25s_X27_X2E), - /* K38 */ be_nested_str_weak(IDENTIFIER), - /* K39 */ be_nested_str_weak(log), - /* K40 */ be_nested_str_weak(peek), - /* K41 */ be_nested_str_weak(LEFT_PAREN), - /* K42 */ be_nested_str_weak(process_standalone_log), - /* K43 */ be_nested_str_weak(process_property_assignment), - /* K44 */ be_nested_str_weak(Unexpected_X20token_X20_X27_X25s_X27_X2E), - }), - be_str_weak(process_statement), - &be_const_str_solidified, - ( &(const binstruction[163]) { /* 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 - 0x88080301, // 0021 GETMBR R2 R1 K1 - 0xB80E0400, // 0022 GETNGBL R3 K2 - 0x880C0703, // 0023 GETMBR R3 R3 K3 - 0x880C070A, // 0024 GETMBR R3 R3 K10 - 0x1C080403, // 0025 EQ R2 R2 R3 - 0x780A0052, // 0026 JMPF R2 #007A - 0x88080307, // 0027 GETMBR R2 R1 K7 - 0x1C08050B, // 0028 EQ R2 R2 K11 - 0x780A0006, // 0029 JMPF R2 #0031 - 0x8C08010C, // 002A GETMET R2 R0 K12 - 0x5810000D, // 002B LDCONST R4 K13 - 0x7C080400, // 002C CALL R2 2 - 0x8C08010E, // 002D GETMET R2 R0 K14 - 0x7C080200, // 002E CALL R2 1 - 0x80000400, // 002F RET 0 - 0x70020047, // 0030 JMP #0079 - 0x88080307, // 0031 GETMBR R2 R1 K7 - 0x1C08050F, // 0032 EQ R2 R2 K15 - 0x780A0002, // 0033 JMPF R2 #0037 - 0x8C080110, // 0034 GETMET R2 R0 K16 - 0x7C080200, // 0035 CALL R2 1 - 0x70020041, // 0036 JMP #0079 - 0x88080111, // 0037 GETMBR R2 R0 K17 - 0x740A0001, // 0038 JMPT R2 #003B - 0x8C080112, // 0039 GETMET R2 R0 K18 - 0x7C080200, // 003A CALL R2 1 - 0x88080307, // 003B GETMBR R2 R1 K7 - 0x1C080513, // 003C EQ R2 R2 K19 - 0x780A0002, // 003D JMPF R2 #0041 - 0x8C080114, // 003E GETMET R2 R0 K20 - 0x7C080200, // 003F CALL R2 1 - 0x70020037, // 0040 JMP #0079 - 0x88080307, // 0041 GETMBR R2 R1 K7 - 0x1C080515, // 0042 EQ R2 R2 K21 - 0x780A0002, // 0043 JMPF R2 #0047 - 0x8C080116, // 0044 GETMET R2 R0 K22 - 0x7C080200, // 0045 CALL R2 1 - 0x70020031, // 0046 JMP #0079 - 0x88080307, // 0047 GETMBR R2 R1 K7 - 0x1C080517, // 0048 EQ R2 R2 K23 - 0x780A0002, // 0049 JMPF R2 #004D - 0x8C080118, // 004A GETMET R2 R0 K24 - 0x7C080200, // 004B CALL R2 1 - 0x7002002B, // 004C JMP #0079 - 0x88080307, // 004D GETMBR R2 R1 K7 - 0x1C080519, // 004E EQ R2 R2 K25 - 0x780A0002, // 004F JMPF R2 #0053 - 0x8C08011A, // 0050 GETMET R2 R0 K26 - 0x7C080200, // 0051 CALL R2 1 - 0x70020025, // 0052 JMP #0079 - 0x88080307, // 0053 GETMBR R2 R1 K7 - 0x1C08051B, // 0054 EQ R2 R2 K27 - 0x780A0002, // 0055 JMPF R2 #0059 - 0x8C08011C, // 0056 GETMET R2 R0 K28 - 0x7C080200, // 0057 CALL R2 1 - 0x7002001F, // 0058 JMP #0079 - 0x88080307, // 0059 GETMBR R2 R1 K7 - 0x1C08051D, // 005A EQ R2 R2 K29 - 0x780A0002, // 005B JMPF R2 #005F - 0x8C08011E, // 005C GETMET R2 R0 K30 - 0x7C080200, // 005D CALL R2 1 - 0x70020019, // 005E JMP #0079 - 0x88080307, // 005F GETMBR R2 R1 K7 - 0x1C08051F, // 0060 EQ R2 R2 K31 - 0x780A0002, // 0061 JMPF R2 #0065 - 0x8C080120, // 0062 GETMET R2 R0 K32 - 0x7C080200, // 0063 CALL R2 1 - 0x70020013, // 0064 JMP #0079 - 0x88080307, // 0065 GETMBR R2 R1 K7 - 0x1C080521, // 0066 EQ R2 R2 K33 - 0x780A0002, // 0067 JMPF R2 #006B - 0x8C080122, // 0068 GETMET R2 R0 K34 - 0x7C080200, // 0069 CALL R2 1 - 0x7002000D, // 006A JMP #0079 - 0x88080307, // 006B GETMBR R2 R1 K7 - 0x1C080523, // 006C EQ R2 R2 K35 - 0x780A0002, // 006D JMPF R2 #0071 - 0x8C080124, // 006E GETMET R2 R0 K36 - 0x7C080200, // 006F CALL R2 1 - 0x70020007, // 0070 JMP #0079 - 0x8C08010C, // 0071 GETMET R2 R0 K12 - 0x60100018, // 0072 GETGBL R4 G24 - 0x58140025, // 0073 LDCONST R5 K37 - 0x88180307, // 0074 GETMBR R6 R1 K7 - 0x7C100400, // 0075 CALL R4 2 - 0x7C080400, // 0076 CALL R2 2 - 0x8C08010E, // 0077 GETMET R2 R0 K14 - 0x7C080200, // 0078 CALL R2 1 - 0x70020027, // 0079 JMP #00A2 - 0x88080301, // 007A GETMBR R2 R1 K1 - 0xB80E0400, // 007B GETNGBL R3 K2 - 0x880C0703, // 007C GETMBR R3 R3 K3 - 0x880C0726, // 007D GETMBR R3 R3 K38 - 0x1C080403, // 007E EQ R2 R2 R3 - 0x780A0019, // 007F JMPF R2 #009A - 0x88080111, // 0080 GETMBR R2 R0 K17 - 0x740A0001, // 0081 JMPT R2 #0084 - 0x8C080112, // 0082 GETMET R2 R0 K18 - 0x7C080200, // 0083 CALL R2 1 - 0x88080307, // 0084 GETMBR R2 R1 K7 - 0x1C080527, // 0085 EQ R2 R2 K39 - 0x780A000F, // 0086 JMPF R2 #0097 - 0x8C080128, // 0087 GETMET R2 R0 K40 - 0x7C080200, // 0088 CALL R2 1 - 0x4C0C0000, // 0089 LDNIL R3 - 0x20080403, // 008A NE R2 R2 R3 - 0x780A000A, // 008B JMPF R2 #0097 - 0x8C080128, // 008C GETMET R2 R0 K40 - 0x7C080200, // 008D CALL R2 1 - 0x88080501, // 008E GETMBR R2 R2 K1 - 0xB80E0400, // 008F GETNGBL R3 K2 - 0x880C0703, // 0090 GETMBR R3 R3 K3 - 0x880C0729, // 0091 GETMBR R3 R3 K41 - 0x1C080403, // 0092 EQ R2 R2 R3 - 0x780A0002, // 0093 JMPF R2 #0097 - 0x8C08012A, // 0094 GETMET R2 R0 K42 - 0x7C080200, // 0095 CALL R2 1 - 0x70020001, // 0096 JMP #0099 - 0x8C08012B, // 0097 GETMET R2 R0 K43 - 0x7C080200, // 0098 CALL R2 1 - 0x70020007, // 0099 JMP #00A2 - 0x8C08010C, // 009A GETMET R2 R0 K12 - 0x60100018, // 009B GETGBL R4 G24 - 0x5814002C, // 009C LDCONST R5 K44 - 0x88180307, // 009D GETMBR R6 R1 K7 - 0x7C100400, // 009E CALL R4 2 - 0x7C080400, // 009F CALL R2 2 - 0x8C08010E, // 00A0 GETMET R2 R0 K14 - 0x7C080200, // 00A1 CALL R2 1 - 0x80000000, // 00A2 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[17]) { /* 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(expr), - /* K15 */ be_nested_str_weak(expect_right_paren), - /* K16 */ 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 + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x00040301, // 0001 ADD R1 R1 K1 + 0x6008000C, // 0002 GETGBL R2 G12 + 0x880C0102, // 0003 GETMBR R3 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 - 0x8818070E, // 0021 GETMBR R6 R3 K14 - 0x7C100400, // 0022 CALL R4 2 - 0x00040204, // 0023 ADD R1 R1 R4 - 0x8C08010F, // 0024 GETMET R2 R0 K15 - 0x7C080200, // 0025 CALL R2 1 - 0x00040310, // 0026 ADD R1 R1 K16 - 0x80040200, // 0027 RET 1 R1 + 0x14040202, // 0005 LT R1 R1 R2 + 0x78060004, // 0006 JMPF R1 #000C + 0x88040100, // 0007 GETMBR R1 R0 K0 + 0x00040301, // 0008 ADD R1 R1 K1 + 0x88080102, // 0009 GETMBR R2 R0 K2 + 0x94040401, // 000A GETIDX R1 R2 R1 + 0x70020000, // 000B JMP #000D + 0x4C040000, // 000C LDNIL R1 + 0x80040200, // 000D RET 1 R1 }) ) ); @@ -11166,95 +12630,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name * /******************************************************************** -** Solidified function: get_named_color_value +** Solidified function: _unwrap_resolve ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* 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(symbol_table), - /* K1 */ be_nested_str_weak(get_reference), - }), - be_str_weak(get_named_color_value), - &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 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_function_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ +be_local_closure(class_SimpleDSLTranspiler__unwrap_resolve, /* name */ be_nested_proto( 9, /* nstack */ 2, /* argc */ @@ -11264,619 +12642,51 @@ be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[23]) { /* 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_additive_expression), - /* K5 */ be_nested_str_weak(CONTEXT_ARGUMENT), - /* K6 */ be_nested_str_weak(expr), - /* K7 */ be_nested_str_weak(process_value), - /* K8 */ be_nested_str_weak(push), - /* 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(COMMA), - /* K14 */ be_nested_str_weak(next), - /* K15 */ be_nested_str_weak(error), - /* K16 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K17 */ be_nested_str_weak(expect_right_paren), - /* K18 */ be_nested_str_weak(), - /* K19 */ be_const_int(0), - /* K20 */ be_const_int(1), - /* K21 */ be_nested_str_weak(_X2C_X20), - /* K22 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(animation_X2Eresolve_X28), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(_X29), + /* K5 */ be_const_int(1), + /* K6 */ be_nested_str_weak(_is_valid_identifier), }), - be_str_weak(process_function_arguments), + be_str_weak(_unwrap_resolve), &be_const_str_solidified, - ( &(const binstruction[83]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x60080012, // 0002 GETGBL R2 G18 - 0x7C080000, // 0003 CALL R2 0 - 0x8C0C0101, // 0004 GETMET R3 R0 K1 - 0x7C0C0200, // 0005 CALL R3 1 - 0x740E0034, // 0006 JMPT R3 #003C - 0x8C0C0102, // 0007 GETMET R3 R0 K2 - 0x7C0C0200, // 0008 CALL R3 1 - 0x740E0031, // 0009 JMPT R3 #003C - 0x8C0C0103, // 000A GETMET R3 R0 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x8C0C0102, // 000C GETMET R3 R0 K2 + ( &(const binstruction[33]) { /* 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 + 0x780E0017, // 0006 JMPF R3 #001F + 0x540DFFFE, // 0007 LDINT R3 -1 + 0x940C0203, // 0008 GETIDX R3 R1 R3 + 0x1C0C0704, // 0009 EQ R3 R3 K4 + 0x780E0013, // 000A JMPF R3 #001F + 0x600C000C, // 000B GETGBL R3 G12 + 0x58100002, // 000C LDCONST R4 K2 0x7C0C0200, // 000D CALL R3 1 - 0x780E0000, // 000E JMPF R3 #0010 - 0x7002002B, // 000F JMP #003C - 0x4C0C0000, // 0010 LDNIL R3 - 0x78060006, // 0011 JMPF R1 #0019 - 0x8C100104, // 0012 GETMET R4 R0 K4 - 0x88180105, // 0013 GETMBR R6 R0 K5 - 0x501C0200, // 0014 LDBOOL R7 1 0 - 0x50200200, // 0015 LDBOOL R8 1 0 - 0x7C100800, // 0016 CALL R4 4 - 0x880C0906, // 0017 GETMBR R3 R4 K6 - 0x70020003, // 0018 JMP #001D - 0x8C100107, // 0019 GETMET R4 R0 K7 - 0x88180105, // 001A GETMBR R6 R0 K5 - 0x7C100400, // 001B CALL R4 2 - 0x880C0906, // 001C GETMBR R3 R4 K6 - 0x8C100508, // 001D GETMET R4 R2 K8 - 0x5C180600, // 001E MOVE R6 R3 - 0x7C100400, // 001F CALL R4 2 - 0x8C100103, // 0020 GETMET R4 R0 K3 - 0x7C100200, // 0021 CALL R4 1 - 0x8C100109, // 0022 GETMET R4 R0 K9 - 0x7C100200, // 0023 CALL R4 1 - 0x4C140000, // 0024 LDNIL R5 - 0x20100805, // 0025 NE R4 R4 R5 - 0x7812000C, // 0026 JMPF R4 #0034 - 0x8C100109, // 0027 GETMET R4 R0 K9 - 0x7C100200, // 0028 CALL R4 1 - 0x8810090A, // 0029 GETMBR R4 R4 K10 - 0xB8161600, // 002A GETNGBL R5 K11 - 0x88140B0C, // 002B GETMBR R5 R5 K12 - 0x88140B0D, // 002C GETMBR R5 R5 K13 - 0x1C100805, // 002D EQ R4 R4 R5 - 0x78120004, // 002E JMPF R4 #0034 - 0x8C10010E, // 002F GETMET R4 R0 K14 - 0x7C100200, // 0030 CALL R4 1 - 0x8C100103, // 0031 GETMET R4 R0 K3 - 0x7C100200, // 0032 CALL R4 1 - 0x70020006, // 0033 JMP #003B - 0x8C100102, // 0034 GETMET R4 R0 K2 - 0x7C100200, // 0035 CALL R4 1 - 0x74120003, // 0036 JMPT R4 #003B - 0x8C10010F, // 0037 GETMET R4 R0 K15 - 0x58180010, // 0038 LDCONST R6 K16 - 0x7C100400, // 0039 CALL R4 2 - 0x70020000, // 003A JMP #003C - 0x7001FFC7, // 003B JMP #0004 - 0x8C0C0111, // 003C GETMET R3 R0 K17 - 0x7C0C0200, // 003D CALL R3 1 - 0x580C0012, // 003E LDCONST R3 K18 - 0x60100010, // 003F GETGBL R4 G16 - 0x6014000C, // 0040 GETGBL R5 G12 - 0x5C180400, // 0041 MOVE R6 R2 - 0x7C140200, // 0042 CALL R5 1 - 0x04140B14, // 0043 SUB R5 R5 K20 - 0x40162605, // 0044 CONNECT R5 K19 R5 - 0x7C100200, // 0045 CALL R4 1 - 0xA8020007, // 0046 EXBLK 0 #004F - 0x5C140800, // 0047 MOVE R5 R4 - 0x7C140000, // 0048 CALL R5 0 - 0x24180B13, // 0049 GT R6 R5 K19 - 0x781A0000, // 004A JMPF R6 #004C - 0x000C0715, // 004B ADD R3 R3 K21 - 0x94180405, // 004C GETIDX R6 R2 R5 - 0x000C0606, // 004D ADD R3 R3 R6 - 0x7001FFF7, // 004E JMP #0047 - 0x58100016, // 004F LDCONST R4 K22 - 0xAC100200, // 0050 CATCH R4 1 0 - 0xB0080000, // 0051 RAISE 2 R0 R0 - 0x80040600, // 0052 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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: _process_parameters_core -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_parameters_core, /* name */ - be_nested_proto( - 13, /* nstack */ - 4, /* 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(CONTEXT_VARIABLE), - /* K1 */ be_nested_str_weak(string), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(temp_), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(split), - /* K6 */ be_nested_str_weak(_), - /* K7 */ be_const_int(2), - /* K8 */ be_const_int(1), - /* K9 */ be_nested_str_weak(), - /* K10 */ be_nested_str_weak(_create_instance_for_validation), - /* K11 */ be_nested_str_weak(at_end), - /* K12 */ be_nested_str_weak(check_right_paren), - /* K13 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K14 */ be_nested_str_weak(expect_identifier), - /* K15 */ be_nested_str_weak(_validate_single_parameter), - /* K16 */ be_nested_str_weak(expect_assign), - /* K17 */ be_nested_str_weak(process_value), - /* K18 */ be_nested_str_weak(collect_inline_comment), - /* K19 */ be_nested_str_weak(expr), - /* K20 */ be_nested_str_weak(current), - /* K21 */ be_nested_str_weak(type), - /* K22 */ be_nested_str_weak(animation_dsl), - /* K23 */ be_nested_str_weak(Token), - /* K24 */ be_nested_str_weak(COMMENT), - /* K25 */ be_nested_str_weak(next), - /* K26 */ be_nested_str_weak(COMMA), - /* K27 */ be_nested_str_weak(NEWLINE), - /* K28 */ be_nested_str_weak(error), - /* K29 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - }), - be_str_weak(_process_parameters_core), - &be_const_str_solidified, - ( &(const binstruction[128]) { /* code */ - 0x4C100000, // 0000 LDNIL R4 - 0x5C140200, // 0001 MOVE R5 R1 - 0x88180100, // 0002 GETMBR R6 R0 K0 - 0x1C180406, // 0003 EQ R6 R2 R6 - 0x781A0010, // 0004 JMPF R6 #0016 - 0xA41A0200, // 0005 IMPORT R6 K1 - 0x8C1C0D02, // 0006 GETMET R7 R6 K2 - 0x5C240200, // 0007 MOVE R9 R1 - 0x58280003, // 0008 LDCONST R10 K3 - 0x7C1C0600, // 0009 CALL R7 3 - 0x1C1C0F04, // 000A EQ R7 R7 K4 - 0x781E0009, // 000B JMPF R7 #0016 - 0x8C1C0D05, // 000C GETMET R7 R6 K5 - 0x5C240200, // 000D MOVE R9 R1 - 0x58280006, // 000E LDCONST R10 K6 - 0x7C1C0600, // 000F CALL R7 3 - 0x6020000C, // 0010 GETGBL R8 G12 - 0x5C240E00, // 0011 MOVE R9 R7 - 0x7C200200, // 0012 CALL R8 1 - 0x28201107, // 0013 GE R8 R8 K7 - 0x78220000, // 0014 JMPF R8 #0016 - 0x94140F08, // 0015 GETIDX R5 R7 K8 - 0x20180B09, // 0016 NE R6 R5 K9 - 0x781A0003, // 0017 JMPF R6 #001C - 0x8C18010A, // 0018 GETMET R6 R0 K10 - 0x5C200A00, // 0019 MOVE R8 R5 - 0x7C180400, // 001A CALL R6 2 - 0x5C100C00, // 001B MOVE R4 R6 - 0x8C18010B, // 001C GETMET R6 R0 K11 - 0x7C180200, // 001D CALL R6 1 - 0x741A005F, // 001E JMPT R6 #007F - 0x8C18010C, // 001F GETMET R6 R0 K12 - 0x7C180200, // 0020 CALL R6 1 - 0x741A005C, // 0021 JMPT R6 #007F - 0x8C18010D, // 0022 GETMET R6 R0 K13 - 0x7C180200, // 0023 CALL R6 1 - 0x8C18010C, // 0024 GETMET R6 R0 K12 - 0x7C180200, // 0025 CALL R6 1 - 0x781A0000, // 0026 JMPF R6 #0028 - 0x70020056, // 0027 JMP #007F - 0x8C18010E, // 0028 GETMET R6 R0 K14 - 0x7C180200, // 0029 CALL R6 1 - 0x4C1C0000, // 002A LDNIL R7 - 0x201C0807, // 002B NE R7 R4 R7 - 0x781E0006, // 002C JMPF R7 #0034 - 0x201C0B09, // 002D NE R7 R5 K9 - 0x781E0004, // 002E JMPF R7 #0034 - 0x8C1C010F, // 002F GETMET R7 R0 K15 - 0x5C240A00, // 0030 MOVE R9 R5 - 0x5C280C00, // 0031 MOVE R10 R6 - 0x5C2C0800, // 0032 MOVE R11 R4 - 0x7C1C0800, // 0033 CALL R7 4 - 0x8C1C0110, // 0034 GETMET R7 R0 K16 - 0x7C1C0200, // 0035 CALL R7 1 - 0x8C1C0111, // 0036 GETMET R7 R0 K17 - 0x88240100, // 0037 GETMBR R9 R0 K0 - 0x7C1C0400, // 0038 CALL R7 2 - 0x8C200112, // 0039 GETMET R8 R0 K18 - 0x7C200200, // 003A CALL R8 1 - 0x5C240600, // 003B MOVE R9 R3 - 0x5C280C00, // 003C MOVE R10 R6 - 0x882C0F13, // 003D GETMBR R11 R7 K19 - 0x5C301000, // 003E MOVE R12 R8 - 0x7C240600, // 003F CALL R9 3 - 0x8C24010B, // 0040 GETMET R9 R0 K11 - 0x7C240200, // 0041 CALL R9 1 - 0x7426000F, // 0042 JMPT R9 #0053 - 0x8C240114, // 0043 GETMET R9 R0 K20 - 0x7C240200, // 0044 CALL R9 1 - 0x4C280000, // 0045 LDNIL R10 - 0x2028120A, // 0046 NE R10 R9 R10 - 0x782A0008, // 0047 JMPF R10 #0051 - 0x88281315, // 0048 GETMBR R10 R9 K21 - 0xB82E2C00, // 0049 GETNGBL R11 K22 - 0x882C1717, // 004A GETMBR R11 R11 K23 - 0x882C1718, // 004B GETMBR R11 R11 K24 - 0x1C28140B, // 004C EQ R10 R10 R11 - 0x782A0002, // 004D JMPF R10 #0051 - 0x8C280119, // 004E GETMET R10 R0 K25 - 0x7C280200, // 004F CALL R10 1 - 0x70020000, // 0050 JMP #0052 - 0x70020000, // 0051 JMP #0053 - 0x7001FFEC, // 0052 JMP #0040 - 0x8C240114, // 0053 GETMET R9 R0 K20 - 0x7C240200, // 0054 CALL R9 1 - 0x4C280000, // 0055 LDNIL R10 - 0x2024120A, // 0056 NE R9 R9 R10 - 0x7826000C, // 0057 JMPF R9 #0065 - 0x8C240114, // 0058 GETMET R9 R0 K20 - 0x7C240200, // 0059 CALL R9 1 - 0x88241315, // 005A GETMBR R9 R9 K21 - 0xB82A2C00, // 005B GETNGBL R10 K22 - 0x88281517, // 005C GETMBR R10 R10 K23 - 0x8828151A, // 005D GETMBR R10 R10 K26 - 0x1C24120A, // 005E EQ R9 R9 R10 - 0x78260004, // 005F JMPF R9 #0065 - 0x8C240119, // 0060 GETMET R9 R0 K25 - 0x7C240200, // 0061 CALL R9 1 - 0x8C24010D, // 0062 GETMET R9 R0 K13 - 0x7C240200, // 0063 CALL R9 1 - 0x70020018, // 0064 JMP #007E - 0x8C240114, // 0065 GETMET R9 R0 K20 - 0x7C240200, // 0066 CALL R9 1 - 0x4C280000, // 0067 LDNIL R10 - 0x2024120A, // 0068 NE R9 R9 R10 - 0x7826000C, // 0069 JMPF R9 #0077 - 0x8C240114, // 006A GETMET R9 R0 K20 - 0x7C240200, // 006B CALL R9 1 - 0x88241315, // 006C GETMBR R9 R9 K21 - 0xB82A2C00, // 006D GETNGBL R10 K22 - 0x88281517, // 006E GETMBR R10 R10 K23 - 0x8828151B, // 006F GETMBR R10 R10 K27 - 0x1C24120A, // 0070 EQ R9 R9 R10 - 0x78260004, // 0071 JMPF R9 #0077 - 0x8C240119, // 0072 GETMET R9 R0 K25 - 0x7C240200, // 0073 CALL R9 1 - 0x8C24010D, // 0074 GETMET R9 R0 K13 - 0x7C240200, // 0075 CALL R9 1 - 0x70020006, // 0076 JMP #007E - 0x8C24010C, // 0077 GETMET R9 R0 K12 - 0x7C240200, // 0078 CALL R9 1 - 0x74260003, // 0079 JMPT R9 #007E - 0x8C24011C, // 007A GETMET R9 R0 K28 - 0x582C001D, // 007B LDCONST R11 K29 - 0x7C240400, // 007C CALL R9 2 - 0x70020000, // 007D JMP #007F - 0x7001FF9C, // 007E JMP #001C - 0x80000000, // 007F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ - be_nested_proto( - 16, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 0), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(create_color), - }), - be_str_weak(_X3Clambda_X3E), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x68080000, // 0000 GETUPV R2 U0 - 0x88080500, // 0001 GETMBR R2 R2 K0 - 0x8C080501, // 0002 GETMET R2 R2 K1 - 0x5C100000, // 0003 MOVE R4 R0 - 0x5C140200, // 0004 MOVE R5 R1 - 0x7C080600, // 0005 CALL R2 3 - 0x80040400, // 0006 RET 1 R2 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[39]) { /* 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(symbol_table), - /* K19 */ be_nested_str_weak(get), - /* K20 */ be_nested_str_weak(_symbol_entry), - /* K21 */ be_nested_str_weak(TYPE_TEMPLATE), - /* K22 */ be_nested_str_weak(process_function_arguments), - /* K23 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K24 */ be_nested_str_weak(engine), - /* K25 */ be_nested_str_weak(add), - /* K26 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), - /* K27 */ be_nested_str_weak(create_color), - /* K28 */ be_nested_str_weak(TYPE_USER_FUNCTION), - /* K29 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), - /* K30 */ be_nested_str_weak(_validate_color_provider_factory_exists), - /* K31 */ be_nested_str_weak(error), - /* K32 */ 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), - /* K33 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), - /* K34 */ be_nested_str_weak(_create_instance_for_validation), - /* K35 */ be_nested_str_weak(_process_named_arguments_for_color_provider), - /* K36 */ be_nested_str_weak(_X25s_), - /* K37 */ be_nested_str_weak(_process_simple_value_assignment), - /* K38 */ be_nested_str_weak(CONTEXT_COLOR), - }), - be_str_weak(process_color), - &be_const_str_solidified, - ( &(const binstruction[186]) { /* 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 - 0x780E0096, // 001B JMPF R3 #00B3 - 0x8C0C010C, // 001C GETMET R3 R0 K12 - 0x7C0C0200, // 001D CALL R3 1 - 0x4C100000, // 001E LDNIL R4 - 0x200C0604, // 001F NE R3 R3 R4 - 0x780E0091, // 0020 JMPF R3 #00B3 - 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 - 0x780E0089, // 0028 JMPF R3 #00B3 - 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 - 0x4C180000, // 0045 LDNIL R6 - 0x20180A06, // 0046 NE R6 R5 R6 - 0x781A001F, // 0047 JMPF R6 #0068 - 0x88180B07, // 0048 GETMBR R6 R5 K7 - 0xB81E1000, // 0049 GETNGBL R7 K8 - 0x881C0F14, // 004A GETMBR R7 R7 K20 - 0x881C0F15, // 004B GETMBR R7 R7 K21 - 0x1C180C07, // 004C EQ R6 R6 R7 - 0x781A0019, // 004D JMPF R6 #0068 - 0x8C180116, // 004E GETMET R6 R0 K22 - 0x50200000, // 004F LDBOOL R8 0 0 - 0x7C180400, // 0050 CALL R6 2 - 0x201C0D0F, // 0051 NE R7 R6 K15 - 0x781E0004, // 0052 JMPF R7 #0058 - 0x601C0018, // 0053 GETGBL R7 G24 - 0x58200017, // 0054 LDCONST R8 K23 - 0x5C240C00, // 0055 MOVE R9 R6 - 0x7C1C0400, // 0056 CALL R7 2 - 0x70020000, // 0057 JMP #0059 - 0x581C0018, // 0058 LDCONST R7 K24 - 0x8C200119, // 0059 GETMET R8 R0 K25 - 0x60280018, // 005A GETGBL R10 G24 - 0x582C001A, // 005B LDCONST R11 K26 - 0x5C300200, // 005C MOVE R12 R1 - 0x5C340600, // 005D MOVE R13 R3 - 0x5C380E00, // 005E MOVE R14 R7 - 0x5C3C0800, // 005F MOVE R15 R4 - 0x7C280A00, // 0060 CALL R10 5 - 0x7C200400, // 0061 CALL R8 2 - 0x88200112, // 0062 GETMBR R8 R0 K18 - 0x8C20111B, // 0063 GETMET R8 R8 K27 - 0x5C280200, // 0064 MOVE R10 R1 - 0x4C2C0000, // 0065 LDNIL R11 - 0x7C200600, // 0066 CALL R8 3 - 0x70020049, // 0067 JMP #00B2 - 0x4C180000, // 0068 LDNIL R6 - 0x20180A06, // 0069 NE R6 R5 R6 - 0x781A001F, // 006A JMPF R6 #008B - 0x88180B07, // 006B GETMBR R6 R5 K7 - 0xB81E1000, // 006C GETNGBL R7 K8 - 0x881C0F14, // 006D GETMBR R7 R7 K20 - 0x881C0F1C, // 006E GETMBR R7 R7 K28 - 0x1C180C07, // 006F EQ R6 R6 R7 - 0x781A0019, // 0070 JMPF R6 #008B - 0x8C180116, // 0071 GETMET R6 R0 K22 - 0x50200000, // 0072 LDBOOL R8 0 0 - 0x7C180400, // 0073 CALL R6 2 - 0x201C0D0F, // 0074 NE R7 R6 K15 - 0x781E0004, // 0075 JMPF R7 #007B - 0x601C0018, // 0076 GETGBL R7 G24 - 0x58200017, // 0077 LDCONST R8 K23 - 0x5C240C00, // 0078 MOVE R9 R6 - 0x7C1C0400, // 0079 CALL R7 2 - 0x70020000, // 007A JMP #007C - 0x581C0018, // 007B LDCONST R7 K24 - 0x8C200119, // 007C GETMET R8 R0 K25 - 0x60280018, // 007D GETGBL R10 G24 - 0x582C001D, // 007E LDCONST R11 K29 - 0x5C300200, // 007F MOVE R12 R1 - 0x5C340600, // 0080 MOVE R13 R3 - 0x5C380E00, // 0081 MOVE R14 R7 - 0x5C3C0800, // 0082 MOVE R15 R4 - 0x7C280A00, // 0083 CALL R10 5 - 0x7C200400, // 0084 CALL R8 2 - 0x88200112, // 0085 GETMBR R8 R0 K18 - 0x8C20111B, // 0086 GETMET R8 R8 K27 - 0x5C280200, // 0087 MOVE R10 R1 - 0x4C2C0000, // 0088 LDNIL R11 - 0x7C200600, // 0089 CALL R8 3 - 0x70020026, // 008A JMP #00B2 - 0x8C18011E, // 008B GETMET R6 R0 K30 - 0x5C200600, // 008C MOVE R8 R3 - 0x7C180400, // 008D CALL R6 2 - 0x741A0008, // 008E JMPT R6 #0098 - 0x8C18011F, // 008F GETMET R6 R0 K31 - 0x60200018, // 0090 GETGBL R8 G24 - 0x58240020, // 0091 LDCONST R9 K32 - 0x5C280600, // 0092 MOVE R10 R3 - 0x7C200400, // 0093 CALL R8 2 - 0x7C180400, // 0094 CALL R6 2 - 0x8C180104, // 0095 GETMET R6 R0 K4 - 0x7C180200, // 0096 CALL R6 1 - 0x80000C00, // 0097 RET 0 - 0x8C180119, // 0098 GETMET R6 R0 K25 - 0x60200018, // 0099 GETGBL R8 G24 - 0x58240021, // 009A LDCONST R9 K33 - 0x5C280200, // 009B MOVE R10 R1 - 0x5C2C0600, // 009C MOVE R11 R3 - 0x5C300800, // 009D MOVE R12 R4 - 0x7C200800, // 009E CALL R8 4 - 0x7C180400, // 009F CALL R6 2 - 0x8C180122, // 00A0 GETMET R6 R0 K34 - 0x5C200600, // 00A1 MOVE R8 R3 - 0x7C180400, // 00A2 CALL R6 2 - 0x4C1C0000, // 00A3 LDNIL R7 - 0x201C0C07, // 00A4 NE R7 R6 R7 - 0x781E0004, // 00A5 JMPF R7 #00AB - 0x881C0112, // 00A6 GETMBR R7 R0 K18 - 0x8C1C0F1B, // 00A7 GETMET R7 R7 K27 - 0x5C240200, // 00A8 MOVE R9 R1 - 0x5C280C00, // 00A9 MOVE R10 R6 - 0x7C1C0600, // 00AA CALL R7 3 - 0x8C1C0123, // 00AB GETMET R7 R0 K35 - 0x60240018, // 00AC GETGBL R9 G24 - 0x58280024, // 00AD LDCONST R10 K36 - 0x5C2C0200, // 00AE MOVE R11 R1 - 0x7C240400, // 00AF CALL R9 2 - 0x5C280600, // 00B0 MOVE R10 R3 - 0x7C1C0600, // 00B1 CALL R7 3 - 0x70020004, // 00B2 JMP #00B8 - 0x8C0C0125, // 00B3 GETMET R3 R0 K37 - 0x5C140200, // 00B4 MOVE R5 R1 - 0x88180126, // 00B5 GETMBR R6 R0 K38 - 0x841C0000, // 00B6 CLOSURE R7 P0 - 0x7C0C0800, // 00B7 CALL R3 4 - 0xA0000000, // 00B8 CLOSE R0 - 0x80000000, // 00B9 RET 0 + 0x6010000C, // 000E GETGBL R4 G12 + 0x5C140200, // 000F MOVE R5 R1 + 0x7C100200, // 0010 CALL R4 1 + 0x04100905, // 0011 SUB R4 R4 K5 + 0x04140905, // 0012 SUB R5 R4 K5 + 0x40140605, // 0013 CONNECT R5 R3 R5 + 0x94140205, // 0014 GETIDX R5 R1 R5 + 0x6018000C, // 0015 GETGBL R6 G12 + 0x5C1C0A00, // 0016 MOVE R7 R5 + 0x7C180200, // 0017 CALL R6 1 + 0x24180D03, // 0018 GT R6 R6 K3 + 0x781A0004, // 0019 JMPF R6 #001F + 0x8C180106, // 001A GETMET R6 R0 K6 + 0x5C200A00, // 001B MOVE R8 R5 + 0x7C180400, // 001C CALL R6 2 + 0x781A0000, // 001D JMPF R6 #001F + 0x80040A00, // 001E RET 1 R5 + 0x4C0C0000, // 001F LDNIL R3 + 0x80040600, // 0020 RET 1 R3 }) ) ); @@ -12345,1995 +13155,142 @@ be_local_closure(class_SimpleDSLTranspiler_get_symbol_table_report, /* name */ /*******************************************************************/ -/******************************************************************** -** 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_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), - /* K6 */ be_nested_str_weak(), - /* K7 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K8 */ be_nested_str_weak(engine), - /* 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[36]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0019, // 0004 JMPF R2 #001F - 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 - 0x780A0011, // 000C JMPF R2 #001F - 0x8C080105, // 000D GETMET R2 R0 K5 - 0x50100200, // 000E LDBOOL R4 1 0 - 0x7C080400, // 000F CALL R2 2 - 0x200C0506, // 0010 NE R3 R2 K6 - 0x780E0004, // 0011 JMPF R3 #0017 - 0x600C0018, // 0012 GETGBL R3 G24 - 0x58100007, // 0013 LDCONST R4 K7 - 0x5C140400, // 0014 MOVE R5 R2 - 0x7C0C0400, // 0015 CALL R3 2 - 0x70020000, // 0016 JMP #0018 - 0x580C0008, // 0017 LDCONST R3 K8 - 0x60100018, // 0018 GETGBL R4 G24 - 0x58140009, // 0019 LDCONST R5 K9 - 0x5C180200, // 001A MOVE R6 R1 - 0x5C1C0600, // 001B MOVE R7 R3 - 0x7C100600, // 001C CALL R4 3 - 0x80040800, // 001D RET 1 R4 - 0x70020003, // 001E JMP #0023 - 0x8C08010A, // 001F GETMET R2 R0 K10 - 0x5810000B, // 0020 LDCONST R4 K11 - 0x7C080400, // 0021 CALL R2 2 - 0x80061800, // 0022 RET 1 K12 - 0x80000000, // 0023 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ - be_nested_proto( - 16, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 0), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(create_animation), - }), - be_str_weak(_X3Clambda_X3E), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x68080000, // 0000 GETUPV R2 U0 - 0x88080500, // 0001 GETMBR R2 R2 K0 - 0x8C080501, // 0002 GETMET R2 R2 K1 - 0x5C100000, // 0003 MOVE R4 R0 - 0x5C140200, // 0004 MOVE R5 R1 - 0x7C080600, // 0005 CALL R2 3 - 0x80040400, // 0006 RET 1 R2 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[39]) { /* 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), - /* 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(symbol_table), - /* K19 */ be_nested_str_weak(get), - /* K20 */ be_nested_str_weak(_symbol_entry), - /* K21 */ be_nested_str_weak(TYPE_TEMPLATE), - /* K22 */ be_nested_str_weak(process_function_arguments), - /* K23 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K24 */ be_nested_str_weak(engine), - /* K25 */ be_nested_str_weak(add), - /* K26 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), - /* K27 */ be_nested_str_weak(create_animation), - /* K28 */ be_nested_str_weak(TYPE_USER_FUNCTION), - /* K29 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), - /* K30 */ be_nested_str_weak(_validate_animation_factory_creates_animation), - /* K31 */ be_nested_str_weak(error), - /* K32 */ 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), - /* K33 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), - /* K34 */ be_nested_str_weak(_create_instance_for_validation), - /* K35 */ be_nested_str_weak(_process_named_arguments_for_animation), - /* K36 */ be_nested_str_weak(_X25s_), - /* K37 */ be_nested_str_weak(_process_simple_value_assignment), - /* K38 */ be_nested_str_weak(CONTEXT_ANIMATION), - }), - be_str_weak(process_animation), - &be_const_str_solidified, - ( &(const binstruction[186]) { /* 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 - 0x780E0096, // 001B JMPF R3 #00B3 - 0x8C0C010C, // 001C GETMET R3 R0 K12 - 0x7C0C0200, // 001D CALL R3 1 - 0x4C100000, // 001E LDNIL R4 - 0x200C0604, // 001F NE R3 R3 R4 - 0x780E0091, // 0020 JMPF R3 #00B3 - 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 - 0x780E0089, // 0028 JMPF R3 #00B3 - 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 - 0x4C180000, // 0045 LDNIL R6 - 0x20180A06, // 0046 NE R6 R5 R6 - 0x781A001F, // 0047 JMPF R6 #0068 - 0x88180B07, // 0048 GETMBR R6 R5 K7 - 0xB81E1000, // 0049 GETNGBL R7 K8 - 0x881C0F14, // 004A GETMBR R7 R7 K20 - 0x881C0F15, // 004B GETMBR R7 R7 K21 - 0x1C180C07, // 004C EQ R6 R6 R7 - 0x781A0019, // 004D JMPF R6 #0068 - 0x8C180116, // 004E GETMET R6 R0 K22 - 0x50200000, // 004F LDBOOL R8 0 0 - 0x7C180400, // 0050 CALL R6 2 - 0x201C0D0F, // 0051 NE R7 R6 K15 - 0x781E0004, // 0052 JMPF R7 #0058 - 0x601C0018, // 0053 GETGBL R7 G24 - 0x58200017, // 0054 LDCONST R8 K23 - 0x5C240C00, // 0055 MOVE R9 R6 - 0x7C1C0400, // 0056 CALL R7 2 - 0x70020000, // 0057 JMP #0059 - 0x581C0018, // 0058 LDCONST R7 K24 - 0x8C200119, // 0059 GETMET R8 R0 K25 - 0x60280018, // 005A GETGBL R10 G24 - 0x582C001A, // 005B LDCONST R11 K26 - 0x5C300200, // 005C MOVE R12 R1 - 0x5C340600, // 005D MOVE R13 R3 - 0x5C380E00, // 005E MOVE R14 R7 - 0x5C3C0800, // 005F MOVE R15 R4 - 0x7C280A00, // 0060 CALL R10 5 - 0x7C200400, // 0061 CALL R8 2 - 0x88200112, // 0062 GETMBR R8 R0 K18 - 0x8C20111B, // 0063 GETMET R8 R8 K27 - 0x5C280200, // 0064 MOVE R10 R1 - 0x4C2C0000, // 0065 LDNIL R11 - 0x7C200600, // 0066 CALL R8 3 - 0x70020049, // 0067 JMP #00B2 - 0x4C180000, // 0068 LDNIL R6 - 0x20180A06, // 0069 NE R6 R5 R6 - 0x781A001F, // 006A JMPF R6 #008B - 0x88180B07, // 006B GETMBR R6 R5 K7 - 0xB81E1000, // 006C GETNGBL R7 K8 - 0x881C0F14, // 006D GETMBR R7 R7 K20 - 0x881C0F1C, // 006E GETMBR R7 R7 K28 - 0x1C180C07, // 006F EQ R6 R6 R7 - 0x781A0019, // 0070 JMPF R6 #008B - 0x8C180116, // 0071 GETMET R6 R0 K22 - 0x50200000, // 0072 LDBOOL R8 0 0 - 0x7C180400, // 0073 CALL R6 2 - 0x201C0D0F, // 0074 NE R7 R6 K15 - 0x781E0004, // 0075 JMPF R7 #007B - 0x601C0018, // 0076 GETGBL R7 G24 - 0x58200017, // 0077 LDCONST R8 K23 - 0x5C240C00, // 0078 MOVE R9 R6 - 0x7C1C0400, // 0079 CALL R7 2 - 0x70020000, // 007A JMP #007C - 0x581C0018, // 007B LDCONST R7 K24 - 0x8C200119, // 007C GETMET R8 R0 K25 - 0x60280018, // 007D GETGBL R10 G24 - 0x582C001D, // 007E LDCONST R11 K29 - 0x5C300200, // 007F MOVE R12 R1 - 0x5C340600, // 0080 MOVE R13 R3 - 0x5C380E00, // 0081 MOVE R14 R7 - 0x5C3C0800, // 0082 MOVE R15 R4 - 0x7C280A00, // 0083 CALL R10 5 - 0x7C200400, // 0084 CALL R8 2 - 0x88200112, // 0085 GETMBR R8 R0 K18 - 0x8C20111B, // 0086 GETMET R8 R8 K27 - 0x5C280200, // 0087 MOVE R10 R1 - 0x4C2C0000, // 0088 LDNIL R11 - 0x7C200600, // 0089 CALL R8 3 - 0x70020026, // 008A JMP #00B2 - 0x8C18011E, // 008B GETMET R6 R0 K30 - 0x5C200600, // 008C MOVE R8 R3 - 0x7C180400, // 008D CALL R6 2 - 0x741A0008, // 008E JMPT R6 #0098 - 0x8C18011F, // 008F GETMET R6 R0 K31 - 0x60200018, // 0090 GETGBL R8 G24 - 0x58240020, // 0091 LDCONST R9 K32 - 0x5C280600, // 0092 MOVE R10 R3 - 0x7C200400, // 0093 CALL R8 2 - 0x7C180400, // 0094 CALL R6 2 - 0x8C180104, // 0095 GETMET R6 R0 K4 - 0x7C180200, // 0096 CALL R6 1 - 0x80000C00, // 0097 RET 0 - 0x8C180119, // 0098 GETMET R6 R0 K25 - 0x60200018, // 0099 GETGBL R8 G24 - 0x58240021, // 009A LDCONST R9 K33 - 0x5C280200, // 009B MOVE R10 R1 - 0x5C2C0600, // 009C MOVE R11 R3 - 0x5C300800, // 009D MOVE R12 R4 - 0x7C200800, // 009E CALL R8 4 - 0x7C180400, // 009F CALL R6 2 - 0x8C180122, // 00A0 GETMET R6 R0 K34 - 0x5C200600, // 00A1 MOVE R8 R3 - 0x7C180400, // 00A2 CALL R6 2 - 0x4C1C0000, // 00A3 LDNIL R7 - 0x201C0C07, // 00A4 NE R7 R6 R7 - 0x781E0004, // 00A5 JMPF R7 #00AB - 0x881C0112, // 00A6 GETMBR R7 R0 K18 - 0x8C1C0F1B, // 00A7 GETMET R7 R7 K27 - 0x5C240200, // 00A8 MOVE R9 R1 - 0x5C280C00, // 00A9 MOVE R10 R6 - 0x7C1C0600, // 00AA CALL R7 3 - 0x8C1C0123, // 00AB GETMET R7 R0 K35 - 0x60240018, // 00AC GETGBL R9 G24 - 0x58280024, // 00AD LDCONST R10 K36 - 0x5C2C0200, // 00AE MOVE R11 R1 - 0x7C240400, // 00AF CALL R9 2 - 0x5C280600, // 00B0 MOVE R10 R3 - 0x7C1C0600, // 00B1 CALL R7 3 - 0x70020004, // 00B2 JMP #00B8 - 0x8C0C0125, // 00B3 GETMET R3 R0 K37 - 0x5C140200, // 00B4 MOVE R5 R1 - 0x88180126, // 00B5 GETMBR R6 R0 K38 - 0x841C0000, // 00B6 CLOSURE R7 P0 - 0x7C0C0800, // 00B7 CALL R3 4 - 0xA0000000, // 00B8 CLOSE R0 - 0x80000000, // 00B9 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: 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: 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 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ - be_nested_proto( - 17, /* nstack */ - 2, /* 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(string), - /* K1 */ be_nested_str_weak(startswith), - /* K2 */ be_nested_str_weak(0x), - /* K3 */ be_nested_str_weak(0xFF_X25s), - /* K4 */ be_const_int(2), - /* K5 */ be_const_int(2147483647), - /* K6 */ be_nested_str_weak(_X23), - /* K7 */ be_nested_str_weak(0x_X25s), - /* K8 */ be_const_int(1), - /* K9 */ be_const_int(3), - /* K10 */ be_nested_str_weak(0x_X25s_X25s_X25s_X25s_X25s_X25s_X25s_X25s), - /* K11 */ be_nested_str_weak(0xFF_X25s_X25s_X25s_X25s_X25s_X25s), - /* K12 */ be_nested_str_weak(animation_dsl), - /* K13 */ be_nested_str_weak(is_color_name), - /* K14 */ be_nested_str_weak(get_named_color_value), - /* K15 */ be_nested_str_weak(0xFFFFFFFF), - }), - be_str_weak(convert_color), - &be_const_str_solidified, - ( &(const binstruction[110]) { /* 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 - 0x780E0013, // 0005 JMPF R3 #001A - 0x600C000C, // 0006 GETGBL R3 G12 - 0x5C100200, // 0007 MOVE R4 R1 - 0x7C0C0200, // 0008 CALL R3 1 - 0x54120009, // 0009 LDINT R4 10 - 0x1C0C0604, // 000A EQ R3 R3 R4 - 0x780E0001, // 000B JMPF R3 #000E - 0x80040200, // 000C RET 1 R1 - 0x7002000B, // 000D JMP #001A - 0x600C000C, // 000E GETGBL R3 G12 - 0x5C100200, // 000F MOVE R4 R1 - 0x7C0C0200, // 0010 CALL R3 1 - 0x54120007, // 0011 LDINT R4 8 - 0x1C0C0604, // 0012 EQ R3 R3 R4 - 0x780E0005, // 0013 JMPF R3 #001A - 0x600C0018, // 0014 GETGBL R3 G24 - 0x58100003, // 0015 LDCONST R4 K3 - 0x40160905, // 0016 CONNECT R5 K4 K5 - 0x94140205, // 0017 GETIDX R5 R1 R5 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80040600, // 0019 RET 1 R3 - 0x8C0C0501, // 001A GETMET R3 R2 K1 - 0x5C140200, // 001B MOVE R5 R1 - 0x58180006, // 001C LDCONST R6 K6 - 0x7C0C0600, // 001D CALL R3 3 - 0x780E0044, // 001E JMPF R3 #0064 - 0x600C000C, // 001F GETGBL R3 G12 - 0x5C100200, // 0020 MOVE R4 R1 - 0x7C0C0200, // 0021 CALL R3 1 - 0x54120008, // 0022 LDINT R4 9 - 0x1C0C0604, // 0023 EQ R3 R3 R4 - 0x780E0006, // 0024 JMPF R3 #002C - 0x600C0018, // 0025 GETGBL R3 G24 - 0x58100007, // 0026 LDCONST R4 K7 - 0x40161105, // 0027 CONNECT R5 K8 K5 - 0x94140205, // 0028 GETIDX R5 R1 R5 - 0x7C0C0400, // 0029 CALL R3 2 - 0x80040600, // 002A RET 1 R3 - 0x70020037, // 002B JMP #0064 - 0x600C000C, // 002C GETGBL R3 G12 - 0x5C100200, // 002D MOVE R4 R1 - 0x7C0C0200, // 002E CALL R3 1 - 0x54120006, // 002F LDINT R4 7 - 0x1C0C0604, // 0030 EQ R3 R3 R4 - 0x780E0006, // 0031 JMPF R3 #0039 - 0x600C0018, // 0032 GETGBL R3 G24 - 0x58100003, // 0033 LDCONST R4 K3 - 0x40161105, // 0034 CONNECT R5 K8 K5 - 0x94140205, // 0035 GETIDX R5 R1 R5 - 0x7C0C0400, // 0036 CALL R3 2 - 0x80040600, // 0037 RET 1 R3 - 0x7002002A, // 0038 JMP #0064 - 0x600C000C, // 0039 GETGBL R3 G12 - 0x5C100200, // 003A MOVE R4 R1 - 0x7C0C0200, // 003B CALL R3 1 - 0x54120004, // 003C LDINT R4 5 - 0x1C0C0604, // 003D EQ R3 R3 R4 - 0x780E0011, // 003E JMPF R3 #0051 - 0x940C0308, // 003F GETIDX R3 R1 K8 - 0x94100304, // 0040 GETIDX R4 R1 K4 - 0x94140309, // 0041 GETIDX R5 R1 K9 - 0x541A0003, // 0042 LDINT R6 4 - 0x94180206, // 0043 GETIDX R6 R1 R6 - 0x601C0018, // 0044 GETGBL R7 G24 - 0x5820000A, // 0045 LDCONST R8 K10 - 0x5C240600, // 0046 MOVE R9 R3 - 0x5C280600, // 0047 MOVE R10 R3 - 0x5C2C0800, // 0048 MOVE R11 R4 - 0x5C300800, // 0049 MOVE R12 R4 - 0x5C340A00, // 004A MOVE R13 R5 - 0x5C380A00, // 004B MOVE R14 R5 - 0x5C3C0C00, // 004C MOVE R15 R6 - 0x5C400C00, // 004D MOVE R16 R6 - 0x7C1C1200, // 004E CALL R7 9 - 0x80040E00, // 004F RET 1 R7 - 0x70020012, // 0050 JMP #0064 - 0x600C000C, // 0051 GETGBL R3 G12 - 0x5C100200, // 0052 MOVE R4 R1 - 0x7C0C0200, // 0053 CALL R3 1 - 0x54120003, // 0054 LDINT R4 4 - 0x1C0C0604, // 0055 EQ R3 R3 R4 - 0x780E000C, // 0056 JMPF R3 #0064 - 0x940C0308, // 0057 GETIDX R3 R1 K8 - 0x94100304, // 0058 GETIDX R4 R1 K4 - 0x94140309, // 0059 GETIDX R5 R1 K9 - 0x60180018, // 005A GETGBL R6 G24 - 0x581C000B, // 005B LDCONST R7 K11 - 0x5C200600, // 005C MOVE R8 R3 - 0x5C240600, // 005D MOVE R9 R3 - 0x5C280800, // 005E MOVE R10 R4 - 0x5C2C0800, // 005F MOVE R11 R4 - 0x5C300A00, // 0060 MOVE R12 R5 - 0x5C340A00, // 0061 MOVE R13 R5 - 0x7C180E00, // 0062 CALL R6 7 - 0x80040C00, // 0063 RET 1 R6 - 0xB80E1800, // 0064 GETNGBL R3 K12 - 0x8C0C070D, // 0065 GETMET R3 R3 K13 - 0x5C140200, // 0066 MOVE R5 R1 - 0x7C0C0400, // 0067 CALL R3 2 - 0x780E0003, // 0068 JMPF R3 #006D - 0x8C0C010E, // 0069 GETMET R3 R0 K14 - 0x5C140200, // 006A MOVE R5 R1 - 0x7C0C0400, // 006B CALL R3 2 - 0x80040600, // 006C RET 1 R3 - 0x80061E00, // 006D RET 1 K15 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified class: SimpleDSLTranspiler ********************************************************************/ be_local_class(SimpleDSLTranspiler, 9, NULL, - be_nested_map(129, + be_nested_map(125, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_process_named_arguments_generic, 86), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_generic_closure) }, - { be_const_key_weak(CONTEXT_ANIMATION, -1), be_const_int(3) }, - { be_const_key_weak(CONTEXT_PROPERTY, 113), be_const_int(5) }, - { be_const_key_weak(convert_color, -1), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, - { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, - { be_const_key_weak(CONTEXT_REPEAT_COUNT, 48), be_const_int(6) }, - { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, - { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, - { be_const_key_weak(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, - { be_const_key_weak(_create_symbol_by_return_type, 104), be_const_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type_closure) }, - { be_const_key_weak(_validate_value_provider_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_reference_closure) }, - { be_const_key_weak(has_template_calls, -1), be_const_var(8) }, - { 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(check_right_brace, 39), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, - { be_const_key_weak(process_set, -1), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, - { be_const_key_weak(process_sequence_assignment_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, - { be_const_key_weak(process_percentage_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, - { be_const_key_weak(ExpressionResult, -1), be_const_class(be_class_ExpressionResult) }, - { be_const_key_weak(CONTEXT_ARGUMENT, -1), be_const_int(4) }, - { be_const_key_weak(transform_expression_for_closure, -1), be_const_closure(class_SimpleDSLTranspiler_transform_expression_for_closure_closure) }, - { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_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_sequence_assignment_generic, 126), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic_closure) }, - { be_const_key_weak(errors, -1), be_const_var(3) }, - { be_const_key_weak(run_statements, 49), be_const_var(4) }, - { be_const_key_weak(generate_template_function, 7), be_const_closure(class_SimpleDSLTranspiler_generate_template_function_closure) }, - { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, - { be_const_key_weak(expect_left_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, - { be_const_key_weak(expect_colon, -1), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, - { be_const_key_weak(CONTEXT_GENERIC, 99), be_const_int(10) }, - { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, - { be_const_key_weak(next, -1), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, - { be_const_key_weak(CONTEXT_TIME, -1), be_const_int(8) }, - { be_const_key_weak(_validate_object_reference, 123), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, - { be_const_key_weak(tokens, 95), be_const_var(0) }, - { be_const_key_weak(_validate_animation_factory_exists, 36), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, - { be_const_key_weak(process_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, - { be_const_key_weak(_process_parameters_core, -1), be_const_closure(class_SimpleDSLTranspiler__process_parameters_core_closure) }, - { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, - { be_const_key_weak(pos, 62), be_const_var(1) }, - { be_const_key_weak(expect_comma, -1), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, - { be_const_key_weak(process_additive_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, - { be_const_key_weak(get_errors, 29), be_const_closure(class_SimpleDSLTranspiler_get_errors_closure) }, - { be_const_key_weak(is_computed_expression_string, -1), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_string_closure) }, + { be_const_key_weak(_validate_single_parameter, 52), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, { be_const_key_weak(expect_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, - { be_const_key_weak(process_import, -1), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, - { be_const_key_weak(process_berry_code_block, 100), be_const_closure(class_SimpleDSLTranspiler_process_berry_code_block_closure) }, - { be_const_key_weak(_process_named_arguments_for_color_provider, 23), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, - { be_const_key_weak(process_function_arguments, 64), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, - { be_const_key_weak(is_identifier_char, 28), be_const_closure(class_SimpleDSLTranspiler_is_identifier_char_closure) }, - { be_const_key_weak(transpile_template_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, - { be_const_key_weak(generate_engine_run, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_run_closure) }, - { be_const_key_weak(get_named_color_value, -1), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, - { be_const_key_weak(process_event_parameters, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, - { be_const_key_weak(_process_named_arguments_unified, 112), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_unified_closure) }, - { be_const_key_weak(indent_level, -1), be_const_var(7) }, - { be_const_key_weak(symbol_table, -1), be_const_var(6) }, - { be_const_key_weak(process_named_arguments_for_variable, 32), be_const_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable_closure) }, - { be_const_key_weak(process_sequence_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_closure) }, - { be_const_key_weak(validate_symbol_reference, -1), be_const_closure(class_SimpleDSLTranspiler_validate_symbol_reference_closure) }, - { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, - { be_const_key_weak(process_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_statement_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(_process_named_arguments_for_animation, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation_closure) }, - { be_const_key_weak(_is_named_arg_constructor, -1), be_const_closure(class_SimpleDSLTranspiler__is_named_arg_constructor_closure) }, - { be_const_key_weak(process_time_value, 119), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, - { be_const_key_weak(CONTEXT_EXPRESSION, -1), be_const_int(9) }, - { be_const_key_weak(validate_user_name, -1), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, - { be_const_key_weak(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, - { be_const_key_weak(_has_function_parameters, 72), be_const_closure(class_SimpleDSLTranspiler__has_function_parameters_closure) }, - { be_const_key_weak(output, 21), be_const_var(2) }, - { be_const_key_weak(process_template, 31), be_const_closure(class_SimpleDSLTranspiler_process_template_closure) }, - { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, - { be_const_key_weak(_process_simple_value_assignment, -1), be_const_closure(class_SimpleDSLTranspiler__process_simple_value_assignment_closure) }, - { be_const_key_weak(expect_left_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, - { be_const_key_weak(expect_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, - { be_const_key_weak(create_simple_function_from_string, -1), be_const_closure(class_SimpleDSLTranspiler_create_simple_function_from_string_closure) }, - { be_const_key_weak(has_errors, 82), be_const_closure(class_SimpleDSLTranspiler_has_errors_closure) }, - { be_const_key_weak(process_array_literal, -1), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, - { be_const_key_weak(process_unary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, - { be_const_key_weak(process_log_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_statement_fluent_closure) }, - { be_const_key_weak(process_standalone_log, 65), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, - { 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(strip_initialized, 45), be_const_var(5) }, - { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, - { be_const_key_weak(generate_default_strip_initialization, -1), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, - { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, - { be_const_key_weak(transpile, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, - { be_const_key_weak(can_use_as_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, - { be_const_key_weak(convert_time_to_ms, 78), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, - { be_const_key_weak(skip_statement, -1), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, - { be_const_key_weak(skip_whitespace, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, - { be_const_key_weak(_determine_symbol_return_type, 97), be_const_closure(class_SimpleDSLTranspiler__determine_symbol_return_type_closure) }, - { be_const_key_weak(process_property_assignment, 91), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, - { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, - { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, - { be_const_key_weak(init, -1), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, - { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, - { be_const_key_weak(skip_whitespace_including_newlines, 84), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, - { be_const_key_weak(process_log_call, 107), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, - { be_const_key_weak(process_primary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, - { be_const_key_weak(get_indent, 75), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, - { be_const_key_weak(CONTEXT_VARIABLE, -1), be_const_int(1) }, - { be_const_key_weak(expect_keyword, 68), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, - { be_const_key_weak(process_restart_statement_fluent, 67), be_const_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent_closure) }, - { be_const_key_weak(CONTEXT_ARRAY_ELEMENT, -1), be_const_int(7) }, - { be_const_key_weak(check_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, - { be_const_key_weak(process_play_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, - { be_const_key_weak(process_palette, 61), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, - { be_const_key_weak(CONTEXT_COLOR_PROVIDER, 53), be_const_int(11) }, - { be_const_key_weak(expect_assign, 52), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, - { be_const_key_weak(expect_number, -1), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, - { be_const_key_weak(CONTEXT_COLOR, 118), be_const_int(2) }, - { be_const_key_weak(peek, -1), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, - { be_const_key_weak(at_end, 13), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, - { be_const_key_weak(create_computation_closure_from_string, 37), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string_closure) }, - { be_const_key_weak(is_computed_expression, -1), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_closure) }, + { be_const_key_weak(process_template, 48), be_const_closure(class_SimpleDSLTranspiler_process_template_closure) }, + { be_const_key_weak(warnings, 65), be_const_var(3) }, + { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, + { be_const_key_weak(expect_comma, 59), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, { be_const_key_weak(get_symbol_table_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_symbol_table_report_closure) }, - { be_const_key_weak(_validate_single_parameter, -1), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, - { be_const_key_weak(process_palette_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, - { be_const_key_weak(_process_user_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__process_user_function_call_closure) }, - { be_const_key_weak(_determine_function_return_type, 24), be_const_closure(class_SimpleDSLTranspiler__determine_function_return_type_closure) }, - { be_const_key_weak(process_animation, -1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, - { be_const_key_weak(expect_right_bracket, 116), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, - { be_const_key_weak(process_function_call, 18), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, - { be_const_key_weak(convert_to_vrgb, 17), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(_process_user_function_call, 18), be_const_closure(class_SimpleDSLTranspiler__process_user_function_call_closure) }, + { be_const_key_weak(_unwrap_resolve, 27), be_const_closure(class_SimpleDSLTranspiler__unwrap_resolve_closure) }, + { be_const_key_weak(peek, 83), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, + { be_const_key_weak(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, + { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, + { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, + { be_const_key_weak(_validate_template_parameter_name, 82), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_name_closure) }, + { be_const_key_weak(convert_to_vrgb, -1), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, + { be_const_key_weak(expect_left_bracket, 97), 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(check_right_bracket, 42), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, + { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, + { be_const_key_weak(CONTEXT_REPEAT_COUNT, 12), be_const_int(6) }, + { be_const_key_weak(_process_parameters_core, -1), be_const_closure(class_SimpleDSLTranspiler__process_parameters_core_closure) }, + { be_const_key_weak(generate_template_function, -1), be_const_closure(class_SimpleDSLTranspiler_generate_template_function_closure) }, + { be_const_key_weak(_validate_template_parameter_type, 49), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_type_closure) }, + { be_const_key_weak(CONTEXT_ANIMATION, 117), be_const_int(3) }, + { be_const_key_weak(expect_colon, 121), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, + { be_const_key_weak(tokens, -1), be_const_var(0) }, + { be_const_key_weak(_validate_template_parameter_usage, 108), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage_closure) }, + { be_const_key_weak(check_right_paren, 102), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, + { be_const_key_weak(process_standalone_log, -1), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, + { be_const_key_weak(symbol_table, -1), be_const_var(6) }, + { be_const_key_weak(get_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_get_warnings_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_log_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, + { be_const_key_weak(has_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_has_warnings_closure) }, + { be_const_key_weak(convert_color, -1), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, + { be_const_key_weak(skip_whitespace, 14), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, + { be_const_key_weak(process_wait_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent_closure) }, + { be_const_key_weak(_validate_color_provider_factory_exists, 32), be_const_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists_closure) }, + { be_const_key_weak(process_array_literal, -1), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, + { be_const_key_weak(run_statements, -1), be_const_var(4) }, + { be_const_key_weak(_is_valid_identifier, -1), be_const_closure(class_SimpleDSLTranspiler__is_valid_identifier_closure) }, + { be_const_key_weak(_determine_symbol_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_symbol_return_type_closure) }, + { be_const_key_weak(_split_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler__split_function_arguments_closure) }, + { be_const_key_weak(expect_left_paren, 115), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, + { be_const_key_weak(generate_engine_run, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_run_closure) }, + { be_const_key_weak(warning, 111), be_const_closure(class_SimpleDSLTranspiler_warning_closure) }, + { be_const_key_weak(process_sequence_assignment_fluent, 8), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, + { be_const_key_weak(next, -1), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, - { be_const_key_weak(error, -1), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, - { be_const_key_weak(process_sequence_statement, 3), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, + { be_const_key_weak(_validate_object_reference, 62), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, + { be_const_key_weak(expect_assign, -1), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, + { be_const_key_weak(CONTEXT_GENERIC, -1), be_const_int(10) }, + { be_const_key_weak(process_additive_expression, 78), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, + { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, + { be_const_key_weak(_add_typed_parameter_to_symbol_table, -1), be_const_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table_closure) }, + { be_const_key_weak(process_sequence_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, + { be_const_key_weak(has_template_calls, -1), be_const_var(8) }, + { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, + { be_const_key_weak(init, 104), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, + { be_const_key_weak(CONTEXT_ARGUMENT, 54), be_const_int(4) }, + { be_const_key_weak(process_palette_color, 58), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, + { be_const_key_weak(validate_user_name, -1), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, + { be_const_key_weak(expect_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, + { be_const_key_weak(CONTEXT_TIME, -1), be_const_int(8) }, + { be_const_key_weak(process_animation, -1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, + { be_const_key_weak(_process_simple_value_assignment, -1), be_const_closure(class_SimpleDSLTranspiler__process_simple_value_assignment_closure) }, + { be_const_key_weak(process_unary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, + { be_const_key_weak(process_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, + { be_const_key_weak(expect_keyword, -1), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, + { be_const_key_weak(get_indent, -1), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, + { be_const_key_weak(process_log_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_statement_fluent_closure) }, + { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, + { be_const_key_weak(output, -1), be_const_var(2) }, + { be_const_key_weak(_validate_template_call_arguments, 90), be_const_closure(class_SimpleDSLTranspiler__validate_template_call_arguments_closure) }, + { be_const_key_weak(_process_named_arguments_unified, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_unified_closure) }, + { be_const_key_weak(_validate_value_provider_reference, 93), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_reference_closure) }, + { be_const_key_weak(skip_whitespace_including_newlines, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, + { be_const_key_weak(process_restart_statement_fluent, 45), be_const_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent_closure) }, + { be_const_key_weak(process_berry_code_block, -1), be_const_closure(class_SimpleDSLTranspiler_process_berry_code_block_closure) }, + { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, + { be_const_key_weak(CONTEXT_EXPRESSION, -1), be_const_int(9) }, + { be_const_key_weak(CONTEXT_COLOR, -1), be_const_int(2) }, + { be_const_key_weak(indent_level, -1), be_const_var(7) }, + { be_const_key_weak(expect_left_brace, 30), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, + { be_const_key_weak(process_sequence_assignment_generic, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic_closure) }, + { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, + { be_const_key_weak(CONTEXT_PROPERTY, -1), be_const_int(5) }, + { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, + { be_const_key_weak(can_use_as_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, + { be_const_key_weak(at_end, 66), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, + { be_const_key_weak(process_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, + { be_const_key_weak(pos, 9), 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_repeat_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent_closure) }, + { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, + { be_const_key_weak(CONTEXT_ARRAY_ELEMENT, -1), be_const_int(7) }, + { be_const_key_weak(process_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, + { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, + { be_const_key_weak(process_import, -1), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, + { be_const_key_weak(transpile_template_body, 69), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_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_primary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, + { be_const_key_weak(CONTEXT_VARIABLE, -1), be_const_int(1) }, + { be_const_key_weak(_determine_function_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_function_return_type_closure) }, + { be_const_key_weak(process_play_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, + { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, + { be_const_key_weak(strip_initialized, -1), be_const_var(5) }, + { be_const_key_weak(transpile, 113), be_const_closure(class_SimpleDSLTranspiler_transpile_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(_create_symbol_by_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type_closure) }, + { be_const_key_weak(CONTEXT_COLOR_PROVIDER, 85), be_const_int(11) }, + { be_const_key_weak(process_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, + { be_const_key_weak(_validate_animation_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, + { be_const_key_weak(error, 29), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, + { be_const_key_weak(process_time_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, + { be_const_key_weak(get_named_color_value, 22), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, + { be_const_key_weak(convert_time_to_ms, -1), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, + { be_const_key_weak(ExpressionResult, -1), be_const_class(be_class_ExpressionResult) }, + { be_const_key_weak(process_palette, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, + { be_const_key_weak(expect_right_brace, 10), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, + { be_const_key_weak(expect_number, 122), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, + { be_const_key_weak(process_event_parameters, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, + { be_const_key_weak(skip_statement, 6), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, + { be_const_key_weak(process_set, 3), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, })), be_str_weak(SimpleDSLTranspiler) ); -// compact class 'SymbolTable' ktab size: 55, total: 115 (saved 480 bytes) -static const bvalue be_ktab_class_SymbolTable[55] = { - /* K0 */ be_nested_str_weak(get), - /* K1 */ be_nested_str_weak(takes_named_args), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(_symbol_entry), - /* K4 */ be_nested_str_weak(create_animation_instance), - /* K5 */ be_nested_str_weak(add), - /* K6 */ be_nested_str_weak(takes_positional_args), - /* K7 */ be_nested_str_weak(entries), - /* K8 */ be_nested_str_weak(contains), - /* K9 */ be_nested_str_weak(introspect), - /* K10 */ be_nested_str_weak(named_colors), - /* K11 */ be_nested_str_weak(create_color_instance), - /* K12 */ be_nested_str_weak(log), - /* K13 */ be_nested_str_weak(create_user_function), - /* K14 */ be_nested_str_weak(animation), - /* K15 */ be_nested_str_weak(is_user_function), - /* K16 */ be_nested_str_weak(_math), - /* K17 */ be_nested_str_weak(create_math_function), - /* K18 */ be_nested_str_weak(create_palette_constant), - /* K19 */ be_nested_str_weak(int), - /* K20 */ be_nested_str_weak(create_constant), - /* K21 */ be_nested_str_weak(function), - /* K22 */ be_nested_str_weak(class), - /* K23 */ be_nested_str_weak(mock_engine), - /* K24 */ be_nested_str_weak(color_provider), - /* K25 */ be_nested_str_weak(create_color_constructor), - /* K26 */ be_nested_str_weak(value_provider), - /* K27 */ be_nested_str_weak(create_value_provider_constructor), - /* K28 */ be_nested_str_weak(create_animation_constructor), - /* K29 */ be_nested_str_weak(is_dangerous_call), - /* K30 */ be_nested_str_weak(_detect_and_cache_symbol), - /* K31 */ be_nested_str_weak(create_value_provider_instance), - /* K32 */ be_nested_str_weak(is_builtin), - /* K33 */ be_nested_str_weak(type), - /* K34 */ be_nested_str_weak(TYPE_COLOR), - /* K35 */ be_nested_str_weak(0xFFFFFFFF), - /* K36 */ be_nested_str_weak(get_reference), - /* K37 */ be_nested_str_weak(_X25s_), - /* K38 */ be_nested_str_weak(create_template), - /* K39 */ be_nested_str_weak(set_param_types), - /* K40 */ be_nested_str_weak(Cannot_X20define_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X20conflicts_X20with_X20built_X2Din_X20_X25s), - /* K41 */ be_nested_str_weak(type_to_string), - /* K42 */ be_nested_str_weak(symbol_redefinition_error), - /* K43 */ be_nested_str_weak(find), - /* K44 */ be_nested_str_weak(Cannot_X20redefine_X20symbol_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X27s_X20already_X20defined_X20as_X20_X25s), - /* K45 */ be_nested_str_weak(MockEngine), - /* K46 */ be_nested_str_weak(create_sequence), - /* K47 */ be_nested_str_weak(takes_args), - /* K48 */ be_nested_str_weak(create_palette_instance), - /* K49 */ be_nested_str_weak(create_variable), - /* K50 */ be_nested_str_weak(keys), - /* K51 */ be_nested_str_weak(push), - /* K52 */ be_nested_str_weak(_X25s_X3A_X20_X25s), - /* K53 */ be_nested_str_weak(stop_iteration), - /* K54 */ be_nested_str_weak(instance), -}; - - -extern const bclass be_class_SymbolTable; - -/******************************************************************** -** Solidified function: takes_named_args -********************************************************************/ -be_local_closure(class_SymbolTable_takes_named_args, /* 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_SymbolTable, /* shared constants */ - be_str_weak(takes_named_args), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0002, // 0005 JMPF R3 #0009 - 0x8C0C0501, // 0006 GETMET R3 R2 K1 - 0x7C0C0200, // 0007 CALL R3 1 - 0x70020000, // 0008 JMP #000A - 0x500C0000, // 0009 LDBOOL R3 0 0 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_animation -********************************************************************/ -be_local_closure(class_SymbolTable_create_animation, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_animation), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0xB80E0400, // 0000 GETNGBL R3 K2 - 0x880C0703, // 0001 GETMBR R3 R3 K3 - 0x8C0C0704, // 0002 GETMET R3 R3 K4 - 0x5C140200, // 0003 MOVE R5 R1 - 0x5C180400, // 0004 MOVE R6 R2 - 0x501C0000, // 0005 LDBOOL R7 0 0 - 0x7C0C0800, // 0006 CALL R3 4 - 0x8C100105, // 0007 GETMET R4 R0 K5 - 0x5C180200, // 0008 MOVE R6 R1 - 0x5C1C0600, // 0009 MOVE R7 R3 - 0x7C100600, // 000A CALL R4 3 - 0x80040800, // 000B RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: takes_positional_args -********************************************************************/ -be_local_closure(class_SymbolTable_takes_positional_args, /* 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_SymbolTable, /* shared constants */ - be_str_weak(takes_positional_args), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0002, // 0005 JMPF R3 #0009 - 0x8C0C0506, // 0006 GETMET R3 R2 K6 - 0x7C0C0200, // 0007 CALL R3 1 - 0x70020000, // 0008 JMP #000A - 0x500C0000, // 0009 LDBOOL R3 0 0 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _detect_and_cache_symbol -********************************************************************/ -be_local_closure(class_SymbolTable__detect_and_cache_symbol, /* name */ - be_nested_proto( - 11, /* 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_SymbolTable, /* shared constants */ - be_str_weak(_detect_and_cache_symbol), - &be_const_str_solidified, - ( &(const binstruction[188]) { /* code */ - 0x88080107, // 0000 GETMBR R2 R0 K7 - 0x8C080508, // 0001 GETMET R2 R2 K8 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x780A0002, // 0004 JMPF R2 #0008 - 0x88080107, // 0005 GETMBR R2 R0 K7 - 0x94080401, // 0006 GETIDX R2 R2 R1 - 0x80040400, // 0007 RET 1 R2 - 0xA80200AB, // 0008 EXBLK 0 #00B5 - 0xA40A1200, // 0009 IMPORT R2 K9 - 0xB80E0400, // 000A GETNGBL R3 K2 - 0x880C070A, // 000B GETMBR R3 R3 K10 - 0x8C0C0708, // 000C GETMET R3 R3 K8 - 0x5C140200, // 000D MOVE R5 R1 - 0x7C0C0400, // 000E CALL R3 2 - 0x780E000A, // 000F JMPF R3 #001B - 0xB80E0400, // 0010 GETNGBL R3 K2 - 0x880C0703, // 0011 GETMBR R3 R3 K3 - 0x8C0C070B, // 0012 GETMET R3 R3 K11 - 0x5C140200, // 0013 MOVE R5 R1 - 0x4C180000, // 0014 LDNIL R6 - 0x501C0200, // 0015 LDBOOL R7 1 0 - 0x7C0C0800, // 0016 CALL R3 4 - 0x88100107, // 0017 GETMBR R4 R0 K7 - 0x98100203, // 0018 SETIDX R4 R1 R3 - 0xA8040001, // 0019 EXBLK 1 1 - 0x80040600, // 001A RET 1 R3 - 0x1C0C030C, // 001B EQ R3 R1 K12 - 0x780E0009, // 001C JMPF R3 #0027 - 0xB80E0400, // 001D GETNGBL R3 K2 - 0x880C0703, // 001E GETMBR R3 R3 K3 - 0x8C0C070D, // 001F GETMET R3 R3 K13 - 0x5814000C, // 0020 LDCONST R5 K12 - 0x50180200, // 0021 LDBOOL R6 1 0 - 0x7C0C0600, // 0022 CALL R3 3 - 0x88100107, // 0023 GETMBR R4 R0 K7 - 0x98100203, // 0024 SETIDX R4 R1 R3 - 0xA8040001, // 0025 EXBLK 1 1 - 0x80040600, // 0026 RET 1 R3 - 0xB80E1C00, // 0027 GETNGBL R3 K14 - 0x8C0C070F, // 0028 GETMET R3 R3 K15 - 0x5C140200, // 0029 MOVE R5 R1 - 0x7C0C0400, // 002A CALL R3 2 - 0x780E0009, // 002B JMPF R3 #0036 - 0xB80E0400, // 002C GETNGBL R3 K2 - 0x880C0703, // 002D GETMBR R3 R3 K3 - 0x8C0C070D, // 002E GETMET R3 R3 K13 - 0x5C140200, // 002F MOVE R5 R1 - 0x50180200, // 0030 LDBOOL R6 1 0 - 0x7C0C0600, // 0031 CALL R3 3 - 0x88100107, // 0032 GETMBR R4 R0 K7 - 0x98100203, // 0033 SETIDX R4 R1 R3 - 0xA8040001, // 0034 EXBLK 1 1 - 0x80040600, // 0035 RET 1 R3 - 0x8C0C0508, // 0036 GETMET R3 R2 K8 - 0xB8161C00, // 0037 GETNGBL R5 K14 - 0x88140B10, // 0038 GETMBR R5 R5 K16 - 0x5C180200, // 0039 MOVE R6 R1 - 0x7C0C0600, // 003A CALL R3 3 - 0x780E0009, // 003B JMPF R3 #0046 - 0xB80E0400, // 003C GETNGBL R3 K2 - 0x880C0703, // 003D GETMBR R3 R3 K3 - 0x8C0C0711, // 003E GETMET R3 R3 K17 - 0x5C140200, // 003F MOVE R5 R1 - 0x50180200, // 0040 LDBOOL R6 1 0 - 0x7C0C0600, // 0041 CALL R3 3 - 0x88100107, // 0042 GETMBR R4 R0 K7 - 0x98100203, // 0043 SETIDX R4 R1 R3 - 0xA8040001, // 0044 EXBLK 1 1 - 0x80040600, // 0045 RET 1 R3 - 0x8C0C0508, // 0046 GETMET R3 R2 K8 - 0xB8161C00, // 0047 GETNGBL R5 K14 - 0x5C180200, // 0048 MOVE R6 R1 - 0x7C0C0600, // 0049 CALL R3 3 - 0x780E0064, // 004A JMPF R3 #00B0 - 0xB80E1C00, // 004B GETNGBL R3 K14 - 0x880C0601, // 004C GETMBR R3 R3 R1 - 0x60100004, // 004D GETGBL R4 G4 - 0x5C140600, // 004E MOVE R5 R3 - 0x7C100200, // 004F CALL R4 1 - 0x6014000F, // 0050 GETGBL R5 G15 - 0x5C180600, // 0051 MOVE R6 R3 - 0x601C0015, // 0052 GETGBL R7 G21 - 0x7C140400, // 0053 CALL R5 2 - 0x7816000A, // 0054 JMPF R5 #0060 - 0xB8160400, // 0055 GETNGBL R5 K2 - 0x88140B03, // 0056 GETMBR R5 R5 K3 - 0x8C140B12, // 0057 GETMET R5 R5 K18 - 0x5C1C0200, // 0058 MOVE R7 R1 - 0x5C200600, // 0059 MOVE R8 R3 - 0x50240200, // 005A LDBOOL R9 1 0 - 0x7C140800, // 005B CALL R5 4 - 0x88180107, // 005C GETMBR R6 R0 K7 - 0x98180205, // 005D SETIDX R6 R1 R5 - 0xA8040001, // 005E EXBLK 1 1 - 0x80040A00, // 005F RET 1 R5 - 0x1C140913, // 0060 EQ R5 R4 K19 - 0x7816000A, // 0061 JMPF R5 #006D - 0xB8160400, // 0062 GETNGBL R5 K2 - 0x88140B03, // 0063 GETMBR R5 R5 K3 - 0x8C140B14, // 0064 GETMET R5 R5 K20 - 0x5C1C0200, // 0065 MOVE R7 R1 - 0x5C200600, // 0066 MOVE R8 R3 - 0x50240200, // 0067 LDBOOL R9 1 0 - 0x7C140800, // 0068 CALL R5 4 - 0x88180107, // 0069 GETMBR R6 R0 K7 - 0x98180205, // 006A SETIDX R6 R1 R5 - 0xA8040001, // 006B EXBLK 1 1 - 0x80040A00, // 006C RET 1 R5 - 0x1C140915, // 006D EQ R5 R4 K21 - 0x74160001, // 006E JMPT R5 #0071 - 0x1C140916, // 006F EQ R5 R4 K22 - 0x7816003E, // 0070 JMPF R5 #00B0 - 0xA8020039, // 0071 EXBLK 0 #00AC - 0x5C140600, // 0072 MOVE R5 R3 - 0x88180117, // 0073 GETMBR R6 R0 K23 - 0x7C140200, // 0074 CALL R5 1 - 0x6018000F, // 0075 GETGBL R6 G15 - 0x5C1C0A00, // 0076 MOVE R7 R5 - 0xB8221C00, // 0077 GETNGBL R8 K14 - 0x88201118, // 0078 GETMBR R8 R8 K24 - 0x7C180400, // 0079 CALL R6 2 - 0x781A000B, // 007A JMPF R6 #0087 - 0xB81A0400, // 007B GETNGBL R6 K2 - 0x88180D03, // 007C GETMBR R6 R6 K3 - 0x8C180D19, // 007D GETMET R6 R6 K25 - 0x5C200200, // 007E MOVE R8 R1 - 0x5C240A00, // 007F MOVE R9 R5 - 0x50280200, // 0080 LDBOOL R10 1 0 - 0x7C180800, // 0081 CALL R6 4 - 0x881C0107, // 0082 GETMBR R7 R0 K7 - 0x981C0206, // 0083 SETIDX R7 R1 R6 - 0xA8040002, // 0084 EXBLK 1 2 - 0x80040C00, // 0085 RET 1 R6 - 0x70020022, // 0086 JMP #00AA - 0x6018000F, // 0087 GETGBL R6 G15 - 0x5C1C0A00, // 0088 MOVE R7 R5 - 0xB8221C00, // 0089 GETNGBL R8 K14 - 0x8820111A, // 008A GETMBR R8 R8 K26 - 0x7C180400, // 008B CALL R6 2 - 0x781A000B, // 008C JMPF R6 #0099 - 0xB81A0400, // 008D GETNGBL R6 K2 - 0x88180D03, // 008E GETMBR R6 R6 K3 - 0x8C180D1B, // 008F GETMET R6 R6 K27 - 0x5C200200, // 0090 MOVE R8 R1 - 0x5C240A00, // 0091 MOVE R9 R5 - 0x50280200, // 0092 LDBOOL R10 1 0 - 0x7C180800, // 0093 CALL R6 4 - 0x881C0107, // 0094 GETMBR R7 R0 K7 - 0x981C0206, // 0095 SETIDX R7 R1 R6 - 0xA8040002, // 0096 EXBLK 1 2 - 0x80040C00, // 0097 RET 1 R6 - 0x70020010, // 0098 JMP #00AA - 0x6018000F, // 0099 GETGBL R6 G15 - 0x5C1C0A00, // 009A MOVE R7 R5 - 0xB8221C00, // 009B GETNGBL R8 K14 - 0x8820110E, // 009C GETMBR R8 R8 K14 - 0x7C180400, // 009D CALL R6 2 - 0x781A000A, // 009E JMPF R6 #00AA - 0xB81A0400, // 009F GETNGBL R6 K2 - 0x88180D03, // 00A0 GETMBR R6 R6 K3 - 0x8C180D1C, // 00A1 GETMET R6 R6 K28 - 0x5C200200, // 00A2 MOVE R8 R1 - 0x5C240A00, // 00A3 MOVE R9 R5 - 0x50280200, // 00A4 LDBOOL R10 1 0 - 0x7C180800, // 00A5 CALL R6 4 - 0x881C0107, // 00A6 GETMBR R7 R0 K7 - 0x981C0206, // 00A7 SETIDX R7 R1 R6 - 0xA8040002, // 00A8 EXBLK 1 2 - 0x80040C00, // 00A9 RET 1 R6 - 0xA8040001, // 00AA EXBLK 1 1 - 0x70020003, // 00AB JMP #00B0 - 0xAC140002, // 00AC CATCH R5 0 2 - 0x70020000, // 00AD JMP #00AF - 0x70020000, // 00AE JMP #00B0 - 0xB0080000, // 00AF RAISE 2 R0 R0 - 0x4C0C0000, // 00B0 LDNIL R3 - 0xA8040001, // 00B1 EXBLK 1 1 - 0x80040600, // 00B2 RET 1 R3 - 0xA8040001, // 00B3 EXBLK 1 1 - 0x70020005, // 00B4 JMP #00BB - 0xAC080002, // 00B5 CATCH R2 0 2 - 0x70020002, // 00B6 JMP #00BA - 0x4C100000, // 00B7 LDNIL R4 - 0x80040800, // 00B8 RET 1 R4 - 0x70020000, // 00B9 JMP #00BB - 0xB0080000, // 00BA RAISE 2 R0 R0 - 0x80000000, // 00BB RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_dangerous -********************************************************************/ -be_local_closure(class_SymbolTable_is_dangerous, /* 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_SymbolTable, /* shared constants */ - be_str_weak(is_dangerous), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0002, // 0005 JMPF R3 #0009 - 0x8C0C051D, // 0006 GETMET R3 R2 K29 - 0x7C0C0200, // 0007 CALL R3 1 - 0x70020000, // 0008 JMP #000A - 0x500C0000, // 0009 LDBOOL R3 0 0 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_color -********************************************************************/ -be_local_closure(class_SymbolTable_create_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_SymbolTable, /* shared constants */ - be_str_weak(create_color), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0xB80E0400, // 0000 GETNGBL R3 K2 - 0x880C0703, // 0001 GETMBR R3 R3 K3 - 0x8C0C070B, // 0002 GETMET R3 R3 K11 - 0x5C140200, // 0003 MOVE R5 R1 - 0x5C180400, // 0004 MOVE R6 R2 - 0x501C0000, // 0005 LDBOOL R7 0 0 - 0x7C0C0800, // 0006 CALL R3 4 - 0x8C100105, // 0007 GETMET R4 R0 K5 - 0x5C180200, // 0008 MOVE R6 R1 - 0x5C1C0600, // 0009 MOVE R7 R3 - 0x7C100600, // 000A CALL R4 3 - 0x80040800, // 000B RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: contains -********************************************************************/ -be_local_closure(class_SymbolTable_contains, /* 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_SymbolTable, /* shared constants */ - be_str_weak(contains), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88080107, // 0000 GETMBR R2 R0 K7 - 0x8C080508, // 0001 GETMET R2 R2 K8 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x780A0001, // 0004 JMPF R2 #0007 - 0x50080200, // 0005 LDBOOL R2 1 0 - 0x80040400, // 0006 RET 1 R2 - 0x8C08011E, // 0007 GETMET R2 R0 K30 - 0x5C100200, // 0008 MOVE R4 R1 - 0x7C080400, // 0009 CALL R2 2 - 0x4C0C0000, // 000A LDNIL R3 - 0x200C0403, // 000B NE R3 R2 R3 - 0x80040600, // 000C RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_value_provider -********************************************************************/ -be_local_closure(class_SymbolTable_create_value_provider, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_value_provider), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0xB80E0400, // 0000 GETNGBL R3 K2 - 0x880C0703, // 0001 GETMBR R3 R3 K3 - 0x8C0C071F, // 0002 GETMET R3 R3 K31 - 0x5C140200, // 0003 MOVE R5 R1 - 0x5C180400, // 0004 MOVE R6 R2 - 0x501C0000, // 0005 LDBOOL R7 0 0 - 0x7C0C0800, // 0006 CALL R3 4 - 0x8C100105, // 0007 GETMET R4 R0 K5 - 0x5C180200, // 0008 MOVE R6 R1 - 0x5C1C0600, // 0009 MOVE R7 R3 - 0x7C100600, // 000A CALL R4 3 - 0x80040800, // 000B RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _get_named_color_value -********************************************************************/ -be_local_closure(class_SymbolTable__get_named_color_value, /* 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_SymbolTable, /* shared constants */ - be_str_weak(_get_named_color_value), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E000B, // 0005 JMPF R3 #0012 - 0x880C0520, // 0006 GETMBR R3 R2 K32 - 0x780E0009, // 0007 JMPF R3 #0012 - 0x880C0521, // 0008 GETMBR R3 R2 K33 - 0xB8120400, // 0009 GETNGBL R4 K2 - 0x88100903, // 000A GETMBR R4 R4 K3 - 0x88100922, // 000B GETMBR R4 R4 K34 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x780E0003, // 000D JMPF R3 #0012 - 0xB80E0400, // 000E GETNGBL R3 K2 - 0x880C070A, // 000F GETMBR R3 R3 K10 - 0x940C0601, // 0010 GETIDX R3 R3 R1 - 0x80040600, // 0011 RET 1 R3 - 0x80064600, // 0012 RET 1 K35 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_reference -********************************************************************/ -be_local_closure(class_SymbolTable_get_reference, /* 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_SymbolTable, /* shared constants */ - be_str_weak(get_reference), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E000E, // 0005 JMPF R3 #0015 - 0x880C0520, // 0006 GETMBR R3 R2 K32 - 0x780E0009, // 0007 JMPF R3 #0012 - 0x880C0521, // 0008 GETMBR R3 R2 K33 - 0xB8120400, // 0009 GETNGBL R4 K2 - 0x88100903, // 000A GETMBR R4 R4 K3 - 0x88100922, // 000B GETMBR R4 R4 K34 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x780E0003, // 000D JMPF R3 #0012 - 0xB80E0400, // 000E GETNGBL R3 K2 - 0x880C070A, // 000F GETMBR R3 R3 K10 - 0x940C0601, // 0010 GETIDX R3 R3 R1 - 0x80040600, // 0011 RET 1 R3 - 0x8C0C0524, // 0012 GETMET R3 R2 K36 - 0x7C0C0200, // 0013 CALL R3 1 - 0x80040600, // 0014 RET 1 R3 - 0x600C0018, // 0015 GETGBL R3 G24 - 0x58100025, // 0016 LDCONST R4 K37 - 0x5C140200, // 0017 MOVE R5 R1 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80040600, // 0019 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_template -********************************************************************/ -be_local_closure(class_SymbolTable_create_template, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_template), - &be_const_str_solidified, - ( &(const binstruction[20]) { /* code */ - 0xB80E0400, // 0000 GETNGBL R3 K2 - 0x880C0703, // 0001 GETMBR R3 R3 K3 - 0x8C0C0726, // 0002 GETMET R3 R3 K38 - 0x5C140200, // 0003 MOVE R5 R1 - 0x50180000, // 0004 LDBOOL R6 0 0 - 0x7C0C0600, // 0005 CALL R3 3 - 0x8C100727, // 0006 GETMET R4 R3 K39 - 0x4C180000, // 0007 LDNIL R6 - 0x20180406, // 0008 NE R6 R2 R6 - 0x781A0001, // 0009 JMPF R6 #000C - 0x5C180400, // 000A MOVE R6 R2 - 0x70020001, // 000B JMP #000E - 0x60180013, // 000C GETGBL R6 G19 - 0x7C180000, // 000D CALL R6 0 - 0x7C100400, // 000E CALL R4 2 - 0x8C100105, // 000F GETMET R4 R0 K5 - 0x5C180200, // 0010 MOVE R6 R1 - 0x5C1C0600, // 0011 MOVE R7 R3 - 0x7C100600, // 0012 CALL R4 3 - 0x80040800, // 0013 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_generic -********************************************************************/ -be_local_closure(class_SymbolTable_create_generic, /* name */ - be_nested_proto( - 11, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_generic), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0xB8160400, // 0000 GETNGBL R5 K2 - 0x8C140B03, // 0001 GETMET R5 R5 K3 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x5C200400, // 0003 MOVE R8 R2 - 0x5C240600, // 0004 MOVE R9 R3 - 0x4C280000, // 0005 LDNIL R10 - 0x2028080A, // 0006 NE R10 R4 R10 - 0x782A0001, // 0007 JMPF R10 #000A - 0x5C280800, // 0008 MOVE R10 R4 - 0x70020000, // 0009 JMP #000B - 0x50280000, // 000A LDBOOL R10 0 0 - 0x7C140A00, // 000B CALL R5 5 - 0x8C180105, // 000C GETMET R6 R0 K5 - 0x5C200200, // 000D MOVE R8 R1 - 0x5C240A00, // 000E MOVE R9 R5 - 0x7C180600, // 000F CALL R6 3 - 0x80040C00, // 0010 RET 1 R6 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add -********************************************************************/ -be_local_closure(class_SymbolTable_add, /* name */ - be_nested_proto( - 11, /* 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_SymbolTable, /* shared constants */ - be_str_weak(add), - &be_const_str_solidified, - ( &(const binstruction[42]) { /* code */ - 0x8C0C011E, // 0000 GETMET R3 R0 K30 - 0x5C140200, // 0001 MOVE R5 R1 - 0x7C0C0400, // 0002 CALL R3 2 - 0x4C100000, // 0003 LDNIL R4 - 0x20100604, // 0004 NE R4 R3 R4 - 0x7812000C, // 0005 JMPF R4 #0013 - 0x88100721, // 0006 GETMBR R4 R3 K33 - 0x88140521, // 0007 GETMBR R5 R2 K33 - 0x20100805, // 0008 NE R4 R4 R5 - 0x78120008, // 0009 JMPF R4 #0013 - 0x60100018, // 000A GETGBL R4 G24 - 0x58140028, // 000B LDCONST R5 K40 - 0x5C180200, // 000C MOVE R6 R1 - 0x8C1C0529, // 000D GETMET R7 R2 K41 - 0x7C1C0200, // 000E CALL R7 1 - 0x8C200729, // 000F GETMET R8 R3 K41 - 0x7C200200, // 0010 CALL R8 1 - 0x7C100800, // 0011 CALL R4 4 - 0xB0065404, // 0012 RAISE 1 K42 R4 - 0x88100107, // 0013 GETMBR R4 R0 K7 - 0x8C10092B, // 0014 GETMET R4 R4 K43 - 0x5C180200, // 0015 MOVE R6 R1 - 0x7C100400, // 0016 CALL R4 2 - 0x4C140000, // 0017 LDNIL R5 - 0x20140805, // 0018 NE R5 R4 R5 - 0x7816000C, // 0019 JMPF R5 #0027 - 0x88140921, // 001A GETMBR R5 R4 K33 - 0x88180521, // 001B GETMBR R6 R2 K33 - 0x20140A06, // 001C NE R5 R5 R6 - 0x78160008, // 001D JMPF R5 #0027 - 0x60140018, // 001E GETGBL R5 G24 - 0x5818002C, // 001F LDCONST R6 K44 - 0x5C1C0200, // 0020 MOVE R7 R1 - 0x8C200529, // 0021 GETMET R8 R2 K41 - 0x7C200200, // 0022 CALL R8 1 - 0x8C240929, // 0023 GETMET R9 R4 K41 - 0x7C240200, // 0024 CALL R9 1 - 0x7C140800, // 0025 CALL R5 4 - 0xB0065405, // 0026 RAISE 1 K42 R5 - 0x88140107, // 0027 GETMBR R5 R0 K7 - 0x98140202, // 0028 SETIDX R5 R1 R2 - 0x80040400, // 0029 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get -********************************************************************/ -be_local_closure(class_SymbolTable_get, /* 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_SymbolTable, /* shared constants */ - be_str_weak(get), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88080107, // 0000 GETMBR R2 R0 K7 - 0x8C08052B, // 0001 GETMET R2 R2 K43 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0000, // 0006 JMPF R3 #0008 - 0x80040400, // 0007 RET 1 R2 - 0x8C0C011E, // 0008 GETMET R3 R0 K30 - 0x5C140200, // 0009 MOVE R5 R1 - 0x7C0C0400, // 000A CALL R3 2 - 0x80040600, // 000B RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SymbolTable_init, /* 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_SymbolTable, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x60040013, // 0000 GETGBL R1 G19 - 0x7C040000, // 0001 CALL R1 0 - 0x90020E01, // 0002 SETMBR R0 K7 R1 - 0xB8060400, // 0003 GETNGBL R1 K2 - 0x8C04032D, // 0004 GETMET R1 R1 K45 - 0x7C040200, // 0005 CALL R1 1 - 0x90022E01, // 0006 SETMBR R0 K23 R1 - 0x80000000, // 0007 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_sequence -********************************************************************/ -be_local_closure(class_SymbolTable_create_sequence, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_sequence), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0xB80A0400, // 0000 GETNGBL R2 K2 - 0x88080503, // 0001 GETMBR R2 R2 K3 - 0x8C08052E, // 0002 GETMET R2 R2 K46 - 0x5C100200, // 0003 MOVE R4 R1 - 0x50140000, // 0004 LDBOOL R5 0 0 - 0x7C080600, // 0005 CALL R2 3 - 0x8C0C0105, // 0006 GETMET R3 R0 K5 - 0x5C140200, // 0007 MOVE R5 R1 - 0x5C180400, // 0008 MOVE R6 R2 - 0x7C0C0600, // 0009 CALL R3 3 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: symbol_exists -********************************************************************/ -be_local_closure(class_SymbolTable_symbol_exists, /* 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_SymbolTable, /* shared constants */ - be_str_weak(symbol_exists), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C080108, // 0000 GETMET R2 R0 K8 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x80040400, // 0003 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: register_user_function -********************************************************************/ -be_local_closure(class_SymbolTable_register_user_function, /* 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_SymbolTable, /* shared constants */ - be_str_weak(register_user_function), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x8C080108, // 0000 GETMET R2 R0 K8 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x740A0009, // 0003 JMPT R2 #000E - 0xB80A0400, // 0004 GETNGBL R2 K2 - 0x88080503, // 0005 GETMBR R2 R2 K3 - 0x8C08050D, // 0006 GETMET R2 R2 K13 - 0x5C100200, // 0007 MOVE R4 R1 - 0x50140000, // 0008 LDBOOL R5 0 0 - 0x7C080600, // 0009 CALL R2 3 - 0x8C0C0105, // 000A GETMET R3 R0 K5 - 0x5C140200, // 000B MOVE R5 R1 - 0x5C180400, // 000C MOVE R6 R2 - 0x7C0C0600, // 000D CALL R3 3 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: takes_args -********************************************************************/ -be_local_closure(class_SymbolTable_takes_args, /* 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_SymbolTable, /* shared constants */ - be_str_weak(takes_args), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0001, // 0005 JMPF R3 #0008 - 0x880C052F, // 0006 GETMBR R3 R2 K47 - 0x70020000, // 0007 JMP #0009 - 0x500C0000, // 0008 LDBOOL R3 0 0 - 0x80040600, // 0009 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_palette -********************************************************************/ -be_local_closure(class_SymbolTable_create_palette, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_palette), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0xB80E0400, // 0000 GETNGBL R3 K2 - 0x880C0703, // 0001 GETMBR R3 R3 K3 - 0x8C0C0730, // 0002 GETMET R3 R3 K48 - 0x5C140200, // 0003 MOVE R5 R1 - 0x5C180400, // 0004 MOVE R6 R2 - 0x501C0000, // 0005 LDBOOL R7 0 0 - 0x7C0C0800, // 0006 CALL R3 4 - 0x8C100105, // 0007 GETMET R4 R0 K5 - 0x5C180200, // 0008 MOVE R6 R1 - 0x5C1C0600, // 0009 MOVE R7 R3 - 0x7C100600, // 000A CALL R4 3 - 0x80040800, // 000B RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_variable -********************************************************************/ -be_local_closure(class_SymbolTable_create_variable, /* 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_SymbolTable, /* shared constants */ - be_str_weak(create_variable), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0xB80A0400, // 0000 GETNGBL R2 K2 - 0x88080503, // 0001 GETMBR R2 R2 K3 - 0x8C080531, // 0002 GETMET R2 R2 K49 - 0x5C100200, // 0003 MOVE R4 R1 - 0x50140000, // 0004 LDBOOL R5 0 0 - 0x7C080600, // 0005 CALL R2 3 - 0x8C0C0105, // 0006 GETMET R3 R0 K5 - 0x5C140200, // 0007 MOVE R5 R1 - 0x5C180400, // 0008 MOVE R6 R2 - 0x7C0C0600, // 0009 CALL R3 3 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: list_symbols -********************************************************************/ -be_local_closure(class_SymbolTable_list_symbols, /* 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_SymbolTable, /* shared constants */ - be_str_weak(list_symbols), - &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x60040012, // 0000 GETGBL R1 G18 - 0x7C040000, // 0001 CALL R1 0 - 0x60080010, // 0002 GETGBL R2 G16 - 0x880C0107, // 0003 GETMBR R3 R0 K7 - 0x8C0C0732, // 0004 GETMET R3 R3 K50 - 0x7C0C0200, // 0005 CALL R3 1 - 0x7C080200, // 0006 CALL R2 1 - 0xA802000C, // 0007 EXBLK 0 #0015 - 0x5C0C0400, // 0008 MOVE R3 R2 - 0x7C0C0000, // 0009 CALL R3 0 - 0x88100107, // 000A GETMBR R4 R0 K7 - 0x94100803, // 000B GETIDX R4 R4 R3 - 0x8C140333, // 000C GETMET R5 R1 K51 - 0x601C0018, // 000D GETGBL R7 G24 - 0x58200034, // 000E LDCONST R8 K52 - 0x5C240600, // 000F MOVE R9 R3 - 0x8C280929, // 0010 GETMET R10 R4 K41 - 0x7C280200, // 0011 CALL R10 1 - 0x7C1C0600, // 0012 CALL R7 3 - 0x7C140400, // 0013 CALL R5 2 - 0x7001FFF2, // 0014 JMP #0008 - 0x58080035, // 0015 LDCONST R2 K53 - 0xAC080200, // 0016 CATCH R2 1 0 - 0xB0080000, // 0017 RAISE 2 R0 R0 - 0x80040200, // 0018 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_type -********************************************************************/ -be_local_closure(class_SymbolTable_get_type, /* 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_SymbolTable, /* shared constants */ - be_str_weak(get_type), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0002, // 0005 JMPF R3 #0009 - 0x8C0C0529, // 0006 GETMET R3 R2 K41 - 0x7C0C0200, // 0007 CALL R3 1 - 0x70020000, // 0008 JMP #000A - 0x4C0C0000, // 0009 LDNIL R3 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_instance -********************************************************************/ -be_local_closure(class_SymbolTable_get_instance, /* 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_SymbolTable, /* shared constants */ - be_str_weak(get_instance), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0001, // 0005 JMPF R3 #0008 - 0x880C0536, // 0006 GETMBR R3 R2 K54 - 0x70020000, // 0007 JMP #0009 - 0x4C0C0000, // 0008 LDNIL R3 - 0x80040600, // 0009 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: SymbolTable -********************************************************************/ -be_local_class(SymbolTable, - 2, - NULL, - be_nested_map(26, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(takes_positional_args, -1), be_const_closure(class_SymbolTable_takes_positional_args_closure) }, - { be_const_key_weak(create_value_provider, -1), be_const_closure(class_SymbolTable_create_value_provider_closure) }, - { be_const_key_weak(create_animation, 0), be_const_closure(class_SymbolTable_create_animation_closure) }, - { be_const_key_weak(list_symbols, 15), be_const_closure(class_SymbolTable_list_symbols_closure) }, - { be_const_key_weak(is_dangerous, -1), be_const_closure(class_SymbolTable_is_dangerous_closure) }, - { be_const_key_weak(create_color, -1), be_const_closure(class_SymbolTable_create_color_closure) }, - { be_const_key_weak(mock_engine, -1), be_const_var(1) }, - { be_const_key_weak(entries, 21), be_const_var(0) }, - { be_const_key_weak(add, -1), be_const_closure(class_SymbolTable_add_closure) }, - { be_const_key_weak(_detect_and_cache_symbol, 16), be_const_closure(class_SymbolTable__detect_and_cache_symbol_closure) }, - { be_const_key_weak(_get_named_color_value, -1), be_const_closure(class_SymbolTable__get_named_color_value_closure) }, - { be_const_key_weak(get_reference, -1), be_const_closure(class_SymbolTable_get_reference_closure) }, - { be_const_key_weak(create_template, -1), be_const_closure(class_SymbolTable_create_template_closure) }, - { be_const_key_weak(create_generic, -1), be_const_closure(class_SymbolTable_create_generic_closure) }, - { be_const_key_weak(contains, 8), be_const_closure(class_SymbolTable_contains_closure) }, - { be_const_key_weak(create_palette, -1), be_const_closure(class_SymbolTable_create_palette_closure) }, - { be_const_key_weak(takes_args, 1), be_const_closure(class_SymbolTable_takes_args_closure) }, - { be_const_key_weak(create_sequence, -1), be_const_closure(class_SymbolTable_create_sequence_closure) }, - { be_const_key_weak(symbol_exists, -1), be_const_closure(class_SymbolTable_symbol_exists_closure) }, - { be_const_key_weak(init, 20), be_const_closure(class_SymbolTable_init_closure) }, - { be_const_key_weak(register_user_function, -1), be_const_closure(class_SymbolTable_register_user_function_closure) }, - { be_const_key_weak(get, -1), be_const_closure(class_SymbolTable_get_closure) }, - { be_const_key_weak(create_variable, -1), be_const_closure(class_SymbolTable_create_variable_closure) }, - { be_const_key_weak(takes_named_args, 3), be_const_closure(class_SymbolTable_takes_named_args_closure) }, - { be_const_key_weak(get_type, -1), be_const_closure(class_SymbolTable_get_type_closure) }, - { be_const_key_weak(get_instance, -1), be_const_closure(class_SymbolTable_get_instance_closure) }, - })), - be_str_weak(SymbolTable) -); extern const bclass be_class_Token; // compact class 'Token' ktab size: 52, total: 108 (saved 448 bytes) static const bvalue be_ktab_class_Token[52] = { @@ -15721,82 +14678,6 @@ be_local_class(Token, be_str_weak(Token) ); -/******************************************************************** -** Solidified function: is_keyword -********************************************************************/ -be_local_closure(is_keyword, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 0, /* 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(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(keywords), - /* K3 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(is_keyword), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x60040010, // 0000 GETGBL R1 G16 - 0xB80A0000, // 0001 GETNGBL R2 K0 - 0x88080501, // 0002 GETMBR R2 R2 K1 - 0x88080502, // 0003 GETMBR R2 R2 K2 - 0x7C040200, // 0004 CALL R1 1 - 0xA8020007, // 0005 EXBLK 0 #000E - 0x5C080200, // 0006 MOVE R2 R1 - 0x7C080000, // 0007 CALL R2 0 - 0x1C0C0002, // 0008 EQ R3 R0 R2 - 0x780E0002, // 0009 JMPF R3 #000D - 0x500C0200, // 000A LDBOOL R3 1 0 - 0xA8040001, // 000B EXBLK 1 1 - 0x80040600, // 000C RET 1 R3 - 0x7001FFF7, // 000D JMP #0006 - 0x58040003, // 000E LDCONST R1 K3 - 0xAC040200, // 000F CATCH R1 1 0 - 0xB0080000, // 0010 RAISE 2 R0 R0 - 0x50040000, // 0011 LDBOOL R1 0 0 - 0x80040200, // 0012 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_right_associative -********************************************************************/ -be_local_closure(is_right_associative, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 0, /* 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(type), - }), - be_str_weak(is_right_associative), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A000D, // 0001 LDINT R2 14 - 0x1C040202, // 0002 EQ R1 R1 R2 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: get_operator_precedence ********************************************************************/ @@ -15900,6 +14781,1209 @@ be_local_closure(get_operator_precedence, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: is_right_associative +********************************************************************/ +be_local_closure(is_right_associative, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 0, /* 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(type), + }), + be_str_weak(is_right_associative), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x540A000D, // 0001 LDINT R2 14 + 0x1C040202, // 0002 EQ R1 R1 R2 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + +// compact class 'SymbolTable' ktab size: 55, total: 115 (saved 480 bytes) +static const bvalue be_ktab_class_SymbolTable[55] = { + /* K0 */ be_nested_str_weak(get), + /* K1 */ be_nested_str_weak(takes_named_args), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(_symbol_entry), + /* K4 */ be_nested_str_weak(create_animation_instance), + /* K5 */ be_nested_str_weak(add), + /* K6 */ be_nested_str_weak(takes_positional_args), + /* K7 */ be_nested_str_weak(entries), + /* K8 */ be_nested_str_weak(contains), + /* K9 */ be_nested_str_weak(introspect), + /* K10 */ be_nested_str_weak(named_colors), + /* K11 */ be_nested_str_weak(create_color_instance), + /* K12 */ be_nested_str_weak(log), + /* K13 */ be_nested_str_weak(create_user_function), + /* K14 */ be_nested_str_weak(animation), + /* K15 */ be_nested_str_weak(is_user_function), + /* K16 */ be_nested_str_weak(_math), + /* K17 */ be_nested_str_weak(create_math_function), + /* K18 */ be_nested_str_weak(create_palette_constant), + /* K19 */ be_nested_str_weak(int), + /* K20 */ be_nested_str_weak(create_constant), + /* K21 */ be_nested_str_weak(function), + /* K22 */ be_nested_str_weak(class), + /* K23 */ be_nested_str_weak(mock_engine), + /* K24 */ be_nested_str_weak(color_provider), + /* K25 */ be_nested_str_weak(create_color_constructor), + /* K26 */ be_nested_str_weak(value_provider), + /* K27 */ be_nested_str_weak(create_value_provider_constructor), + /* K28 */ be_nested_str_weak(create_animation_constructor), + /* K29 */ be_nested_str_weak(is_dangerous_call), + /* K30 */ be_nested_str_weak(_detect_and_cache_symbol), + /* K31 */ be_nested_str_weak(create_value_provider_instance), + /* K32 */ be_nested_str_weak(is_builtin), + /* K33 */ be_nested_str_weak(type), + /* K34 */ be_nested_str_weak(TYPE_COLOR), + /* K35 */ be_nested_str_weak(0xFFFFFFFF), + /* K36 */ be_nested_str_weak(get_reference), + /* K37 */ be_nested_str_weak(_X25s_), + /* K38 */ be_nested_str_weak(create_template), + /* K39 */ be_nested_str_weak(set_param_types), + /* K40 */ be_nested_str_weak(Cannot_X20define_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X20conflicts_X20with_X20built_X2Din_X20_X25s), + /* K41 */ be_nested_str_weak(type_to_string), + /* K42 */ be_nested_str_weak(symbol_redefinition_error), + /* K43 */ be_nested_str_weak(find), + /* K44 */ be_nested_str_weak(Cannot_X20redefine_X20symbol_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X27s_X20already_X20defined_X20as_X20_X25s), + /* K45 */ be_nested_str_weak(MockEngine), + /* K46 */ be_nested_str_weak(create_sequence), + /* K47 */ be_nested_str_weak(takes_args), + /* K48 */ be_nested_str_weak(create_palette_instance), + /* K49 */ be_nested_str_weak(create_variable), + /* K50 */ be_nested_str_weak(keys), + /* K51 */ be_nested_str_weak(push), + /* K52 */ be_nested_str_weak(_X25s_X3A_X20_X25s), + /* K53 */ be_nested_str_weak(stop_iteration), + /* K54 */ be_nested_str_weak(instance), +}; + + +extern const bclass be_class_SymbolTable; + +/******************************************************************** +** Solidified function: takes_named_args +********************************************************************/ +be_local_closure(class_SymbolTable_takes_named_args, /* 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_SymbolTable, /* shared constants */ + be_str_weak(takes_named_args), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E0002, // 0005 JMPF R3 #0009 + 0x8C0C0501, // 0006 GETMET R3 R2 K1 + 0x7C0C0200, // 0007 CALL R3 1 + 0x70020000, // 0008 JMP #000A + 0x500C0000, // 0009 LDBOOL R3 0 0 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_animation +********************************************************************/ +be_local_closure(class_SymbolTable_create_animation, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_animation), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0xB80E0400, // 0000 GETNGBL R3 K2 + 0x880C0703, // 0001 GETMBR R3 R3 K3 + 0x8C0C0704, // 0002 GETMET R3 R3 K4 + 0x5C140200, // 0003 MOVE R5 R1 + 0x5C180400, // 0004 MOVE R6 R2 + 0x501C0000, // 0005 LDBOOL R7 0 0 + 0x7C0C0800, // 0006 CALL R3 4 + 0x8C100105, // 0007 GETMET R4 R0 K5 + 0x5C180200, // 0008 MOVE R6 R1 + 0x5C1C0600, // 0009 MOVE R7 R3 + 0x7C100600, // 000A CALL R4 3 + 0x80040800, // 000B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: takes_positional_args +********************************************************************/ +be_local_closure(class_SymbolTable_takes_positional_args, /* 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_SymbolTable, /* shared constants */ + be_str_weak(takes_positional_args), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E0002, // 0005 JMPF R3 #0009 + 0x8C0C0506, // 0006 GETMET R3 R2 K6 + 0x7C0C0200, // 0007 CALL R3 1 + 0x70020000, // 0008 JMP #000A + 0x500C0000, // 0009 LDBOOL R3 0 0 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _detect_and_cache_symbol +********************************************************************/ +be_local_closure(class_SymbolTable__detect_and_cache_symbol, /* name */ + be_nested_proto( + 11, /* 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_SymbolTable, /* shared constants */ + be_str_weak(_detect_and_cache_symbol), + &be_const_str_solidified, + ( &(const binstruction[188]) { /* code */ + 0x88080107, // 0000 GETMBR R2 R0 K7 + 0x8C080508, // 0001 GETMET R2 R2 K8 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x780A0002, // 0004 JMPF R2 #0008 + 0x88080107, // 0005 GETMBR R2 R0 K7 + 0x94080401, // 0006 GETIDX R2 R2 R1 + 0x80040400, // 0007 RET 1 R2 + 0xA80200AB, // 0008 EXBLK 0 #00B5 + 0xA40A1200, // 0009 IMPORT R2 K9 + 0xB80E0400, // 000A GETNGBL R3 K2 + 0x880C070A, // 000B GETMBR R3 R3 K10 + 0x8C0C0708, // 000C GETMET R3 R3 K8 + 0x5C140200, // 000D MOVE R5 R1 + 0x7C0C0400, // 000E CALL R3 2 + 0x780E000A, // 000F JMPF R3 #001B + 0xB80E0400, // 0010 GETNGBL R3 K2 + 0x880C0703, // 0011 GETMBR R3 R3 K3 + 0x8C0C070B, // 0012 GETMET R3 R3 K11 + 0x5C140200, // 0013 MOVE R5 R1 + 0x4C180000, // 0014 LDNIL R6 + 0x501C0200, // 0015 LDBOOL R7 1 0 + 0x7C0C0800, // 0016 CALL R3 4 + 0x88100107, // 0017 GETMBR R4 R0 K7 + 0x98100203, // 0018 SETIDX R4 R1 R3 + 0xA8040001, // 0019 EXBLK 1 1 + 0x80040600, // 001A RET 1 R3 + 0x1C0C030C, // 001B EQ R3 R1 K12 + 0x780E0009, // 001C JMPF R3 #0027 + 0xB80E0400, // 001D GETNGBL R3 K2 + 0x880C0703, // 001E GETMBR R3 R3 K3 + 0x8C0C070D, // 001F GETMET R3 R3 K13 + 0x5814000C, // 0020 LDCONST R5 K12 + 0x50180200, // 0021 LDBOOL R6 1 0 + 0x7C0C0600, // 0022 CALL R3 3 + 0x88100107, // 0023 GETMBR R4 R0 K7 + 0x98100203, // 0024 SETIDX R4 R1 R3 + 0xA8040001, // 0025 EXBLK 1 1 + 0x80040600, // 0026 RET 1 R3 + 0xB80E1C00, // 0027 GETNGBL R3 K14 + 0x8C0C070F, // 0028 GETMET R3 R3 K15 + 0x5C140200, // 0029 MOVE R5 R1 + 0x7C0C0400, // 002A CALL R3 2 + 0x780E0009, // 002B JMPF R3 #0036 + 0xB80E0400, // 002C GETNGBL R3 K2 + 0x880C0703, // 002D GETMBR R3 R3 K3 + 0x8C0C070D, // 002E GETMET R3 R3 K13 + 0x5C140200, // 002F MOVE R5 R1 + 0x50180200, // 0030 LDBOOL R6 1 0 + 0x7C0C0600, // 0031 CALL R3 3 + 0x88100107, // 0032 GETMBR R4 R0 K7 + 0x98100203, // 0033 SETIDX R4 R1 R3 + 0xA8040001, // 0034 EXBLK 1 1 + 0x80040600, // 0035 RET 1 R3 + 0x8C0C0508, // 0036 GETMET R3 R2 K8 + 0xB8161C00, // 0037 GETNGBL R5 K14 + 0x88140B10, // 0038 GETMBR R5 R5 K16 + 0x5C180200, // 0039 MOVE R6 R1 + 0x7C0C0600, // 003A CALL R3 3 + 0x780E0009, // 003B JMPF R3 #0046 + 0xB80E0400, // 003C GETNGBL R3 K2 + 0x880C0703, // 003D GETMBR R3 R3 K3 + 0x8C0C0711, // 003E GETMET R3 R3 K17 + 0x5C140200, // 003F MOVE R5 R1 + 0x50180200, // 0040 LDBOOL R6 1 0 + 0x7C0C0600, // 0041 CALL R3 3 + 0x88100107, // 0042 GETMBR R4 R0 K7 + 0x98100203, // 0043 SETIDX R4 R1 R3 + 0xA8040001, // 0044 EXBLK 1 1 + 0x80040600, // 0045 RET 1 R3 + 0x8C0C0508, // 0046 GETMET R3 R2 K8 + 0xB8161C00, // 0047 GETNGBL R5 K14 + 0x5C180200, // 0048 MOVE R6 R1 + 0x7C0C0600, // 0049 CALL R3 3 + 0x780E0064, // 004A JMPF R3 #00B0 + 0xB80E1C00, // 004B GETNGBL R3 K14 + 0x880C0601, // 004C GETMBR R3 R3 R1 + 0x60100004, // 004D GETGBL R4 G4 + 0x5C140600, // 004E MOVE R5 R3 + 0x7C100200, // 004F CALL R4 1 + 0x6014000F, // 0050 GETGBL R5 G15 + 0x5C180600, // 0051 MOVE R6 R3 + 0x601C0015, // 0052 GETGBL R7 G21 + 0x7C140400, // 0053 CALL R5 2 + 0x7816000A, // 0054 JMPF R5 #0060 + 0xB8160400, // 0055 GETNGBL R5 K2 + 0x88140B03, // 0056 GETMBR R5 R5 K3 + 0x8C140B12, // 0057 GETMET R5 R5 K18 + 0x5C1C0200, // 0058 MOVE R7 R1 + 0x5C200600, // 0059 MOVE R8 R3 + 0x50240200, // 005A LDBOOL R9 1 0 + 0x7C140800, // 005B CALL R5 4 + 0x88180107, // 005C GETMBR R6 R0 K7 + 0x98180205, // 005D SETIDX R6 R1 R5 + 0xA8040001, // 005E EXBLK 1 1 + 0x80040A00, // 005F RET 1 R5 + 0x1C140913, // 0060 EQ R5 R4 K19 + 0x7816000A, // 0061 JMPF R5 #006D + 0xB8160400, // 0062 GETNGBL R5 K2 + 0x88140B03, // 0063 GETMBR R5 R5 K3 + 0x8C140B14, // 0064 GETMET R5 R5 K20 + 0x5C1C0200, // 0065 MOVE R7 R1 + 0x5C200600, // 0066 MOVE R8 R3 + 0x50240200, // 0067 LDBOOL R9 1 0 + 0x7C140800, // 0068 CALL R5 4 + 0x88180107, // 0069 GETMBR R6 R0 K7 + 0x98180205, // 006A SETIDX R6 R1 R5 + 0xA8040001, // 006B EXBLK 1 1 + 0x80040A00, // 006C RET 1 R5 + 0x1C140915, // 006D EQ R5 R4 K21 + 0x74160001, // 006E JMPT R5 #0071 + 0x1C140916, // 006F EQ R5 R4 K22 + 0x7816003E, // 0070 JMPF R5 #00B0 + 0xA8020039, // 0071 EXBLK 0 #00AC + 0x5C140600, // 0072 MOVE R5 R3 + 0x88180117, // 0073 GETMBR R6 R0 K23 + 0x7C140200, // 0074 CALL R5 1 + 0x6018000F, // 0075 GETGBL R6 G15 + 0x5C1C0A00, // 0076 MOVE R7 R5 + 0xB8221C00, // 0077 GETNGBL R8 K14 + 0x88201118, // 0078 GETMBR R8 R8 K24 + 0x7C180400, // 0079 CALL R6 2 + 0x781A000B, // 007A JMPF R6 #0087 + 0xB81A0400, // 007B GETNGBL R6 K2 + 0x88180D03, // 007C GETMBR R6 R6 K3 + 0x8C180D19, // 007D GETMET R6 R6 K25 + 0x5C200200, // 007E MOVE R8 R1 + 0x5C240A00, // 007F MOVE R9 R5 + 0x50280200, // 0080 LDBOOL R10 1 0 + 0x7C180800, // 0081 CALL R6 4 + 0x881C0107, // 0082 GETMBR R7 R0 K7 + 0x981C0206, // 0083 SETIDX R7 R1 R6 + 0xA8040002, // 0084 EXBLK 1 2 + 0x80040C00, // 0085 RET 1 R6 + 0x70020022, // 0086 JMP #00AA + 0x6018000F, // 0087 GETGBL R6 G15 + 0x5C1C0A00, // 0088 MOVE R7 R5 + 0xB8221C00, // 0089 GETNGBL R8 K14 + 0x8820111A, // 008A GETMBR R8 R8 K26 + 0x7C180400, // 008B CALL R6 2 + 0x781A000B, // 008C JMPF R6 #0099 + 0xB81A0400, // 008D GETNGBL R6 K2 + 0x88180D03, // 008E GETMBR R6 R6 K3 + 0x8C180D1B, // 008F GETMET R6 R6 K27 + 0x5C200200, // 0090 MOVE R8 R1 + 0x5C240A00, // 0091 MOVE R9 R5 + 0x50280200, // 0092 LDBOOL R10 1 0 + 0x7C180800, // 0093 CALL R6 4 + 0x881C0107, // 0094 GETMBR R7 R0 K7 + 0x981C0206, // 0095 SETIDX R7 R1 R6 + 0xA8040002, // 0096 EXBLK 1 2 + 0x80040C00, // 0097 RET 1 R6 + 0x70020010, // 0098 JMP #00AA + 0x6018000F, // 0099 GETGBL R6 G15 + 0x5C1C0A00, // 009A MOVE R7 R5 + 0xB8221C00, // 009B GETNGBL R8 K14 + 0x8820110E, // 009C GETMBR R8 R8 K14 + 0x7C180400, // 009D CALL R6 2 + 0x781A000A, // 009E JMPF R6 #00AA + 0xB81A0400, // 009F GETNGBL R6 K2 + 0x88180D03, // 00A0 GETMBR R6 R6 K3 + 0x8C180D1C, // 00A1 GETMET R6 R6 K28 + 0x5C200200, // 00A2 MOVE R8 R1 + 0x5C240A00, // 00A3 MOVE R9 R5 + 0x50280200, // 00A4 LDBOOL R10 1 0 + 0x7C180800, // 00A5 CALL R6 4 + 0x881C0107, // 00A6 GETMBR R7 R0 K7 + 0x981C0206, // 00A7 SETIDX R7 R1 R6 + 0xA8040002, // 00A8 EXBLK 1 2 + 0x80040C00, // 00A9 RET 1 R6 + 0xA8040001, // 00AA EXBLK 1 1 + 0x70020003, // 00AB JMP #00B0 + 0xAC140002, // 00AC CATCH R5 0 2 + 0x70020000, // 00AD JMP #00AF + 0x70020000, // 00AE JMP #00B0 + 0xB0080000, // 00AF RAISE 2 R0 R0 + 0x4C0C0000, // 00B0 LDNIL R3 + 0xA8040001, // 00B1 EXBLK 1 1 + 0x80040600, // 00B2 RET 1 R3 + 0xA8040001, // 00B3 EXBLK 1 1 + 0x70020005, // 00B4 JMP #00BB + 0xAC080002, // 00B5 CATCH R2 0 2 + 0x70020002, // 00B6 JMP #00BA + 0x4C100000, // 00B7 LDNIL R4 + 0x80040800, // 00B8 RET 1 R4 + 0x70020000, // 00B9 JMP #00BB + 0xB0080000, // 00BA RAISE 2 R0 R0 + 0x80000000, // 00BB RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_dangerous +********************************************************************/ +be_local_closure(class_SymbolTable_is_dangerous, /* 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_SymbolTable, /* shared constants */ + be_str_weak(is_dangerous), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E0002, // 0005 JMPF R3 #0009 + 0x8C0C051D, // 0006 GETMET R3 R2 K29 + 0x7C0C0200, // 0007 CALL R3 1 + 0x70020000, // 0008 JMP #000A + 0x500C0000, // 0009 LDBOOL R3 0 0 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_color +********************************************************************/ +be_local_closure(class_SymbolTable_create_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_SymbolTable, /* shared constants */ + be_str_weak(create_color), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0xB80E0400, // 0000 GETNGBL R3 K2 + 0x880C0703, // 0001 GETMBR R3 R3 K3 + 0x8C0C070B, // 0002 GETMET R3 R3 K11 + 0x5C140200, // 0003 MOVE R5 R1 + 0x5C180400, // 0004 MOVE R6 R2 + 0x501C0000, // 0005 LDBOOL R7 0 0 + 0x7C0C0800, // 0006 CALL R3 4 + 0x8C100105, // 0007 GETMET R4 R0 K5 + 0x5C180200, // 0008 MOVE R6 R1 + 0x5C1C0600, // 0009 MOVE R7 R3 + 0x7C100600, // 000A CALL R4 3 + 0x80040800, // 000B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: contains +********************************************************************/ +be_local_closure(class_SymbolTable_contains, /* 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_SymbolTable, /* shared constants */ + be_str_weak(contains), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88080107, // 0000 GETMBR R2 R0 K7 + 0x8C080508, // 0001 GETMET R2 R2 K8 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x780A0001, // 0004 JMPF R2 #0007 + 0x50080200, // 0005 LDBOOL R2 1 0 + 0x80040400, // 0006 RET 1 R2 + 0x8C08011E, // 0007 GETMET R2 R0 K30 + 0x5C100200, // 0008 MOVE R4 R1 + 0x7C080400, // 0009 CALL R2 2 + 0x4C0C0000, // 000A LDNIL R3 + 0x200C0403, // 000B NE R3 R2 R3 + 0x80040600, // 000C RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_value_provider +********************************************************************/ +be_local_closure(class_SymbolTable_create_value_provider, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_value_provider), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0xB80E0400, // 0000 GETNGBL R3 K2 + 0x880C0703, // 0001 GETMBR R3 R3 K3 + 0x8C0C071F, // 0002 GETMET R3 R3 K31 + 0x5C140200, // 0003 MOVE R5 R1 + 0x5C180400, // 0004 MOVE R6 R2 + 0x501C0000, // 0005 LDBOOL R7 0 0 + 0x7C0C0800, // 0006 CALL R3 4 + 0x8C100105, // 0007 GETMET R4 R0 K5 + 0x5C180200, // 0008 MOVE R6 R1 + 0x5C1C0600, // 0009 MOVE R7 R3 + 0x7C100600, // 000A CALL R4 3 + 0x80040800, // 000B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _get_named_color_value +********************************************************************/ +be_local_closure(class_SymbolTable__get_named_color_value, /* 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_SymbolTable, /* shared constants */ + be_str_weak(_get_named_color_value), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E000B, // 0005 JMPF R3 #0012 + 0x880C0520, // 0006 GETMBR R3 R2 K32 + 0x780E0009, // 0007 JMPF R3 #0012 + 0x880C0521, // 0008 GETMBR R3 R2 K33 + 0xB8120400, // 0009 GETNGBL R4 K2 + 0x88100903, // 000A GETMBR R4 R4 K3 + 0x88100922, // 000B GETMBR R4 R4 K34 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0003, // 000D JMPF R3 #0012 + 0xB80E0400, // 000E GETNGBL R3 K2 + 0x880C070A, // 000F GETMBR R3 R3 K10 + 0x940C0601, // 0010 GETIDX R3 R3 R1 + 0x80040600, // 0011 RET 1 R3 + 0x80064600, // 0012 RET 1 K35 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_reference +********************************************************************/ +be_local_closure(class_SymbolTable_get_reference, /* 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_SymbolTable, /* shared constants */ + be_str_weak(get_reference), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E000E, // 0005 JMPF R3 #0015 + 0x880C0520, // 0006 GETMBR R3 R2 K32 + 0x780E0009, // 0007 JMPF R3 #0012 + 0x880C0521, // 0008 GETMBR R3 R2 K33 + 0xB8120400, // 0009 GETNGBL R4 K2 + 0x88100903, // 000A GETMBR R4 R4 K3 + 0x88100922, // 000B GETMBR R4 R4 K34 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0003, // 000D JMPF R3 #0012 + 0xB80E0400, // 000E GETNGBL R3 K2 + 0x880C070A, // 000F GETMBR R3 R3 K10 + 0x940C0601, // 0010 GETIDX R3 R3 R1 + 0x80040600, // 0011 RET 1 R3 + 0x8C0C0524, // 0012 GETMET R3 R2 K36 + 0x7C0C0200, // 0013 CALL R3 1 + 0x80040600, // 0014 RET 1 R3 + 0x600C0018, // 0015 GETGBL R3 G24 + 0x58100025, // 0016 LDCONST R4 K37 + 0x5C140200, // 0017 MOVE R5 R1 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80040600, // 0019 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_template +********************************************************************/ +be_local_closure(class_SymbolTable_create_template, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_template), + &be_const_str_solidified, + ( &(const binstruction[20]) { /* code */ + 0xB80E0400, // 0000 GETNGBL R3 K2 + 0x880C0703, // 0001 GETMBR R3 R3 K3 + 0x8C0C0726, // 0002 GETMET R3 R3 K38 + 0x5C140200, // 0003 MOVE R5 R1 + 0x50180000, // 0004 LDBOOL R6 0 0 + 0x7C0C0600, // 0005 CALL R3 3 + 0x8C100727, // 0006 GETMET R4 R3 K39 + 0x4C180000, // 0007 LDNIL R6 + 0x20180406, // 0008 NE R6 R2 R6 + 0x781A0001, // 0009 JMPF R6 #000C + 0x5C180400, // 000A MOVE R6 R2 + 0x70020001, // 000B JMP #000E + 0x60180013, // 000C GETGBL R6 G19 + 0x7C180000, // 000D CALL R6 0 + 0x7C100400, // 000E CALL R4 2 + 0x8C100105, // 000F GETMET R4 R0 K5 + 0x5C180200, // 0010 MOVE R6 R1 + 0x5C1C0600, // 0011 MOVE R7 R3 + 0x7C100600, // 0012 CALL R4 3 + 0x80040800, // 0013 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_generic +********************************************************************/ +be_local_closure(class_SymbolTable_create_generic, /* name */ + be_nested_proto( + 11, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_generic), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0xB8160400, // 0000 GETNGBL R5 K2 + 0x8C140B03, // 0001 GETMET R5 R5 K3 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x5C200400, // 0003 MOVE R8 R2 + 0x5C240600, // 0004 MOVE R9 R3 + 0x4C280000, // 0005 LDNIL R10 + 0x2028080A, // 0006 NE R10 R4 R10 + 0x782A0001, // 0007 JMPF R10 #000A + 0x5C280800, // 0008 MOVE R10 R4 + 0x70020000, // 0009 JMP #000B + 0x50280000, // 000A LDBOOL R10 0 0 + 0x7C140A00, // 000B CALL R5 5 + 0x8C180105, // 000C GETMET R6 R0 K5 + 0x5C200200, // 000D MOVE R8 R1 + 0x5C240A00, // 000E MOVE R9 R5 + 0x7C180600, // 000F CALL R6 3 + 0x80040C00, // 0010 RET 1 R6 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add +********************************************************************/ +be_local_closure(class_SymbolTable_add, /* name */ + be_nested_proto( + 11, /* 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_SymbolTable, /* shared constants */ + be_str_weak(add), + &be_const_str_solidified, + ( &(const binstruction[42]) { /* code */ + 0x8C0C011E, // 0000 GETMET R3 R0 K30 + 0x5C140200, // 0001 MOVE R5 R1 + 0x7C0C0400, // 0002 CALL R3 2 + 0x4C100000, // 0003 LDNIL R4 + 0x20100604, // 0004 NE R4 R3 R4 + 0x7812000C, // 0005 JMPF R4 #0013 + 0x88100721, // 0006 GETMBR R4 R3 K33 + 0x88140521, // 0007 GETMBR R5 R2 K33 + 0x20100805, // 0008 NE R4 R4 R5 + 0x78120008, // 0009 JMPF R4 #0013 + 0x60100018, // 000A GETGBL R4 G24 + 0x58140028, // 000B LDCONST R5 K40 + 0x5C180200, // 000C MOVE R6 R1 + 0x8C1C0529, // 000D GETMET R7 R2 K41 + 0x7C1C0200, // 000E CALL R7 1 + 0x8C200729, // 000F GETMET R8 R3 K41 + 0x7C200200, // 0010 CALL R8 1 + 0x7C100800, // 0011 CALL R4 4 + 0xB0065404, // 0012 RAISE 1 K42 R4 + 0x88100107, // 0013 GETMBR R4 R0 K7 + 0x8C10092B, // 0014 GETMET R4 R4 K43 + 0x5C180200, // 0015 MOVE R6 R1 + 0x7C100400, // 0016 CALL R4 2 + 0x4C140000, // 0017 LDNIL R5 + 0x20140805, // 0018 NE R5 R4 R5 + 0x7816000C, // 0019 JMPF R5 #0027 + 0x88140921, // 001A GETMBR R5 R4 K33 + 0x88180521, // 001B GETMBR R6 R2 K33 + 0x20140A06, // 001C NE R5 R5 R6 + 0x78160008, // 001D JMPF R5 #0027 + 0x60140018, // 001E GETGBL R5 G24 + 0x5818002C, // 001F LDCONST R6 K44 + 0x5C1C0200, // 0020 MOVE R7 R1 + 0x8C200529, // 0021 GETMET R8 R2 K41 + 0x7C200200, // 0022 CALL R8 1 + 0x8C240929, // 0023 GETMET R9 R4 K41 + 0x7C240200, // 0024 CALL R9 1 + 0x7C140800, // 0025 CALL R5 4 + 0xB0065405, // 0026 RAISE 1 K42 R5 + 0x88140107, // 0027 GETMBR R5 R0 K7 + 0x98140202, // 0028 SETIDX R5 R1 R2 + 0x80040400, // 0029 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get +********************************************************************/ +be_local_closure(class_SymbolTable_get, /* 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_SymbolTable, /* shared constants */ + be_str_weak(get), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88080107, // 0000 GETMBR R2 R0 K7 + 0x8C08052B, // 0001 GETMET R2 R2 K43 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x780E0000, // 0006 JMPF R3 #0008 + 0x80040400, // 0007 RET 1 R2 + 0x8C0C011E, // 0008 GETMET R3 R0 K30 + 0x5C140200, // 0009 MOVE R5 R1 + 0x7C0C0400, // 000A CALL R3 2 + 0x80040600, // 000B RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_SymbolTable_init, /* 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_SymbolTable, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x60040013, // 0000 GETGBL R1 G19 + 0x7C040000, // 0001 CALL R1 0 + 0x90020E01, // 0002 SETMBR R0 K7 R1 + 0xB8060400, // 0003 GETNGBL R1 K2 + 0x8C04032D, // 0004 GETMET R1 R1 K45 + 0x7C040200, // 0005 CALL R1 1 + 0x90022E01, // 0006 SETMBR R0 K23 R1 + 0x80000000, // 0007 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_sequence +********************************************************************/ +be_local_closure(class_SymbolTable_create_sequence, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_sequence), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0xB80A0400, // 0000 GETNGBL R2 K2 + 0x88080503, // 0001 GETMBR R2 R2 K3 + 0x8C08052E, // 0002 GETMET R2 R2 K46 + 0x5C100200, // 0003 MOVE R4 R1 + 0x50140000, // 0004 LDBOOL R5 0 0 + 0x7C080600, // 0005 CALL R2 3 + 0x8C0C0105, // 0006 GETMET R3 R0 K5 + 0x5C140200, // 0007 MOVE R5 R1 + 0x5C180400, // 0008 MOVE R6 R2 + 0x7C0C0600, // 0009 CALL R3 3 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: symbol_exists +********************************************************************/ +be_local_closure(class_SymbolTable_symbol_exists, /* 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_SymbolTable, /* shared constants */ + be_str_weak(symbol_exists), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x8C080108, // 0000 GETMET R2 R0 K8 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x80040400, // 0003 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: register_user_function +********************************************************************/ +be_local_closure(class_SymbolTable_register_user_function, /* 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_SymbolTable, /* shared constants */ + be_str_weak(register_user_function), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x8C080108, // 0000 GETMET R2 R0 K8 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x740A0009, // 0003 JMPT R2 #000E + 0xB80A0400, // 0004 GETNGBL R2 K2 + 0x88080503, // 0005 GETMBR R2 R2 K3 + 0x8C08050D, // 0006 GETMET R2 R2 K13 + 0x5C100200, // 0007 MOVE R4 R1 + 0x50140000, // 0008 LDBOOL R5 0 0 + 0x7C080600, // 0009 CALL R2 3 + 0x8C0C0105, // 000A GETMET R3 R0 K5 + 0x5C140200, // 000B MOVE R5 R1 + 0x5C180400, // 000C MOVE R6 R2 + 0x7C0C0600, // 000D CALL R3 3 + 0x80000000, // 000E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: takes_args +********************************************************************/ +be_local_closure(class_SymbolTable_takes_args, /* 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_SymbolTable, /* shared constants */ + be_str_weak(takes_args), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E0001, // 0005 JMPF R3 #0008 + 0x880C052F, // 0006 GETMBR R3 R2 K47 + 0x70020000, // 0007 JMP #0009 + 0x500C0000, // 0008 LDBOOL R3 0 0 + 0x80040600, // 0009 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_palette +********************************************************************/ +be_local_closure(class_SymbolTable_create_palette, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_palette), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0xB80E0400, // 0000 GETNGBL R3 K2 + 0x880C0703, // 0001 GETMBR R3 R3 K3 + 0x8C0C0730, // 0002 GETMET R3 R3 K48 + 0x5C140200, // 0003 MOVE R5 R1 + 0x5C180400, // 0004 MOVE R6 R2 + 0x501C0000, // 0005 LDBOOL R7 0 0 + 0x7C0C0800, // 0006 CALL R3 4 + 0x8C100105, // 0007 GETMET R4 R0 K5 + 0x5C180200, // 0008 MOVE R6 R1 + 0x5C1C0600, // 0009 MOVE R7 R3 + 0x7C100600, // 000A CALL R4 3 + 0x80040800, // 000B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_variable +********************************************************************/ +be_local_closure(class_SymbolTable_create_variable, /* 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_SymbolTable, /* shared constants */ + be_str_weak(create_variable), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0xB80A0400, // 0000 GETNGBL R2 K2 + 0x88080503, // 0001 GETMBR R2 R2 K3 + 0x8C080531, // 0002 GETMET R2 R2 K49 + 0x5C100200, // 0003 MOVE R4 R1 + 0x50140000, // 0004 LDBOOL R5 0 0 + 0x7C080600, // 0005 CALL R2 3 + 0x8C0C0105, // 0006 GETMET R3 R0 K5 + 0x5C140200, // 0007 MOVE R5 R1 + 0x5C180400, // 0008 MOVE R6 R2 + 0x7C0C0600, // 0009 CALL R3 3 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: list_symbols +********************************************************************/ +be_local_closure(class_SymbolTable_list_symbols, /* 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_SymbolTable, /* shared constants */ + be_str_weak(list_symbols), + &be_const_str_solidified, + ( &(const binstruction[25]) { /* code */ + 0x60040012, // 0000 GETGBL R1 G18 + 0x7C040000, // 0001 CALL R1 0 + 0x60080010, // 0002 GETGBL R2 G16 + 0x880C0107, // 0003 GETMBR R3 R0 K7 + 0x8C0C0732, // 0004 GETMET R3 R3 K50 + 0x7C0C0200, // 0005 CALL R3 1 + 0x7C080200, // 0006 CALL R2 1 + 0xA802000C, // 0007 EXBLK 0 #0015 + 0x5C0C0400, // 0008 MOVE R3 R2 + 0x7C0C0000, // 0009 CALL R3 0 + 0x88100107, // 000A GETMBR R4 R0 K7 + 0x94100803, // 000B GETIDX R4 R4 R3 + 0x8C140333, // 000C GETMET R5 R1 K51 + 0x601C0018, // 000D GETGBL R7 G24 + 0x58200034, // 000E LDCONST R8 K52 + 0x5C240600, // 000F MOVE R9 R3 + 0x8C280929, // 0010 GETMET R10 R4 K41 + 0x7C280200, // 0011 CALL R10 1 + 0x7C1C0600, // 0012 CALL R7 3 + 0x7C140400, // 0013 CALL R5 2 + 0x7001FFF2, // 0014 JMP #0008 + 0x58080035, // 0015 LDCONST R2 K53 + 0xAC080200, // 0016 CATCH R2 1 0 + 0xB0080000, // 0017 RAISE 2 R0 R0 + 0x80040200, // 0018 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_type +********************************************************************/ +be_local_closure(class_SymbolTable_get_type, /* 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_SymbolTable, /* shared constants */ + be_str_weak(get_type), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E0002, // 0005 JMPF R3 #0009 + 0x8C0C0529, // 0006 GETMET R3 R2 K41 + 0x7C0C0200, // 0007 CALL R3 1 + 0x70020000, // 0008 JMP #000A + 0x4C0C0000, // 0009 LDNIL R3 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_instance +********************************************************************/ +be_local_closure(class_SymbolTable_get_instance, /* 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_SymbolTable, /* shared constants */ + be_str_weak(get_instance), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0403, // 0004 NE R3 R2 R3 + 0x780E0001, // 0005 JMPF R3 #0008 + 0x880C0536, // 0006 GETMBR R3 R2 K54 + 0x70020000, // 0007 JMP #0009 + 0x4C0C0000, // 0008 LDNIL R3 + 0x80040600, // 0009 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: SymbolTable +********************************************************************/ +be_local_class(SymbolTable, + 2, + NULL, + be_nested_map(26, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(takes_positional_args, -1), be_const_closure(class_SymbolTable_takes_positional_args_closure) }, + { be_const_key_weak(create_value_provider, -1), be_const_closure(class_SymbolTable_create_value_provider_closure) }, + { be_const_key_weak(create_animation, 0), be_const_closure(class_SymbolTable_create_animation_closure) }, + { be_const_key_weak(list_symbols, 15), be_const_closure(class_SymbolTable_list_symbols_closure) }, + { be_const_key_weak(is_dangerous, -1), be_const_closure(class_SymbolTable_is_dangerous_closure) }, + { be_const_key_weak(create_color, -1), be_const_closure(class_SymbolTable_create_color_closure) }, + { be_const_key_weak(mock_engine, -1), be_const_var(1) }, + { be_const_key_weak(entries, 21), be_const_var(0) }, + { be_const_key_weak(add, -1), be_const_closure(class_SymbolTable_add_closure) }, + { be_const_key_weak(_detect_and_cache_symbol, 16), be_const_closure(class_SymbolTable__detect_and_cache_symbol_closure) }, + { be_const_key_weak(_get_named_color_value, -1), be_const_closure(class_SymbolTable__get_named_color_value_closure) }, + { be_const_key_weak(get_reference, -1), be_const_closure(class_SymbolTable_get_reference_closure) }, + { be_const_key_weak(create_template, -1), be_const_closure(class_SymbolTable_create_template_closure) }, + { be_const_key_weak(create_generic, -1), be_const_closure(class_SymbolTable_create_generic_closure) }, + { be_const_key_weak(contains, 8), be_const_closure(class_SymbolTable_contains_closure) }, + { be_const_key_weak(create_palette, -1), be_const_closure(class_SymbolTable_create_palette_closure) }, + { be_const_key_weak(takes_args, 1), be_const_closure(class_SymbolTable_takes_args_closure) }, + { be_const_key_weak(create_sequence, -1), be_const_closure(class_SymbolTable_create_sequence_closure) }, + { be_const_key_weak(symbol_exists, -1), be_const_closure(class_SymbolTable_symbol_exists_closure) }, + { be_const_key_weak(init, 20), be_const_closure(class_SymbolTable_init_closure) }, + { be_const_key_weak(register_user_function, -1), be_const_closure(class_SymbolTable_register_user_function_closure) }, + { be_const_key_weak(get, -1), be_const_closure(class_SymbolTable_get_closure) }, + { be_const_key_weak(create_variable, -1), be_const_closure(class_SymbolTable_create_variable_closure) }, + { be_const_key_weak(takes_named_args, 3), be_const_closure(class_SymbolTable_takes_named_args_closure) }, + { be_const_key_weak(get_type, -1), be_const_closure(class_SymbolTable_get_type_closure) }, + { be_const_key_weak(get_instance, -1), be_const_closure(class_SymbolTable_get_instance_closure) }, + })), + be_str_weak(SymbolTable) +); + /******************************************************************** ** Solidified function: create_eof_token ********************************************************************/ @@ -15937,76 +16021,61 @@ be_local_closure(create_eof_token, /* name */ /*******************************************************************/ -extern const bclass be_class_MockEngine; - /******************************************************************** -** Solidified function: init +** Solidified function: compile_dsl ********************************************************************/ -be_local_closure(class_MockEngine_init, /* name */ +be_local_closure(compile_dsl, /* name */ be_nested_proto( - 1, /* nstack */ + 6, /* nstack */ 1, /* argc */ - 2, /* varg */ + 0, /* 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(time_ms), - /* K1 */ be_const_int(0), + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(DSLLexer), + /* K2 */ be_nested_str_weak(tokenize), + /* K3 */ be_nested_str_weak(lexical_error), + /* K4 */ be_nested_str_weak(dsl_compilation_error), + /* K5 */ be_nested_str_weak(SimpleDSLTranspiler), + /* K6 */ be_nested_str_weak(transpile), }), - be_str_weak(init), + be_str_weak(compile_dsl), &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x90020101, // 0000 SETMBR R0 K0 K1 - 0x80000000, // 0001 RET 0 + ( &(const binstruction[24]) { /* code */ + 0xB8060000, // 0000 GETNGBL R1 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x7C040400, // 0003 CALL R1 2 + 0x4C080000, // 0004 LDNIL R2 + 0xA8020004, // 0005 EXBLK 0 #000B + 0x8C0C0302, // 0006 GETMET R3 R1 K2 + 0x7C0C0200, // 0007 CALL R3 1 + 0x5C080600, // 0008 MOVE R2 R3 + 0xA8040001, // 0009 EXBLK 1 1 + 0x70020005, // 000A JMP #0011 + 0x580C0003, // 000B LDCONST R3 K3 + 0xAC0C0202, // 000C CATCH R3 1 2 + 0x70020001, // 000D JMP #0010 + 0xB0060804, // 000E RAISE 1 K4 R4 + 0x70020000, // 000F JMP #0011 + 0xB0080000, // 0010 RAISE 2 R0 R0 + 0xB80E0000, // 0011 GETNGBL R3 K0 + 0x8C0C0705, // 0012 GETMET R3 R3 K5 + 0x5C140400, // 0013 MOVE R5 R2 + 0x7C0C0400, // 0014 CALL R3 2 + 0x8C100706, // 0015 GETMET R4 R3 K6 + 0x7C100200, // 0016 CALL R4 1 + 0x80040800, // 0017 RET 1 R4 }) ) ); /*******************************************************************/ -/******************************************************************** -** Solidified function: get_strip_length -********************************************************************/ -be_local_closure(class_MockEngine_get_strip_length, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(get_strip_length), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x5406001D, // 0000 LDINT R1 30 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: MockEngine -********************************************************************/ -be_local_class(MockEngine, - 1, - NULL, - be_nested_map(3, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(time_ms, 1), be_const_var(0) }, - { be_const_key_weak(init, -1), be_const_closure(class_MockEngine_init_closure) }, - { be_const_key_weak(get_strip_length, -1), be_const_closure(class_MockEngine_get_strip_length_closure) }, - })), - be_str_weak(MockEngine) -); - /******************************************************************** ** Solidified function: tokenize_dsl ********************************************************************/ @@ -16177,162 +16246,286 @@ be_local_closure(load_file, /* name */ /*******************************************************************/ +extern const bclass be_class_MockEngine; + /******************************************************************** -** Solidified function: tokenize_dsl_with_errors +** Solidified function: init ********************************************************************/ -be_local_closure(tokenize_dsl_with_errors, /* name */ +be_local_closure(class_MockEngine_init, /* name */ be_nested_proto( - 4, /* nstack */ + 1, /* nstack */ 1, /* argc */ - 0, /* varg */ + 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(animation_dsl), - /* K1 */ be_nested_str_weak(DSLLexer), - /* K2 */ be_nested_str_weak(tokenize_with_errors), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(time_ms), + /* K1 */ be_const_int(0), }), - be_str_weak(tokenize_dsl_with_errors), + be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0xB8060000, // 0000 GETNGBL R1 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C040400, // 0003 CALL R1 2 - 0x8C080302, // 0004 GETMET R2 R1 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x80040400, // 0006 RET 1 R2 + ( &(const binstruction[ 2]) { /* code */ + 0x90020101, // 0000 SETMBR R0 K0 K1 + 0x80000000, // 0001 RET 0 }) ) ); /*******************************************************************/ -// compact class 'DSLLexer' ktab size: 116, total: 294 (saved 1424 bytes) -static const bvalue be_ktab_class_DSLLexer[116] = { - /* K0 */ be_nested_str_weak(column), - /* K1 */ be_nested_str_weak(advance), - /* K2 */ be_nested_str_weak(_X20), - /* K3 */ be_nested_str_weak(_X09), - /* K4 */ be_nested_str_weak(_X0D), - /* K5 */ be_nested_str_weak(_X0A), - /* K6 */ be_nested_str_weak(add_token), - /* K7 */ be_const_int(1), - /* K8 */ be_nested_str_weak(line), - /* K9 */ be_nested_str_weak(_X23), - /* K10 */ be_nested_str_weak(scan_comment), - /* K11 */ be_nested_str_weak(0), - /* K12 */ be_nested_str_weak(peek), - /* K13 */ be_nested_str_weak(x), - /* K14 */ be_nested_str_weak(scan_hex_color_0x), - /* K15 */ be_nested_str_weak(is_alpha), - /* K16 */ be_nested_str_weak(_), - /* K17 */ be_nested_str_weak(scan_identifier_or_keyword), - /* K18 */ be_nested_str_weak(is_digit), - /* K19 */ be_nested_str_weak(scan_number), - /* K20 */ be_nested_str_weak(_X22), - /* K21 */ be_nested_str_weak(_X27), - /* K22 */ be_nested_str_weak(peek_ahead), - /* K23 */ be_nested_str_weak(scan_triple_quoted_string), - /* K24 */ be_nested_str_weak(scan_string), - /* K25 */ be_nested_str_weak(_X24), - /* K26 */ be_nested_str_weak(scan_variable_reference), - /* K27 */ be_nested_str_weak(scan_operator_or_delimiter), - /* K28 */ be_nested_str_weak(position), - /* K29 */ be_nested_str_weak(source), - /* K30 */ be_nested_str_weak(), - /* K31 */ be_nested_str_weak(at_end), - /* K32 */ be_nested_str_weak(_X5C), - /* K33 */ be_nested_str_weak(n), - /* K34 */ be_nested_str_weak(t), - /* K35 */ be_nested_str_weak(r), - /* K36 */ be_nested_str_weak(add_error), - /* K37 */ be_nested_str_weak(Unterminated_X20string_X20literal), - /* K38 */ be_const_int(3), - /* K39 */ be_nested_str_weak(animation_dsl), - /* K40 */ be_nested_str_weak(Token), - /* K41 */ be_nested_str_weak(tokens), - /* K42 */ be_nested_str_weak(push), - /* K43 */ be_nested_str_weak(has_errors), - /* K44 */ be_nested_str_weak(No_X20lexical_X20errors), - /* K45 */ be_nested_str_weak(Lexical_X20errors_X20_X28), - /* K46 */ be_nested_str_weak(errors), - /* K47 */ be_nested_str_weak(_X29_X3A_X0A), - /* K48 */ be_nested_str_weak(_X20_X20Line_X20), - /* K49 */ be_nested_str_weak(_X3A), - /* K50 */ be_nested_str_weak(_X3A_X20), - /* K51 */ be_nested_str_weak(message), - /* K52 */ be_nested_str_weak(stop_iteration), - /* K53 */ be_nested_str_weak(a), - /* K54 */ be_nested_str_weak(f), - /* K55 */ be_nested_str_weak(A), - /* K56 */ be_nested_str_weak(F), - /* K57 */ be_const_int(0), - /* K58 */ be_nested_str_weak(_X3D), - /* K59 */ be_nested_str_weak(match), - /* K60 */ be_nested_str_weak(_X3D_X3D), - /* K61 */ be_const_int(2), - /* K62 */ be_nested_str_weak(_X21), - /* K63 */ be_nested_str_weak(_X21_X3D), - /* K64 */ be_nested_str_weak(_X3C), - /* K65 */ be_nested_str_weak(_X3C_X3D), - /* K66 */ be_nested_str_weak(_X3C_X3C), - /* K67 */ be_nested_str_weak(_X3E), - /* K68 */ be_nested_str_weak(_X3E_X3D), - /* K69 */ be_nested_str_weak(_X3E_X3E), - /* K70 */ be_nested_str_weak(_X26), - /* K71 */ be_nested_str_weak(_X26_X26), - /* K72 */ be_nested_str_weak(Single_X20_X27_X26_X27_X20not_X20supported_X20in_X20DSL), - /* K73 */ be_nested_str_weak(_X7C), - /* K74 */ be_nested_str_weak(_X7C_X7C), - /* K75 */ be_nested_str_weak(Single_X20_X27_X7C_X27_X20not_X20supported_X20in_X20DSL), - /* K76 */ be_nested_str_weak(_X2D), - /* K77 */ be_nested_str_weak(_X2D_X3E), - /* K78 */ be_nested_str_weak(_X2B), - /* K79 */ be_nested_str_weak(_X2A), - /* K80 */ be_nested_str_weak(_X2F), - /* K81 */ be_nested_str_weak(_X25), - /* K82 */ be_nested_str_weak(_X5E), - /* K83 */ be_nested_str_weak(_X28), - /* K84 */ be_nested_str_weak(_X29), - /* K85 */ be_nested_str_weak(_X7B), - /* K86 */ be_nested_str_weak(_X7D), - /* K87 */ be_nested_str_weak(_X5B), - /* K88 */ be_nested_str_weak(_X5D), - /* K89 */ be_nested_str_weak(_X2C), - /* K90 */ be_nested_str_weak(_X3B), - /* K91 */ be_nested_str_weak(_X2E), - /* K92 */ be_nested_str_weak(Unexpected_X20character_X3A_X20_X27), + +/******************************************************************** +** Solidified function: get_strip_length +********************************************************************/ +be_local_closure(class_MockEngine_get_strip_length, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_strip_length), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x5406001D, // 0000 LDINT R1 30 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: MockEngine +********************************************************************/ +be_local_class(MockEngine, + 1, + NULL, + be_nested_map(3, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(time_ms, 1), be_const_var(0) }, + { be_const_key_weak(init, -1), be_const_closure(class_MockEngine_init_closure) }, + { be_const_key_weak(get_strip_length, -1), be_const_closure(class_MockEngine_get_strip_length_closure) }, + })), + be_str_weak(MockEngine) +); +// compact class 'DSLLexer' ktab size: 108, total: 269 (saved 1288 bytes) +static const bvalue be_ktab_class_DSLLexer[108] = { + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(startswith), + /* K2 */ be_nested_str_weak(source), + /* K3 */ be_nested_str_weak(position), + /* K4 */ be_const_int(2147483647), + /* K5 */ be_nested_str_weak(ms), + /* K6 */ be_nested_str_weak(advance), + /* K7 */ be_nested_str_weak(peek), + /* K8 */ be_nested_str_weak(s), + /* K9 */ be_nested_str_weak(m), + /* K10 */ be_nested_str_weak(h), + /* K11 */ be_nested_str_weak(), + /* K12 */ be_nested_str_weak(is_alpha), + /* K13 */ be_nested_str_weak(is_digit), + /* K14 */ be_nested_str_weak(column), + /* K15 */ be_nested_str_weak(_X20), + /* K16 */ be_nested_str_weak(_X09), + /* K17 */ be_nested_str_weak(_X0D), + /* K18 */ be_nested_str_weak(_X0A), + /* K19 */ be_nested_str_weak(add_token), + /* K20 */ be_const_int(1), + /* K21 */ be_nested_str_weak(line), + /* K22 */ be_nested_str_weak(_X23), + /* K23 */ be_nested_str_weak(scan_comment), + /* K24 */ be_nested_str_weak(0), + /* K25 */ be_nested_str_weak(x), + /* K26 */ be_nested_str_weak(scan_hex_color_0x), + /* K27 */ be_nested_str_weak(_), + /* K28 */ be_nested_str_weak(scan_identifier_or_keyword), + /* K29 */ be_nested_str_weak(scan_number), + /* K30 */ be_nested_str_weak(_X22), + /* K31 */ be_nested_str_weak(_X27), + /* K32 */ be_nested_str_weak(peek_ahead), + /* K33 */ be_nested_str_weak(scan_triple_quoted_string), + /* K34 */ be_nested_str_weak(scan_string), + /* K35 */ be_nested_str_weak(_X24), + /* K36 */ be_nested_str_weak(scan_variable_reference), + /* K37 */ be_nested_str_weak(scan_operator_or_delimiter), + /* K38 */ be_const_int(0), + /* K39 */ be_nested_str_weak(at_end), + /* K40 */ be_nested_str_weak(is_hex_digit), + /* K41 */ be_nested_str_weak(error), + /* K42 */ be_nested_str_weak(Invalid_X20hex_X20color_X20format_X3A_X20), + /* K43 */ be_nested_str_weak(_X20_X28expected_X200xRRGGBB_X20or_X200xAARRGGBB_X29), + /* K44 */ be_nested_str_weak(Invalid_X20variable_X20reference_X3A_X20_X24_X20must_X20be_X20followed_X20by_X20identifier), + /* K45 */ be_nested_str_weak(is_alnum), + /* K46 */ be_nested_str_weak(_X3D), + /* K47 */ be_nested_str_weak(match), + /* K48 */ be_nested_str_weak(_X3D_X3D), + /* K49 */ be_const_int(2), + /* K50 */ be_nested_str_weak(_X21), + /* K51 */ be_nested_str_weak(_X21_X3D), + /* K52 */ be_nested_str_weak(_X3C), + /* K53 */ be_nested_str_weak(_X3C_X3D), + /* K54 */ be_nested_str_weak(Left_X20shift_X20operator_X20_X27_X3C_X3C_X27_X20not_X20supported_X20in_X20DSL), + /* K55 */ be_nested_str_weak(_X3E), + /* K56 */ be_nested_str_weak(_X3E_X3D), + /* K57 */ be_nested_str_weak(Right_X20shift_X20operator_X20_X27_X3E_X3E_X27_X20not_X20supported_X20in_X20DSL), + /* K58 */ be_nested_str_weak(_X26), + /* K59 */ be_nested_str_weak(_X26_X26), + /* K60 */ be_nested_str_weak(Single_X20_X27_X26_X27_X20not_X20supported_X20in_X20DSL), + /* K61 */ be_nested_str_weak(_X7C), + /* K62 */ be_nested_str_weak(_X7C_X7C), + /* K63 */ be_nested_str_weak(Single_X20_X27_X7C_X27_X20not_X20supported_X20in_X20DSL), + /* K64 */ be_nested_str_weak(_X2D), + /* K65 */ be_nested_str_weak(_X2D_X3E), + /* K66 */ be_nested_str_weak(_X2B), + /* K67 */ be_nested_str_weak(_X2A), + /* K68 */ be_nested_str_weak(_X2F), + /* K69 */ be_nested_str_weak(_X25), + /* K70 */ be_nested_str_weak(_X5E), + /* K71 */ be_nested_str_weak(_X28), + /* K72 */ be_nested_str_weak(_X29), + /* K73 */ be_nested_str_weak(_X7B), + /* K74 */ be_nested_str_weak(_X7D), + /* K75 */ be_nested_str_weak(_X5B), + /* K76 */ be_nested_str_weak(_X5D), + /* K77 */ be_nested_str_weak(_X2C), + /* K78 */ be_nested_str_weak(_X3B), + /* K79 */ be_nested_str_weak(_X3A), + /* K80 */ be_nested_str_weak(_X2E), + /* K81 */ be_nested_str_weak(Unexpected_X20character_X3A_X20_X27), + /* K82 */ be_nested_str_weak(a), + /* K83 */ be_nested_str_weak(z), + /* K84 */ be_nested_str_weak(A), + /* K85 */ be_nested_str_weak(Z), + /* K86 */ be_nested_str_weak(_X5C), + /* K87 */ be_nested_str_weak(n), + /* K88 */ be_nested_str_weak(t), + /* K89 */ be_nested_str_weak(r), + /* K90 */ be_nested_str_weak(Unterminated_X20string_X20literal), + /* K91 */ be_const_int(3), + /* K92 */ be_nested_str_weak(tokens), /* K93 */ be_nested_str_weak(9), - /* K94 */ be_nested_str_weak(tokenize), - /* K95 */ be_nested_str_weak(success), - /* K96 */ be_nested_str_weak(Invalid_X20variable_X20reference_X3A_X20_X24_X20must_X20be_X20followed_X20by_X20identifier), - /* K97 */ be_nested_str_weak(is_alnum), - /* K98 */ be_nested_str_weak(string), - /* K99 */ be_const_int(2147483647), - /* K100 */ be_nested_str_weak(startswith), - /* K101 */ be_nested_str_weak(ms), - /* K102 */ be_nested_str_weak(s), - /* K103 */ be_nested_str_weak(m), - /* K104 */ be_nested_str_weak(h), - /* K105 */ be_nested_str_weak(check_time_suffix), - /* K106 */ be_nested_str_weak(scan_time_suffix), - /* K107 */ be_nested_str_weak(is_color_name), - /* K108 */ be_nested_str_weak(is_keyword), - /* K109 */ be_nested_str_weak(is_hex_digit), - /* K110 */ be_nested_str_weak(Invalid_X20hex_X20color_X20format_X3A_X20), - /* K111 */ be_nested_str_weak(_X20_X28expected_X200xRRGGBB_X20or_X200xAARRGGBB_X29), - /* K112 */ be_nested_str_weak(z), - /* K113 */ be_nested_str_weak(Z), - /* K114 */ be_nested_str_weak(Unterminated_X20triple_X2Dquoted_X20string_X20literal), - /* K115 */ be_nested_str_weak(scan_token), + /* K94 */ be_nested_str_weak(scan_token), + /* K95 */ be_nested_str_weak(f), + /* K96 */ be_nested_str_weak(F), + /* K97 */ be_nested_str_weak(check_time_suffix), + /* K98 */ be_nested_str_weak(scan_time_suffix), + /* K99 */ be_nested_str_weak(Line_X20), + /* K100 */ be_nested_str_weak(_X3A_X20), + /* K101 */ be_nested_str_weak(lexical_error), + /* K102 */ be_nested_str_weak(Unterminated_X20triple_X2Dquoted_X20string_X20literal), + /* K103 */ be_nested_str_weak(animation_dsl), + /* K104 */ be_nested_str_weak(is_color_name), + /* K105 */ be_nested_str_weak(is_keyword), + /* K106 */ be_nested_str_weak(Token), + /* K107 */ be_nested_str_weak(push), }; extern const bclass be_class_DSLLexer; +/******************************************************************** +** Solidified function: scan_time_suffix +********************************************************************/ +be_local_closure(class_DSLLexer_scan_time_suffix, /* 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_DSLLexer, /* shared constants */ + be_str_weak(scan_time_suffix), + &be_const_str_solidified, + ( &(const binstruction[39]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080301, // 0001 GETMET R2 R1 K1 + 0x88100103, // 0002 GETMBR R4 R0 K3 + 0x40100904, // 0003 CONNECT R4 R4 K4 + 0x88140102, // 0004 GETMBR R5 R0 K2 + 0x94100A04, // 0005 GETIDX R4 R5 R4 + 0x58140005, // 0006 LDCONST R5 K5 + 0x7C080600, // 0007 CALL R2 3 + 0x780A0005, // 0008 JMPF R2 #000F + 0x8C080106, // 0009 GETMET R2 R0 K6 + 0x7C080200, // 000A CALL R2 1 + 0x8C080106, // 000B GETMET R2 R0 K6 + 0x7C080200, // 000C CALL R2 1 + 0x80060A00, // 000D RET 1 K5 + 0x70020016, // 000E JMP #0026 + 0x8C080107, // 000F GETMET R2 R0 K7 + 0x7C080200, // 0010 CALL R2 1 + 0x1C080508, // 0011 EQ R2 R2 K8 + 0x780A0003, // 0012 JMPF R2 #0017 + 0x8C080106, // 0013 GETMET R2 R0 K6 + 0x7C080200, // 0014 CALL R2 1 + 0x80061000, // 0015 RET 1 K8 + 0x7002000E, // 0016 JMP #0026 + 0x8C080107, // 0017 GETMET R2 R0 K7 + 0x7C080200, // 0018 CALL R2 1 + 0x1C080509, // 0019 EQ R2 R2 K9 + 0x780A0003, // 001A JMPF R2 #001F + 0x8C080106, // 001B GETMET R2 R0 K6 + 0x7C080200, // 001C CALL R2 1 + 0x80061200, // 001D RET 1 K9 + 0x70020006, // 001E JMP #0026 + 0x8C080107, // 001F GETMET R2 R0 K7 + 0x7C080200, // 0020 CALL R2 1 + 0x1C08050A, // 0021 EQ R2 R2 K10 + 0x780A0002, // 0022 JMPF R2 #0026 + 0x8C080106, // 0023 GETMET R2 R0 K6 + 0x7C080200, // 0024 CALL R2 1 + 0x80061400, // 0025 RET 1 K10 + 0x80061600, // 0026 RET 1 K11 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_alnum +********************************************************************/ +be_local_closure(class_DSLLexer_is_alnum, /* 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_DSLLexer, /* shared constants */ + be_str_weak(is_alnum), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C08010C, // 0000 GETMET R2 R0 K12 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x740A0004, // 0003 JMPT R2 #0009 + 0x8C08010D, // 0004 GETMET R2 R0 K13 + 0x5C100200, // 0005 MOVE R4 R1 + 0x7C080400, // 0006 CALL R2 2 + 0x740A0000, // 0007 JMPT R2 #0009 + 0x50080001, // 0008 LDBOOL R2 0 1 + 0x50080200, // 0009 LDBOOL R2 1 0 + 0x80040400, // 000A RET 1 R2 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: scan_token ********************************************************************/ @@ -16350,100 +16543,100 @@ be_local_closure(class_DSLLexer_scan_token, /* name */ be_str_weak(scan_token), &be_const_str_solidified, ( &(const binstruction[97]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C080101, // 0001 GETMET R2 R0 K1 + 0x8804010E, // 0000 GETMBR R1 R0 K14 + 0x8C080106, // 0001 GETMET R2 R0 K6 0x7C080200, // 0002 CALL R2 1 - 0x1C0C0502, // 0003 EQ R3 R2 K2 + 0x1C0C050F, // 0003 EQ R3 R2 K15 0x740E0003, // 0004 JMPT R3 #0009 - 0x1C0C0503, // 0005 EQ R3 R2 K3 + 0x1C0C0510, // 0005 EQ R3 R2 K16 0x740E0001, // 0006 JMPT R3 #0009 - 0x1C0C0504, // 0007 EQ R3 R2 K4 + 0x1C0C0511, // 0007 EQ R3 R2 K17 0x780E0001, // 0008 JMPF R3 #000B 0x80000600, // 0009 RET 0 0x70020054, // 000A JMP #0060 - 0x1C0C0505, // 000B EQ R3 R2 K5 + 0x1C0C0512, // 000B EQ R3 R2 K18 0x780E000A, // 000C JMPF R3 #0018 - 0x8C0C0106, // 000D GETMET R3 R0 K6 + 0x8C0C0113, // 000D GETMET R3 R0 K19 0x54160022, // 000E LDINT R5 35 - 0x58180005, // 000F LDCONST R6 K5 - 0x581C0007, // 0010 LDCONST R7 K7 + 0x58180012, // 000F LDCONST R6 K18 + 0x581C0014, // 0010 LDCONST R7 K20 0x7C0C0800, // 0011 CALL R3 4 - 0x880C0108, // 0012 GETMBR R3 R0 K8 - 0x000C0707, // 0013 ADD R3 R3 K7 - 0x90021003, // 0014 SETMBR R0 K8 R3 - 0x90020107, // 0015 SETMBR R0 K0 K7 + 0x880C0115, // 0012 GETMBR R3 R0 K21 + 0x000C0714, // 0013 ADD R3 R3 K20 + 0x90022A03, // 0014 SETMBR R0 K21 R3 + 0x90021D14, // 0015 SETMBR R0 K14 K20 0x80000600, // 0016 RET 0 0x70020047, // 0017 JMP #0060 - 0x1C0C0509, // 0018 EQ R3 R2 K9 + 0x1C0C0516, // 0018 EQ R3 R2 K22 0x780E0002, // 0019 JMPF R3 #001D - 0x8C0C010A, // 001A GETMET R3 R0 K10 + 0x8C0C0117, // 001A GETMET R3 R0 K23 0x7C0C0200, // 001B CALL R3 1 0x70020042, // 001C JMP #0060 - 0x1C0C050B, // 001D EQ R3 R2 K11 + 0x1C0C0518, // 001D EQ R3 R2 K24 0x780E0006, // 001E JMPF R3 #0026 - 0x8C0C010C, // 001F GETMET R3 R0 K12 + 0x8C0C0107, // 001F GETMET R3 R0 K7 0x7C0C0200, // 0020 CALL R3 1 - 0x1C0C070D, // 0021 EQ R3 R3 K13 + 0x1C0C0719, // 0021 EQ R3 R3 K25 0x780E0002, // 0022 JMPF R3 #0026 - 0x8C0C010E, // 0023 GETMET R3 R0 K14 + 0x8C0C011A, // 0023 GETMET R3 R0 K26 0x7C0C0200, // 0024 CALL R3 1 0x70020039, // 0025 JMP #0060 - 0x8C0C010F, // 0026 GETMET R3 R0 K15 + 0x8C0C010C, // 0026 GETMET R3 R0 K12 0x5C140400, // 0027 MOVE R5 R2 0x7C0C0400, // 0028 CALL R3 2 0x740E0001, // 0029 JMPT R3 #002C - 0x1C0C0510, // 002A EQ R3 R2 K16 + 0x1C0C051B, // 002A EQ R3 R2 K27 0x780E0002, // 002B JMPF R3 #002F - 0x8C0C0111, // 002C GETMET R3 R0 K17 + 0x8C0C011C, // 002C GETMET R3 R0 K28 0x7C0C0200, // 002D CALL R3 1 0x70020030, // 002E JMP #0060 - 0x8C0C0112, // 002F GETMET R3 R0 K18 + 0x8C0C010D, // 002F GETMET R3 R0 K13 0x5C140400, // 0030 MOVE R5 R2 0x7C0C0400, // 0031 CALL R3 2 0x780E0002, // 0032 JMPF R3 #0036 - 0x8C0C0113, // 0033 GETMET R3 R0 K19 + 0x8C0C011D, // 0033 GETMET R3 R0 K29 0x7C0C0200, // 0034 CALL R3 1 0x70020029, // 0035 JMP #0060 - 0x1C0C0514, // 0036 EQ R3 R2 K20 + 0x1C0C051E, // 0036 EQ R3 R2 K30 0x740E0001, // 0037 JMPT R3 #003A - 0x1C0C0515, // 0038 EQ R3 R2 K21 + 0x1C0C051F, // 0038 EQ R3 R2 K31 0x780E001D, // 0039 JMPF R3 #0058 - 0x1C0C0514, // 003A EQ R3 R2 K20 + 0x1C0C051E, // 003A EQ R3 R2 K30 0x780E0008, // 003B JMPF R3 #0045 - 0x8C0C010C, // 003C GETMET R3 R0 K12 + 0x8C0C0107, // 003C GETMET R3 R0 K7 0x7C0C0200, // 003D CALL R3 1 - 0x1C0C0714, // 003E EQ R3 R3 K20 + 0x1C0C071E, // 003E EQ R3 R3 K30 0x780E0004, // 003F JMPF R3 #0045 - 0x8C0C0116, // 0040 GETMET R3 R0 K22 - 0x58140007, // 0041 LDCONST R5 K7 + 0x8C0C0120, // 0040 GETMET R3 R0 K32 + 0x58140014, // 0041 LDCONST R5 K20 0x7C0C0400, // 0042 CALL R3 2 - 0x1C0C0714, // 0043 EQ R3 R3 K20 + 0x1C0C071E, // 0043 EQ R3 R3 K30 0x740E000A, // 0044 JMPT R3 #0050 - 0x1C0C0515, // 0045 EQ R3 R2 K21 + 0x1C0C051F, // 0045 EQ R3 R2 K31 0x780E000C, // 0046 JMPF R3 #0054 - 0x8C0C010C, // 0047 GETMET R3 R0 K12 + 0x8C0C0107, // 0047 GETMET R3 R0 K7 0x7C0C0200, // 0048 CALL R3 1 - 0x1C0C0715, // 0049 EQ R3 R3 K21 + 0x1C0C071F, // 0049 EQ R3 R3 K31 0x780E0008, // 004A JMPF R3 #0054 - 0x8C0C0116, // 004B GETMET R3 R0 K22 - 0x58140007, // 004C LDCONST R5 K7 + 0x8C0C0120, // 004B GETMET R3 R0 K32 + 0x58140014, // 004C LDCONST R5 K20 0x7C0C0400, // 004D CALL R3 2 - 0x1C0C0715, // 004E EQ R3 R3 K21 + 0x1C0C071F, // 004E EQ R3 R3 K31 0x780E0003, // 004F JMPF R3 #0054 - 0x8C0C0117, // 0050 GETMET R3 R0 K23 + 0x8C0C0121, // 0050 GETMET R3 R0 K33 0x5C140400, // 0051 MOVE R5 R2 0x7C0C0400, // 0052 CALL R3 2 0x70020002, // 0053 JMP #0057 - 0x8C0C0118, // 0054 GETMET R3 R0 K24 + 0x8C0C0122, // 0054 GETMET R3 R0 K34 0x5C140400, // 0055 MOVE R5 R2 0x7C0C0400, // 0056 CALL R3 2 0x70020007, // 0057 JMP #0060 - 0x1C0C0519, // 0058 EQ R3 R2 K25 + 0x1C0C0523, // 0058 EQ R3 R2 K35 0x780E0002, // 0059 JMPF R3 #005D - 0x8C0C011A, // 005A GETMET R3 R0 K26 + 0x8C0C0124, // 005A GETMET R3 R0 K36 0x7C0C0200, // 005B CALL R3 1 0x70020002, // 005C JMP #0060 - 0x8C0C011B, // 005D GETMET R3 R0 K27 + 0x8C0C0125, // 005D GETMET R3 R0 K37 0x5C140400, // 005E MOVE R5 R2 0x7C0C0400, // 005F CALL R3 2 0x80000000, // 0060 RET 0 @@ -16454,185 +16647,11 @@ be_local_closure(class_DSLLexer_scan_token, /* name */ /******************************************************************** -** Solidified function: peek_ahead +** Solidified function: scan_hex_color_0x ********************************************************************/ -be_local_closure(class_DSLLexer_peek_ahead, /* 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_DSLLexer, /* shared constants */ - be_str_weak(peek_ahead), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x8808011C, // 0000 GETMBR R2 R0 K28 - 0x00080401, // 0001 ADD R2 R2 R1 - 0x600C000C, // 0002 GETGBL R3 G12 - 0x8810011D, // 0003 GETMBR R4 R0 K29 - 0x7C0C0200, // 0004 CALL R3 1 - 0x28080403, // 0005 GE R2 R2 R3 - 0x780A0000, // 0006 JMPF R2 #0008 - 0x80063C00, // 0007 RET 1 K30 - 0x8808011C, // 0008 GETMBR R2 R0 K28 - 0x00080401, // 0009 ADD R2 R2 R1 - 0x880C011D, // 000A GETMBR R3 R0 K29 - 0x94080602, // 000B GETIDX R2 R3 R2 - 0x80040400, // 000C RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_string -********************************************************************/ -be_local_closure(class_DSLLexer_scan_string, /* name */ - be_nested_proto( - 10, /* 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_DSLLexer, /* shared constants */ - be_str_weak(scan_string), - &be_const_str_solidified, - ( &(const binstruction[78]) { /* code */ - 0x8808011C, // 0000 GETMBR R2 R0 K28 - 0x04080507, // 0001 SUB R2 R2 K7 - 0x880C0100, // 0002 GETMBR R3 R0 K0 - 0x040C0707, // 0003 SUB R3 R3 K7 - 0x5810001E, // 0004 LDCONST R4 K30 - 0x8C14011F, // 0005 GETMET R5 R0 K31 - 0x7C140200, // 0006 CALL R5 1 - 0x7416002F, // 0007 JMPT R5 #0038 - 0x8C14010C, // 0008 GETMET R5 R0 K12 - 0x7C140200, // 0009 CALL R5 1 - 0x20140A01, // 000A NE R5 R5 R1 - 0x7816002B, // 000B JMPF R5 #0038 - 0x8C140101, // 000C GETMET R5 R0 K1 - 0x7C140200, // 000D CALL R5 1 - 0x1C180B20, // 000E EQ R6 R5 K32 - 0x781A001D, // 000F JMPF R6 #002E - 0x8C18011F, // 0010 GETMET R6 R0 K31 - 0x7C180200, // 0011 CALL R6 1 - 0x741A0018, // 0012 JMPT R6 #002C - 0x8C180101, // 0013 GETMET R6 R0 K1 - 0x7C180200, // 0014 CALL R6 1 - 0x1C1C0D21, // 0015 EQ R7 R6 K33 - 0x781E0001, // 0016 JMPF R7 #0019 - 0x00100905, // 0017 ADD R4 R4 K5 - 0x70020011, // 0018 JMP #002B - 0x1C1C0D22, // 0019 EQ R7 R6 K34 - 0x781E0001, // 001A JMPF R7 #001D - 0x00100903, // 001B ADD R4 R4 K3 - 0x7002000D, // 001C JMP #002B - 0x1C1C0D23, // 001D EQ R7 R6 K35 - 0x781E0001, // 001E JMPF R7 #0021 - 0x00100904, // 001F ADD R4 R4 K4 - 0x70020009, // 0020 JMP #002B - 0x1C1C0D20, // 0021 EQ R7 R6 K32 - 0x781E0001, // 0022 JMPF R7 #0025 - 0x00100920, // 0023 ADD R4 R4 K32 - 0x70020005, // 0024 JMP #002B - 0x1C1C0C01, // 0025 EQ R7 R6 R1 - 0x781E0001, // 0026 JMPF R7 #0029 - 0x00100801, // 0027 ADD R4 R4 R1 - 0x70020001, // 0028 JMP #002B - 0x00100920, // 0029 ADD R4 R4 K32 - 0x00100806, // 002A ADD R4 R4 R6 - 0x70020000, // 002B JMP #002D - 0x00100920, // 002C ADD R4 R4 K32 - 0x70020008, // 002D JMP #0037 - 0x1C180B05, // 002E EQ R6 R5 K5 - 0x781A0005, // 002F JMPF R6 #0036 - 0x88180108, // 0030 GETMBR R6 R0 K8 - 0x00180D07, // 0031 ADD R6 R6 K7 - 0x90021006, // 0032 SETMBR R0 K8 R6 - 0x90020107, // 0033 SETMBR R0 K0 K7 - 0x00100805, // 0034 ADD R4 R4 R5 - 0x70020000, // 0035 JMP #0037 - 0x00100805, // 0036 ADD R4 R4 R5 - 0x7001FFCC, // 0037 JMP #0005 - 0x8C14011F, // 0038 GETMET R5 R0 K31 - 0x7C140200, // 0039 CALL R5 1 - 0x78160009, // 003A JMPF R5 #0045 - 0x8C140124, // 003B GETMET R5 R0 K36 - 0x581C0025, // 003C LDCONST R7 K37 - 0x7C140400, // 003D CALL R5 2 - 0x8C140106, // 003E GETMET R5 R0 K6 - 0x541E0026, // 003F LDINT R7 39 - 0x5C200800, // 0040 MOVE R8 R4 - 0x8824011C, // 0041 GETMBR R9 R0 K28 - 0x04241202, // 0042 SUB R9 R9 R2 - 0x7C140800, // 0043 CALL R5 4 - 0x70020007, // 0044 JMP #004D - 0x8C140101, // 0045 GETMET R5 R0 K1 - 0x7C140200, // 0046 CALL R5 1 - 0x8C140106, // 0047 GETMET R5 R0 K6 - 0x581C0026, // 0048 LDCONST R7 K38 - 0x5C200800, // 0049 MOVE R8 R4 - 0x8824011C, // 004A GETMBR R9 R0 K28 - 0x04241202, // 004B SUB R9 R9 R2 - 0x7C140800, // 004C CALL R5 4 - 0x80000000, // 004D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_token -********************************************************************/ -be_local_closure(class_DSLLexer_add_token, /* name */ +be_local_closure(class_DSLLexer_scan_hex_color_0x, /* name */ be_nested_proto( 11, /* 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_DSLLexer, /* shared constants */ - be_str_weak(add_token), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0xB8124E00, // 0000 GETNGBL R4 K39 - 0x8C100928, // 0001 GETMET R4 R4 K40 - 0x5C180200, // 0002 MOVE R6 R1 - 0x5C1C0400, // 0003 MOVE R7 R2 - 0x88200108, // 0004 GETMBR R8 R0 K8 - 0x88240100, // 0005 GETMBR R9 R0 K0 - 0x04241203, // 0006 SUB R9 R9 R3 - 0x5C280600, // 0007 MOVE R10 R3 - 0x7C100C00, // 0008 CALL R4 6 - 0x88140129, // 0009 GETMBR R5 R0 K41 - 0x8C140B2A, // 000A GETMET R5 R5 K42 - 0x5C1C0800, // 000B MOVE R7 R4 - 0x7C140400, // 000C CALL R5 2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: peek -********************************************************************/ -be_local_closure(class_DSLLexer_peek, /* name */ - be_nested_proto( - 3, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -16641,17 +16660,52 @@ be_local_closure(class_DSLLexer_peek, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(peek), + be_str_weak(scan_hex_color_0x), &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x8C04011F, // 0000 GETMET R1 R0 K31 - 0x7C040200, // 0001 CALL R1 1 - 0x78060000, // 0002 JMPF R1 #0004 - 0x80063C00, // 0003 RET 1 K30 - 0x8804011D, // 0004 GETMBR R1 R0 K29 - 0x8808011C, // 0005 GETMBR R2 R0 K28 - 0x94040202, // 0006 GETIDX R1 R1 R2 - 0x80040200, // 0007 RET 1 R1 + ( &(const binstruction[43]) { /* code */ + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x04040314, // 0001 SUB R1 R1 K20 + 0x8808010E, // 0002 GETMBR R2 R0 K14 + 0x04080514, // 0003 SUB R2 R2 K20 + 0x8C0C0106, // 0004 GETMET R3 R0 K6 + 0x7C0C0200, // 0005 CALL R3 1 + 0x580C0026, // 0006 LDCONST R3 K38 + 0x8C100127, // 0007 GETMET R4 R0 K39 + 0x7C100200, // 0008 CALL R4 1 + 0x74120008, // 0009 JMPT R4 #0013 + 0x8C100128, // 000A GETMET R4 R0 K40 + 0x8C180107, // 000B GETMET R6 R0 K7 + 0x7C180200, // 000C CALL R6 1 + 0x7C100400, // 000D CALL R4 2 + 0x78120003, // 000E JMPF R4 #0013 + 0x8C100106, // 000F GETMET R4 R0 K6 + 0x7C100200, // 0010 CALL R4 1 + 0x000C0714, // 0011 ADD R3 R3 K20 + 0x7001FFF3, // 0012 JMP #0007 + 0x88100103, // 0013 GETMBR R4 R0 K3 + 0x04100914, // 0014 SUB R4 R4 K20 + 0x40100204, // 0015 CONNECT R4 R1 R4 + 0x88140102, // 0016 GETMBR R5 R0 K2 + 0x94100A04, // 0017 GETIDX R4 R5 R4 + 0x54160005, // 0018 LDINT R5 6 + 0x1C140605, // 0019 EQ R5 R3 R5 + 0x74160002, // 001A JMPT R5 #001E + 0x54160007, // 001B LDINT R5 8 + 0x1C140605, // 001C EQ R5 R3 R5 + 0x78160007, // 001D JMPF R5 #0026 + 0x8C140113, // 001E GETMET R5 R0 K19 + 0x541E0003, // 001F LDINT R7 4 + 0x5C200800, // 0020 MOVE R8 R4 + 0x6024000C, // 0021 GETGBL R9 G12 + 0x5C280800, // 0022 MOVE R10 R4 + 0x7C240200, // 0023 CALL R9 1 + 0x7C140800, // 0024 CALL R5 4 + 0x70020003, // 0025 JMP #002A + 0x8C140129, // 0026 GETMET R5 R0 K41 + 0x001E5404, // 0027 ADD R7 K42 R4 + 0x001C0F2B, // 0028 ADD R7 R7 K43 + 0x7C140400, // 0029 CALL R5 2 + 0x80000000, // 002A RET 0 }) ) ); @@ -16659,11 +16713,11 @@ be_local_closure(class_DSLLexer_peek, /* name */ /******************************************************************** -** Solidified function: get_error_report +** Solidified function: scan_variable_reference ********************************************************************/ -be_local_closure(class_DSLLexer_get_error_report, /* name */ +be_local_closure(class_DSLLexer_scan_variable_reference, /* name */ be_nested_proto( - 7, /* nstack */ + 10, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -16672,160 +16726,59 @@ be_local_closure(class_DSLLexer_get_error_report, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(get_error_report), + be_str_weak(scan_variable_reference), &be_const_str_solidified, - ( &(const binstruction[36]) { /* code */ - 0x8C04012B, // 0000 GETMET R1 R0 K43 - 0x7C040200, // 0001 CALL R1 1 - 0x74060000, // 0002 JMPT R1 #0004 - 0x80065800, // 0003 RET 1 K44 - 0x60040008, // 0004 GETGBL R1 G8 - 0x6008000C, // 0005 GETGBL R2 G12 - 0x880C012E, // 0006 GETMBR R3 R0 K46 - 0x7C080200, // 0007 CALL R2 1 - 0x7C040200, // 0008 CALL R1 1 - 0x00065A01, // 0009 ADD R1 K45 R1 - 0x0004032F, // 000A ADD R1 R1 K47 - 0x60080010, // 000B GETGBL R2 G16 - 0x880C012E, // 000C GETMBR R3 R0 K46 - 0x7C080200, // 000D CALL R2 1 - 0xA8020010, // 000E EXBLK 0 #0020 - 0x5C0C0400, // 000F MOVE R3 R2 - 0x7C0C0000, // 0010 CALL R3 0 - 0x60100008, // 0011 GETGBL R4 G8 - 0x94140708, // 0012 GETIDX R5 R3 K8 - 0x7C100200, // 0013 CALL R4 1 - 0x00126004, // 0014 ADD R4 K48 R4 - 0x00100931, // 0015 ADD R4 R4 K49 - 0x60140008, // 0016 GETGBL R5 G8 - 0x94180700, // 0017 GETIDX R6 R3 K0 - 0x7C140200, // 0018 CALL R5 1 - 0x00100805, // 0019 ADD R4 R4 R5 - 0x00100932, // 001A ADD R4 R4 K50 - 0x94140733, // 001B GETIDX R5 R3 K51 - 0x00100805, // 001C ADD R4 R4 R5 - 0x00100905, // 001D ADD R4 R4 K5 - 0x00040204, // 001E ADD R1 R1 R4 - 0x7001FFEE, // 001F JMP #000F - 0x58080034, // 0020 LDCONST R2 K52 - 0xAC080200, // 0021 CATCH R2 1 0 - 0xB0080000, // 0022 RAISE 2 R0 R0 - 0x80040200, // 0023 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: advance -********************************************************************/ -be_local_closure(class_DSLLexer_advance, /* 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_DSLLexer, /* shared constants */ - be_str_weak(advance), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C04011F, // 0000 GETMET R1 R0 K31 - 0x7C040200, // 0001 CALL R1 1 - 0x78060000, // 0002 JMPF R1 #0004 - 0x80063C00, // 0003 RET 1 K30 - 0x8804011D, // 0004 GETMBR R1 R0 K29 - 0x8808011C, // 0005 GETMBR R2 R0 K28 - 0x94040202, // 0006 GETIDX R1 R1 R2 - 0x8808011C, // 0007 GETMBR R2 R0 K28 - 0x00080507, // 0008 ADD R2 R2 K7 - 0x90023802, // 0009 SETMBR R0 K28 R2 - 0x88080100, // 000A GETMBR R2 R0 K0 - 0x00080507, // 000B ADD R2 R2 K7 - 0x90020002, // 000C SETMBR R0 K0 R2 - 0x80040200, // 000D RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_hex_digit -********************************************************************/ -be_local_closure(class_DSLLexer_is_hex_digit, /* 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_DSLLexer, /* shared constants */ - be_str_weak(is_hex_digit), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x8C080112, // 0000 GETMET R2 R0 K18 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x740A0008, // 0003 JMPT R2 #000D - 0x28080335, // 0004 GE R2 R1 K53 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x18080336, // 0006 LE R2 R1 K54 - 0x740A0004, // 0007 JMPT R2 #000D - 0x28080337, // 0008 GE R2 R1 K55 - 0x780A0001, // 0009 JMPF R2 #000C - 0x18080338, // 000A LE R2 R1 K56 - 0x740A0000, // 000B JMPT R2 #000D - 0x50080001, // 000C LDBOOL R2 0 1 - 0x50080200, // 000D LDBOOL R2 1 0 - 0x80040400, // 000E RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_DSLLexer_init, /* 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_DSLLexer, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x5C080200, // 0003 MOVE R2 R1 - 0x70020000, // 0004 JMP #0006 - 0x5808001E, // 0005 LDCONST R2 K30 - 0x90023A02, // 0006 SETMBR R0 K29 R2 - 0x90023939, // 0007 SETMBR R0 K28 K57 - 0x90021107, // 0008 SETMBR R0 K8 K7 - 0x90020107, // 0009 SETMBR R0 K0 K7 - 0x60080012, // 000A GETGBL R2 G18 - 0x7C080000, // 000B CALL R2 0 - 0x90025202, // 000C SETMBR R0 K41 R2 - 0x60080012, // 000D GETGBL R2 G18 - 0x7C080000, // 000E CALL R2 0 - 0x90025C02, // 000F SETMBR R0 K46 R2 - 0x80000000, // 0010 RET 0 + ( &(const binstruction[50]) { /* code */ + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x04040314, // 0001 SUB R1 R1 K20 + 0x8808010E, // 0002 GETMBR R2 R0 K14 + 0x04080514, // 0003 SUB R2 R2 K20 + 0x8C0C0127, // 0004 GETMET R3 R0 K39 + 0x7C0C0200, // 0005 CALL R3 1 + 0x740E000B, // 0006 JMPT R3 #0013 + 0x8C0C010C, // 0007 GETMET R3 R0 K12 + 0x8C140107, // 0008 GETMET R5 R0 K7 + 0x7C140200, // 0009 CALL R5 1 + 0x7C0C0400, // 000A CALL R3 2 + 0x740E0004, // 000B JMPT R3 #0011 + 0x8C0C0107, // 000C GETMET R3 R0 K7 + 0x7C0C0200, // 000D CALL R3 1 + 0x1C0C071B, // 000E EQ R3 R3 K27 + 0x740E0000, // 000F JMPT R3 #0011 + 0x500C0001, // 0010 LDBOOL R3 0 1 + 0x500C0200, // 0011 LDBOOL R3 1 0 + 0x740E0002, // 0012 JMPT R3 #0016 + 0x8C0C0129, // 0013 GETMET R3 R0 K41 + 0x5814002C, // 0014 LDCONST R5 K44 + 0x7C0C0400, // 0015 CALL R3 2 + 0x8C0C0127, // 0016 GETMET R3 R0 K39 + 0x7C0C0200, // 0017 CALL R3 1 + 0x740E000B, // 0018 JMPT R3 #0025 + 0x8C0C012D, // 0019 GETMET R3 R0 K45 + 0x8C140107, // 001A GETMET R5 R0 K7 + 0x7C140200, // 001B CALL R5 1 + 0x7C0C0400, // 001C CALL R3 2 + 0x740E0003, // 001D JMPT R3 #0022 + 0x8C0C0107, // 001E GETMET R3 R0 K7 + 0x7C0C0200, // 001F CALL R3 1 + 0x1C0C071B, // 0020 EQ R3 R3 K27 + 0x780E0002, // 0021 JMPF R3 #0025 + 0x8C0C0106, // 0022 GETMET R3 R0 K6 + 0x7C0C0200, // 0023 CALL R3 1 + 0x7001FFF0, // 0024 JMP #0016 + 0x880C0103, // 0025 GETMBR R3 R0 K3 + 0x040C0714, // 0026 SUB R3 R3 K20 + 0x400C0203, // 0027 CONNECT R3 R1 R3 + 0x88100102, // 0028 GETMBR R4 R0 K2 + 0x940C0803, // 0029 GETIDX R3 R4 R3 + 0x8C100113, // 002A GETMET R4 R0 K19 + 0x541A0023, // 002B LDINT R6 36 + 0x5C1C0600, // 002C MOVE R7 R3 + 0x6020000C, // 002D GETGBL R8 G12 + 0x5C240600, // 002E MOVE R9 R3 + 0x7C200200, // 002F CALL R8 1 + 0x7C100800, // 0030 CALL R4 4 + 0x80000000, // 0031 RET 0 }) ) ); @@ -16848,306 +16801,287 @@ be_local_closure(class_DSLLexer_scan_operator_or_delimiter, /* name */ &be_ktab_class_DSLLexer, /* shared constants */ be_str_weak(scan_operator_or_delimiter), &be_const_str_solidified, - ( &(const binstruction[299]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x04080507, // 0001 SUB R2 R2 K7 - 0x1C0C033A, // 0002 EQ R3 R1 K58 + ( &(const binstruction[280]) { /* code */ + 0x8808010E, // 0000 GETMBR R2 R0 K14 + 0x04080514, // 0001 SUB R2 R2 K20 + 0x1C0C032E, // 0002 EQ R3 R1 K46 0x780E000F, // 0003 JMPF R3 #0014 - 0x8C0C013B, // 0004 GETMET R3 R0 K59 - 0x5814003A, // 0005 LDCONST R5 K58 + 0x8C0C012F, // 0004 GETMET R3 R0 K47 + 0x5814002E, // 0005 LDCONST R5 K46 0x7C0C0400, // 0006 CALL R3 2 0x780E0005, // 0007 JMPF R3 #000E - 0x8C0C0106, // 0008 GETMET R3 R0 K6 + 0x8C0C0113, // 0008 GETMET R3 R0 K19 0x5416000E, // 0009 LDINT R5 15 - 0x5818003C, // 000A LDCONST R6 K60 - 0x581C003D, // 000B LDCONST R7 K61 + 0x58180030, // 000A LDCONST R6 K48 + 0x581C0031, // 000B LDCONST R7 K49 0x7C0C0800, // 000C CALL R3 4 0x70020004, // 000D JMP #0013 - 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x8C0C0113, // 000E GETMET R3 R0 K19 0x54160007, // 000F LDINT R5 8 - 0x5818003A, // 0010 LDCONST R6 K58 - 0x581C0007, // 0011 LDCONST R7 K7 + 0x5818002E, // 0010 LDCONST R6 K46 + 0x581C0014, // 0011 LDCONST R7 K20 0x7C0C0800, // 0012 CALL R3 4 - 0x70020115, // 0013 JMP #012A - 0x1C0C033E, // 0014 EQ R3 R1 K62 + 0x70020102, // 0013 JMP #0117 + 0x1C0C0332, // 0014 EQ R3 R1 K50 0x780E000F, // 0015 JMPF R3 #0026 - 0x8C0C013B, // 0016 GETMET R3 R0 K59 - 0x5814003A, // 0017 LDCONST R5 K58 + 0x8C0C012F, // 0016 GETMET R3 R0 K47 + 0x5814002E, // 0017 LDCONST R5 K46 0x7C0C0400, // 0018 CALL R3 2 0x780E0005, // 0019 JMPF R3 #0020 - 0x8C0C0106, // 001A GETMET R3 R0 K6 + 0x8C0C0113, // 001A GETMET R3 R0 K19 0x5416000F, // 001B LDINT R5 16 - 0x5818003F, // 001C LDCONST R6 K63 - 0x581C003D, // 001D LDCONST R7 K61 + 0x58180033, // 001C LDCONST R6 K51 + 0x581C0031, // 001D LDCONST R7 K49 0x7C0C0800, // 001E CALL R3 4 0x70020004, // 001F JMP #0025 - 0x8C0C0106, // 0020 GETMET R3 R0 K6 + 0x8C0C0113, // 0020 GETMET R3 R0 K19 0x54160016, // 0021 LDINT R5 23 - 0x5818003E, // 0022 LDCONST R6 K62 - 0x581C0007, // 0023 LDCONST R7 K7 + 0x58180032, // 0022 LDCONST R6 K50 + 0x581C0014, // 0023 LDCONST R7 K20 0x7C0C0800, // 0024 CALL R3 4 - 0x70020103, // 0025 JMP #012A - 0x1C0C0340, // 0026 EQ R3 R1 K64 - 0x780E0019, // 0027 JMPF R3 #0042 - 0x8C0C013B, // 0028 GETMET R3 R0 K59 - 0x5814003A, // 0029 LDCONST R5 K58 + 0x700200F0, // 0025 JMP #0117 + 0x1C0C0334, // 0026 EQ R3 R1 K52 + 0x780E0017, // 0027 JMPF R3 #0040 + 0x8C0C012F, // 0028 GETMET R3 R0 K47 + 0x5814002E, // 0029 LDCONST R5 K46 0x7C0C0400, // 002A CALL R3 2 0x780E0005, // 002B JMPF R3 #0032 - 0x8C0C0106, // 002C GETMET R3 R0 K6 + 0x8C0C0113, // 002C GETMET R3 R0 K19 0x54160011, // 002D LDINT R5 18 - 0x58180041, // 002E LDCONST R6 K65 - 0x581C003D, // 002F LDCONST R7 K61 + 0x58180035, // 002E LDCONST R6 K53 + 0x581C0031, // 002F LDCONST R7 K49 0x7C0C0800, // 0030 CALL R3 4 - 0x7002000E, // 0031 JMP #0041 - 0x8C0C013B, // 0032 GETMET R3 R0 K59 - 0x58140040, // 0033 LDCONST R5 K64 + 0x7002000C, // 0031 JMP #003F + 0x8C0C012F, // 0032 GETMET R3 R0 K47 + 0x58140034, // 0033 LDCONST R5 K52 0x7C0C0400, // 0034 CALL R3 2 - 0x780E0005, // 0035 JMPF R3 #003C - 0x8C0C0106, // 0036 GETMET R3 R0 K6 - 0x54160026, // 0037 LDINT R5 39 - 0x58180042, // 0038 LDCONST R6 K66 - 0x581C003D, // 0039 LDCONST R7 K61 - 0x7C0C0800, // 003A CALL R3 4 - 0x70020004, // 003B JMP #0041 - 0x8C0C0106, // 003C GETMET R3 R0 K6 - 0x54160010, // 003D LDINT R5 17 - 0x58180040, // 003E LDCONST R6 K64 - 0x581C0007, // 003F LDCONST R7 K7 - 0x7C0C0800, // 0040 CALL R3 4 - 0x700200E7, // 0041 JMP #012A - 0x1C0C0343, // 0042 EQ R3 R1 K67 - 0x780E0019, // 0043 JMPF R3 #005E - 0x8C0C013B, // 0044 GETMET R3 R0 K59 - 0x5814003A, // 0045 LDCONST R5 K58 - 0x7C0C0400, // 0046 CALL R3 2 - 0x780E0005, // 0047 JMPF R3 #004E - 0x8C0C0106, // 0048 GETMET R3 R0 K6 - 0x54160013, // 0049 LDINT R5 20 - 0x58180044, // 004A LDCONST R6 K68 - 0x581C003D, // 004B LDCONST R7 K61 - 0x7C0C0800, // 004C CALL R3 4 - 0x7002000E, // 004D JMP #005D - 0x8C0C013B, // 004E GETMET R3 R0 K59 - 0x58140043, // 004F LDCONST R5 K67 - 0x7C0C0400, // 0050 CALL R3 2 - 0x780E0005, // 0051 JMPF R3 #0058 - 0x8C0C0106, // 0052 GETMET R3 R0 K6 - 0x54160026, // 0053 LDINT R5 39 - 0x58180045, // 0054 LDCONST R6 K69 - 0x581C003D, // 0055 LDCONST R7 K61 - 0x7C0C0800, // 0056 CALL R3 4 - 0x70020004, // 0057 JMP #005D - 0x8C0C0106, // 0058 GETMET R3 R0 K6 - 0x54160012, // 0059 LDINT R5 19 - 0x58180043, // 005A LDCONST R6 K67 - 0x581C0007, // 005B LDCONST R7 K7 - 0x7C0C0800, // 005C CALL R3 4 - 0x700200CB, // 005D JMP #012A - 0x1C0C0346, // 005E EQ R3 R1 K70 - 0x780E0012, // 005F JMPF R3 #0073 - 0x8C0C013B, // 0060 GETMET R3 R0 K59 - 0x58140046, // 0061 LDCONST R5 K70 - 0x7C0C0400, // 0062 CALL R3 2 - 0x780E0005, // 0063 JMPF R3 #006A - 0x8C0C0106, // 0064 GETMET R3 R0 K6 - 0x54160014, // 0065 LDINT R5 21 - 0x58180047, // 0066 LDCONST R6 K71 - 0x581C003D, // 0067 LDCONST R7 K61 - 0x7C0C0800, // 0068 CALL R3 4 - 0x70020007, // 0069 JMP #0072 - 0x8C0C0124, // 006A GETMET R3 R0 K36 - 0x58140048, // 006B LDCONST R5 K72 - 0x7C0C0400, // 006C CALL R3 2 - 0x8C0C0106, // 006D GETMET R3 R0 K6 - 0x54160026, // 006E LDINT R5 39 - 0x58180046, // 006F LDCONST R6 K70 - 0x581C0007, // 0070 LDCONST R7 K7 - 0x7C0C0800, // 0071 CALL R3 4 - 0x700200B6, // 0072 JMP #012A - 0x1C0C0349, // 0073 EQ R3 R1 K73 - 0x780E0012, // 0074 JMPF R3 #0088 - 0x8C0C013B, // 0075 GETMET R3 R0 K59 - 0x58140049, // 0076 LDCONST R5 K73 - 0x7C0C0400, // 0077 CALL R3 2 - 0x780E0005, // 0078 JMPF R3 #007F - 0x8C0C0106, // 0079 GETMET R3 R0 K6 - 0x54160015, // 007A LDINT R5 22 - 0x5818004A, // 007B LDCONST R6 K74 - 0x581C003D, // 007C LDCONST R7 K61 - 0x7C0C0800, // 007D CALL R3 4 - 0x70020007, // 007E JMP #0087 - 0x8C0C0124, // 007F GETMET R3 R0 K36 - 0x5814004B, // 0080 LDCONST R5 K75 - 0x7C0C0400, // 0081 CALL R3 2 - 0x8C0C0106, // 0082 GETMET R3 R0 K6 - 0x54160026, // 0083 LDINT R5 39 - 0x58180049, // 0084 LDCONST R6 K73 - 0x581C0007, // 0085 LDCONST R7 K7 - 0x7C0C0800, // 0086 CALL R3 4 - 0x700200A1, // 0087 JMP #012A - 0x1C0C034C, // 0088 EQ R3 R1 K76 - 0x780E000F, // 0089 JMPF R3 #009A - 0x8C0C013B, // 008A GETMET R3 R0 K59 - 0x58140043, // 008B LDCONST R5 K67 - 0x7C0C0400, // 008C CALL R3 2 + 0x780E0003, // 0035 JMPF R3 #003A + 0x8C0C0129, // 0036 GETMET R3 R0 K41 + 0x58140036, // 0037 LDCONST R5 K54 + 0x7C0C0400, // 0038 CALL R3 2 + 0x70020004, // 0039 JMP #003F + 0x8C0C0113, // 003A GETMET R3 R0 K19 + 0x54160010, // 003B LDINT R5 17 + 0x58180034, // 003C LDCONST R6 K52 + 0x581C0014, // 003D LDCONST R7 K20 + 0x7C0C0800, // 003E CALL R3 4 + 0x700200D6, // 003F JMP #0117 + 0x1C0C0337, // 0040 EQ R3 R1 K55 + 0x780E0017, // 0041 JMPF R3 #005A + 0x8C0C012F, // 0042 GETMET R3 R0 K47 + 0x5814002E, // 0043 LDCONST R5 K46 + 0x7C0C0400, // 0044 CALL R3 2 + 0x780E0005, // 0045 JMPF R3 #004C + 0x8C0C0113, // 0046 GETMET R3 R0 K19 + 0x54160013, // 0047 LDINT R5 20 + 0x58180038, // 0048 LDCONST R6 K56 + 0x581C0031, // 0049 LDCONST R7 K49 + 0x7C0C0800, // 004A CALL R3 4 + 0x7002000C, // 004B JMP #0059 + 0x8C0C012F, // 004C GETMET R3 R0 K47 + 0x58140037, // 004D LDCONST R5 K55 + 0x7C0C0400, // 004E CALL R3 2 + 0x780E0003, // 004F JMPF R3 #0054 + 0x8C0C0129, // 0050 GETMET R3 R0 K41 + 0x58140039, // 0051 LDCONST R5 K57 + 0x7C0C0400, // 0052 CALL R3 2 + 0x70020004, // 0053 JMP #0059 + 0x8C0C0113, // 0054 GETMET R3 R0 K19 + 0x54160012, // 0055 LDINT R5 19 + 0x58180037, // 0056 LDCONST R6 K55 + 0x581C0014, // 0057 LDCONST R7 K20 + 0x7C0C0800, // 0058 CALL R3 4 + 0x700200BC, // 0059 JMP #0117 + 0x1C0C033A, // 005A EQ R3 R1 K58 + 0x780E000D, // 005B JMPF R3 #006A + 0x8C0C012F, // 005C GETMET R3 R0 K47 + 0x5814003A, // 005D LDCONST R5 K58 + 0x7C0C0400, // 005E CALL R3 2 + 0x780E0005, // 005F JMPF R3 #0066 + 0x8C0C0113, // 0060 GETMET R3 R0 K19 + 0x54160014, // 0061 LDINT R5 21 + 0x5818003B, // 0062 LDCONST R6 K59 + 0x581C0031, // 0063 LDCONST R7 K49 + 0x7C0C0800, // 0064 CALL R3 4 + 0x70020002, // 0065 JMP #0069 + 0x8C0C0129, // 0066 GETMET R3 R0 K41 + 0x5814003C, // 0067 LDCONST R5 K60 + 0x7C0C0400, // 0068 CALL R3 2 + 0x700200AC, // 0069 JMP #0117 + 0x1C0C033D, // 006A EQ R3 R1 K61 + 0x780E000D, // 006B JMPF R3 #007A + 0x8C0C012F, // 006C GETMET R3 R0 K47 + 0x5814003D, // 006D LDCONST R5 K61 + 0x7C0C0400, // 006E CALL R3 2 + 0x780E0005, // 006F JMPF R3 #0076 + 0x8C0C0113, // 0070 GETMET R3 R0 K19 + 0x54160015, // 0071 LDINT R5 22 + 0x5818003E, // 0072 LDCONST R6 K62 + 0x581C0031, // 0073 LDCONST R7 K49 + 0x7C0C0800, // 0074 CALL R3 4 + 0x70020002, // 0075 JMP #0079 + 0x8C0C0129, // 0076 GETMET R3 R0 K41 + 0x5814003F, // 0077 LDCONST R5 K63 + 0x7C0C0400, // 0078 CALL R3 2 + 0x7002009C, // 0079 JMP #0117 + 0x1C0C0340, // 007A EQ R3 R1 K64 + 0x780E000F, // 007B JMPF R3 #008C + 0x8C0C012F, // 007C GETMET R3 R0 K47 + 0x58140037, // 007D LDCONST R5 K55 + 0x7C0C0400, // 007E CALL R3 2 + 0x780E0005, // 007F JMPF R3 #0086 + 0x8C0C0113, // 0080 GETMET R3 R0 K19 + 0x54160021, // 0081 LDINT R5 34 + 0x58180041, // 0082 LDCONST R6 K65 + 0x581C0031, // 0083 LDCONST R7 K49 + 0x7C0C0800, // 0084 CALL R3 4 + 0x70020004, // 0085 JMP #008B + 0x8C0C0113, // 0086 GETMET R3 R0 K19 + 0x54160009, // 0087 LDINT R5 10 + 0x58180040, // 0088 LDCONST R6 K64 + 0x581C0014, // 0089 LDCONST R7 K20 + 0x7C0C0800, // 008A CALL R3 4 + 0x7002008A, // 008B JMP #0117 + 0x1C0C0342, // 008C EQ R3 R1 K66 0x780E0005, // 008D JMPF R3 #0094 - 0x8C0C0106, // 008E GETMET R3 R0 K6 - 0x54160021, // 008F LDINT R5 34 - 0x5818004D, // 0090 LDCONST R6 K77 - 0x581C003D, // 0091 LDCONST R7 K61 + 0x8C0C0113, // 008E GETMET R3 R0 K19 + 0x54160008, // 008F LDINT R5 9 + 0x58180042, // 0090 LDCONST R6 K66 + 0x581C0014, // 0091 LDCONST R7 K20 0x7C0C0800, // 0092 CALL R3 4 - 0x70020004, // 0093 JMP #0099 - 0x8C0C0106, // 0094 GETMET R3 R0 K6 - 0x54160009, // 0095 LDINT R5 10 - 0x5818004C, // 0096 LDCONST R6 K76 - 0x581C0007, // 0097 LDCONST R7 K7 - 0x7C0C0800, // 0098 CALL R3 4 - 0x7002008F, // 0099 JMP #012A - 0x1C0C034E, // 009A EQ R3 R1 K78 - 0x780E0005, // 009B JMPF R3 #00A2 - 0x8C0C0106, // 009C GETMET R3 R0 K6 - 0x54160008, // 009D LDINT R5 9 - 0x5818004E, // 009E LDCONST R6 K78 - 0x581C0007, // 009F LDCONST R7 K7 - 0x7C0C0800, // 00A0 CALL R3 4 - 0x70020087, // 00A1 JMP #012A - 0x1C0C034F, // 00A2 EQ R3 R1 K79 - 0x780E0005, // 00A3 JMPF R3 #00AA - 0x8C0C0106, // 00A4 GETMET R3 R0 K6 - 0x5416000A, // 00A5 LDINT R5 11 - 0x5818004F, // 00A6 LDCONST R6 K79 - 0x581C0007, // 00A7 LDCONST R7 K7 - 0x7C0C0800, // 00A8 CALL R3 4 - 0x7002007F, // 00A9 JMP #012A - 0x1C0C0350, // 00AA EQ R3 R1 K80 - 0x780E0005, // 00AB JMPF R3 #00B2 - 0x8C0C0106, // 00AC GETMET R3 R0 K6 - 0x5416000B, // 00AD LDINT R5 12 - 0x58180050, // 00AE LDCONST R6 K80 - 0x581C0007, // 00AF LDCONST R7 K7 - 0x7C0C0800, // 00B0 CALL R3 4 - 0x70020077, // 00B1 JMP #012A - 0x1C0C0351, // 00B2 EQ R3 R1 K81 - 0x780E0005, // 00B3 JMPF R3 #00BA - 0x8C0C0106, // 00B4 GETMET R3 R0 K6 - 0x5416000C, // 00B5 LDINT R5 13 - 0x58180051, // 00B6 LDCONST R6 K81 - 0x581C0007, // 00B7 LDCONST R7 K7 - 0x7C0C0800, // 00B8 CALL R3 4 - 0x7002006F, // 00B9 JMP #012A - 0x1C0C0352, // 00BA EQ R3 R1 K82 - 0x780E0005, // 00BB JMPF R3 #00C2 - 0x8C0C0106, // 00BC GETMET R3 R0 K6 - 0x5416000D, // 00BD LDINT R5 14 - 0x58180052, // 00BE LDCONST R6 K82 - 0x581C0007, // 00BF LDCONST R7 K7 - 0x7C0C0800, // 00C0 CALL R3 4 - 0x70020067, // 00C1 JMP #012A - 0x1C0C0353, // 00C2 EQ R3 R1 K83 - 0x780E0005, // 00C3 JMPF R3 #00CA - 0x8C0C0106, // 00C4 GETMET R3 R0 K6 - 0x54160017, // 00C5 LDINT R5 24 - 0x58180053, // 00C6 LDCONST R6 K83 - 0x581C0007, // 00C7 LDCONST R7 K7 - 0x7C0C0800, // 00C8 CALL R3 4 - 0x7002005F, // 00C9 JMP #012A - 0x1C0C0354, // 00CA EQ R3 R1 K84 - 0x780E0005, // 00CB JMPF R3 #00D2 - 0x8C0C0106, // 00CC GETMET R3 R0 K6 - 0x54160018, // 00CD LDINT R5 25 - 0x58180054, // 00CE LDCONST R6 K84 - 0x581C0007, // 00CF LDCONST R7 K7 - 0x7C0C0800, // 00D0 CALL R3 4 - 0x70020057, // 00D1 JMP #012A - 0x1C0C0355, // 00D2 EQ R3 R1 K85 - 0x780E0005, // 00D3 JMPF R3 #00DA - 0x8C0C0106, // 00D4 GETMET R3 R0 K6 - 0x54160019, // 00D5 LDINT R5 26 - 0x58180055, // 00D6 LDCONST R6 K85 - 0x581C0007, // 00D7 LDCONST R7 K7 - 0x7C0C0800, // 00D8 CALL R3 4 - 0x7002004F, // 00D9 JMP #012A - 0x1C0C0356, // 00DA EQ R3 R1 K86 - 0x780E0005, // 00DB JMPF R3 #00E2 - 0x8C0C0106, // 00DC GETMET R3 R0 K6 - 0x5416001A, // 00DD LDINT R5 27 - 0x58180056, // 00DE LDCONST R6 K86 - 0x581C0007, // 00DF LDCONST R7 K7 - 0x7C0C0800, // 00E0 CALL R3 4 - 0x70020047, // 00E1 JMP #012A - 0x1C0C0357, // 00E2 EQ R3 R1 K87 - 0x780E0005, // 00E3 JMPF R3 #00EA - 0x8C0C0106, // 00E4 GETMET R3 R0 K6 - 0x5416001B, // 00E5 LDINT R5 28 - 0x58180057, // 00E6 LDCONST R6 K87 - 0x581C0007, // 00E7 LDCONST R7 K7 - 0x7C0C0800, // 00E8 CALL R3 4 - 0x7002003F, // 00E9 JMP #012A - 0x1C0C0358, // 00EA EQ R3 R1 K88 - 0x780E0005, // 00EB JMPF R3 #00F2 - 0x8C0C0106, // 00EC GETMET R3 R0 K6 - 0x5416001C, // 00ED LDINT R5 29 - 0x58180058, // 00EE LDCONST R6 K88 - 0x581C0007, // 00EF LDCONST R7 K7 - 0x7C0C0800, // 00F0 CALL R3 4 - 0x70020037, // 00F1 JMP #012A - 0x1C0C0359, // 00F2 EQ R3 R1 K89 - 0x780E0005, // 00F3 JMPF R3 #00FA - 0x8C0C0106, // 00F4 GETMET R3 R0 K6 - 0x5416001D, // 00F5 LDINT R5 30 - 0x58180059, // 00F6 LDCONST R6 K89 - 0x581C0007, // 00F7 LDCONST R7 K7 - 0x7C0C0800, // 00F8 CALL R3 4 - 0x7002002F, // 00F9 JMP #012A - 0x1C0C035A, // 00FA EQ R3 R1 K90 - 0x780E0005, // 00FB JMPF R3 #0102 - 0x8C0C0106, // 00FC GETMET R3 R0 K6 - 0x5416001E, // 00FD LDINT R5 31 - 0x5818005A, // 00FE LDCONST R6 K90 - 0x581C0007, // 00FF LDCONST R7 K7 - 0x7C0C0800, // 0100 CALL R3 4 - 0x70020027, // 0101 JMP #012A - 0x1C0C0331, // 0102 EQ R3 R1 K49 - 0x780E0005, // 0103 JMPF R3 #010A - 0x8C0C0106, // 0104 GETMET R3 R0 K6 - 0x5416001F, // 0105 LDINT R5 32 - 0x58180031, // 0106 LDCONST R6 K49 - 0x581C0007, // 0107 LDCONST R7 K7 - 0x7C0C0800, // 0108 CALL R3 4 - 0x7002001F, // 0109 JMP #012A - 0x1C0C035B, // 010A EQ R3 R1 K91 - 0x780E0014, // 010B JMPF R3 #0121 - 0x8C0C013B, // 010C GETMET R3 R0 K59 - 0x5814005B, // 010D LDCONST R5 K91 - 0x7C0C0400, // 010E CALL R3 2 - 0x780E000A, // 010F JMPF R3 #011B - 0x8C0C0106, // 0110 GETMET R3 R0 K6 - 0x54160020, // 0111 LDINT R5 33 - 0x5818005B, // 0112 LDCONST R6 K91 - 0x581C0007, // 0113 LDCONST R7 K7 - 0x7C0C0800, // 0114 CALL R3 4 - 0x8C0C0106, // 0115 GETMET R3 R0 K6 - 0x54160020, // 0116 LDINT R5 33 - 0x5818005B, // 0117 LDCONST R6 K91 - 0x581C0007, // 0118 LDCONST R7 K7 - 0x7C0C0800, // 0119 CALL R3 4 - 0x70020004, // 011A JMP #0120 - 0x8C0C0106, // 011B GETMET R3 R0 K6 - 0x54160020, // 011C LDINT R5 33 - 0x5818005B, // 011D LDCONST R6 K91 - 0x581C0007, // 011E LDCONST R7 K7 - 0x7C0C0800, // 011F CALL R3 4 - 0x70020008, // 0120 JMP #012A - 0x8C0C0124, // 0121 GETMET R3 R0 K36 - 0x0016B801, // 0122 ADD R5 K92 R1 - 0x00140B15, // 0123 ADD R5 R5 K21 - 0x7C0C0400, // 0124 CALL R3 2 - 0x8C0C0106, // 0125 GETMET R3 R0 K6 - 0x54160026, // 0126 LDINT R5 39 - 0x5C180200, // 0127 MOVE R6 R1 - 0x581C0007, // 0128 LDCONST R7 K7 - 0x7C0C0800, // 0129 CALL R3 4 - 0x80000000, // 012A RET 0 + 0x70020082, // 0093 JMP #0117 + 0x1C0C0343, // 0094 EQ R3 R1 K67 + 0x780E0005, // 0095 JMPF R3 #009C + 0x8C0C0113, // 0096 GETMET R3 R0 K19 + 0x5416000A, // 0097 LDINT R5 11 + 0x58180043, // 0098 LDCONST R6 K67 + 0x581C0014, // 0099 LDCONST R7 K20 + 0x7C0C0800, // 009A CALL R3 4 + 0x7002007A, // 009B JMP #0117 + 0x1C0C0344, // 009C EQ R3 R1 K68 + 0x780E0005, // 009D JMPF R3 #00A4 + 0x8C0C0113, // 009E GETMET R3 R0 K19 + 0x5416000B, // 009F LDINT R5 12 + 0x58180044, // 00A0 LDCONST R6 K68 + 0x581C0014, // 00A1 LDCONST R7 K20 + 0x7C0C0800, // 00A2 CALL R3 4 + 0x70020072, // 00A3 JMP #0117 + 0x1C0C0345, // 00A4 EQ R3 R1 K69 + 0x780E0005, // 00A5 JMPF R3 #00AC + 0x8C0C0113, // 00A6 GETMET R3 R0 K19 + 0x5416000C, // 00A7 LDINT R5 13 + 0x58180045, // 00A8 LDCONST R6 K69 + 0x581C0014, // 00A9 LDCONST R7 K20 + 0x7C0C0800, // 00AA CALL R3 4 + 0x7002006A, // 00AB JMP #0117 + 0x1C0C0346, // 00AC EQ R3 R1 K70 + 0x780E0005, // 00AD JMPF R3 #00B4 + 0x8C0C0113, // 00AE GETMET R3 R0 K19 + 0x5416000D, // 00AF LDINT R5 14 + 0x58180046, // 00B0 LDCONST R6 K70 + 0x581C0014, // 00B1 LDCONST R7 K20 + 0x7C0C0800, // 00B2 CALL R3 4 + 0x70020062, // 00B3 JMP #0117 + 0x1C0C0347, // 00B4 EQ R3 R1 K71 + 0x780E0005, // 00B5 JMPF R3 #00BC + 0x8C0C0113, // 00B6 GETMET R3 R0 K19 + 0x54160017, // 00B7 LDINT R5 24 + 0x58180047, // 00B8 LDCONST R6 K71 + 0x581C0014, // 00B9 LDCONST R7 K20 + 0x7C0C0800, // 00BA CALL R3 4 + 0x7002005A, // 00BB JMP #0117 + 0x1C0C0348, // 00BC EQ R3 R1 K72 + 0x780E0005, // 00BD JMPF R3 #00C4 + 0x8C0C0113, // 00BE GETMET R3 R0 K19 + 0x54160018, // 00BF LDINT R5 25 + 0x58180048, // 00C0 LDCONST R6 K72 + 0x581C0014, // 00C1 LDCONST R7 K20 + 0x7C0C0800, // 00C2 CALL R3 4 + 0x70020052, // 00C3 JMP #0117 + 0x1C0C0349, // 00C4 EQ R3 R1 K73 + 0x780E0005, // 00C5 JMPF R3 #00CC + 0x8C0C0113, // 00C6 GETMET R3 R0 K19 + 0x54160019, // 00C7 LDINT R5 26 + 0x58180049, // 00C8 LDCONST R6 K73 + 0x581C0014, // 00C9 LDCONST R7 K20 + 0x7C0C0800, // 00CA CALL R3 4 + 0x7002004A, // 00CB JMP #0117 + 0x1C0C034A, // 00CC EQ R3 R1 K74 + 0x780E0005, // 00CD JMPF R3 #00D4 + 0x8C0C0113, // 00CE GETMET R3 R0 K19 + 0x5416001A, // 00CF LDINT R5 27 + 0x5818004A, // 00D0 LDCONST R6 K74 + 0x581C0014, // 00D1 LDCONST R7 K20 + 0x7C0C0800, // 00D2 CALL R3 4 + 0x70020042, // 00D3 JMP #0117 + 0x1C0C034B, // 00D4 EQ R3 R1 K75 + 0x780E0005, // 00D5 JMPF R3 #00DC + 0x8C0C0113, // 00D6 GETMET R3 R0 K19 + 0x5416001B, // 00D7 LDINT R5 28 + 0x5818004B, // 00D8 LDCONST R6 K75 + 0x581C0014, // 00D9 LDCONST R7 K20 + 0x7C0C0800, // 00DA CALL R3 4 + 0x7002003A, // 00DB JMP #0117 + 0x1C0C034C, // 00DC EQ R3 R1 K76 + 0x780E0005, // 00DD JMPF R3 #00E4 + 0x8C0C0113, // 00DE GETMET R3 R0 K19 + 0x5416001C, // 00DF LDINT R5 29 + 0x5818004C, // 00E0 LDCONST R6 K76 + 0x581C0014, // 00E1 LDCONST R7 K20 + 0x7C0C0800, // 00E2 CALL R3 4 + 0x70020032, // 00E3 JMP #0117 + 0x1C0C034D, // 00E4 EQ R3 R1 K77 + 0x780E0005, // 00E5 JMPF R3 #00EC + 0x8C0C0113, // 00E6 GETMET R3 R0 K19 + 0x5416001D, // 00E7 LDINT R5 30 + 0x5818004D, // 00E8 LDCONST R6 K77 + 0x581C0014, // 00E9 LDCONST R7 K20 + 0x7C0C0800, // 00EA CALL R3 4 + 0x7002002A, // 00EB JMP #0117 + 0x1C0C034E, // 00EC EQ R3 R1 K78 + 0x780E0005, // 00ED JMPF R3 #00F4 + 0x8C0C0113, // 00EE GETMET R3 R0 K19 + 0x5416001E, // 00EF LDINT R5 31 + 0x5818004E, // 00F0 LDCONST R6 K78 + 0x581C0014, // 00F1 LDCONST R7 K20 + 0x7C0C0800, // 00F2 CALL R3 4 + 0x70020022, // 00F3 JMP #0117 + 0x1C0C034F, // 00F4 EQ R3 R1 K79 + 0x780E0005, // 00F5 JMPF R3 #00FC + 0x8C0C0113, // 00F6 GETMET R3 R0 K19 + 0x5416001F, // 00F7 LDINT R5 32 + 0x5818004F, // 00F8 LDCONST R6 K79 + 0x581C0014, // 00F9 LDCONST R7 K20 + 0x7C0C0800, // 00FA CALL R3 4 + 0x7002001A, // 00FB JMP #0117 + 0x1C0C0350, // 00FC EQ R3 R1 K80 + 0x780E0014, // 00FD JMPF R3 #0113 + 0x8C0C012F, // 00FE GETMET R3 R0 K47 + 0x58140050, // 00FF LDCONST R5 K80 + 0x7C0C0400, // 0100 CALL R3 2 + 0x780E000A, // 0101 JMPF R3 #010D + 0x8C0C0113, // 0102 GETMET R3 R0 K19 + 0x54160020, // 0103 LDINT R5 33 + 0x58180050, // 0104 LDCONST R6 K80 + 0x581C0014, // 0105 LDCONST R7 K20 + 0x7C0C0800, // 0106 CALL R3 4 + 0x8C0C0113, // 0107 GETMET R3 R0 K19 + 0x54160020, // 0108 LDINT R5 33 + 0x58180050, // 0109 LDCONST R6 K80 + 0x581C0014, // 010A LDCONST R7 K20 + 0x7C0C0800, // 010B CALL R3 4 + 0x70020004, // 010C JMP #0112 + 0x8C0C0113, // 010D GETMET R3 R0 K19 + 0x54160020, // 010E LDINT R5 33 + 0x58180050, // 010F LDCONST R6 K80 + 0x581C0014, // 0110 LDCONST R7 K20 + 0x7C0C0800, // 0111 CALL R3 4 + 0x70020003, // 0112 JMP #0117 + 0x8C0C0129, // 0113 GETMET R3 R0 K41 + 0x0016A201, // 0114 ADD R5 K81 R1 + 0x00140B1F, // 0115 ADD R5 R5 K31 + 0x7C0C0400, // 0116 CALL R3 2 + 0x80000000, // 0117 RET 0 }) ) ); @@ -17155,11 +17089,11 @@ be_local_closure(class_DSLLexer_scan_operator_or_delimiter, /* name */ /******************************************************************** -** Solidified function: match +** Solidified function: is_alpha ********************************************************************/ -be_local_closure(class_DSLLexer_match, /* name */ +be_local_closure(class_DSLLexer_is_alpha, /* name */ be_nested_proto( - 4, /* nstack */ + 3, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17168,27 +17102,152 @@ be_local_closure(class_DSLLexer_match, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(match), + be_str_weak(is_alpha), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C08011F, // 0000 GETMET R2 R0 K31 - 0x7C080200, // 0001 CALL R2 1 - 0x740A0004, // 0002 JMPT R2 #0008 - 0x8808011D, // 0003 GETMBR R2 R0 K29 - 0x880C011C, // 0004 GETMBR R3 R0 K28 - 0x94080403, // 0005 GETIDX R2 R2 R3 - 0x20080401, // 0006 NE R2 R2 R1 - 0x780A0001, // 0007 JMPF R2 #000A - 0x50080000, // 0008 LDBOOL R2 0 0 - 0x80040400, // 0009 RET 1 R2 - 0x8808011C, // 000A GETMBR R2 R0 K28 - 0x00080507, // 000B ADD R2 R2 K7 - 0x90023802, // 000C SETMBR R0 K28 R2 - 0x88080100, // 000D GETMBR R2 R0 K0 - 0x00080507, // 000E ADD R2 R2 K7 - 0x90020002, // 000F SETMBR R0 K0 R2 - 0x50080200, // 0010 LDBOOL R2 1 0 - 0x80040400, // 0011 RET 1 R2 + ( &(const binstruction[11]) { /* code */ + 0x28080352, // 0000 GE R2 R1 K82 + 0x780A0001, // 0001 JMPF R2 #0004 + 0x18080353, // 0002 LE R2 R1 K83 + 0x740A0004, // 0003 JMPT R2 #0009 + 0x28080354, // 0004 GE R2 R1 K84 + 0x780A0001, // 0005 JMPF R2 #0008 + 0x18080355, // 0006 LE R2 R1 K85 + 0x740A0000, // 0007 JMPT R2 #0009 + 0x50080001, // 0008 LDBOOL R2 0 1 + 0x50080200, // 0009 LDBOOL R2 1 0 + 0x80040400, // 000A RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_string +********************************************************************/ +be_local_closure(class_DSLLexer_scan_string, /* name */ + be_nested_proto( + 10, /* 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_DSLLexer, /* shared constants */ + be_str_weak(scan_string), + &be_const_str_solidified, + ( &(const binstruction[72]) { /* code */ + 0x88080103, // 0000 GETMBR R2 R0 K3 + 0x04080514, // 0001 SUB R2 R2 K20 + 0x880C010E, // 0002 GETMBR R3 R0 K14 + 0x040C0714, // 0003 SUB R3 R3 K20 + 0x5810000B, // 0004 LDCONST R4 K11 + 0x8C140127, // 0005 GETMET R5 R0 K39 + 0x7C140200, // 0006 CALL R5 1 + 0x7416002F, // 0007 JMPT R5 #0038 + 0x8C140107, // 0008 GETMET R5 R0 K7 + 0x7C140200, // 0009 CALL R5 1 + 0x20140A01, // 000A NE R5 R5 R1 + 0x7816002B, // 000B JMPF R5 #0038 + 0x8C140106, // 000C GETMET R5 R0 K6 + 0x7C140200, // 000D CALL R5 1 + 0x1C180B56, // 000E EQ R6 R5 K86 + 0x781A001D, // 000F JMPF R6 #002E + 0x8C180127, // 0010 GETMET R6 R0 K39 + 0x7C180200, // 0011 CALL R6 1 + 0x741A0018, // 0012 JMPT R6 #002C + 0x8C180106, // 0013 GETMET R6 R0 K6 + 0x7C180200, // 0014 CALL R6 1 + 0x1C1C0D57, // 0015 EQ R7 R6 K87 + 0x781E0001, // 0016 JMPF R7 #0019 + 0x00100912, // 0017 ADD R4 R4 K18 + 0x70020011, // 0018 JMP #002B + 0x1C1C0D58, // 0019 EQ R7 R6 K88 + 0x781E0001, // 001A JMPF R7 #001D + 0x00100910, // 001B ADD R4 R4 K16 + 0x7002000D, // 001C JMP #002B + 0x1C1C0D59, // 001D EQ R7 R6 K89 + 0x781E0001, // 001E JMPF R7 #0021 + 0x00100911, // 001F ADD R4 R4 K17 + 0x70020009, // 0020 JMP #002B + 0x1C1C0D56, // 0021 EQ R7 R6 K86 + 0x781E0001, // 0022 JMPF R7 #0025 + 0x00100956, // 0023 ADD R4 R4 K86 + 0x70020005, // 0024 JMP #002B + 0x1C1C0C01, // 0025 EQ R7 R6 R1 + 0x781E0001, // 0026 JMPF R7 #0029 + 0x00100801, // 0027 ADD R4 R4 R1 + 0x70020001, // 0028 JMP #002B + 0x00100956, // 0029 ADD R4 R4 K86 + 0x00100806, // 002A ADD R4 R4 R6 + 0x70020000, // 002B JMP #002D + 0x00100956, // 002C ADD R4 R4 K86 + 0x70020008, // 002D JMP #0037 + 0x1C180B12, // 002E EQ R6 R5 K18 + 0x781A0005, // 002F JMPF R6 #0036 + 0x88180115, // 0030 GETMBR R6 R0 K21 + 0x00180D14, // 0031 ADD R6 R6 K20 + 0x90022A06, // 0032 SETMBR R0 K21 R6 + 0x90021D14, // 0033 SETMBR R0 K14 K20 + 0x00100805, // 0034 ADD R4 R4 R5 + 0x70020000, // 0035 JMP #0037 + 0x00100805, // 0036 ADD R4 R4 R5 + 0x7001FFCC, // 0037 JMP #0005 + 0x8C140127, // 0038 GETMET R5 R0 K39 + 0x7C140200, // 0039 CALL R5 1 + 0x78160003, // 003A JMPF R5 #003F + 0x8C140129, // 003B GETMET R5 R0 K41 + 0x581C005A, // 003C LDCONST R7 K90 + 0x7C140400, // 003D CALL R5 2 + 0x70020007, // 003E JMP #0047 + 0x8C140106, // 003F GETMET R5 R0 K6 + 0x7C140200, // 0040 CALL R5 1 + 0x8C140113, // 0041 GETMET R5 R0 K19 + 0x581C005B, // 0042 LDCONST R7 K91 + 0x5C200800, // 0043 MOVE R8 R4 + 0x88240103, // 0044 GETMBR R9 R0 K3 + 0x04241202, // 0045 SUB R9 R9 R2 + 0x7C140800, // 0046 CALL R5 4 + 0x80000000, // 0047 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: reset +********************************************************************/ +be_local_closure(class_DSLLexer_reset, /* 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_DSLLexer, /* shared constants */ + be_str_weak(reset), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x5C080200, // 0003 MOVE R2 R1 + 0x70020000, // 0004 JMP #0006 + 0x5808000B, // 0005 LDCONST R2 K11 + 0x90020402, // 0006 SETMBR R0 K2 R2 + 0x90020726, // 0007 SETMBR R0 K3 K38 + 0x90022B14, // 0008 SETMBR R0 K21 K20 + 0x90021D14, // 0009 SETMBR R0 K14 K20 + 0x60080012, // 000A GETGBL R2 G18 + 0x7C080000, // 000B CALL R2 0 + 0x9002B802, // 000C SETMBR R0 K92 R2 + 0x80000000, // 000D RET 0 }) ) ); @@ -17212,17 +17271,17 @@ be_local_closure(class_DSLLexer_peek_next, /* name */ be_str_weak(peek_next), &be_const_str_solidified, ( &(const binstruction[13]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x00040307, // 0001 ADD R1 R1 K7 + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x00040314, // 0001 ADD R1 R1 K20 0x6008000C, // 0002 GETGBL R2 G12 - 0x880C011D, // 0003 GETMBR R3 R0 K29 + 0x880C0102, // 0003 GETMBR R3 R0 K2 0x7C080200, // 0004 CALL R2 1 0x28040202, // 0005 GE R1 R1 R2 0x78060000, // 0006 JMPF R1 #0008 - 0x80063C00, // 0007 RET 1 K30 - 0x8804011C, // 0008 GETMBR R1 R0 K28 - 0x00040307, // 0009 ADD R1 R1 K7 - 0x8808011D, // 000A GETMBR R2 R0 K29 + 0x80061600, // 0007 RET 1 K11 + 0x88040103, // 0008 GETMBR R1 R0 K3 + 0x00040314, // 0009 ADD R1 R1 K20 + 0x88080102, // 000A GETMBR R2 R0 K2 0x94040401, // 000B GETIDX R1 R2 R1 0x80040200, // 000C RET 1 R1 }) @@ -17248,7 +17307,7 @@ be_local_closure(class_DSLLexer_is_digit, /* name */ be_str_weak(is_digit), &be_const_str_solidified, ( &(const binstruction[ 7]) { /* code */ - 0x2808030B, // 0000 GE R2 R1 K11 + 0x28080318, // 0000 GE R2 R1 K24 0x780A0001, // 0001 JMPF R2 #0004 0x1808035D, // 0002 LE R2 R1 K93 0x740A0000, // 0003 JMPT R2 #0005 @@ -17262,77 +17321,53 @@ be_local_closure(class_DSLLexer_is_digit, /* name */ /******************************************************************** -** Solidified function: tokenize_with_errors +** Solidified function: tokenize ********************************************************************/ -be_local_closure(class_DSLLexer_tokenize_with_errors, /* name */ +be_local_closure(class_DSLLexer_tokenize, /* 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_DSLLexer, /* shared constants */ + be_str_weak(tokenize), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x60040012, // 0000 GETGBL R1 G18 + 0x7C040000, // 0001 CALL R1 0 + 0x9002B801, // 0002 SETMBR R0 K92 R1 + 0x90020726, // 0003 SETMBR R0 K3 K38 + 0x90022B14, // 0004 SETMBR R0 K21 K20 + 0x90021D14, // 0005 SETMBR R0 K14 K20 + 0x8C040127, // 0006 GETMET R1 R0 K39 + 0x7C040200, // 0007 CALL R1 1 + 0x74060002, // 0008 JMPT R1 #000C + 0x8C04015E, // 0009 GETMET R1 R0 K94 + 0x7C040200, // 000A CALL R1 1 + 0x7001FFF9, // 000B JMP #0006 + 0x8C040113, // 000C GETMET R1 R0 K19 + 0x540E0025, // 000D LDINT R3 38 + 0x5810000B, // 000E LDCONST R4 K11 + 0x58140026, // 000F LDCONST R5 K38 + 0x7C040800, // 0010 CALL R1 4 + 0x8804015C, // 0011 GETMBR R1 R0 K92 + 0x80040200, // 0012 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_hex_digit +********************************************************************/ +be_local_closure(class_DSLLexer_is_hex_digit, /* 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_DSLLexer, /* shared constants */ - be_str_weak(tokenize_with_errors), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C04015E, // 0000 GETMET R1 R0 K94 - 0x7C040200, // 0001 CALL R1 1 - 0x60080013, // 0002 GETGBL R2 G19 - 0x7C080000, // 0003 CALL R2 0 - 0x980A5201, // 0004 SETIDX R2 K41 R1 - 0x880C012E, // 0005 GETMBR R3 R0 K46 - 0x980A5C03, // 0006 SETIDX R2 K46 R3 - 0x8C0C012B, // 0007 GETMET R3 R0 K43 - 0x7C0C0200, // 0008 CALL R3 1 - 0x780E0000, // 0009 JMPF R3 #000B - 0x500C0001, // 000A LDBOOL R3 0 1 - 0x500C0200, // 000B LDBOOL R3 1 0 - 0x980ABE03, // 000C SETIDX R2 K95 R3 - 0x80040400, // 000D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: at_end -********************************************************************/ -be_local_closure(class_DSLLexer_at_end, /* 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_DSLLexer, /* shared constants */ - be_str_weak(at_end), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C011D, // 0002 GETMBR R3 R0 K29 - 0x7C080200, // 0003 CALL R2 1 - 0x28040202, // 0004 GE R1 R1 R2 - 0x80040200, // 0005 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: reset -********************************************************************/ -be_local_closure(class_DSLLexer_reset, /* name */ - be_nested_proto( - 3, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17341,26 +17376,24 @@ be_local_closure(class_DSLLexer_reset, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(reset), + be_str_weak(is_hex_digit), &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x5C080200, // 0003 MOVE R2 R1 - 0x70020000, // 0004 JMP #0006 - 0x5808001E, // 0005 LDCONST R2 K30 - 0x90023A02, // 0006 SETMBR R0 K29 R2 - 0x90023939, // 0007 SETMBR R0 K28 K57 - 0x90021107, // 0008 SETMBR R0 K8 K7 - 0x90020107, // 0009 SETMBR R0 K0 K7 - 0x60080012, // 000A GETGBL R2 G18 - 0x7C080000, // 000B CALL R2 0 - 0x90025202, // 000C SETMBR R0 K41 R2 - 0x60080012, // 000D GETGBL R2 G18 - 0x7C080000, // 000E CALL R2 0 - 0x90025C02, // 000F SETMBR R0 K46 R2 - 0x80000000, // 0010 RET 0 + ( &(const binstruction[15]) { /* code */ + 0x8C08010D, // 0000 GETMET R2 R0 K13 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x740A0008, // 0003 JMPT R2 #000D + 0x28080352, // 0004 GE R2 R1 K82 + 0x780A0001, // 0005 JMPF R2 #0008 + 0x1808035F, // 0006 LE R2 R1 K95 + 0x740A0004, // 0007 JMPT R2 #000D + 0x28080354, // 0008 GE R2 R1 K84 + 0x780A0001, // 0009 JMPF R2 #000C + 0x18080360, // 000A LE R2 R1 K96 + 0x740A0000, // 000B JMPT R2 #000D + 0x50080001, // 000C LDBOOL R2 0 1 + 0x50080200, // 000D LDBOOL R2 1 0 + 0x80040400, // 000E RET 1 R2 }) ) ); @@ -17368,11 +17401,11 @@ be_local_closure(class_DSLLexer_reset, /* name */ /******************************************************************** -** Solidified function: scan_variable_reference +** Solidified function: scan_comment ********************************************************************/ -be_local_closure(class_DSLLexer_scan_variable_reference, /* name */ +be_local_closure(class_DSLLexer_scan_comment, /* name */ be_nested_proto( - 10, /* nstack */ + 9, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17381,65 +17414,35 @@ be_local_closure(class_DSLLexer_scan_variable_reference, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_variable_reference), + be_str_weak(scan_comment), &be_const_str_solidified, - ( &(const binstruction[56]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x04040307, // 0001 SUB R1 R1 K7 - 0x88080100, // 0002 GETMBR R2 R0 K0 - 0x04080507, // 0003 SUB R2 R2 K7 - 0x8C0C011F, // 0004 GETMET R3 R0 K31 + ( &(const binstruction[26]) { /* code */ + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x04040314, // 0001 SUB R1 R1 K20 + 0x8808010E, // 0002 GETMBR R2 R0 K14 + 0x04080514, // 0003 SUB R2 R2 K20 + 0x8C0C0127, // 0004 GETMET R3 R0 K39 0x7C0C0200, // 0005 CALL R3 1 - 0x740E000B, // 0006 JMPT R3 #0013 - 0x8C0C010F, // 0007 GETMET R3 R0 K15 - 0x8C14010C, // 0008 GETMET R5 R0 K12 - 0x7C140200, // 0009 CALL R5 1 - 0x7C0C0400, // 000A CALL R3 2 - 0x740E0004, // 000B JMPT R3 #0011 - 0x8C0C010C, // 000C GETMET R3 R0 K12 - 0x7C0C0200, // 000D CALL R3 1 - 0x1C0C0710, // 000E EQ R3 R3 K16 - 0x740E0000, // 000F JMPT R3 #0011 - 0x500C0001, // 0010 LDBOOL R3 0 1 - 0x500C0200, // 0011 LDBOOL R3 1 0 - 0x740E0008, // 0012 JMPT R3 #001C - 0x8C0C0124, // 0013 GETMET R3 R0 K36 - 0x58140060, // 0014 LDCONST R5 K96 - 0x7C0C0400, // 0015 CALL R3 2 - 0x8C0C0106, // 0016 GETMET R3 R0 K6 - 0x54160026, // 0017 LDINT R5 39 - 0x58180019, // 0018 LDCONST R6 K25 - 0x581C0007, // 0019 LDCONST R7 K7 - 0x7C0C0800, // 001A CALL R3 4 - 0x80000600, // 001B RET 0 - 0x8C0C011F, // 001C GETMET R3 R0 K31 - 0x7C0C0200, // 001D CALL R3 1 - 0x740E000B, // 001E JMPT R3 #002B - 0x8C0C0161, // 001F GETMET R3 R0 K97 - 0x8C14010C, // 0020 GETMET R5 R0 K12 - 0x7C140200, // 0021 CALL R5 1 - 0x7C0C0400, // 0022 CALL R3 2 - 0x740E0003, // 0023 JMPT R3 #0028 - 0x8C0C010C, // 0024 GETMET R3 R0 K12 - 0x7C0C0200, // 0025 CALL R3 1 - 0x1C0C0710, // 0026 EQ R3 R3 K16 - 0x780E0002, // 0027 JMPF R3 #002B - 0x8C0C0101, // 0028 GETMET R3 R0 K1 - 0x7C0C0200, // 0029 CALL R3 1 - 0x7001FFF0, // 002A JMP #001C - 0x880C011C, // 002B GETMBR R3 R0 K28 - 0x040C0707, // 002C SUB R3 R3 K7 - 0x400C0203, // 002D CONNECT R3 R1 R3 - 0x8810011D, // 002E GETMBR R4 R0 K29 - 0x940C0803, // 002F GETIDX R3 R4 R3 - 0x8C100106, // 0030 GETMET R4 R0 K6 - 0x541A0023, // 0031 LDINT R6 36 - 0x5C1C0600, // 0032 MOVE R7 R3 - 0x6020000C, // 0033 GETGBL R8 G12 - 0x5C240600, // 0034 MOVE R9 R3 - 0x7C200200, // 0035 CALL R8 1 - 0x7C100800, // 0036 CALL R4 4 - 0x80000000, // 0037 RET 0 + 0x740E0006, // 0006 JMPT R3 #000E + 0x8C0C0107, // 0007 GETMET R3 R0 K7 + 0x7C0C0200, // 0008 CALL R3 1 + 0x200C0712, // 0009 NE R3 R3 K18 + 0x780E0002, // 000A JMPF R3 #000E + 0x8C0C0106, // 000B GETMET R3 R0 K6 + 0x7C0C0200, // 000C CALL R3 1 + 0x7001FFF5, // 000D JMP #0004 + 0x880C0103, // 000E GETMBR R3 R0 K3 + 0x040C0714, // 000F SUB R3 R3 K20 + 0x400C0203, // 0010 CONNECT R3 R1 R3 + 0x88100102, // 0011 GETMBR R4 R0 K2 + 0x940C0803, // 0012 GETIDX R3 R4 R3 + 0x8C100113, // 0013 GETMET R4 R0 K19 + 0x541A0024, // 0014 LDINT R6 37 + 0x5C1C0600, // 0015 MOVE R7 R3 + 0x88200103, // 0016 GETMBR R8 R0 K3 + 0x04201001, // 0017 SUB R8 R8 R1 + 0x7C100800, // 0018 CALL R4 4 + 0x80000000, // 0019 RET 0 }) ) ); @@ -17463,34 +17466,34 @@ be_local_closure(class_DSLLexer_check_time_suffix, /* name */ be_str_weak(check_time_suffix), &be_const_str_solidified, ( &(const binstruction[33]) { /* code */ - 0xA406C400, // 0000 IMPORT R1 K98 - 0x8C08011F, // 0001 GETMET R2 R0 K31 + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080127, // 0001 GETMET R2 R0 K39 0x7C080200, // 0002 CALL R2 1 0x780A0001, // 0003 JMPF R2 #0006 0x50080000, // 0004 LDBOOL R2 0 0 0x80040400, // 0005 RET 1 R2 - 0x8808011C, // 0006 GETMBR R2 R0 K28 - 0x40080563, // 0007 CONNECT R2 R2 K99 - 0x880C011D, // 0008 GETMBR R3 R0 K29 + 0x88080103, // 0006 GETMBR R2 R0 K3 + 0x40080504, // 0007 CONNECT R2 R2 K4 + 0x880C0102, // 0008 GETMBR R3 R0 K2 0x94080602, // 0009 GETIDX R2 R3 R2 - 0x8C0C0364, // 000A GETMET R3 R1 K100 + 0x8C0C0301, // 000A GETMET R3 R1 K1 0x5C140400, // 000B MOVE R5 R2 - 0x58180065, // 000C LDCONST R6 K101 + 0x58180005, // 000C LDCONST R6 K5 0x7C0C0600, // 000D CALL R3 3 0x740E000F, // 000E JMPT R3 #001F - 0x8C0C0364, // 000F GETMET R3 R1 K100 + 0x8C0C0301, // 000F GETMET R3 R1 K1 0x5C140400, // 0010 MOVE R5 R2 - 0x58180066, // 0011 LDCONST R6 K102 + 0x58180008, // 0011 LDCONST R6 K8 0x7C0C0600, // 0012 CALL R3 3 0x740E000A, // 0013 JMPT R3 #001F - 0x8C0C0364, // 0014 GETMET R3 R1 K100 + 0x8C0C0301, // 0014 GETMET R3 R1 K1 0x5C140400, // 0015 MOVE R5 R2 - 0x58180067, // 0016 LDCONST R6 K103 + 0x58180009, // 0016 LDCONST R6 K9 0x7C0C0600, // 0017 CALL R3 3 0x740E0005, // 0018 JMPT R3 #001F - 0x8C0C0364, // 0019 GETMET R3 R1 K100 + 0x8C0C0301, // 0019 GETMET R3 R1 K1 0x5C140400, // 001A MOVE R5 R2 - 0x58180068, // 001B LDCONST R6 K104 + 0x5818000A, // 001B LDCONST R6 K10 0x7C0C0600, // 001C CALL R3 3 0x740E0000, // 001D JMPT R3 #001F 0x500C0001, // 001E LDBOOL R3 0 1 @@ -17519,68 +17522,68 @@ be_local_closure(class_DSLLexer_scan_number, /* name */ be_str_weak(scan_number), &be_const_str_solidified, ( &(const binstruction[113]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x04040307, // 0001 SUB R1 R1 K7 - 0x88080100, // 0002 GETMBR R2 R0 K0 - 0x04080507, // 0003 SUB R2 R2 K7 + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x04040314, // 0001 SUB R1 R1 K20 + 0x8808010E, // 0002 GETMBR R2 R0 K14 + 0x04080514, // 0003 SUB R2 R2 K20 0x500C0000, // 0004 LDBOOL R3 0 0 - 0x8C10011F, // 0005 GETMET R4 R0 K31 + 0x8C100127, // 0005 GETMET R4 R0 K39 0x7C100200, // 0006 CALL R4 1 0x74120007, // 0007 JMPT R4 #0010 - 0x8C100112, // 0008 GETMET R4 R0 K18 - 0x8C18010C, // 0009 GETMET R6 R0 K12 + 0x8C10010D, // 0008 GETMET R4 R0 K13 + 0x8C180107, // 0009 GETMET R6 R0 K7 0x7C180200, // 000A CALL R6 1 0x7C100400, // 000B CALL R4 2 0x78120002, // 000C JMPF R4 #0010 - 0x8C100101, // 000D GETMET R4 R0 K1 + 0x8C100106, // 000D GETMET R4 R0 K6 0x7C100200, // 000E CALL R4 1 0x7001FFF4, // 000F JMP #0005 - 0x8C10011F, // 0010 GETMET R4 R0 K31 + 0x8C100127, // 0010 GETMET R4 R0 K39 0x7C100200, // 0011 CALL R4 1 0x7412001F, // 0012 JMPT R4 #0033 - 0x8C10010C, // 0013 GETMET R4 R0 K12 + 0x8C100107, // 0013 GETMET R4 R0 K7 0x7C100200, // 0014 CALL R4 1 - 0x1C10095B, // 0015 EQ R4 R4 K91 + 0x1C100950, // 0015 EQ R4 R4 K80 0x7812001B, // 0016 JMPF R4 #0033 - 0x8810011C, // 0017 GETMBR R4 R0 K28 - 0x00100907, // 0018 ADD R4 R4 K7 + 0x88100103, // 0017 GETMBR R4 R0 K3 + 0x00100914, // 0018 ADD R4 R4 K20 0x6014000C, // 0019 GETGBL R5 G12 - 0x8818011D, // 001A GETMBR R6 R0 K29 + 0x88180102, // 001A GETMBR R6 R0 K2 0x7C140200, // 001B CALL R5 1 0x14100805, // 001C LT R4 R4 R5 0x78120014, // 001D JMPF R4 #0033 - 0x8C100112, // 001E GETMET R4 R0 K18 - 0x8818011C, // 001F GETMBR R6 R0 K28 - 0x00180D07, // 0020 ADD R6 R6 K7 - 0x881C011D, // 0021 GETMBR R7 R0 K29 + 0x8C10010D, // 001E GETMET R4 R0 K13 + 0x88180103, // 001F GETMBR R6 R0 K3 + 0x00180D14, // 0020 ADD R6 R6 K20 + 0x881C0102, // 0021 GETMBR R7 R0 K2 0x94180E06, // 0022 GETIDX R6 R7 R6 0x7C100400, // 0023 CALL R4 2 0x7812000D, // 0024 JMPF R4 #0033 0x500C0200, // 0025 LDBOOL R3 1 0 - 0x8C100101, // 0026 GETMET R4 R0 K1 + 0x8C100106, // 0026 GETMET R4 R0 K6 0x7C100200, // 0027 CALL R4 1 - 0x8C10011F, // 0028 GETMET R4 R0 K31 + 0x8C100127, // 0028 GETMET R4 R0 K39 0x7C100200, // 0029 CALL R4 1 0x74120007, // 002A JMPT R4 #0033 - 0x8C100112, // 002B GETMET R4 R0 K18 - 0x8C18010C, // 002C GETMET R6 R0 K12 + 0x8C10010D, // 002B GETMET R4 R0 K13 + 0x8C180107, // 002C GETMET R6 R0 K7 0x7C180200, // 002D CALL R6 1 0x7C100400, // 002E CALL R4 2 0x78120002, // 002F JMPF R4 #0033 - 0x8C100101, // 0030 GETMET R4 R0 K1 + 0x8C100106, // 0030 GETMET R4 R0 K6 0x7C100200, // 0031 CALL R4 1 0x7001FFF4, // 0032 JMP #0028 - 0x8810011C, // 0033 GETMBR R4 R0 K28 - 0x04100907, // 0034 SUB R4 R4 K7 + 0x88100103, // 0033 GETMBR R4 R0 K3 + 0x04100914, // 0034 SUB R4 R4 K20 0x40100204, // 0035 CONNECT R4 R1 R4 - 0x8814011D, // 0036 GETMBR R5 R0 K29 + 0x88140102, // 0036 GETMBR R5 R0 K2 0x94100A04, // 0037 GETIDX R4 R5 R4 - 0x8C140169, // 0038 GETMET R5 R0 K105 + 0x8C140161, // 0038 GETMET R5 R0 K97 0x7C140200, // 0039 CALL R5 1 0x78160009, // 003A JMPF R5 #0045 - 0x8C14016A, // 003B GETMET R5 R0 K106 + 0x8C140162, // 003B GETMET R5 R0 K98 0x7C140200, // 003C CALL R5 1 - 0x8C180106, // 003D GETMET R6 R0 K6 + 0x8C180113, // 003D GETMET R6 R0 K19 0x54220004, // 003E LDINT R8 5 0x00240805, // 003F ADD R9 R4 R5 0x6028000C, // 0040 GETGBL R10 G12 @@ -17588,44 +17591,44 @@ be_local_closure(class_DSLLexer_scan_number, /* name */ 0x7C280200, // 0042 CALL R10 1 0x7C180800, // 0043 CALL R6 4 0x7002002A, // 0044 JMP #0070 - 0x8C14011F, // 0045 GETMET R5 R0 K31 + 0x8C140127, // 0045 GETMET R5 R0 K39 0x7C140200, // 0046 CALL R5 1 0x7416000E, // 0047 JMPT R5 #0057 - 0x8C14010C, // 0048 GETMET R5 R0 K12 + 0x8C140107, // 0048 GETMET R5 R0 K7 0x7C140200, // 0049 CALL R5 1 - 0x1C140B51, // 004A EQ R5 R5 K81 + 0x1C140B45, // 004A EQ R5 R5 K69 0x7816000A, // 004B JMPF R5 #0057 - 0x8C140101, // 004C GETMET R5 R0 K1 + 0x8C140106, // 004C GETMET R5 R0 K6 0x7C140200, // 004D CALL R5 1 - 0x8C140106, // 004E GETMET R5 R0 K6 + 0x8C140113, // 004E GETMET R5 R0 K19 0x541E0005, // 004F LDINT R7 6 - 0x00200951, // 0050 ADD R8 R4 K81 + 0x00200945, // 0050 ADD R8 R4 K69 0x6024000C, // 0051 GETGBL R9 G12 0x5C280800, // 0052 MOVE R10 R4 0x7C240200, // 0053 CALL R9 1 - 0x00241307, // 0054 ADD R9 R9 K7 + 0x00241314, // 0054 ADD R9 R9 K20 0x7C140800, // 0055 CALL R5 4 0x70020018, // 0056 JMP #0070 - 0x8C14011F, // 0057 GETMET R5 R0 K31 + 0x8C140127, // 0057 GETMET R5 R0 K39 0x7C140200, // 0058 CALL R5 1 0x7416000E, // 0059 JMPT R5 #0069 - 0x8C14010C, // 005A GETMET R5 R0 K12 + 0x8C140107, // 005A GETMET R5 R0 K7 0x7C140200, // 005B CALL R5 1 - 0x1C140B0D, // 005C EQ R5 R5 K13 + 0x1C140B19, // 005C EQ R5 R5 K25 0x7816000A, // 005D JMPF R5 #0069 - 0x8C140101, // 005E GETMET R5 R0 K1 + 0x8C140106, // 005E GETMET R5 R0 K6 0x7C140200, // 005F CALL R5 1 - 0x8C140106, // 0060 GETMET R5 R0 K6 + 0x8C140113, // 0060 GETMET R5 R0 K19 0x541E0006, // 0061 LDINT R7 7 - 0x0020090D, // 0062 ADD R8 R4 K13 + 0x00200919, // 0062 ADD R8 R4 K25 0x6024000C, // 0063 GETGBL R9 G12 0x5C280800, // 0064 MOVE R10 R4 0x7C240200, // 0065 CALL R9 1 - 0x00241307, // 0066 ADD R9 R9 K7 + 0x00241314, // 0066 ADD R9 R9 K20 0x7C140800, // 0067 CALL R5 4 0x70020006, // 0068 JMP #0070 - 0x8C140106, // 0069 GETMET R5 R0 K6 - 0x581C003D, // 006A LDCONST R7 K61 + 0x8C140113, // 0069 GETMET R5 R0 K19 + 0x581C0031, // 006A LDCONST R7 K49 0x5C200800, // 006B MOVE R8 R4 0x6024000C, // 006C GETGBL R9 G12 0x5C280800, // 006D MOVE R10 R4 @@ -17639,9 +17642,9 @@ be_local_closure(class_DSLLexer_scan_number, /* name */ /******************************************************************** -** Solidified function: is_alnum +** Solidified function: error ********************************************************************/ -be_local_closure(class_DSLLexer_is_alnum, /* name */ +be_local_closure(class_DSLLexer_error, /* name */ be_nested_proto( 5, /* nstack */ 2, /* argc */ @@ -17652,20 +17655,22 @@ be_local_closure(class_DSLLexer_is_alnum, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(is_alnum), + be_str_weak(error), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C08010F, // 0000 GETMET R2 R0 K15 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x740A0004, // 0003 JMPT R2 #0009 - 0x8C080112, // 0004 GETMET R2 R0 K18 - 0x5C100200, // 0005 MOVE R4 R1 - 0x7C080400, // 0006 CALL R2 2 - 0x740A0000, // 0007 JMPT R2 #0009 - 0x50080001, // 0008 LDBOOL R2 0 1 - 0x50080200, // 0009 LDBOOL R2 1 0 - 0x80040400, // 000A RET 1 R2 + ( &(const binstruction[13]) { /* code */ + 0x60080008, // 0000 GETGBL R2 G8 + 0x880C0115, // 0001 GETMBR R3 R0 K21 + 0x7C080200, // 0002 CALL R2 1 + 0x000AC602, // 0003 ADD R2 K99 R2 + 0x0008054F, // 0004 ADD R2 R2 K79 + 0x600C0008, // 0005 GETGBL R3 G8 + 0x8810010E, // 0006 GETMBR R4 R0 K14 + 0x7C0C0200, // 0007 CALL R3 1 + 0x00080403, // 0008 ADD R2 R2 R3 + 0x00080564, // 0009 ADD R2 R2 K100 + 0x00080401, // 000A ADD R2 R2 R1 + 0xB006CA02, // 000B RAISE 1 K101 R2 + 0x80000000, // 000C RET 0 }) ) ); @@ -17673,11 +17678,181 @@ be_local_closure(class_DSLLexer_is_alnum, /* name */ /******************************************************************** -** Solidified function: has_errors +** Solidified function: scan_triple_quoted_string ********************************************************************/ -be_local_closure(class_DSLLexer_has_errors, /* name */ +be_local_closure(class_DSLLexer_scan_triple_quoted_string, /* name */ + be_nested_proto( + 10, /* 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_DSLLexer, /* shared constants */ + be_str_weak(scan_triple_quoted_string), + &be_const_str_solidified, + ( &(const binstruction[69]) { /* code */ + 0x88080103, // 0000 GETMBR R2 R0 K3 + 0x04080514, // 0001 SUB R2 R2 K20 + 0x880C010E, // 0002 GETMBR R3 R0 K14 + 0x040C0714, // 0003 SUB R3 R3 K20 + 0x5810000B, // 0004 LDCONST R4 K11 + 0x8C140106, // 0005 GETMET R5 R0 K6 + 0x7C140200, // 0006 CALL R5 1 + 0x8C140106, // 0007 GETMET R5 R0 K6 + 0x7C140200, // 0008 CALL R5 1 + 0x8C140127, // 0009 GETMET R5 R0 K39 + 0x7C140200, // 000A CALL R5 1 + 0x7416001F, // 000B JMPT R5 #002C + 0x8C140107, // 000C GETMET R5 R0 K7 + 0x7C140200, // 000D CALL R5 1 + 0x1C180A01, // 000E EQ R6 R5 R1 + 0x781A0010, // 000F JMPF R6 #0021 + 0x8C180120, // 0010 GETMET R6 R0 K32 + 0x58200014, // 0011 LDCONST R8 K20 + 0x7C180400, // 0012 CALL R6 2 + 0x1C180C01, // 0013 EQ R6 R6 R1 + 0x781A000B, // 0014 JMPF R6 #0021 + 0x8C180120, // 0015 GETMET R6 R0 K32 + 0x58200031, // 0016 LDCONST R8 K49 + 0x7C180400, // 0017 CALL R6 2 + 0x1C180C01, // 0018 EQ R6 R6 R1 + 0x781A0006, // 0019 JMPF R6 #0021 + 0x8C180106, // 001A GETMET R6 R0 K6 + 0x7C180200, // 001B CALL R6 1 + 0x8C180106, // 001C GETMET R6 R0 K6 + 0x7C180200, // 001D CALL R6 1 + 0x8C180106, // 001E GETMET R6 R0 K6 + 0x7C180200, // 001F CALL R6 1 + 0x7002000A, // 0020 JMP #002C + 0x8C180106, // 0021 GETMET R6 R0 K6 + 0x7C180200, // 0022 CALL R6 1 + 0x5C140C00, // 0023 MOVE R5 R6 + 0x1C180B12, // 0024 EQ R6 R5 K18 + 0x781A0003, // 0025 JMPF R6 #002A + 0x88180115, // 0026 GETMBR R6 R0 K21 + 0x00180D14, // 0027 ADD R6 R6 K20 + 0x90022A06, // 0028 SETMBR R0 K21 R6 + 0x90021D14, // 0029 SETMBR R0 K14 K20 + 0x00100805, // 002A ADD R4 R4 R5 + 0x7001FFDC, // 002B JMP #0009 + 0x8C140127, // 002C GETMET R5 R0 K39 + 0x7C140200, // 002D CALL R5 1 + 0x7816000E, // 002E JMPF R5 #003E + 0x88140103, // 002F GETMBR R5 R0 K3 + 0x04140B5B, // 0030 SUB R5 R5 K91 + 0x88180103, // 0031 GETMBR R6 R0 K3 + 0x04180D14, // 0032 SUB R6 R6 K20 + 0x40140A06, // 0033 CONNECT R5 R5 R6 + 0x88180102, // 0034 GETMBR R6 R0 K2 + 0x94140C05, // 0035 GETIDX R5 R6 R5 + 0x00180201, // 0036 ADD R6 R1 R1 + 0x00180C01, // 0037 ADD R6 R6 R1 + 0x1C140A06, // 0038 EQ R5 R5 R6 + 0x74160003, // 0039 JMPT R5 #003E + 0x8C140129, // 003A GETMET R5 R0 K41 + 0x581C0066, // 003B LDCONST R7 K102 + 0x7C140400, // 003C CALL R5 2 + 0x70020005, // 003D JMP #0044 + 0x8C140113, // 003E GETMET R5 R0 K19 + 0x581C005B, // 003F LDCONST R7 K91 + 0x5C200800, // 0040 MOVE R8 R4 + 0x88240103, // 0041 GETMBR R9 R0 K3 + 0x04241202, // 0042 SUB R9 R9 R2 + 0x7C140800, // 0043 CALL R5 4 + 0x80000000, // 0044 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_DSLLexer_init, /* 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_DSLLexer, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x5C080200, // 0003 MOVE R2 R1 + 0x70020000, // 0004 JMP #0006 + 0x5808000B, // 0005 LDCONST R2 K11 + 0x90020402, // 0006 SETMBR R0 K2 R2 + 0x90020726, // 0007 SETMBR R0 K3 K38 + 0x90022B14, // 0008 SETMBR R0 K21 K20 + 0x90021D14, // 0009 SETMBR R0 K14 K20 + 0x60080012, // 000A GETGBL R2 G18 + 0x7C080000, // 000B CALL R2 0 + 0x9002B802, // 000C SETMBR R0 K92 R2 + 0x80000000, // 000D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: match +********************************************************************/ +be_local_closure(class_DSLLexer_match, /* 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_DSLLexer, /* shared constants */ + be_str_weak(match), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C080127, // 0000 GETMET R2 R0 K39 + 0x7C080200, // 0001 CALL R2 1 + 0x740A0004, // 0002 JMPT R2 #0008 + 0x88080102, // 0003 GETMBR R2 R0 K2 + 0x880C0103, // 0004 GETMBR R3 R0 K3 + 0x94080403, // 0005 GETIDX R2 R2 R3 + 0x20080401, // 0006 NE R2 R2 R1 + 0x780A0001, // 0007 JMPF R2 #000A + 0x50080000, // 0008 LDBOOL R2 0 0 + 0x80040400, // 0009 RET 1 R2 + 0x88080103, // 000A GETMBR R2 R0 K3 + 0x00080514, // 000B ADD R2 R2 K20 + 0x90020602, // 000C SETMBR R0 K3 R2 + 0x8808010E, // 000D GETMBR R2 R0 K14 + 0x00080514, // 000E ADD R2 R2 K20 + 0x90021C02, // 000F SETMBR R0 K14 R2 + 0x50080200, // 0010 LDBOOL R2 1 0 + 0x80040400, // 0011 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: at_end +********************************************************************/ +be_local_closure(class_DSLLexer_at_end, /* name */ + be_nested_proto( + 4, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17686,14 +17861,51 @@ be_local_closure(class_DSLLexer_has_errors, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(has_errors), + be_str_weak(at_end), &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x8808012E, // 0001 GETMBR R2 R0 K46 - 0x7C040200, // 0002 CALL R1 1 - 0x24040339, // 0003 GT R1 R1 K57 - 0x80040200, // 0004 RET 1 R1 + ( &(const binstruction[ 6]) { /* code */ + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0102, // 0002 GETMBR R3 R0 K2 + 0x7C080200, // 0003 CALL R2 1 + 0x28040202, // 0004 GE R1 R1 R2 + 0x80040200, // 0005 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: peek_ahead +********************************************************************/ +be_local_closure(class_DSLLexer_peek_ahead, /* 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_DSLLexer, /* shared constants */ + be_str_weak(peek_ahead), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88080103, // 0000 GETMBR R2 R0 K3 + 0x00080401, // 0001 ADD R2 R2 R1 + 0x600C000C, // 0002 GETGBL R3 G12 + 0x88100102, // 0003 GETMBR R4 R0 K2 + 0x7C0C0200, // 0004 CALL R3 1 + 0x28080403, // 0005 GE R2 R2 R3 + 0x780A0000, // 0006 JMPF R2 #0008 + 0x80061600, // 0007 RET 1 K11 + 0x88080103, // 0008 GETMBR R2 R0 K3 + 0x00080401, // 0009 ADD R2 R2 R1 + 0x880C0102, // 000A GETMBR R3 R0 K2 + 0x94080602, // 000B GETIDX R2 R3 R2 + 0x80040400, // 000C RET 1 R2 }) ) ); @@ -17717,47 +17929,47 @@ be_local_closure(class_DSLLexer_scan_identifier_or_keyword, /* name */ be_str_weak(scan_identifier_or_keyword), &be_const_str_solidified, ( &(const binstruction[48]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x04040307, // 0001 SUB R1 R1 K7 - 0x88080100, // 0002 GETMBR R2 R0 K0 - 0x04080507, // 0003 SUB R2 R2 K7 - 0x8C0C011F, // 0004 GETMET R3 R0 K31 + 0x88040103, // 0000 GETMBR R1 R0 K3 + 0x04040314, // 0001 SUB R1 R1 K20 + 0x8808010E, // 0002 GETMBR R2 R0 K14 + 0x04080514, // 0003 SUB R2 R2 K20 + 0x8C0C0127, // 0004 GETMET R3 R0 K39 0x7C0C0200, // 0005 CALL R3 1 0x740E000B, // 0006 JMPT R3 #0013 - 0x8C0C0161, // 0007 GETMET R3 R0 K97 - 0x8C14010C, // 0008 GETMET R5 R0 K12 + 0x8C0C012D, // 0007 GETMET R3 R0 K45 + 0x8C140107, // 0008 GETMET R5 R0 K7 0x7C140200, // 0009 CALL R5 1 0x7C0C0400, // 000A CALL R3 2 0x740E0003, // 000B JMPT R3 #0010 - 0x8C0C010C, // 000C GETMET R3 R0 K12 + 0x8C0C0107, // 000C GETMET R3 R0 K7 0x7C0C0200, // 000D CALL R3 1 - 0x1C0C0710, // 000E EQ R3 R3 K16 + 0x1C0C071B, // 000E EQ R3 R3 K27 0x780E0002, // 000F JMPF R3 #0013 - 0x8C0C0101, // 0010 GETMET R3 R0 K1 + 0x8C0C0106, // 0010 GETMET R3 R0 K6 0x7C0C0200, // 0011 CALL R3 1 0x7001FFF0, // 0012 JMP #0004 - 0x880C011C, // 0013 GETMBR R3 R0 K28 - 0x040C0707, // 0014 SUB R3 R3 K7 + 0x880C0103, // 0013 GETMBR R3 R0 K3 + 0x040C0714, // 0014 SUB R3 R3 K20 0x400C0203, // 0015 CONNECT R3 R1 R3 - 0x8810011D, // 0016 GETMBR R4 R0 K29 + 0x88100102, // 0016 GETMBR R4 R0 K2 0x940C0803, // 0017 GETIDX R3 R4 R3 0x4C100000, // 0018 LDNIL R4 - 0xB8164E00, // 0019 GETNGBL R5 K39 - 0x8C140B6B, // 001A GETMET R5 R5 K107 + 0xB816CE00, // 0019 GETNGBL R5 K103 + 0x8C140B68, // 001A GETMET R5 R5 K104 0x5C1C0600, // 001B MOVE R7 R3 0x7C140400, // 001C CALL R5 2 0x78160001, // 001D JMPF R5 #0020 0x54120003, // 001E LDINT R4 4 0x70020007, // 001F JMP #0028 - 0xB8164E00, // 0020 GETNGBL R5 K39 - 0x8C140B6C, // 0021 GETMET R5 R5 K108 + 0xB816CE00, // 0020 GETNGBL R5 K103 + 0x8C140B69, // 0021 GETMET R5 R5 K105 0x5C1C0600, // 0022 MOVE R7 R3 0x7C140400, // 0023 CALL R5 2 0x78160001, // 0024 JMPF R5 #0027 - 0x58100039, // 0025 LDCONST R4 K57 + 0x58100026, // 0025 LDCONST R4 K38 0x70020000, // 0026 JMP #0028 - 0x58100007, // 0027 LDCONST R4 K7 - 0x8C140106, // 0028 GETMET R5 R0 K6 + 0x58100014, // 0027 LDCONST R4 K20 + 0x8C140113, // 0028 GETMET R5 R0 K19 0x5C1C0800, // 0029 MOVE R7 R4 0x5C200600, // 002A MOVE R8 R3 0x6024000C, // 002B GETGBL R9 G12 @@ -17772,12 +17984,12 @@ be_local_closure(class_DSLLexer_scan_identifier_or_keyword, /* name */ /******************************************************************** -** Solidified function: scan_hex_color_0x +** Solidified function: add_token ********************************************************************/ -be_local_closure(class_DSLLexer_scan_hex_color_0x, /* name */ +be_local_closure(class_DSLLexer_add_token, /* name */ be_nested_proto( 11, /* nstack */ - 1, /* argc */ + 4, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -17785,59 +17997,23 @@ be_local_closure(class_DSLLexer_scan_hex_color_0x, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_hex_color_0x), + be_str_weak(add_token), &be_const_str_solidified, - ( &(const binstruction[50]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x04040307, // 0001 SUB R1 R1 K7 - 0x88080100, // 0002 GETMBR R2 R0 K0 - 0x04080507, // 0003 SUB R2 R2 K7 - 0x8C0C0101, // 0004 GETMET R3 R0 K1 - 0x7C0C0200, // 0005 CALL R3 1 - 0x580C0039, // 0006 LDCONST R3 K57 - 0x8C10011F, // 0007 GETMET R4 R0 K31 - 0x7C100200, // 0008 CALL R4 1 - 0x74120008, // 0009 JMPT R4 #0013 - 0x8C10016D, // 000A GETMET R4 R0 K109 - 0x8C18010C, // 000B GETMET R6 R0 K12 - 0x7C180200, // 000C CALL R6 1 - 0x7C100400, // 000D CALL R4 2 - 0x78120003, // 000E JMPF R4 #0013 - 0x8C100101, // 000F GETMET R4 R0 K1 - 0x7C100200, // 0010 CALL R4 1 - 0x000C0707, // 0011 ADD R3 R3 K7 - 0x7001FFF3, // 0012 JMP #0007 - 0x8810011C, // 0013 GETMBR R4 R0 K28 - 0x04100907, // 0014 SUB R4 R4 K7 - 0x40100204, // 0015 CONNECT R4 R1 R4 - 0x8814011D, // 0016 GETMBR R5 R0 K29 - 0x94100A04, // 0017 GETIDX R4 R5 R4 - 0x54160005, // 0018 LDINT R5 6 - 0x1C140605, // 0019 EQ R5 R3 R5 - 0x74160002, // 001A JMPT R5 #001E - 0x54160007, // 001B LDINT R5 8 - 0x1C140605, // 001C EQ R5 R3 R5 - 0x78160007, // 001D JMPF R5 #0026 - 0x8C140106, // 001E GETMET R5 R0 K6 - 0x541E0003, // 001F LDINT R7 4 - 0x5C200800, // 0020 MOVE R8 R4 - 0x6024000C, // 0021 GETGBL R9 G12 - 0x5C280800, // 0022 MOVE R10 R4 - 0x7C240200, // 0023 CALL R9 1 - 0x7C140800, // 0024 CALL R5 4 - 0x7002000A, // 0025 JMP #0031 - 0x8C140124, // 0026 GETMET R5 R0 K36 - 0x001EDC04, // 0027 ADD R7 K110 R4 - 0x001C0F6F, // 0028 ADD R7 R7 K111 - 0x7C140400, // 0029 CALL R5 2 - 0x8C140106, // 002A GETMET R5 R0 K6 - 0x541E0026, // 002B LDINT R7 39 - 0x5C200800, // 002C MOVE R8 R4 - 0x6024000C, // 002D GETGBL R9 G12 - 0x5C280800, // 002E MOVE R10 R4 - 0x7C240200, // 002F CALL R9 1 - 0x7C140800, // 0030 CALL R5 4 - 0x80000000, // 0031 RET 0 + ( &(const binstruction[14]) { /* code */ + 0xB812CE00, // 0000 GETNGBL R4 K103 + 0x8C10096A, // 0001 GETMET R4 R4 K106 + 0x5C180200, // 0002 MOVE R6 R1 + 0x5C1C0400, // 0003 MOVE R7 R2 + 0x88200115, // 0004 GETMBR R8 R0 K21 + 0x8824010E, // 0005 GETMBR R9 R0 K14 + 0x04241203, // 0006 SUB R9 R9 R3 + 0x5C280600, // 0007 MOVE R10 R3 + 0x7C100C00, // 0008 CALL R4 6 + 0x8814015C, // 0009 GETMBR R5 R0 K92 + 0x8C140B6B, // 000A GETMET R5 R5 K107 + 0x5C1C0800, // 000B MOVE R7 R4 + 0x7C140400, // 000C CALL R5 2 + 0x80000000, // 000D RET 0 }) ) ); @@ -17845,11 +18021,11 @@ be_local_closure(class_DSLLexer_scan_hex_color_0x, /* name */ /******************************************************************** -** Solidified function: scan_time_suffix +** Solidified function: advance ********************************************************************/ -be_local_closure(class_DSLLexer_scan_time_suffix, /* name */ +be_local_closure(class_DSLLexer_advance, /* name */ be_nested_proto( - 6, /* nstack */ + 3, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17858,48 +18034,54 @@ be_local_closure(class_DSLLexer_scan_time_suffix, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_time_suffix), + be_str_weak(advance), &be_const_str_solidified, - ( &(const binstruction[39]) { /* code */ - 0xA406C400, // 0000 IMPORT R1 K98 - 0x8C080364, // 0001 GETMET R2 R1 K100 - 0x8810011C, // 0002 GETMBR R4 R0 K28 - 0x40100963, // 0003 CONNECT R4 R4 K99 - 0x8814011D, // 0004 GETMBR R5 R0 K29 - 0x94100A04, // 0005 GETIDX R4 R5 R4 - 0x58140065, // 0006 LDCONST R5 K101 - 0x7C080600, // 0007 CALL R2 3 - 0x780A0005, // 0008 JMPF R2 #000F - 0x8C080101, // 0009 GETMET R2 R0 K1 - 0x7C080200, // 000A CALL R2 1 - 0x8C080101, // 000B GETMET R2 R0 K1 - 0x7C080200, // 000C CALL R2 1 - 0x8006CA00, // 000D RET 1 K101 - 0x70020016, // 000E JMP #0026 - 0x8C08010C, // 000F GETMET R2 R0 K12 - 0x7C080200, // 0010 CALL R2 1 - 0x1C080566, // 0011 EQ R2 R2 K102 - 0x780A0003, // 0012 JMPF R2 #0017 - 0x8C080101, // 0013 GETMET R2 R0 K1 - 0x7C080200, // 0014 CALL R2 1 - 0x8006CC00, // 0015 RET 1 K102 - 0x7002000E, // 0016 JMP #0026 - 0x8C08010C, // 0017 GETMET R2 R0 K12 - 0x7C080200, // 0018 CALL R2 1 - 0x1C080567, // 0019 EQ R2 R2 K103 - 0x780A0003, // 001A JMPF R2 #001F - 0x8C080101, // 001B GETMET R2 R0 K1 - 0x7C080200, // 001C CALL R2 1 - 0x8006CE00, // 001D RET 1 K103 - 0x70020006, // 001E JMP #0026 - 0x8C08010C, // 001F GETMET R2 R0 K12 - 0x7C080200, // 0020 CALL R2 1 - 0x1C080568, // 0021 EQ R2 R2 K104 - 0x780A0002, // 0022 JMPF R2 #0026 - 0x8C080101, // 0023 GETMET R2 R0 K1 - 0x7C080200, // 0024 CALL R2 1 - 0x8006D000, // 0025 RET 1 K104 - 0x80063C00, // 0026 RET 1 K30 + ( &(const binstruction[14]) { /* code */ + 0x8C040127, // 0000 GETMET R1 R0 K39 + 0x7C040200, // 0001 CALL R1 1 + 0x78060000, // 0002 JMPF R1 #0004 + 0x80061600, // 0003 RET 1 K11 + 0x88040102, // 0004 GETMBR R1 R0 K2 + 0x88080103, // 0005 GETMBR R2 R0 K3 + 0x94040202, // 0006 GETIDX R1 R1 R2 + 0x88080103, // 0007 GETMBR R2 R0 K3 + 0x00080514, // 0008 ADD R2 R2 K20 + 0x90020602, // 0009 SETMBR R0 K3 R2 + 0x8808010E, // 000A GETMBR R2 R0 K14 + 0x00080514, // 000B ADD R2 R2 K20 + 0x90021C02, // 000C SETMBR R0 K14 R2 + 0x80040200, // 000D RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: peek +********************************************************************/ +be_local_closure(class_DSLLexer_peek, /* 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_DSLLexer, /* shared constants */ + be_str_weak(peek), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x8C040127, // 0000 GETMET R1 R0 K39 + 0x7C040200, // 0001 CALL R1 1 + 0x78060000, // 0002 JMPF R1 #0004 + 0x80061600, // 0003 RET 1 K11 + 0x88040102, // 0004 GETMBR R1 R0 K2 + 0x88080103, // 0005 GETMBR R2 R0 K3 + 0x94040202, // 0006 GETIDX R1 R1 R2 + 0x80040200, // 0007 RET 1 R1 }) ) ); @@ -17925,15 +18107,15 @@ be_local_closure(class_DSLLexer_get_position_info, /* name */ ( &(const binstruction[12]) { /* code */ 0x60040013, // 0000 GETGBL R1 G19 0x7C040000, // 0001 CALL R1 0 - 0x8808011C, // 0002 GETMBR R2 R0 K28 - 0x98063802, // 0003 SETIDX R1 K28 R2 - 0x88080108, // 0004 GETMBR R2 R0 K8 - 0x98061002, // 0005 SETIDX R1 K8 R2 - 0x88080100, // 0006 GETMBR R2 R0 K0 - 0x98060002, // 0007 SETIDX R1 K0 R2 - 0x8C08011F, // 0008 GETMET R2 R0 K31 + 0x88080103, // 0002 GETMBR R2 R0 K3 + 0x98060602, // 0003 SETIDX R1 K3 R2 + 0x88080115, // 0004 GETMBR R2 R0 K21 + 0x98062A02, // 0005 SETIDX R1 K21 R2 + 0x8808010E, // 0006 GETMBR R2 R0 K14 + 0x98061C02, // 0007 SETIDX R1 K14 R2 + 0x8C080127, // 0008 GETMET R2 R0 K39 0x7C080200, // 0009 CALL R2 1 - 0x98063E02, // 000A SETIDX R1 K31 R2 + 0x98064E02, // 000A SETIDX R1 K39 R2 0x80040200, // 000B RET 1 R1 }) ) @@ -17941,338 +18123,46 @@ be_local_closure(class_DSLLexer_get_position_info, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: is_alpha -********************************************************************/ -be_local_closure(class_DSLLexer_is_alpha, /* 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_DSLLexer, /* shared constants */ - be_str_weak(is_alpha), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x28080335, // 0000 GE R2 R1 K53 - 0x780A0001, // 0001 JMPF R2 #0004 - 0x18080370, // 0002 LE R2 R1 K112 - 0x740A0004, // 0003 JMPT R2 #0009 - 0x28080337, // 0004 GE R2 R1 K55 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x18080371, // 0006 LE R2 R1 K113 - 0x740A0000, // 0007 JMPT R2 #0009 - 0x50080001, // 0008 LDBOOL R2 0 1 - 0x50080200, // 0009 LDBOOL R2 1 0 - 0x80040400, // 000A RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_triple_quoted_string -********************************************************************/ -be_local_closure(class_DSLLexer_scan_triple_quoted_string, /* name */ - be_nested_proto( - 10, /* 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_DSLLexer, /* shared constants */ - be_str_weak(scan_triple_quoted_string), - &be_const_str_solidified, - ( &(const binstruction[75]) { /* code */ - 0x8808011C, // 0000 GETMBR R2 R0 K28 - 0x04080507, // 0001 SUB R2 R2 K7 - 0x880C0100, // 0002 GETMBR R3 R0 K0 - 0x040C0707, // 0003 SUB R3 R3 K7 - 0x5810001E, // 0004 LDCONST R4 K30 - 0x8C140101, // 0005 GETMET R5 R0 K1 - 0x7C140200, // 0006 CALL R5 1 - 0x8C140101, // 0007 GETMET R5 R0 K1 - 0x7C140200, // 0008 CALL R5 1 - 0x8C14011F, // 0009 GETMET R5 R0 K31 - 0x7C140200, // 000A CALL R5 1 - 0x7416001F, // 000B JMPT R5 #002C - 0x8C14010C, // 000C GETMET R5 R0 K12 - 0x7C140200, // 000D CALL R5 1 - 0x1C180A01, // 000E EQ R6 R5 R1 - 0x781A0010, // 000F JMPF R6 #0021 - 0x8C180116, // 0010 GETMET R6 R0 K22 - 0x58200007, // 0011 LDCONST R8 K7 - 0x7C180400, // 0012 CALL R6 2 - 0x1C180C01, // 0013 EQ R6 R6 R1 - 0x781A000B, // 0014 JMPF R6 #0021 - 0x8C180116, // 0015 GETMET R6 R0 K22 - 0x5820003D, // 0016 LDCONST R8 K61 - 0x7C180400, // 0017 CALL R6 2 - 0x1C180C01, // 0018 EQ R6 R6 R1 - 0x781A0006, // 0019 JMPF R6 #0021 - 0x8C180101, // 001A GETMET R6 R0 K1 - 0x7C180200, // 001B CALL R6 1 - 0x8C180101, // 001C GETMET R6 R0 K1 - 0x7C180200, // 001D CALL R6 1 - 0x8C180101, // 001E GETMET R6 R0 K1 - 0x7C180200, // 001F CALL R6 1 - 0x7002000A, // 0020 JMP #002C - 0x8C180101, // 0021 GETMET R6 R0 K1 - 0x7C180200, // 0022 CALL R6 1 - 0x5C140C00, // 0023 MOVE R5 R6 - 0x1C180B05, // 0024 EQ R6 R5 K5 - 0x781A0003, // 0025 JMPF R6 #002A - 0x88180108, // 0026 GETMBR R6 R0 K8 - 0x00180D07, // 0027 ADD R6 R6 K7 - 0x90021006, // 0028 SETMBR R0 K8 R6 - 0x90020107, // 0029 SETMBR R0 K0 K7 - 0x00100805, // 002A ADD R4 R4 R5 - 0x7001FFDC, // 002B JMP #0009 - 0x8C14011F, // 002C GETMET R5 R0 K31 - 0x7C140200, // 002D CALL R5 1 - 0x78160014, // 002E JMPF R5 #0044 - 0x8814011C, // 002F GETMBR R5 R0 K28 - 0x04140B26, // 0030 SUB R5 R5 K38 - 0x8818011C, // 0031 GETMBR R6 R0 K28 - 0x04180D07, // 0032 SUB R6 R6 K7 - 0x40140A06, // 0033 CONNECT R5 R5 R6 - 0x8818011D, // 0034 GETMBR R6 R0 K29 - 0x94140C05, // 0035 GETIDX R5 R6 R5 - 0x00180201, // 0036 ADD R6 R1 R1 - 0x00180C01, // 0037 ADD R6 R6 R1 - 0x1C140A06, // 0038 EQ R5 R5 R6 - 0x74160009, // 0039 JMPT R5 #0044 - 0x8C140124, // 003A GETMET R5 R0 K36 - 0x581C0072, // 003B LDCONST R7 K114 - 0x7C140400, // 003C CALL R5 2 - 0x8C140106, // 003D GETMET R5 R0 K6 - 0x541E0026, // 003E LDINT R7 39 - 0x5C200800, // 003F MOVE R8 R4 - 0x8824011C, // 0040 GETMBR R9 R0 K28 - 0x04241202, // 0041 SUB R9 R9 R2 - 0x7C140800, // 0042 CALL R5 4 - 0x70020005, // 0043 JMP #004A - 0x8C140106, // 0044 GETMET R5 R0 K6 - 0x581C0026, // 0045 LDCONST R7 K38 - 0x5C200800, // 0046 MOVE R8 R4 - 0x8824011C, // 0047 GETMBR R9 R0 K28 - 0x04241202, // 0048 SUB R9 R9 R2 - 0x7C140800, // 0049 CALL R5 4 - 0x80000000, // 004A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_error -********************************************************************/ -be_local_closure(class_DSLLexer_add_error, /* 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_DSLLexer, /* shared constants */ - be_str_weak(add_error), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x8808012E, // 0000 GETMBR R2 R0 K46 - 0x8C08052A, // 0001 GETMET R2 R2 K42 - 0x60100013, // 0002 GETGBL R4 G19 - 0x7C100000, // 0003 CALL R4 0 - 0x98126601, // 0004 SETIDX R4 K51 R1 - 0x88140108, // 0005 GETMBR R5 R0 K8 - 0x98121005, // 0006 SETIDX R4 K8 R5 - 0x88140100, // 0007 GETMBR R5 R0 K0 - 0x98120005, // 0008 SETIDX R4 K0 R5 - 0x8814011C, // 0009 GETMBR R5 R0 K28 - 0x98123805, // 000A SETIDX R4 K28 R5 - 0x7C080400, // 000B CALL R2 2 - 0x80000000, // 000C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_comment -********************************************************************/ -be_local_closure(class_DSLLexer_scan_comment, /* name */ - be_nested_proto( - 9, /* 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_DSLLexer, /* shared constants */ - be_str_weak(scan_comment), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x8804011C, // 0000 GETMBR R1 R0 K28 - 0x04040307, // 0001 SUB R1 R1 K7 - 0x88080100, // 0002 GETMBR R2 R0 K0 - 0x04080507, // 0003 SUB R2 R2 K7 - 0x8C0C011F, // 0004 GETMET R3 R0 K31 - 0x7C0C0200, // 0005 CALL R3 1 - 0x740E0006, // 0006 JMPT R3 #000E - 0x8C0C010C, // 0007 GETMET R3 R0 K12 - 0x7C0C0200, // 0008 CALL R3 1 - 0x200C0705, // 0009 NE R3 R3 K5 - 0x780E0002, // 000A JMPF R3 #000E - 0x8C0C0101, // 000B GETMET R3 R0 K1 - 0x7C0C0200, // 000C CALL R3 1 - 0x7001FFF5, // 000D JMP #0004 - 0x880C011C, // 000E GETMBR R3 R0 K28 - 0x040C0707, // 000F SUB R3 R3 K7 - 0x400C0203, // 0010 CONNECT R3 R1 R3 - 0x8810011D, // 0011 GETMBR R4 R0 K29 - 0x940C0803, // 0012 GETIDX R3 R4 R3 - 0x8C100106, // 0013 GETMET R4 R0 K6 - 0x541A0024, // 0014 LDINT R6 37 - 0x5C1C0600, // 0015 MOVE R7 R3 - 0x8820011C, // 0016 GETMBR R8 R0 K28 - 0x04201001, // 0017 SUB R8 R8 R1 - 0x7C100800, // 0018 CALL R4 4 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tokenize -********************************************************************/ -be_local_closure(class_DSLLexer_tokenize, /* 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_DSLLexer, /* shared constants */ - be_str_weak(tokenize), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x60040012, // 0000 GETGBL R1 G18 - 0x7C040000, // 0001 CALL R1 0 - 0x90025201, // 0002 SETMBR R0 K41 R1 - 0x60040012, // 0003 GETGBL R1 G18 - 0x7C040000, // 0004 CALL R1 0 - 0x90025C01, // 0005 SETMBR R0 K46 R1 - 0x90023939, // 0006 SETMBR R0 K28 K57 - 0x90021107, // 0007 SETMBR R0 K8 K7 - 0x90020107, // 0008 SETMBR R0 K0 K7 - 0x8C04011F, // 0009 GETMET R1 R0 K31 - 0x7C040200, // 000A CALL R1 1 - 0x74060002, // 000B JMPT R1 #000F - 0x8C040173, // 000C GETMET R1 R0 K115 - 0x7C040200, // 000D CALL R1 1 - 0x7001FFF9, // 000E JMP #0009 - 0x8C040106, // 000F GETMET R1 R0 K6 - 0x540E0025, // 0010 LDINT R3 38 - 0x5810001E, // 0011 LDCONST R4 K30 - 0x58140039, // 0012 LDCONST R5 K57 - 0x7C040800, // 0013 CALL R1 4 - 0x88040129, // 0014 GETMBR R1 R0 K41 - 0x80040200, // 0015 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_errors -********************************************************************/ -be_local_closure(class_DSLLexer_get_errors, /* 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_DSLLexer, /* shared constants */ - be_str_weak(get_errors), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x8804012E, // 0000 GETMBR R1 R0 K46 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified class: DSLLexer ********************************************************************/ be_local_class(DSLLexer, - 6, + 5, NULL, - be_nested_map(37, + be_nested_map(32, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(scan_token, 36), be_const_closure(class_DSLLexer_scan_token_closure) }, - { be_const_key_weak(get_errors, 11), be_const_closure(class_DSLLexer_get_errors_closure) }, - { be_const_key_weak(scan_string, -1), be_const_closure(class_DSLLexer_scan_string_closure) }, - { be_const_key_weak(add_token, 14), be_const_closure(class_DSLLexer_add_token_closure) }, - { be_const_key_weak(tokenize, -1), be_const_closure(class_DSLLexer_tokenize_closure) }, - { be_const_key_weak(peek, -1), be_const_closure(class_DSLLexer_peek_closure) }, - { be_const_key_weak(source, -1), be_const_var(0) }, - { be_const_key_weak(get_error_report, -1), be_const_closure(class_DSLLexer_get_error_report_closure) }, - { be_const_key_weak(advance, -1), be_const_closure(class_DSLLexer_advance_closure) }, - { be_const_key_weak(scan_operator_or_delimiter, -1), be_const_closure(class_DSLLexer_scan_operator_or_delimiter_closure) }, - { be_const_key_weak(add_error, -1), be_const_closure(class_DSLLexer_add_error_closure) }, - { be_const_key_weak(scan_triple_quoted_string, 24), be_const_closure(class_DSLLexer_scan_triple_quoted_string_closure) }, - { be_const_key_weak(scan_number, -1), be_const_closure(class_DSLLexer_scan_number_closure) }, - { be_const_key_weak(peek_ahead, 9), be_const_closure(class_DSLLexer_peek_ahead_closure) }, - { be_const_key_weak(is_alnum, 32), be_const_closure(class_DSLLexer_is_alnum_closure) }, - { be_const_key_weak(peek_next, -1), be_const_closure(class_DSLLexer_peek_next_closure) }, - { be_const_key_weak(is_digit, -1), be_const_closure(class_DSLLexer_is_digit_closure) }, - { be_const_key_weak(tokenize_with_errors, -1), be_const_closure(class_DSLLexer_tokenize_with_errors_closure) }, - { be_const_key_weak(at_end, -1), be_const_closure(class_DSLLexer_at_end_closure) }, - { be_const_key_weak(reset, -1), be_const_closure(class_DSLLexer_reset_closure) }, - { be_const_key_weak(scan_variable_reference, -1), be_const_closure(class_DSLLexer_scan_variable_reference_closure) }, - { be_const_key_weak(column, -1), be_const_var(3) }, - { be_const_key_weak(scan_identifier_or_keyword, -1), be_const_closure(class_DSLLexer_scan_identifier_or_keyword_closure) }, - { be_const_key_weak(tokens, 12), be_const_var(4) }, + { be_const_key_weak(scan_time_suffix, 4), be_const_closure(class_DSLLexer_scan_time_suffix_closure) }, + { be_const_key_weak(is_alnum, -1), be_const_closure(class_DSLLexer_is_alnum_closure) }, + { be_const_key_weak(scan_token, -1), be_const_closure(class_DSLLexer_scan_token_closure) }, { be_const_key_weak(scan_hex_color_0x, -1), be_const_closure(class_DSLLexer_scan_hex_color_0x_closure) }, - { be_const_key_weak(has_errors, -1), be_const_closure(class_DSLLexer_has_errors_closure) }, - { be_const_key_weak(errors, 22), be_const_var(5) }, - { be_const_key_weak(check_time_suffix, 1), be_const_closure(class_DSLLexer_check_time_suffix_closure) }, - { be_const_key_weak(line, -1), be_const_var(2) }, - { be_const_key_weak(scan_time_suffix, -1), be_const_closure(class_DSLLexer_scan_time_suffix_closure) }, - { be_const_key_weak(get_position_info, -1), be_const_closure(class_DSLLexer_get_position_info_closure) }, - { be_const_key_weak(is_alpha, -1), be_const_closure(class_DSLLexer_is_alpha_closure) }, - { be_const_key_weak(match, -1), be_const_closure(class_DSLLexer_match_closure) }, - { be_const_key_weak(position, 10), be_const_var(1) }, + { be_const_key_weak(get_position_info, 25), be_const_closure(class_DSLLexer_get_position_info_closure) }, + { be_const_key_weak(scan_operator_or_delimiter, -1), be_const_closure(class_DSLLexer_scan_operator_or_delimiter_closure) }, + { be_const_key_weak(is_alpha, 21), be_const_closure(class_DSLLexer_is_alpha_closure) }, + { be_const_key_weak(column, 20), be_const_var(3) }, + { be_const_key_weak(scan_string, -1), be_const_closure(class_DSLLexer_scan_string_closure) }, + { be_const_key_weak(is_digit, -1), be_const_closure(class_DSLLexer_is_digit_closure) }, + { be_const_key_weak(peek_next, 28), be_const_closure(class_DSLLexer_peek_next_closure) }, + { be_const_key_weak(scan_variable_reference, 9), be_const_closure(class_DSLLexer_scan_variable_reference_closure) }, + { be_const_key_weak(tokenize, -1), be_const_closure(class_DSLLexer_tokenize_closure) }, + { be_const_key_weak(advance, -1), be_const_closure(class_DSLLexer_advance_closure) }, { be_const_key_weak(scan_comment, -1), be_const_closure(class_DSLLexer_scan_comment_closure) }, - { be_const_key_weak(is_hex_digit, 4), be_const_closure(class_DSLLexer_is_hex_digit_closure) }, + { be_const_key_weak(check_time_suffix, -1), be_const_closure(class_DSLLexer_check_time_suffix_closure) }, + { be_const_key_weak(scan_number, -1), be_const_closure(class_DSLLexer_scan_number_closure) }, + { be_const_key_weak(error, -1), be_const_closure(class_DSLLexer_error_closure) }, + { be_const_key_weak(scan_triple_quoted_string, -1), be_const_closure(class_DSLLexer_scan_triple_quoted_string_closure) }, + { be_const_key_weak(tokens, 27), be_const_var(4) }, + { be_const_key_weak(line, -1), be_const_var(2) }, + { be_const_key_weak(add_token, -1), be_const_closure(class_DSLLexer_add_token_closure) }, + { be_const_key_weak(match, -1), be_const_closure(class_DSLLexer_match_closure) }, + { be_const_key_weak(scan_identifier_or_keyword, -1), be_const_closure(class_DSLLexer_scan_identifier_or_keyword_closure) }, + { be_const_key_weak(source, -1), be_const_var(0) }, + { be_const_key_weak(peek_ahead, 31), be_const_closure(class_DSLLexer_peek_ahead_closure) }, + { be_const_key_weak(at_end, 23), be_const_closure(class_DSLLexer_at_end_closure) }, { be_const_key_weak(init, -1), be_const_closure(class_DSLLexer_init_closure) }, + { be_const_key_weak(position, -1), be_const_var(1) }, + { be_const_key_weak(is_hex_digit, 13), be_const_closure(class_DSLLexer_is_hex_digit_closure) }, + { be_const_key_weak(peek, -1), be_const_closure(class_DSLLexer_peek_closure) }, + { be_const_key_weak(reset, -1), be_const_closure(class_DSLLexer_reset_closure) }, })), be_str_weak(DSLLexer) ); @@ -18323,18 +18213,18 @@ be_local_module(animation_dsl, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(DSLRuntime, -1), be_const_class(be_class_DSLRuntime) }, { be_const_key_weak(create_newline_token, -1), be_const_closure(create_newline_token_closure) }, + { be_const_key_weak(is_keyword, 23), be_const_closure(is_keyword_closure) }, { be_const_key_weak(SimpleDSLTranspiler, -1), be_const_class(be_class_SimpleDSLTranspiler) }, - { be_const_key_weak(tokenize_dsl_with_errors, -1), be_const_closure(tokenize_dsl_with_errors_closure) }, - { be_const_key_weak(is_keyword, -1), be_const_closure(is_keyword_closure) }, - { be_const_key_weak(_symbol_entry, 4), be_const_class(be_class_SymbolEntry) }, + { be_const_key_weak(Token, -1), be_const_class(be_class_Token) }, + { be_const_key_weak(compile_file, 2), be_const_closure(compile_file_closure) }, { be_const_key_weak(compile, -1), be_const_closure(compile_dsl_source_closure) }, { be_const_key_weak(VERSION, -1), be_const_int(65536) }, - { be_const_key_weak(get_operator_precedence, -1), be_const_closure(get_operator_precedence_closure) }, - { be_const_key_weak(create_eof_token, 2), be_const_closure(create_eof_token_closure) }, + { be_const_key_weak(_symbol_table, -1), be_const_class(be_class_SymbolTable) }, + { be_const_key_weak(create_eof_token, 3), be_const_closure(create_eof_token_closure) }, { be_const_key_weak(create_dsl_runtime, 11), be_const_closure(create_dsl_runtime_closure) }, - { be_const_key_weak(Token, 23), be_const_class(be_class_Token) }, + { be_const_key_weak(compile_dsl, 4), be_const_closure(compile_dsl_closure) }, { be_const_key_weak(is_right_associative, 1), be_const_closure(is_right_associative_closure) }, - { be_const_key_weak(_symbol_table, 8), be_const_class(be_class_SymbolTable) }, + { be_const_key_weak(get_operator_precedence, 8), be_const_closure(get_operator_precedence_closure) }, { be_const_key_weak(create_runtime, 9), be_const_closure(create_runtime_closure) }, { be_const_key_weak(tokenize_dsl, -1), be_const_closure(tokenize_dsl_closure) }, { be_const_key_weak(execute, 15), be_const_closure(execute_closure) }, @@ -18382,9 +18272,9 @@ be_local_module(animation_dsl, { be_const_key_weak(maroon, -1), be_nested_str_weak(0xFF800000) }, })) ) } )) }, { be_const_key_weak(load_file, -1), be_const_closure(load_file_closure) }, - { be_const_key_weak(MockEngine, 3), be_const_class(be_class_MockEngine) }, + { be_const_key_weak(MockEngine, -1), be_const_class(be_class_MockEngine) }, { be_const_key_weak(DSLLexer, -1), be_const_class(be_class_DSLLexer) }, - { be_const_key_weak(compile_dsl, -1), be_const_closure(compile_dsl_closure) }, + { be_const_key_weak(_symbol_entry, -1), be_const_class(be_class_SymbolEntry) }, })) ); BE_EXPORT_VARIABLE be_define_const_native_module(animation_dsl); diff --git a/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be new file mode 100644 index 000000000..a0b50fc84 --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be @@ -0,0 +1,479 @@ +# DSL Compilation Test Suite +# Tests for DSL compilation with both successful and failing cases +# +# Command to run test is: +# ./berry -s -g -m lib/libesp32/berry_animation/src -e "import tasmota def log(x) print(x) end import animation import animation_dsl " lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be + +import animation +import animation_dsl +import user_functions +import string + +# Test successful compilation cases +def test_successful_compilation() + print("Testing successful DSL compilation cases...") + + # Test basic variable assignments and computed values + var basic_dsl = + "set strip_len = strip_length()\n" + + "set r1 = rand_demo()\n" + + "set r2 = rand_demo(12)\n" + + "set r3 = rand_demo(4 + 5)\n" + + "set r4 = rand_demo(strip_len)\n" + + "set r5 = rand_demo(strip_len + 1)\n" + + "set az = abs(strip_len / 4)\n" + + "set x = 3s\n" + + "set xy = strip_length()\n" + + "set xx = (0 + 3*4)\n" + + var berry_code = animation_dsl.compile(basic_dsl) + assert(berry_code != nil, "Should compile basic DSL") + + # Check for proper variable definitions + assert(string.find(berry_code, "var strip_len_ = animation.strip_length(engine)") >= 0, "Should create strip_length value provider") + assert(string.find(berry_code, "var r1_ = animation.create_closure_value(engine") >= 0, "Should create closure for user function") + assert(string.find(berry_code, "var x_ = 3000") >= 0, "Should convert time to milliseconds") + assert(string.find(berry_code, "var xx_ = (0 + 3 * 4)") >= 0, "Should preserve arithmetic expressions") + + print("✓ Basic compilation test passed") + + # Test value provider assignments + var provider_dsl = + "set shutter_size = sawtooth(min_value = 0, max_value = 10, duration = 3s)\n" + + "shutter_size.min_value = rand_demo()\n" + + "shutter_size.max_value = strip_length()\n" + + "shutter_size.min_value = 5\n" + + berry_code = animation_dsl.compile(provider_dsl) + assert(berry_code != nil, "Should compile value provider assignments") + assert(string.find(berry_code, "animation.sawtooth(engine)") >= 0, "Should create sawtooth provider") + assert(string.find(berry_code, "shutter_size_.min_value = animation.create_closure_value") >= 0, "Should create closure for property assignment") + + print("✓ Value provider assignment test passed") + + # Test animation definitions + var animation_dsl_code = + "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=(0+1))\n" + + "test.priority = 10\n" + + berry_code = animation_dsl.compile(animation_dsl_code) + assert(berry_code != nil, "Should compile animation definitions") + assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should create pulsating animation") + assert(string.find(berry_code, "test_.color = 0xFF0000FF") >= 0, "Should set color parameter") + assert(string.find(berry_code, "test_.priority = 10") >= 0, "Should set priority property") + + print("✓ Animation definition test passed") + + # Test palette definitions + var palette_dsl = + "palette col1 = [red, orange, yellow, green, blue, indigo, white]\n" + + berry_code = animation_dsl.compile(palette_dsl) + assert(berry_code != nil, "Should compile palette definitions") + assert(string.find(berry_code, 'var col1_ = bytes("FFFF0000"') >= 0, "Should create palette bytes") + + print("✓ Palette definition test passed") + + # Test sequences with repeat + var sequence_dsl = + "set strip_len = strip_length()\n" + + "palette col1 = [red, orange, yellow]\n" + + "sequence seq1 repeat forever {\n" + + " repeat col1.palette_size times {\n" + + ' log("begin 1")\n' + + " col1.next = 1\n" + + " }\n" + + "}\n" + + "sequence seq2 repeat forever {\n" + + " repeat 7 + 2 times {\n" + + ' log("begin 2")\n' + + " }\n" + + "}\n" + + "sequence seq3 repeat forever {\n" + + " repeat strip_len times {\n" + + ' log("begin 3")\n' + + " }\n" + + "}\n" + + berry_code = animation_dsl.compile(sequence_dsl) + assert(berry_code != nil, "Should compile sequences with repeat") + assert(string.find(berry_code, "animation.SequenceManager(engine, -1)") >= 0, "Should create sequence with forever repeat") + assert(string.find(berry_code, "push_repeat_subsequence") >= 0, "Should create repeat subsequence") + assert(string.find(berry_code, "col1_.palette_size") >= 0, "Should reference palette size") + assert(string.find(berry_code, "7 + 2") >= 0, "Should preserve arithmetic in repeat count") + + print("✓ Sequence with repeat test passed") + + # Test restart statements + var restart_dsl = + "set shutter_size = sawtooth(min_value = 0, max_value = 10, duration = 3s)\n" + + "sequence tt {\n" + + " restart shutter_size\n" + + "}\n" + + berry_code = animation_dsl.compile(restart_dsl) + assert(berry_code != nil, "Should compile restart statements") + assert(string.find(berry_code, "shutter_size_.start(engine.time_ms)") >= 0, "Should generate restart call") + + print("✓ Restart statement test passed") + + # Test computed expressions with mathematical functions + var math_dsl = + "set strip_len = strip_length()\n" + + "set computed1 = max(1, min(strip_len, 20))\n" + + "set computed2 = abs(strip_len - 30)\n" + + "set computed3 = round(strip_len / 6)\n" + + berry_code = animation_dsl.compile(math_dsl) + assert(berry_code != nil, "Should compile mathematical expressions") + assert(string.find(berry_code, "animation._math.max") >= 0, "Should use animation._math for max function") + assert(string.find(berry_code, "animation._math.abs") >= 0, "Should use animation._math for abs function") + assert(string.find(berry_code, "animation._math.round") >= 0, "Should use animation._math for round function") + + print("✓ Mathematical expressions test passed") + + return true +end + +# Test compilation failure cases +def test_compilation_failures() + print("Testing DSL compilation failure cases...") + + # Test dangerous function creation in computed expressions + var dangerous_dsl = "set s2 = strip_length() + strip_length()" + + try + var berry_code = animation_dsl.compile(dangerous_dsl) + assert(false, "Should fail with dangerous function creation") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Function 'strip_length' cannot be used in computed expressions") >= 0, + "Should report dangerous function creation error") + print("✓ Dangerous function creation properly rejected") + end + + # Test undefined variable reference + var undefined_var_dsl = "set result = undefined_variable + 5" + + try + var berry_code = animation_dsl.compile(undefined_var_dsl) + assert(false, "Should fail with undefined variable") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Unknown identifier 'undefined_variable'") >= 0, "Should report unknown identifier error") + print("✓ Undefined variable properly rejected") + end + + # Test invalid animation factory + var invalid_factory_dsl = "animation bad = nonexistent_animation(color=red)" + + try + var berry_code = animation_dsl.compile(invalid_factory_dsl) + assert(false, "Should fail with invalid animation factory") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Animation factory function 'nonexistent_animation' does not exist") >= 0, + "Should report invalid factory error") + print("✓ Invalid animation factory properly rejected") + end + + # Test invalid parameter name + var invalid_param_dsl = "animation pulse = pulsating_animation(invalid_param=123)" + + try + var berry_code = animation_dsl.compile(invalid_param_dsl) + assert(false, "Should fail with invalid parameter") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "does not have parameter 'invalid_param'") >= 0, + "Should report invalid parameter error") + print("✓ Invalid parameter properly rejected") + end + + # Test invalid property assignment + var invalid_property_dsl = + "animation pulse = pulsating_animation(color=red, period=2s)\n" + + "pulse.wrong_property = 15" + + try + var berry_code = animation_dsl.compile(invalid_property_dsl) + assert(false, "Should fail with invalid property") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "does not have parameter 'wrong_property'") >= 0, + "Should report invalid property error") + print("✓ Invalid property assignment properly rejected") + end + + # Test undefined color reference + var undefined_color_dsl = "animation pulse = pulsating_animation(color=undefined_color)" + + try + var berry_code = animation_dsl.compile(undefined_color_dsl) + assert(false, "Should fail with undefined color") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Unknown identifier 'undefined_color'") >= 0, + "Should report unknown identifier error") + print("✓ Undefined color reference properly rejected") + end + + # Test undefined animation in run statement + var undefined_run_dsl = "run nonexistent_animation" + + try + var berry_code = animation_dsl.compile(undefined_run_dsl) + assert(false, "Should fail with undefined animation in run") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Undefined reference 'nonexistent_animation' in run") >= 0, + "Should report undefined animation in run error") + print("✓ Undefined animation in run properly rejected") + end + + # Test undefined animation in sequence play + var undefined_play_dsl = + "sequence demo {\n" + + " play nonexistent_animation for 5s\n" + + "}" + + try + var berry_code = animation_dsl.compile(undefined_play_dsl) + assert(false, "Should fail with undefined animation in play") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Undefined reference 'nonexistent_animation' in sequence play") >= 0, + "Should report undefined animation in play error") + print("✓ Undefined animation in play properly rejected") + end + + # Test undefined duration variable + var undefined_duration_dsl = + "animation test = solid(color=red)\n" + + "sequence demo {\n" + + " play test for invalid_duration\n" + + "}" + + try + var berry_code = animation_dsl.compile(undefined_duration_dsl) + assert(false, "Should fail with undefined duration") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Undefined reference 'invalid_duration' in duration") >= 0, + "Should report undefined duration error") + print("✓ Undefined duration properly rejected") + end + + # Test invalid color provider factory + var invalid_color_provider_dsl = "color bad = nonexistent_color_provider(period=2s)" + + try + var berry_code = animation_dsl.compile(invalid_color_provider_dsl) + assert(false, "Should fail with invalid color provider") + except "dsl_compilation_error" as e, msg + # Accept any compilation error for invalid color provider + print("✓ Invalid color provider properly rejected") + end + + # Test function that doesn't create animation instance + var wrong_type_dsl = "animation bad = triangle(min_value=0, max_value=10)" + + try + var berry_code = animation_dsl.compile(wrong_type_dsl) + assert(false, "Should fail with wrong instance type") + except "dsl_compilation_error" as e, msg + # Accept any compilation error for wrong instance type + print("✓ Wrong instance type properly rejected") + end + + return true +end + +# Test edge cases and complex scenarios +def test_edge_cases() + print("Testing edge cases...") + + # Test empty DSL + var empty_dsl = "" + var berry_code = animation_dsl.compile(empty_dsl) + assert(berry_code != nil, "Should compile empty DSL") + # Empty DSL might not generate engine initialization - check what it actually generates + if string.find(berry_code, "var engine = animation.init_strip()") >= 0 + print("✓ Empty DSL generates engine initialization") + else + print("✓ Empty DSL compiles without engine initialization (expected for empty code)") + end + + print("✓ Empty DSL test passed") + + # Test comments only + var comments_dsl = + "# This is a comment\n" + + "# Another comment\n" + + berry_code = animation_dsl.compile(comments_dsl) + assert(berry_code != nil, "Should compile comments-only DSL") + + print("✓ Comments-only DSL test passed") + + # Test complex nested expressions + var complex_expr_dsl = + "set strip_len = strip_length()\n" + + "set base_value = 5\n" + + "set complex = max(1, min(strip_len, abs(base_value * 2 - strip_len / 3)))\n" + + berry_code = animation_dsl.compile(complex_expr_dsl) + assert(berry_code != nil, "Should compile complex nested expressions") + assert(string.find(berry_code, "animation._math.max") >= 0, "Should handle nested math functions") + + print("✓ Complex nested expressions test passed") + + # Test multiple value providers of same type + var multiple_providers_dsl = + "set osc1 = triangle(min_value=0, max_value=10, duration=2s)\n" + + "set osc2 = triangle(min_value=5, max_value=15, duration=3s)\n" + + "set osc3 = sawtooth(min_value=0, max_value=20, duration=4s)\n" + + berry_code = animation_dsl.compile(multiple_providers_dsl) + assert(berry_code != nil, "Should compile multiple value providers") + + # Count triangle providers + var triangle_count = 0 + var pos = 0 + while true + pos = string.find(berry_code, "animation.triangle(engine)", pos) + if pos < 0 break end + triangle_count += 1 + pos += 1 + end + assert(triangle_count == 2, f"Should create 2 triangle providers, found {triangle_count}") + + print("✓ Multiple value providers test passed") + + # Test user functions with different parameter counts + var user_func_dsl = + "set r1 = rand_demo()\n" + + "set r2 = rand_demo(12)\n" + + "set r3 = rand_demo(4, 8)\n" # This might fail if rand_demo doesn't support 2 params + + try + berry_code = animation_dsl.compile(user_func_dsl) + if berry_code != nil + print("✓ User functions with different parameters compiled") + end + except "dsl_compilation_error" as e, msg + print("✓ User function parameter validation working (expected for unsupported parameter count)") + end + + return true +end + +# Test the complete example from test_simple_transpiler.be +def test_complete_example() + print("Testing complete example from test_simple_transpiler.be...") + + var complete_dsl = + "set strip_len = strip_length()\n" + + "set r1 = rand_demo()\n" + + "set r2 = rand_demo(12)\n" + + "set r3 = rand_demo(4 + 5)\n" + + "set r4 = rand_demo(strip_len)\n" + + "set r5 = rand_demo(strip_len + 1)\n" + + "set az = abs(strip_len / 4)\n" + + "set x = 3s\n" + + "set xy = strip_length()\n" + + "set xx = (0 + 3*4)\n" + + "set shutter_size = sawtooth(min_value = 0, max_value = strip_len / 2 + 1, duration = x)\n" + + "shutter_size.min_value = rand_demo()\n" + + "shutter_size.max_value = strip_len\n" + + "shutter_size.min_value = strip_len / 2\n" + + "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=(0+1))\n" + + "palette col1 = [red, orange, yellow, green, blue, indigo, white]\n" + + "set zz = strip_len - 2\n" + + "set z1 = x\n" + + "set m1 = x + 1\n" + + "set m2 = 1 + x\n" + + "sequence tt {\n" + + " restart shutter_size\n" + + "}\n" + + "set z2 = x + x\n" + + "set z3 = sawtooth()\n" + + "set z4 = linear(min_value=10, max_value=20)\n" + + "set y = x + 4\n" + + "sequence seq1 repeat forever {\n" + + " repeat col1.palette_size times {\n" + + ' log("begin 1")\n' + + " restart shutter_size\n" + + " col1.next = 1\n" + + " }\n" + + "}\n" + + var berry_code = animation_dsl.compile(complete_dsl) + assert(berry_code != nil, "Should compile complete example") + + # Verify key components are present + assert(string.find(berry_code, "var strip_len_ = animation.strip_length(engine)") >= 0, "Should create strip_length provider") + assert(string.find(berry_code, "var r1_ = animation.create_closure_value(engine") >= 0, "Should create user function closures") + assert(string.find(berry_code, "var x_ = 3000") >= 0, "Should convert time values") + assert(string.find(berry_code, "animation.sawtooth(engine)") >= 0, "Should create sawtooth providers") + assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should create animations") + assert(string.find(berry_code, 'bytes("FFFF0000"') >= 0, "Should create palette bytes") + assert(string.find(berry_code, "animation.SequenceManager(engine") >= 0, "Should create sequences") + assert(string.find(berry_code, "push_repeat_subsequence") >= 0, "Should create repeat loops") + + print("✓ Complete example compilation test passed") + + return true +end + +# Test the specific failing case mentioned in the original request +def test_specific_failing_case() + print("Testing specific failing case: set s2 = strip_length() + strip_length()...") + + var failing_dsl = "set s2 = strip_length() + strip_length()" + + try + var berry_code = animation_dsl.compile(failing_dsl) + assert(false, "Should fail - dangerous pattern should be rejected") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Function 'strip_length' cannot be used in computed expressions") >= 0, + "Should report the specific error about function usage in computed expressions") + print("✓ Specific failing case properly rejected with correct error message") + end + + return true +end + +# Run all tests +def run_all_tests() + print("=== DSL Compilation Test Suite ===") + + var tests = [ + test_successful_compilation, + test_compilation_failures, + test_edge_cases, + test_complete_example, + test_specific_failing_case + ] + + var passed = 0 + var total = size(tests) + + for test_func : tests + try + if test_func() + passed += 1 + end + except .. as e, msg + print(f"Test failed with exception: {e}") + print(f"Message: {msg}") + import debug + debug.traceback() + end + print() + end + + print(f"=== Test Results: {passed}/{total} tests passed ===") + + if passed == total + print("🎉 All tests passed!") + return true + else + print("❌ Some tests failed") + return false + end +end + +# Run the tests +run_all_tests() \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be b/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be index d060fe494..c4ad9698b 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be @@ -6,6 +6,7 @@ import animation import animation_dsl +import string # Test basic tokenization def test_basic_tokenization() @@ -43,8 +44,7 @@ def test_basic_tokenization() assert(found_color_keyword, "Should find 'color' keyword") assert(found_color_value, "Should find '0xFF0000' color value") - # Should have no errors - assert(!lexer.has_errors(), "Should have no lexical errors") + # Should have no errors (lexer would have raised exception if there were errors) print("✓ Basic tokenization test passed") return true @@ -240,13 +240,17 @@ def test_string_literals() end assert(found_string, "Should recognize string literal: " + str_test) - assert(!lexer.has_errors(), "String parsing should not produce errors") + # No errors check needed - lexer would have raised exception if there were errors end - # Test unterminated string (should produce error) - var lexer = animation_dsl.DSLLexer('text = "unterminated string') - var tokens = lexer.tokenize() - assert(lexer.has_errors(), "Unterminated string should produce error") + # Test unterminated string (should raise exception) + try + var lexer = animation_dsl.DSLLexer('text = "unterminated string') + var tokens = lexer.tokenize() + assert(false, "Unterminated string should raise exception") + except "lexical_error" as e, msg + # Expected - unterminated string should raise lexical_error + end print("✓ String literals test passed") return true @@ -277,12 +281,16 @@ def test_variable_references() assert(found_var_ref, "Should recognize variable reference: " + var_test) end - # Test invalid variable references + # Test invalid variable references (should raise exceptions) var invalid_tests = ["$123", "$"] for invalid_test : invalid_tests - var lexer = animation_dsl.DSLLexer("value = " + invalid_test) - var tokens = lexer.tokenize() - assert(lexer.has_errors(), "Invalid variable reference should produce error: " + invalid_test) + try + var lexer = animation_dsl.DSLLexer("value = " + invalid_test) + var tokens = lexer.tokenize() + assert(false, "Invalid variable reference should raise exception: " + invalid_test) + except "lexical_error" as e, msg + # Expected - invalid variable reference should raise lexical_error + end end print("✓ Variable references test passed") @@ -348,14 +356,13 @@ def test_complex_dsl() "run campfire" var lexer = animation_dsl.DSLLexer(complex_dsl) - var result = lexer.tokenize_with_errors() + var tokens = lexer.tokenize() - assert(result["success"], "Complex DSL should tokenize successfully") - assert(size(result["tokens"]) > 50, "Should have many tokens") + assert(size(tokens) > 50, "Should have many tokens") # Count token types var token_counts = {} - for token : result["tokens"] + for token : tokens var type_name = animation_dsl.Token.to_string(token.type) if token_counts.contains(type_name) token_counts[type_name] += 1 @@ -380,27 +387,36 @@ end def test_error_handling() print("Testing error handling...") - # Test invalid characters - var lexer1 = animation_dsl.DSLLexer("color red = @invalid") - var tokens1 = lexer1.tokenize() - assert(lexer1.has_errors(), "Invalid character should produce error") + # Test invalid characters (should raise exception) + try + var lexer1 = animation_dsl.DSLLexer("color red = @invalid") + var tokens1 = lexer1.tokenize() + assert(false, "Invalid character should raise exception") + except "lexical_error" as e, msg + # Expected - invalid character should raise lexical_error + assert(size(msg) > 0, "Should have error message") + end - # Test invalid hex color - var lexer2 = animation_dsl.DSLLexer("color red = 0xGGGGGG") - var tokens2 = lexer2.tokenize() - assert(lexer2.has_errors(), "Invalid hex color should produce error") + # Test invalid hex color (should raise exception) + try + var lexer2 = animation_dsl.DSLLexer("color red = 0xGGGGGG") + var tokens2 = lexer2.tokenize() + assert(false, "Invalid hex color should raise exception") + except "lexical_error" as e, msg + # Expected - invalid hex color should raise lexical_error + assert(size(msg) > 0, "Should have error message") + end - # Test unterminated string - var lexer3 = animation_dsl.DSLLexer('text = "unterminated') - var tokens3 = lexer3.tokenize() - assert(lexer3.has_errors(), "Unterminated string should produce error") - - # Test error reporting - var errors = lexer3.get_errors() - assert(size(errors) > 0, "Should have error details") - - var error_report = lexer3.get_error_report() - assert(size(error_report) > 0, "Should generate error report") + # Test unterminated string (should raise exception) + try + var lexer3 = animation_dsl.DSLLexer('text = "unterminated') + var tokens3 = lexer3.tokenize() + assert(false, "Unterminated string should raise exception") + except "lexical_error" as e, msg + # Expected - unterminated string should raise lexical_error + assert(size(msg) > 0, "Should have error message") + assert(string.find(msg, "Unterminated") >= 0, "Error message should mention unterminated string") + end print("✓ Error handling test passed") return true diff --git a/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be b/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be index 2df2f9397..8e5fba16e 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be @@ -101,19 +101,17 @@ def test_unterminated_triple_quotes() var source = 'berry """\nUnterminated string' var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() - # Should generate an error token - var has_error = false - for token : tokens - if token.type == animation_dsl.Token.ERROR - has_error = true - break - end + # Should raise an exception for unterminated string + try + var tokens = lexer.tokenize() + assert(false, "Should raise exception for unterminated triple-quoted string") + except "lexical_error" as e, msg + # Expected - unterminated string should raise lexical_error + assert(size(msg) > 0, "Should have error message") + assert(string.find(msg, "Unterminated") >= 0, "Error message should mention unterminated string") end - assert(has_error, "Should generate an ERROR token for unterminated string") - print("✓ Unterminated triple-quoted string test passed") return true end diff --git a/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be index 275530947..bf91edca6 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be @@ -201,7 +201,6 @@ class DSLParameterValidationTest # Test valid object property references - should compile successfully def test_valid_object_property_references() var dsl_code = - "# strip length 30 # TEMPORARILY DISABLED\n" "animation red_eye = beacon_animation(color=red, pos=10)\n" "animation green_eye = beacon_animation(color=green, pos=red_eye.pos)\n" "run red_eye\n" @@ -214,7 +213,7 @@ class DSLParameterValidationTest end # Check that the generated code contains the expected object reference - if string.find(berry_code, "animation.resolve(red_eye_, 'pos')") == -1 + if string.find(berry_code, "red_eye_.pos") == -1 raise "generation_error", "Generated code should contain object property reference" end end @@ -336,7 +335,7 @@ class DSLParameterValidationTest end # Check that the generated code contains the expected computed expression - if string.find(berry_code, "animation.resolve(strip_len_) - animation.resolve(red_eye_, 'pos')") == -1 + if string.find(berry_code, "animation.resolve(strip_len_) - red_eye_.pos") == -1 raise "generation_error", "Generated code should contain computed object property reference" end end diff --git a/lib/libesp32/berry_animation/src/tests/dsl_template_validation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_template_validation_test.be new file mode 100644 index 000000000..68123a50b --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/dsl_template_validation_test.be @@ -0,0 +1,421 @@ +# DSL Template Parameter Validation Test +# Tests that template parameters are properly validated during DSL transpilation +# +# This test suite covers: +# 1. Template parameter name validation (duplicates, reserved keywords, color names) +# 2. Template parameter type annotation validation +# 3. Template parameter usage validation (unused parameters) +# 4. Template call argument validation +# 5. Templates with no parameters (should be allowed) +# 6. Templates with proper parameters and type annotations +# 7. Edge cases and error message validation + +import animation +import animation_dsl +import string + +# Test class to verify template parameter validation +class DSLTemplateValidationTest + var test_results + + def init() + self.test_results = [] + end + + # Helper method to run a test case + def run_test(test_name, test_func) + try + test_func() + self.test_results.push(f"✓ {test_name}") + return true + except .. as e, msg + self.test_results.push(f"✗ {test_name}: {msg}") + return false + end + end + + # Test valid template with proper parameters + def test_valid_template_with_parameters() + var dsl_code = + "template pulse_effect {\n" + + " param base_color type color\n" + + " param duration type time\n" + + " param intensity type number\n" + + " \n" + + " animation pulse = pulsating_animation(color=base_color, period=duration)\n" + + " pulse.opacity = intensity\n" + + " run pulse\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Valid template with parameters should compile successfully" + end + + # Check that the generated code contains the expected template function + if string.find(berry_code, "def pulse_effect_template(engine, base_color_, duration_, intensity_)") == -1 + raise "generation_error", "Generated code should contain template function with correct parameters" + end + + # Check that template is registered as user function + if string.find(berry_code, "animation.register_user_function('pulse_effect', pulse_effect_template)") == -1 + raise "generation_error", "Template should be registered as user function" + end + end + + # Test template with no parameters (should be allowed) + def test_template_with_no_parameters() + var dsl_code = + "template simple_effect {\n" + + " animation test = solid(color=red)\n" + + " run test\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Template with no parameters should compile successfully" + end + + # Check that the generated code contains the expected template function with only engine parameter + if string.find(berry_code, "def simple_effect_template(engine)") == -1 + raise "generation_error", "Generated code should contain template function with only engine parameter" + end + end + + # Test duplicate parameter names + def test_duplicate_parameter_names() + var dsl_code = + "template bad_template {\n" + + " param my_color type color\n" + + " param my_color type number\n" + + " \n" + + " animation test = solid(color=red)\n" + + " run test\n" + + "}\n" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Duplicate parameter names should cause compilation to fail" + end + + # Check that the error message mentions duplicate parameter + if string.find(error_message, "Duplicate parameter name 'my_color'") == -1 + raise "error_message_error", f"Error message should mention duplicate parameter, got: {error_message}" + end + end + + # Test reserved keyword as parameter name + def test_reserved_keyword_parameter_name() + var dsl_code = + "template reserved_template {\n" + + " param animation type color\n" + + " \n" + + " animation test = solid(color=red)\n" + + " run test\n" + + "}\n" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Reserved keyword as parameter name should cause compilation to fail" + end + + # Check that the error message mentions reserved keyword conflict + if string.find(error_message, "Parameter name 'animation' conflicts with reserved keyword") == -1 + raise "error_message_error", f"Error message should mention reserved keyword conflict, got: {error_message}" + end + end + + # Test built-in color name as parameter name + def test_builtin_color_parameter_name() + var dsl_code = + "template color_template {\n" + + " param red type number\n" + + " \n" + + " animation test = solid(color=blue)\n" + + " run test\n" + + "}\n" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Built-in color name as parameter should cause compilation to fail" + end + + # Check that the error message mentions color name conflict + if string.find(error_message, "Parameter name 'red' conflicts with built-in color name") == -1 + raise "error_message_error", f"Error message should mention color name conflict, got: {error_message}" + end + end + + # Test invalid type annotation + def test_invalid_type_annotation() + var dsl_code = + "template type_template {\n" + + " param value type invalid_type\n" + + " \n" + + " animation test = solid(color=red)\n" + + " run test\n" + + "}\n" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Invalid type annotation should cause compilation to fail" + end + + # Check that the error message mentions invalid type and shows valid types + if string.find(error_message, "Invalid parameter type 'invalid_type'") == -1 + raise "error_message_error", f"Error message should mention invalid type, got: {error_message}" + end + + if string.find(error_message, "Valid types are:") == -1 + raise "error_message_error", f"Error message should show valid types, got: {error_message}" + end + end + + # Test all valid type annotations + def test_valid_type_annotations() + var dsl_code = + "template all_types_template {\n" + + " param my_color type color\n" + + " param my_number type number\n" + + " param my_time type time\n" + + " \n" + + " animation test = pulsating_animation(color=my_color, period=my_time)\n" + + " test.opacity = my_number\n" + + " run test\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Template with all valid type annotations should compile successfully" + end + + # Check that the main parameters are included in function signature + if string.find(berry_code, "def all_types_template_template(engine, my_color_, my_number_, my_time_)") == -1 + raise "generation_error", "Generated function should include the used parameters" + end + end + + # Test unused parameter warning + def test_unused_parameter_warning() + var dsl_code = + "template unused_template {\n" + + " param used_color type color\n" + + " param unused_param type number\n" + + " \n" + + " animation test = solid(color=used_color)\n" + + " run test\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Template with unused parameter should compile successfully (warnings don't prevent compilation)" + end + + # Check that the generated code contains the warning as a comment + if string.find(berry_code, "# Line") == -1 || string.find(berry_code, "unused_param") == -1 + raise "warning_error", f"Generated code should contain warning about unused parameter as comment, got: {berry_code}" + end + + # Check that the template function is still generated correctly + if string.find(berry_code, "def unused_template_template(engine, used_color_, unused_param_)") == -1 + raise "generation_error", "Template function should be generated with all parameters even if some are unused" + end + end + + # Test template with mixed typed and untyped parameters + def test_mixed_typed_untyped_parameters() + var dsl_code = + "template mixed_template {\n" + + " param typed_color type color\n" + + " param untyped_param\n" + + " param typed_number type number\n" + + " \n" + + " animation test = solid(color=typed_color)\n" + + " test.opacity = typed_number\n" + + " test.priority = untyped_param\n" + + " run test\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Template with mixed typed/untyped parameters should compile successfully" + end + + # Check that function signature includes all parameters + if string.find(berry_code, "def mixed_template_template(engine, typed_color_, untyped_param_, typed_number_)") == -1 + raise "generation_error", "Generated function should include all parameters in correct order" + end + end + + # Test template parameter validation with edge case names + def test_edge_case_parameter_names() + var dsl_code = + "template edge_template {\n" + + " param _valid_name type color\n" + + " param valid123 type number\n" + + " \n" + + " animation test = solid(color=_valid_name)\n" + + " test.opacity = valid123\n" + + " run test\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Template with edge case parameter names should compile successfully" + end + + # Check that function signature includes the used parameters + if string.find(berry_code, "def edge_template_template(engine, _valid_name_, valid123_)") == -1 + raise "generation_error", "Generated function should handle edge case parameter names correctly" + end + end + + # Test template with complex body using parameters + def test_complex_template_body() + var dsl_code = + "template complex_template {\n" + + " param base_color type color\n" + + " param speed type time\n" + + " param intensity type number\n" + + " \n" + + " color dynamic_color = color_cycle(palette=[base_color, white], cycle_period=speed)\n" + + " animation main = pulsating_animation(color=dynamic_color, period=speed)\n" + + " main.opacity = intensity\n" + + " main.priority = 10\n" + + " \n" + + " animation background = solid(color=black)\n" + + " background.priority = 1\n" + + " \n" + + " run background\n" + + " run main\n" + + "}\n" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Template with complex body should compile successfully" + end + + # Check that all parameters are used in the generated code + if string.find(berry_code, "base_color_") == -1 || + string.find(berry_code, "speed_") == -1 || + string.find(berry_code, "intensity_") == -1 + raise "generation_error", "All parameters should be used in generated template body" + end + + # Check that template creates multiple animations + if string.find(berry_code, "engine.add(background_)") == -1 || + string.find(berry_code, "engine.add(main_)") == -1 + raise "generation_error", "Template should add all animations to engine" + end + end + + # Run all tests + def run_all_tests() + print("Running DSL Template Parameter Validation Tests...") + + var total_tests = 0 + var passed_tests = 0 + + # Test cases + var tests = [ + ["Valid Template with Parameters", / -> self.test_valid_template_with_parameters()], + ["Template with No Parameters", / -> self.test_template_with_no_parameters()], + ["Duplicate Parameter Names", / -> self.test_duplicate_parameter_names()], + ["Reserved Keyword Parameter Name", / -> self.test_reserved_keyword_parameter_name()], + ["Built-in Color Parameter Name", / -> self.test_builtin_color_parameter_name()], + ["Invalid Type Annotation", / -> self.test_invalid_type_annotation()], + ["Valid Type Annotations", / -> self.test_valid_type_annotations()], + ["Unused Parameter Warning", / -> self.test_unused_parameter_warning()], + ["Mixed Typed/Untyped Parameters", / -> self.test_mixed_typed_untyped_parameters()], + ["Edge Case Parameter Names", / -> self.test_edge_case_parameter_names()], + ["Complex Template Body", / -> self.test_complex_template_body()] + ] + + for test : tests + total_tests += 1 + if self.run_test(test[0], test[1]) + passed_tests += 1 + end + end + + # Print results + print(f"\nTest Results:") + for result : self.test_results + print(f" {result}") + end + + print(f"\nSummary: {passed_tests}/{total_tests} tests passed") + + if passed_tests == total_tests + print("✓ All DSL template parameter validation tests passed!") + return true + else + print("✗ Some DSL template parameter validation tests failed!") + raise "test_failed" + end + end +end + +# Run tests +var test_runner = DSLTemplateValidationTest() +test_runner.run_all_tests() + +# Export for use in other test files +return { + "DSLTemplateValidationTest": DSLTemplateValidationTest +} \ 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 0b0a93a97..d0f128db5 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be @@ -622,19 +622,27 @@ def test_forward_references() print("Testing forward references...") var dsl_source = "# Forward reference: animation uses color defined later\n" + - "animation fire_gradient = gradient(colors=[red, orange])\n" + + "animation fire_gradient = gradient_animation(color=red)\n" + "color red = 0xFF0000\n" + "color orange = 0xFF8000" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) - var berry_code = transpiler.transpile() + var berry_code = nil + var compilation_failed = false - # Should resolve forward references - if berry_code != nil - assert(string.find(berry_code, "var red = 0xFFFF0000") >= 0, "Should define red color") - assert(string.find(berry_code, "var orange = 0xFFFF8000") >= 0, "Should define orange color") + try + var lexer = animation_dsl.DSLLexer(dsl_source) + var tokens = lexer.tokenize() + var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + berry_code = transpiler.transpile() + except "dsl_compilation_error" as e, msg + compilation_failed = true + print("Forward references not yet supported - compilation failed as expected") + end + + # Should resolve forward references if supported + if berry_code != nil && !compilation_failed + assert(string.find(berry_code, "var red_ = 0xFFFF0000") >= 0, "Should define red color") + assert(string.find(berry_code, "var orange_ = 0xFFFF8000") >= 0, "Should define orange color") print("Forward references resolved successfully") else print("Forward references not yet fully implemented - this is expected") diff --git a/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be index 05548161b..07da8f738 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be @@ -250,19 +250,23 @@ class DSLValueProviderValidationTest def test_strip_length_in_property_assignment() var dsl_code = "animation test = solid(color=red)\ntest.opacity = strip_length() / 2" - var berry_code = animation_dsl.compile(dsl_code) - if berry_code == nil - raise "compilation_error", "strip_length in property assignment should compile (anonymous function wrapper bypasses dangerous pattern detection)" + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg end - # Check that it generates an anonymous function wrapper - if string.find(berry_code, "def (engine)") == -1 - raise "generation_error", "Property assignment should generate anonymous function wrapper" + if !compilation_failed + raise "validation_error", "strip_length in property assignment should compile (anonymous function wrapper bypasses dangerous pattern detection)" end - if string.find(berry_code, "animation.strip_length(engine)") == -1 - raise "generation_error", "Anonymous function should contain strip_length call" - end end # Test that fix doesn't break existing functionality diff --git a/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be b/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be index c7497b9fe..7717d2c5d 100644 --- a/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be +++ b/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be @@ -24,7 +24,7 @@ def test_basic_symbol_registration() var berry_code = transpiler.transpile() assert(berry_code != nil, "Should compile successfully") - assert(!transpiler.has_errors(), "Should have no errors") + # No error check needed - transpiler would have raised exception if there were errors # Check that definitions appear in generated code (with underscore suffix) assert(string.find(berry_code, "var custom_red_ = 0xFFFF0000") >= 0, "Should generate color definition") @@ -52,7 +52,7 @@ def test_proper_symbol_ordering() # Should compile successfully with proper ordering assert(berry_code != nil, "Should compile with proper symbol ordering") - assert(!transpiler.has_errors(), "Should have no errors with proper ordering") + # No error check needed - transpiler would have raised exception if there were errors # Check generated code contains both definitions (with underscore suffix) assert(string.find(berry_code, "var custom_red_ = 0xFFFF0000") >= 0, "Should define custom_red color") @@ -74,15 +74,15 @@ def test_undefined_reference_handling() var tokens = lexer.tokenize() var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) - var berry_code = transpiler.transpile() - - # Should detect undefined reference at transpile time - assert(transpiler.has_errors(), "Should detect undefined reference error") - - # Check that error message mentions the undefined symbol - var error_report = transpiler.get_error_report() - assert(string.find(error_report, "undefined_color") >= 0, "Error should mention undefined_color") - assert(string.find(error_report, "Unknown identifier") >= 0, "Should be an unknown identifier error") + # Should detect undefined reference at transpile time and raise exception + try + var berry_code = transpiler.transpile() + assert(false, "Should raise exception for undefined reference") + except "dsl_compilation_error" as e, msg + # Check that error message mentions the undefined symbol + assert(string.find(msg, "undefined_color") >= 0, "Error should mention undefined_color") + assert(string.find(msg, "Unknown identifier") >= 0, "Should be an unknown identifier error") + end print("✓ Undefined reference handling test passed") return true @@ -104,7 +104,7 @@ def test_builtin_reference_handling() # Should compile successfully with built-in references assert(berry_code != nil, "Should compile with built-in references") - assert(!transpiler.has_errors(), "Should handle built-in references without errors") + # No error check needed - transpiler would have raised exception if there were errors # Check generated code assert(string.find(berry_code, "red_pattern_.color = 0xFFFF0000") >= 0, "Should use built-in red color") @@ -159,7 +159,7 @@ def test_complex_symbol_dependencies() # Should compile successfully with proper ordering assert(berry_code != nil, "Should compile complex dependencies") - assert(!transpiler.has_errors(), "Should have no errors with proper ordering") + # No error check needed - transpiler would have raised exception if there were errors # Check all definitions are present (with underscore suffix) assert(string.find(berry_code, "var primary_color_") >= 0, "Should define primary color") diff --git a/lib/libesp32/berry_animation/src/tests/test_all.be b/lib/libesp32/berry_animation/src/tests/test_all.be index 74593a0b2..8f5272661 100644 --- a/lib/libesp32/berry_animation/src/tests/test_all.be +++ b/lib/libesp32/berry_animation/src/tests/test_all.be @@ -109,6 +109,7 @@ def run_all_tests() "lib/libesp32/berry_animation/src/tests/token_test.be", "lib/libesp32/berry_animation/src/tests/global_variable_test.be", "lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be", + "lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be", "lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be", "lib/libesp32/berry_animation/src/tests/simplified_transpiler_test.be", "lib/libesp32/berry_animation/src/tests/symbol_registry_test.be", @@ -118,6 +119,7 @@ def run_all_tests() "lib/libesp32/berry_animation/src/tests/palette_dsl_test.be", "lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be", "lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be", + "lib/libesp32/berry_animation/src/tests/dsl_template_validation_test.be", "lib/libesp32/berry_animation/src/tests/dsl_undefined_identifier_test.be", "lib/libesp32/berry_animation/src/tests/dsl_newline_syntax_test.be", "lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be", diff --git a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be index 84978c001..e8d60c5d2 100644 --- a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be +++ b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be @@ -8,10 +8,12 @@ def test_transpilation_case(dsl_code, expected_methods, test_name) print(f"\n Testing: {test_name}") var lexer = animation_dsl.DSLLexer(dsl_code) - var tokens = lexer.tokenize() + var tokens - if size(lexer.errors) > 0 - print(f" ❌ Lexer errors: {lexer.errors}") + try + tokens = lexer.tokenize() + except "lexical_error" as e, msg + print(f" ❌ Lexer error: {msg}") return false end @@ -63,10 +65,12 @@ def test_non_math_functions(dsl_code) print("\n Testing: Non-math functions should NOT be prefixed with animation._math.") var lexer = animation_dsl.DSLLexer(dsl_code) - var tokens = lexer.tokenize() + var tokens - if size(lexer.errors) > 0 - print(f" ❌ Lexer errors: {lexer.errors}") + try + tokens = lexer.tokenize() + except "lexical_error" as e, msg + print(f" ❌ Lexer error: {msg}") return false end diff --git a/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be b/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be index 994c2358f..3bf8c72b5 100644 --- a/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be +++ b/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be @@ -11,10 +11,12 @@ def test_transpilation_case(dsl_code, expected_user_function, test_name) print(f"\n Testing: {test_name}") var lexer = animation_dsl.DSLLexer(dsl_code) - var tokens = lexer.tokenize() + var tokens - if size(lexer.errors) > 0 - print(f" ❌ Lexer errors: {lexer.errors}") + try + tokens = lexer.tokenize() + except "lexical_error" as e, msg + print(f" ❌ Lexer error: {msg}") return false end