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 361e2397e..49de41a68 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md +++ b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md @@ -377,6 +377,26 @@ SUCCESS SUCCESS ``` +## demo_value_meter.anim + +**Status:** ✅ Success + +## Symbol Table + +| Symbol | Type | Builtin | Dangerous | Takes Args | +|---------------------------|----------------------------|---------|-----------|------------| +| `back_pattern` | animation | | | | +| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | +| `palette_meter_animation` | animation_constructor | ✓ | ⚠️ | ✓ | +| `rainbow_with_white` | palette | | | | +| `rand_meter` | user_function | | | ✓ | + +### Compilation Output + +``` +SUCCESS +``` + ## disco_strobe.anim **Status:** ✅ Success @@ -702,34 +722,6 @@ SUCCESS SUCCESS ``` -## plasma_wave.anim - -**Status:** ✅ Success - -## Symbol Table - -| Symbol | Type | Builtin | Dangerous | Takes Args | -|--------------------------|----------------------------|---------|-----------|------------| -| `SINE` | constant | ✓ | | | -| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | -| `plasma_base` | animation | | | | -| `plasma_colors` | palette | | | | -| `plasma_wave1` | animation | | | | -| `plasma_wave2` | animation | | | | -| `plasma_wave3` | animation | | | | -| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ | -| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ | -| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | -| `wave1_pattern` | color | | | | -| `wave2_pattern` | color | | | | -| `wave3_pattern` | color | | | | - -### Compilation Output - -``` -SUCCESS -``` - ## palette_demo.anim **Status:** ✅ Success @@ -789,6 +781,34 @@ SUCCESS SUCCESS ``` +## plasma_wave.anim + +**Status:** ✅ Success + +## Symbol Table + +| Symbol | Type | Builtin | Dangerous | Takes Args | +|--------------------------|----------------------------|---------|-----------|------------| +| `SINE` | constant | ✓ | | | +| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | +| `plasma_base` | animation | | | | +| `plasma_colors` | palette | | | | +| `plasma_wave1` | animation | | | | +| `plasma_wave2` | animation | | | | +| `plasma_wave3` | animation | | | | +| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ | +| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ | +| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | +| `wave1_pattern` | color | | | | +| `wave2_pattern` | color | | | | +| `wave3_pattern` | color | | | | + +### Compilation Output + +``` +SUCCESS +``` + ## police_lights.anim **Status:** ✅ Success @@ -1236,8 +1256,8 @@ SUCCESS ## Summary -- **Total files processed:** 50 -- **Successfully compiled:** 47 +- **Total files processed:** 51 +- **Successfully compiled:** 48 - **Failed to compile:** 3 ### Successful Files @@ -1257,6 +1277,7 @@ SUCCESS - ✅ demo_shutter_rainbow_central.anim - ✅ demo_shutter_rainbow_leftright.anim - ✅ demo_shutter_rainbow2.anim +- ✅ demo_value_meter.anim - ✅ disco_strobe.anim - ✅ fire_flicker.anim - ✅ heartbeat_pulse.anim @@ -1267,9 +1288,9 @@ SUCCESS - ✅ meteor_shower.anim - ✅ neon_glow.anim - ✅ ocean_waves.anim -- ✅ plasma_wave.anim - ✅ palette_demo.anim - ✅ palette_showcase.anim +- ✅ plasma_wave.anim - ✅ police_lights.anim - ✅ property_assignment_demo.anim - ✅ rainbow_cycle.anim diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be new file mode 100644 index 000000000..3ea093e60 --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be @@ -0,0 +1,74 @@ +# Generated Berry code from Animation DSL +# Source: demo_value_meter.anim +# +# This file was automatically generated by compile_all_examples.sh +# Do not edit manually - changes will be overwritten + +import animation + +# Pattern of colors in the background based on palette, rotating over 5 s +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + +# Berry code block + +def rand_meter(time_ms, self) + import math + var r = math.rand() % 101 + return r +end + +# End berry code block +# External function declaration: rand_meter +animation.register_user_function("rand_meter", rand_meter) +# define a palette of rainbow colors including white with constant brightness +var rainbow_with_white_ = bytes( + "FFFC0000" # Red + "FFFF8000" # Orange + "FFFFFF00" # Yellow + "FF00FF00" # Green + "FF00FFFF" # Cyan + "FF0080FF" # Blue + "FF8000FF" # Violet + "FFCCCCCC" # White + "FFFC0000" # Red - need to add the first color at last position to ensure roll-over +) +# define a gradient across the whole strip +var back_pattern_ = animation.palette_meter_animation(engine) +back_pattern_.value_func = animation.create_closure_value(engine, def (engine) return animation.get_user_function('rand_meter')(engine) end) +engine.add(back_pattern_) +engine.run() + + +#- Original DSL source: +# Pattern of colors in the background based on palette, rotating over 5 s + +berry """ +def rand_meter(time_ms, self) + import math + var r = math.rand() % 101 + return r +end +""" + +extern function rand_meter + +# define a palette of rainbow colors including white with constant brightness +palette rainbow_with_white = [ + 0xFC0000 # Red + 0xFF8000 # Orange + 0xFFFF00 # Yellow + 0x00FF00 # Green + 0x00FFFF # Cyan + 0x0080FF # Blue + 0x8000FF # Violet + 0xCCCCCC # White + 0xFC0000 # Red - need to add the first color at last position to ensure roll-over +] + +# define a gradient across the whole strip +animation back_pattern = palette_meter_animation(value_func = rand_meter) + +run back_pattern + +-# diff --git a/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim b/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim new file mode 100644 index 000000000..8223163cf --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim @@ -0,0 +1,29 @@ +# Pattern of colors in the background based on palette, rotating over 5 s + +berry """ +def rand_meter(time_ms, self) + import math + var r = math.rand() % 101 + return r +end +""" + +extern function rand_meter + +# define a palette of rainbow colors including white with constant brightness +palette rainbow_with_white = [ + 0xFC0000 # Red + 0xFF8000 # Orange + 0xFFFF00 # Yellow + 0x00FF00 # Green + 0x00FFFF # Cyan + 0x0080FF # Blue + 0x8000FF # Violet + 0xCCCCCC # White + 0xFC0000 # Red - need to add the first color at last position to ensure roll-over +] + +# define a gradient across the whole strip +animation back_pattern = palette_meter_animation(value_func = rand_meter) + +run back_pattern diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_1_33_color_pattern_spatial_rotate.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_1_33_color_pattern_spatial_rotate.anim index 3e596f97b..f81cce903 100644 --- a/lib/libesp32/berry_animation/anim_tutorials/chap_1_33_color_pattern_spatial_rotate.anim +++ b/lib/libesp32/berry_animation/anim_tutorials/chap_1_33_color_pattern_spatial_rotate.anim @@ -13,7 +13,7 @@ palette rainbow_with_white = [ 0xFC0000 # Red - need to add the first color at last position to ensure roll-over ] -# define a color attribute that cycles over time, cycle is 10 seconds +# define a color attribute cycles color in space color rainbow_rich_color = rich_palette(palette=rainbow_with_white, cycle_period=0, transition_type=SINE) # define a gradient across the whole strip diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_1_40_color_pattern_meter.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_1_40_color_pattern_meter.anim index 18f0f47cf..b571b9c2b 100644 --- a/lib/libesp32/berry_animation/anim_tutorials/chap_1_40_color_pattern_meter.anim +++ b/lib/libesp32/berry_animation/anim_tutorials/chap_1_40_color_pattern_meter.anim @@ -8,6 +8,8 @@ def rand_meter(time_ms, self) end """ +extern function rand_meter + # define a palette of rainbow colors including white with constant brightness palette rainbow_with_white = [ 0xFC0000 # Red @@ -21,7 +23,10 @@ palette rainbow_with_white = [ 0xFC0000 # Red - need to add the first color at last position to ensure roll-over ] +# define a color attribute cycles color in space +color rainbow_rich_color = rich_palette(palette=rainbow_with_white, cycle_period=0, transition_type=SINE) + # define a gradient across the whole strip -animation back_pattern = palette_meter_animation(value_func = rand_meter) +animation back_pattern = palette_meter_animation(color_source = rainbow_rich_color, value_func = rand_meter) run back_pattern diff --git a/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md b/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md index c9871b910..c8d1ab59c 100644 --- a/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md +++ b/lib/libesp32/berry_animation/docs/ANIMATION_CLASS_HIERARCHY.md @@ -22,7 +22,8 @@ ParameterizedObject (base class with parameter management and playable interface │ ├── BeaconAnimation (pulse at specific position) │ ├── CrenelPositionAnimation (crenel/square wave pattern) │ ├── BreatheAnimation (breathing effect) -│ ├── PalettePatternAnimation (base for palette-based animations) +│ ├── PaletteGradientAnimation (gradient patterns with palette colors) +│ │ └── PaletteMeterAnimation (meter/bar patterns) │ ├── CometAnimation (moving comet with tail) │ ├── FireAnimation (realistic fire effect) │ ├── TwinkleAnimation (twinkling stars effect) @@ -243,11 +244,11 @@ Generates oscillating values using various waveforms. Inherits from `ValueProvid | Parameter | Type | Default | Constraints | Description | |-----------|------|---------|-------------|-------------| | `min_value` | int | 0 | - | Minimum oscillation value | -| `max_value` | int | 100 | - | Maximum oscillation value | +| `max_value` | int | 255 | - | Maximum oscillation value | | `duration` | int | 1000 | min: 1 | Oscillation period in milliseconds | | `form` | int | 1 | enum: [1,2,3,4,5,6,7,8,9] | Waveform type | -| `phase` | int | 0 | 0-100 | Phase shift percentage | -| `duty_cycle` | int | 50 | 0-100 | Duty cycle for square/triangle waves | +| `phase` | int | 0 | 0-255 | Phase shift in 0-255 range (mapped to duration) | +| `duty_cycle` | int | 127 | 0-255 | Duty cycle for square/triangle waves in 0-255 range | **Waveform Constants**: - `1` (SAWTOOTH) - Linear ramp from min to max @@ -301,6 +302,18 @@ The ClosureValueProvider includes built-in mathematical helper methods that can - **Cosine Behavior**: Matches oscillator COSINE waveform (starts at minimum, not maximum) - **Scale Function**: Uses `tasmota.scale_int()` for efficient integer scaling +#### Closure Signature + +Closures used with ClosureValueProvider must follow this signature: +```berry +def closure_func(engine, param_name, time_ms) + # engine: AnimationEngine reference + # param_name: Name of the parameter being computed + # time_ms: Current time in milliseconds + return computed_value +end +``` + #### Usage in Computed Values These methods are automatically available in DSL computed expressions: @@ -1029,51 +1042,23 @@ animation strobe = wave_animation( -### PalettePatternAnimation +### PaletteGradientAnimation -Applies colors from a color provider to specific patterns using an efficient bytes() buffer. Inherits from `Animation`. +Creates shifting gradient patterns with palette colors. Inherits from `Animation`. | Parameter | Type | Default | Constraints | Description | |-----------|------|---------|-------------|-------------| | `color_source` | instance | nil | - | Color provider for pattern mapping | -| `pattern_func` | function | nil | - | Function that generates pattern values (0-255) for each pixel | +| `shift_period` | int | 0 | min: 0 | Time for one complete shift cycle in ms (0 = static gradient) | +| `spatial_period` | int | 0 | min: 0 | Spatial period in pixels (0 = full strip length) | +| `phase_shift` | int | 0 | 0-255 | Phase shift in 0-255 range (mapped to spatial period) | | *(inherits all Animation parameters)* | | | | | **Implementation Details:** - Uses `bytes()` buffer for efficient storage of per-pixel values -- Pattern function should return values in 0-255 range - Color source receives values in 0-255 range via `get_color_for_value(value, time_ms)` - Buffer automatically resizes when strip length changes - -**Factory**: `animation.palette_pattern_animation(engine)` - -### PaletteWaveAnimation - -Creates sine wave patterns with palette colors. Inherits from `PalettePatternAnimation`. - -| Parameter | Type | Default | Constraints | Description | -|-----------|------|---------|-------------|-------------| -| `wave_period` | int | 5000 | min: 1 | Wave animation period in ms | -| `wave_length` | int | 10 | min: 1 | Wave length in pixels | -| *(inherits all PalettePatternAnimation parameters)* | | | | | - -**Pattern Generation:** -- Generates sine wave values in 0-255 range using `tasmota.sine_int()` -- Wave position advances based on `wave_period` timing -- Each pixel's value calculated as: `sine_value = tasmota.scale_int(sine_int(angle), -4096, 4096, 0, 255)` - -**Factory**: `animation.palette_wave_animation(engine)` - -### PaletteGradientAnimation - -Creates shifting gradient patterns with palette colors. Inherits from `PalettePatternAnimation`. - -| Parameter | Type | Default | Constraints | Description | -|-----------|------|---------|-------------|-------------| -| `shift_period` | int | 10000 | min: 0 | Time for one complete shift cycle in ms (0 = static gradient) | -| `spatial_period` | int | 0 | min: 0 | Spatial period in pixels (0 = full strip length) | -| `phase_shift` | int | 0 | 0-100 | Phase shift as percentage of spatial period | -| *(inherits all PalettePatternAnimation parameters)* | | | | | +- Optimized LUT (Lookup Table) support for color providers **Pattern Generation:** - Generates linear gradient values in 0-255 range across the specified spatial period @@ -1084,23 +1069,27 @@ Creates shifting gradient patterns with palette colors. Inherits from `PalettePa - `0`: Gradient spans the full strip length (single gradient across entire strip) - `> 0`: Gradient repeats every N pixels - **phase_shift**: Shifts the gradient pattern spatially by a percentage of the spatial period -- Each pixel's value calculated as: `value = tasmota.scale_uint(spatial_position, 0, spatial_period-1, 0, 255)` +- Each pixel's value calculated using optimized fixed-point arithmetic **Factory**: `animation.palette_gradient_animation(engine)` ### PaletteMeterAnimation -Creates meter/bar patterns based on a value function. Inherits from `PalettePatternAnimation`. +Creates meter/bar patterns based on a value function. Inherits from `PaletteGradientAnimation`. | Parameter | Type | Default | Constraints | Description | |-----------|------|---------|-------------|-------------| -| `value_func` | function | nil | - | Function that provides meter values (0-100 range) | -| *(inherits all PalettePatternAnimation parameters)* | | | | | +| `value_func` | function | nil | - | Function that provides meter values (0-255 range) | +| *(inherits all PaletteGradientAnimation parameters)* | | | | | **Pattern Generation:** -- Value function returns percentage (0-100) representing meter level +- Value function signature: `value_func(engine, time_ms, self)` where: + - `engine`: AnimationEngine reference + - `time_ms`: Elapsed time since animation start + - `self`: Reference to the animation instance +- Value function returns value in 0-255 range representing meter level - Pixels within meter range get value 255, others get value 0 -- Meter position calculated as: `position = tasmota.scale_uint(value, 0, 100, 0, strip_length)` +- Meter position calculated as: `position = tasmota.scale_uint(value, 0, 255, 0, strip_length)` **Factory**: `animation.palette_meter_animation(engine)` diff --git a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md index bf314efdd..b143fb0b7 100644 --- a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md +++ b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md @@ -59,6 +59,7 @@ The following keywords are reserved and cannot be used as identifiers: - `set` - Variable assignment - `import` - Import Berry modules - `berry` - Embed arbitrary Berry code +- `extern` - Declare external Berry functions for DSL use **Definition Keywords:** - `color` - Color definition @@ -295,6 +296,70 @@ print("Animation configured") run pulse ``` +### External Function Declarations + +The `extern` keyword declares Berry functions defined in `berry` code blocks so they can be used in DSL expressions and computed parameters: + +```berry +# Define the function in a berry block +berry """ +def rand_meter(time_ms, self) + import math + var r = math.rand() % 101 + return r +end + +def breathing_effect(base_value, amplitude) + import math + var time_factor = (tasmota.millis() / 1000) % 4 # 4-second cycle + var breath = math.sin(time_factor * math.pi / 2) + return int(base_value + breath * amplitude) +end +""" + +# Declare functions as external so DSL knows about them +extern function rand_meter +extern function breathing_effect + +# Now they can be used in DSL expressions +animation back_pattern = palette_meter_animation(value_func = rand_meter) +animation breathing_light = solid(color=blue) +breathing_light.opacity = breathing_effect + +run back_pattern +``` + +**External Function Features:** +- Functions must be declared with `extern function function_name` after being defined in `berry` blocks +- Can be used with or without parentheses: `rand_meter` or `rand_meter()` +- Automatically receive `engine` as the first parameter when called from DSL +- Can be used in computed parameters and property assignments +- Support the same signature pattern as registered user functions + +**Function Signature Requirements:** +External functions should follow the user function pattern where the first parameter is the engine: + +```berry +berry """ +def my_external_func(engine, param1, param2) + # engine is automatically provided by DSL + # param1, param2 are user-provided parameters + return computed_value +end +""" + +extern function my_external_func + +# Usage in DSL (engine parameter is automatic) +animation test = solid(color=red) +test.opacity = my_external_func # Called as my_external_func(engine) +``` + +**Comparison with User Functions:** +- **External functions**: Defined in `berry` blocks within the same DSL file, declared with `extern function` +- **User functions**: Defined in separate Berry modules, imported with `import`, registered with `animation.register_user_function()` +- Both use the same calling convention and can be used interchangeably in DSL expressions + ## Color Definitions The `color` keyword defines static colors or color providers: @@ -1449,11 +1514,13 @@ statement = import_stmt | property_assignment | sequence | template_def + | external_stmt | execution_stmt ; (* Import and Configuration *) import_stmt = "import" identifier ; config_stmt = variable_assignment ; +external_stmt = "extern" "function" identifier ; (* strip_config = "strip" "length" number ; -- TEMPORARILY DISABLED *) variable_assignment = "set" identifier "=" expression ; @@ -1607,6 +1674,7 @@ This applies to: - Execution statements - **Template animations**: Reusable animation classes with parameters extending `engine_proxy` - User-defined functions (with engine-first parameter pattern) - see **[User Functions Guide](USER_FUNCTIONS.md)** +- **External function declarations**: `extern` keyword to declare Berry functions defined in `berry` blocks for DSL use - **User functions in computed parameters**: User functions can be used in arithmetic expressions alongside mathematical functions - **Flexible parameter syntax**: Commas optional when parameters are on separate lines - **Computed values**: Arithmetic expressions with value providers automatically create closures diff --git a/lib/libesp32/berry_animation/src/animations/gradient.be b/lib/libesp32/berry_animation/src/animations/gradient.be index 0a61a5d04..ed6193f04 100644 --- a/lib/libesp32/berry_animation/src/animations/gradient.be +++ b/lib/libesp32/berry_animation/src/animations/gradient.be @@ -31,7 +31,7 @@ class GradientAnimation : animation.animation self.phase_offset = 0 # Initialize with default strip length from engine - var strip_length = self.engine.get_strip_length() + var strip_length = self.engine.strip_length self.current_colors.resize(strip_length) # Initialize colors to black @@ -47,7 +47,7 @@ class GradientAnimation : animation.animation super(self).on_param_changed(name, value) # TODO maybe be more specific on attribute name # Handle strip length changes from engine - var current_strip_length = self.engine.get_strip_length() + var current_strip_length = self.engine.strip_length if size(self.current_colors) != current_strip_length self.current_colors.resize(current_strip_length) var i = size(self.current_colors) @@ -92,7 +92,7 @@ class GradientAnimation : animation.animation # Cache parameter values for performance var gradient_type = self.gradient_type var color_param = self.color - var strip_length = self.engine.get_strip_length() + var strip_length = self.engine.strip_length # Ensure current_colors array matches strip length if size(self.current_colors) != strip_length @@ -205,7 +205,7 @@ class GradientAnimation : animation.animation # Auto-fix time_ms and start_time time_ms = self._fix_time_ms(time_ms) - var strip_length = self.engine.get_strip_length() + var strip_length = self.engine.strip_length var i = 0 while i < strip_length && i < frame.width if i < size(self.current_colors) @@ -271,4 +271,7 @@ def gradient_two_color_linear(engine) return anim end -return {'gradient_animation': GradientAnimation, 'gradient_rainbow_linear': gradient_rainbow_linear, 'gradient_rainbow_radial': gradient_rainbow_radial, 'gradient_two_color_linear': gradient_two_color_linear} \ No newline at end of file +return {'gradient_animation': GradientAnimation, + 'gradient_rainbow_linear': gradient_rainbow_linear, + 'gradient_rainbow_radial': gradient_rainbow_radial, + 'gradient_two_color_linear': gradient_two_color_linear} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/animations/palette_pattern.be b/lib/libesp32/berry_animation/src/animations/palette_pattern.be index c98670331..4d2610efa 100644 --- a/lib/libesp32/berry_animation/src/animations/palette_pattern.be +++ b/lib/libesp32/berry_animation/src/animations/palette_pattern.be @@ -1,25 +1,25 @@ -# PalettePattern animation effect for Berry Animation Framework +# PaletteGradient animation effect for Berry Animation Framework # -# This animation applies colors from a color provider to specific patterns or regions. -# It allows for more complex visual effects by combining palette colors with patterns. -# -# This version supports both RichPaletteAnimation and ColorProvider instances as color sources, -# allowing for more flexible usage of color providers. +# This animation creates gradient patterns with palette colors. +# It supports shifting gradients, spatial periods, and phase shifts. import "./core/param_encoder" as encode_constraints -#@ solidify:PalettePatternAnimation,weak -class PalettePatternAnimation : animation.animation +# Gradient pattern animation - creates shifting gradient patterns +#@ solidify:PaletteGradientAnimation,weak +class PaletteGradientAnimation : animation.animation var value_buffer # Buffer to store values for each pixel (bytes object) # Static definitions of parameters with constraints static var PARAMS = animation.enc_params({ - # Palette pattern-specific parameters + # Gradient-specific parameters "color_source": {"default": nil, "type": "instance"}, - "pattern_func": {"default": nil, "type": "function"} + "shift_period": {"min": 0, "default": 0}, # Time for one complete shift cycle in ms (0 = static) + "spatial_period": {"min": 0, "default": 0}, # Spatial period in pixels (0 = full strip) + "phase_shift": {"min": 0, "max": 255, "default": 0} # Phase shift in 0-255 range }) - # Initialize a new PalettePattern animation + # Initialize a new gradient pattern animation # # @param engine: AnimationEngine - Required animation engine reference def init(engine) @@ -29,6 +29,9 @@ class PalettePatternAnimation : animation.animation # Initialize non-parameter instance variables only self.value_buffer = bytes() + # Set default name + self.name = "palette_gradient" + # Initialize value buffer with default frame width self._initialize_value_buffer() end @@ -46,24 +49,47 @@ class PalettePatternAnimation : animation.animation end end - # Update the value buffer based on the current time - # - # @param time_ms: int - Current time in milliseconds + # Update the value buffer to generate gradient pattern def _update_value_buffer(time_ms, strip_length) - var pattern_func = self.pattern_func - if pattern_func == nil - return + # Cache parameter values for performance + var shift_period = self.shift_period + var spatial_period = self.spatial_period + var phase_shift = self.phase_shift + + # Determine effective spatial period (0 means full strip) + var effective_spatial_period = spatial_period > 0 ? spatial_period : strip_length + + # Calculate the temporal shift position (how much the pattern has moved over time) + var temporal_offset = 0 + if shift_period > 0 + temporal_offset = tasmota.scale_uint(time_ms % shift_period, 0, shift_period, 0, effective_spatial_period) end + # Calculate the phase shift offset in pixels + var phase_offset = tasmota.scale_uint(phase_shift, 0, 255, 0, effective_spatial_period) + # Calculate values for each pixel var i = 0 + # Calculate position within the spatial period, including temporal and phase offsets + var spatial_pos = (temporal_offset + phase_offset) % effective_spatial_period + + # Calculate the increment per pixel, in 1/1024 of pixels + # We calculate 1024*255/effective_spatial_period + # But for rounding we actually calculate + # ((1024 * 255 * 2) + 1) / (2 * effective_spatial_period) + # Note: (1024 * 255 * 2) + 1 = 522241 + var incr_1024 = (522241 / effective_spatial_period) >> 1 + + # 'spatial_1024' is our accumulator in 1/1024th of pixels, 2^10 + var spatial_1024 = spatial_pos * incr_1024 + var buffer = self.value_buffer._buffer() # 'buffer' is of type 'comptr' + + # var effective_spatial_period_1 = effective_spatial_period - 1 + # # Calculate the increment in 1/256 of values + # var increment = tasmota.scale_uint(effective_spatial_period) while i < strip_length - var pattern_value = pattern_func(i, time_ms, self) - # Pattern function should return values in 0-255 range, clamp to byte range - var byte_value = int(pattern_value) - if byte_value < 0 byte_value = 0 end - if byte_value > 255 byte_value = 255 end - self.value_buffer[i] = byte_value + buffer[i] = spatial_1024 >> 10 + spatial_1024 += incr_1024 # we don't really care about overflow since we clamp modula 255 anyways i += 1 end end @@ -163,8 +189,8 @@ class PalettePatternAnimation : animation.animation # Handle parameter changes def on_param_changed(name, value) super(self).on_param_changed(name, value) - if name == "pattern_func" || name == "color_source" - # Reinitialize value buffer when pattern or color source changes + if name == "color_source" + # Reinitialize value buffer when color source changes self._initialize_value_buffer() end end @@ -176,125 +202,9 @@ class PalettePatternAnimation : animation.animation end end -# Wave pattern animation - creates sine wave patterns -#@ solidify:PaletteWaveAnimation,weak -class PaletteWaveAnimation : PalettePatternAnimation - # Static definitions of parameters with constraints - static var PARAMS = animation.enc_params({ - # Wave-specific parameters only - "wave_period": {"min": 1, "default": 5000}, - "wave_length": {"min": 1, "default": 10} - }) - - # Initialize a new wave pattern animation - # - # @param engine: AnimationEngine - Required animation engine reference - def init(engine) - # Call parent constructor - super(self).init(engine) - - # Set default name - self.name = "palette_wave" - end - - # Override _update_value_buffer to generate wave pattern directly - def _update_value_buffer(time_ms, strip_length) - # Cache parameter values for performance - var wave_period = self.wave_period - var wave_length = self.wave_length - - # Calculate the wave position using scale_uint for better precision - # var position = tasmota.scale_uint(time_ms % wave_period, 0, wave_period, 0, 1000) / 1000.0 - # var offset = int(position * wave_length) - var offset = tasmota.scale_uint(time_ms % wave_period, 0, wave_period, 0, wave_length) - - # Calculate values for each pixel - var i = 0 - while i < strip_length - # Calculate the wave value (0-255) using scale_uint - var pos_in_wave = (i + offset) % wave_length - var angle = tasmota.scale_uint(pos_in_wave, 0, wave_length, 0, 32767) # 0 to 2π in fixed-point - var sine_value = tasmota.sine_int(angle) # -4096 to 4096 - - # Map sine value from -4096..4096 to 0..255 - var byte_value = tasmota.scale_int(sine_value, -4096, 4096, 0, 255) - self.value_buffer[i] = byte_value - i += 1 - end - end -end - -# Gradient pattern animation - creates shifting gradient patterns -#@ solidify:PaletteGradientAnimation,weak -class PaletteGradientAnimation : PalettePatternAnimation - # Static definitions of parameters with constraints - static var PARAMS = animation.enc_params({ - # Gradient-specific parameters only - "shift_period": {"min": 0, "default": 0}, # Time for one complete shift cycle in ms (0 = static) - "spatial_period": {"min": 0, "default": 0}, # Spatial period in pixels (0 = full strip) - "phase_shift": {"min": 0, "max": 100, "default": 0} # Phase shift as percentage (0-100) - }) - - # Initialize a new gradient pattern animation - # - # @param engine: AnimationEngine - Required animation engine reference - def init(engine) - # Call parent constructor - super(self).init(engine) - - # Set default name - self.name = "palette_gradient" - end - - # Override _update_value_buffer to generate gradient pattern directly - def _update_value_buffer(time_ms, strip_length) - # Cache parameter values for performance - var shift_period = self.shift_period - var spatial_period = self.spatial_period - var phase_shift = self.phase_shift - - # Determine effective spatial period (0 means full strip) - var effective_spatial_period = spatial_period > 0 ? spatial_period : strip_length - - # Calculate the temporal shift position (how much the pattern has moved over time) - var temporal_offset = 0 - if shift_period > 0 - temporal_offset = tasmota.scale_uint(time_ms % shift_period, 0, shift_period, 0, effective_spatial_period) - end - - # Calculate the phase shift offset in pixels - var phase_offset = tasmota.scale_uint(phase_shift, 0, 100, 0, effective_spatial_period) - - # Calculate values for each pixel - var i = 0 - # Calculate position within the spatial period, including temporal and phase offsets - var spatial_pos = (temporal_offset + phase_offset) % effective_spatial_period - - # Calculate the increment per pixel, in 1/1024 of pixels - # We calculate 1024*255/effective_spatial_period - # But for rounding we actually calculate - # ((1024 * 255 * 2) + 1) / (2 * effective_spatial_period) - # Note: (1024 * 255 * 2) + 1 = 522241 - var incr_1024 = (522241 / effective_spatial_period) >> 1 - - # 'spatial_1024' is our accumulator in 1/1024th of pixels, 2^10 - var spatial_1024 = spatial_pos * incr_1024 - var buffer = self.value_buffer._buffer() # 'buffer' is of type 'comptr' - - # var effective_spatial_period_1 = effective_spatial_period - 1 - # # Calculate the increment in 1/256 of values - # var increment = tasmota.scale_uint(effective_spatial_period) - while i < strip_length - buffer[i] = spatial_1024 >> 10 - spatial_1024 += incr_1024 # we don't really care about overflow since we clamp modula 255 anyways - i += 1 - end - end -end - # Value meter pattern animation - creates meter/bar patterns based on a value function #@ solidify:PaletteMeterAnimation,weak -class PaletteMeterAnimation : PalettePatternAnimation +class PaletteMeterAnimation : PaletteGradientAnimation # Static definitions of parameters with constraints static var PARAMS = animation.enc_params({ # Meter-specific parameters only @@ -320,11 +230,14 @@ class PaletteMeterAnimation : PalettePatternAnimation return end + # Cache engine reference to avoid dereferencing + var engine = self.engine + # Get the current value - var current_value = value_func(time_ms, self) + var current_value = value_func(engine, time_ms, self) # Calculate the meter position using scale_uint for better precision - var meter_position = tasmota.scale_uint(current_value, 0, 100, 0, strip_length) + var meter_position = tasmota.scale_uint(current_value, 0, 255, 0, strip_length) # Calculate values for each pixel var i = 0 @@ -337,8 +250,6 @@ class PaletteMeterAnimation : PalettePatternAnimation end return { - 'palette_pattern_animation': PalettePatternAnimation, - 'palette_wave_animation': PaletteWaveAnimation, 'palette_gradient_animation': PaletteGradientAnimation, 'palette_meter_animation': PaletteMeterAnimation } \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/be_frame_buffer_ntv_impl.cpp b/lib/libesp32/berry_animation/src/be_frame_buffer_ntv_impl.cpp index c068ae83e..42a62314e 100644 --- a/lib/libesp32/berry_animation/src/be_frame_buffer_ntv_impl.cpp +++ b/lib/libesp32/berry_animation/src/be_frame_buffer_ntv_impl.cpp @@ -587,17 +587,17 @@ extern "C" { // Handle negative indices (Python-style) if (start_pos < 0) { start_pos += width; } - if (end_pos < 0) { end_pos += width; } + if (end_pos < 0) { end_pos += width + 1; } // Clamp to valid range if (start_pos < 0) { start_pos = 0; } if (end_pos < 0) { end_pos = 0; } if (start_pos >= width) { be_return_nil(vm); } - if (end_pos >= width) { end_pos = width - 1; } - if (end_pos < start_pos) { be_return_nil(vm); } + if (end_pos >= width) { end_pos = width; } + if (end_pos <= start_pos) { be_return_nil(vm); } // Fill the region with the color - for (int32_t i = start_pos; i <= end_pos; i++) { + for (int32_t i = start_pos; i < end_pos; i++) { pixels_buf[i] = color; } diff --git a/lib/libesp32/berry_animation/src/core/animation_engine.be b/lib/libesp32/berry_animation/src/core/animation_engine.be index 0e0391d93..efdaf1ebb 100644 --- a/lib/libesp32/berry_animation/src/core/animation_engine.be +++ b/lib/libesp32/berry_animation/src/core/animation_engine.be @@ -5,6 +5,9 @@ # child management and rendering to the root animation. class AnimationEngine + # Minimum milliseconds between ticks + static var TICK_MS = 50 + # Core properties var strip # LED strip object var strip_length # Strip length (cached for performance) @@ -17,6 +20,7 @@ class AnimationEngine var last_update # Last update time in milliseconds var time_ms # Current time in milliseconds (updated each frame) var fast_loop_closure # Stored closure for fast_loop registration + var tick_ms # Minimum milliseconds between ticks (runtime configurable) # Performance optimization var render_needed # Whether a render pass is needed @@ -77,6 +81,7 @@ class AnimationEngine self.last_update = 0 self.time_ms = 0 self.fast_loop_closure = nil + self.tick_ms = self.TICK_MS # Initialize from static default self.render_needed = false # Initialize CPU metrics @@ -187,25 +192,25 @@ class AnimationEngine return false end - # Start timing this tick - self.ts_start = tasmota.millis() - if current_time == nil - current_time = self.ts_start + current_time = tasmota.millis() end + # Throttle updates based on tick_ms setting + var delta_time = current_time - self.last_update + if delta_time < self.tick_ms + return true + end + + # Start timing this tick (use tasmota.millis() for consistent profiling) + self.ts_start = tasmota.millis() + # Check if strip length changed since last time self.check_strip_length() # Update engine time self.time_ms = current_time - # Throttle updates to ~5ms intervals - var delta_time = current_time - self.last_update - if delta_time < 5 - return true - end - self.last_update = current_time # Check if strip can accept updates diff --git a/lib/libesp32/berry_animation/src/dsl/token.be b/lib/libesp32/berry_animation/src/dsl/token.be index 2ea4d27a3..4b39e6bb8 100644 --- a/lib/libesp32/berry_animation/src/dsl/token.be +++ b/lib/libesp32/berry_animation/src/dsl/token.be @@ -27,29 +27,20 @@ class Token static var statement_keywords = [ "strip", "set", "color", "palette", "animation", - "sequence", "function", "zone", "on", "run", "template", "param", "import", "berry" + "sequence", "function", "on", "run", "template", "param", "import", "berry" ] static var keywords = [ # Configuration keywords - "strip", "set", "import", "berry", + "strip", "set", "import", "berry", "extern", # Definition keywords - "color", "palette", "animation", "sequence", "function", "zone", "template", "param", "type", + "color", "palette", "animation", "sequence", "function", "template", "param", "type", # Control flow keywords "play", "for", "with", "repeat", "times", "forever", "if", "else", "elif", "choose", "random", "on", "run", "wait", "goto", "interrupt", "resume", - "while", "from", "to", "return", "reset", "restart", - - # Modifier keywords (only actual DSL syntax keywords) - "at", "ease", "sync", "every", "stagger", "across", "pixels", - - # Core built-in functions (minimal set for essential DSL operations) - "rgb", "hsv", - - # Spatial keywords - "all", "even", "odd", "center", "edges", "left", "right", "top", "bottom", + "while", "from", "to", "return", "reset", "restart", "every", # Boolean and special values "true", "false", "nil", "transparent", @@ -59,7 +50,7 @@ class Token "brightness_change", "timer", "time", "sound_peak", "network_message", # Time and measurement keywords - "ms", "s", "m", "h", "bpm" + "ms", "s", "m", "h" ] static var color_names = [ diff --git a/lib/libesp32/berry_animation/src/dsl/transpiler.be b/lib/libesp32/berry_animation/src/dsl/transpiler.be index c92de77d0..17e28cd9d 100644 --- a/lib/libesp32/berry_animation/src/dsl/transpiler.be +++ b/lib/libesp32/berry_animation/src/dsl/transpiler.be @@ -508,6 +508,8 @@ class SimpleDSLTranspiler self.process_event_handler() elif tok.value == "berry" self.process_berry_code_block() + elif tok.value == "extern" + self.process_external_function() else self.error(f"Unknown keyword '{tok.value}'.") self.skip_statement() @@ -1755,6 +1757,13 @@ class SimpleDSLTranspiler return self.ExpressionResult.literal(entry.get_reference(), 11 #-animation_dsl._symbol_entry.TYPE_COLOR-#) end + # Special handling for user functions used without parentheses + if entry.is_user_function() + # User function used without parentheses - call it with engine parameter + var result = f"animation.get_user_function('{name}')(engine)" + return self.ExpressionResult.function_call(result) + end + # Regular identifier - check if it's a variable reference var ref = self.symbol_table.get_reference(name) var return_type = self._determine_symbol_return_type(entry) # compute the return type based on entry @@ -2693,6 +2702,45 @@ class SimpleDSLTranspiler self.add("# End berry code block") end + # Process external function declaration: extern function function_name + def process_external_function() + self.next() # skip 'extern' + + # Expect 'function' keyword + var tok = self.current() + if tok == nil || tok.type != 0 #-animation_dsl.Token.KEYWORD-# || tok.value != "function" + self.error("Expected 'function' keyword after 'extern'. Use: extern function function_name") + self.skip_statement() + return + end + + self.next() # skip 'function' + + # Expect an identifier for the function name + tok = self.current() + if tok == nil || tok.type != 1 #-animation_dsl.Token.IDENTIFIER-# + self.error("Expected function name after 'extern function'. Use: extern function function_name") + self.skip_statement() + return + end + + var func_name = tok.value + self.next() # consume identifier token + + var inline_comment = self.collect_inline_comment() + + # Validate function name + self.validate_user_name(func_name, "extern function") + + # Register the function as a user function in the symbol table + # This allows it to be used in computed parameters and function calls + self.symbol_table.register_user_function(func_name) + + # Generate runtime registration call so the function is available at execution time + self.add(f"# External function declaration: {func_name}{inline_comment}") + self.add(f"animation.register_user_function(\"{func_name}\", {func_name})") + end + # Generate default strip initialization using Tasmota configuration def generate_default_strip_initialization() if self.strip_initialized diff --git a/lib/libesp32/berry_animation/src/providers/oscillator_value_provider.be b/lib/libesp32/berry_animation/src/providers/oscillator_value_provider.be index cb7bf4487..21ea7ac29 100644 --- a/lib/libesp32/berry_animation/src/providers/oscillator_value_provider.be +++ b/lib/libesp32/berry_animation/src/providers/oscillator_value_provider.be @@ -34,11 +34,11 @@ class OscillatorValueProvider : animation.value_provider # Parameter definitions for the oscillator static var PARAMS = animation.enc_params({ "min_value": {"default": 0}, - "max_value": {"default": 100}, + "max_value": {"default": 255}, "duration": {"min": 1, "default": 1000}, "form": {"enum": [1, 2, 3, 4, 5, 6, 7, 8, 9], "default": 1}, - "phase": {"min": 0, "max": 100, "default": 0}, - "duty_cycle": {"min": 0, "max": 100, "default": 50} + "phase": {"min": 0, "max": 255, "default": 0}, + "duty_cycle": {"min": 0, "max": 255, "default": 127} }) # Initialize a new OscillatorValueProvider @@ -92,7 +92,7 @@ class OscillatorValueProvider : animation.value_provider past = 0 end - var duration_ms_mid = tasmota.scale_uint(duty_cycle, 0, 100, 0, duration) + var duration_ms_mid = tasmota.scale_uint(duty_cycle, 0, 255, 0, duration) # Handle cycle wrapping if past >= duration @@ -105,7 +105,7 @@ class OscillatorValueProvider : animation.value_provider # Apply phase shift if phase > 0 - past_with_phase += tasmota.scale_uint(phase, 0, 100, 0, duration) + past_with_phase += tasmota.scale_uint(phase, 0, 255, 0, duration) if past_with_phase >= duration past_with_phase -= duration end diff --git a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h index 7b108bc1d..489f44058 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h @@ -4042,110 +4042,6 @@ be_local_closure(unregister_event_handler, /* name */ ); /*******************************************************************/ - -/******************************************************************** -** Solidified function: create_closure_value -********************************************************************/ -be_local_closure(create_closure_value, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 0, /* 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), - /* K1 */ be_nested_str_weak(closure_value), - /* K2 */ be_nested_str_weak(closure), - }), - be_str_weak(create_closure_value), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0xB80A0000, // 0000 GETNGBL R2 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x7C080400, // 0003 CALL R2 2 - 0x900A0401, // 0004 SETMBR R2 K2 R1 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: animation_init_strip -********************************************************************/ -be_local_closure(animation_init_strip, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 1, /* 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(global), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(introspect), - /* K3 */ be_nested_str_weak(contains), - /* K4 */ be_nested_str_weak(_engines), - /* K5 */ be_nested_str_weak(find), - /* K6 */ be_nested_str_weak(stop), - /* K7 */ be_nested_str_weak(clear), - /* K8 */ be_nested_str_weak(Leds), - /* K9 */ be_nested_str_weak(create_engine), - }), - be_str_weak(animation_init_strip), - &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0xA40A0200, // 0001 IMPORT R2 K1 - 0xA40E0400, // 0002 IMPORT R3 K2 - 0x8C100703, // 0003 GETMET R4 R3 K3 - 0x5C180400, // 0004 MOVE R6 R2 - 0x581C0004, // 0005 LDCONST R7 K4 - 0x7C100600, // 0006 CALL R4 3 - 0x74120002, // 0007 JMPT R4 #000B - 0x60100013, // 0008 GETGBL R4 G19 - 0x7C100000, // 0009 CALL R4 0 - 0x900A0804, // 000A SETMBR R2 K4 R4 - 0x60100008, // 000B GETGBL R4 G8 - 0x5C140000, // 000C MOVE R5 R0 - 0x7C100200, // 000D CALL R4 1 - 0x88140504, // 000E GETMBR R5 R2 K4 - 0x8C140B05, // 000F GETMET R5 R5 K5 - 0x5C1C0800, // 0010 MOVE R7 R4 - 0x7C140400, // 0011 CALL R5 2 - 0x4C180000, // 0012 LDNIL R6 - 0x20180A06, // 0013 NE R6 R5 R6 - 0x781A0004, // 0014 JMPF R6 #001A - 0x8C180B06, // 0015 GETMET R6 R5 K6 - 0x7C180200, // 0016 CALL R6 1 - 0x8C180B07, // 0017 GETMET R6 R5 K7 - 0x7C180200, // 0018 CALL R6 1 - 0x70020009, // 0019 JMP #0024 - 0x60180016, // 001A GETGBL R6 G22 - 0x881C0308, // 001B GETMBR R7 R1 K8 - 0x5C200000, // 001C MOVE R8 R0 - 0x7C180400, // 001D CALL R6 2 - 0x8C1C0509, // 001E GETMET R7 R2 K9 - 0x5C240C00, // 001F MOVE R9 R6 - 0x7C1C0400, // 0020 CALL R7 2 - 0x5C140E00, // 0021 MOVE R5 R7 - 0x881C0504, // 0022 GETMBR R7 R2 K4 - 0x981C0805, // 0023 SETIDX R7 R4 R5 - 0x80040A00, // 0024 RET 1 R5 - }) - ) -); -/*******************************************************************/ - // compact class 'StaticColorProvider' ktab size: 4, total: 8 (saved 32 bytes) static const bvalue be_ktab_class_StaticColorProvider[4] = { /* K0 */ be_nested_str_weak(color), @@ -4273,67 +4169,62 @@ be_local_class(StaticColorProvider, })), be_str_weak(StaticColorProvider) ); - -/******************************************************************** -** Solidified function: get_registered_events -********************************************************************/ -be_local_closure(get_registered_events, /* name */ - be_nested_proto( - 2, /* nstack */ - 0, /* argc */ - 0, /* 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), - /* K1 */ be_nested_str_weak(event_manager), - /* K2 */ be_nested_str_weak(get_registered_events), - }), - be_str_weak(get_registered_events), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0xB8020000, // 0000 GETNGBL R0 K0 - 0x88000101, // 0001 GETMBR R0 R0 K1 - 0x8C000102, // 0002 GETMET R0 R0 K2 - 0x7C000200, // 0003 CALL R0 1 - 0x80040000, // 0004 RET 1 R0 - }) - ) -); -/*******************************************************************/ - -// compact class 'RichPaletteAnimation' ktab size: 16, total: 21 (saved 40 bytes) -static const bvalue be_ktab_class_RichPaletteAnimation[16] = { +// compact class 'TwinkleAnimation' ktab size: 43, total: 74 (saved 248 bytes) +static const bvalue be_ktab_class_TwinkleAnimation[43] = { /* K0 */ be_nested_str_weak(on_param_changed), - /* K1 */ be_nested_str_weak(palette), - /* K2 */ be_nested_str_weak(cycle_period), - /* K3 */ be_nested_str_weak(transition_type), - /* K4 */ be_nested_str_weak(brightness), - /* K5 */ be_nested_str_weak(color_provider), - /* K6 */ be_nested_str_weak(set_param), - /* K7 */ be_nested_str_weak(RichPaletteAnimation_X28_X25s_X2C_X20cycle_period_X3D_X25s_X2C_X20brightness_X3D_X25s_X29), - /* K8 */ be_nested_str_weak(name), - /* K9 */ be_nested_str_weak(RichPaletteAnimation_X28uninitialized_X29), - /* K10 */ be_nested_str_weak(init), - /* K11 */ be_nested_str_weak(rich_palette), - /* K12 */ be_nested_str_weak(animation), - /* K13 */ be_nested_str_weak(values), - /* K14 */ be_nested_str_weak(color), - /* K15 */ be_nested_str_weak(start), + /* K1 */ be_nested_str_weak(twinkle_speed), + /* K2 */ be_const_int(1), + /* K3 */ be_nested_str_weak(set_param), + /* K4 */ be_nested_str_weak(fade_speed), + /* K5 */ be_nested_str_weak(density), + /* K6 */ be_nested_str_weak(min_brightness), + /* K7 */ be_nested_str_weak(max_brightness), + /* K8 */ be_nested_str_weak(color), + /* K9 */ be_nested_str_weak(engine), + /* K10 */ be_nested_str_weak(strip_length), + /* K11 */ be_nested_str_weak(twinkle_states), + /* K12 */ be_nested_str_weak(current_colors), + /* K13 */ be_nested_str_weak(size), + /* K14 */ be_nested_str_weak(_initialize_arrays), + /* K15 */ be_const_int(0), + /* K16 */ be_nested_str_weak(get), + /* K17 */ be_nested_str_weak(tasmota), + /* K18 */ be_nested_str_weak(scale_uint), + /* K19 */ be_nested_str_weak(set), + /* K20 */ be_const_int(16777215), + /* K21 */ be_nested_str_weak(_random_range), + /* K22 */ be_nested_str_weak(get_param), + /* K23 */ be_nested_str_weak(animation), + /* K24 */ be_nested_str_weak(is_value_provider), + /* K25 */ be_nested_str_weak(0x_X2508x), + /* K26 */ be_nested_str_weak(TwinkleAnimation_X28color_X3D_X25s_X2C_X20density_X3D_X25s_X2C_X20twinkle_speed_X3D_X25s_X2C_X20priority_X3D_X25s_X2C_X20running_X3D_X25s_X29), + /* K27 */ be_nested_str_weak(priority), + /* K28 */ be_nested_str_weak(is_running), + /* K29 */ be_nested_str_weak(init), + /* K30 */ be_nested_str_weak(last_update), + /* K31 */ be_nested_str_weak(random_seed), + /* K32 */ be_nested_str_weak(time_ms), + /* K33 */ be_nested_str_weak(_fix_time_ms), + /* K34 */ be_nested_str_weak(width), + /* K35 */ be_nested_str_weak(set_pixel_color), + /* K36 */ be_nested_str_weak(update), + /* K37 */ be_nested_str_weak(_update_twinkle_simulation), + /* K38 */ be_nested_str_weak(resize), + /* K39 */ be_nested_str_weak(clear), + /* K40 */ be_const_int(1103515245), + /* K41 */ be_const_int(2147483647), + /* K42 */ be_nested_str_weak(_random), }; -extern const bclass be_class_RichPaletteAnimation; +extern const bclass be_class_TwinkleAnimation; /******************************************************************** ** Solidified function: on_param_changed ********************************************************************/ -be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */ +be_local_closure(class_TwinkleAnimation_on_param_changed, /* name */ be_nested_proto( - 7, /* nstack */ + 8, /* nstack */ 3, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -4341,10 +4232,10 @@ be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_RichPaletteAnimation, /* shared constants */ + &be_ktab_class_TwinkleAnimation, /* shared constants */ be_str_weak(on_param_changed), &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ + ( &(const binstruction[27]) { /* code */ 0x600C0003, // 0000 GETGBL R3 G3 0x5C100000, // 0001 MOVE R4 R0 0x7C0C0200, // 0002 CALL R3 1 @@ -4353,27 +4244,165 @@ be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */ 0x5C180400, // 0005 MOVE R6 R2 0x7C0C0600, // 0006 CALL R3 3 0x1C0C0301, // 0007 EQ R3 R1 K1 - 0x740E0005, // 0008 JMPT R3 #000F - 0x1C0C0302, // 0009 EQ R3 R1 K2 - 0x740E0003, // 000A JMPT R3 #000F - 0x1C0C0303, // 000B EQ R3 R1 K3 - 0x740E0001, // 000C JMPT R3 #000F - 0x1C0C0304, // 000D EQ R3 R1 K4 - 0x780E0005, // 000E JMPF R3 #0015 - 0x880C0105, // 000F GETMBR R3 R0 K5 - 0x8C0C0706, // 0010 GETMET R3 R3 K6 - 0x5C140200, // 0011 MOVE R5 R1 - 0x5C180400, // 0012 MOVE R6 R2 - 0x7C0C0600, // 0013 CALL R3 3 - 0x70020006, // 0014 JMP #001C - 0x600C0003, // 0015 GETGBL R3 G3 - 0x5C100000, // 0016 MOVE R4 R0 - 0x7C0C0200, // 0017 CALL R3 1 - 0x8C0C0700, // 0018 GETMET R3 R3 K0 - 0x5C140200, // 0019 MOVE R5 R1 - 0x5C180400, // 001A MOVE R6 R2 - 0x7C0C0600, // 001B CALL R3 3 - 0x80000000, // 001C RET 0 + 0x780E0010, // 0008 JMPF R3 #001A + 0x540E0031, // 0009 LDINT R3 50 + 0x280C0403, // 000A GE R3 R2 R3 + 0x780E000D, // 000B JMPF R3 #001A + 0x540E03E7, // 000C LDINT R3 1000 + 0x0C0C0602, // 000D DIV R3 R3 R2 + 0x14100702, // 000E LT R4 R3 K2 + 0x78120001, // 000F JMPF R4 #0012 + 0x580C0002, // 0010 LDCONST R3 K2 + 0x70020003, // 0011 JMP #0016 + 0x54120013, // 0012 LDINT R4 20 + 0x24100604, // 0013 GT R4 R3 R4 + 0x78120000, // 0014 JMPF R4 #0016 + 0x540E0013, // 0015 LDINT R3 20 + 0x8C100103, // 0016 GETMET R4 R0 K3 + 0x58180001, // 0017 LDCONST R6 K1 + 0x5C1C0600, // 0018 MOVE R7 R3 + 0x7C100600, // 0019 CALL R4 3 + 0x80000000, // 001A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _update_twinkle_simulation +********************************************************************/ +be_local_closure(class_TwinkleAnimation__update_twinkle_simulation, /* name */ + be_nested_proto( + 20, /* 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_TwinkleAnimation, /* shared constants */ + be_str_weak(_update_twinkle_simulation), + &be_const_str_solidified, + ( &(const binstruction[117]) { /* code */ + 0x88080104, // 0000 GETMBR R2 R0 K4 + 0x880C0105, // 0001 GETMBR R3 R0 K5 + 0x88100106, // 0002 GETMBR R4 R0 K6 + 0x88140107, // 0003 GETMBR R5 R0 K7 + 0x88180108, // 0004 GETMBR R6 R0 K8 + 0x881C0109, // 0005 GETMBR R7 R0 K9 + 0x881C0F0A, // 0006 GETMBR R7 R7 K10 + 0x6020000C, // 0007 GETGBL R8 G12 + 0x8824010B, // 0008 GETMBR R9 R0 K11 + 0x7C200200, // 0009 CALL R8 1 + 0x20201007, // 000A NE R8 R8 R7 + 0x74220006, // 000B JMPT R8 #0013 + 0x8820010C, // 000C GETMBR R8 R0 K12 + 0x8C20110D, // 000D GETMET R8 R8 K13 + 0x7C200200, // 000E CALL R8 1 + 0x54260003, // 000F LDINT R9 4 + 0x08240E09, // 0010 MUL R9 R7 R9 + 0x20201009, // 0011 NE R8 R8 R9 + 0x78220001, // 0012 JMPF R8 #0015 + 0x8C20010E, // 0013 GETMET R8 R0 K14 + 0x7C200200, // 0014 CALL R8 1 + 0x5820000F, // 0015 LDCONST R8 K15 + 0x14241007, // 0016 LT R9 R8 R7 + 0x7826002C, // 0017 JMPF R9 #0045 + 0x8824010C, // 0018 GETMBR R9 R0 K12 + 0x8C241310, // 0019 GETMET R9 R9 K16 + 0x542E0003, // 001A LDINT R11 4 + 0x082C100B, // 001B MUL R11 R8 R11 + 0x5431FFFB, // 001C LDINT R12 -4 + 0x7C240600, // 001D CALL R9 3 + 0x542A0017, // 001E LDINT R10 24 + 0x3C28120A, // 001F SHR R10 R9 R10 + 0x542E00FE, // 0020 LDINT R11 255 + 0x2C28140B, // 0021 AND R10 R10 R11 + 0x242C150F, // 0022 GT R11 R10 K15 + 0x782E001E, // 0023 JMPF R11 #0043 + 0xB82E2200, // 0024 GETNGBL R11 K17 + 0x8C2C1712, // 0025 GETMET R11 R11 K18 + 0x5C340400, // 0026 MOVE R13 R2 + 0x5838000F, // 0027 LDCONST R14 K15 + 0x543E00FE, // 0028 LDINT R15 255 + 0x58400002, // 0029 LDCONST R16 K2 + 0x54460013, // 002A LDINT R17 20 + 0x7C2C0C00, // 002B CALL R11 6 + 0x1830140B, // 002C LE R12 R10 R11 + 0x78320009, // 002D JMPF R12 #0038 + 0x8830010B, // 002E GETMBR R12 R0 K11 + 0x9830110F, // 002F SETIDX R12 R8 K15 + 0x8830010C, // 0030 GETMBR R12 R0 K12 + 0x8C301913, // 0031 GETMET R12 R12 K19 + 0x543A0003, // 0032 LDINT R14 4 + 0x0838100E, // 0033 MUL R14 R8 R14 + 0x583C000F, // 0034 LDCONST R15 K15 + 0x5441FFFB, // 0035 LDINT R16 -4 + 0x7C300800, // 0036 CALL R12 4 + 0x7002000A, // 0037 JMP #0043 + 0x0430140B, // 0038 SUB R12 R10 R11 + 0x2C341314, // 0039 AND R13 R9 K20 + 0x8838010C, // 003A GETMBR R14 R0 K12 + 0x8C381D13, // 003B GETMET R14 R14 K19 + 0x54420003, // 003C LDINT R16 4 + 0x08401010, // 003D MUL R16 R8 R16 + 0x54460017, // 003E LDINT R17 24 + 0x38441811, // 003F SHL R17 R12 R17 + 0x3044220D, // 0040 OR R17 R17 R13 + 0x5449FFFB, // 0041 LDINT R18 -4 + 0x7C380800, // 0042 CALL R14 4 + 0x00201102, // 0043 ADD R8 R8 K2 + 0x7001FFD0, // 0044 JMP #0016 + 0x5824000F, // 0045 LDCONST R9 K15 + 0x14281207, // 0046 LT R10 R9 R7 + 0x782A002B, // 0047 JMPF R10 #0074 + 0x8828010B, // 0048 GETMBR R10 R0 K11 + 0x94281409, // 0049 GETIDX R10 R10 R9 + 0x1C28150F, // 004A EQ R10 R10 K15 + 0x782A0025, // 004B JMPF R10 #0072 + 0x8C280115, // 004C GETMET R10 R0 K21 + 0x543200FE, // 004D LDINT R12 255 + 0x7C280400, // 004E CALL R10 2 + 0x14281403, // 004F LT R10 R10 R3 + 0x782A0020, // 0050 JMPF R10 #0072 + 0x8C280115, // 0051 GETMET R10 R0 K21 + 0x04300A04, // 0052 SUB R12 R5 R4 + 0x00301902, // 0053 ADD R12 R12 K2 + 0x7C280400, // 0054 CALL R10 2 + 0x0028080A, // 0055 ADD R10 R4 R10 + 0x5C2C0C00, // 0056 MOVE R11 R6 + 0x5432000F, // 0057 LDINT R12 16 + 0x3C30160C, // 0058 SHR R12 R11 R12 + 0x543600FE, // 0059 LDINT R13 255 + 0x2C30180D, // 005A AND R12 R12 R13 + 0x54360007, // 005B LDINT R13 8 + 0x3C34160D, // 005C SHR R13 R11 R13 + 0x543A00FE, // 005D LDINT R14 255 + 0x2C341A0E, // 005E AND R13 R13 R14 + 0x543A00FE, // 005F LDINT R14 255 + 0x2C38160E, // 0060 AND R14 R11 R14 + 0x883C010B, // 0061 GETMBR R15 R0 K11 + 0x983C1302, // 0062 SETIDX R15 R9 K2 + 0x883C010C, // 0063 GETMBR R15 R0 K12 + 0x8C3C1F13, // 0064 GETMET R15 R15 K19 + 0x54460003, // 0065 LDINT R17 4 + 0x08441211, // 0066 MUL R17 R9 R17 + 0x544A0017, // 0067 LDINT R18 24 + 0x38481412, // 0068 SHL R18 R10 R18 + 0x544E000F, // 0069 LDINT R19 16 + 0x384C1813, // 006A SHL R19 R12 R19 + 0x30482413, // 006B OR R18 R18 R19 + 0x544E0007, // 006C LDINT R19 8 + 0x384C1A13, // 006D SHL R19 R13 R19 + 0x30482413, // 006E OR R18 R18 R19 + 0x3048240E, // 006F OR R18 R18 R14 + 0x544DFFFB, // 0070 LDINT R19 -4 + 0x7C3C0800, // 0071 CALL R15 4 + 0x00241302, // 0072 ADD R9 R9 K2 + 0x7001FFD1, // 0073 JMP #0046 + 0x80000000, // 0074 RET 0 }) ) ); @@ -4383,9 +4412,9 @@ be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */ /******************************************************************** ** Solidified function: tostring ********************************************************************/ -be_local_closure(class_RichPaletteAnimation_tostring, /* name */ +be_local_closure(class_TwinkleAnimation_tostring, /* name */ be_nested_proto( - 6, /* nstack */ + 10, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -4393,27 +4422,38 @@ be_local_closure(class_RichPaletteAnimation_tostring, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_RichPaletteAnimation, /* shared constants */ + &be_ktab_class_TwinkleAnimation, /* shared constants */ be_str_weak(tostring), &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0xA8020009, // 0000 EXBLK 0 #000B - 0x60040018, // 0001 GETGBL R1 G24 - 0x58080007, // 0002 LDCONST R2 K7 - 0x880C0108, // 0003 GETMBR R3 R0 K8 - 0x88100102, // 0004 GETMBR R4 R0 K2 - 0x88140104, // 0005 GETMBR R5 R0 K4 - 0x7C040800, // 0006 CALL R1 4 - 0xA8040001, // 0007 EXBLK 1 1 - 0x80040200, // 0008 RET 1 R1 - 0xA8040001, // 0009 EXBLK 1 1 - 0x70020004, // 000A JMP #0010 - 0xAC040000, // 000B CATCH R1 0 0 - 0x70020001, // 000C JMP #000F - 0x80061200, // 000D RET 1 K9 - 0x70020000, // 000E JMP #0010 - 0xB0080000, // 000F RAISE 2 R0 R0 - 0x80000000, // 0010 RET 0 + ( &(const binstruction[28]) { /* code */ + 0x4C040000, // 0000 LDNIL R1 + 0x8C080116, // 0001 GETMET R2 R0 K22 + 0x58100008, // 0002 LDCONST R4 K8 + 0x7C080400, // 0003 CALL R2 2 + 0xB80E2E00, // 0004 GETNGBL R3 K23 + 0x8C0C0718, // 0005 GETMET R3 R3 K24 + 0x5C140400, // 0006 MOVE R5 R2 + 0x7C0C0400, // 0007 CALL R3 2 + 0x780E0004, // 0008 JMPF R3 #000E + 0x600C0008, // 0009 GETGBL R3 G8 + 0x5C100400, // 000A MOVE R4 R2 + 0x7C0C0200, // 000B CALL R3 1 + 0x5C040600, // 000C MOVE R1 R3 + 0x70020004, // 000D JMP #0013 + 0x600C0018, // 000E GETGBL R3 G24 + 0x58100019, // 000F LDCONST R4 K25 + 0x88140108, // 0010 GETMBR R5 R0 K8 + 0x7C0C0400, // 0011 CALL R3 2 + 0x5C040600, // 0012 MOVE R1 R3 + 0x600C0018, // 0013 GETGBL R3 G24 + 0x5810001A, // 0014 LDCONST R4 K26 + 0x5C140200, // 0015 MOVE R5 R1 + 0x88180105, // 0016 GETMBR R6 R0 K5 + 0x881C0101, // 0017 GETMBR R7 R0 K1 + 0x8820011B, // 0018 GETMBR R8 R0 K27 + 0x8824011C, // 0019 GETMBR R9 R0 K28 + 0x7C0C0C00, // 001A CALL R3 6 + 0x80040600, // 001B RET 1 R3 }) ) ); @@ -4423,7 +4463,7 @@ be_local_closure(class_RichPaletteAnimation_tostring, /* name */ /******************************************************************** ** Solidified function: init ********************************************************************/ -be_local_closure(class_RichPaletteAnimation_init, /* name */ +be_local_closure(class_TwinkleAnimation_init, /* name */ be_nested_proto( 5, /* nstack */ 2, /* argc */ @@ -4433,26 +4473,31 @@ be_local_closure(class_RichPaletteAnimation_init, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_RichPaletteAnimation, /* shared constants */ + &be_ktab_class_TwinkleAnimation, /* shared constants */ be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ + ( &(const binstruction[21]) { /* code */ 0x60080003, // 0000 GETGBL R2 G3 0x5C0C0000, // 0001 MOVE R3 R0 0x7C080200, // 0002 CALL R2 1 - 0x8C08050A, // 0003 GETMET R2 R2 K10 + 0x8C08051D, // 0003 GETMET R2 R2 K29 0x5C100200, // 0004 MOVE R4 R1 0x7C080400, // 0005 CALL R2 2 - 0x9002110B, // 0006 SETMBR R0 K8 K11 - 0xB80A1800, // 0007 GETNGBL R2 K12 - 0x8C08050B, // 0008 GETMET R2 R2 K11 - 0x5C100200, // 0009 MOVE R4 R1 - 0x7C080400, // 000A CALL R2 2 - 0x90020A02, // 000B SETMBR R0 K5 R2 - 0x8808010D, // 000C GETMBR R2 R0 K13 - 0x880C0105, // 000D GETMBR R3 R0 K5 - 0x980A1C03, // 000E SETIDX R2 K14 R3 - 0x80000000, // 000F RET 0 + 0x60080012, // 0006 GETGBL R2 G18 + 0x7C080000, // 0007 CALL R2 0 + 0x90021602, // 0008 SETMBR R0 K11 R2 + 0x60080015, // 0009 GETGBL R2 G21 + 0x7C080000, // 000A CALL R2 0 + 0x90021802, // 000B SETMBR R0 K12 R2 + 0x90023D0F, // 000C SETMBR R0 K30 K15 + 0x88080109, // 000D GETMBR R2 R0 K9 + 0x88080520, // 000E GETMBR R2 R2 K32 + 0x540EFFFF, // 000F LDINT R3 65536 + 0x10080403, // 0010 MOD R2 R2 R3 + 0x90023E02, // 0011 SETMBR R0 K31 R2 + 0x8C08010E, // 0012 GETMET R2 R0 K14 + 0x7C080200, // 0013 CALL R2 1 + 0x80000000, // 0014 RET 0 }) ) ); @@ -4460,11 +4505,88 @@ be_local_closure(class_RichPaletteAnimation_init, /* name */ /******************************************************************** -** Solidified function: start +** Solidified function: render ********************************************************************/ -be_local_closure(class_RichPaletteAnimation_start, /* name */ +be_local_closure(class_TwinkleAnimation_render, /* name */ be_nested_proto( - 5, /* nstack */ + 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_TwinkleAnimation, /* shared constants */ + be_str_weak(render), + &be_const_str_solidified, + ( &(const binstruction[54]) { /* code */ + 0x880C011C, // 0000 GETMBR R3 R0 K28 + 0x780E0002, // 0001 JMPF R3 #0005 + 0x4C0C0000, // 0002 LDNIL R3 + 0x1C0C0203, // 0003 EQ R3 R1 R3 + 0x780E0001, // 0004 JMPF R3 #0007 + 0x500C0000, // 0005 LDBOOL R3 0 0 + 0x80040600, // 0006 RET 1 R3 + 0x8C0C0121, // 0007 GETMET R3 R0 K33 + 0x5C140400, // 0008 MOVE R5 R2 + 0x7C0C0400, // 0009 CALL R3 2 + 0x5C080600, // 000A MOVE R2 R3 + 0x880C0109, // 000B GETMBR R3 R0 K9 + 0x880C070A, // 000C GETMBR R3 R3 K10 + 0x6010000C, // 000D GETGBL R4 G12 + 0x8814010B, // 000E GETMBR R5 R0 K11 + 0x7C100200, // 000F CALL R4 1 + 0x20100803, // 0010 NE R4 R4 R3 + 0x74120006, // 0011 JMPT R4 #0019 + 0x8810010C, // 0012 GETMBR R4 R0 K12 + 0x8C10090D, // 0013 GETMET R4 R4 K13 + 0x7C100200, // 0014 CALL R4 1 + 0x54160003, // 0015 LDINT R5 4 + 0x08140605, // 0016 MUL R5 R3 R5 + 0x20100805, // 0017 NE R4 R4 R5 + 0x78120001, // 0018 JMPF R4 #001B + 0x8C10010E, // 0019 GETMET R4 R0 K14 + 0x7C100200, // 001A CALL R4 1 + 0x50100000, // 001B LDBOOL R4 0 0 + 0x5814000F, // 001C LDCONST R5 K15 + 0x14180A03, // 001D LT R6 R5 R3 + 0x781A0015, // 001E JMPF R6 #0035 + 0x88180322, // 001F GETMBR R6 R1 K34 + 0x14180A06, // 0020 LT R6 R5 R6 + 0x781A0010, // 0021 JMPF R6 #0033 + 0x8818010C, // 0022 GETMBR R6 R0 K12 + 0x8C180D10, // 0023 GETMET R6 R6 K16 + 0x54220003, // 0024 LDINT R8 4 + 0x08200A08, // 0025 MUL R8 R5 R8 + 0x5425FFFB, // 0026 LDINT R9 -4 + 0x7C180600, // 0027 CALL R6 3 + 0x541E0017, // 0028 LDINT R7 24 + 0x3C1C0C07, // 0029 SHR R7 R6 R7 + 0x542200FE, // 002A LDINT R8 255 + 0x2C1C0E08, // 002B AND R7 R7 R8 + 0x241C0F0F, // 002C GT R7 R7 K15 + 0x781E0004, // 002D JMPF R7 #0033 + 0x8C1C0323, // 002E GETMET R7 R1 K35 + 0x5C240A00, // 002F MOVE R9 R5 + 0x5C280C00, // 0030 MOVE R10 R6 + 0x7C1C0600, // 0031 CALL R7 3 + 0x50100200, // 0032 LDBOOL R4 1 0 + 0x00140B02, // 0033 ADD R5 R5 K2 + 0x7001FFE7, // 0034 JMP #001D + 0x80040800, // 0035 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: update +********************************************************************/ +be_local_closure(class_TwinkleAnimation_update, /* name */ + be_nested_proto( + 7, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -4472,21 +4594,36 @@ be_local_closure(class_RichPaletteAnimation_start, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_RichPaletteAnimation, /* shared constants */ - be_str_weak(start), + &be_ktab_class_TwinkleAnimation, /* shared constants */ + be_str_weak(update), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ + ( &(const binstruction[26]) { /* code */ 0x60080003, // 0000 GETGBL R2 G3 0x5C0C0000, // 0001 MOVE R3 R0 0x7C080200, // 0002 CALL R2 1 - 0x8C08050F, // 0003 GETMET R2 R2 K15 + 0x8C080524, // 0003 GETMET R2 R2 K36 0x5C100200, // 0004 MOVE R4 R1 0x7C080400, // 0005 CALL R2 2 - 0x88080105, // 0006 GETMBR R2 R0 K5 - 0x8C08050F, // 0007 GETMET R2 R2 K15 - 0x5C100200, // 0008 MOVE R4 R1 - 0x7C080400, // 0009 CALL R2 2 - 0x80040000, // 000A RET 1 R0 + 0x740A0001, // 0006 JMPT R2 #0009 + 0x50080000, // 0007 LDBOOL R2 0 0 + 0x80040400, // 0008 RET 1 R2 + 0x8C080121, // 0009 GETMET R2 R0 K33 + 0x5C100200, // 000A MOVE R4 R1 + 0x7C080400, // 000B CALL R2 2 + 0x5C040400, // 000C MOVE R1 R2 + 0x88080101, // 000D GETMBR R2 R0 K1 + 0x540E03E7, // 000E LDINT R3 1000 + 0x0C0C0602, // 000F DIV R3 R3 R2 + 0x8810011E, // 0010 GETMBR R4 R0 K30 + 0x04100204, // 0011 SUB R4 R1 R4 + 0x28100803, // 0012 GE R4 R4 R3 + 0x78120003, // 0013 JMPF R4 #0018 + 0x90023C01, // 0014 SETMBR R0 K30 R1 + 0x8C100125, // 0015 GETMET R4 R0 K37 + 0x5C180200, // 0016 MOVE R6 R1 + 0x7C100400, // 0017 CALL R4 2 + 0x50100200, // 0018 LDBOOL R4 1 0 + 0x80040800, // 0019 RET 1 R4 }) ) ); @@ -4494,29 +4631,152 @@ be_local_closure(class_RichPaletteAnimation_start, /* name */ /******************************************************************** -** Solidified class: RichPaletteAnimation +** Solidified function: _initialize_arrays +********************************************************************/ +be_local_closure(class_TwinkleAnimation__initialize_arrays, /* name */ + be_nested_proto( + 8, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_TwinkleAnimation, /* shared constants */ + be_str_weak(_initialize_arrays), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x88040109, // 0000 GETMBR R1 R0 K9 + 0x8804030A, // 0001 GETMBR R1 R1 K10 + 0x8808010B, // 0002 GETMBR R2 R0 K11 + 0x8C080526, // 0003 GETMET R2 R2 K38 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x8808010C, // 0006 GETMBR R2 R0 K12 + 0x8C080527, // 0007 GETMET R2 R2 K39 + 0x7C080200, // 0008 CALL R2 1 + 0x8808010C, // 0009 GETMBR R2 R0 K12 + 0x8C080526, // 000A GETMET R2 R2 K38 + 0x54120003, // 000B LDINT R4 4 + 0x08100204, // 000C MUL R4 R1 R4 + 0x7C080400, // 000D CALL R2 2 + 0x5808000F, // 000E LDCONST R2 K15 + 0x140C0401, // 000F LT R3 R2 R1 + 0x780E000A, // 0010 JMPF R3 #001C + 0x880C010B, // 0011 GETMBR R3 R0 K11 + 0x980C050F, // 0012 SETIDX R3 R2 K15 + 0x880C010C, // 0013 GETMBR R3 R0 K12 + 0x8C0C0713, // 0014 GETMET R3 R3 K19 + 0x54160003, // 0015 LDINT R5 4 + 0x08140405, // 0016 MUL R5 R2 R5 + 0x5818000F, // 0017 LDCONST R6 K15 + 0x541DFFFB, // 0018 LDINT R7 -4 + 0x7C0C0800, // 0019 CALL R3 4 + 0x00080502, // 001A ADD R2 R2 K2 + 0x7001FFF2, // 001B JMP #000F + 0x80000000, // 001C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _random +********************************************************************/ +be_local_closure(class_TwinkleAnimation__random, /* 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_TwinkleAnimation, /* shared constants */ + be_str_weak(_random), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x8804011F, // 0000 GETMBR R1 R0 K31 + 0x08040328, // 0001 MUL R1 R1 K40 + 0x540A3038, // 0002 LDINT R2 12345 + 0x00040202, // 0003 ADD R1 R1 R2 + 0x2C040329, // 0004 AND R1 R1 K41 + 0x90023E01, // 0005 SETMBR R0 K31 R1 + 0x8804011F, // 0006 GETMBR R1 R0 K31 + 0x80040200, // 0007 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _random_range +********************************************************************/ +be_local_closure(class_TwinkleAnimation__random_range, /* 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_TwinkleAnimation, /* shared constants */ + be_str_weak(_random_range), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x1808030F, // 0000 LE R2 R1 K15 + 0x780A0000, // 0001 JMPF R2 #0003 + 0x80061E00, // 0002 RET 1 K15 + 0x8C08012A, // 0003 GETMET R2 R0 K42 + 0x7C080200, // 0004 CALL R2 1 + 0x10080401, // 0005 MOD R2 R2 R1 + 0x80040400, // 0006 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: TwinkleAnimation ********************************************************************/ extern const bclass be_class_Animation; -be_local_class(RichPaletteAnimation, - 1, +be_local_class(TwinkleAnimation, + 4, &be_class_Animation, - be_nested_map(6, + be_nested_map(14, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(tostring, -1), be_const_closure(class_RichPaletteAnimation_tostring_closure) }, - { be_const_key_weak(on_param_changed, 0), be_const_closure(class_RichPaletteAnimation_on_param_changed_closure) }, - { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(4, + { be_const_key_weak(_random_range, -1), be_const_closure(class_TwinkleAnimation__random_range_closure) }, + { be_const_key_weak(twinkle_states, -1), be_const_var(0) }, + { be_const_key_weak(init, -1), be_const_closure(class_TwinkleAnimation_init_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_TwinkleAnimation_tostring_closure) }, + { be_const_key_weak(random_seed, -1), be_const_var(3) }, + { be_const_key_weak(PARAMS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(6, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(palette, -1), be_const_bytes_instance(0C0605) }, - { be_const_key_weak(transition_type, -1), be_const_bytes_instance(1400050200010005) }, - { be_const_key_weak(brightness, -1), be_const_bytes_instance(07000001FF0001FF00) }, - { be_const_key_weak(cycle_period, 1), be_const_bytes_instance(050000018813) }, + { be_const_key_weak(twinkle_speed, 1), be_const_bytes_instance(0700010188130006) }, + { be_const_key_weak(min_brightness, -1), be_const_bytes_instance(07000001FF000020) }, + { be_const_key_weak(density, -1), be_const_bytes_instance(07000001FF00018000) }, + { be_const_key_weak(max_brightness, 2), be_const_bytes_instance(07000001FF0001FF00) }, + { be_const_key_weak(color, -1), be_const_bytes_instance(0400FF) }, + { be_const_key_weak(fade_speed, 0), be_const_bytes_instance(07000001FF0001B400) }, })) ) } )) }, - { be_const_key_weak(init, 2), be_const_closure(class_RichPaletteAnimation_init_closure) }, - { be_const_key_weak(color_provider, -1), be_const_var(0) }, - { be_const_key_weak(start, -1), be_const_closure(class_RichPaletteAnimation_start_closure) }, + { be_const_key_weak(_random, 9), be_const_closure(class_TwinkleAnimation__random_closure) }, + { be_const_key_weak(last_update, -1), be_const_var(2) }, + { be_const_key_weak(update, -1), be_const_closure(class_TwinkleAnimation_update_closure) }, + { be_const_key_weak(_initialize_arrays, 10), be_const_closure(class_TwinkleAnimation__initialize_arrays_closure) }, + { be_const_key_weak(render, 2), be_const_closure(class_TwinkleAnimation_render_closure) }, + { be_const_key_weak(current_colors, -1), be_const_var(1) }, + { be_const_key_weak(_update_twinkle_simulation, 1), be_const_closure(class_TwinkleAnimation__update_twinkle_simulation_closure) }, + { be_const_key_weak(on_param_changed, 0), be_const_closure(class_TwinkleAnimation_on_param_changed_closure) }, })), - be_str_weak(RichPaletteAnimation) + be_str_weak(TwinkleAnimation) ); /******************************************************************** @@ -4640,7 +4900,7 @@ be_local_closure(class_OscillatorValueProvider_produce_value, /* name */ 0x8C28150A, // 0016 GETMET R10 R10 K10 0x5C301000, // 0017 MOVE R12 R8 0x58340007, // 0018 LDCONST R13 K7 - 0x543A0063, // 0019 LDINT R14 100 + 0x543A00FE, // 0019 LDINT R14 255 0x583C0007, // 001A LDCONST R15 K7 0x5C400600, // 001B MOVE R16 R3 0x7C280C00, // 001C CALL R10 6 @@ -4659,7 +4919,7 @@ be_local_closure(class_OscillatorValueProvider_produce_value, /* name */ 0x8C30190A, // 0029 GETMET R12 R12 K10 0x5C380E00, // 002A MOVE R14 R7 0x583C0007, // 002B LDCONST R15 K7 - 0x54420063, // 002C LDINT R16 100 + 0x544200FE, // 002C LDINT R16 255 0x58440007, // 002D LDCONST R17 K7 0x5C480600, // 002E MOVE R18 R3 0x7C300C00, // 002F CALL R12 6 @@ -5172,9 +5432,9 @@ be_local_class(OscillatorValueProvider, { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(6, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(phase, -1), be_const_bytes_instance(07000000640000) }, - { be_const_key_weak(max_value, 4), be_const_bytes_instance(040064) }, - { be_const_key_weak(duty_cycle, -1), be_const_bytes_instance(07000000640032) }, + { be_const_key_weak(phase, -1), be_const_bytes_instance(07000001FF000000) }, + { be_const_key_weak(max_value, 4), be_const_bytes_instance(0401FF00) }, + { be_const_key_weak(duty_cycle, -1), be_const_bytes_instance(07000001FF00007F) }, { be_const_key_weak(min_value, -1), be_const_bytes_instance(040000) }, { be_const_key_weak(duration, -1), be_const_bytes_instance(05000101E803) }, { be_const_key_weak(form, 1), be_const_bytes_instance(14000109000100020003000400050006000700080009) }, @@ -5239,6 +5499,77 @@ be_local_closure(rich_palette_rainbow, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: animation_init_strip +********************************************************************/ +be_local_closure(animation_init_strip, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 1, /* 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(global), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(introspect), + /* K3 */ be_nested_str_weak(contains), + /* K4 */ be_nested_str_weak(_engines), + /* K5 */ be_nested_str_weak(find), + /* K6 */ be_nested_str_weak(stop), + /* K7 */ be_nested_str_weak(clear), + /* K8 */ be_nested_str_weak(Leds), + /* K9 */ be_nested_str_weak(create_engine), + }), + be_str_weak(animation_init_strip), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0xA40A0200, // 0001 IMPORT R2 K1 + 0xA40E0400, // 0002 IMPORT R3 K2 + 0x8C100703, // 0003 GETMET R4 R3 K3 + 0x5C180400, // 0004 MOVE R6 R2 + 0x581C0004, // 0005 LDCONST R7 K4 + 0x7C100600, // 0006 CALL R4 3 + 0x74120002, // 0007 JMPT R4 #000B + 0x60100013, // 0008 GETGBL R4 G19 + 0x7C100000, // 0009 CALL R4 0 + 0x900A0804, // 000A SETMBR R2 K4 R4 + 0x60100008, // 000B GETGBL R4 G8 + 0x5C140000, // 000C MOVE R5 R0 + 0x7C100200, // 000D CALL R4 1 + 0x88140504, // 000E GETMBR R5 R2 K4 + 0x8C140B05, // 000F GETMET R5 R5 K5 + 0x5C1C0800, // 0010 MOVE R7 R4 + 0x7C140400, // 0011 CALL R5 2 + 0x4C180000, // 0012 LDNIL R6 + 0x20180A06, // 0013 NE R6 R5 R6 + 0x781A0004, // 0014 JMPF R6 #001A + 0x8C180B06, // 0015 GETMET R6 R5 K6 + 0x7C180200, // 0016 CALL R6 1 + 0x8C180B07, // 0017 GETMET R6 R5 K7 + 0x7C180200, // 0018 CALL R6 1 + 0x70020009, // 0019 JMP #0024 + 0x60180016, // 001A GETGBL R6 G22 + 0x881C0308, // 001B GETMBR R7 R1 K8 + 0x5C200000, // 001C MOVE R8 R0 + 0x7C180400, // 001D CALL R6 2 + 0x8C1C0509, // 001E GETMET R7 R2 K9 + 0x5C240C00, // 001F MOVE R9 R6 + 0x7C1C0400, // 0020 CALL R7 2 + 0x5C140E00, // 0021 MOVE R5 R7 + 0x881C0504, // 0022 GETMBR R7 R2 K4 + 0x981C0805, // 0023 SETIDX R7 R4 R5 + 0x80040A00, // 0024 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: sine_osc ********************************************************************/ @@ -5310,6 +5641,219 @@ be_local_closure(bounce, /* name */ ); /*******************************************************************/ +// compact class 'RichPaletteAnimation' ktab size: 16, total: 21 (saved 40 bytes) +static const bvalue be_ktab_class_RichPaletteAnimation[16] = { + /* K0 */ be_nested_str_weak(on_param_changed), + /* K1 */ be_nested_str_weak(palette), + /* K2 */ be_nested_str_weak(cycle_period), + /* K3 */ be_nested_str_weak(transition_type), + /* K4 */ be_nested_str_weak(brightness), + /* K5 */ be_nested_str_weak(color_provider), + /* K6 */ be_nested_str_weak(set_param), + /* K7 */ be_nested_str_weak(RichPaletteAnimation_X28_X25s_X2C_X20cycle_period_X3D_X25s_X2C_X20brightness_X3D_X25s_X29), + /* K8 */ be_nested_str_weak(name), + /* K9 */ be_nested_str_weak(RichPaletteAnimation_X28uninitialized_X29), + /* K10 */ be_nested_str_weak(init), + /* K11 */ be_nested_str_weak(rich_palette), + /* K12 */ be_nested_str_weak(animation), + /* K13 */ be_nested_str_weak(values), + /* K14 */ be_nested_str_weak(color), + /* K15 */ be_nested_str_weak(start), +}; + + +extern const bclass be_class_RichPaletteAnimation; + +/******************************************************************** +** Solidified function: on_param_changed +********************************************************************/ +be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_RichPaletteAnimation, /* shared constants */ + be_str_weak(on_param_changed), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x600C0003, // 0000 GETGBL R3 G3 + 0x5C100000, // 0001 MOVE R4 R0 + 0x7C0C0200, // 0002 CALL R3 1 + 0x8C0C0700, // 0003 GETMET R3 R3 K0 + 0x5C140200, // 0004 MOVE R5 R1 + 0x5C180400, // 0005 MOVE R6 R2 + 0x7C0C0600, // 0006 CALL R3 3 + 0x1C0C0301, // 0007 EQ R3 R1 K1 + 0x740E0005, // 0008 JMPT R3 #000F + 0x1C0C0302, // 0009 EQ R3 R1 K2 + 0x740E0003, // 000A JMPT R3 #000F + 0x1C0C0303, // 000B EQ R3 R1 K3 + 0x740E0001, // 000C JMPT R3 #000F + 0x1C0C0304, // 000D EQ R3 R1 K4 + 0x780E0005, // 000E JMPF R3 #0015 + 0x880C0105, // 000F GETMBR R3 R0 K5 + 0x8C0C0706, // 0010 GETMET R3 R3 K6 + 0x5C140200, // 0011 MOVE R5 R1 + 0x5C180400, // 0012 MOVE R6 R2 + 0x7C0C0600, // 0013 CALL R3 3 + 0x70020006, // 0014 JMP #001C + 0x600C0003, // 0015 GETGBL R3 G3 + 0x5C100000, // 0016 MOVE R4 R0 + 0x7C0C0200, // 0017 CALL R3 1 + 0x8C0C0700, // 0018 GETMET R3 R3 K0 + 0x5C140200, // 0019 MOVE R5 R1 + 0x5C180400, // 001A MOVE R6 R2 + 0x7C0C0600, // 001B CALL R3 3 + 0x80000000, // 001C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_RichPaletteAnimation_tostring, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_RichPaletteAnimation, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0xA8020009, // 0000 EXBLK 0 #000B + 0x60040018, // 0001 GETGBL R1 G24 + 0x58080007, // 0002 LDCONST R2 K7 + 0x880C0108, // 0003 GETMBR R3 R0 K8 + 0x88100102, // 0004 GETMBR R4 R0 K2 + 0x88140104, // 0005 GETMBR R5 R0 K4 + 0x7C040800, // 0006 CALL R1 4 + 0xA8040001, // 0007 EXBLK 1 1 + 0x80040200, // 0008 RET 1 R1 + 0xA8040001, // 0009 EXBLK 1 1 + 0x70020004, // 000A JMP #0010 + 0xAC040000, // 000B CATCH R1 0 0 + 0x70020001, // 000C JMP #000F + 0x80061200, // 000D RET 1 K9 + 0x70020000, // 000E JMP #0010 + 0xB0080000, // 000F RAISE 2 R0 R0 + 0x80000000, // 0010 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_RichPaletteAnimation_init, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_RichPaletteAnimation, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x60080003, // 0000 GETGBL R2 G3 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x8C08050A, // 0003 GETMET R2 R2 K10 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x9002110B, // 0006 SETMBR R0 K8 K11 + 0xB80A1800, // 0007 GETNGBL R2 K12 + 0x8C08050B, // 0008 GETMET R2 R2 K11 + 0x5C100200, // 0009 MOVE R4 R1 + 0x7C080400, // 000A CALL R2 2 + 0x90020A02, // 000B SETMBR R0 K5 R2 + 0x8808010D, // 000C GETMBR R2 R0 K13 + 0x880C0105, // 000D GETMBR R3 R0 K5 + 0x980A1C03, // 000E SETIDX R2 K14 R3 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: start +********************************************************************/ +be_local_closure(class_RichPaletteAnimation_start, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_RichPaletteAnimation, /* shared constants */ + be_str_weak(start), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x60080003, // 0000 GETGBL R2 G3 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x8C08050F, // 0003 GETMET R2 R2 K15 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x88080105, // 0006 GETMBR R2 R0 K5 + 0x8C08050F, // 0007 GETMET R2 R2 K15 + 0x5C100200, // 0008 MOVE R4 R1 + 0x7C080400, // 0009 CALL R2 2 + 0x80040000, // 000A RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: RichPaletteAnimation +********************************************************************/ +extern const bclass be_class_Animation; +be_local_class(RichPaletteAnimation, + 1, + &be_class_Animation, + be_nested_map(6, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(tostring, -1), be_const_closure(class_RichPaletteAnimation_tostring_closure) }, + { be_const_key_weak(on_param_changed, 0), be_const_closure(class_RichPaletteAnimation_on_param_changed_closure) }, + { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(4, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(palette, -1), be_const_bytes_instance(0C0605) }, + { be_const_key_weak(transition_type, -1), be_const_bytes_instance(1400050200010005) }, + { be_const_key_weak(brightness, -1), be_const_bytes_instance(07000001FF0001FF00) }, + { be_const_key_weak(cycle_period, 1), be_const_bytes_instance(050000018813) }, + })) ) } )) }, + { be_const_key_weak(init, 2), be_const_closure(class_RichPaletteAnimation_init_closure) }, + { be_const_key_weak(color_provider, -1), be_const_var(0) }, + { be_const_key_weak(start, -1), be_const_closure(class_RichPaletteAnimation_start_closure) }, + })), + be_str_weak(RichPaletteAnimation) +); /******************************************************************** ** Solidified function: elastic @@ -5347,6 +5891,529 @@ be_local_closure(elastic, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: linear +********************************************************************/ +be_local_closure(linear, /* 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), + /* K1 */ be_nested_str_weak(oscillator_value), + /* K2 */ be_nested_str_weak(form), + /* K3 */ be_nested_str_weak(TRIANGLE), + }), + be_str_weak(linear), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0xB8060000, // 0000 GETNGBL R1 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x7C040400, // 0003 CALL R1 2 + 0xB80A0000, // 0004 GETNGBL R2 K0 + 0x88080503, // 0005 GETMBR R2 R2 K3 + 0x90060402, // 0006 SETMBR R1 K2 R2 + 0x80040200, // 0007 RET 1 R1 + }) + ) +); +/*******************************************************************/ + +// compact class 'ColorCycleColorProvider' ktab size: 25, total: 52 (saved 216 bytes) +static const bvalue be_ktab_class_ColorCycleColorProvider[25] = { + /* K0 */ be_nested_str_weak(cycle_period), + /* K1 */ be_nested_str_weak(_get_palette_size), + /* K2 */ be_const_int(1), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(current_index), + /* K5 */ be_nested_str_weak(_get_color_at_index), + /* K6 */ be_nested_str_weak(brightness), + /* K7 */ be_nested_str_weak(apply_brightness), + /* K8 */ be_nested_str_weak(tasmota), + /* K9 */ be_nested_str_weak(scale_uint), + /* K10 */ be_nested_str_weak(ColorCycleColorProvider_X28palette_size_X3D_X25s_X2C_X20cycle_period_X3D_X25s_X2C_X20mode_X3D_X25s_X2C_X20current_index_X3D_X25s_X29), + /* K11 */ be_nested_str_weak(manual), + /* K12 */ be_nested_str_weak(auto), + /* K13 */ be_nested_str_weak(palette), + /* K14 */ be_nested_str_weak(on_param_changed), + /* K15 */ be_nested_str_weak(palette_size), + /* K16 */ be_nested_str_weak(values), + /* K17 */ be_nested_str_weak(value_error), + /* K18 */ be_nested_str_weak(Parameter_X20_X27palette_size_X27_X20is_X20read_X2Donly), + /* K19 */ be_nested_str_weak(next), + /* K20 */ be_nested_str_weak(_adjust_index), + /* K21 */ be_nested_str_weak(member), + /* K22 */ be_nested_str_weak(init), + /* K23 */ be_nested_str_weak(get), + /* K24 */ be_const_int(-16777216), +}; + + +extern const bclass be_class_ColorCycleColorProvider; + +/******************************************************************** +** Solidified function: produce_value +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider_produce_value, /* name */ + be_nested_proto( + 13, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(produce_value), + &be_const_str_solidified, + ( &(const binstruction[56]) { /* code */ + 0x880C0100, // 0000 GETMBR R3 R0 K0 + 0x8C100101, // 0001 GETMET R4 R0 K1 + 0x7C100200, // 0002 CALL R4 1 + 0x18140902, // 0003 LE R5 R4 K2 + 0x74160001, // 0004 JMPT R5 #0007 + 0x1C140703, // 0005 EQ R5 R3 K3 + 0x78160015, // 0006 JMPF R5 #001D + 0x88140104, // 0007 GETMBR R5 R0 K4 + 0x28180A04, // 0008 GE R6 R5 R4 + 0x781A0001, // 0009 JMPF R6 #000C + 0x04180902, // 000A SUB R6 R4 K2 + 0x5C140C00, // 000B MOVE R5 R6 + 0x14180B03, // 000C LT R6 R5 K3 + 0x781A0000, // 000D JMPF R6 #000F + 0x58140003, // 000E LDCONST R5 K3 + 0x90020805, // 000F SETMBR R0 K4 R5 + 0x8C180105, // 0010 GETMET R6 R0 K5 + 0x88200104, // 0011 GETMBR R8 R0 K4 + 0x7C180400, // 0012 CALL R6 2 + 0x881C0106, // 0013 GETMBR R7 R0 K6 + 0x542200FE, // 0014 LDINT R8 255 + 0x20200E08, // 0015 NE R8 R7 R8 + 0x78220004, // 0016 JMPF R8 #001C + 0x8C200107, // 0017 GETMET R8 R0 K7 + 0x5C280C00, // 0018 MOVE R10 R6 + 0x5C2C0E00, // 0019 MOVE R11 R7 + 0x7C200600, // 001A CALL R8 3 + 0x80041000, // 001B RET 1 R8 + 0x80040C00, // 001C RET 1 R6 + 0x10140403, // 001D MOD R5 R2 R3 + 0xB81A1000, // 001E GETNGBL R6 K8 + 0x8C180D09, // 001F GETMET R6 R6 K9 + 0x5C200A00, // 0020 MOVE R8 R5 + 0x58240003, // 0021 LDCONST R9 K3 + 0x04280702, // 0022 SUB R10 R3 K2 + 0x582C0003, // 0023 LDCONST R11 K3 + 0x04300902, // 0024 SUB R12 R4 K2 + 0x7C180C00, // 0025 CALL R6 6 + 0x281C0C04, // 0026 GE R7 R6 R4 + 0x781E0001, // 0027 JMPF R7 #002A + 0x041C0902, // 0028 SUB R7 R4 K2 + 0x5C180E00, // 0029 MOVE R6 R7 + 0x90020806, // 002A SETMBR R0 K4 R6 + 0x8C1C0105, // 002B GETMET R7 R0 K5 + 0x5C240C00, // 002C MOVE R9 R6 + 0x7C1C0400, // 002D CALL R7 2 + 0x88200106, // 002E GETMBR R8 R0 K6 + 0x542600FE, // 002F LDINT R9 255 + 0x20241009, // 0030 NE R9 R8 R9 + 0x78260004, // 0031 JMPF R9 #0037 + 0x8C240107, // 0032 GETMET R9 R0 K7 + 0x5C2C0E00, // 0033 MOVE R11 R7 + 0x5C301000, // 0034 MOVE R12 R8 + 0x7C240600, // 0035 CALL R9 3 + 0x80041200, // 0036 RET 1 R9 + 0x80040E00, // 0037 RET 1 R7 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _adjust_index +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider__adjust_index, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(_adjust_index), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040101, // 0000 GETMET R1 R0 K1 + 0x7C040200, // 0001 CALL R1 1 + 0x24080303, // 0002 GT R2 R1 K3 + 0x780A0009, // 0003 JMPF R2 #000E + 0x88080104, // 0004 GETMBR R2 R0 K4 + 0x10080401, // 0005 MOD R2 R2 R1 + 0x140C0503, // 0006 LT R3 R2 K3 + 0x780E0000, // 0007 JMPF R3 #0009 + 0x00080401, // 0008 ADD R2 R2 R1 + 0x880C0104, // 0009 GETMBR R3 R0 K4 + 0x200C0602, // 000A NE R3 R3 R2 + 0x780E0000, // 000B JMPF R3 #000D + 0x90020802, // 000C SETMBR R0 K4 R2 + 0x70020000, // 000D JMP #000F + 0x90020903, // 000E SETMBR R0 K4 K3 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider_tostring, /* name */ + be_nested_proto( + 7, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x5808000A, // 0001 LDCONST R2 K10 + 0x8C0C0101, // 0002 GETMET R3 R0 K1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x88100100, // 0004 GETMBR R4 R0 K0 + 0x88140100, // 0005 GETMBR R5 R0 K0 + 0x78160001, // 0006 JMPF R5 #0009 + 0x5814000B, // 0007 LDCONST R5 K11 + 0x70020000, // 0008 JMP #000A + 0x5814000C, // 0009 LDCONST R5 K12 + 0x88180104, // 000A GETMBR R6 R0 K4 + 0x7C040A00, // 000B CALL R1 5 + 0x80040200, // 000C RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _get_palette_size +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider__get_palette_size, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(_get_palette_size), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x8808010D, // 0001 GETMBR R2 R0 K13 + 0x7C040200, // 0002 CALL R1 1 + 0x540A0003, // 0003 LDINT R2 4 + 0x0C040202, // 0004 DIV R1 R1 R2 + 0x80040200, // 0005 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: on_param_changed +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider_on_param_changed, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ColorCycleColorProvider, /* shared constants */ + be_str_weak(on_param_changed), + &be_const_str_solidified, + ( &(const binstruction[27]) { /* code */ + 0x600C0003, // 0000 GETGBL R3 G3 + 0x5C100000, // 0001 MOVE R4 R0 + 0x7C0C0200, // 0002 CALL R3 1 + 0x8C0C070E, // 0003 GETMET R3 R3 K14 + 0x5C140200, // 0004 MOVE R5 R1 + 0x5C180400, // 0005 MOVE R6 R2 + 0x7C0C0600, // 0006 CALL R3 3 + 0x1C0C030F, // 0007 EQ R3 R1 K15 + 0x780E0005, // 0008 JMPF R3 #000F + 0x880C0110, // 0009 GETMBR R3 R0 K16 + 0x8C100101, // 000A GETMET R4 R0 K1 + 0x7C100200, // 000B CALL R4 1 + 0x980E1E04, // 000C SETIDX R3 K15 R4 + 0xB0062312, // 000D RAISE 1 K17 K18 + 0x7002000A, // 000E JMP #001A + 0x1C0C0313, // 000F EQ R3 R1 K19 + 0x780E0008, // 0010 JMPF R3 #001A + 0x200C0503, // 0011 NE R3 R2 K3 + 0x780E0006, // 0012 JMPF R3 #001A + 0x880C0104, // 0013 GETMBR R3 R0 K4 + 0x000C0602, // 0014 ADD R3 R3 R2 + 0x90020803, // 0015 SETMBR R0 K4 R3 + 0x8C0C0114, // 0016 GETMET R3 R0 K20 + 0x7C0C0200, // 0017 CALL R3 1 + 0x880C0110, // 0018 GETMBR R3 R0 K16 + 0x980E2703, // 0019 SETIDX R3 K19 K3 + 0x80000000, // 001A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: member +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider_member, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(member), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x1C08030F, // 0000 EQ R2 R1 K15 + 0x780A0003, // 0001 JMPF R2 #0006 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x80040400, // 0004 RET 1 R2 + 0x70020006, // 0005 JMP #000D + 0x60080003, // 0006 GETGBL R2 G3 + 0x5C0C0000, // 0007 MOVE R3 R0 + 0x7C080200, // 0008 CALL R2 1 + 0x8C080515, // 0009 GETMET R2 R2 K21 + 0x5C100200, // 000A MOVE R4 R1 + 0x7C080400, // 000B CALL R2 2 + 0x80040400, // 000C RET 1 R2 + 0x80000000, // 000D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_color_for_value +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(get_color_for_value), + &be_const_str_solidified, + ( &(const binstruction[53]) { /* code */ + 0x8C0C0101, // 0000 GETMET R3 R0 K1 + 0x7C0C0200, // 0001 CALL R3 1 + 0x1C100703, // 0002 EQ R4 R3 K3 + 0x78120000, // 0003 JMPF R4 #0005 + 0x80060600, // 0004 RET 1 K3 + 0x1C100702, // 0005 EQ R4 R3 K2 + 0x7812000C, // 0006 JMPF R4 #0014 + 0x8C100105, // 0007 GETMET R4 R0 K5 + 0x58180003, // 0008 LDCONST R6 K3 + 0x7C100400, // 0009 CALL R4 2 + 0x88140106, // 000A GETMBR R5 R0 K6 + 0x541A00FE, // 000B LDINT R6 255 + 0x20180A06, // 000C NE R6 R5 R6 + 0x781A0004, // 000D JMPF R6 #0013 + 0x8C180107, // 000E GETMET R6 R0 K7 + 0x5C200800, // 000F MOVE R8 R4 + 0x5C240A00, // 0010 MOVE R9 R5 + 0x7C180600, // 0011 CALL R6 3 + 0x80040C00, // 0012 RET 1 R6 + 0x80040800, // 0013 RET 1 R4 + 0x14100303, // 0014 LT R4 R1 K3 + 0x78120001, // 0015 JMPF R4 #0018 + 0x58040003, // 0016 LDCONST R1 K3 + 0x70020003, // 0017 JMP #001C + 0x541200FE, // 0018 LDINT R4 255 + 0x24100204, // 0019 GT R4 R1 R4 + 0x78120000, // 001A JMPF R4 #001C + 0x540600FE, // 001B LDINT R1 255 + 0xB8121000, // 001C GETNGBL R4 K8 + 0x8C100909, // 001D GETMET R4 R4 K9 + 0x5C180200, // 001E MOVE R6 R1 + 0x581C0003, // 001F LDCONST R7 K3 + 0x542200FE, // 0020 LDINT R8 255 + 0x58240003, // 0021 LDCONST R9 K3 + 0x04280702, // 0022 SUB R10 R3 K2 + 0x7C100C00, // 0023 CALL R4 6 + 0x28140803, // 0024 GE R5 R4 R3 + 0x78160001, // 0025 JMPF R5 #0028 + 0x04140702, // 0026 SUB R5 R3 K2 + 0x5C100A00, // 0027 MOVE R4 R5 + 0x8C140105, // 0028 GETMET R5 R0 K5 + 0x5C1C0800, // 0029 MOVE R7 R4 + 0x7C140400, // 002A CALL R5 2 + 0x88180106, // 002B GETMBR R6 R0 K6 + 0x541E00FE, // 002C LDINT R7 255 + 0x201C0C07, // 002D NE R7 R6 R7 + 0x781E0004, // 002E JMPF R7 #0034 + 0x8C1C0107, // 002F GETMET R7 R0 K7 + 0x5C240A00, // 0030 MOVE R9 R5 + 0x5C280C00, // 0031 MOVE R10 R6 + 0x7C1C0600, // 0032 CALL R7 3 + 0x80040E00, // 0033 RET 1 R7 + 0x80040A00, // 0034 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider_init, /* 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_ColorCycleColorProvider, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x60080003, // 0000 GETGBL R2 G3 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x8C080516, // 0003 GETMET R2 R2 K22 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x8808010D, // 0006 GETMBR R2 R0 K13 + 0x90020903, // 0007 SETMBR R0 K4 K3 + 0x880C0110, // 0008 GETMBR R3 R0 K16 + 0x8C100101, // 0009 GETMET R4 R0 K1 + 0x7C100200, // 000A CALL R4 1 + 0x980E1E04, // 000B SETIDX R3 K15 R4 + 0x80000000, // 000C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _get_color_at_index +********************************************************************/ +be_local_closure(class_ColorCycleColorProvider__get_color_at_index, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ColorCycleColorProvider, /* shared constants */ + be_str_weak(_get_color_at_index), + &be_const_str_solidified, + ( &(const binstruction[20]) { /* code */ + 0x8808010D, // 0000 GETMBR R2 R0 K13 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x5C100400, // 0002 MOVE R4 R2 + 0x7C0C0200, // 0003 CALL R3 1 + 0x54120003, // 0004 LDINT R4 4 + 0x0C0C0604, // 0005 DIV R3 R3 R4 + 0x1C100703, // 0006 EQ R4 R3 K3 + 0x74120003, // 0007 JMPT R4 #000C + 0x28100203, // 0008 GE R4 R1 R3 + 0x74120001, // 0009 JMPT R4 #000C + 0x14100303, // 000A LT R4 R1 K3 + 0x78120000, // 000B JMPF R4 #000D + 0x80060600, // 000C RET 1 K3 + 0x8C100517, // 000D GETMET R4 R2 K23 + 0x541A0003, // 000E LDINT R6 4 + 0x08180206, // 000F MUL R6 R1 R6 + 0x541DFFFB, // 0010 LDINT R7 -4 + 0x7C100600, // 0011 CALL R4 3 + 0x30100918, // 0012 OR R4 R4 K24 + 0x80040800, // 0013 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: ColorCycleColorProvider +********************************************************************/ +extern const bclass be_class_ColorProvider; +be_local_class(ColorCycleColorProvider, + 1, + &be_class_ColorProvider, + be_nested_map(11, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(_get_color_at_index, -1), be_const_closure(class_ColorCycleColorProvider__get_color_at_index_closure) }, + { be_const_key_weak(current_index, -1), be_const_var(0) }, + { be_const_key_weak(_adjust_index, 1), be_const_closure(class_ColorCycleColorProvider__adjust_index_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_ColorCycleColorProvider_tostring_closure) }, + { be_const_key_weak(_get_palette_size, -1), be_const_closure(class_ColorCycleColorProvider__get_palette_size_closure) }, + { be_const_key_weak(on_param_changed, -1), be_const_closure(class_ColorCycleColorProvider_on_param_changed_closure) }, + { be_const_key_weak(member, -1), be_const_closure(class_ColorCycleColorProvider_member_closure) }, + { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_ColorCycleColorProvider_get_color_for_value_closure) }, + { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(4, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(palette, 2), be_const_bytes_instance(0C040C00FF0000FFFF00FF00FFFF000002) }, + { be_const_key_weak(palette_size, -1), be_const_bytes_instance(0C000300) }, + { be_const_key_weak(next, 1), be_const_bytes_instance(040000) }, + { be_const_key_weak(cycle_period, -1), be_const_bytes_instance(050000018813) }, + })) ) } )) }, + { be_const_key_weak(init, -1), be_const_closure(class_ColorCycleColorProvider_init_closure) }, + { be_const_key_weak(produce_value, 0), be_const_closure(class_ColorCycleColorProvider_produce_value_closure) }, + })), + be_str_weak(ColorCycleColorProvider) +); + /******************************************************************** ** Solidified function: noise_fractal ********************************************************************/ @@ -5412,9 +6479,342 @@ be_local_closure(noise_fractal, /* name */ /******************************************************************** -** Solidified function: linear +** Solidified function: register_event_handler ********************************************************************/ -be_local_closure(linear, /* name */ +be_local_closure(register_event_handler, /* name */ + be_nested_proto( + 12, /* nstack */ + 5, /* argc */ + 0, /* 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), + /* K1 */ be_nested_str_weak(event_manager), + /* K2 */ be_nested_str_weak(register_handler), + }), + be_str_weak(register_event_handler), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0xB8160000, // 0000 GETNGBL R5 K0 + 0x88140B01, // 0001 GETMBR R5 R5 K1 + 0x8C140B02, // 0002 GETMET R5 R5 K2 + 0x5C1C0000, // 0003 MOVE R7 R0 + 0x5C200200, // 0004 MOVE R8 R1 + 0x5C240400, // 0005 MOVE R9 R2 + 0x5C280600, // 0006 MOVE R10 R3 + 0x5C2C0800, // 0007 MOVE R11 R4 + 0x7C140C00, // 0008 CALL R5 6 + 0x80040A00, // 0009 RET 1 R5 + }) + ) +); +/*******************************************************************/ + +// compact class 'StaticValueProvider' ktab size: 5, total: 15 (saved 80 bytes) +static const bvalue be_ktab_class_StaticValueProvider[5] = { + /* K0 */ be_nested_str_weak(value), + /* K1 */ be_nested_str_weak(instance), + /* K2 */ be_nested_str_weak(introspect), + /* K3 */ be_nested_str_weak(toptr), + /* K4 */ be_nested_str_weak(StaticValueProvider_X28value_X3D_X25s_X29), +}; + + +extern const bclass be_class_StaticValueProvider; + +/******************************************************************** +** Solidified function: <= +********************************************************************/ +be_local_closure(class_StaticValueProvider__X3C_X3D, /* 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_StaticValueProvider, /* shared constants */ + be_str_weak(_X3C_X3D), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x600C0009, // 0001 GETGBL R3 G9 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x18080403, // 0004 LE R2 R2 R3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: > +********************************************************************/ +be_local_closure(class_StaticValueProvider__X3E, /* 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_StaticValueProvider, /* shared constants */ + be_str_weak(_X3E), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x600C0009, // 0001 GETGBL R3 G9 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x24080403, // 0004 GT R2 R2 R3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: >= +********************************************************************/ +be_local_closure(class_StaticValueProvider__X3E_X3D, /* 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_StaticValueProvider, /* shared constants */ + be_str_weak(_X3E_X3D), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x600C0009, // 0001 GETGBL R3 G9 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x28080403, // 0004 GE R2 R2 R3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: produce_value +********************************************************************/ +be_local_closure(class_StaticValueProvider_produce_value, /* name */ + be_nested_proto( + 4, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_StaticValueProvider, /* shared constants */ + be_str_weak(produce_value), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x880C0100, // 0000 GETMBR R3 R0 K0 + 0x80040600, // 0001 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: != +********************************************************************/ +be_local_closure(class_StaticValueProvider__X21_X3D, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_StaticValueProvider, /* shared constants */ + be_str_weak(_X21_X3D), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x60080004, // 0000 GETGBL R2 G4 + 0x5C0C0200, // 0001 MOVE R3 R1 + 0x7C080200, // 0002 CALL R2 1 + 0x1C080501, // 0003 EQ R2 R2 K1 + 0x780A0009, // 0004 JMPF R2 #000F + 0xA40A0400, // 0005 IMPORT R2 K2 + 0x8C0C0503, // 0006 GETMET R3 R2 K3 + 0x5C140000, // 0007 MOVE R5 R0 + 0x7C0C0400, // 0008 CALL R3 2 + 0x8C100503, // 0009 GETMET R4 R2 K3 + 0x5C180200, // 000A MOVE R6 R1 + 0x7C100400, // 000B CALL R4 2 + 0x200C0604, // 000C NE R3 R3 R4 + 0x80040600, // 000D RET 1 R3 + 0x70020005, // 000E JMP #0015 + 0x88080100, // 000F GETMBR R2 R0 K0 + 0x600C0009, // 0010 GETGBL R3 G9 + 0x5C100200, // 0011 MOVE R4 R1 + 0x7C0C0200, // 0012 CALL R3 1 + 0x20080403, // 0013 NE R2 R2 R3 + 0x80040400, // 0014 RET 1 R2 + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: == +********************************************************************/ +be_local_closure(class_StaticValueProvider__X3D_X3D, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_StaticValueProvider, /* shared constants */ + be_str_weak(_X3D_X3D), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x60080004, // 0000 GETGBL R2 G4 + 0x5C0C0200, // 0001 MOVE R3 R1 + 0x7C080200, // 0002 CALL R2 1 + 0x1C080501, // 0003 EQ R2 R2 K1 + 0x780A0009, // 0004 JMPF R2 #000F + 0xA40A0400, // 0005 IMPORT R2 K2 + 0x8C0C0503, // 0006 GETMET R3 R2 K3 + 0x5C140000, // 0007 MOVE R5 R0 + 0x7C0C0400, // 0008 CALL R3 2 + 0x8C100503, // 0009 GETMET R4 R2 K3 + 0x5C180200, // 000A MOVE R6 R1 + 0x7C100400, // 000B CALL R4 2 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x80040600, // 000D RET 1 R3 + 0x70020005, // 000E JMP #0015 + 0x88080100, // 000F GETMBR R2 R0 K0 + 0x600C0009, // 0010 GETGBL R3 G9 + 0x5C100200, // 0011 MOVE R4 R1 + 0x7C0C0200, // 0012 CALL R3 1 + 0x1C080403, // 0013 EQ R2 R2 R3 + 0x80040400, // 0014 RET 1 R2 + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_StaticValueProvider_tostring, /* 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_StaticValueProvider, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x58080004, // 0001 LDCONST R2 K4 + 0x880C0100, // 0002 GETMBR R3 R0 K0 + 0x7C040400, // 0003 CALL R1 2 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: < +********************************************************************/ +be_local_closure(class_StaticValueProvider__X3C, /* 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_StaticValueProvider, /* shared constants */ + be_str_weak(_X3C), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x600C0009, // 0001 GETGBL R3 G9 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x14080403, // 0004 LT R2 R2 R3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: StaticValueProvider +********************************************************************/ +extern const bclass be_class_ValueProvider; +be_local_class(StaticValueProvider, + 0, + &be_class_ValueProvider, + be_nested_map(9, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(_X3C_X3D, -1), be_const_closure(class_StaticValueProvider__X3C_X3D_closure) }, + { be_const_key_weak(_X3D_X3D, -1), be_const_closure(class_StaticValueProvider__X3D_X3D_closure) }, + { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(1, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(value, -1), be_const_bytes_instance(0C0604) }, + })) ) } )) }, + { be_const_key_weak(produce_value, -1), be_const_closure(class_StaticValueProvider_produce_value_closure) }, + { be_const_key_weak(_X21_X3D, -1), be_const_closure(class_StaticValueProvider__X21_X3D_closure) }, + { be_const_key_weak(_X3E_X3D, 1), be_const_closure(class_StaticValueProvider__X3E_X3D_closure) }, + { be_const_key_weak(_X3E, 2), be_const_closure(class_StaticValueProvider__X3E_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_StaticValueProvider_tostring_closure) }, + { be_const_key_weak(_X3C, -1), be_const_closure(class_StaticValueProvider__X3C_closure) }, + })), + be_str_weak(StaticValueProvider) +); + +/******************************************************************** +** Solidified function: square +********************************************************************/ +be_local_closure(square, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ @@ -5428,9 +6828,9 @@ be_local_closure(linear, /* name */ /* K0 */ be_nested_str_weak(animation), /* K1 */ be_nested_str_weak(oscillator_value), /* K2 */ be_nested_str_weak(form), - /* K3 */ be_nested_str_weak(TRIANGLE), + /* K3 */ be_nested_str_weak(SQUARE), }), - be_str_weak(linear), + be_str_weak(square), &be_const_str_solidified, ( &(const binstruction[ 8]) { /* code */ 0xB8060000, // 0000 GETNGBL R1 K0 @@ -5446,340 +6846,6 @@ be_local_closure(linear, /* name */ ); /*******************************************************************/ -extern const bclass be_class_AnimationMath; -// compact class 'AnimationMath' ktab size: 13, total: 31 (saved 144 bytes) -static const bvalue be_ktab_class_AnimationMath[13] = { - /* K0 */ be_const_class(be_class_AnimationMath), - /* K1 */ be_nested_str_weak(math), - /* K2 */ be_nested_str_weak(int), - /* K3 */ be_const_int(0), - /* K4 */ be_const_real_hex(0x437F0000), - /* K5 */ be_nested_str_weak(sqrt), - /* K6 */ be_nested_str_weak(max), - /* K7 */ be_nested_str_weak(round), - /* K8 */ be_nested_str_weak(abs), - /* K9 */ be_nested_str_weak(tasmota), - /* K10 */ be_nested_str_weak(scale_int), - /* K11 */ be_nested_str_weak(sine_int), - /* K12 */ be_nested_str_weak(min), -}; - - -extern const bclass be_class_AnimationMath; - -/******************************************************************** -** Solidified function: sqrt -********************************************************************/ -be_local_closure(class_AnimationMath_sqrt, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(sqrt), - &be_const_str_solidified, - ( &(const binstruction[27]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xA40A0200, // 0001 IMPORT R2 K1 - 0x600C0004, // 0002 GETGBL R3 G4 - 0x5C100000, // 0003 MOVE R4 R0 - 0x7C0C0200, // 0004 CALL R3 1 - 0x1C0C0702, // 0005 EQ R3 R3 K2 - 0x780E000E, // 0006 JMPF R3 #0016 - 0x280C0103, // 0007 GE R3 R0 K3 - 0x780E000C, // 0008 JMPF R3 #0016 - 0x540E00FE, // 0009 LDINT R3 255 - 0x180C0003, // 000A LE R3 R0 R3 - 0x780E0009, // 000B JMPF R3 #0016 - 0x0C0C0104, // 000C DIV R3 R0 K4 - 0x60100009, // 000D GETGBL R4 G9 - 0x8C140505, // 000E GETMET R5 R2 K5 - 0x5C1C0600, // 000F MOVE R7 R3 - 0x7C140400, // 0010 CALL R5 2 - 0x541A00FE, // 0011 LDINT R6 255 - 0x08140A06, // 0012 MUL R5 R5 R6 - 0x7C100200, // 0013 CALL R4 1 - 0x80040800, // 0014 RET 1 R4 - 0x70020003, // 0015 JMP #001A - 0x8C0C0505, // 0016 GETMET R3 R2 K5 - 0x5C140000, // 0017 MOVE R5 R0 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80040600, // 0019 RET 1 R3 - 0x80000000, // 001A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: max -********************************************************************/ -be_local_closure(class_AnimationMath_max, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 13, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(max), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xA40A0200, // 0001 IMPORT R2 K1 - 0x600C0016, // 0002 GETGBL R3 G22 - 0x88100506, // 0003 GETMBR R4 R2 K6 - 0x5C140000, // 0004 MOVE R5 R0 - 0x7C0C0400, // 0005 CALL R3 2 - 0x80040600, // 0006 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: round -********************************************************************/ -be_local_closure(class_AnimationMath_round, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(round), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xA40A0200, // 0001 IMPORT R2 K1 - 0x600C0009, // 0002 GETGBL R3 G9 - 0x8C100507, // 0003 GETMET R4 R2 K7 - 0x5C180000, // 0004 MOVE R6 R0 - 0x7C100400, // 0005 CALL R4 2 - 0x7C0C0200, // 0006 CALL R3 1 - 0x80040600, // 0007 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: abs -********************************************************************/ -be_local_closure(class_AnimationMath_abs, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(abs), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xA40A0200, // 0001 IMPORT R2 K1 - 0x8C0C0508, // 0002 GETMET R3 R2 K8 - 0x5C140000, // 0003 MOVE R5 R0 - 0x7C0C0400, // 0004 CALL R3 2 - 0x80040600, // 0005 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: cos -********************************************************************/ -be_local_closure(class_AnimationMath_cos, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(cos), - &be_const_str_solidified, - ( &(const binstruction[23]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xB80A1200, // 0001 GETNGBL R2 K9 - 0x8C08050A, // 0002 GETMET R2 R2 K10 - 0x5C100000, // 0003 MOVE R4 R0 - 0x58140003, // 0004 LDCONST R5 K3 - 0x541A00FE, // 0005 LDINT R6 255 - 0x581C0003, // 0006 LDCONST R7 K3 - 0x54227FFE, // 0007 LDINT R8 32767 - 0x7C080C00, // 0008 CALL R2 6 - 0xB80E1200, // 0009 GETNGBL R3 K9 - 0x8C0C070B, // 000A GETMET R3 R3 K11 - 0x54161FFF, // 000B LDINT R5 8192 - 0x04140405, // 000C SUB R5 R2 R5 - 0x7C0C0400, // 000D CALL R3 2 - 0xB8121200, // 000E GETNGBL R4 K9 - 0x8C10090A, // 000F GETMET R4 R4 K10 - 0x5C180600, // 0010 MOVE R6 R3 - 0x541DEFFF, // 0011 LDINT R7 -4096 - 0x54220FFF, // 0012 LDINT R8 4096 - 0x5425FF00, // 0013 LDINT R9 -255 - 0x542A00FE, // 0014 LDINT R10 255 - 0x7C100C00, // 0015 CALL R4 6 - 0x80040800, // 0016 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: sin -********************************************************************/ -be_local_closure(class_AnimationMath_sin, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(sin), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xB80A1200, // 0001 GETNGBL R2 K9 - 0x8C08050A, // 0002 GETMET R2 R2 K10 - 0x5C100000, // 0003 MOVE R4 R0 - 0x58140003, // 0004 LDCONST R5 K3 - 0x541A00FE, // 0005 LDINT R6 255 - 0x581C0003, // 0006 LDCONST R7 K3 - 0x54227FFE, // 0007 LDINT R8 32767 - 0x7C080C00, // 0008 CALL R2 6 - 0xB80E1200, // 0009 GETNGBL R3 K9 - 0x8C0C070B, // 000A GETMET R3 R3 K11 - 0x5C140400, // 000B MOVE R5 R2 - 0x7C0C0400, // 000C CALL R3 2 - 0xB8121200, // 000D GETNGBL R4 K9 - 0x8C10090A, // 000E GETMET R4 R4 K10 - 0x5C180600, // 000F MOVE R6 R3 - 0x541DEFFF, // 0010 LDINT R7 -4096 - 0x54220FFF, // 0011 LDINT R8 4096 - 0x5425FF00, // 0012 LDINT R9 -255 - 0x542A00FE, // 0013 LDINT R10 255 - 0x7C100C00, // 0014 CALL R4 6 - 0x80040800, // 0015 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scale -********************************************************************/ -be_local_closure(class_AnimationMath_scale, /* name */ - be_nested_proto( - 13, /* nstack */ - 5, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(scale), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x58140000, // 0000 LDCONST R5 K0 - 0xB81A1200, // 0001 GETNGBL R6 K9 - 0x8C180D0A, // 0002 GETMET R6 R6 K10 - 0x5C200000, // 0003 MOVE R8 R0 - 0x5C240200, // 0004 MOVE R9 R1 - 0x5C280400, // 0005 MOVE R10 R2 - 0x5C2C0600, // 0006 MOVE R11 R3 - 0x5C300800, // 0007 MOVE R12 R4 - 0x7C180C00, // 0008 CALL R6 6 - 0x80040C00, // 0009 RET 1 R6 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: min -********************************************************************/ -be_local_closure(class_AnimationMath_min, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 13, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationMath, /* shared constants */ - be_str_weak(min), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0xA40A0200, // 0001 IMPORT R2 K1 - 0x600C0016, // 0002 GETGBL R3 G22 - 0x8810050C, // 0003 GETMBR R4 R2 K12 - 0x5C140000, // 0004 MOVE R5 R0 - 0x7C0C0400, // 0005 CALL R3 2 - 0x80040600, // 0006 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: AnimationMath -********************************************************************/ -be_local_class(AnimationMath, - 0, - NULL, - be_nested_map(8, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(min, -1), be_const_static_closure(class_AnimationMath_min_closure) }, - { be_const_key_weak(max, 2), be_const_static_closure(class_AnimationMath_max_closure) }, - { be_const_key_weak(scale, -1), be_const_static_closure(class_AnimationMath_scale_closure) }, - { be_const_key_weak(round, 6), be_const_static_closure(class_AnimationMath_round_closure) }, - { be_const_key_weak(cos, -1), be_const_static_closure(class_AnimationMath_cos_closure) }, - { be_const_key_weak(sin, -1), be_const_static_closure(class_AnimationMath_sin_closure) }, - { be_const_key_weak(abs, -1), be_const_static_closure(class_AnimationMath_abs_closure) }, - { be_const_key_weak(sqrt, 0), be_const_static_closure(class_AnimationMath_sqrt_closure) }, - })), - be_str_weak(AnimationMath) -); // compact class 'EngineProxy' ktab size: 41, total: 111 (saved 560 bytes) static const bvalue be_ktab_class_EngineProxy[41] = { /* K0 */ be_nested_str_weak(animations), @@ -6972,408 +8038,6 @@ be_local_class(EngineProxy, })), be_str_weak(EngineProxy) ); - -/******************************************************************** -** Solidified function: register_event_handler -********************************************************************/ -be_local_closure(register_event_handler, /* name */ - be_nested_proto( - 12, /* nstack */ - 5, /* argc */ - 0, /* 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), - /* K1 */ be_nested_str_weak(event_manager), - /* K2 */ be_nested_str_weak(register_handler), - }), - be_str_weak(register_event_handler), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0xB8160000, // 0000 GETNGBL R5 K0 - 0x88140B01, // 0001 GETMBR R5 R5 K1 - 0x8C140B02, // 0002 GETMET R5 R5 K2 - 0x5C1C0000, // 0003 MOVE R7 R0 - 0x5C200200, // 0004 MOVE R8 R1 - 0x5C240400, // 0005 MOVE R9 R2 - 0x5C280600, // 0006 MOVE R10 R3 - 0x5C2C0800, // 0007 MOVE R11 R4 - 0x7C140C00, // 0008 CALL R5 6 - 0x80040A00, // 0009 RET 1 R5 - }) - ) -); -/*******************************************************************/ - -// compact class 'StaticValueProvider' ktab size: 5, total: 15 (saved 80 bytes) -static const bvalue be_ktab_class_StaticValueProvider[5] = { - /* K0 */ be_nested_str_weak(value), - /* K1 */ be_nested_str_weak(instance), - /* K2 */ be_nested_str_weak(introspect), - /* K3 */ be_nested_str_weak(toptr), - /* K4 */ be_nested_str_weak(StaticValueProvider_X28value_X3D_X25s_X29), -}; - - -extern const bclass be_class_StaticValueProvider; - -/******************************************************************** -** Solidified function: <= -********************************************************************/ -be_local_closure(class_StaticValueProvider__X3C_X3D, /* 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_StaticValueProvider, /* shared constants */ - be_str_weak(_X3C_X3D), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x600C0009, // 0001 GETGBL R3 G9 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x18080403, // 0004 LE R2 R2 R3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: > -********************************************************************/ -be_local_closure(class_StaticValueProvider__X3E, /* 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_StaticValueProvider, /* shared constants */ - be_str_weak(_X3E), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x600C0009, // 0001 GETGBL R3 G9 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x24080403, // 0004 GT R2 R2 R3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: >= -********************************************************************/ -be_local_closure(class_StaticValueProvider__X3E_X3D, /* 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_StaticValueProvider, /* shared constants */ - be_str_weak(_X3E_X3D), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x600C0009, // 0001 GETGBL R3 G9 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x28080403, // 0004 GE R2 R2 R3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: produce_value -********************************************************************/ -be_local_closure(class_StaticValueProvider_produce_value, /* name */ - be_nested_proto( - 4, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_StaticValueProvider, /* shared constants */ - be_str_weak(produce_value), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x80040600, // 0001 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: != -********************************************************************/ -be_local_closure(class_StaticValueProvider__X21_X3D, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_StaticValueProvider, /* shared constants */ - be_str_weak(_X21_X3D), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x60080004, // 0000 GETGBL R2 G4 - 0x5C0C0200, // 0001 MOVE R3 R1 - 0x7C080200, // 0002 CALL R2 1 - 0x1C080501, // 0003 EQ R2 R2 K1 - 0x780A0009, // 0004 JMPF R2 #000F - 0xA40A0400, // 0005 IMPORT R2 K2 - 0x8C0C0503, // 0006 GETMET R3 R2 K3 - 0x5C140000, // 0007 MOVE R5 R0 - 0x7C0C0400, // 0008 CALL R3 2 - 0x8C100503, // 0009 GETMET R4 R2 K3 - 0x5C180200, // 000A MOVE R6 R1 - 0x7C100400, // 000B CALL R4 2 - 0x200C0604, // 000C NE R3 R3 R4 - 0x80040600, // 000D RET 1 R3 - 0x70020005, // 000E JMP #0015 - 0x88080100, // 000F GETMBR R2 R0 K0 - 0x600C0009, // 0010 GETGBL R3 G9 - 0x5C100200, // 0011 MOVE R4 R1 - 0x7C0C0200, // 0012 CALL R3 1 - 0x20080403, // 0013 NE R2 R2 R3 - 0x80040400, // 0014 RET 1 R2 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: == -********************************************************************/ -be_local_closure(class_StaticValueProvider__X3D_X3D, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_StaticValueProvider, /* shared constants */ - be_str_weak(_X3D_X3D), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x60080004, // 0000 GETGBL R2 G4 - 0x5C0C0200, // 0001 MOVE R3 R1 - 0x7C080200, // 0002 CALL R2 1 - 0x1C080501, // 0003 EQ R2 R2 K1 - 0x780A0009, // 0004 JMPF R2 #000F - 0xA40A0400, // 0005 IMPORT R2 K2 - 0x8C0C0503, // 0006 GETMET R3 R2 K3 - 0x5C140000, // 0007 MOVE R5 R0 - 0x7C0C0400, // 0008 CALL R3 2 - 0x8C100503, // 0009 GETMET R4 R2 K3 - 0x5C180200, // 000A MOVE R6 R1 - 0x7C100400, // 000B CALL R4 2 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x80040600, // 000D RET 1 R3 - 0x70020005, // 000E JMP #0015 - 0x88080100, // 000F GETMBR R2 R0 K0 - 0x600C0009, // 0010 GETGBL R3 G9 - 0x5C100200, // 0011 MOVE R4 R1 - 0x7C0C0200, // 0012 CALL R3 1 - 0x1C080403, // 0013 EQ R2 R2 R3 - 0x80040400, // 0014 RET 1 R2 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_StaticValueProvider_tostring, /* 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_StaticValueProvider, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x58080004, // 0001 LDCONST R2 K4 - 0x880C0100, // 0002 GETMBR R3 R0 K0 - 0x7C040400, // 0003 CALL R1 2 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: < -********************************************************************/ -be_local_closure(class_StaticValueProvider__X3C, /* 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_StaticValueProvider, /* shared constants */ - be_str_weak(_X3C), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x600C0009, // 0001 GETGBL R3 G9 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x14080403, // 0004 LT R2 R2 R3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: StaticValueProvider -********************************************************************/ -extern const bclass be_class_ValueProvider; -be_local_class(StaticValueProvider, - 0, - &be_class_ValueProvider, - be_nested_map(9, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_X3C_X3D, -1), be_const_closure(class_StaticValueProvider__X3C_X3D_closure) }, - { be_const_key_weak(_X3D_X3D, -1), be_const_closure(class_StaticValueProvider__X3D_X3D_closure) }, - { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(1, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(value, -1), be_const_bytes_instance(0C0604) }, - })) ) } )) }, - { be_const_key_weak(produce_value, -1), be_const_closure(class_StaticValueProvider_produce_value_closure) }, - { be_const_key_weak(_X21_X3D, -1), be_const_closure(class_StaticValueProvider__X21_X3D_closure) }, - { be_const_key_weak(_X3E_X3D, 1), be_const_closure(class_StaticValueProvider__X3E_X3D_closure) }, - { be_const_key_weak(_X3E, 2), be_const_closure(class_StaticValueProvider__X3E_closure) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_StaticValueProvider_tostring_closure) }, - { be_const_key_weak(_X3C, -1), be_const_closure(class_StaticValueProvider__X3C_closure) }, - })), - be_str_weak(StaticValueProvider) -); - -/******************************************************************** -** Solidified function: square -********************************************************************/ -be_local_closure(square, /* 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), - /* K1 */ be_nested_str_weak(oscillator_value), - /* K2 */ be_nested_str_weak(form), - /* K3 */ be_nested_str_weak(SQUARE), - }), - be_str_weak(square), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0xB8060000, // 0000 GETNGBL R1 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C040400, // 0003 CALL R1 2 - 0xB80A0000, // 0004 GETNGBL R2 K0 - 0x88080503, // 0005 GETMBR R2 R2 K3 - 0x90060402, // 0006 SETMBR R1 K2 R2 - 0x80040200, // 0007 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_user_function -********************************************************************/ -be_local_closure(get_user_function, /* 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[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(animation), - /* K1 */ be_nested_str_weak(_user_functions), - /* K2 */ be_nested_str_weak(find), - }), - be_str_weak(get_user_function), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0xB8060000, // 0000 GETNGBL R1 K0 - 0x88040301, // 0001 GETMBR R1 R1 K1 - 0x8C040302, // 0002 GETMET R1 R1 K2 - 0x5C0C0000, // 0003 MOVE R3 R0 - 0x7C040400, // 0004 CALL R1 2 - 0x80040200, // 0005 RET 1 R1 - }) - ) -); -/*******************************************************************/ - // compact class 'NoiseAnimation' ktab size: 50, total: 105 (saved 440 bytes) static const bvalue be_ktab_class_NoiseAnimation[50] = { /* K0 */ be_nested_str_weak(init), @@ -8132,1595 +8796,40 @@ be_local_class(NoiseAnimation, })), be_str_weak(NoiseAnimation) ); -// compact class 'AnimationEngine' ktab size: 89, total: 210 (saved 968 bytes) -static const bvalue be_ktab_class_AnimationEngine[89] = { - /* K0 */ be_nested_str_weak(root_animation), - /* K1 */ be_nested_str_weak(size_animations), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(children), - /* K4 */ be_nested_str_weak(animation), - /* K5 */ be_nested_str_weak(name), - /* K6 */ be_nested_str_weak(stop), - /* K7 */ be_nested_str_weak(remove), - /* K8 */ be_const_int(1), - /* K9 */ be_nested_str_weak(is_running), - /* K10 */ be_nested_str_weak(fast_loop_closure), - /* K11 */ be_nested_str_weak(tasmota), - /* K12 */ be_nested_str_weak(remove_fast_loop), - /* K13 */ be_nested_str_weak(get_animations), - /* K14 */ be_nested_str_weak(push_iteration_context), - /* K15 */ be_nested_str_weak(pop_iteration_context), - /* K16 */ be_nested_str_weak(ts_1), - /* K17 */ be_nested_str_weak(millis), - /* K18 */ be_nested_str_weak(update), - /* K19 */ be_nested_str_weak(ts_2), - /* K20 */ be_nested_str_weak(is_empty), - /* K21 */ be_nested_str_weak(render_needed), - /* K22 */ be_nested_str_weak(_clear_strip), - /* K23 */ be_nested_str_weak(frame_buffer), - /* K24 */ be_nested_str_weak(clear), - /* K25 */ be_nested_str_weak(render), - /* K26 */ be_nested_str_weak(ts_3), - /* K27 */ be_nested_str_weak(_output_to_strip), - /* K28 */ be_nested_str_weak(ts_hw), - /* K29 */ be_nested_str_weak(update_current_iteration), - /* K30 */ be_nested_str_weak(ts_start), - /* K31 */ be_nested_str_weak(ts_end), - /* K32 */ be_nested_str_weak(last_stats_time), - /* K33 */ be_nested_str_weak(tick_count), - /* K34 */ be_nested_str_weak(tick_time_sum), - /* K35 */ be_nested_str_weak(tick_time_min), - /* K36 */ be_nested_str_weak(tick_time_max), - /* K37 */ be_nested_str_weak(anim_time_sum), - /* K38 */ be_nested_str_weak(anim_time_min), - /* K39 */ be_nested_str_weak(anim_time_max), - /* K40 */ be_nested_str_weak(hw_time_sum), - /* K41 */ be_nested_str_weak(hw_time_min), - /* K42 */ be_nested_str_weak(hw_time_max), - /* K43 */ be_nested_str_weak(phase1_time_sum), - /* K44 */ be_nested_str_weak(phase1_time_min), - /* K45 */ be_nested_str_weak(phase1_time_max), - /* K46 */ be_nested_str_weak(phase2_time_sum), - /* K47 */ be_nested_str_weak(phase2_time_min), - /* K48 */ be_nested_str_weak(phase2_time_max), - /* K49 */ be_nested_str_weak(phase3_time_sum), - /* K50 */ be_nested_str_weak(phase3_time_min), - /* K51 */ be_nested_str_weak(phase3_time_max), - /* K52 */ be_nested_str_weak(stats_period), - /* K53 */ be_nested_str_weak(_print_stats), - /* K54 */ be_const_int(999999), - /* K55 */ be_nested_str_weak(add), - /* K56 */ be_nested_str_weak(strip), - /* K57 */ be_nested_str_weak(push_pixels_buffer_argb), - /* K58 */ be_nested_str_weak(pixels), - /* K59 */ be_nested_str_weak(show), - /* K60 */ be_nested_str_weak(set_timer), - /* K61 */ be_nested_str_weak(temp_buffer), - /* K62 */ be_nested_str_weak(event_manager), - /* K63 */ be_nested_str_weak(_process_queued_events), - /* K64 */ be_nested_str_weak(start), - /* K65 */ be_nested_str_weak(get_current_iteration_number), - /* K66 */ be_nested_str_weak(check_strip_length), - /* K67 */ be_nested_str_weak(time_ms), - /* K68 */ be_nested_str_weak(last_update), - /* K69 */ be_nested_str_weak(can_show), - /* K70 */ be_nested_str_weak(_process_events), - /* K71 */ be_nested_str_weak(_update_and_render), - /* K72 */ be_nested_str_weak(_record_tick_metrics), - /* K73 */ be_nested_str_weak(global), - /* K74 */ be_nested_str_weak(debug_animation), - /* K75 */ be_nested_str_weak(value_error), - /* K76 */ be_nested_str_weak(strip_X20cannot_X20be_X20nil), - /* K77 */ be_nested_str_weak(strip_length), - /* K78 */ be_nested_str_weak(length), - /* K79 */ be_nested_str_weak(engine_proxy), - /* K80 */ be_nested_str_weak(root), - /* K81 */ be_nested_str_weak(add_fast_loop), - /* K82 */ be_nested_str_weak(resize), - /* K83 */ be_nested_str_weak(AnimEngine_X3A_X20ticks_X3D_X25s_X20total_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20events_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20update_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20anim_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20hw_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29), - /* K84 */ be_nested_str_weak(log), - /* K85 */ be_const_int(3), - /* K86 */ be_nested_str_weak(AnimationEngine_X28running_X3D_X25s_X29), - /* K87 */ be_nested_str_weak(_handle_strip_length_change), - /* K88 */ be_nested_str_weak(sequences), -}; - - -extern const bclass be_class_AnimationEngine; /******************************************************************** -** Solidified function: size +** Solidified function: get_user_function ********************************************************************/ -be_local_closure(class_AnimationEngine_size, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(size), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: interrupt_animation -********************************************************************/ -be_local_closure(class_AnimationEngine_interrupt_animation, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(interrupt_animation), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x58080002, // 0000 LDCONST R2 K2 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x88100100, // 0002 GETMBR R4 R0 K0 - 0x88100903, // 0003 GETMBR R4 R4 K3 - 0x7C0C0200, // 0004 CALL R3 1 - 0x140C0403, // 0005 LT R3 R2 R3 - 0x780E0019, // 0006 JMPF R3 #0021 - 0x880C0100, // 0007 GETMBR R3 R0 K0 - 0x880C0703, // 0008 GETMBR R3 R3 K3 - 0x940C0602, // 0009 GETIDX R3 R3 R2 - 0x6010000F, // 000A GETGBL R4 G15 - 0x5C140600, // 000B MOVE R5 R3 - 0xB81A0800, // 000C GETNGBL R6 K4 - 0x88180D04, // 000D GETMBR R6 R6 K4 - 0x7C100400, // 000E CALL R4 2 - 0x7812000E, // 000F JMPF R4 #001F - 0x88100705, // 0010 GETMBR R4 R3 K5 - 0x4C140000, // 0011 LDNIL R5 - 0x20100805, // 0012 NE R4 R4 R5 - 0x7812000A, // 0013 JMPF R4 #001F - 0x88100705, // 0014 GETMBR R4 R3 K5 - 0x1C100801, // 0015 EQ R4 R4 R1 - 0x78120007, // 0016 JMPF R4 #001F - 0x8C100706, // 0017 GETMET R4 R3 K6 - 0x7C100200, // 0018 CALL R4 1 - 0x88100100, // 0019 GETMBR R4 R0 K0 - 0x88100903, // 001A GETMBR R4 R4 K3 - 0x8C100907, // 001B GETMET R4 R4 K7 - 0x5C180400, // 001C MOVE R6 R2 - 0x7C100400, // 001D CALL R4 2 - 0x80000800, // 001E RET 0 - 0x00080508, // 001F ADD R2 R2 K8 - 0x7001FFDF, // 0020 JMP #0001 - 0x80000000, // 0021 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: stop -********************************************************************/ -be_local_closure(class_AnimationEngine_stop, /* name */ +be_local_closure(get_user_function, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ - 10, /* varg */ + 0, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(stop), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x78060009, // 0001 JMPF R1 #000C - 0x50040000, // 0002 LDBOOL R1 0 0 - 0x90021201, // 0003 SETMBR R0 K9 R1 - 0x8804010A, // 0004 GETMBR R1 R0 K10 - 0x4C080000, // 0005 LDNIL R2 - 0x20040202, // 0006 NE R1 R1 R2 - 0x78060003, // 0007 JMPF R1 #000C - 0xB8061600, // 0008 GETNGBL R1 K11 - 0x8C04030C, // 0009 GETMET R1 R1 K12 - 0x880C010A, // 000A GETMBR R3 R0 K10 - 0x7C040400, // 000B CALL R1 2 - 0x80040000, // 000C RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_animations -********************************************************************/ -be_local_closure(class_AnimationEngine_get_animations, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_animations), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C04030D, // 0001 GETMET R1 R1 K13 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: push_iteration_context -********************************************************************/ -be_local_closure(class_AnimationEngine_push_iteration_context, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(push_iteration_context), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C08050E, // 0001 GETMET R2 R2 K14 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: pop_iteration_context -********************************************************************/ -be_local_closure(class_AnimationEngine_pop_iteration_context, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(pop_iteration_context), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C04030F, // 0001 GETMET R1 R1 K15 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _update_and_render -********************************************************************/ -be_local_closure(class_AnimationEngine__update_and_render, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_update_and_render), - &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0xB80A1600, // 0000 GETNGBL R2 K11 - 0x8C080511, // 0001 GETMET R2 R2 K17 - 0x7C080200, // 0002 CALL R2 1 - 0x90022002, // 0003 SETMBR R0 K16 R2 - 0x88080100, // 0004 GETMBR R2 R0 K0 - 0x8C080512, // 0005 GETMET R2 R2 K18 - 0x5C100200, // 0006 MOVE R4 R1 - 0x7C080400, // 0007 CALL R2 2 - 0xB80A1600, // 0008 GETNGBL R2 K11 - 0x8C080511, // 0009 GETMET R2 R2 K17 - 0x7C080200, // 000A CALL R2 1 - 0x90022602, // 000B SETMBR R0 K19 R2 - 0x88080100, // 000C GETMBR R2 R0 K0 - 0x8C080514, // 000D GETMET R2 R2 K20 - 0x7C080200, // 000E CALL R2 1 - 0x780A0006, // 000F JMPF R2 #0017 - 0x88080115, // 0010 GETMBR R2 R0 K21 - 0x780A0003, // 0011 JMPF R2 #0016 - 0x8C080116, // 0012 GETMET R2 R0 K22 - 0x7C080200, // 0013 CALL R2 1 - 0x50080000, // 0014 LDBOOL R2 0 0 - 0x90022A02, // 0015 SETMBR R0 K21 R2 - 0x80000400, // 0016 RET 0 - 0x88080117, // 0017 GETMBR R2 R0 K23 - 0x8C080518, // 0018 GETMET R2 R2 K24 - 0x7C080200, // 0019 CALL R2 1 - 0x88080100, // 001A GETMBR R2 R0 K0 - 0x8C080519, // 001B GETMET R2 R2 K25 - 0x88100117, // 001C GETMBR R4 R0 K23 - 0x5C140200, // 001D MOVE R5 R1 - 0x7C080600, // 001E CALL R2 3 - 0xB80E1600, // 001F GETNGBL R3 K11 - 0x8C0C0711, // 0020 GETMET R3 R3 K17 - 0x7C0C0200, // 0021 CALL R3 1 - 0x90023403, // 0022 SETMBR R0 K26 R3 - 0x8C0C011B, // 0023 GETMET R3 R0 K27 - 0x7C0C0200, // 0024 CALL R3 1 - 0xB80E1600, // 0025 GETNGBL R3 K11 - 0x8C0C0711, // 0026 GETMET R3 R3 K17 - 0x7C0C0200, // 0027 CALL R3 1 - 0x90023803, // 0028 SETMBR R0 K28 R3 - 0x500C0000, // 0029 LDBOOL R3 0 0 - 0x90022A03, // 002A SETMBR R0 K21 R3 - 0x80000000, // 002B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: update_current_iteration -********************************************************************/ -be_local_closure(class_AnimationEngine_update_current_iteration, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(update_current_iteration), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C08051D, // 0001 GETMET R2 R2 K29 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _record_tick_metrics -********************************************************************/ -be_local_closure(class_AnimationEngine__record_tick_metrics, /* name */ - be_nested_proto( - 12, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_record_tick_metrics), - &be_const_str_solidified, - ( &(const binstruction[198]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x4C0C0000, // 0001 LDNIL R3 - 0x4C100000, // 0002 LDNIL R4 - 0x4C140000, // 0003 LDNIL R5 - 0x4C180000, // 0004 LDNIL R6 - 0x4C1C0000, // 0005 LDNIL R7 - 0x8820011E, // 0006 GETMBR R8 R0 K30 - 0x4C240000, // 0007 LDNIL R9 - 0x20201009, // 0008 NE R8 R8 R9 - 0x78220007, // 0009 JMPF R8 #0012 - 0x8820011F, // 000A GETMBR R8 R0 K31 - 0x4C240000, // 000B LDNIL R9 - 0x20201009, // 000C NE R8 R8 R9 - 0x78220003, // 000D JMPF R8 #0012 - 0x8820011F, // 000E GETMBR R8 R0 K31 - 0x8824011E, // 000F GETMBR R9 R0 K30 - 0x04201009, // 0010 SUB R8 R8 R9 - 0x5C081000, // 0011 MOVE R2 R8 - 0x88200113, // 0012 GETMBR R8 R0 K19 - 0x4C240000, // 0013 LDNIL R9 - 0x20201009, // 0014 NE R8 R8 R9 - 0x78220007, // 0015 JMPF R8 #001E - 0x8820011A, // 0016 GETMBR R8 R0 K26 - 0x4C240000, // 0017 LDNIL R9 - 0x20201009, // 0018 NE R8 R8 R9 - 0x78220003, // 0019 JMPF R8 #001E - 0x8820011A, // 001A GETMBR R8 R0 K26 - 0x88240113, // 001B GETMBR R9 R0 K19 - 0x04201009, // 001C SUB R8 R8 R9 - 0x5C0C1000, // 001D MOVE R3 R8 - 0x8820011A, // 001E GETMBR R8 R0 K26 - 0x4C240000, // 001F LDNIL R9 - 0x20201009, // 0020 NE R8 R8 R9 - 0x78220007, // 0021 JMPF R8 #002A - 0x8820011C, // 0022 GETMBR R8 R0 K28 - 0x4C240000, // 0023 LDNIL R9 - 0x20201009, // 0024 NE R8 R8 R9 - 0x78220003, // 0025 JMPF R8 #002A - 0x8820011C, // 0026 GETMBR R8 R0 K28 - 0x8824011A, // 0027 GETMBR R9 R0 K26 - 0x04201009, // 0028 SUB R8 R8 R9 - 0x5C101000, // 0029 MOVE R4 R8 - 0x8820011E, // 002A GETMBR R8 R0 K30 - 0x4C240000, // 002B LDNIL R9 - 0x20201009, // 002C NE R8 R8 R9 - 0x78220007, // 002D JMPF R8 #0036 - 0x88200110, // 002E GETMBR R8 R0 K16 - 0x4C240000, // 002F LDNIL R9 - 0x20201009, // 0030 NE R8 R8 R9 - 0x78220003, // 0031 JMPF R8 #0036 - 0x88200110, // 0032 GETMBR R8 R0 K16 - 0x8824011E, // 0033 GETMBR R9 R0 K30 - 0x04201009, // 0034 SUB R8 R8 R9 - 0x5C141000, // 0035 MOVE R5 R8 - 0x88200110, // 0036 GETMBR R8 R0 K16 - 0x4C240000, // 0037 LDNIL R9 - 0x20201009, // 0038 NE R8 R8 R9 - 0x78220007, // 0039 JMPF R8 #0042 - 0x88200113, // 003A GETMBR R8 R0 K19 - 0x4C240000, // 003B LDNIL R9 - 0x20201009, // 003C NE R8 R8 R9 - 0x78220003, // 003D JMPF R8 #0042 - 0x88200113, // 003E GETMBR R8 R0 K19 - 0x88240110, // 003F GETMBR R9 R0 K16 - 0x04201009, // 0040 SUB R8 R8 R9 - 0x5C181000, // 0041 MOVE R6 R8 - 0x88200113, // 0042 GETMBR R8 R0 K19 - 0x4C240000, // 0043 LDNIL R9 - 0x20201009, // 0044 NE R8 R8 R9 - 0x78220007, // 0045 JMPF R8 #004E - 0x8820011A, // 0046 GETMBR R8 R0 K26 - 0x4C240000, // 0047 LDNIL R9 - 0x20201009, // 0048 NE R8 R8 R9 - 0x78220003, // 0049 JMPF R8 #004E - 0x8820011A, // 004A GETMBR R8 R0 K26 - 0x88240113, // 004B GETMBR R9 R0 K19 - 0x04201009, // 004C SUB R8 R8 R9 - 0x5C1C1000, // 004D MOVE R7 R8 - 0x88200120, // 004E GETMBR R8 R0 K32 - 0x1C201102, // 004F EQ R8 R8 K2 - 0x78220000, // 0050 JMPF R8 #0052 - 0x90024001, // 0051 SETMBR R0 K32 R1 - 0x88200121, // 0052 GETMBR R8 R0 K33 - 0x00201108, // 0053 ADD R8 R8 K8 - 0x90024208, // 0054 SETMBR R0 K33 R8 - 0x4C200000, // 0055 LDNIL R8 - 0x20200408, // 0056 NE R8 R2 R8 - 0x7822000A, // 0057 JMPF R8 #0063 - 0x88200122, // 0058 GETMBR R8 R0 K34 - 0x00201002, // 0059 ADD R8 R8 R2 - 0x90024408, // 005A SETMBR R0 K34 R8 - 0x88200123, // 005B GETMBR R8 R0 K35 - 0x14200408, // 005C LT R8 R2 R8 - 0x78220000, // 005D JMPF R8 #005F - 0x90024602, // 005E SETMBR R0 K35 R2 - 0x88200124, // 005F GETMBR R8 R0 K36 - 0x24200408, // 0060 GT R8 R2 R8 - 0x78220000, // 0061 JMPF R8 #0063 - 0x90024802, // 0062 SETMBR R0 K36 R2 - 0x4C200000, // 0063 LDNIL R8 - 0x20200608, // 0064 NE R8 R3 R8 - 0x7822000A, // 0065 JMPF R8 #0071 - 0x88200125, // 0066 GETMBR R8 R0 K37 - 0x00201003, // 0067 ADD R8 R8 R3 - 0x90024A08, // 0068 SETMBR R0 K37 R8 - 0x88200126, // 0069 GETMBR R8 R0 K38 - 0x14200608, // 006A LT R8 R3 R8 - 0x78220000, // 006B JMPF R8 #006D - 0x90024C03, // 006C SETMBR R0 K38 R3 - 0x88200127, // 006D GETMBR R8 R0 K39 - 0x24200608, // 006E GT R8 R3 R8 - 0x78220000, // 006F JMPF R8 #0071 - 0x90024E03, // 0070 SETMBR R0 K39 R3 - 0x4C200000, // 0071 LDNIL R8 - 0x20200808, // 0072 NE R8 R4 R8 - 0x7822000A, // 0073 JMPF R8 #007F - 0x88200128, // 0074 GETMBR R8 R0 K40 - 0x00201004, // 0075 ADD R8 R8 R4 - 0x90025008, // 0076 SETMBR R0 K40 R8 - 0x88200129, // 0077 GETMBR R8 R0 K41 - 0x14200808, // 0078 LT R8 R4 R8 - 0x78220000, // 0079 JMPF R8 #007B - 0x90025204, // 007A SETMBR R0 K41 R4 - 0x8820012A, // 007B GETMBR R8 R0 K42 - 0x24200808, // 007C GT R8 R4 R8 - 0x78220000, // 007D JMPF R8 #007F - 0x90025404, // 007E SETMBR R0 K42 R4 - 0x4C200000, // 007F LDNIL R8 - 0x20200A08, // 0080 NE R8 R5 R8 - 0x7822000A, // 0081 JMPF R8 #008D - 0x8820012B, // 0082 GETMBR R8 R0 K43 - 0x00201005, // 0083 ADD R8 R8 R5 - 0x90025608, // 0084 SETMBR R0 K43 R8 - 0x8820012C, // 0085 GETMBR R8 R0 K44 - 0x14200A08, // 0086 LT R8 R5 R8 - 0x78220000, // 0087 JMPF R8 #0089 - 0x90025805, // 0088 SETMBR R0 K44 R5 - 0x8820012D, // 0089 GETMBR R8 R0 K45 - 0x24200A08, // 008A GT R8 R5 R8 - 0x78220000, // 008B JMPF R8 #008D - 0x90025A05, // 008C SETMBR R0 K45 R5 - 0x4C200000, // 008D LDNIL R8 - 0x20200C08, // 008E NE R8 R6 R8 - 0x7822000A, // 008F JMPF R8 #009B - 0x8820012E, // 0090 GETMBR R8 R0 K46 - 0x00201006, // 0091 ADD R8 R8 R6 - 0x90025C08, // 0092 SETMBR R0 K46 R8 - 0x8820012F, // 0093 GETMBR R8 R0 K47 - 0x14200C08, // 0094 LT R8 R6 R8 - 0x78220000, // 0095 JMPF R8 #0097 - 0x90025E06, // 0096 SETMBR R0 K47 R6 - 0x88200130, // 0097 GETMBR R8 R0 K48 - 0x24200C08, // 0098 GT R8 R6 R8 - 0x78220000, // 0099 JMPF R8 #009B - 0x90026006, // 009A SETMBR R0 K48 R6 - 0x4C200000, // 009B LDNIL R8 - 0x20200E08, // 009C NE R8 R7 R8 - 0x7822000A, // 009D JMPF R8 #00A9 - 0x88200131, // 009E GETMBR R8 R0 K49 - 0x00201007, // 009F ADD R8 R8 R7 - 0x90026208, // 00A0 SETMBR R0 K49 R8 - 0x88200132, // 00A1 GETMBR R8 R0 K50 - 0x14200E08, // 00A2 LT R8 R7 R8 - 0x78220000, // 00A3 JMPF R8 #00A5 - 0x90026407, // 00A4 SETMBR R0 K50 R7 - 0x88200133, // 00A5 GETMBR R8 R0 K51 - 0x24200E08, // 00A6 GT R8 R7 R8 - 0x78220000, // 00A7 JMPF R8 #00A9 - 0x90026607, // 00A8 SETMBR R0 K51 R7 - 0x88200120, // 00A9 GETMBR R8 R0 K32 - 0x04200208, // 00AA SUB R8 R1 R8 - 0x88240134, // 00AB GETMBR R9 R0 K52 - 0x28241009, // 00AC GE R9 R8 R9 - 0x78260016, // 00AD JMPF R9 #00C5 - 0x8C240135, // 00AE GETMET R9 R0 K53 - 0x5C2C1000, // 00AF MOVE R11 R8 - 0x7C240400, // 00B0 CALL R9 2 - 0x90024302, // 00B1 SETMBR R0 K33 K2 - 0x90024502, // 00B2 SETMBR R0 K34 K2 - 0x90024736, // 00B3 SETMBR R0 K35 K54 - 0x90024902, // 00B4 SETMBR R0 K36 K2 - 0x90024B02, // 00B5 SETMBR R0 K37 K2 - 0x90024D36, // 00B6 SETMBR R0 K38 K54 - 0x90024F02, // 00B7 SETMBR R0 K39 K2 - 0x90025102, // 00B8 SETMBR R0 K40 K2 - 0x90025336, // 00B9 SETMBR R0 K41 K54 - 0x90025502, // 00BA SETMBR R0 K42 K2 - 0x90025702, // 00BB SETMBR R0 K43 K2 - 0x90025936, // 00BC SETMBR R0 K44 K54 - 0x90025B02, // 00BD SETMBR R0 K45 K2 - 0x90025D02, // 00BE SETMBR R0 K46 K2 - 0x90025F36, // 00BF SETMBR R0 K47 K54 - 0x90026102, // 00C0 SETMBR R0 K48 K2 - 0x90026302, // 00C1 SETMBR R0 K49 K2 - 0x90026536, // 00C2 SETMBR R0 K50 K54 - 0x90026702, // 00C3 SETMBR R0 K51 K2 - 0x90024001, // 00C4 SETMBR R0 K32 R1 - 0x80000000, // 00C5 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: clear -********************************************************************/ -be_local_closure(class_AnimationEngine_clear, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(clear), + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(animation), + /* K1 */ be_nested_str_weak(_user_functions), + /* K2 */ be_nested_str_weak(find), + }), + be_str_weak(get_user_function), &be_const_str_solidified, ( &(const binstruction[ 6]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040318, // 0001 GETMET R1 R1 K24 - 0x7C040200, // 0002 CALL R1 1 - 0x50040200, // 0003 LDBOOL R1 1 0 - 0x90022A01, // 0004 SETMBR R0 K21 R1 - 0x80040000, // 0005 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add -********************************************************************/ -be_local_closure(class_AnimationEngine_add, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(add), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080537, // 0001 GETMET R2 R2 K55 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x780A0001, // 0004 JMPF R2 #0007 - 0x500C0200, // 0005 LDBOOL R3 1 0 - 0x90022A03, // 0006 SETMBR R0 K21 R3 - 0x80040400, // 0007 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _output_to_strip -********************************************************************/ -be_local_closure(class_AnimationEngine__output_to_strip, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_output_to_strip), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x88040138, // 0000 GETMBR R1 R0 K56 - 0x8C040339, // 0001 GETMET R1 R1 K57 - 0x880C0117, // 0002 GETMBR R3 R0 K23 - 0x880C073A, // 0003 GETMBR R3 R3 K58 + 0xB8060000, // 0000 GETNGBL R1 K0 + 0x88040301, // 0001 GETMBR R1 R1 K1 + 0x8C040302, // 0002 GETMET R1 R1 K2 + 0x5C0C0000, // 0003 MOVE R3 R0 0x7C040400, // 0004 CALL R1 2 - 0x88040138, // 0005 GETMBR R1 R0 K56 - 0x8C04033B, // 0006 GETMET R1 R1 K59 - 0x7C040200, // 0007 CALL R1 1 - 0x80000000, // 0008 RET 0 + 0x80040200, // 0005 RET 1 R1 }) ) ); /*******************************************************************/ -/******************************************************************** -** Solidified function: resume_after -********************************************************************/ -be_local_closure(class_AnimationEngine_resume_after, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 2, /* nstack */ - 0, /* 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[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(resume), - }), - be_str_weak(_anonymous_), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x68000000, // 0000 GETUPV R0 U0 - 0x8C000100, // 0001 GETMET R0 R0 K0 - 0x7C000200, // 0002 CALL R0 1 - 0x80000000, // 0003 RET 0 - }) - ), - }), - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(resume_after), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0xB80A1600, // 0000 GETNGBL R2 K11 - 0x8C08053C, // 0001 GETMET R2 R2 K60 - 0x5C100200, // 0002 MOVE R4 R1 - 0x84140000, // 0003 CLOSURE R5 P0 - 0x7C080600, // 0004 CALL R2 3 - 0xA0000000, // 0005 CLOSE R0 - 0x80000000, // 0006 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: cleanup -********************************************************************/ -be_local_closure(class_AnimationEngine_cleanup, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(cleanup), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C040106, // 0000 GETMET R1 R0 K6 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040118, // 0002 GETMET R1 R0 K24 - 0x7C040200, // 0003 CALL R1 1 - 0x4C040000, // 0004 LDNIL R1 - 0x90022E01, // 0005 SETMBR R0 K23 R1 - 0x4C040000, // 0006 LDNIL R1 - 0x90027A01, // 0007 SETMBR R0 K61 R1 - 0x4C040000, // 0008 LDNIL R1 - 0x90027001, // 0009 SETMBR R0 K56 R1 - 0x80000000, // 000A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_events -********************************************************************/ -be_local_closure(class_AnimationEngine__process_events, /* name */ - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_process_events), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0xB80A0800, // 0000 GETNGBL R2 K4 - 0x8808053E, // 0001 GETMBR R2 R2 K62 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0003, // 0004 JMPF R2 #0009 - 0xB80A0800, // 0005 GETNGBL R2 K4 - 0x8808053E, // 0006 GETMBR R2 R2 K62 - 0x8C08053F, // 0007 GETMET R2 R2 K63 - 0x7C080200, // 0008 CALL R2 1 - 0x80000000, // 0009 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: resume -********************************************************************/ -be_local_closure(class_AnimationEngine_resume, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(resume), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x74060001, // 0001 JMPT R1 #0004 - 0x8C040140, // 0002 GETMET R1 R0 K64 - 0x7C040200, // 0003 CALL R1 1 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_strip -********************************************************************/ -be_local_closure(class_AnimationEngine_get_strip, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_strip), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040138, // 0000 GETMBR R1 R0 K56 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_current_iteration_number -********************************************************************/ -be_local_closure(class_AnimationEngine_get_current_iteration_number, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_current_iteration_number), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040341, // 0001 GETMET R1 R1 K65 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: on_tick -********************************************************************/ -be_local_closure(class_AnimationEngine_on_tick, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(on_tick), - &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ - 0x88080109, // 0000 GETMBR R2 R0 K9 - 0x740A0001, // 0001 JMPT R2 #0004 - 0x50080000, // 0002 LDBOOL R2 0 0 - 0x80040400, // 0003 RET 1 R2 - 0xB80A1600, // 0004 GETNGBL R2 K11 - 0x8C080511, // 0005 GETMET R2 R2 K17 - 0x7C080200, // 0006 CALL R2 1 - 0x90023C02, // 0007 SETMBR R0 K30 R2 - 0x4C080000, // 0008 LDNIL R2 - 0x1C080202, // 0009 EQ R2 R1 R2 - 0x780A0000, // 000A JMPF R2 #000C - 0x8804011E, // 000B GETMBR R1 R0 K30 - 0x8C080142, // 000C GETMET R2 R0 K66 - 0x7C080200, // 000D CALL R2 1 - 0x90028601, // 000E SETMBR R0 K67 R1 - 0x88080144, // 000F GETMBR R2 R0 K68 - 0x04080202, // 0010 SUB R2 R1 R2 - 0x540E0004, // 0011 LDINT R3 5 - 0x140C0403, // 0012 LT R3 R2 R3 - 0x780E0001, // 0013 JMPF R3 #0016 - 0x500C0200, // 0014 LDBOOL R3 1 0 - 0x80040600, // 0015 RET 1 R3 - 0x90028801, // 0016 SETMBR R0 K68 R1 - 0x880C0138, // 0017 GETMBR R3 R0 K56 - 0x880C0745, // 0018 GETMBR R3 R3 K69 - 0x4C100000, // 0019 LDNIL R4 - 0x200C0604, // 001A NE R3 R3 R4 - 0x780E0005, // 001B JMPF R3 #0022 - 0x880C0138, // 001C GETMBR R3 R0 K56 - 0x8C0C0745, // 001D GETMET R3 R3 K69 - 0x7C0C0200, // 001E CALL R3 1 - 0x740E0001, // 001F JMPT R3 #0022 - 0x500C0200, // 0020 LDBOOL R3 1 0 - 0x80040600, // 0021 RET 1 R3 - 0x8C0C0146, // 0022 GETMET R3 R0 K70 - 0x5C140200, // 0023 MOVE R5 R1 - 0x7C0C0400, // 0024 CALL R3 2 - 0x8C0C0147, // 0025 GETMET R3 R0 K71 - 0x5C140200, // 0026 MOVE R5 R1 - 0x7C0C0400, // 0027 CALL R3 2 - 0xB80E1600, // 0028 GETNGBL R3 K11 - 0x8C0C0711, // 0029 GETMET R3 R3 K17 - 0x7C0C0200, // 002A CALL R3 1 - 0x90023E03, // 002B SETMBR R0 K31 R3 - 0x8C0C0148, // 002C GETMET R3 R0 K72 - 0x5C140200, // 002D MOVE R5 R1 - 0x7C0C0400, // 002E CALL R3 2 - 0xB80E9200, // 002F GETNGBL R3 K73 - 0x50100000, // 0030 LDBOOL R4 0 0 - 0x900E9404, // 0031 SETMBR R3 K74 R4 - 0x500C0200, // 0032 LDBOOL R3 1 0 - 0x80040600, // 0033 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_AnimationEngine_init, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[68]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x1C080202, // 0001 EQ R2 R1 R2 - 0x780A0000, // 0002 JMPF R2 #0004 - 0xB006974C, // 0003 RAISE 1 K75 K76 - 0x90027001, // 0004 SETMBR R0 K56 R1 - 0x8C08034E, // 0005 GETMET R2 R1 K78 - 0x7C080200, // 0006 CALL R2 1 - 0x90029A02, // 0007 SETMBR R0 K77 R2 - 0xB80A0800, // 0008 GETNGBL R2 K4 - 0x8C080517, // 0009 GETMET R2 R2 K23 - 0x8810014D, // 000A GETMBR R4 R0 K77 - 0x7C080400, // 000B CALL R2 2 - 0x90022E02, // 000C SETMBR R0 K23 R2 - 0xB80A0800, // 000D GETNGBL R2 K4 - 0x8C080517, // 000E GETMET R2 R2 K23 - 0x8810014D, // 000F GETMBR R4 R0 K77 - 0x7C080400, // 0010 CALL R2 2 - 0x90027A02, // 0011 SETMBR R0 K61 R2 - 0xB80A0800, // 0012 GETNGBL R2 K4 - 0x8C08054F, // 0013 GETMET R2 R2 K79 - 0x5C100000, // 0014 MOVE R4 R0 - 0x7C080400, // 0015 CALL R2 2 - 0x90020002, // 0016 SETMBR R0 K0 R2 - 0x88080100, // 0017 GETMBR R2 R0 K0 - 0x900A0B50, // 0018 SETMBR R2 K5 K80 - 0x50080000, // 0019 LDBOOL R2 0 0 - 0x90021202, // 001A SETMBR R0 K9 R2 - 0x90028902, // 001B SETMBR R0 K68 K2 - 0x90028702, // 001C SETMBR R0 K67 K2 - 0x4C080000, // 001D LDNIL R2 - 0x90021402, // 001E SETMBR R0 K10 R2 - 0x50080000, // 001F LDBOOL R2 0 0 - 0x90022A02, // 0020 SETMBR R0 K21 R2 - 0x90024302, // 0021 SETMBR R0 K33 K2 - 0x90024502, // 0022 SETMBR R0 K34 K2 - 0x90024736, // 0023 SETMBR R0 K35 K54 - 0x90024902, // 0024 SETMBR R0 K36 K2 - 0x90024B02, // 0025 SETMBR R0 K37 K2 - 0x90024D36, // 0026 SETMBR R0 K38 K54 - 0x90024F02, // 0027 SETMBR R0 K39 K2 - 0x90025102, // 0028 SETMBR R0 K40 K2 - 0x90025336, // 0029 SETMBR R0 K41 K54 - 0x90025502, // 002A SETMBR R0 K42 K2 - 0x90025702, // 002B SETMBR R0 K43 K2 - 0x90025936, // 002C SETMBR R0 K44 K54 - 0x90025B02, // 002D SETMBR R0 K45 K2 - 0x90025D02, // 002E SETMBR R0 K46 K2 - 0x90025F36, // 002F SETMBR R0 K47 K54 - 0x90026102, // 0030 SETMBR R0 K48 K2 - 0x90026302, // 0031 SETMBR R0 K49 K2 - 0x90026536, // 0032 SETMBR R0 K50 K54 - 0x90026702, // 0033 SETMBR R0 K51 K2 - 0x90024102, // 0034 SETMBR R0 K32 K2 - 0x540A1387, // 0035 LDINT R2 5000 - 0x90026802, // 0036 SETMBR R0 K52 R2 - 0x4C080000, // 0037 LDNIL R2 - 0x90023C02, // 0038 SETMBR R0 K30 R2 - 0x4C080000, // 0039 LDNIL R2 - 0x90022002, // 003A SETMBR R0 K16 R2 - 0x4C080000, // 003B LDNIL R2 - 0x90022602, // 003C SETMBR R0 K19 R2 - 0x4C080000, // 003D LDNIL R2 - 0x90023402, // 003E SETMBR R0 K26 R2 - 0x4C080000, // 003F LDNIL R2 - 0x90023802, // 0040 SETMBR R0 K28 R2 - 0x4C080000, // 0041 LDNIL R2 - 0x90023E02, // 0042 SETMBR R0 K31 R2 - 0x80000000, // 0043 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: run -********************************************************************/ -be_local_closure(class_AnimationEngine_run, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 2, /* nstack */ - 0, /* 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[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(on_tick), - }), - be_str_weak(_X3Clambda_X3E), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x68000000, // 0000 GETUPV R0 U0 - 0x8C000100, // 0001 GETMET R0 R0 K0 - 0x7C000200, // 0002 CALL R0 1 - 0x80040000, // 0003 RET 1 R0 - }) - ), - }), - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(run), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x74060015, // 0001 JMPT R1 #0018 - 0xB8061600, // 0002 GETNGBL R1 K11 - 0x8C040311, // 0003 GETMET R1 R1 K17 - 0x7C040200, // 0004 CALL R1 1 - 0x50080200, // 0005 LDBOOL R2 1 0 - 0x90021202, // 0006 SETMBR R0 K9 R2 - 0x540A0009, // 0007 LDINT R2 10 - 0x04080202, // 0008 SUB R2 R1 R2 - 0x90028802, // 0009 SETMBR R0 K68 R2 - 0x8808010A, // 000A GETMBR R2 R0 K10 - 0x4C0C0000, // 000B LDNIL R3 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x780A0001, // 000D JMPF R2 #0010 - 0x84080000, // 000E CLOSURE R2 P0 - 0x90021402, // 000F SETMBR R0 K10 R2 - 0x88080100, // 0010 GETMBR R2 R0 K0 - 0x8C080540, // 0011 GETMET R2 R2 K64 - 0x5C100200, // 0012 MOVE R4 R1 - 0x7C080400, // 0013 CALL R2 2 - 0xB80A1600, // 0014 GETNGBL R2 K11 - 0x8C080551, // 0015 GETMET R2 R2 K81 - 0x8810010A, // 0016 GETMBR R4 R0 K10 - 0x7C080400, // 0017 CALL R2 2 - 0xA0000000, // 0018 CLOSE R0 - 0x80040000, // 0019 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: remove -********************************************************************/ -be_local_closure(class_AnimationEngine_remove, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(remove), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080507, // 0001 GETMET R2 R2 K7 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x780A0001, // 0004 JMPF R2 #0007 - 0x500C0200, // 0005 LDBOOL R3 1 0 - 0x90022A03, // 0006 SETMBR R0 K21 R3 - 0x80040400, // 0007 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _handle_strip_length_change -********************************************************************/ -be_local_closure(class_AnimationEngine__handle_strip_length_change, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_handle_strip_length_change), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x18080302, // 0000 LE R2 R1 K2 - 0x780A0000, // 0001 JMPF R2 #0003 - 0x80000400, // 0002 RET 0 - 0x90029A01, // 0003 SETMBR R0 K77 R1 - 0x88080117, // 0004 GETMBR R2 R0 K23 - 0x8C080552, // 0005 GETMET R2 R2 K82 - 0x5C100200, // 0006 MOVE R4 R1 - 0x7C080400, // 0007 CALL R2 2 - 0x8808013D, // 0008 GETMBR R2 R0 K61 - 0x8C080552, // 0009 GETMET R2 R2 K82 - 0x5C100200, // 000A MOVE R4 R1 - 0x7C080400, // 000B CALL R2 2 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x90022A02, // 000D SETMBR R0 K21 R2 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_strip_length -********************************************************************/ -be_local_closure(class_AnimationEngine_get_strip_length, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(get_strip_length), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x8804014D, // 0000 GETMBR R1 R0 K77 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: interrupt_current -********************************************************************/ -be_local_closure(class_AnimationEngine_interrupt_current, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(interrupt_current), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040306, // 0001 GETMET R1 R1 K6 - 0x7C040200, // 0002 CALL R1 1 - 0x80000000, // 0003 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _print_stats -********************************************************************/ -be_local_closure(class_AnimationEngine__print_stats, /* name */ - be_nested_proto( - 26, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_print_stats), - &be_const_str_solidified, - ( &(const binstruction[47]) { /* code */ - 0x88080121, // 0000 GETMBR R2 R0 K33 - 0x1C080502, // 0001 EQ R2 R2 K2 - 0x780A0000, // 0002 JMPF R2 #0004 - 0x80000400, // 0003 RET 0 - 0x88080122, // 0004 GETMBR R2 R0 K34 - 0x880C0121, // 0005 GETMBR R3 R0 K33 - 0x0C080403, // 0006 DIV R2 R2 R3 - 0x880C0125, // 0007 GETMBR R3 R0 K37 - 0x88100121, // 0008 GETMBR R4 R0 K33 - 0x0C0C0604, // 0009 DIV R3 R3 R4 - 0x88100128, // 000A GETMBR R4 R0 K40 - 0x88140121, // 000B GETMBR R5 R0 K33 - 0x0C100805, // 000C DIV R4 R4 R5 - 0x8814012B, // 000D GETMBR R5 R0 K43 - 0x88180121, // 000E GETMBR R6 R0 K33 - 0x0C140A06, // 000F DIV R5 R5 R6 - 0x8818012E, // 0010 GETMBR R6 R0 K46 - 0x881C0121, // 0011 GETMBR R7 R0 K33 - 0x0C180C07, // 0012 DIV R6 R6 R7 - 0x881C0131, // 0013 GETMBR R7 R0 K49 - 0x88200121, // 0014 GETMBR R8 R0 K33 - 0x0C1C0E08, // 0015 DIV R7 R7 R8 - 0x60200018, // 0016 GETGBL R8 G24 - 0x58240053, // 0017 LDCONST R9 K83 - 0x88280121, // 0018 GETMBR R10 R0 K33 - 0x5C2C0400, // 0019 MOVE R11 R2 - 0x88300123, // 001A GETMBR R12 R0 K35 - 0x88340124, // 001B GETMBR R13 R0 K36 - 0x5C380A00, // 001C MOVE R14 R5 - 0x883C012C, // 001D GETMBR R15 R0 K44 - 0x8840012D, // 001E GETMBR R16 R0 K45 - 0x5C440C00, // 001F MOVE R17 R6 - 0x8848012F, // 0020 GETMBR R18 R0 K47 - 0x884C0130, // 0021 GETMBR R19 R0 K48 - 0x5C500600, // 0022 MOVE R20 R3 - 0x88540126, // 0023 GETMBR R21 R0 K38 - 0x88580127, // 0024 GETMBR R22 R0 K39 - 0x5C5C0800, // 0025 MOVE R23 R4 - 0x88600129, // 0026 GETMBR R24 R0 K41 - 0x8864012A, // 0027 GETMBR R25 R0 K42 - 0x7C202200, // 0028 CALL R8 17 - 0xB8261600, // 0029 GETNGBL R9 K11 - 0x8C241354, // 002A GETMET R9 R9 K84 - 0x5C2C1000, // 002B MOVE R11 R8 - 0x58300055, // 002C LDCONST R12 K85 - 0x7C240600, // 002D CALL R9 3 - 0x80000000, // 002E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_active -********************************************************************/ -be_local_closure(class_AnimationEngine_is_active, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(is_active), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_AnimationEngine_tostring, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x58080056, // 0001 LDCONST R2 K86 - 0x880C0109, // 0002 GETMBR R3 R0 K9 - 0x7C040400, // 0003 CALL R1 2 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_strip_length -********************************************************************/ -be_local_closure(class_AnimationEngine_check_strip_length, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(check_strip_length), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88040138, // 0000 GETMBR R1 R0 K56 - 0x8C04034E, // 0001 GETMET R1 R1 K78 - 0x7C040200, // 0002 CALL R1 1 - 0x8808014D, // 0003 GETMBR R2 R0 K77 - 0x20080202, // 0004 NE R2 R1 R2 - 0x780A0004, // 0005 JMPF R2 #000B - 0x8C080157, // 0006 GETMET R2 R0 K87 - 0x5C100200, // 0007 MOVE R4 R1 - 0x7C080400, // 0008 CALL R2 2 - 0x50080200, // 0009 LDBOOL R2 1 0 - 0x80040400, // 000A RET 1 R2 - 0x50080000, // 000B LDBOOL R2 0 0 - 0x80040400, // 000C RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: animations -********************************************************************/ -be_local_closure(class_AnimationEngine_animations, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(animations), - &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x8C04010D, // 0000 GETMET R1 R0 K13 - 0x7C040200, // 0001 CALL R1 1 - 0x80040200, // 0002 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: sequence_managers -********************************************************************/ -be_local_closure(class_AnimationEngine_sequence_managers, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(sequence_managers), - &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x88040358, // 0001 GETMBR R1 R1 K88 - 0x80040200, // 0002 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _clear_strip -********************************************************************/ -be_local_closure(class_AnimationEngine__clear_strip, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationEngine, /* shared constants */ - be_str_weak(_clear_strip), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x88040138, // 0000 GETMBR R1 R0 K56 - 0x8C040318, // 0001 GETMET R1 R1 K24 - 0x7C040200, // 0002 CALL R1 1 - 0x88040138, // 0003 GETMBR R1 R0 K56 - 0x8C04033B, // 0004 GETMET R1 R1 K59 - 0x7C040200, // 0005 CALL R1 1 - 0x80000000, // 0006 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: AnimationEngine -********************************************************************/ -be_local_class(AnimationEngine, - 37, - NULL, - be_nested_map(69, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(size, -1), be_const_closure(class_AnimationEngine_size_closure) }, - { be_const_key_weak(interrupt_animation, 65), be_const_closure(class_AnimationEngine_interrupt_animation_closure) }, - { be_const_key_weak(anim_time_min, 68), be_const_var(15) }, - { be_const_key_weak(stats_period, -1), be_const_var(30) }, - { be_const_key_weak(ts_2, -1), be_const_var(33) }, - { be_const_key_weak(stop, 44), be_const_closure(class_AnimationEngine_stop_closure) }, - { be_const_key_weak(tick_time_min, 57), be_const_var(12) }, - { be_const_key_weak(push_iteration_context, -1), be_const_closure(class_AnimationEngine_push_iteration_context_closure) }, - { be_const_key_weak(frame_buffer, -1), be_const_var(3) }, - { be_const_key_weak(pop_iteration_context, 13), be_const_closure(class_AnimationEngine_pop_iteration_context_closure) }, - { be_const_key_weak(phase2_time_sum, -1), be_const_var(23) }, - { be_const_key_weak(update_current_iteration, 59), be_const_closure(class_AnimationEngine_update_current_iteration_closure) }, - { be_const_key_weak(phase3_time_max, -1), be_const_var(28) }, - { be_const_key_weak(hw_time_sum, 41), be_const_var(17) }, - { be_const_key_weak(tick_time_sum, -1), be_const_var(11) }, - { be_const_key_weak(phase2_time_min, 12), be_const_var(24) }, - { be_const_key_weak(_clear_strip, 53), be_const_closure(class_AnimationEngine__clear_strip_closure) }, - { be_const_key_weak(cleanup, -1), be_const_closure(class_AnimationEngine_cleanup_closure) }, - { be_const_key_weak(strip, -1), be_const_var(0) }, - { be_const_key_weak(anim_time_sum, -1), be_const_var(14) }, - { be_const_key_weak(clear, -1), be_const_closure(class_AnimationEngine_clear_closure) }, - { be_const_key_weak(fast_loop_closure, -1), be_const_var(8) }, - { be_const_key_weak(add, -1), be_const_closure(class_AnimationEngine_add_closure) }, - { be_const_key_weak(last_update, 10), be_const_var(6) }, - { be_const_key_weak(ts_hw, -1), be_const_var(35) }, - { be_const_key_weak(ts_1, 43), be_const_var(32) }, - { be_const_key_weak(phase1_time_max, -1), be_const_var(22) }, - { be_const_key_weak(_output_to_strip, -1), be_const_closure(class_AnimationEngine__output_to_strip_closure) }, - { be_const_key_weak(phase3_time_min, -1), be_const_var(27) }, - { be_const_key_weak(_record_tick_metrics, 6), be_const_closure(class_AnimationEngine__record_tick_metrics_closure) }, - { be_const_key_weak(last_stats_time, -1), be_const_var(29) }, - { be_const_key_weak(_update_and_render, 17), be_const_closure(class_AnimationEngine__update_and_render_closure) }, - { be_const_key_weak(_process_events, -1), be_const_closure(class_AnimationEngine__process_events_closure) }, - { be_const_key_weak(anim_time_max, -1), be_const_var(16) }, - { be_const_key_weak(temp_buffer, -1), be_const_var(4) }, - { be_const_key_weak(resume, -1), be_const_closure(class_AnimationEngine_resume_closure) }, - { be_const_key_weak(get_strip, -1), be_const_closure(class_AnimationEngine_get_strip_closure) }, - { be_const_key_weak(get_current_iteration_number, -1), be_const_closure(class_AnimationEngine_get_current_iteration_number_closure) }, - { be_const_key_weak(strip_length, 16), be_const_var(1) }, - { be_const_key_weak(phase1_time_sum, -1), be_const_var(20) }, - { be_const_key_weak(on_tick, 34), be_const_closure(class_AnimationEngine_on_tick_closure) }, - { be_const_key_weak(animations, -1), be_const_closure(class_AnimationEngine_animations_closure) }, - { be_const_key_weak(root_animation, 19), be_const_var(2) }, - { be_const_key_weak(check_strip_length, -1), be_const_closure(class_AnimationEngine_check_strip_length_closure) }, - { be_const_key_weak(phase1_time_min, -1), be_const_var(21) }, - { be_const_key_weak(remove, -1), be_const_closure(class_AnimationEngine_remove_closure) }, - { be_const_key_weak(_handle_strip_length_change, -1), be_const_closure(class_AnimationEngine__handle_strip_length_change_closure) }, - { be_const_key_weak(tick_time_max, 58), be_const_var(13) }, - { be_const_key_weak(interrupt_current, -1), be_const_closure(class_AnimationEngine_interrupt_current_closure) }, - { be_const_key_weak(resume_after, 56), be_const_closure(class_AnimationEngine_resume_after_closure) }, - { be_const_key_weak(hw_time_min, 54), be_const_var(18) }, - { be_const_key_weak(render_needed, -1), be_const_var(9) }, - { be_const_key_weak(ts_start, 48), be_const_var(31) }, - { be_const_key_weak(is_active, -1), be_const_closure(class_AnimationEngine_is_active_closure) }, - { be_const_key_weak(_print_stats, -1), be_const_closure(class_AnimationEngine__print_stats_closure) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_AnimationEngine_tostring_closure) }, - { be_const_key_weak(is_running, -1), be_const_var(5) }, - { be_const_key_weak(hw_time_max, 64), be_const_var(19) }, - { be_const_key_weak(get_strip_length, -1), be_const_closure(class_AnimationEngine_get_strip_length_closure) }, - { be_const_key_weak(run, 67), be_const_closure(class_AnimationEngine_run_closure) }, - { be_const_key_weak(init, 30), be_const_closure(class_AnimationEngine_init_closure) }, - { be_const_key_weak(phase3_time_sum, 28), be_const_var(26) }, - { be_const_key_weak(sequence_managers, -1), be_const_closure(class_AnimationEngine_sequence_managers_closure) }, - { be_const_key_weak(time_ms, -1), be_const_var(7) }, - { be_const_key_weak(ts_end, -1), be_const_var(36) }, - { be_const_key_weak(tick_count, -1), be_const_var(10) }, - { be_const_key_weak(phase2_time_max, -1), be_const_var(25) }, - { be_const_key_weak(ts_3, -1), be_const_var(34) }, - { be_const_key_weak(get_animations, -1), be_const_closure(class_AnimationEngine_get_animations_closure) }, - })), - be_str_weak(AnimationEngine) -); - /******************************************************************** ** Solidified function: encode_constraints ********************************************************************/ @@ -10124,6 +9233,42 @@ be_local_closure(encode_constraints, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: smooth +********************************************************************/ +be_local_closure(smooth, /* 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), + /* K1 */ be_nested_str_weak(oscillator_value), + /* K2 */ be_nested_str_weak(form), + /* K3 */ be_nested_str_weak(COSINE), + }), + be_str_weak(smooth), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0xB8060000, // 0000 GETNGBL R1 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x7C040400, // 0003 CALL R1 2 + 0xB80A0000, // 0004 GETNGBL R2 K0 + 0x88080503, // 0005 GETMBR R2 R2 K3 + 0x90060402, // 0006 SETMBR R1 K2 R2 + 0x80040200, // 0007 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: gradient_rainbow_linear ********************************************************************/ @@ -10198,42 +9343,6 @@ be_local_closure(clear_all_event_handlers, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: smooth -********************************************************************/ -be_local_closure(smooth, /* 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), - /* K1 */ be_nested_str_weak(oscillator_value), - /* K2 */ be_nested_str_weak(form), - /* K3 */ be_nested_str_weak(COSINE), - }), - be_str_weak(smooth), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0xB8060000, // 0000 GETNGBL R1 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C040400, // 0003 CALL R1 2 - 0xB80A0000, // 0004 GETNGBL R2 K0 - 0x88080503, // 0005 GETMBR R2 R2 K3 - 0x90060402, // 0006 SETMBR R1 K2 R2 - 0x80040200, // 0007 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: twinkle_rainbow ********************************************************************/ @@ -10282,6 +9391,38 @@ be_local_closure(twinkle_rainbow, /* name */ ); /*******************************************************************/ + +/******************************************************************** +** Solidified function: is_value_provider +********************************************************************/ +be_local_closure(is_value_provider, /* 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[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(animation), + /* K1 */ be_nested_str_weak(value_provider), + }), + be_str_weak(is_value_provider), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x6004000F, // 0000 GETGBL R1 G15 + 0x5C080000, // 0001 MOVE R2 R0 + 0xB80E0000, // 0002 GETNGBL R3 K0 + 0x880C0701, // 0003 GETMBR R3 R3 K1 + 0x7C040400, // 0004 CALL R1 2 + 0x80040200, // 0005 RET 1 R1 + }) + ) +); +/*******************************************************************/ + // compact class 'EventHandler' ktab size: 7, total: 11 (saved 32 bytes) static const bvalue be_ktab_class_EventHandler[7] = { /* K0 */ be_nested_str_weak(is_active), @@ -10434,145 +9575,6 @@ be_local_class(EventHandler, be_str_weak(EventHandler) ); -extern const bclass be_class_PaletteGradientAnimation; - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_PaletteGradientAnimation_init, /* 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(init), - /* K1 */ be_nested_str_weak(name), - /* K2 */ be_nested_str_weak(palette_gradient), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C080500, // 0003 GETMET R2 R2 K0 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x90020302, // 0006 SETMBR R0 K1 K2 - 0x80000000, // 0007 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _update_value_buffer -********************************************************************/ -be_local_closure(class_PaletteGradientAnimation__update_value_buffer, /* name */ - be_nested_proto( - 15, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(shift_period), - /* K1 */ be_nested_str_weak(spatial_period), - /* K2 */ be_nested_str_weak(phase_shift), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(tasmota), - /* K5 */ be_nested_str_weak(scale_uint), - /* K6 */ be_const_int(522241), - /* K7 */ be_const_int(1), - /* K8 */ be_nested_str_weak(value_buffer), - /* K9 */ be_nested_str_weak(_buffer), - }), - be_str_weak(_update_value_buffer), - &be_const_str_solidified, - ( &(const binstruction[46]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x88100101, // 0001 GETMBR R4 R0 K1 - 0x88140102, // 0002 GETMBR R5 R0 K2 - 0x24180903, // 0003 GT R6 R4 K3 - 0x781A0001, // 0004 JMPF R6 #0007 - 0x5C180800, // 0005 MOVE R6 R4 - 0x70020000, // 0006 JMP #0008 - 0x5C180400, // 0007 MOVE R6 R2 - 0x581C0003, // 0008 LDCONST R7 K3 - 0x24200703, // 0009 GT R8 R3 K3 - 0x78220008, // 000A JMPF R8 #0014 - 0xB8220800, // 000B GETNGBL R8 K4 - 0x8C201105, // 000C GETMET R8 R8 K5 - 0x10280203, // 000D MOD R10 R1 R3 - 0x582C0003, // 000E LDCONST R11 K3 - 0x5C300600, // 000F MOVE R12 R3 - 0x58340003, // 0010 LDCONST R13 K3 - 0x5C380C00, // 0011 MOVE R14 R6 - 0x7C200C00, // 0012 CALL R8 6 - 0x5C1C1000, // 0013 MOVE R7 R8 - 0xB8220800, // 0014 GETNGBL R8 K4 - 0x8C201105, // 0015 GETMET R8 R8 K5 - 0x5C280A00, // 0016 MOVE R10 R5 - 0x582C0003, // 0017 LDCONST R11 K3 - 0x54320063, // 0018 LDINT R12 100 - 0x58340003, // 0019 LDCONST R13 K3 - 0x5C380C00, // 001A MOVE R14 R6 - 0x7C200C00, // 001B CALL R8 6 - 0x58240003, // 001C LDCONST R9 K3 - 0x00280E08, // 001D ADD R10 R7 R8 - 0x10281406, // 001E MOD R10 R10 R6 - 0x0C2E0C06, // 001F DIV R11 K6 R6 - 0x3C2C1707, // 0020 SHR R11 R11 K7 - 0x0830140B, // 0021 MUL R12 R10 R11 - 0x88340108, // 0022 GETMBR R13 R0 K8 - 0x8C341B09, // 0023 GETMET R13 R13 K9 - 0x7C340200, // 0024 CALL R13 1 - 0x14381202, // 0025 LT R14 R9 R2 - 0x783A0005, // 0026 JMPF R14 #002D - 0x543A0009, // 0027 LDINT R14 10 - 0x3C38180E, // 0028 SHR R14 R12 R14 - 0x9834120E, // 0029 SETIDX R13 R9 R14 - 0x0030180B, // 002A ADD R12 R12 R11 - 0x00241307, // 002B ADD R9 R9 K7 - 0x7001FFF7, // 002C JMP #0025 - 0x80000000, // 002D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: PaletteGradientAnimation -********************************************************************/ -extern const bclass be_class_PalettePatternAnimation; -be_local_class(PaletteGradientAnimation, - 0, - &be_class_PalettePatternAnimation, - be_nested_map(3, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(PARAMS, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(3, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(spatial_period, -1), be_const_bytes_instance(0500000000) }, - { be_const_key_weak(shift_period, 0), be_const_bytes_instance(0500000000) }, - { be_const_key_weak(phase_shift, -1), be_const_bytes_instance(07000000640000) }, - })) ) } )) }, - { be_const_key_weak(init, -1), be_const_closure(class_PaletteGradientAnimation_init_closure) }, - { be_const_key_weak(_update_value_buffer, -1), be_const_closure(class_PaletteGradientAnimation__update_value_buffer_closure) }, - })), - be_str_weak(PaletteGradientAnimation) -); - /******************************************************************** ** Solidified function: twinkle_gentle ********************************************************************/ @@ -10621,6 +9623,448 @@ be_local_closure(twinkle_gentle, /* name */ ); /*******************************************************************/ +// compact class 'PaletteGradientAnimation' ktab size: 36, total: 56 (saved 160 bytes) +static const bvalue be_ktab_class_PaletteGradientAnimation[36] = { + /* K0 */ be_nested_str_weak(on_param_changed), + /* K1 */ be_nested_str_weak(color_source), + /* K2 */ be_nested_str_weak(_initialize_value_buffer), + /* K3 */ be_nested_str_weak(_fix_time_ms), + /* K4 */ be_nested_str_weak(get_param), + /* K5 */ be_nested_str_weak(start_time), + /* K6 */ be_nested_str_weak(engine), + /* K7 */ be_nested_str_weak(strip_length), + /* K8 */ be_nested_str_weak(animation), + /* K9 */ be_nested_str_weak(color_provider), + /* K10 */ be_nested_str_weak(get_lut), + /* K11 */ be_nested_str_weak(LUT_FACTOR), + /* K12 */ be_const_int(0), + /* K13 */ be_nested_str_weak(pixels), + /* K14 */ be_nested_str_weak(_buffer), + /* K15 */ be_nested_str_weak(value_buffer), + /* K16 */ be_const_int(2), + /* K17 */ be_const_int(1), + /* K18 */ be_const_int(3), + /* K19 */ be_nested_str_weak(get_color_for_value), + /* K20 */ be_nested_str_weak(set_pixel_color), + /* K21 */ be_nested_str_weak(shift_period), + /* K22 */ be_nested_str_weak(spatial_period), + /* K23 */ be_nested_str_weak(phase_shift), + /* K24 */ be_nested_str_weak(tasmota), + /* K25 */ be_nested_str_weak(scale_uint), + /* K26 */ be_const_int(522241), + /* K27 */ be_nested_str_weak(resize), + /* K28 */ be_nested_str_weak(init), + /* K29 */ be_nested_str_weak(name), + /* K30 */ be_nested_str_weak(palette_gradient), + /* K31 */ be_nested_str_weak(_X25s_X28strip_length_X3D_X25s_X2C_X20priority_X3D_X25s_X2C_X20running_X3D_X25s_X29), + /* K32 */ be_nested_str_weak(priority), + /* K33 */ be_nested_str_weak(is_running), + /* K34 */ be_nested_str_weak(update), + /* K35 */ be_nested_str_weak(_update_value_buffer), +}; + + +extern const bclass be_class_PaletteGradientAnimation; + +/******************************************************************** +** Solidified function: on_param_changed +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation_on_param_changed, /* name */ + be_nested_proto( + 7, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_PaletteGradientAnimation, /* shared constants */ + be_str_weak(on_param_changed), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x600C0003, // 0000 GETGBL R3 G3 + 0x5C100000, // 0001 MOVE R4 R0 + 0x7C0C0200, // 0002 CALL R3 1 + 0x8C0C0700, // 0003 GETMET R3 R3 K0 + 0x5C140200, // 0004 MOVE R5 R1 + 0x5C180400, // 0005 MOVE R6 R2 + 0x7C0C0600, // 0006 CALL R3 3 + 0x1C0C0301, // 0007 EQ R3 R1 K1 + 0x780E0001, // 0008 JMPF R3 #000B + 0x8C0C0102, // 0009 GETMET R3 R0 K2 + 0x7C0C0200, // 000A CALL R3 1 + 0x80000000, // 000B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: render +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation_render, /* name */ + be_nested_proto( + 17, /* 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_PaletteGradientAnimation, /* shared constants */ + be_str_weak(render), + &be_const_str_solidified, + ( &(const binstruction[81]) { /* code */ + 0x8C0C0103, // 0000 GETMET R3 R0 K3 + 0x5C140400, // 0001 MOVE R5 R2 + 0x7C0C0400, // 0002 CALL R3 2 + 0x5C080600, // 0003 MOVE R2 R3 + 0x8C0C0104, // 0004 GETMET R3 R0 K4 + 0x58140001, // 0005 LDCONST R5 K1 + 0x7C0C0400, // 0006 CALL R3 2 + 0x4C100000, // 0007 LDNIL R4 + 0x1C100604, // 0008 EQ R4 R3 R4 + 0x78120001, // 0009 JMPF R4 #000C + 0x50100000, // 000A LDBOOL R4 0 0 + 0x80040800, // 000B RET 1 R4 + 0x88100105, // 000C GETMBR R4 R0 K5 + 0x04100404, // 000D SUB R4 R2 R4 + 0x88140106, // 000E GETMBR R5 R0 K6 + 0x88140B07, // 000F GETMBR R5 R5 K7 + 0x4C180000, // 0010 LDNIL R6 + 0x601C000F, // 0011 GETGBL R7 G15 + 0x5C200600, // 0012 MOVE R8 R3 + 0xB8261000, // 0013 GETNGBL R9 K8 + 0x88241309, // 0014 GETMBR R9 R9 K9 + 0x7C1C0400, // 0015 CALL R7 2 + 0x781E0028, // 0016 JMPF R7 #0040 + 0x8C1C070A, // 0017 GETMET R7 R3 K10 + 0x7C1C0200, // 0018 CALL R7 1 + 0x5C180E00, // 0019 MOVE R6 R7 + 0x4C200000, // 001A LDNIL R8 + 0x201C0E08, // 001B NE R7 R7 R8 + 0x781E0022, // 001C JMPF R7 #0040 + 0x881C070B, // 001D GETMBR R7 R3 K11 + 0x542200FF, // 001E LDINT R8 256 + 0x3C201007, // 001F SHR R8 R8 R7 + 0x5824000C, // 0020 LDCONST R9 K12 + 0x8828030D, // 0021 GETMBR R10 R1 K13 + 0x8C28150E, // 0022 GETMET R10 R10 K14 + 0x7C280200, // 0023 CALL R10 1 + 0x8C2C0D0E, // 0024 GETMET R11 R6 K14 + 0x7C2C0200, // 0025 CALL R11 1 + 0x8830010F, // 0026 GETMBR R12 R0 K15 + 0x8C30190E, // 0027 GETMET R12 R12 K14 + 0x7C300200, // 0028 CALL R12 1 + 0x14341205, // 0029 LT R13 R9 R5 + 0x78360013, // 002A JMPF R13 #003F + 0x94341809, // 002B GETIDX R13 R12 R9 + 0x3C381A07, // 002C SHR R14 R13 R7 + 0x543E00FE, // 002D LDINT R15 255 + 0x1C3C1A0F, // 002E EQ R15 R13 R15 + 0x783E0000, // 002F JMPF R15 #0031 + 0x5C381000, // 0030 MOVE R14 R8 + 0x383C1D10, // 0031 SHL R15 R14 K16 + 0x003C160F, // 0032 ADD R15 R11 R15 + 0x94401F0C, // 0033 GETIDX R16 R15 K12 + 0x982A1810, // 0034 SETIDX R10 K12 R16 + 0x94401F11, // 0035 GETIDX R16 R15 K17 + 0x982A2210, // 0036 SETIDX R10 K17 R16 + 0x94401F10, // 0037 GETIDX R16 R15 K16 + 0x982A2010, // 0038 SETIDX R10 K16 R16 + 0x94401F12, // 0039 GETIDX R16 R15 K18 + 0x982A2410, // 003A SETIDX R10 K18 R16 + 0x00241311, // 003B ADD R9 R9 K17 + 0x54420003, // 003C LDINT R16 4 + 0x00281410, // 003D ADD R10 R10 R16 + 0x7001FFE9, // 003E JMP #0029 + 0x7002000E, // 003F JMP #004F + 0x581C000C, // 0040 LDCONST R7 K12 + 0x14200E05, // 0041 LT R8 R7 R5 + 0x7822000B, // 0042 JMPF R8 #004F + 0x8820010F, // 0043 GETMBR R8 R0 K15 + 0x94201007, // 0044 GETIDX R8 R8 R7 + 0x8C240713, // 0045 GETMET R9 R3 K19 + 0x5C2C1000, // 0046 MOVE R11 R8 + 0x5C300800, // 0047 MOVE R12 R4 + 0x7C240600, // 0048 CALL R9 3 + 0x8C280314, // 0049 GETMET R10 R1 K20 + 0x5C300E00, // 004A MOVE R12 R7 + 0x5C341200, // 004B MOVE R13 R9 + 0x7C280600, // 004C CALL R10 3 + 0x001C0F11, // 004D ADD R7 R7 K17 + 0x7001FFF1, // 004E JMP #0041 + 0x501C0200, // 004F LDBOOL R7 1 0 + 0x80040E00, // 0050 RET 1 R7 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _update_value_buffer +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation__update_value_buffer, /* name */ + be_nested_proto( + 15, /* 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_PaletteGradientAnimation, /* shared constants */ + be_str_weak(_update_value_buffer), + &be_const_str_solidified, + ( &(const binstruction[46]) { /* code */ + 0x880C0115, // 0000 GETMBR R3 R0 K21 + 0x88100116, // 0001 GETMBR R4 R0 K22 + 0x88140117, // 0002 GETMBR R5 R0 K23 + 0x2418090C, // 0003 GT R6 R4 K12 + 0x781A0001, // 0004 JMPF R6 #0007 + 0x5C180800, // 0005 MOVE R6 R4 + 0x70020000, // 0006 JMP #0008 + 0x5C180400, // 0007 MOVE R6 R2 + 0x581C000C, // 0008 LDCONST R7 K12 + 0x2420070C, // 0009 GT R8 R3 K12 + 0x78220008, // 000A JMPF R8 #0014 + 0xB8223000, // 000B GETNGBL R8 K24 + 0x8C201119, // 000C GETMET R8 R8 K25 + 0x10280203, // 000D MOD R10 R1 R3 + 0x582C000C, // 000E LDCONST R11 K12 + 0x5C300600, // 000F MOVE R12 R3 + 0x5834000C, // 0010 LDCONST R13 K12 + 0x5C380C00, // 0011 MOVE R14 R6 + 0x7C200C00, // 0012 CALL R8 6 + 0x5C1C1000, // 0013 MOVE R7 R8 + 0xB8223000, // 0014 GETNGBL R8 K24 + 0x8C201119, // 0015 GETMET R8 R8 K25 + 0x5C280A00, // 0016 MOVE R10 R5 + 0x582C000C, // 0017 LDCONST R11 K12 + 0x543200FE, // 0018 LDINT R12 255 + 0x5834000C, // 0019 LDCONST R13 K12 + 0x5C380C00, // 001A MOVE R14 R6 + 0x7C200C00, // 001B CALL R8 6 + 0x5824000C, // 001C LDCONST R9 K12 + 0x00280E08, // 001D ADD R10 R7 R8 + 0x10281406, // 001E MOD R10 R10 R6 + 0x0C2E3406, // 001F DIV R11 K26 R6 + 0x3C2C1711, // 0020 SHR R11 R11 K17 + 0x0830140B, // 0021 MUL R12 R10 R11 + 0x8834010F, // 0022 GETMBR R13 R0 K15 + 0x8C341B0E, // 0023 GETMET R13 R13 K14 + 0x7C340200, // 0024 CALL R13 1 + 0x14381202, // 0025 LT R14 R9 R2 + 0x783A0005, // 0026 JMPF R14 #002D + 0x543A0009, // 0027 LDINT R14 10 + 0x3C38180E, // 0028 SHR R14 R12 R14 + 0x9834120E, // 0029 SETIDX R13 R9 R14 + 0x0030180B, // 002A ADD R12 R12 R11 + 0x00241311, // 002B ADD R9 R9 K17 + 0x7001FFF7, // 002C JMP #0025 + 0x80000000, // 002D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _initialize_value_buffer +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation__initialize_value_buffer, /* 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_PaletteGradientAnimation, /* shared constants */ + be_str_weak(_initialize_value_buffer), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x88040106, // 0000 GETMBR R1 R0 K6 + 0x88040307, // 0001 GETMBR R1 R1 K7 + 0x8808010F, // 0002 GETMBR R2 R0 K15 + 0x8C08051B, // 0003 GETMET R2 R2 K27 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x5808000C, // 0006 LDCONST R2 K12 + 0x140C0401, // 0007 LT R3 R2 R1 + 0x780E0003, // 0008 JMPF R3 #000D + 0x880C010F, // 0009 GETMBR R3 R0 K15 + 0x980C050C, // 000A SETIDX R3 R2 K12 + 0x00080511, // 000B ADD R2 R2 K17 + 0x7001FFF9, // 000C JMP #0007 + 0x80000000, // 000D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation_init, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_PaletteGradientAnimation, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x60080003, // 0000 GETGBL R2 G3 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x8C08051C, // 0003 GETMET R2 R2 K28 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x60080015, // 0006 GETGBL R2 G21 + 0x7C080000, // 0007 CALL R2 0 + 0x90021E02, // 0008 SETMBR R0 K15 R2 + 0x90023B1E, // 0009 SETMBR R0 K29 K30 + 0x8C080102, // 000A GETMET R2 R0 K2 + 0x7C080200, // 000B CALL R2 1 + 0x80000000, // 000C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation_tostring, /* name */ + be_nested_proto( + 8, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_PaletteGradientAnimation, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88040106, // 0000 GETMBR R1 R0 K6 + 0x88040307, // 0001 GETMBR R1 R1 K7 + 0x60080018, // 0002 GETGBL R2 G24 + 0x580C001F, // 0003 LDCONST R3 K31 + 0x60100005, // 0004 GETGBL R4 G5 + 0x5C140000, // 0005 MOVE R5 R0 + 0x7C100200, // 0006 CALL R4 1 + 0x5C140200, // 0007 MOVE R5 R1 + 0x88180120, // 0008 GETMBR R6 R0 K32 + 0x881C0121, // 0009 GETMBR R7 R0 K33 + 0x7C080A00, // 000A CALL R2 5 + 0x80040400, // 000B RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: update +********************************************************************/ +be_local_closure(class_PaletteGradientAnimation_update, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_PaletteGradientAnimation, /* shared constants */ + be_str_weak(update), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x60080003, // 0000 GETGBL R2 G3 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x8C080522, // 0003 GETMET R2 R2 K34 + 0x5C100200, // 0004 MOVE R4 R1 + 0x7C080400, // 0005 CALL R2 2 + 0x740A0001, // 0006 JMPT R2 #0009 + 0x50080000, // 0007 LDBOOL R2 0 0 + 0x80040400, // 0008 RET 1 R2 + 0x8C080103, // 0009 GETMET R2 R0 K3 + 0x5C100200, // 000A MOVE R4 R1 + 0x7C080400, // 000B CALL R2 2 + 0x5C040400, // 000C MOVE R1 R2 + 0x88080105, // 000D GETMBR R2 R0 K5 + 0x04080202, // 000E SUB R2 R1 R2 + 0x880C0106, // 000F GETMBR R3 R0 K6 + 0x880C0707, // 0010 GETMBR R3 R3 K7 + 0x6010000C, // 0011 GETGBL R4 G12 + 0x8814010F, // 0012 GETMBR R5 R0 K15 + 0x7C100200, // 0013 CALL R4 1 + 0x20100803, // 0014 NE R4 R4 R3 + 0x78120003, // 0015 JMPF R4 #001A + 0x8810010F, // 0016 GETMBR R4 R0 K15 + 0x8C10091B, // 0017 GETMET R4 R4 K27 + 0x5C180600, // 0018 MOVE R6 R3 + 0x7C100400, // 0019 CALL R4 2 + 0x8C100123, // 001A GETMET R4 R0 K35 + 0x5C180400, // 001B MOVE R6 R2 + 0x5C1C0600, // 001C MOVE R7 R3 + 0x7C100600, // 001D CALL R4 3 + 0x50100200, // 001E LDBOOL R4 1 0 + 0x80040800, // 001F RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: PaletteGradientAnimation +********************************************************************/ +extern const bclass be_class_Animation; +be_local_class(PaletteGradientAnimation, + 1, + &be_class_Animation, + be_nested_map(9, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(update, 1), be_const_closure(class_PaletteGradientAnimation_update_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_PaletteGradientAnimation_tostring_closure) }, + { be_const_key_weak(_update_value_buffer, -1), be_const_closure(class_PaletteGradientAnimation__update_value_buffer_closure) }, + { be_const_key_weak(_initialize_value_buffer, -1), be_const_closure(class_PaletteGradientAnimation__initialize_value_buffer_closure) }, + { be_const_key_weak(on_param_changed, 8), be_const_closure(class_PaletteGradientAnimation_on_param_changed_closure) }, + { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(4, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(color_source, -1), be_const_bytes_instance(0C0605) }, + { be_const_key_weak(shift_period, 2), be_const_bytes_instance(0500000000) }, + { be_const_key_weak(spatial_period, -1), be_const_bytes_instance(0500000000) }, + { be_const_key_weak(phase_shift, -1), be_const_bytes_instance(07000001FF000000) }, + })) ) } )) }, + { be_const_key_weak(init, 5), be_const_closure(class_PaletteGradientAnimation_init_closure) }, + { be_const_key_weak(render, 0), be_const_closure(class_PaletteGradientAnimation_render_closure) }, + { be_const_key_weak(value_buffer, -1), be_const_var(0) }, + })), + be_str_weak(PaletteGradientAnimation) +); // compact class 'FrameBuffer' ktab size: 21, total: 43 (saved 176 bytes) static const bvalue be_ktab_class_FrameBuffer[21] = { /* K0 */ be_const_int(0), @@ -11025,38 +10469,898 @@ be_local_class(FrameBuffer, })), be_str_weak(FrameBuffer) ); -// compact class 'IterationNumberProvider' ktab size: 4, total: 6 (saved 16 bytes) -static const bvalue be_ktab_class_IterationNumberProvider[4] = { - /* K0 */ be_nested_str_weak(engine), - /* K1 */ be_nested_str_weak(get_current_iteration_number), - /* K2 */ be_nested_str_weak(IterationNumberProvider_X28current_X3A_X20_X25s_X29), - /* K3 */ be_nested_str_weak(IterationNumberProvider_X28not_in_sequence_X29), +// compact class 'AnimationEngine' ktab size: 91, total: 213 (saved 976 bytes) +static const bvalue be_ktab_class_AnimationEngine[91] = { + /* K0 */ be_nested_str_weak(is_running), + /* K1 */ be_nested_str_weak(fast_loop_closure), + /* K2 */ be_nested_str_weak(tasmota), + /* K3 */ be_nested_str_weak(remove_fast_loop), + /* K4 */ be_nested_str_weak(root_animation), + /* K5 */ be_nested_str_weak(get_animations), + /* K6 */ be_nested_str_weak(push_iteration_context), + /* K7 */ be_nested_str_weak(millis), + /* K8 */ be_nested_str_weak(last_update), + /* K9 */ be_nested_str_weak(tick_ms), + /* K10 */ be_nested_str_weak(ts_start), + /* K11 */ be_nested_str_weak(check_strip_length), + /* K12 */ be_nested_str_weak(time_ms), + /* K13 */ be_nested_str_weak(strip), + /* K14 */ be_nested_str_weak(can_show), + /* K15 */ be_nested_str_weak(_process_events), + /* K16 */ be_nested_str_weak(_update_and_render), + /* K17 */ be_nested_str_weak(ts_end), + /* K18 */ be_nested_str_weak(_record_tick_metrics), + /* K19 */ be_nested_str_weak(global), + /* K20 */ be_nested_str_weak(debug_animation), + /* K21 */ be_nested_str_weak(remove), + /* K22 */ be_nested_str_weak(render_needed), + /* K23 */ be_nested_str_weak(tick_count), + /* K24 */ be_const_int(0), + /* K25 */ be_nested_str_weak(tick_time_sum), + /* K26 */ be_nested_str_weak(anim_time_sum), + /* K27 */ be_nested_str_weak(hw_time_sum), + /* K28 */ be_nested_str_weak(phase1_time_sum), + /* K29 */ be_nested_str_weak(phase2_time_sum), + /* K30 */ be_nested_str_weak(phase3_time_sum), + /* K31 */ be_nested_str_weak(AnimEngine_X3A_X20ticks_X3D_X25s_X20total_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20events_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20update_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20anim_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29_X20hw_X3D_X25_X2E2fms_X28_X25s_X2D_X25s_X29), + /* K32 */ be_nested_str_weak(tick_time_min), + /* K33 */ be_nested_str_weak(tick_time_max), + /* K34 */ be_nested_str_weak(phase1_time_min), + /* K35 */ be_nested_str_weak(phase1_time_max), + /* K36 */ be_nested_str_weak(phase2_time_min), + /* K37 */ be_nested_str_weak(phase2_time_max), + /* K38 */ be_nested_str_weak(anim_time_min), + /* K39 */ be_nested_str_weak(anim_time_max), + /* K40 */ be_nested_str_weak(hw_time_min), + /* K41 */ be_nested_str_weak(hw_time_max), + /* K42 */ be_nested_str_weak(log), + /* K43 */ be_const_int(3), + /* K44 */ be_nested_str_weak(children), + /* K45 */ be_nested_str_weak(animation), + /* K46 */ be_nested_str_weak(name), + /* K47 */ be_nested_str_weak(stop), + /* K48 */ be_const_int(1), + /* K49 */ be_nested_str_weak(push_pixels_buffer_argb), + /* K50 */ be_nested_str_weak(frame_buffer), + /* K51 */ be_nested_str_weak(pixels), + /* K52 */ be_nested_str_weak(show), + /* K53 */ be_nested_str_weak(sequences), + /* K54 */ be_nested_str_weak(clear), + /* K55 */ be_nested_str_weak(strip_length), + /* K56 */ be_nested_str_weak(update_current_iteration), + /* K57 */ be_nested_str_weak(event_manager), + /* K58 */ be_nested_str_weak(_process_queued_events), + /* K59 */ be_nested_str_weak(start), + /* K60 */ be_nested_str_weak(ts_2), + /* K61 */ be_nested_str_weak(ts_3), + /* K62 */ be_nested_str_weak(ts_hw), + /* K63 */ be_nested_str_weak(ts_1), + /* K64 */ be_nested_str_weak(last_stats_time), + /* K65 */ be_nested_str_weak(phase3_time_min), + /* K66 */ be_nested_str_weak(phase3_time_max), + /* K67 */ be_nested_str_weak(stats_period), + /* K68 */ be_nested_str_weak(_print_stats), + /* K69 */ be_const_int(999999), + /* K70 */ be_nested_str_weak(AnimationEngine_X28running_X3D_X25s_X29), + /* K71 */ be_nested_str_weak(add_fast_loop), + /* K72 */ be_nested_str_weak(update), + /* K73 */ be_nested_str_weak(is_empty), + /* K74 */ be_nested_str_weak(_clear_strip), + /* K75 */ be_nested_str_weak(render), + /* K76 */ be_nested_str_weak(_output_to_strip), + /* K77 */ be_nested_str_weak(temp_buffer), + /* K78 */ be_nested_str_weak(length), + /* K79 */ be_nested_str_weak(_handle_strip_length_change), + /* K80 */ be_nested_str_weak(get_current_iteration_number), + /* K81 */ be_nested_str_weak(size_animations), + /* K82 */ be_nested_str_weak(set_timer), + /* K83 */ be_nested_str_weak(add), + /* K84 */ be_nested_str_weak(value_error), + /* K85 */ be_nested_str_weak(strip_X20cannot_X20be_X20nil), + /* K86 */ be_nested_str_weak(engine_proxy), + /* K87 */ be_nested_str_weak(root), + /* K88 */ be_nested_str_weak(TICK_MS), + /* K89 */ be_nested_str_weak(resize), + /* K90 */ be_nested_str_weak(pop_iteration_context), }; -extern const bclass be_class_IterationNumberProvider; +extern const bclass be_class_AnimationEngine; /******************************************************************** -** Solidified function: produce_value +** Solidified function: stop ********************************************************************/ -be_local_closure(class_IterationNumberProvider_produce_value, /* name */ +be_local_closure(class_AnimationEngine_stop, /* name */ be_nested_proto( - 5, /* nstack */ - 3, /* argc */ + 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_IterationNumberProvider, /* shared constants */ - be_str_weak(produce_value), + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(stop), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x78060009, // 0001 JMPF R1 #000C + 0x50040000, // 0002 LDBOOL R1 0 0 + 0x90020001, // 0003 SETMBR R0 K0 R1 + 0x88040101, // 0004 GETMBR R1 R0 K1 + 0x4C080000, // 0005 LDNIL R2 + 0x20040202, // 0006 NE R1 R1 R2 + 0x78060003, // 0007 JMPF R1 #000C + 0xB8060400, // 0008 GETNGBL R1 K2 + 0x8C040303, // 0009 GETMET R1 R1 K3 + 0x880C0101, // 000A GETMBR R3 R0 K1 + 0x7C040400, // 000B CALL R1 2 + 0x80040000, // 000C RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_animations +********************************************************************/ +be_local_closure(class_AnimationEngine_get_animations, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(get_animations), &be_const_str_solidified, ( &(const binstruction[ 4]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C0C0701, // 0001 GETMET R3 R3 K1 - 0x7C0C0200, // 0002 CALL R3 1 - 0x80040600, // 0003 RET 1 R3 + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C040305, // 0001 GETMET R1 R1 K5 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: push_iteration_context +********************************************************************/ +be_local_closure(class_AnimationEngine_push_iteration_context, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(push_iteration_context), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88080104, // 0000 GETMBR R2 R0 K4 + 0x8C080506, // 0001 GETMET R2 R2 K6 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: animations +********************************************************************/ +be_local_closure(class_AnimationEngine_animations, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(animations), + &be_const_str_solidified, + ( &(const binstruction[ 3]) { /* code */ + 0x8C040105, // 0000 GETMET R1 R0 K5 + 0x7C040200, // 0001 CALL R1 1 + 0x80040200, // 0002 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: on_tick +********************************************************************/ +be_local_closure(class_AnimationEngine_on_tick, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(on_tick), + &be_const_str_solidified, + ( &(const binstruction[55]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x740A0001, // 0001 JMPT R2 #0004 + 0x50080000, // 0002 LDBOOL R2 0 0 + 0x80040400, // 0003 RET 1 R2 + 0x4C080000, // 0004 LDNIL R2 + 0x1C080202, // 0005 EQ R2 R1 R2 + 0x780A0003, // 0006 JMPF R2 #000B + 0xB80A0400, // 0007 GETNGBL R2 K2 + 0x8C080507, // 0008 GETMET R2 R2 K7 + 0x7C080200, // 0009 CALL R2 1 + 0x5C040400, // 000A MOVE R1 R2 + 0x88080108, // 000B GETMBR R2 R0 K8 + 0x04080202, // 000C SUB R2 R1 R2 + 0x880C0109, // 000D GETMBR R3 R0 K9 + 0x140C0403, // 000E LT R3 R2 R3 + 0x780E0001, // 000F JMPF R3 #0012 + 0x500C0200, // 0010 LDBOOL R3 1 0 + 0x80040600, // 0011 RET 1 R3 + 0xB80E0400, // 0012 GETNGBL R3 K2 + 0x8C0C0707, // 0013 GETMET R3 R3 K7 + 0x7C0C0200, // 0014 CALL R3 1 + 0x90021403, // 0015 SETMBR R0 K10 R3 + 0x8C0C010B, // 0016 GETMET R3 R0 K11 + 0x7C0C0200, // 0017 CALL R3 1 + 0x90021801, // 0018 SETMBR R0 K12 R1 + 0x90021001, // 0019 SETMBR R0 K8 R1 + 0x880C010D, // 001A GETMBR R3 R0 K13 + 0x880C070E, // 001B GETMBR R3 R3 K14 + 0x4C100000, // 001C LDNIL R4 + 0x200C0604, // 001D NE R3 R3 R4 + 0x780E0005, // 001E JMPF R3 #0025 + 0x880C010D, // 001F GETMBR R3 R0 K13 + 0x8C0C070E, // 0020 GETMET R3 R3 K14 + 0x7C0C0200, // 0021 CALL R3 1 + 0x740E0001, // 0022 JMPT R3 #0025 + 0x500C0200, // 0023 LDBOOL R3 1 0 + 0x80040600, // 0024 RET 1 R3 + 0x8C0C010F, // 0025 GETMET R3 R0 K15 + 0x5C140200, // 0026 MOVE R5 R1 + 0x7C0C0400, // 0027 CALL R3 2 + 0x8C0C0110, // 0028 GETMET R3 R0 K16 + 0x5C140200, // 0029 MOVE R5 R1 + 0x7C0C0400, // 002A CALL R3 2 + 0xB80E0400, // 002B GETNGBL R3 K2 + 0x8C0C0707, // 002C GETMET R3 R3 K7 + 0x7C0C0200, // 002D CALL R3 1 + 0x90022203, // 002E SETMBR R0 K17 R3 + 0x8C0C0112, // 002F GETMET R3 R0 K18 + 0x5C140200, // 0030 MOVE R5 R1 + 0x7C0C0400, // 0031 CALL R3 2 + 0xB80E2600, // 0032 GETNGBL R3 K19 + 0x50100000, // 0033 LDBOOL R4 0 0 + 0x900E2804, // 0034 SETMBR R3 K20 R4 + 0x500C0200, // 0035 LDBOOL R3 1 0 + 0x80040600, // 0036 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: remove +********************************************************************/ +be_local_closure(class_AnimationEngine_remove, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(remove), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x88080104, // 0000 GETMBR R2 R0 K4 + 0x8C080515, // 0001 GETMET R2 R2 K21 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x780A0001, // 0004 JMPF R2 #0007 + 0x500C0200, // 0005 LDBOOL R3 1 0 + 0x90022C03, // 0006 SETMBR R0 K22 R3 + 0x80040400, // 0007 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _print_stats +********************************************************************/ +be_local_closure(class_AnimationEngine__print_stats, /* name */ + be_nested_proto( + 26, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_print_stats), + &be_const_str_solidified, + ( &(const binstruction[47]) { /* code */ + 0x88080117, // 0000 GETMBR R2 R0 K23 + 0x1C080518, // 0001 EQ R2 R2 K24 + 0x780A0000, // 0002 JMPF R2 #0004 + 0x80000400, // 0003 RET 0 + 0x88080119, // 0004 GETMBR R2 R0 K25 + 0x880C0117, // 0005 GETMBR R3 R0 K23 + 0x0C080403, // 0006 DIV R2 R2 R3 + 0x880C011A, // 0007 GETMBR R3 R0 K26 + 0x88100117, // 0008 GETMBR R4 R0 K23 + 0x0C0C0604, // 0009 DIV R3 R3 R4 + 0x8810011B, // 000A GETMBR R4 R0 K27 + 0x88140117, // 000B GETMBR R5 R0 K23 + 0x0C100805, // 000C DIV R4 R4 R5 + 0x8814011C, // 000D GETMBR R5 R0 K28 + 0x88180117, // 000E GETMBR R6 R0 K23 + 0x0C140A06, // 000F DIV R5 R5 R6 + 0x8818011D, // 0010 GETMBR R6 R0 K29 + 0x881C0117, // 0011 GETMBR R7 R0 K23 + 0x0C180C07, // 0012 DIV R6 R6 R7 + 0x881C011E, // 0013 GETMBR R7 R0 K30 + 0x88200117, // 0014 GETMBR R8 R0 K23 + 0x0C1C0E08, // 0015 DIV R7 R7 R8 + 0x60200018, // 0016 GETGBL R8 G24 + 0x5824001F, // 0017 LDCONST R9 K31 + 0x88280117, // 0018 GETMBR R10 R0 K23 + 0x5C2C0400, // 0019 MOVE R11 R2 + 0x88300120, // 001A GETMBR R12 R0 K32 + 0x88340121, // 001B GETMBR R13 R0 K33 + 0x5C380A00, // 001C MOVE R14 R5 + 0x883C0122, // 001D GETMBR R15 R0 K34 + 0x88400123, // 001E GETMBR R16 R0 K35 + 0x5C440C00, // 001F MOVE R17 R6 + 0x88480124, // 0020 GETMBR R18 R0 K36 + 0x884C0125, // 0021 GETMBR R19 R0 K37 + 0x5C500600, // 0022 MOVE R20 R3 + 0x88540126, // 0023 GETMBR R21 R0 K38 + 0x88580127, // 0024 GETMBR R22 R0 K39 + 0x5C5C0800, // 0025 MOVE R23 R4 + 0x88600128, // 0026 GETMBR R24 R0 K40 + 0x88640129, // 0027 GETMBR R25 R0 K41 + 0x7C202200, // 0028 CALL R8 17 + 0xB8260400, // 0029 GETNGBL R9 K2 + 0x8C24132A, // 002A GETMET R9 R9 K42 + 0x5C2C1000, // 002B MOVE R11 R8 + 0x5830002B, // 002C LDCONST R12 K43 + 0x7C240600, // 002D CALL R9 3 + 0x80000000, // 002E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: interrupt_animation +********************************************************************/ +be_local_closure(class_AnimationEngine_interrupt_animation, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(interrupt_animation), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0x58080018, // 0000 LDCONST R2 K24 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x88100104, // 0002 GETMBR R4 R0 K4 + 0x8810092C, // 0003 GETMBR R4 R4 K44 + 0x7C0C0200, // 0004 CALL R3 1 + 0x140C0403, // 0005 LT R3 R2 R3 + 0x780E0019, // 0006 JMPF R3 #0021 + 0x880C0104, // 0007 GETMBR R3 R0 K4 + 0x880C072C, // 0008 GETMBR R3 R3 K44 + 0x940C0602, // 0009 GETIDX R3 R3 R2 + 0x6010000F, // 000A GETGBL R4 G15 + 0x5C140600, // 000B MOVE R5 R3 + 0xB81A5A00, // 000C GETNGBL R6 K45 + 0x88180D2D, // 000D GETMBR R6 R6 K45 + 0x7C100400, // 000E CALL R4 2 + 0x7812000E, // 000F JMPF R4 #001F + 0x8810072E, // 0010 GETMBR R4 R3 K46 + 0x4C140000, // 0011 LDNIL R5 + 0x20100805, // 0012 NE R4 R4 R5 + 0x7812000A, // 0013 JMPF R4 #001F + 0x8810072E, // 0014 GETMBR R4 R3 K46 + 0x1C100801, // 0015 EQ R4 R4 R1 + 0x78120007, // 0016 JMPF R4 #001F + 0x8C10072F, // 0017 GETMET R4 R3 K47 + 0x7C100200, // 0018 CALL R4 1 + 0x88100104, // 0019 GETMBR R4 R0 K4 + 0x8810092C, // 001A GETMBR R4 R4 K44 + 0x8C100915, // 001B GETMET R4 R4 K21 + 0x5C180400, // 001C MOVE R6 R2 + 0x7C100400, // 001D CALL R4 2 + 0x80000800, // 001E RET 0 + 0x00080530, // 001F ADD R2 R2 K48 + 0x7001FFDF, // 0020 JMP #0001 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _output_to_strip +********************************************************************/ +be_local_closure(class_AnimationEngine__output_to_strip, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_output_to_strip), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0x8804010D, // 0000 GETMBR R1 R0 K13 + 0x8C040331, // 0001 GETMET R1 R1 K49 + 0x880C0132, // 0002 GETMBR R3 R0 K50 + 0x880C0733, // 0003 GETMBR R3 R3 K51 + 0x7C040400, // 0004 CALL R1 2 + 0x8804010D, // 0005 GETMBR R1 R0 K13 + 0x8C040334, // 0006 GETMET R1 R1 K52 + 0x7C040200, // 0007 CALL R1 1 + 0x80000000, // 0008 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: sequence_managers +********************************************************************/ +be_local_closure(class_AnimationEngine_sequence_managers, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(sequence_managers), + &be_const_str_solidified, + ( &(const binstruction[ 3]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x88040335, // 0001 GETMBR R1 R1 K53 + 0x80040200, // 0002 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: clear +********************************************************************/ +be_local_closure(class_AnimationEngine_clear, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(clear), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C040336, // 0001 GETMET R1 R1 K54 + 0x7C040200, // 0002 CALL R1 1 + 0x50040200, // 0003 LDBOOL R1 1 0 + 0x90022C01, // 0004 SETMBR R0 K22 R1 + 0x80040000, // 0005 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_strip_length +********************************************************************/ +be_local_closure(class_AnimationEngine_get_strip_length, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(get_strip_length), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040137, // 0000 GETMBR R1 R0 K55 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: update_current_iteration +********************************************************************/ +be_local_closure(class_AnimationEngine_update_current_iteration, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(update_current_iteration), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88080104, // 0000 GETMBR R2 R0 K4 + 0x8C080538, // 0001 GETMET R2 R2 K56 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_events +********************************************************************/ +be_local_closure(class_AnimationEngine__process_events, /* name */ + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_process_events), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0xB80A5A00, // 0000 GETNGBL R2 K45 + 0x88080539, // 0001 GETMBR R2 R2 K57 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0003, // 0004 JMPF R2 #0009 + 0xB80A5A00, // 0005 GETNGBL R2 K45 + 0x88080539, // 0006 GETMBR R2 R2 K57 + 0x8C08053A, // 0007 GETMET R2 R2 K58 + 0x7C080200, // 0008 CALL R2 1 + 0x80000000, // 0009 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: resume +********************************************************************/ +be_local_closure(class_AnimationEngine_resume, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(resume), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x74060001, // 0001 JMPT R1 #0004 + 0x8C04013B, // 0002 GETMET R1 R0 K59 + 0x7C040200, // 0003 CALL R1 1 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _record_tick_metrics +********************************************************************/ +be_local_closure(class_AnimationEngine__record_tick_metrics, /* name */ + be_nested_proto( + 12, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_record_tick_metrics), + &be_const_str_solidified, + ( &(const binstruction[198]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x4C0C0000, // 0001 LDNIL R3 + 0x4C100000, // 0002 LDNIL R4 + 0x4C140000, // 0003 LDNIL R5 + 0x4C180000, // 0004 LDNIL R6 + 0x4C1C0000, // 0005 LDNIL R7 + 0x8820010A, // 0006 GETMBR R8 R0 K10 + 0x4C240000, // 0007 LDNIL R9 + 0x20201009, // 0008 NE R8 R8 R9 + 0x78220007, // 0009 JMPF R8 #0012 + 0x88200111, // 000A GETMBR R8 R0 K17 + 0x4C240000, // 000B LDNIL R9 + 0x20201009, // 000C NE R8 R8 R9 + 0x78220003, // 000D JMPF R8 #0012 + 0x88200111, // 000E GETMBR R8 R0 K17 + 0x8824010A, // 000F GETMBR R9 R0 K10 + 0x04201009, // 0010 SUB R8 R8 R9 + 0x5C081000, // 0011 MOVE R2 R8 + 0x8820013C, // 0012 GETMBR R8 R0 K60 + 0x4C240000, // 0013 LDNIL R9 + 0x20201009, // 0014 NE R8 R8 R9 + 0x78220007, // 0015 JMPF R8 #001E + 0x8820013D, // 0016 GETMBR R8 R0 K61 + 0x4C240000, // 0017 LDNIL R9 + 0x20201009, // 0018 NE R8 R8 R9 + 0x78220003, // 0019 JMPF R8 #001E + 0x8820013D, // 001A GETMBR R8 R0 K61 + 0x8824013C, // 001B GETMBR R9 R0 K60 + 0x04201009, // 001C SUB R8 R8 R9 + 0x5C0C1000, // 001D MOVE R3 R8 + 0x8820013D, // 001E GETMBR R8 R0 K61 + 0x4C240000, // 001F LDNIL R9 + 0x20201009, // 0020 NE R8 R8 R9 + 0x78220007, // 0021 JMPF R8 #002A + 0x8820013E, // 0022 GETMBR R8 R0 K62 + 0x4C240000, // 0023 LDNIL R9 + 0x20201009, // 0024 NE R8 R8 R9 + 0x78220003, // 0025 JMPF R8 #002A + 0x8820013E, // 0026 GETMBR R8 R0 K62 + 0x8824013D, // 0027 GETMBR R9 R0 K61 + 0x04201009, // 0028 SUB R8 R8 R9 + 0x5C101000, // 0029 MOVE R4 R8 + 0x8820010A, // 002A GETMBR R8 R0 K10 + 0x4C240000, // 002B LDNIL R9 + 0x20201009, // 002C NE R8 R8 R9 + 0x78220007, // 002D JMPF R8 #0036 + 0x8820013F, // 002E GETMBR R8 R0 K63 + 0x4C240000, // 002F LDNIL R9 + 0x20201009, // 0030 NE R8 R8 R9 + 0x78220003, // 0031 JMPF R8 #0036 + 0x8820013F, // 0032 GETMBR R8 R0 K63 + 0x8824010A, // 0033 GETMBR R9 R0 K10 + 0x04201009, // 0034 SUB R8 R8 R9 + 0x5C141000, // 0035 MOVE R5 R8 + 0x8820013F, // 0036 GETMBR R8 R0 K63 + 0x4C240000, // 0037 LDNIL R9 + 0x20201009, // 0038 NE R8 R8 R9 + 0x78220007, // 0039 JMPF R8 #0042 + 0x8820013C, // 003A GETMBR R8 R0 K60 + 0x4C240000, // 003B LDNIL R9 + 0x20201009, // 003C NE R8 R8 R9 + 0x78220003, // 003D JMPF R8 #0042 + 0x8820013C, // 003E GETMBR R8 R0 K60 + 0x8824013F, // 003F GETMBR R9 R0 K63 + 0x04201009, // 0040 SUB R8 R8 R9 + 0x5C181000, // 0041 MOVE R6 R8 + 0x8820013C, // 0042 GETMBR R8 R0 K60 + 0x4C240000, // 0043 LDNIL R9 + 0x20201009, // 0044 NE R8 R8 R9 + 0x78220007, // 0045 JMPF R8 #004E + 0x8820013D, // 0046 GETMBR R8 R0 K61 + 0x4C240000, // 0047 LDNIL R9 + 0x20201009, // 0048 NE R8 R8 R9 + 0x78220003, // 0049 JMPF R8 #004E + 0x8820013D, // 004A GETMBR R8 R0 K61 + 0x8824013C, // 004B GETMBR R9 R0 K60 + 0x04201009, // 004C SUB R8 R8 R9 + 0x5C1C1000, // 004D MOVE R7 R8 + 0x88200140, // 004E GETMBR R8 R0 K64 + 0x1C201118, // 004F EQ R8 R8 K24 + 0x78220000, // 0050 JMPF R8 #0052 + 0x90028001, // 0051 SETMBR R0 K64 R1 + 0x88200117, // 0052 GETMBR R8 R0 K23 + 0x00201130, // 0053 ADD R8 R8 K48 + 0x90022E08, // 0054 SETMBR R0 K23 R8 + 0x4C200000, // 0055 LDNIL R8 + 0x20200408, // 0056 NE R8 R2 R8 + 0x7822000A, // 0057 JMPF R8 #0063 + 0x88200119, // 0058 GETMBR R8 R0 K25 + 0x00201002, // 0059 ADD R8 R8 R2 + 0x90023208, // 005A SETMBR R0 K25 R8 + 0x88200120, // 005B GETMBR R8 R0 K32 + 0x14200408, // 005C LT R8 R2 R8 + 0x78220000, // 005D JMPF R8 #005F + 0x90024002, // 005E SETMBR R0 K32 R2 + 0x88200121, // 005F GETMBR R8 R0 K33 + 0x24200408, // 0060 GT R8 R2 R8 + 0x78220000, // 0061 JMPF R8 #0063 + 0x90024202, // 0062 SETMBR R0 K33 R2 + 0x4C200000, // 0063 LDNIL R8 + 0x20200608, // 0064 NE R8 R3 R8 + 0x7822000A, // 0065 JMPF R8 #0071 + 0x8820011A, // 0066 GETMBR R8 R0 K26 + 0x00201003, // 0067 ADD R8 R8 R3 + 0x90023408, // 0068 SETMBR R0 K26 R8 + 0x88200126, // 0069 GETMBR R8 R0 K38 + 0x14200608, // 006A LT R8 R3 R8 + 0x78220000, // 006B JMPF R8 #006D + 0x90024C03, // 006C SETMBR R0 K38 R3 + 0x88200127, // 006D GETMBR R8 R0 K39 + 0x24200608, // 006E GT R8 R3 R8 + 0x78220000, // 006F JMPF R8 #0071 + 0x90024E03, // 0070 SETMBR R0 K39 R3 + 0x4C200000, // 0071 LDNIL R8 + 0x20200808, // 0072 NE R8 R4 R8 + 0x7822000A, // 0073 JMPF R8 #007F + 0x8820011B, // 0074 GETMBR R8 R0 K27 + 0x00201004, // 0075 ADD R8 R8 R4 + 0x90023608, // 0076 SETMBR R0 K27 R8 + 0x88200128, // 0077 GETMBR R8 R0 K40 + 0x14200808, // 0078 LT R8 R4 R8 + 0x78220000, // 0079 JMPF R8 #007B + 0x90025004, // 007A SETMBR R0 K40 R4 + 0x88200129, // 007B GETMBR R8 R0 K41 + 0x24200808, // 007C GT R8 R4 R8 + 0x78220000, // 007D JMPF R8 #007F + 0x90025204, // 007E SETMBR R0 K41 R4 + 0x4C200000, // 007F LDNIL R8 + 0x20200A08, // 0080 NE R8 R5 R8 + 0x7822000A, // 0081 JMPF R8 #008D + 0x8820011C, // 0082 GETMBR R8 R0 K28 + 0x00201005, // 0083 ADD R8 R8 R5 + 0x90023808, // 0084 SETMBR R0 K28 R8 + 0x88200122, // 0085 GETMBR R8 R0 K34 + 0x14200A08, // 0086 LT R8 R5 R8 + 0x78220000, // 0087 JMPF R8 #0089 + 0x90024405, // 0088 SETMBR R0 K34 R5 + 0x88200123, // 0089 GETMBR R8 R0 K35 + 0x24200A08, // 008A GT R8 R5 R8 + 0x78220000, // 008B JMPF R8 #008D + 0x90024605, // 008C SETMBR R0 K35 R5 + 0x4C200000, // 008D LDNIL R8 + 0x20200C08, // 008E NE R8 R6 R8 + 0x7822000A, // 008F JMPF R8 #009B + 0x8820011D, // 0090 GETMBR R8 R0 K29 + 0x00201006, // 0091 ADD R8 R8 R6 + 0x90023A08, // 0092 SETMBR R0 K29 R8 + 0x88200124, // 0093 GETMBR R8 R0 K36 + 0x14200C08, // 0094 LT R8 R6 R8 + 0x78220000, // 0095 JMPF R8 #0097 + 0x90024806, // 0096 SETMBR R0 K36 R6 + 0x88200125, // 0097 GETMBR R8 R0 K37 + 0x24200C08, // 0098 GT R8 R6 R8 + 0x78220000, // 0099 JMPF R8 #009B + 0x90024A06, // 009A SETMBR R0 K37 R6 + 0x4C200000, // 009B LDNIL R8 + 0x20200E08, // 009C NE R8 R7 R8 + 0x7822000A, // 009D JMPF R8 #00A9 + 0x8820011E, // 009E GETMBR R8 R0 K30 + 0x00201007, // 009F ADD R8 R8 R7 + 0x90023C08, // 00A0 SETMBR R0 K30 R8 + 0x88200141, // 00A1 GETMBR R8 R0 K65 + 0x14200E08, // 00A2 LT R8 R7 R8 + 0x78220000, // 00A3 JMPF R8 #00A5 + 0x90028207, // 00A4 SETMBR R0 K65 R7 + 0x88200142, // 00A5 GETMBR R8 R0 K66 + 0x24200E08, // 00A6 GT R8 R7 R8 + 0x78220000, // 00A7 JMPF R8 #00A9 + 0x90028407, // 00A8 SETMBR R0 K66 R7 + 0x88200140, // 00A9 GETMBR R8 R0 K64 + 0x04200208, // 00AA SUB R8 R1 R8 + 0x88240143, // 00AB GETMBR R9 R0 K67 + 0x28241009, // 00AC GE R9 R8 R9 + 0x78260016, // 00AD JMPF R9 #00C5 + 0x8C240144, // 00AE GETMET R9 R0 K68 + 0x5C2C1000, // 00AF MOVE R11 R8 + 0x7C240400, // 00B0 CALL R9 2 + 0x90022F18, // 00B1 SETMBR R0 K23 K24 + 0x90023318, // 00B2 SETMBR R0 K25 K24 + 0x90024145, // 00B3 SETMBR R0 K32 K69 + 0x90024318, // 00B4 SETMBR R0 K33 K24 + 0x90023518, // 00B5 SETMBR R0 K26 K24 + 0x90024D45, // 00B6 SETMBR R0 K38 K69 + 0x90024F18, // 00B7 SETMBR R0 K39 K24 + 0x90023718, // 00B8 SETMBR R0 K27 K24 + 0x90025145, // 00B9 SETMBR R0 K40 K69 + 0x90025318, // 00BA SETMBR R0 K41 K24 + 0x90023918, // 00BB SETMBR R0 K28 K24 + 0x90024545, // 00BC SETMBR R0 K34 K69 + 0x90024718, // 00BD SETMBR R0 K35 K24 + 0x90023B18, // 00BE SETMBR R0 K29 K24 + 0x90024945, // 00BF SETMBR R0 K36 K69 + 0x90024B18, // 00C0 SETMBR R0 K37 K24 + 0x90023D18, // 00C1 SETMBR R0 K30 K24 + 0x90028345, // 00C2 SETMBR R0 K65 K69 + 0x90028518, // 00C3 SETMBR R0 K66 K24 + 0x90028001, // 00C4 SETMBR R0 K64 R1 + 0x80000000, // 00C5 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_active +********************************************************************/ +be_local_closure(class_AnimationEngine_is_active, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(is_active), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 }) ) ); @@ -11066,7 +11370,261 @@ be_local_closure(class_IterationNumberProvider_produce_value, /* name */ /******************************************************************** ** Solidified function: tostring ********************************************************************/ -be_local_closure(class_IterationNumberProvider_tostring, /* name */ +be_local_closure(class_AnimationEngine_tostring, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x58080046, // 0001 LDCONST R2 K70 + 0x880C0100, // 0002 GETMBR R3 R0 K0 + 0x7C040400, // 0003 CALL R1 2 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: run +********************************************************************/ +be_local_closure(class_AnimationEngine_run, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 2, /* nstack */ + 0, /* 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[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(on_tick), + }), + be_str_weak(_X3Clambda_X3E), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x68000000, // 0000 GETUPV R0 U0 + 0x8C000100, // 0001 GETMET R0 R0 K0 + 0x7C000200, // 0002 CALL R0 1 + 0x80040000, // 0003 RET 1 R0 + }) + ), + }), + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(run), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x74060015, // 0001 JMPT R1 #0018 + 0xB8060400, // 0002 GETNGBL R1 K2 + 0x8C040307, // 0003 GETMET R1 R1 K7 + 0x7C040200, // 0004 CALL R1 1 + 0x50080200, // 0005 LDBOOL R2 1 0 + 0x90020002, // 0006 SETMBR R0 K0 R2 + 0x540A0009, // 0007 LDINT R2 10 + 0x04080202, // 0008 SUB R2 R1 R2 + 0x90021002, // 0009 SETMBR R0 K8 R2 + 0x88080101, // 000A GETMBR R2 R0 K1 + 0x4C0C0000, // 000B LDNIL R3 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x780A0001, // 000D JMPF R2 #0010 + 0x84080000, // 000E CLOSURE R2 P0 + 0x90020202, // 000F SETMBR R0 K1 R2 + 0x88080104, // 0010 GETMBR R2 R0 K4 + 0x8C08053B, // 0011 GETMET R2 R2 K59 + 0x5C100200, // 0012 MOVE R4 R1 + 0x7C080400, // 0013 CALL R2 2 + 0xB80A0400, // 0014 GETNGBL R2 K2 + 0x8C080547, // 0015 GETMET R2 R2 K71 + 0x88100101, // 0016 GETMBR R4 R0 K1 + 0x7C080400, // 0017 CALL R2 2 + 0xA0000000, // 0018 CLOSE R0 + 0x80040000, // 0019 RET 1 R0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _update_and_render +********************************************************************/ +be_local_closure(class_AnimationEngine__update_and_render, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_update_and_render), + &be_const_str_solidified, + ( &(const binstruction[44]) { /* code */ + 0xB80A0400, // 0000 GETNGBL R2 K2 + 0x8C080507, // 0001 GETMET R2 R2 K7 + 0x7C080200, // 0002 CALL R2 1 + 0x90027E02, // 0003 SETMBR R0 K63 R2 + 0x88080104, // 0004 GETMBR R2 R0 K4 + 0x8C080548, // 0005 GETMET R2 R2 K72 + 0x5C100200, // 0006 MOVE R4 R1 + 0x7C080400, // 0007 CALL R2 2 + 0xB80A0400, // 0008 GETNGBL R2 K2 + 0x8C080507, // 0009 GETMET R2 R2 K7 + 0x7C080200, // 000A CALL R2 1 + 0x90027802, // 000B SETMBR R0 K60 R2 + 0x88080104, // 000C GETMBR R2 R0 K4 + 0x8C080549, // 000D GETMET R2 R2 K73 + 0x7C080200, // 000E CALL R2 1 + 0x780A0006, // 000F JMPF R2 #0017 + 0x88080116, // 0010 GETMBR R2 R0 K22 + 0x780A0003, // 0011 JMPF R2 #0016 + 0x8C08014A, // 0012 GETMET R2 R0 K74 + 0x7C080200, // 0013 CALL R2 1 + 0x50080000, // 0014 LDBOOL R2 0 0 + 0x90022C02, // 0015 SETMBR R0 K22 R2 + 0x80000400, // 0016 RET 0 + 0x88080132, // 0017 GETMBR R2 R0 K50 + 0x8C080536, // 0018 GETMET R2 R2 K54 + 0x7C080200, // 0019 CALL R2 1 + 0x88080104, // 001A GETMBR R2 R0 K4 + 0x8C08054B, // 001B GETMET R2 R2 K75 + 0x88100132, // 001C GETMBR R4 R0 K50 + 0x5C140200, // 001D MOVE R5 R1 + 0x7C080600, // 001E CALL R2 3 + 0xB80E0400, // 001F GETNGBL R3 K2 + 0x8C0C0707, // 0020 GETMET R3 R3 K7 + 0x7C0C0200, // 0021 CALL R3 1 + 0x90027A03, // 0022 SETMBR R0 K61 R3 + 0x8C0C014C, // 0023 GETMET R3 R0 K76 + 0x7C0C0200, // 0024 CALL R3 1 + 0xB80E0400, // 0025 GETNGBL R3 K2 + 0x8C0C0707, // 0026 GETMET R3 R3 K7 + 0x7C0C0200, // 0027 CALL R3 1 + 0x90027C03, // 0028 SETMBR R0 K62 R3 + 0x500C0000, // 0029 LDBOOL R3 0 0 + 0x90022C03, // 002A SETMBR R0 K22 R3 + 0x80000000, // 002B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: cleanup +********************************************************************/ +be_local_closure(class_AnimationEngine_cleanup, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(cleanup), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C04012F, // 0000 GETMET R1 R0 K47 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040136, // 0002 GETMET R1 R0 K54 + 0x7C040200, // 0003 CALL R1 1 + 0x4C040000, // 0004 LDNIL R1 + 0x90026401, // 0005 SETMBR R0 K50 R1 + 0x4C040000, // 0006 LDNIL R1 + 0x90029A01, // 0007 SETMBR R0 K77 R1 + 0x4C040000, // 0008 LDNIL R1 + 0x90021A01, // 0009 SETMBR R0 K13 R1 + 0x80000000, // 000A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_strip +********************************************************************/ +be_local_closure(class_AnimationEngine_get_strip, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(get_strip), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x8804010D, // 0000 GETMBR R1 R0 K13 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: interrupt_current +********************************************************************/ +be_local_closure(class_AnimationEngine_interrupt_current, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(interrupt_current), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C04032F, // 0001 GETMET R1 R1 K47 + 0x7C040200, // 0002 CALL R1 1 + 0x80000000, // 0003 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_strip_length +********************************************************************/ +be_local_closure(class_AnimationEngine_check_strip_length, /* name */ be_nested_proto( 5, /* nstack */ 1, /* argc */ @@ -11076,24 +11634,23 @@ be_local_closure(class_IterationNumberProvider_tostring, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_IterationNumberProvider, /* shared constants */ - be_str_weak(tostring), + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(check_strip_length), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 + ( &(const binstruction[13]) { /* code */ + 0x8804010D, // 0000 GETMBR R1 R0 K13 + 0x8C04034E, // 0001 GETMET R1 R1 K78 0x7C040200, // 0002 CALL R1 1 - 0x4C080000, // 0003 LDNIL R2 + 0x88080137, // 0003 GETMBR R2 R0 K55 0x20080202, // 0004 NE R2 R1 R2 - 0x780A0005, // 0005 JMPF R2 #000C - 0x60080018, // 0006 GETGBL R2 G24 - 0x580C0002, // 0007 LDCONST R3 K2 - 0x5C100200, // 0008 MOVE R4 R1 - 0x7C080400, // 0009 CALL R2 2 + 0x780A0004, // 0005 JMPF R2 #000B + 0x8C08014F, // 0006 GETMET R2 R0 K79 + 0x5C100200, // 0007 MOVE R4 R1 + 0x7C080400, // 0008 CALL R2 2 + 0x50080200, // 0009 LDBOOL R2 1 0 0x80040400, // 000A RET 1 R2 - 0x70020000, // 000B JMP #000D - 0x80060600, // 000C RET 1 K3 - 0x80000000, // 000D RET 0 + 0x50080000, // 000B LDBOOL R2 0 0 + 0x80040400, // 000C RET 1 R2 }) ) ); @@ -11101,52 +11658,415 @@ be_local_closure(class_IterationNumberProvider_tostring, /* name */ /******************************************************************** -** Solidified class: IterationNumberProvider +** Solidified function: get_current_iteration_number ********************************************************************/ -extern const bclass be_class_ValueProvider; -be_local_class(IterationNumberProvider, - 0, - &be_class_ValueProvider, - be_nested_map(2, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(tostring, -1), be_const_closure(class_IterationNumberProvider_tostring_closure) }, - { be_const_key_weak(produce_value, 0), be_const_closure(class_IterationNumberProvider_produce_value_closure) }, - })), - be_str_weak(IterationNumberProvider) -); - -/******************************************************************** -** Solidified function: is_value_provider -********************************************************************/ -be_local_closure(is_value_provider, /* name */ +be_local_closure(class_AnimationEngine_get_current_iteration_number, /* name */ be_nested_proto( - 4, /* nstack */ + 3, /* nstack */ 1, /* argc */ - 0, /* varg */ + 10, /* 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(animation), - /* K1 */ be_nested_str_weak(value_provider), - }), - be_str_weak(is_value_provider), + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(get_current_iteration_number), &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x6004000F, // 0000 GETGBL R1 G15 - 0x5C080000, // 0001 MOVE R2 R0 - 0xB80E0000, // 0002 GETNGBL R3 K0 - 0x880C0701, // 0003 GETMBR R3 R3 K1 - 0x7C040400, // 0004 CALL R1 2 - 0x80040200, // 0005 RET 1 R1 + ( &(const binstruction[ 4]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C040350, // 0001 GETMET R1 R1 K80 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 }) ) ); /*******************************************************************/ +/******************************************************************** +** Solidified function: size +********************************************************************/ +be_local_closure(class_AnimationEngine_size, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(size), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C040351, // 0001 GETMET R1 R1 K81 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: resume_after +********************************************************************/ +be_local_closure(class_AnimationEngine_resume_after, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 2, /* nstack */ + 0, /* 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[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(resume), + }), + be_str_weak(_anonymous_), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x68000000, // 0000 GETUPV R0 U0 + 0x8C000100, // 0001 GETMET R0 R0 K0 + 0x7C000200, // 0002 CALL R0 1 + 0x80000000, // 0003 RET 0 + }) + ), + }), + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(resume_after), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0xB80A0400, // 0000 GETNGBL R2 K2 + 0x8C080552, // 0001 GETMET R2 R2 K82 + 0x5C100200, // 0002 MOVE R4 R1 + 0x84140000, // 0003 CLOSURE R5 P0 + 0x7C080600, // 0004 CALL R2 3 + 0xA0000000, // 0005 CLOSE R0 + 0x80000000, // 0006 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add +********************************************************************/ +be_local_closure(class_AnimationEngine_add, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(add), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x88080104, // 0000 GETMBR R2 R0 K4 + 0x8C080553, // 0001 GETMET R2 R2 K83 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x780A0001, // 0004 JMPF R2 #0007 + 0x500C0200, // 0005 LDBOOL R3 1 0 + 0x90022C03, // 0006 SETMBR R0 K22 R3 + 0x80040400, // 0007 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_AnimationEngine_init, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[70]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x1C080202, // 0001 EQ R2 R1 R2 + 0x780A0000, // 0002 JMPF R2 #0004 + 0xB006A955, // 0003 RAISE 1 K84 K85 + 0x90021A01, // 0004 SETMBR R0 K13 R1 + 0x8C08034E, // 0005 GETMET R2 R1 K78 + 0x7C080200, // 0006 CALL R2 1 + 0x90026E02, // 0007 SETMBR R0 K55 R2 + 0xB80A5A00, // 0008 GETNGBL R2 K45 + 0x8C080532, // 0009 GETMET R2 R2 K50 + 0x88100137, // 000A GETMBR R4 R0 K55 + 0x7C080400, // 000B CALL R2 2 + 0x90026402, // 000C SETMBR R0 K50 R2 + 0xB80A5A00, // 000D GETNGBL R2 K45 + 0x8C080532, // 000E GETMET R2 R2 K50 + 0x88100137, // 000F GETMBR R4 R0 K55 + 0x7C080400, // 0010 CALL R2 2 + 0x90029A02, // 0011 SETMBR R0 K77 R2 + 0xB80A5A00, // 0012 GETNGBL R2 K45 + 0x8C080556, // 0013 GETMET R2 R2 K86 + 0x5C100000, // 0014 MOVE R4 R0 + 0x7C080400, // 0015 CALL R2 2 + 0x90020802, // 0016 SETMBR R0 K4 R2 + 0x88080104, // 0017 GETMBR R2 R0 K4 + 0x900A5D57, // 0018 SETMBR R2 K46 K87 + 0x50080000, // 0019 LDBOOL R2 0 0 + 0x90020002, // 001A SETMBR R0 K0 R2 + 0x90021118, // 001B SETMBR R0 K8 K24 + 0x90021918, // 001C SETMBR R0 K12 K24 + 0x4C080000, // 001D LDNIL R2 + 0x90020202, // 001E SETMBR R0 K1 R2 + 0x88080158, // 001F GETMBR R2 R0 K88 + 0x90021202, // 0020 SETMBR R0 K9 R2 + 0x50080000, // 0021 LDBOOL R2 0 0 + 0x90022C02, // 0022 SETMBR R0 K22 R2 + 0x90022F18, // 0023 SETMBR R0 K23 K24 + 0x90023318, // 0024 SETMBR R0 K25 K24 + 0x90024145, // 0025 SETMBR R0 K32 K69 + 0x90024318, // 0026 SETMBR R0 K33 K24 + 0x90023518, // 0027 SETMBR R0 K26 K24 + 0x90024D45, // 0028 SETMBR R0 K38 K69 + 0x90024F18, // 0029 SETMBR R0 K39 K24 + 0x90023718, // 002A SETMBR R0 K27 K24 + 0x90025145, // 002B SETMBR R0 K40 K69 + 0x90025318, // 002C SETMBR R0 K41 K24 + 0x90023918, // 002D SETMBR R0 K28 K24 + 0x90024545, // 002E SETMBR R0 K34 K69 + 0x90024718, // 002F SETMBR R0 K35 K24 + 0x90023B18, // 0030 SETMBR R0 K29 K24 + 0x90024945, // 0031 SETMBR R0 K36 K69 + 0x90024B18, // 0032 SETMBR R0 K37 K24 + 0x90023D18, // 0033 SETMBR R0 K30 K24 + 0x90028345, // 0034 SETMBR R0 K65 K69 + 0x90028518, // 0035 SETMBR R0 K66 K24 + 0x90028118, // 0036 SETMBR R0 K64 K24 + 0x540A1387, // 0037 LDINT R2 5000 + 0x90028602, // 0038 SETMBR R0 K67 R2 + 0x4C080000, // 0039 LDNIL R2 + 0x90021402, // 003A SETMBR R0 K10 R2 + 0x4C080000, // 003B LDNIL R2 + 0x90027E02, // 003C SETMBR R0 K63 R2 + 0x4C080000, // 003D LDNIL R2 + 0x90027802, // 003E SETMBR R0 K60 R2 + 0x4C080000, // 003F LDNIL R2 + 0x90027A02, // 0040 SETMBR R0 K61 R2 + 0x4C080000, // 0041 LDNIL R2 + 0x90027C02, // 0042 SETMBR R0 K62 R2 + 0x4C080000, // 0043 LDNIL R2 + 0x90022202, // 0044 SETMBR R0 K17 R2 + 0x80000000, // 0045 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _clear_strip +********************************************************************/ +be_local_closure(class_AnimationEngine__clear_strip, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_clear_strip), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x8804010D, // 0000 GETMBR R1 R0 K13 + 0x8C040336, // 0001 GETMET R1 R1 K54 + 0x7C040200, // 0002 CALL R1 1 + 0x8804010D, // 0003 GETMBR R1 R0 K13 + 0x8C040334, // 0004 GETMET R1 R1 K52 + 0x7C040200, // 0005 CALL R1 1 + 0x80000000, // 0006 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _handle_strip_length_change +********************************************************************/ +be_local_closure(class_AnimationEngine__handle_strip_length_change, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(_handle_strip_length_change), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x18080318, // 0000 LE R2 R1 K24 + 0x780A0000, // 0001 JMPF R2 #0003 + 0x80000400, // 0002 RET 0 + 0x90026E01, // 0003 SETMBR R0 K55 R1 + 0x88080132, // 0004 GETMBR R2 R0 K50 + 0x8C080559, // 0005 GETMET R2 R2 K89 + 0x5C100200, // 0006 MOVE R4 R1 + 0x7C080400, // 0007 CALL R2 2 + 0x8808014D, // 0008 GETMBR R2 R0 K77 + 0x8C080559, // 0009 GETMET R2 R2 K89 + 0x5C100200, // 000A MOVE R4 R1 + 0x7C080400, // 000B CALL R2 2 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x90022C02, // 000D SETMBR R0 K22 R2 + 0x80000000, // 000E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: pop_iteration_context +********************************************************************/ +be_local_closure(class_AnimationEngine_pop_iteration_context, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationEngine, /* shared constants */ + be_str_weak(pop_iteration_context), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040104, // 0000 GETMBR R1 R0 K4 + 0x8C04035A, // 0001 GETMET R1 R1 K90 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: AnimationEngine +********************************************************************/ +be_local_class(AnimationEngine, + 38, + NULL, + be_nested_map(71, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(stop, 9), be_const_closure(class_AnimationEngine_stop_closure) }, + { be_const_key_weak(frame_buffer, 65), be_const_var(3) }, + { be_const_key_weak(pop_iteration_context, -1), be_const_closure(class_AnimationEngine_pop_iteration_context_closure) }, + { be_const_key_weak(animations, -1), be_const_closure(class_AnimationEngine_animations_closure) }, + { be_const_key_weak(phase2_time_max, 50), be_const_var(26) }, + { be_const_key_weak(strip_length, 45), be_const_var(1) }, + { be_const_key_weak(on_tick, 37), be_const_closure(class_AnimationEngine_on_tick_closure) }, + { be_const_key_weak(ts_1, -1), be_const_var(33) }, + { be_const_key_weak(phase2_time_min, 49), be_const_var(25) }, + { be_const_key_weak(tick_ms, -1), be_const_var(9) }, + { be_const_key_weak(tick_time_sum, 34), be_const_var(12) }, + { be_const_key_weak(phase1_time_max, 62), be_const_var(23) }, + { be_const_key_weak(_print_stats, -1), be_const_closure(class_AnimationEngine__print_stats_closure) }, + { be_const_key_weak(last_update, 22), be_const_var(6) }, + { be_const_key_weak(interrupt_animation, -1), be_const_closure(class_AnimationEngine_interrupt_animation_closure) }, + { be_const_key_weak(is_running, -1), be_const_var(5) }, + { be_const_key_weak(push_iteration_context, 1), be_const_closure(class_AnimationEngine_push_iteration_context_closure) }, + { be_const_key_weak(anim_time_min, 33), be_const_var(16) }, + { be_const_key_weak(_output_to_strip, -1), be_const_closure(class_AnimationEngine__output_to_strip_closure) }, + { be_const_key_weak(hw_time_min, -1), be_const_var(19) }, + { be_const_key_weak(TICK_MS, -1), be_const_int(50) }, + { be_const_key_weak(strip, -1), be_const_var(0) }, + { be_const_key_weak(clear, -1), be_const_closure(class_AnimationEngine_clear_closure) }, + { be_const_key_weak(sequence_managers, 19), be_const_closure(class_AnimationEngine_sequence_managers_closure) }, + { be_const_key_weak(_clear_strip, 30), be_const_closure(class_AnimationEngine__clear_strip_closure) }, + { be_const_key_weak(remove, 20), be_const_closure(class_AnimationEngine_remove_closure) }, + { be_const_key_weak(phase3_time_max, -1), be_const_var(29) }, + { be_const_key_weak(phase1_time_min, -1), be_const_var(22) }, + { be_const_key_weak(fast_loop_closure, -1), be_const_var(8) }, + { be_const_key_weak(get_strip_length, -1), be_const_closure(class_AnimationEngine_get_strip_length_closure) }, + { be_const_key_weak(phase2_time_sum, -1), be_const_var(24) }, + { be_const_key_weak(ts_2, -1), be_const_var(34) }, + { be_const_key_weak(tick_time_min, -1), be_const_var(13) }, + { be_const_key_weak(anim_time_max, 69), be_const_var(17) }, + { be_const_key_weak(add, 26), be_const_closure(class_AnimationEngine_add_closure) }, + { be_const_key_weak(ts_hw, -1), be_const_var(36) }, + { be_const_key_weak(tick_time_max, -1), be_const_var(14) }, + { be_const_key_weak(phase1_time_sum, -1), be_const_var(21) }, + { be_const_key_weak(run, -1), be_const_closure(class_AnimationEngine_run_closure) }, + { be_const_key_weak(hw_time_max, -1), be_const_var(20) }, + { be_const_key_weak(_record_tick_metrics, 2), be_const_closure(class_AnimationEngine__record_tick_metrics_closure) }, + { be_const_key_weak(render_needed, -1), be_const_var(10) }, + { be_const_key_weak(update_current_iteration, 58), be_const_closure(class_AnimationEngine_update_current_iteration_closure) }, + { be_const_key_weak(root_animation, 57), be_const_var(2) }, + { be_const_key_weak(ts_end, -1), be_const_var(37) }, + { be_const_key_weak(size, -1), be_const_closure(class_AnimationEngine_size_closure) }, + { be_const_key_weak(_update_and_render, -1), be_const_closure(class_AnimationEngine__update_and_render_closure) }, + { be_const_key_weak(stats_period, 55), be_const_var(31) }, + { be_const_key_weak(cleanup, -1), be_const_closure(class_AnimationEngine_cleanup_closure) }, + { be_const_key_weak(temp_buffer, 54), be_const_var(4) }, + { be_const_key_weak(get_current_iteration_number, 38), be_const_closure(class_AnimationEngine_get_current_iteration_number_closure) }, + { be_const_key_weak(interrupt_current, -1), be_const_closure(class_AnimationEngine_interrupt_current_closure) }, + { be_const_key_weak(get_animations, 53), be_const_closure(class_AnimationEngine_get_animations_closure) }, + { be_const_key_weak(check_strip_length, -1), be_const_closure(class_AnimationEngine_check_strip_length_closure) }, + { be_const_key_weak(_process_events, -1), be_const_closure(class_AnimationEngine__process_events_closure) }, + { be_const_key_weak(get_strip, -1), be_const_closure(class_AnimationEngine_get_strip_closure) }, + { be_const_key_weak(resume_after, -1), be_const_closure(class_AnimationEngine_resume_after_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_AnimationEngine_tostring_closure) }, + { be_const_key_weak(is_active, -1), be_const_closure(class_AnimationEngine_is_active_closure) }, + { be_const_key_weak(tick_count, -1), be_const_var(11) }, + { be_const_key_weak(hw_time_sum, 24), be_const_var(18) }, + { be_const_key_weak(init, -1), be_const_closure(class_AnimationEngine_init_closure) }, + { be_const_key_weak(anim_time_sum, -1), be_const_var(15) }, + { be_const_key_weak(time_ms, -1), be_const_var(7) }, + { be_const_key_weak(_handle_strip_length_change, -1), be_const_closure(class_AnimationEngine__handle_strip_length_change_closure) }, + { be_const_key_weak(ts_start, 70), be_const_var(32) }, + { be_const_key_weak(resume, 15), be_const_closure(class_AnimationEngine_resume_closure) }, + { be_const_key_weak(ts_3, -1), be_const_var(35) }, + { be_const_key_weak(phase3_time_sum, 7), be_const_var(27) }, + { be_const_key_weak(last_stats_time, -1), be_const_var(30) }, + { be_const_key_weak(phase3_time_min, -1), be_const_var(28) }, + })), + be_str_weak(AnimationEngine) +); + /******************************************************************** ** Solidified function: cosine_osc ********************************************************************/ @@ -13961,7 +14881,7 @@ be_local_closure(class_PaletteMeterAnimation_init, /* name */ ********************************************************************/ be_local_closure(class_PaletteMeterAnimation__update_value_buffer, /* name */ be_nested_proto( - 12, /* nstack */ + 13, /* nstack */ 3, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -13969,47 +14889,50 @@ be_local_closure(class_PaletteMeterAnimation__update_value_buffer, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ + ( &(const bvalue[ 7]) { /* constants */ /* K0 */ be_nested_str_weak(value_func), - /* K1 */ be_nested_str_weak(tasmota), - /* K2 */ be_nested_str_weak(scale_uint), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(value_buffer), - /* K5 */ be_const_int(1), + /* K1 */ be_nested_str_weak(engine), + /* K2 */ be_nested_str_weak(tasmota), + /* K3 */ be_nested_str_weak(scale_uint), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(value_buffer), + /* K6 */ be_const_int(1), }), be_str_weak(_update_value_buffer), &be_const_str_solidified, - ( &(const binstruction[30]) { /* code */ + ( &(const binstruction[32]) { /* code */ 0x880C0100, // 0000 GETMBR R3 R0 K0 0x4C100000, // 0001 LDNIL R4 0x1C100604, // 0002 EQ R4 R3 R4 0x78120000, // 0003 JMPF R4 #0005 0x80000800, // 0004 RET 0 - 0x5C100600, // 0005 MOVE R4 R3 - 0x5C140200, // 0006 MOVE R5 R1 - 0x5C180000, // 0007 MOVE R6 R0 - 0x7C100400, // 0008 CALL R4 2 - 0xB8160200, // 0009 GETNGBL R5 K1 - 0x8C140B02, // 000A GETMET R5 R5 K2 - 0x5C1C0800, // 000B MOVE R7 R4 - 0x58200003, // 000C LDCONST R8 K3 - 0x54260063, // 000D LDINT R9 100 - 0x58280003, // 000E LDCONST R10 K3 - 0x5C2C0400, // 000F MOVE R11 R2 - 0x7C140C00, // 0010 CALL R5 6 - 0x58180003, // 0011 LDCONST R6 K3 - 0x141C0C02, // 0012 LT R7 R6 R2 - 0x781E0008, // 0013 JMPF R7 #001D - 0x881C0104, // 0014 GETMBR R7 R0 K4 - 0x14200C05, // 0015 LT R8 R6 R5 - 0x78220001, // 0016 JMPF R8 #0019 - 0x542200FE, // 0017 LDINT R8 255 - 0x70020000, // 0018 JMP #001A - 0x58200003, // 0019 LDCONST R8 K3 - 0x981C0C08, // 001A SETIDX R7 R6 R8 - 0x00180D05, // 001B ADD R6 R6 K5 - 0x7001FFF4, // 001C JMP #0012 - 0x80000000, // 001D RET 0 + 0x88100101, // 0005 GETMBR R4 R0 K1 + 0x5C140600, // 0006 MOVE R5 R3 + 0x5C180800, // 0007 MOVE R6 R4 + 0x5C1C0200, // 0008 MOVE R7 R1 + 0x5C200000, // 0009 MOVE R8 R0 + 0x7C140600, // 000A CALL R5 3 + 0xB81A0400, // 000B GETNGBL R6 K2 + 0x8C180D03, // 000C GETMET R6 R6 K3 + 0x5C200A00, // 000D MOVE R8 R5 + 0x58240004, // 000E LDCONST R9 K4 + 0x542A00FE, // 000F LDINT R10 255 + 0x582C0004, // 0010 LDCONST R11 K4 + 0x5C300400, // 0011 MOVE R12 R2 + 0x7C180C00, // 0012 CALL R6 6 + 0x581C0004, // 0013 LDCONST R7 K4 + 0x14200E02, // 0014 LT R8 R7 R2 + 0x78220008, // 0015 JMPF R8 #001F + 0x88200105, // 0016 GETMBR R8 R0 K5 + 0x14240E06, // 0017 LT R9 R7 R6 + 0x78260001, // 0018 JMPF R9 #001B + 0x542600FE, // 0019 LDINT R9 255 + 0x70020000, // 001A JMP #001C + 0x58240004, // 001B LDCONST R9 K4 + 0x98200E09, // 001C SETIDX R8 R7 R9 + 0x001C0F06, // 001D ADD R7 R7 K6 + 0x7001FFF4, // 001E JMP #0014 + 0x80000000, // 001F RET 0 }) ) ); @@ -14019,10 +14942,10 @@ be_local_closure(class_PaletteMeterAnimation__update_value_buffer, /* name */ /******************************************************************** ** Solidified class: PaletteMeterAnimation ********************************************************************/ -extern const bclass be_class_PalettePatternAnimation; +extern const bclass be_class_PaletteGradientAnimation; be_local_class(PaletteMeterAnimation, 0, - &be_class_PalettePatternAnimation, + &be_class_PaletteGradientAnimation, be_nested_map(3, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(PARAMS, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { @@ -14286,494 +15209,39 @@ be_local_class(ClosureValueProvider, })), be_str_weak(ClosureValueProvider) ); -// compact class 'ColorCycleColorProvider' ktab size: 25, total: 52 (saved 216 bytes) -static const bvalue be_ktab_class_ColorCycleColorProvider[25] = { - /* K0 */ be_nested_str_weak(cycle_period), - /* K1 */ be_nested_str_weak(_get_palette_size), - /* K2 */ be_const_int(1), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(current_index), - /* K5 */ be_nested_str_weak(_get_color_at_index), - /* K6 */ be_nested_str_weak(brightness), - /* K7 */ be_nested_str_weak(apply_brightness), - /* K8 */ be_nested_str_weak(tasmota), - /* K9 */ be_nested_str_weak(scale_uint), - /* K10 */ be_nested_str_weak(ColorCycleColorProvider_X28palette_size_X3D_X25s_X2C_X20cycle_period_X3D_X25s_X2C_X20mode_X3D_X25s_X2C_X20current_index_X3D_X25s_X29), - /* K11 */ be_nested_str_weak(manual), - /* K12 */ be_nested_str_weak(auto), - /* K13 */ be_nested_str_weak(palette), - /* K14 */ be_nested_str_weak(on_param_changed), - /* K15 */ be_nested_str_weak(palette_size), - /* K16 */ be_nested_str_weak(values), - /* K17 */ be_nested_str_weak(value_error), - /* K18 */ be_nested_str_weak(Parameter_X20_X27palette_size_X27_X20is_X20read_X2Donly), - /* K19 */ be_nested_str_weak(next), - /* K20 */ be_nested_str_weak(_adjust_index), - /* K21 */ be_nested_str_weak(member), - /* K22 */ be_nested_str_weak(init), - /* K23 */ be_nested_str_weak(get), - /* K24 */ be_const_int(-16777216), -}; - - -extern const bclass be_class_ColorCycleColorProvider; /******************************************************************** -** Solidified function: produce_value +** Solidified function: get_registered_events ********************************************************************/ -be_local_closure(class_ColorCycleColorProvider_produce_value, /* name */ +be_local_closure(get_registered_events, /* name */ be_nested_proto( - 13, /* nstack */ - 3, /* argc */ - 10, /* varg */ + 2, /* nstack */ + 0, /* argc */ + 0, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_ColorCycleColorProvider, /* shared constants */ - be_str_weak(produce_value), + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(animation), + /* K1 */ be_nested_str_weak(event_manager), + /* K2 */ be_nested_str_weak(get_registered_events), + }), + be_str_weak(get_registered_events), &be_const_str_solidified, - ( &(const binstruction[56]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C100101, // 0001 GETMET R4 R0 K1 - 0x7C100200, // 0002 CALL R4 1 - 0x18140902, // 0003 LE R5 R4 K2 - 0x74160001, // 0004 JMPT R5 #0007 - 0x1C140703, // 0005 EQ R5 R3 K3 - 0x78160015, // 0006 JMPF R5 #001D - 0x88140104, // 0007 GETMBR R5 R0 K4 - 0x28180A04, // 0008 GE R6 R5 R4 - 0x781A0001, // 0009 JMPF R6 #000C - 0x04180902, // 000A SUB R6 R4 K2 - 0x5C140C00, // 000B MOVE R5 R6 - 0x14180B03, // 000C LT R6 R5 K3 - 0x781A0000, // 000D JMPF R6 #000F - 0x58140003, // 000E LDCONST R5 K3 - 0x90020805, // 000F SETMBR R0 K4 R5 - 0x8C180105, // 0010 GETMET R6 R0 K5 - 0x88200104, // 0011 GETMBR R8 R0 K4 - 0x7C180400, // 0012 CALL R6 2 - 0x881C0106, // 0013 GETMBR R7 R0 K6 - 0x542200FE, // 0014 LDINT R8 255 - 0x20200E08, // 0015 NE R8 R7 R8 - 0x78220004, // 0016 JMPF R8 #001C - 0x8C200107, // 0017 GETMET R8 R0 K7 - 0x5C280C00, // 0018 MOVE R10 R6 - 0x5C2C0E00, // 0019 MOVE R11 R7 - 0x7C200600, // 001A CALL R8 3 - 0x80041000, // 001B RET 1 R8 - 0x80040C00, // 001C RET 1 R6 - 0x10140403, // 001D MOD R5 R2 R3 - 0xB81A1000, // 001E GETNGBL R6 K8 - 0x8C180D09, // 001F GETMET R6 R6 K9 - 0x5C200A00, // 0020 MOVE R8 R5 - 0x58240003, // 0021 LDCONST R9 K3 - 0x04280702, // 0022 SUB R10 R3 K2 - 0x582C0003, // 0023 LDCONST R11 K3 - 0x04300902, // 0024 SUB R12 R4 K2 - 0x7C180C00, // 0025 CALL R6 6 - 0x281C0C04, // 0026 GE R7 R6 R4 - 0x781E0001, // 0027 JMPF R7 #002A - 0x041C0902, // 0028 SUB R7 R4 K2 - 0x5C180E00, // 0029 MOVE R6 R7 - 0x90020806, // 002A SETMBR R0 K4 R6 - 0x8C1C0105, // 002B GETMET R7 R0 K5 - 0x5C240C00, // 002C MOVE R9 R6 - 0x7C1C0400, // 002D CALL R7 2 - 0x88200106, // 002E GETMBR R8 R0 K6 - 0x542600FE, // 002F LDINT R9 255 - 0x20241009, // 0030 NE R9 R8 R9 - 0x78260004, // 0031 JMPF R9 #0037 - 0x8C240107, // 0032 GETMET R9 R0 K7 - 0x5C2C0E00, // 0033 MOVE R11 R7 - 0x5C301000, // 0034 MOVE R12 R8 - 0x7C240600, // 0035 CALL R9 3 - 0x80041200, // 0036 RET 1 R9 - 0x80040E00, // 0037 RET 1 R7 + ( &(const binstruction[ 5]) { /* code */ + 0xB8020000, // 0000 GETNGBL R0 K0 + 0x88000101, // 0001 GETMBR R0 R0 K1 + 0x8C000102, // 0002 GETMET R0 R0 K2 + 0x7C000200, // 0003 CALL R0 1 + 0x80040000, // 0004 RET 1 R0 }) ) ); /*******************************************************************/ -/******************************************************************** -** Solidified function: _adjust_index -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider__adjust_index, /* 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_ColorCycleColorProvider, /* shared constants */ - be_str_weak(_adjust_index), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040101, // 0000 GETMET R1 R0 K1 - 0x7C040200, // 0001 CALL R1 1 - 0x24080303, // 0002 GT R2 R1 K3 - 0x780A0009, // 0003 JMPF R2 #000E - 0x88080104, // 0004 GETMBR R2 R0 K4 - 0x10080401, // 0005 MOD R2 R2 R1 - 0x140C0503, // 0006 LT R3 R2 K3 - 0x780E0000, // 0007 JMPF R3 #0009 - 0x00080401, // 0008 ADD R2 R2 R1 - 0x880C0104, // 0009 GETMBR R3 R0 K4 - 0x200C0602, // 000A NE R3 R3 R2 - 0x780E0000, // 000B JMPF R3 #000D - 0x90020802, // 000C SETMBR R0 K4 R2 - 0x70020000, // 000D JMP #000F - 0x90020903, // 000E SETMBR R0 K4 K3 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider_tostring, /* name */ - be_nested_proto( - 7, /* 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_ColorCycleColorProvider, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x5808000A, // 0001 LDCONST R2 K10 - 0x8C0C0101, // 0002 GETMET R3 R0 K1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x88100100, // 0004 GETMBR R4 R0 K0 - 0x88140100, // 0005 GETMBR R5 R0 K0 - 0x78160001, // 0006 JMPF R5 #0009 - 0x5814000B, // 0007 LDCONST R5 K11 - 0x70020000, // 0008 JMP #000A - 0x5814000C, // 0009 LDCONST R5 K12 - 0x88180104, // 000A GETMBR R6 R0 K4 - 0x7C040A00, // 000B CALL R1 5 - 0x80040200, // 000C RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _get_palette_size -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider__get_palette_size, /* 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_ColorCycleColorProvider, /* shared constants */ - be_str_weak(_get_palette_size), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x8808010D, // 0001 GETMBR R2 R0 K13 - 0x7C040200, // 0002 CALL R1 1 - 0x540A0003, // 0003 LDINT R2 4 - 0x0C040202, // 0004 DIV R1 R1 R2 - 0x80040200, // 0005 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: on_param_changed -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider_on_param_changed, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ColorCycleColorProvider, /* shared constants */ - be_str_weak(on_param_changed), - &be_const_str_solidified, - ( &(const binstruction[27]) { /* code */ - 0x600C0003, // 0000 GETGBL R3 G3 - 0x5C100000, // 0001 MOVE R4 R0 - 0x7C0C0200, // 0002 CALL R3 1 - 0x8C0C070E, // 0003 GETMET R3 R3 K14 - 0x5C140200, // 0004 MOVE R5 R1 - 0x5C180400, // 0005 MOVE R6 R2 - 0x7C0C0600, // 0006 CALL R3 3 - 0x1C0C030F, // 0007 EQ R3 R1 K15 - 0x780E0005, // 0008 JMPF R3 #000F - 0x880C0110, // 0009 GETMBR R3 R0 K16 - 0x8C100101, // 000A GETMET R4 R0 K1 - 0x7C100200, // 000B CALL R4 1 - 0x980E1E04, // 000C SETIDX R3 K15 R4 - 0xB0062312, // 000D RAISE 1 K17 K18 - 0x7002000A, // 000E JMP #001A - 0x1C0C0313, // 000F EQ R3 R1 K19 - 0x780E0008, // 0010 JMPF R3 #001A - 0x200C0503, // 0011 NE R3 R2 K3 - 0x780E0006, // 0012 JMPF R3 #001A - 0x880C0104, // 0013 GETMBR R3 R0 K4 - 0x000C0602, // 0014 ADD R3 R3 R2 - 0x90020803, // 0015 SETMBR R0 K4 R3 - 0x8C0C0114, // 0016 GETMET R3 R0 K20 - 0x7C0C0200, // 0017 CALL R3 1 - 0x880C0110, // 0018 GETMBR R3 R0 K16 - 0x980E2703, // 0019 SETIDX R3 K19 K3 - 0x80000000, // 001A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: member -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider_member, /* 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_ColorCycleColorProvider, /* shared constants */ - be_str_weak(member), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x1C08030F, // 0000 EQ R2 R1 K15 - 0x780A0003, // 0001 JMPF R2 #0006 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x80040400, // 0004 RET 1 R2 - 0x70020006, // 0005 JMP #000D - 0x60080003, // 0006 GETGBL R2 G3 - 0x5C0C0000, // 0007 MOVE R3 R0 - 0x7C080200, // 0008 CALL R2 1 - 0x8C080515, // 0009 GETMET R2 R2 K21 - 0x5C100200, // 000A MOVE R4 R1 - 0x7C080400, // 000B CALL R2 2 - 0x80040400, // 000C RET 1 R2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_color_for_value -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* 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_ColorCycleColorProvider, /* shared constants */ - be_str_weak(get_color_for_value), - &be_const_str_solidified, - ( &(const binstruction[53]) { /* code */ - 0x8C0C0101, // 0000 GETMET R3 R0 K1 - 0x7C0C0200, // 0001 CALL R3 1 - 0x1C100703, // 0002 EQ R4 R3 K3 - 0x78120000, // 0003 JMPF R4 #0005 - 0x80060600, // 0004 RET 1 K3 - 0x1C100702, // 0005 EQ R4 R3 K2 - 0x7812000C, // 0006 JMPF R4 #0014 - 0x8C100105, // 0007 GETMET R4 R0 K5 - 0x58180003, // 0008 LDCONST R6 K3 - 0x7C100400, // 0009 CALL R4 2 - 0x88140106, // 000A GETMBR R5 R0 K6 - 0x541A00FE, // 000B LDINT R6 255 - 0x20180A06, // 000C NE R6 R5 R6 - 0x781A0004, // 000D JMPF R6 #0013 - 0x8C180107, // 000E GETMET R6 R0 K7 - 0x5C200800, // 000F MOVE R8 R4 - 0x5C240A00, // 0010 MOVE R9 R5 - 0x7C180600, // 0011 CALL R6 3 - 0x80040C00, // 0012 RET 1 R6 - 0x80040800, // 0013 RET 1 R4 - 0x14100303, // 0014 LT R4 R1 K3 - 0x78120001, // 0015 JMPF R4 #0018 - 0x58040003, // 0016 LDCONST R1 K3 - 0x70020003, // 0017 JMP #001C - 0x541200FE, // 0018 LDINT R4 255 - 0x24100204, // 0019 GT R4 R1 R4 - 0x78120000, // 001A JMPF R4 #001C - 0x540600FE, // 001B LDINT R1 255 - 0xB8121000, // 001C GETNGBL R4 K8 - 0x8C100909, // 001D GETMET R4 R4 K9 - 0x5C180200, // 001E MOVE R6 R1 - 0x581C0003, // 001F LDCONST R7 K3 - 0x542200FE, // 0020 LDINT R8 255 - 0x58240003, // 0021 LDCONST R9 K3 - 0x04280702, // 0022 SUB R10 R3 K2 - 0x7C100C00, // 0023 CALL R4 6 - 0x28140803, // 0024 GE R5 R4 R3 - 0x78160001, // 0025 JMPF R5 #0028 - 0x04140702, // 0026 SUB R5 R3 K2 - 0x5C100A00, // 0027 MOVE R4 R5 - 0x8C140105, // 0028 GETMET R5 R0 K5 - 0x5C1C0800, // 0029 MOVE R7 R4 - 0x7C140400, // 002A CALL R5 2 - 0x88180106, // 002B GETMBR R6 R0 K6 - 0x541E00FE, // 002C LDINT R7 255 - 0x201C0C07, // 002D NE R7 R6 R7 - 0x781E0004, // 002E JMPF R7 #0034 - 0x8C1C0107, // 002F GETMET R7 R0 K7 - 0x5C240A00, // 0030 MOVE R9 R5 - 0x5C280C00, // 0031 MOVE R10 R6 - 0x7C1C0600, // 0032 CALL R7 3 - 0x80040E00, // 0033 RET 1 R7 - 0x80040A00, // 0034 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider_init, /* 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_ColorCycleColorProvider, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C080516, // 0003 GETMET R2 R2 K22 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x8808010D, // 0006 GETMBR R2 R0 K13 - 0x90020903, // 0007 SETMBR R0 K4 K3 - 0x880C0110, // 0008 GETMBR R3 R0 K16 - 0x8C100101, // 0009 GETMET R4 R0 K1 - 0x7C100200, // 000A CALL R4 1 - 0x980E1E04, // 000B SETIDX R3 K15 R4 - 0x80000000, // 000C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _get_color_at_index -********************************************************************/ -be_local_closure(class_ColorCycleColorProvider__get_color_at_index, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ColorCycleColorProvider, /* shared constants */ - be_str_weak(_get_color_at_index), - &be_const_str_solidified, - ( &(const binstruction[20]) { /* code */ - 0x8808010D, // 0000 GETMBR R2 R0 K13 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x5C100400, // 0002 MOVE R4 R2 - 0x7C0C0200, // 0003 CALL R3 1 - 0x54120003, // 0004 LDINT R4 4 - 0x0C0C0604, // 0005 DIV R3 R3 R4 - 0x1C100703, // 0006 EQ R4 R3 K3 - 0x74120003, // 0007 JMPT R4 #000C - 0x28100203, // 0008 GE R4 R1 R3 - 0x74120001, // 0009 JMPT R4 #000C - 0x14100303, // 000A LT R4 R1 K3 - 0x78120000, // 000B JMPF R4 #000D - 0x80060600, // 000C RET 1 K3 - 0x8C100517, // 000D GETMET R4 R2 K23 - 0x541A0003, // 000E LDINT R6 4 - 0x08180206, // 000F MUL R6 R1 R6 - 0x541DFFFB, // 0010 LDINT R7 -4 - 0x7C100600, // 0011 CALL R4 3 - 0x30100918, // 0012 OR R4 R4 K24 - 0x80040800, // 0013 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: ColorCycleColorProvider -********************************************************************/ -extern const bclass be_class_ColorProvider; -be_local_class(ColorCycleColorProvider, - 1, - &be_class_ColorProvider, - be_nested_map(11, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_get_color_at_index, -1), be_const_closure(class_ColorCycleColorProvider__get_color_at_index_closure) }, - { be_const_key_weak(current_index, -1), be_const_var(0) }, - { be_const_key_weak(_adjust_index, 1), be_const_closure(class_ColorCycleColorProvider__adjust_index_closure) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_ColorCycleColorProvider_tostring_closure) }, - { be_const_key_weak(_get_palette_size, -1), be_const_closure(class_ColorCycleColorProvider__get_palette_size_closure) }, - { be_const_key_weak(on_param_changed, -1), be_const_closure(class_ColorCycleColorProvider_on_param_changed_closure) }, - { be_const_key_weak(member, -1), be_const_closure(class_ColorCycleColorProvider_member_closure) }, - { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_ColorCycleColorProvider_get_color_for_value_closure) }, - { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(4, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(palette, 2), be_const_bytes_instance(0C040C00FF0000FFFF00FF00FFFF000002) }, - { be_const_key_weak(palette_size, -1), be_const_bytes_instance(0C000300) }, - { be_const_key_weak(next, 1), be_const_bytes_instance(040000) }, - { be_const_key_weak(cycle_period, -1), be_const_bytes_instance(050000018813) }, - })) ) } )) }, - { be_const_key_weak(init, -1), be_const_closure(class_ColorCycleColorProvider_init_closure) }, - { be_const_key_weak(produce_value, 0), be_const_closure(class_ColorCycleColorProvider_produce_value_closure) }, - })), - be_str_weak(ColorCycleColorProvider) -); - /******************************************************************** ** Solidified function: pulsating_animation ********************************************************************/ @@ -14930,46 +15398,67 @@ be_local_closure(solid, /* name */ ); /*******************************************************************/ -// compact class 'PalettePatternAnimation' ktab size: 29, total: 49 (saved 160 bytes) -static const bvalue be_ktab_class_PalettePatternAnimation[29] = { - /* K0 */ be_nested_str_weak(on_param_changed), - /* K1 */ be_nested_str_weak(pattern_func), - /* K2 */ be_nested_str_weak(color_source), - /* K3 */ be_nested_str_weak(_initialize_value_buffer), - /* K4 */ be_nested_str_weak(_fix_time_ms), - /* K5 */ be_nested_str_weak(get_param), - /* K6 */ be_nested_str_weak(start_time), - /* K7 */ be_nested_str_weak(engine), - /* K8 */ be_nested_str_weak(strip_length), - /* K9 */ be_nested_str_weak(animation), - /* K10 */ be_nested_str_weak(color_provider), - /* K11 */ be_nested_str_weak(get_lut), - /* K12 */ be_nested_str_weak(LUT_FACTOR), - /* K13 */ be_const_int(0), - /* K14 */ be_nested_str_weak(pixels), - /* K15 */ be_nested_str_weak(_buffer), - /* K16 */ be_nested_str_weak(value_buffer), - /* K17 */ be_const_int(2), - /* K18 */ be_const_int(1), - /* K19 */ be_const_int(3), - /* K20 */ be_nested_str_weak(get_color_for_value), - /* K21 */ be_nested_str_weak(set_pixel_color), - /* K22 */ be_nested_str_weak(resize), - /* K23 */ be_nested_str_weak(init), - /* K24 */ be_nested_str_weak(_X25s_X28strip_length_X3D_X25s_X2C_X20priority_X3D_X25s_X2C_X20running_X3D_X25s_X29), - /* K25 */ be_nested_str_weak(priority), - /* K26 */ be_nested_str_weak(is_running), - /* K27 */ be_nested_str_weak(update), - /* K28 */ be_nested_str_weak(_update_value_buffer), +// compact class 'BreatheColorProvider' ktab size: 18, total: 29 (saved 88 bytes) +static const bvalue be_ktab_class_BreatheColorProvider[18] = { + /* K0 */ be_nested_str_weak(BreatheColorProvider_X28base_color_X3D0x_X2508x_X2C_X20min_brightness_X3D_X25s_X2C_X20max_brightness_X3D_X25s_X2C_X20duration_X3D_X25s_X2C_X20curve_factor_X3D_X25s_X29), + /* K1 */ be_nested_str_weak(base_color), + /* K2 */ be_nested_str_weak(min_brightness), + /* K3 */ be_nested_str_weak(max_brightness), + /* K4 */ be_nested_str_weak(duration), + /* K5 */ be_nested_str_weak(curve_factor), + /* K6 */ be_const_int(1), + /* K7 */ be_nested_str_weak(form), + /* K8 */ be_nested_str_weak(animation), + /* K9 */ be_nested_str_weak(COSINE), + /* K10 */ be_nested_str_weak(on_param_changed), + /* K11 */ be_nested_str_weak(produce_value), + /* K12 */ be_nested_str_weak(tasmota), + /* K13 */ be_nested_str_weak(scale_uint), + /* K14 */ be_const_int(0), + /* K15 */ be_nested_str_weak(init), + /* K16 */ be_nested_str_weak(min_value), + /* K17 */ be_nested_str_weak(max_value), }; -extern const bclass be_class_PalettePatternAnimation; +extern const bclass be_class_BreatheColorProvider; + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_BreatheColorProvider_tostring, /* name */ + be_nested_proto( + 8, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_BreatheColorProvider, /* shared constants */ + be_str_weak(tostring), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0x60040018, // 0000 GETGBL R1 G24 + 0x58080000, // 0001 LDCONST R2 K0 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x88100102, // 0003 GETMBR R4 R0 K2 + 0x88140103, // 0004 GETMBR R5 R0 K3 + 0x88180104, // 0005 GETMBR R6 R0 K4 + 0x881C0105, // 0006 GETMBR R7 R0 K5 + 0x7C040C00, // 0007 CALL R1 6 + 0x80040200, // 0008 RET 1 R1 + }) + ) +); +/*******************************************************************/ + /******************************************************************** ** Solidified function: on_param_changed ********************************************************************/ -be_local_closure(class_PalettePatternAnimation_on_param_changed, /* name */ +be_local_closure(class_BreatheColorProvider_on_param_changed, /* name */ be_nested_proto( 7, /* nstack */ 3, /* argc */ @@ -14979,216 +15468,149 @@ be_local_closure(class_PalettePatternAnimation_on_param_changed, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_PalettePatternAnimation, /* shared constants */ + &be_ktab_class_BreatheColorProvider, /* shared constants */ be_str_weak(on_param_changed), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ + ( &(const binstruction[19]) { /* code */ + 0x1C0C0305, // 0000 EQ R3 R1 K5 + 0x780E0008, // 0001 JMPF R3 #000B + 0x1C0C0506, // 0002 EQ R3 R2 K6 + 0x780E0003, // 0003 JMPF R3 #0008 + 0xB80E1000, // 0004 GETNGBL R3 K8 + 0x880C0709, // 0005 GETMBR R3 R3 K9 + 0x90020E03, // 0006 SETMBR R0 K7 R3 + 0x70020002, // 0007 JMP #000B + 0xB80E1000, // 0008 GETNGBL R3 K8 + 0x880C0709, // 0009 GETMBR R3 R3 K9 + 0x90020E03, // 000A SETMBR R0 K7 R3 + 0x600C0003, // 000B GETGBL R3 G3 + 0x5C100000, // 000C MOVE R4 R0 + 0x7C0C0200, // 000D CALL R3 1 + 0x8C0C070A, // 000E GETMET R3 R3 K10 + 0x5C140200, // 000F MOVE R5 R1 + 0x5C180400, // 0010 MOVE R6 R2 + 0x7C0C0600, // 0011 CALL R3 3 + 0x80000000, // 0012 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: produce_value +********************************************************************/ +be_local_closure(class_BreatheColorProvider_produce_value, /* name */ + be_nested_proto( + 19, /* 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_BreatheColorProvider, /* shared constants */ + be_str_weak(produce_value), + &be_const_str_solidified, + ( &(const binstruction[97]) { /* code */ 0x600C0003, // 0000 GETGBL R3 G3 0x5C100000, // 0001 MOVE R4 R0 0x7C0C0200, // 0002 CALL R3 1 - 0x8C0C0700, // 0003 GETMET R3 R3 K0 + 0x8C0C070B, // 0003 GETMET R3 R3 K11 0x5C140200, // 0004 MOVE R5 R1 0x5C180400, // 0005 MOVE R6 R2 0x7C0C0600, // 0006 CALL R3 3 - 0x1C0C0301, // 0007 EQ R3 R1 K1 - 0x740E0001, // 0008 JMPT R3 #000B - 0x1C0C0302, // 0009 EQ R3 R1 K2 - 0x780E0001, // 000A JMPF R3 #000D - 0x8C0C0103, // 000B GETMET R3 R0 K3 - 0x7C0C0200, // 000C CALL R3 1 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: render -********************************************************************/ -be_local_closure(class_PalettePatternAnimation_render, /* name */ - be_nested_proto( - 17, /* 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_PalettePatternAnimation, /* shared constants */ - be_str_weak(render), - &be_const_str_solidified, - ( &(const binstruction[81]) { /* code */ - 0x8C0C0104, // 0000 GETMET R3 R0 K4 - 0x5C140400, // 0001 MOVE R5 R2 - 0x7C0C0400, // 0002 CALL R3 2 - 0x5C080600, // 0003 MOVE R2 R3 - 0x8C0C0105, // 0004 GETMET R3 R0 K5 - 0x58140002, // 0005 LDCONST R5 K2 - 0x7C0C0400, // 0006 CALL R3 2 - 0x4C100000, // 0007 LDNIL R4 - 0x1C100604, // 0008 EQ R4 R3 R4 - 0x78120001, // 0009 JMPF R4 #000C - 0x50100000, // 000A LDBOOL R4 0 0 - 0x80040800, // 000B RET 1 R4 - 0x88100106, // 000C GETMBR R4 R0 K6 - 0x04100404, // 000D SUB R4 R2 R4 - 0x88140107, // 000E GETMBR R5 R0 K7 - 0x88140B08, // 000F GETMBR R5 R5 K8 - 0x4C180000, // 0010 LDNIL R6 - 0x601C000F, // 0011 GETGBL R7 G15 - 0x5C200600, // 0012 MOVE R8 R3 - 0xB8261200, // 0013 GETNGBL R9 K9 - 0x8824130A, // 0014 GETMBR R9 R9 K10 - 0x7C1C0400, // 0015 CALL R7 2 - 0x781E0028, // 0016 JMPF R7 #0040 - 0x8C1C070B, // 0017 GETMET R7 R3 K11 - 0x7C1C0200, // 0018 CALL R7 1 - 0x5C180E00, // 0019 MOVE R6 R7 - 0x4C200000, // 001A LDNIL R8 - 0x201C0E08, // 001B NE R7 R7 R8 - 0x781E0022, // 001C JMPF R7 #0040 - 0x881C070C, // 001D GETMBR R7 R3 K12 - 0x542200FF, // 001E LDINT R8 256 - 0x3C201007, // 001F SHR R8 R8 R7 - 0x5824000D, // 0020 LDCONST R9 K13 - 0x8828030E, // 0021 GETMBR R10 R1 K14 - 0x8C28150F, // 0022 GETMET R10 R10 K15 - 0x7C280200, // 0023 CALL R10 1 - 0x8C2C0D0F, // 0024 GETMET R11 R6 K15 - 0x7C2C0200, // 0025 CALL R11 1 - 0x88300110, // 0026 GETMBR R12 R0 K16 - 0x8C30190F, // 0027 GETMET R12 R12 K15 - 0x7C300200, // 0028 CALL R12 1 - 0x14341205, // 0029 LT R13 R9 R5 - 0x78360013, // 002A JMPF R13 #003F - 0x94341809, // 002B GETIDX R13 R12 R9 - 0x3C381A07, // 002C SHR R14 R13 R7 - 0x543E00FE, // 002D LDINT R15 255 - 0x1C3C1A0F, // 002E EQ R15 R13 R15 - 0x783E0000, // 002F JMPF R15 #0031 - 0x5C381000, // 0030 MOVE R14 R8 - 0x383C1D11, // 0031 SHL R15 R14 K17 - 0x003C160F, // 0032 ADD R15 R11 R15 - 0x94401F0D, // 0033 GETIDX R16 R15 K13 - 0x982A1A10, // 0034 SETIDX R10 K13 R16 - 0x94401F12, // 0035 GETIDX R16 R15 K18 - 0x982A2410, // 0036 SETIDX R10 K18 R16 - 0x94401F11, // 0037 GETIDX R16 R15 K17 - 0x982A2210, // 0038 SETIDX R10 K17 R16 - 0x94401F13, // 0039 GETIDX R16 R15 K19 - 0x982A2610, // 003A SETIDX R10 K19 R16 - 0x00241312, // 003B ADD R9 R9 K18 - 0x54420003, // 003C LDINT R16 4 - 0x00281410, // 003D ADD R10 R10 R16 - 0x7001FFE9, // 003E JMP #0029 - 0x7002000E, // 003F JMP #004F - 0x581C000D, // 0040 LDCONST R7 K13 - 0x14200E05, // 0041 LT R8 R7 R5 - 0x7822000B, // 0042 JMPF R8 #004F - 0x88200110, // 0043 GETMBR R8 R0 K16 - 0x94201007, // 0044 GETIDX R8 R8 R7 - 0x8C240714, // 0045 GETMET R9 R3 K20 - 0x5C2C1000, // 0046 MOVE R11 R8 - 0x5C300800, // 0047 MOVE R12 R4 - 0x7C240600, // 0048 CALL R9 3 - 0x8C280315, // 0049 GETMET R10 R1 K21 - 0x5C300E00, // 004A MOVE R12 R7 - 0x5C341200, // 004B MOVE R13 R9 - 0x7C280600, // 004C CALL R10 3 - 0x001C0F12, // 004D ADD R7 R7 K18 - 0x7001FFF1, // 004E JMP #0041 - 0x501C0200, // 004F LDBOOL R7 1 0 - 0x80040E00, // 0050 RET 1 R7 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _update_value_buffer -********************************************************************/ -be_local_closure(class_PalettePatternAnimation__update_value_buffer, /* name */ - be_nested_proto( - 9, /* 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_PalettePatternAnimation, /* shared constants */ - be_str_weak(_update_value_buffer), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* code */ - 0x880C0101, // 0000 GETMBR R3 R0 K1 - 0x4C100000, // 0001 LDNIL R4 - 0x1C100604, // 0002 EQ R4 R3 R4 - 0x78120000, // 0003 JMPF R4 #0005 - 0x80000800, // 0004 RET 0 - 0x5810000D, // 0005 LDCONST R4 K13 - 0x14140802, // 0006 LT R5 R4 R2 - 0x78160012, // 0007 JMPF R5 #001B + 0x88100105, // 0007 GETMBR R4 R0 K5 0x5C140600, // 0008 MOVE R5 R3 - 0x5C180800, // 0009 MOVE R6 R4 - 0x5C1C0200, // 000A MOVE R7 R1 - 0x5C200000, // 000B MOVE R8 R0 - 0x7C140600, // 000C CALL R5 3 - 0x60180009, // 000D GETGBL R6 G9 - 0x5C1C0A00, // 000E MOVE R7 R5 - 0x7C180200, // 000F CALL R6 1 - 0x141C0D0D, // 0010 LT R7 R6 K13 - 0x781E0000, // 0011 JMPF R7 #0013 - 0x5818000D, // 0012 LDCONST R6 K13 - 0x541E00FE, // 0013 LDINT R7 255 - 0x241C0C07, // 0014 GT R7 R6 R7 - 0x781E0000, // 0015 JMPF R7 #0017 - 0x541A00FE, // 0016 LDINT R6 255 - 0x881C0110, // 0017 GETMBR R7 R0 K16 - 0x981C0806, // 0018 SETIDX R7 R4 R6 - 0x00100912, // 0019 ADD R4 R4 K18 - 0x7001FFEA, // 001A JMP #0006 - 0x80000000, // 001B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _initialize_value_buffer -********************************************************************/ -be_local_closure(class_PalettePatternAnimation__initialize_value_buffer, /* 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_PalettePatternAnimation, /* shared constants */ - be_str_weak(_initialize_value_buffer), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x88040107, // 0000 GETMBR R1 R0 K7 - 0x88040308, // 0001 GETMBR R1 R1 K8 - 0x88080110, // 0002 GETMBR R2 R0 K16 - 0x8C080516, // 0003 GETMET R2 R2 K22 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x5808000D, // 0006 LDCONST R2 K13 - 0x140C0401, // 0007 LT R3 R2 R1 - 0x780E0003, // 0008 JMPF R3 #000D - 0x880C0110, // 0009 GETMBR R3 R0 K16 - 0x980C050D, // 000A SETIDX R3 R2 K13 - 0x00080512, // 000B ADD R2 R2 K18 - 0x7001FFF9, // 000C JMP #0007 - 0x80000000, // 000D RET 0 + 0x24180906, // 0009 GT R6 R4 K6 + 0x781A0019, // 000A JMPF R6 #0025 + 0xB81A1800, // 000B GETNGBL R6 K12 + 0x8C180D0D, // 000C GETMET R6 R6 K13 + 0x5C200600, // 000D MOVE R8 R3 + 0x5824000E, // 000E LDCONST R9 K14 + 0x542A00FE, // 000F LDINT R10 255 + 0x582C000E, // 0010 LDCONST R11 K14 + 0x54321FFF, // 0011 LDINT R12 8192 + 0x7C180C00, // 0012 CALL R6 6 + 0x5C1C0800, // 0013 MOVE R7 R4 + 0x24200F06, // 0014 GT R8 R7 K6 + 0x78220005, // 0015 JMPF R8 #001C + 0x08200C06, // 0016 MUL R8 R6 R6 + 0x54261FFF, // 0017 LDINT R9 8192 + 0x0C201009, // 0018 DIV R8 R8 R9 + 0x5C181000, // 0019 MOVE R6 R8 + 0x041C0F06, // 001A SUB R7 R7 K6 + 0x7001FFF7, // 001B JMP #0014 + 0xB8221800, // 001C GETNGBL R8 K12 + 0x8C20110D, // 001D GETMET R8 R8 K13 + 0x5C280C00, // 001E MOVE R10 R6 + 0x582C000E, // 001F LDCONST R11 K14 + 0x54321FFF, // 0020 LDINT R12 8192 + 0x5834000E, // 0021 LDCONST R13 K14 + 0x543A00FE, // 0022 LDINT R14 255 + 0x7C200C00, // 0023 CALL R8 6 + 0x5C141000, // 0024 MOVE R5 R8 + 0xB81A1800, // 0025 GETNGBL R6 K12 + 0x8C180D0D, // 0026 GETMET R6 R6 K13 + 0x5C200A00, // 0027 MOVE R8 R5 + 0x5824000E, // 0028 LDCONST R9 K14 + 0x542A00FE, // 0029 LDINT R10 255 + 0x882C0102, // 002A GETMBR R11 R0 K2 + 0x88300103, // 002B GETMBR R12 R0 K3 + 0x7C180C00, // 002C CALL R6 6 + 0x881C0101, // 002D GETMBR R7 R0 K1 + 0x54220017, // 002E LDINT R8 24 + 0x3C200E08, // 002F SHR R8 R7 R8 + 0x542600FE, // 0030 LDINT R9 255 + 0x2C201009, // 0031 AND R8 R8 R9 + 0x5426000F, // 0032 LDINT R9 16 + 0x3C240E09, // 0033 SHR R9 R7 R9 + 0x542A00FE, // 0034 LDINT R10 255 + 0x2C24120A, // 0035 AND R9 R9 R10 + 0x542A0007, // 0036 LDINT R10 8 + 0x3C280E0A, // 0037 SHR R10 R7 R10 + 0x542E00FE, // 0038 LDINT R11 255 + 0x2C28140B, // 0039 AND R10 R10 R11 + 0x542E00FE, // 003A LDINT R11 255 + 0x2C2C0E0B, // 003B AND R11 R7 R11 + 0xB8321800, // 003C GETNGBL R12 K12 + 0x8C30190D, // 003D GETMET R12 R12 K13 + 0x5C381200, // 003E MOVE R14 R9 + 0x583C000E, // 003F LDCONST R15 K14 + 0x544200FE, // 0040 LDINT R16 255 + 0x5844000E, // 0041 LDCONST R17 K14 + 0x5C480C00, // 0042 MOVE R18 R6 + 0x7C300C00, // 0043 CALL R12 6 + 0x5C241800, // 0044 MOVE R9 R12 + 0xB8321800, // 0045 GETNGBL R12 K12 + 0x8C30190D, // 0046 GETMET R12 R12 K13 + 0x5C381400, // 0047 MOVE R14 R10 + 0x583C000E, // 0048 LDCONST R15 K14 + 0x544200FE, // 0049 LDINT R16 255 + 0x5844000E, // 004A LDCONST R17 K14 + 0x5C480C00, // 004B MOVE R18 R6 + 0x7C300C00, // 004C CALL R12 6 + 0x5C281800, // 004D MOVE R10 R12 + 0xB8321800, // 004E GETNGBL R12 K12 + 0x8C30190D, // 004F GETMET R12 R12 K13 + 0x5C381600, // 0050 MOVE R14 R11 + 0x583C000E, // 0051 LDCONST R15 K14 + 0x544200FE, // 0052 LDINT R16 255 + 0x5844000E, // 0053 LDCONST R17 K14 + 0x5C480C00, // 0054 MOVE R18 R6 + 0x7C300C00, // 0055 CALL R12 6 + 0x5C2C1800, // 0056 MOVE R11 R12 + 0x54320017, // 0057 LDINT R12 24 + 0x3830100C, // 0058 SHL R12 R8 R12 + 0x5436000F, // 0059 LDINT R13 16 + 0x3834120D, // 005A SHL R13 R9 R13 + 0x3030180D, // 005B OR R12 R12 R13 + 0x54360007, // 005C LDINT R13 8 + 0x3834140D, // 005D SHL R13 R10 R13 + 0x3030180D, // 005E OR R12 R12 R13 + 0x3030180B, // 005F OR R12 R12 R11 + 0x80041800, // 0060 RET 1 R12 }) ) ); @@ -15198,7 +15620,7 @@ be_local_closure(class_PalettePatternAnimation__initialize_value_buffer, /* na /******************************************************************** ** Solidified function: init ********************************************************************/ -be_local_closure(class_PalettePatternAnimation_init, /* name */ +be_local_closure(class_BreatheColorProvider_init, /* name */ be_nested_proto( 5, /* nstack */ 2, /* argc */ @@ -15208,22 +15630,25 @@ be_local_closure(class_PalettePatternAnimation_init, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_PalettePatternAnimation, /* shared constants */ + &be_ktab_class_BreatheColorProvider, /* shared constants */ be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ + ( &(const binstruction[15]) { /* code */ 0x60080003, // 0000 GETGBL R2 G3 0x5C0C0000, // 0001 MOVE R3 R0 0x7C080200, // 0002 CALL R2 1 - 0x8C080517, // 0003 GETMET R2 R2 K23 + 0x8C08050F, // 0003 GETMET R2 R2 K15 0x5C100200, // 0004 MOVE R4 R1 0x7C080400, // 0005 CALL R2 2 - 0x60080015, // 0006 GETGBL R2 G21 - 0x7C080000, // 0007 CALL R2 0 - 0x90022002, // 0008 SETMBR R0 K16 R2 - 0x8C080103, // 0009 GETMET R2 R0 K3 - 0x7C080200, // 000A CALL R2 1 - 0x80000000, // 000B RET 0 + 0xB80A1000, // 0006 GETNGBL R2 K8 + 0x88080509, // 0007 GETMBR R2 R2 K9 + 0x90020E02, // 0008 SETMBR R0 K7 R2 + 0x9002210E, // 0009 SETMBR R0 K16 K14 + 0x540A00FE, // 000A LDINT R2 255 + 0x90022202, // 000B SETMBR R0 K17 R2 + 0x540A0BB7, // 000C LDINT R2 3000 + 0x90020802, // 000D SETMBR R0 K4 R2 + 0x80000000, // 000E RET 0 }) ) ); @@ -15231,120 +15656,28 @@ be_local_closure(class_PalettePatternAnimation_init, /* name */ /******************************************************************** -** Solidified function: tostring +** Solidified class: BreatheColorProvider ********************************************************************/ -be_local_closure(class_PalettePatternAnimation_tostring, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_PalettePatternAnimation, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88040107, // 0000 GETMBR R1 R0 K7 - 0x88040308, // 0001 GETMBR R1 R1 K8 - 0x60080018, // 0002 GETGBL R2 G24 - 0x580C0018, // 0003 LDCONST R3 K24 - 0x60100005, // 0004 GETGBL R4 G5 - 0x5C140000, // 0005 MOVE R5 R0 - 0x7C100200, // 0006 CALL R4 1 - 0x5C140200, // 0007 MOVE R5 R1 - 0x88180119, // 0008 GETMBR R6 R0 K25 - 0x881C011A, // 0009 GETMBR R7 R0 K26 - 0x7C080A00, // 000A CALL R2 5 - 0x80040400, // 000B RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: update -********************************************************************/ -be_local_closure(class_PalettePatternAnimation_update, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_PalettePatternAnimation, /* shared constants */ - be_str_weak(update), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C08051B, // 0003 GETMET R2 R2 K27 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x740A0001, // 0006 JMPT R2 #0009 - 0x50080000, // 0007 LDBOOL R2 0 0 - 0x80040400, // 0008 RET 1 R2 - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x5C100200, // 000A MOVE R4 R1 - 0x7C080400, // 000B CALL R2 2 - 0x5C040400, // 000C MOVE R1 R2 - 0x88080106, // 000D GETMBR R2 R0 K6 - 0x04080202, // 000E SUB R2 R1 R2 - 0x880C0107, // 000F GETMBR R3 R0 K7 - 0x880C0708, // 0010 GETMBR R3 R3 K8 - 0x6010000C, // 0011 GETGBL R4 G12 - 0x88140110, // 0012 GETMBR R5 R0 K16 - 0x7C100200, // 0013 CALL R4 1 - 0x20100803, // 0014 NE R4 R4 R3 - 0x78120003, // 0015 JMPF R4 #001A - 0x88100110, // 0016 GETMBR R4 R0 K16 - 0x8C100916, // 0017 GETMET R4 R4 K22 - 0x5C180600, // 0018 MOVE R6 R3 - 0x7C100400, // 0019 CALL R4 2 - 0x8C10011C, // 001A GETMET R4 R0 K28 - 0x5C180400, // 001B MOVE R6 R2 - 0x5C1C0600, // 001C MOVE R7 R3 - 0x7C100600, // 001D CALL R4 3 - 0x50100200, // 001E LDBOOL R4 1 0 - 0x80040800, // 001F RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: PalettePatternAnimation -********************************************************************/ -extern const bclass be_class_Animation; -be_local_class(PalettePatternAnimation, - 1, - &be_class_Animation, - be_nested_map(9, +extern const bclass be_class_OscillatorValueProvider; +be_local_class(BreatheColorProvider, + 0, + &be_class_OscillatorValueProvider, + be_nested_map(5, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(update, 1), be_const_closure(class_PalettePatternAnimation_update_closure) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_PalettePatternAnimation_tostring_closure) }, - { be_const_key_weak(_update_value_buffer, -1), be_const_closure(class_PalettePatternAnimation__update_value_buffer_closure) }, - { be_const_key_weak(_initialize_value_buffer, -1), be_const_closure(class_PalettePatternAnimation__initialize_value_buffer_closure) }, - { be_const_key_weak(on_param_changed, 8), be_const_closure(class_PalettePatternAnimation_on_param_changed_closure) }, - { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(2, + { be_const_key_weak(tostring, 1), be_const_closure(class_BreatheColorProvider_tostring_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_BreatheColorProvider_init_closure) }, + { be_const_key_weak(on_param_changed, -1), be_const_closure(class_BreatheColorProvider_on_param_changed_closure) }, + { be_const_key_weak(PARAMS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(4, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(color_source, 1), be_const_bytes_instance(0C0605) }, - { be_const_key_weak(pattern_func, -1), be_const_bytes_instance(0C0606) }, + { be_const_key_weak(base_color, -1), be_const_bytes_instance(0400FF) }, + { be_const_key_weak(max_brightness, -1), be_const_bytes_instance(07000001FF0001FF00) }, + { be_const_key_weak(curve_factor, -1), be_const_bytes_instance(07000100050002) }, + { be_const_key_weak(min_brightness, -1), be_const_bytes_instance(07000001FF000000) }, })) ) } )) }, - { be_const_key_weak(init, 5), be_const_closure(class_PalettePatternAnimation_init_closure) }, - { be_const_key_weak(render, 0), be_const_closure(class_PalettePatternAnimation_render_closure) }, - { be_const_key_weak(value_buffer, -1), be_const_var(0) }, + { be_const_key_weak(produce_value, -1), be_const_closure(class_BreatheColorProvider_produce_value_closure) }, })), - be_str_weak(PalettePatternAnimation) + be_str_weak(BreatheColorProvider) ); // compact class 'CrenelPositionAnimation' ktab size: 21, total: 27 (saved 48 bytes) static const bvalue be_ktab_class_CrenelPositionAnimation[21] = { @@ -15550,137 +15883,39 @@ be_local_class(CrenelPositionAnimation, be_str_weak(CrenelPositionAnimation) ); -extern const bclass be_class_PaletteWaveAnimation; - /******************************************************************** -** Solidified function: init +** Solidified function: create_closure_value ********************************************************************/ -be_local_closure(class_PaletteWaveAnimation_init, /* name */ +be_local_closure(create_closure_value, /* name */ be_nested_proto( 5, /* nstack */ 2, /* argc */ - 2, /* varg */ + 0, /* 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(init), - /* K1 */ be_nested_str_weak(name), - /* K2 */ be_nested_str_weak(palette_wave), + /* K0 */ be_nested_str_weak(animation), + /* K1 */ be_nested_str_weak(closure_value), + /* K2 */ be_nested_str_weak(closure), }), - be_str_weak(init), + be_str_weak(create_closure_value), &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C080500, // 0003 GETMET R2 R2 K0 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x90020302, // 0006 SETMBR R0 K1 K2 - 0x80000000, // 0007 RET 0 + ( &(const binstruction[ 6]) { /* code */ + 0xB80A0000, // 0000 GETNGBL R2 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x7C080400, // 0003 CALL R2 2 + 0x900A0401, // 0004 SETMBR R2 K2 R1 + 0x80040400, // 0005 RET 1 R2 }) ) ); /*******************************************************************/ -/******************************************************************** -** Solidified function: _update_value_buffer -********************************************************************/ -be_local_closure(class_PaletteWaveAnimation__update_value_buffer, /* 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[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(wave_period), - /* K1 */ be_nested_str_weak(wave_length), - /* K2 */ be_nested_str_weak(tasmota), - /* K3 */ be_nested_str_weak(scale_uint), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(sine_int), - /* K6 */ be_nested_str_weak(scale_int), - /* K7 */ be_nested_str_weak(value_buffer), - /* K8 */ be_const_int(1), - }), - be_str_weak(_update_value_buffer), - &be_const_str_solidified, - ( &(const binstruction[40]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x88100101, // 0001 GETMBR R4 R0 K1 - 0xB8160400, // 0002 GETNGBL R5 K2 - 0x8C140B03, // 0003 GETMET R5 R5 K3 - 0x101C0203, // 0004 MOD R7 R1 R3 - 0x58200004, // 0005 LDCONST R8 K4 - 0x5C240600, // 0006 MOVE R9 R3 - 0x58280004, // 0007 LDCONST R10 K4 - 0x5C2C0800, // 0008 MOVE R11 R4 - 0x7C140C00, // 0009 CALL R5 6 - 0x58180004, // 000A LDCONST R6 K4 - 0x141C0C02, // 000B LT R7 R6 R2 - 0x781E0019, // 000C JMPF R7 #0027 - 0x001C0C05, // 000D ADD R7 R6 R5 - 0x101C0E04, // 000E MOD R7 R7 R4 - 0xB8220400, // 000F GETNGBL R8 K2 - 0x8C201103, // 0010 GETMET R8 R8 K3 - 0x5C280E00, // 0011 MOVE R10 R7 - 0x582C0004, // 0012 LDCONST R11 K4 - 0x5C300800, // 0013 MOVE R12 R4 - 0x58340004, // 0014 LDCONST R13 K4 - 0x543A7FFE, // 0015 LDINT R14 32767 - 0x7C200C00, // 0016 CALL R8 6 - 0xB8260400, // 0017 GETNGBL R9 K2 - 0x8C241305, // 0018 GETMET R9 R9 K5 - 0x5C2C1000, // 0019 MOVE R11 R8 - 0x7C240400, // 001A CALL R9 2 - 0xB82A0400, // 001B GETNGBL R10 K2 - 0x8C281506, // 001C GETMET R10 R10 K6 - 0x5C301200, // 001D MOVE R12 R9 - 0x5435EFFF, // 001E LDINT R13 -4096 - 0x543A0FFF, // 001F LDINT R14 4096 - 0x583C0004, // 0020 LDCONST R15 K4 - 0x544200FE, // 0021 LDINT R16 255 - 0x7C280C00, // 0022 CALL R10 6 - 0x882C0107, // 0023 GETMBR R11 R0 K7 - 0x982C0C0A, // 0024 SETIDX R11 R6 R10 - 0x00180D08, // 0025 ADD R6 R6 K8 - 0x7001FFE3, // 0026 JMP #000B - 0x80000000, // 0027 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: PaletteWaveAnimation -********************************************************************/ -extern const bclass be_class_PalettePatternAnimation; -be_local_class(PaletteWaveAnimation, - 0, - &be_class_PalettePatternAnimation, - be_nested_map(3, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(PARAMS, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(2, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(wave_period, -1), be_const_bytes_instance(050001018813) }, - { be_const_key_weak(wave_length, -1), be_const_bytes_instance(050001000A) }, - })) ) } )) }, - { be_const_key_weak(init, -1), be_const_closure(class_PaletteWaveAnimation_init_closure) }, - { be_const_key_weak(_update_value_buffer, -1), be_const_closure(class_PaletteWaveAnimation__update_value_buffer_closure) }, - })), - be_str_weak(PaletteWaveAnimation) -); - /******************************************************************** ** Solidified function: animation_init ********************************************************************/ @@ -17288,343 +17523,23 @@ be_local_class(ParameterizedObject, })), be_str_weak(ParameterizedObject) ); -// compact class 'BreatheColorProvider' ktab size: 18, total: 29 (saved 88 bytes) -static const bvalue be_ktab_class_BreatheColorProvider[18] = { - /* K0 */ be_nested_str_weak(BreatheColorProvider_X28base_color_X3D0x_X2508x_X2C_X20min_brightness_X3D_X25s_X2C_X20max_brightness_X3D_X25s_X2C_X20duration_X3D_X25s_X2C_X20curve_factor_X3D_X25s_X29), - /* K1 */ be_nested_str_weak(base_color), - /* K2 */ be_nested_str_weak(min_brightness), - /* K3 */ be_nested_str_weak(max_brightness), - /* K4 */ be_nested_str_weak(duration), - /* K5 */ be_nested_str_weak(curve_factor), - /* K6 */ be_const_int(1), - /* K7 */ be_nested_str_weak(form), - /* K8 */ be_nested_str_weak(animation), - /* K9 */ be_nested_str_weak(COSINE), - /* K10 */ be_nested_str_weak(on_param_changed), - /* K11 */ be_nested_str_weak(produce_value), - /* K12 */ be_nested_str_weak(tasmota), - /* K13 */ be_nested_str_weak(scale_uint), - /* K14 */ be_const_int(0), - /* K15 */ be_nested_str_weak(init), - /* K16 */ be_nested_str_weak(min_value), - /* K17 */ be_nested_str_weak(max_value), +// compact class 'IterationNumberProvider' ktab size: 4, total: 6 (saved 16 bytes) +static const bvalue be_ktab_class_IterationNumberProvider[4] = { + /* K0 */ be_nested_str_weak(engine), + /* K1 */ be_nested_str_weak(get_current_iteration_number), + /* K2 */ be_nested_str_weak(IterationNumberProvider_X28current_X3A_X20_X25s_X29), + /* K3 */ be_nested_str_weak(IterationNumberProvider_X28not_in_sequence_X29), }; -extern const bclass be_class_BreatheColorProvider; - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_BreatheColorProvider_tostring, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_BreatheColorProvider, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x60040018, // 0000 GETGBL R1 G24 - 0x58080000, // 0001 LDCONST R2 K0 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x88100102, // 0003 GETMBR R4 R0 K2 - 0x88140103, // 0004 GETMBR R5 R0 K3 - 0x88180104, // 0005 GETMBR R6 R0 K4 - 0x881C0105, // 0006 GETMBR R7 R0 K5 - 0x7C040C00, // 0007 CALL R1 6 - 0x80040200, // 0008 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: on_param_changed -********************************************************************/ -be_local_closure(class_BreatheColorProvider_on_param_changed, /* name */ - be_nested_proto( - 7, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_BreatheColorProvider, /* shared constants */ - be_str_weak(on_param_changed), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x1C0C0305, // 0000 EQ R3 R1 K5 - 0x780E0008, // 0001 JMPF R3 #000B - 0x1C0C0506, // 0002 EQ R3 R2 K6 - 0x780E0003, // 0003 JMPF R3 #0008 - 0xB80E1000, // 0004 GETNGBL R3 K8 - 0x880C0709, // 0005 GETMBR R3 R3 K9 - 0x90020E03, // 0006 SETMBR R0 K7 R3 - 0x70020002, // 0007 JMP #000B - 0xB80E1000, // 0008 GETNGBL R3 K8 - 0x880C0709, // 0009 GETMBR R3 R3 K9 - 0x90020E03, // 000A SETMBR R0 K7 R3 - 0x600C0003, // 000B GETGBL R3 G3 - 0x5C100000, // 000C MOVE R4 R0 - 0x7C0C0200, // 000D CALL R3 1 - 0x8C0C070A, // 000E GETMET R3 R3 K10 - 0x5C140200, // 000F MOVE R5 R1 - 0x5C180400, // 0010 MOVE R6 R2 - 0x7C0C0600, // 0011 CALL R3 3 - 0x80000000, // 0012 RET 0 - }) - ) -); -/*******************************************************************/ - +extern const bclass be_class_IterationNumberProvider; /******************************************************************** ** Solidified function: produce_value ********************************************************************/ -be_local_closure(class_BreatheColorProvider_produce_value, /* name */ - be_nested_proto( - 19, /* 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_BreatheColorProvider, /* shared constants */ - be_str_weak(produce_value), - &be_const_str_solidified, - ( &(const binstruction[97]) { /* code */ - 0x600C0003, // 0000 GETGBL R3 G3 - 0x5C100000, // 0001 MOVE R4 R0 - 0x7C0C0200, // 0002 CALL R3 1 - 0x8C0C070B, // 0003 GETMET R3 R3 K11 - 0x5C140200, // 0004 MOVE R5 R1 - 0x5C180400, // 0005 MOVE R6 R2 - 0x7C0C0600, // 0006 CALL R3 3 - 0x88100105, // 0007 GETMBR R4 R0 K5 - 0x5C140600, // 0008 MOVE R5 R3 - 0x24180906, // 0009 GT R6 R4 K6 - 0x781A0019, // 000A JMPF R6 #0025 - 0xB81A1800, // 000B GETNGBL R6 K12 - 0x8C180D0D, // 000C GETMET R6 R6 K13 - 0x5C200600, // 000D MOVE R8 R3 - 0x5824000E, // 000E LDCONST R9 K14 - 0x542A00FE, // 000F LDINT R10 255 - 0x582C000E, // 0010 LDCONST R11 K14 - 0x54321FFF, // 0011 LDINT R12 8192 - 0x7C180C00, // 0012 CALL R6 6 - 0x5C1C0800, // 0013 MOVE R7 R4 - 0x24200F06, // 0014 GT R8 R7 K6 - 0x78220005, // 0015 JMPF R8 #001C - 0x08200C06, // 0016 MUL R8 R6 R6 - 0x54261FFF, // 0017 LDINT R9 8192 - 0x0C201009, // 0018 DIV R8 R8 R9 - 0x5C181000, // 0019 MOVE R6 R8 - 0x041C0F06, // 001A SUB R7 R7 K6 - 0x7001FFF7, // 001B JMP #0014 - 0xB8221800, // 001C GETNGBL R8 K12 - 0x8C20110D, // 001D GETMET R8 R8 K13 - 0x5C280C00, // 001E MOVE R10 R6 - 0x582C000E, // 001F LDCONST R11 K14 - 0x54321FFF, // 0020 LDINT R12 8192 - 0x5834000E, // 0021 LDCONST R13 K14 - 0x543A00FE, // 0022 LDINT R14 255 - 0x7C200C00, // 0023 CALL R8 6 - 0x5C141000, // 0024 MOVE R5 R8 - 0xB81A1800, // 0025 GETNGBL R6 K12 - 0x8C180D0D, // 0026 GETMET R6 R6 K13 - 0x5C200A00, // 0027 MOVE R8 R5 - 0x5824000E, // 0028 LDCONST R9 K14 - 0x542A00FE, // 0029 LDINT R10 255 - 0x882C0102, // 002A GETMBR R11 R0 K2 - 0x88300103, // 002B GETMBR R12 R0 K3 - 0x7C180C00, // 002C CALL R6 6 - 0x881C0101, // 002D GETMBR R7 R0 K1 - 0x54220017, // 002E LDINT R8 24 - 0x3C200E08, // 002F SHR R8 R7 R8 - 0x542600FE, // 0030 LDINT R9 255 - 0x2C201009, // 0031 AND R8 R8 R9 - 0x5426000F, // 0032 LDINT R9 16 - 0x3C240E09, // 0033 SHR R9 R7 R9 - 0x542A00FE, // 0034 LDINT R10 255 - 0x2C24120A, // 0035 AND R9 R9 R10 - 0x542A0007, // 0036 LDINT R10 8 - 0x3C280E0A, // 0037 SHR R10 R7 R10 - 0x542E00FE, // 0038 LDINT R11 255 - 0x2C28140B, // 0039 AND R10 R10 R11 - 0x542E00FE, // 003A LDINT R11 255 - 0x2C2C0E0B, // 003B AND R11 R7 R11 - 0xB8321800, // 003C GETNGBL R12 K12 - 0x8C30190D, // 003D GETMET R12 R12 K13 - 0x5C381200, // 003E MOVE R14 R9 - 0x583C000E, // 003F LDCONST R15 K14 - 0x544200FE, // 0040 LDINT R16 255 - 0x5844000E, // 0041 LDCONST R17 K14 - 0x5C480C00, // 0042 MOVE R18 R6 - 0x7C300C00, // 0043 CALL R12 6 - 0x5C241800, // 0044 MOVE R9 R12 - 0xB8321800, // 0045 GETNGBL R12 K12 - 0x8C30190D, // 0046 GETMET R12 R12 K13 - 0x5C381400, // 0047 MOVE R14 R10 - 0x583C000E, // 0048 LDCONST R15 K14 - 0x544200FE, // 0049 LDINT R16 255 - 0x5844000E, // 004A LDCONST R17 K14 - 0x5C480C00, // 004B MOVE R18 R6 - 0x7C300C00, // 004C CALL R12 6 - 0x5C281800, // 004D MOVE R10 R12 - 0xB8321800, // 004E GETNGBL R12 K12 - 0x8C30190D, // 004F GETMET R12 R12 K13 - 0x5C381600, // 0050 MOVE R14 R11 - 0x583C000E, // 0051 LDCONST R15 K14 - 0x544200FE, // 0052 LDINT R16 255 - 0x5844000E, // 0053 LDCONST R17 K14 - 0x5C480C00, // 0054 MOVE R18 R6 - 0x7C300C00, // 0055 CALL R12 6 - 0x5C2C1800, // 0056 MOVE R11 R12 - 0x54320017, // 0057 LDINT R12 24 - 0x3830100C, // 0058 SHL R12 R8 R12 - 0x5436000F, // 0059 LDINT R13 16 - 0x3834120D, // 005A SHL R13 R9 R13 - 0x3030180D, // 005B OR R12 R12 R13 - 0x54360007, // 005C LDINT R13 8 - 0x3834140D, // 005D SHL R13 R10 R13 - 0x3030180D, // 005E OR R12 R12 R13 - 0x3030180B, // 005F OR R12 R12 R11 - 0x80041800, // 0060 RET 1 R12 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_BreatheColorProvider_init, /* name */ +be_local_closure(class_IterationNumberProvider_produce_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_BreatheColorProvider, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C08050F, // 0003 GETMET R2 R2 K15 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0xB80A1000, // 0006 GETNGBL R2 K8 - 0x88080509, // 0007 GETMBR R2 R2 K9 - 0x90020E02, // 0008 SETMBR R0 K7 R2 - 0x9002210E, // 0009 SETMBR R0 K16 K14 - 0x540A00FE, // 000A LDINT R2 255 - 0x90022202, // 000B SETMBR R0 K17 R2 - 0x540A0BB7, // 000C LDINT R2 3000 - 0x90020802, // 000D SETMBR R0 K4 R2 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: BreatheColorProvider -********************************************************************/ -extern const bclass be_class_OscillatorValueProvider; -be_local_class(BreatheColorProvider, - 0, - &be_class_OscillatorValueProvider, - be_nested_map(5, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(tostring, 1), be_const_closure(class_BreatheColorProvider_tostring_closure) }, - { be_const_key_weak(init, -1), be_const_closure(class_BreatheColorProvider_init_closure) }, - { be_const_key_weak(on_param_changed, -1), be_const_closure(class_BreatheColorProvider_on_param_changed_closure) }, - { be_const_key_weak(PARAMS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(4, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(base_color, -1), be_const_bytes_instance(0400FF) }, - { be_const_key_weak(max_brightness, -1), be_const_bytes_instance(07000001FF0001FF00) }, - { be_const_key_weak(curve_factor, -1), be_const_bytes_instance(07000100050002) }, - { be_const_key_weak(min_brightness, -1), be_const_bytes_instance(07000001FF000000) }, - })) ) } )) }, - { be_const_key_weak(produce_value, -1), be_const_closure(class_BreatheColorProvider_produce_value_closure) }, - })), - be_str_weak(BreatheColorProvider) -); -// compact class 'TwinkleAnimation' ktab size: 43, total: 74 (saved 248 bytes) -static const bvalue be_ktab_class_TwinkleAnimation[43] = { - /* K0 */ be_nested_str_weak(on_param_changed), - /* K1 */ be_nested_str_weak(twinkle_speed), - /* K2 */ be_const_int(1), - /* K3 */ be_nested_str_weak(set_param), - /* K4 */ be_nested_str_weak(fade_speed), - /* K5 */ be_nested_str_weak(density), - /* K6 */ be_nested_str_weak(min_brightness), - /* K7 */ be_nested_str_weak(max_brightness), - /* K8 */ be_nested_str_weak(color), - /* K9 */ be_nested_str_weak(engine), - /* K10 */ be_nested_str_weak(strip_length), - /* K11 */ be_nested_str_weak(twinkle_states), - /* K12 */ be_nested_str_weak(current_colors), - /* K13 */ be_nested_str_weak(size), - /* K14 */ be_nested_str_weak(_initialize_arrays), - /* K15 */ be_const_int(0), - /* K16 */ be_nested_str_weak(get), - /* K17 */ be_nested_str_weak(tasmota), - /* K18 */ be_nested_str_weak(scale_uint), - /* K19 */ be_nested_str_weak(set), - /* K20 */ be_const_int(16777215), - /* K21 */ be_nested_str_weak(_random_range), - /* K22 */ be_nested_str_weak(get_param), - /* K23 */ be_nested_str_weak(animation), - /* K24 */ be_nested_str_weak(is_value_provider), - /* K25 */ be_nested_str_weak(0x_X2508x), - /* K26 */ be_nested_str_weak(TwinkleAnimation_X28color_X3D_X25s_X2C_X20density_X3D_X25s_X2C_X20twinkle_speed_X3D_X25s_X2C_X20priority_X3D_X25s_X2C_X20running_X3D_X25s_X29), - /* K27 */ be_nested_str_weak(priority), - /* K28 */ be_nested_str_weak(is_running), - /* K29 */ be_nested_str_weak(init), - /* K30 */ be_nested_str_weak(last_update), - /* K31 */ be_nested_str_weak(random_seed), - /* K32 */ be_nested_str_weak(time_ms), - /* K33 */ be_nested_str_weak(_fix_time_ms), - /* K34 */ be_nested_str_weak(width), - /* K35 */ be_nested_str_weak(set_pixel_color), - /* K36 */ be_nested_str_weak(update), - /* K37 */ be_nested_str_weak(_update_twinkle_simulation), - /* K38 */ be_nested_str_weak(resize), - /* K39 */ be_nested_str_weak(clear), - /* K40 */ be_const_int(1103515245), - /* K41 */ be_const_int(2147483647), - /* K42 */ be_nested_str_weak(_random), -}; - - -extern const bclass be_class_TwinkleAnimation; - -/******************************************************************** -** Solidified function: on_param_changed -********************************************************************/ -be_local_closure(class_TwinkleAnimation_on_param_changed, /* name */ - be_nested_proto( - 8, /* nstack */ 3, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -17632,177 +17547,14 @@ be_local_closure(class_TwinkleAnimation_on_param_changed, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_TwinkleAnimation, /* shared constants */ - be_str_weak(on_param_changed), + &be_ktab_class_IterationNumberProvider, /* shared constants */ + be_str_weak(produce_value), &be_const_str_solidified, - ( &(const binstruction[27]) { /* code */ - 0x600C0003, // 0000 GETGBL R3 G3 - 0x5C100000, // 0001 MOVE R4 R0 + ( &(const binstruction[ 4]) { /* code */ + 0x880C0100, // 0000 GETMBR R3 R0 K0 + 0x8C0C0701, // 0001 GETMET R3 R3 K1 0x7C0C0200, // 0002 CALL R3 1 - 0x8C0C0700, // 0003 GETMET R3 R3 K0 - 0x5C140200, // 0004 MOVE R5 R1 - 0x5C180400, // 0005 MOVE R6 R2 - 0x7C0C0600, // 0006 CALL R3 3 - 0x1C0C0301, // 0007 EQ R3 R1 K1 - 0x780E0010, // 0008 JMPF R3 #001A - 0x540E0031, // 0009 LDINT R3 50 - 0x280C0403, // 000A GE R3 R2 R3 - 0x780E000D, // 000B JMPF R3 #001A - 0x540E03E7, // 000C LDINT R3 1000 - 0x0C0C0602, // 000D DIV R3 R3 R2 - 0x14100702, // 000E LT R4 R3 K2 - 0x78120001, // 000F JMPF R4 #0012 - 0x580C0002, // 0010 LDCONST R3 K2 - 0x70020003, // 0011 JMP #0016 - 0x54120013, // 0012 LDINT R4 20 - 0x24100604, // 0013 GT R4 R3 R4 - 0x78120000, // 0014 JMPF R4 #0016 - 0x540E0013, // 0015 LDINT R3 20 - 0x8C100103, // 0016 GETMET R4 R0 K3 - 0x58180001, // 0017 LDCONST R6 K1 - 0x5C1C0600, // 0018 MOVE R7 R3 - 0x7C100600, // 0019 CALL R4 3 - 0x80000000, // 001A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _update_twinkle_simulation -********************************************************************/ -be_local_closure(class_TwinkleAnimation__update_twinkle_simulation, /* name */ - be_nested_proto( - 20, /* 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_TwinkleAnimation, /* shared constants */ - be_str_weak(_update_twinkle_simulation), - &be_const_str_solidified, - ( &(const binstruction[117]) { /* code */ - 0x88080104, // 0000 GETMBR R2 R0 K4 - 0x880C0105, // 0001 GETMBR R3 R0 K5 - 0x88100106, // 0002 GETMBR R4 R0 K6 - 0x88140107, // 0003 GETMBR R5 R0 K7 - 0x88180108, // 0004 GETMBR R6 R0 K8 - 0x881C0109, // 0005 GETMBR R7 R0 K9 - 0x881C0F0A, // 0006 GETMBR R7 R7 K10 - 0x6020000C, // 0007 GETGBL R8 G12 - 0x8824010B, // 0008 GETMBR R9 R0 K11 - 0x7C200200, // 0009 CALL R8 1 - 0x20201007, // 000A NE R8 R8 R7 - 0x74220006, // 000B JMPT R8 #0013 - 0x8820010C, // 000C GETMBR R8 R0 K12 - 0x8C20110D, // 000D GETMET R8 R8 K13 - 0x7C200200, // 000E CALL R8 1 - 0x54260003, // 000F LDINT R9 4 - 0x08240E09, // 0010 MUL R9 R7 R9 - 0x20201009, // 0011 NE R8 R8 R9 - 0x78220001, // 0012 JMPF R8 #0015 - 0x8C20010E, // 0013 GETMET R8 R0 K14 - 0x7C200200, // 0014 CALL R8 1 - 0x5820000F, // 0015 LDCONST R8 K15 - 0x14241007, // 0016 LT R9 R8 R7 - 0x7826002C, // 0017 JMPF R9 #0045 - 0x8824010C, // 0018 GETMBR R9 R0 K12 - 0x8C241310, // 0019 GETMET R9 R9 K16 - 0x542E0003, // 001A LDINT R11 4 - 0x082C100B, // 001B MUL R11 R8 R11 - 0x5431FFFB, // 001C LDINT R12 -4 - 0x7C240600, // 001D CALL R9 3 - 0x542A0017, // 001E LDINT R10 24 - 0x3C28120A, // 001F SHR R10 R9 R10 - 0x542E00FE, // 0020 LDINT R11 255 - 0x2C28140B, // 0021 AND R10 R10 R11 - 0x242C150F, // 0022 GT R11 R10 K15 - 0x782E001E, // 0023 JMPF R11 #0043 - 0xB82E2200, // 0024 GETNGBL R11 K17 - 0x8C2C1712, // 0025 GETMET R11 R11 K18 - 0x5C340400, // 0026 MOVE R13 R2 - 0x5838000F, // 0027 LDCONST R14 K15 - 0x543E00FE, // 0028 LDINT R15 255 - 0x58400002, // 0029 LDCONST R16 K2 - 0x54460013, // 002A LDINT R17 20 - 0x7C2C0C00, // 002B CALL R11 6 - 0x1830140B, // 002C LE R12 R10 R11 - 0x78320009, // 002D JMPF R12 #0038 - 0x8830010B, // 002E GETMBR R12 R0 K11 - 0x9830110F, // 002F SETIDX R12 R8 K15 - 0x8830010C, // 0030 GETMBR R12 R0 K12 - 0x8C301913, // 0031 GETMET R12 R12 K19 - 0x543A0003, // 0032 LDINT R14 4 - 0x0838100E, // 0033 MUL R14 R8 R14 - 0x583C000F, // 0034 LDCONST R15 K15 - 0x5441FFFB, // 0035 LDINT R16 -4 - 0x7C300800, // 0036 CALL R12 4 - 0x7002000A, // 0037 JMP #0043 - 0x0430140B, // 0038 SUB R12 R10 R11 - 0x2C341314, // 0039 AND R13 R9 K20 - 0x8838010C, // 003A GETMBR R14 R0 K12 - 0x8C381D13, // 003B GETMET R14 R14 K19 - 0x54420003, // 003C LDINT R16 4 - 0x08401010, // 003D MUL R16 R8 R16 - 0x54460017, // 003E LDINT R17 24 - 0x38441811, // 003F SHL R17 R12 R17 - 0x3044220D, // 0040 OR R17 R17 R13 - 0x5449FFFB, // 0041 LDINT R18 -4 - 0x7C380800, // 0042 CALL R14 4 - 0x00201102, // 0043 ADD R8 R8 K2 - 0x7001FFD0, // 0044 JMP #0016 - 0x5824000F, // 0045 LDCONST R9 K15 - 0x14281207, // 0046 LT R10 R9 R7 - 0x782A002B, // 0047 JMPF R10 #0074 - 0x8828010B, // 0048 GETMBR R10 R0 K11 - 0x94281409, // 0049 GETIDX R10 R10 R9 - 0x1C28150F, // 004A EQ R10 R10 K15 - 0x782A0025, // 004B JMPF R10 #0072 - 0x8C280115, // 004C GETMET R10 R0 K21 - 0x543200FE, // 004D LDINT R12 255 - 0x7C280400, // 004E CALL R10 2 - 0x14281403, // 004F LT R10 R10 R3 - 0x782A0020, // 0050 JMPF R10 #0072 - 0x8C280115, // 0051 GETMET R10 R0 K21 - 0x04300A04, // 0052 SUB R12 R5 R4 - 0x00301902, // 0053 ADD R12 R12 K2 - 0x7C280400, // 0054 CALL R10 2 - 0x0028080A, // 0055 ADD R10 R4 R10 - 0x5C2C0C00, // 0056 MOVE R11 R6 - 0x5432000F, // 0057 LDINT R12 16 - 0x3C30160C, // 0058 SHR R12 R11 R12 - 0x543600FE, // 0059 LDINT R13 255 - 0x2C30180D, // 005A AND R12 R12 R13 - 0x54360007, // 005B LDINT R13 8 - 0x3C34160D, // 005C SHR R13 R11 R13 - 0x543A00FE, // 005D LDINT R14 255 - 0x2C341A0E, // 005E AND R13 R13 R14 - 0x543A00FE, // 005F LDINT R14 255 - 0x2C38160E, // 0060 AND R14 R11 R14 - 0x883C010B, // 0061 GETMBR R15 R0 K11 - 0x983C1302, // 0062 SETIDX R15 R9 K2 - 0x883C010C, // 0063 GETMBR R15 R0 K12 - 0x8C3C1F13, // 0064 GETMET R15 R15 K19 - 0x54460003, // 0065 LDINT R17 4 - 0x08441211, // 0066 MUL R17 R9 R17 - 0x544A0017, // 0067 LDINT R18 24 - 0x38481412, // 0068 SHL R18 R10 R18 - 0x544E000F, // 0069 LDINT R19 16 - 0x384C1813, // 006A SHL R19 R12 R19 - 0x30482413, // 006B OR R18 R18 R19 - 0x544E0007, // 006C LDINT R19 8 - 0x384C1A13, // 006D SHL R19 R13 R19 - 0x30482413, // 006E OR R18 R18 R19 - 0x3048240E, // 006F OR R18 R18 R14 - 0x544DFFFB, // 0070 LDINT R19 -4 - 0x7C3C0800, // 0071 CALL R15 4 - 0x00241302, // 0072 ADD R9 R9 K2 - 0x7001FFD1, // 0073 JMP #0046 - 0x80000000, // 0074 RET 0 + 0x80040600, // 0003 RET 1 R3 }) ) ); @@ -17812,230 +17564,9 @@ be_local_closure(class_TwinkleAnimation__update_twinkle_simulation, /* name */ /******************************************************************** ** Solidified function: tostring ********************************************************************/ -be_local_closure(class_TwinkleAnimation_tostring, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_TwinkleAnimation, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* code */ - 0x4C040000, // 0000 LDNIL R1 - 0x8C080116, // 0001 GETMET R2 R0 K22 - 0x58100008, // 0002 LDCONST R4 K8 - 0x7C080400, // 0003 CALL R2 2 - 0xB80E2E00, // 0004 GETNGBL R3 K23 - 0x8C0C0718, // 0005 GETMET R3 R3 K24 - 0x5C140400, // 0006 MOVE R5 R2 - 0x7C0C0400, // 0007 CALL R3 2 - 0x780E0004, // 0008 JMPF R3 #000E - 0x600C0008, // 0009 GETGBL R3 G8 - 0x5C100400, // 000A MOVE R4 R2 - 0x7C0C0200, // 000B CALL R3 1 - 0x5C040600, // 000C MOVE R1 R3 - 0x70020004, // 000D JMP #0013 - 0x600C0018, // 000E GETGBL R3 G24 - 0x58100019, // 000F LDCONST R4 K25 - 0x88140108, // 0010 GETMBR R5 R0 K8 - 0x7C0C0400, // 0011 CALL R3 2 - 0x5C040600, // 0012 MOVE R1 R3 - 0x600C0018, // 0013 GETGBL R3 G24 - 0x5810001A, // 0014 LDCONST R4 K26 - 0x5C140200, // 0015 MOVE R5 R1 - 0x88180105, // 0016 GETMBR R6 R0 K5 - 0x881C0101, // 0017 GETMBR R7 R0 K1 - 0x8820011B, // 0018 GETMBR R8 R0 K27 - 0x8824011C, // 0019 GETMBR R9 R0 K28 - 0x7C0C0C00, // 001A CALL R3 6 - 0x80040600, // 001B RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_TwinkleAnimation_init, /* name */ +be_local_closure(class_IterationNumberProvider_tostring, /* 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_TwinkleAnimation, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C08051D, // 0003 GETMET R2 R2 K29 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x60080012, // 0006 GETGBL R2 G18 - 0x7C080000, // 0007 CALL R2 0 - 0x90021602, // 0008 SETMBR R0 K11 R2 - 0x60080015, // 0009 GETGBL R2 G21 - 0x7C080000, // 000A CALL R2 0 - 0x90021802, // 000B SETMBR R0 K12 R2 - 0x90023D0F, // 000C SETMBR R0 K30 K15 - 0x88080109, // 000D GETMBR R2 R0 K9 - 0x88080520, // 000E GETMBR R2 R2 K32 - 0x540EFFFF, // 000F LDINT R3 65536 - 0x10080403, // 0010 MOD R2 R2 R3 - 0x90023E02, // 0011 SETMBR R0 K31 R2 - 0x8C08010E, // 0012 GETMET R2 R0 K14 - 0x7C080200, // 0013 CALL R2 1 - 0x80000000, // 0014 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: render -********************************************************************/ -be_local_closure(class_TwinkleAnimation_render, /* 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_TwinkleAnimation, /* shared constants */ - be_str_weak(render), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0x880C011C, // 0000 GETMBR R3 R0 K28 - 0x780E0002, // 0001 JMPF R3 #0005 - 0x4C0C0000, // 0002 LDNIL R3 - 0x1C0C0203, // 0003 EQ R3 R1 R3 - 0x780E0001, // 0004 JMPF R3 #0007 - 0x500C0000, // 0005 LDBOOL R3 0 0 - 0x80040600, // 0006 RET 1 R3 - 0x8C0C0121, // 0007 GETMET R3 R0 K33 - 0x5C140400, // 0008 MOVE R5 R2 - 0x7C0C0400, // 0009 CALL R3 2 - 0x5C080600, // 000A MOVE R2 R3 - 0x880C0109, // 000B GETMBR R3 R0 K9 - 0x880C070A, // 000C GETMBR R3 R3 K10 - 0x6010000C, // 000D GETGBL R4 G12 - 0x8814010B, // 000E GETMBR R5 R0 K11 - 0x7C100200, // 000F CALL R4 1 - 0x20100803, // 0010 NE R4 R4 R3 - 0x74120006, // 0011 JMPT R4 #0019 - 0x8810010C, // 0012 GETMBR R4 R0 K12 - 0x8C10090D, // 0013 GETMET R4 R4 K13 - 0x7C100200, // 0014 CALL R4 1 - 0x54160003, // 0015 LDINT R5 4 - 0x08140605, // 0016 MUL R5 R3 R5 - 0x20100805, // 0017 NE R4 R4 R5 - 0x78120001, // 0018 JMPF R4 #001B - 0x8C10010E, // 0019 GETMET R4 R0 K14 - 0x7C100200, // 001A CALL R4 1 - 0x50100000, // 001B LDBOOL R4 0 0 - 0x5814000F, // 001C LDCONST R5 K15 - 0x14180A03, // 001D LT R6 R5 R3 - 0x781A0015, // 001E JMPF R6 #0035 - 0x88180322, // 001F GETMBR R6 R1 K34 - 0x14180A06, // 0020 LT R6 R5 R6 - 0x781A0010, // 0021 JMPF R6 #0033 - 0x8818010C, // 0022 GETMBR R6 R0 K12 - 0x8C180D10, // 0023 GETMET R6 R6 K16 - 0x54220003, // 0024 LDINT R8 4 - 0x08200A08, // 0025 MUL R8 R5 R8 - 0x5425FFFB, // 0026 LDINT R9 -4 - 0x7C180600, // 0027 CALL R6 3 - 0x541E0017, // 0028 LDINT R7 24 - 0x3C1C0C07, // 0029 SHR R7 R6 R7 - 0x542200FE, // 002A LDINT R8 255 - 0x2C1C0E08, // 002B AND R7 R7 R8 - 0x241C0F0F, // 002C GT R7 R7 K15 - 0x781E0004, // 002D JMPF R7 #0033 - 0x8C1C0323, // 002E GETMET R7 R1 K35 - 0x5C240A00, // 002F MOVE R9 R5 - 0x5C280C00, // 0030 MOVE R10 R6 - 0x7C1C0600, // 0031 CALL R7 3 - 0x50100200, // 0032 LDBOOL R4 1 0 - 0x00140B02, // 0033 ADD R5 R5 K2 - 0x7001FFE7, // 0034 JMP #001D - 0x80040800, // 0035 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: update -********************************************************************/ -be_local_closure(class_TwinkleAnimation_update, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_TwinkleAnimation, /* shared constants */ - be_str_weak(update), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x60080003, // 0000 GETGBL R2 G3 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x8C080524, // 0003 GETMET R2 R2 K36 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x740A0001, // 0006 JMPT R2 #0009 - 0x50080000, // 0007 LDBOOL R2 0 0 - 0x80040400, // 0008 RET 1 R2 - 0x8C080121, // 0009 GETMET R2 R0 K33 - 0x5C100200, // 000A MOVE R4 R1 - 0x7C080400, // 000B CALL R2 2 - 0x5C040400, // 000C MOVE R1 R2 - 0x88080101, // 000D GETMBR R2 R0 K1 - 0x540E03E7, // 000E LDINT R3 1000 - 0x0C0C0602, // 000F DIV R3 R3 R2 - 0x8810011E, // 0010 GETMBR R4 R0 K30 - 0x04100204, // 0011 SUB R4 R1 R4 - 0x28100803, // 0012 GE R4 R4 R3 - 0x78120003, // 0013 JMPF R4 #0018 - 0x90023C01, // 0014 SETMBR R0 K30 R1 - 0x8C100125, // 0015 GETMET R4 R0 K37 - 0x5C180200, // 0016 MOVE R6 R1 - 0x7C100400, // 0017 CALL R4 2 - 0x50100200, // 0018 LDBOOL R4 1 0 - 0x80040800, // 0019 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _initialize_arrays -********************************************************************/ -be_local_closure(class_TwinkleAnimation__initialize_arrays, /* name */ - be_nested_proto( - 8, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -18043,39 +17574,24 @@ be_local_closure(class_TwinkleAnimation__initialize_arrays, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_TwinkleAnimation, /* shared constants */ - be_str_weak(_initialize_arrays), + &be_ktab_class_IterationNumberProvider, /* shared constants */ + be_str_weak(tostring), &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x8804030A, // 0001 GETMBR R1 R1 K10 - 0x8808010B, // 0002 GETMBR R2 R0 K11 - 0x8C080526, // 0003 GETMET R2 R2 K38 - 0x5C100200, // 0004 MOVE R4 R1 - 0x7C080400, // 0005 CALL R2 2 - 0x8808010C, // 0006 GETMBR R2 R0 K12 - 0x8C080527, // 0007 GETMET R2 R2 K39 - 0x7C080200, // 0008 CALL R2 1 - 0x8808010C, // 0009 GETMBR R2 R0 K12 - 0x8C080526, // 000A GETMET R2 R2 K38 - 0x54120003, // 000B LDINT R4 4 - 0x08100204, // 000C MUL R4 R1 R4 - 0x7C080400, // 000D CALL R2 2 - 0x5808000F, // 000E LDCONST R2 K15 - 0x140C0401, // 000F LT R3 R2 R1 - 0x780E000A, // 0010 JMPF R3 #001C - 0x880C010B, // 0011 GETMBR R3 R0 K11 - 0x980C050F, // 0012 SETIDX R3 R2 K15 - 0x880C010C, // 0013 GETMBR R3 R0 K12 - 0x8C0C0713, // 0014 GETMET R3 R3 K19 - 0x54160003, // 0015 LDINT R5 4 - 0x08140405, // 0016 MUL R5 R2 R5 - 0x5818000F, // 0017 LDCONST R6 K15 - 0x541DFFFB, // 0018 LDINT R7 -4 - 0x7C0C0800, // 0019 CALL R3 4 - 0x00080502, // 001A ADD R2 R2 K2 - 0x7001FFF2, // 001B JMP #000F - 0x80000000, // 001C RET 0 + ( &(const binstruction[14]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x4C080000, // 0003 LDNIL R2 + 0x20080202, // 0004 NE R2 R1 R2 + 0x780A0005, // 0005 JMPF R2 #000C + 0x60080018, // 0006 GETGBL R2 G24 + 0x580C0002, // 0007 LDCONST R3 K2 + 0x5C100200, // 0008 MOVE R4 R1 + 0x7C080400, // 0009 CALL R2 2 + 0x80040400, // 000A RET 1 R2 + 0x70020000, // 000B JMP #000D + 0x80060600, // 000C RET 1 K3 + 0x80000000, // 000D RET 0 }) ) ); @@ -18083,100 +17599,18 @@ be_local_closure(class_TwinkleAnimation__initialize_arrays, /* name */ /******************************************************************** -** Solidified function: _random +** Solidified class: IterationNumberProvider ********************************************************************/ -be_local_closure(class_TwinkleAnimation__random, /* 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_TwinkleAnimation, /* shared constants */ - be_str_weak(_random), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x8804011F, // 0000 GETMBR R1 R0 K31 - 0x08040328, // 0001 MUL R1 R1 K40 - 0x540A3038, // 0002 LDINT R2 12345 - 0x00040202, // 0003 ADD R1 R1 R2 - 0x2C040329, // 0004 AND R1 R1 K41 - 0x90023E01, // 0005 SETMBR R0 K31 R1 - 0x8804011F, // 0006 GETMBR R1 R0 K31 - 0x80040200, // 0007 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _random_range -********************************************************************/ -be_local_closure(class_TwinkleAnimation__random_range, /* 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_TwinkleAnimation, /* shared constants */ - be_str_weak(_random_range), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x1808030F, // 0000 LE R2 R1 K15 - 0x780A0000, // 0001 JMPF R2 #0003 - 0x80061E00, // 0002 RET 1 K15 - 0x8C08012A, // 0003 GETMET R2 R0 K42 - 0x7C080200, // 0004 CALL R2 1 - 0x10080401, // 0005 MOD R2 R2 R1 - 0x80040400, // 0006 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: TwinkleAnimation -********************************************************************/ -extern const bclass be_class_Animation; -be_local_class(TwinkleAnimation, - 4, - &be_class_Animation, - be_nested_map(14, +extern const bclass be_class_ValueProvider; +be_local_class(IterationNumberProvider, + 0, + &be_class_ValueProvider, + be_nested_map(2, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_random_range, -1), be_const_closure(class_TwinkleAnimation__random_range_closure) }, - { be_const_key_weak(twinkle_states, -1), be_const_var(0) }, - { be_const_key_weak(init, -1), be_const_closure(class_TwinkleAnimation_init_closure) }, - { be_const_key_weak(tostring, -1), be_const_closure(class_TwinkleAnimation_tostring_closure) }, - { be_const_key_weak(random_seed, -1), be_const_var(3) }, - { be_const_key_weak(PARAMS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { - be_const_map( * be_nested_map(6, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(twinkle_speed, 1), be_const_bytes_instance(0700010188130006) }, - { be_const_key_weak(min_brightness, -1), be_const_bytes_instance(07000001FF000020) }, - { be_const_key_weak(density, -1), be_const_bytes_instance(07000001FF00018000) }, - { be_const_key_weak(max_brightness, 2), be_const_bytes_instance(07000001FF0001FF00) }, - { be_const_key_weak(color, -1), be_const_bytes_instance(0400FF) }, - { be_const_key_weak(fade_speed, 0), be_const_bytes_instance(07000001FF0001B400) }, - })) ) } )) }, - { be_const_key_weak(_random, 9), be_const_closure(class_TwinkleAnimation__random_closure) }, - { be_const_key_weak(last_update, -1), be_const_var(2) }, - { be_const_key_weak(update, -1), be_const_closure(class_TwinkleAnimation_update_closure) }, - { be_const_key_weak(_initialize_arrays, 10), be_const_closure(class_TwinkleAnimation__initialize_arrays_closure) }, - { be_const_key_weak(render, 2), be_const_closure(class_TwinkleAnimation_render_closure) }, - { be_const_key_weak(current_colors, -1), be_const_var(1) }, - { be_const_key_weak(_update_twinkle_simulation, 1), be_const_closure(class_TwinkleAnimation__update_twinkle_simulation_closure) }, - { be_const_key_weak(on_param_changed, 0), be_const_closure(class_TwinkleAnimation_on_param_changed_closure) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_IterationNumberProvider_tostring_closure) }, + { be_const_key_weak(produce_value, 0), be_const_closure(class_IterationNumberProvider_produce_value_closure) }, })), - be_str_weak(TwinkleAnimation) + be_str_weak(IterationNumberProvider) ); /******************************************************************** @@ -18899,6 +18333,340 @@ be_local_class(GradientAnimation, })), be_str_weak(GradientAnimation) ); +extern const bclass be_class_AnimationMath; +// compact class 'AnimationMath' ktab size: 13, total: 31 (saved 144 bytes) +static const bvalue be_ktab_class_AnimationMath[13] = { + /* K0 */ be_const_class(be_class_AnimationMath), + /* K1 */ be_nested_str_weak(math), + /* K2 */ be_nested_str_weak(int), + /* K3 */ be_const_int(0), + /* K4 */ be_const_real_hex(0x437F0000), + /* K5 */ be_nested_str_weak(sqrt), + /* K6 */ be_nested_str_weak(max), + /* K7 */ be_nested_str_weak(round), + /* K8 */ be_nested_str_weak(abs), + /* K9 */ be_nested_str_weak(tasmota), + /* K10 */ be_nested_str_weak(scale_int), + /* K11 */ be_nested_str_weak(sine_int), + /* K12 */ be_nested_str_weak(min), +}; + + +extern const bclass be_class_AnimationMath; + +/******************************************************************** +** Solidified function: sqrt +********************************************************************/ +be_local_closure(class_AnimationMath_sqrt, /* name */ + be_nested_proto( + 8, /* nstack */ + 1, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(sqrt), + &be_const_str_solidified, + ( &(const binstruction[27]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xA40A0200, // 0001 IMPORT R2 K1 + 0x600C0004, // 0002 GETGBL R3 G4 + 0x5C100000, // 0003 MOVE R4 R0 + 0x7C0C0200, // 0004 CALL R3 1 + 0x1C0C0702, // 0005 EQ R3 R3 K2 + 0x780E000E, // 0006 JMPF R3 #0016 + 0x280C0103, // 0007 GE R3 R0 K3 + 0x780E000C, // 0008 JMPF R3 #0016 + 0x540E00FE, // 0009 LDINT R3 255 + 0x180C0003, // 000A LE R3 R0 R3 + 0x780E0009, // 000B JMPF R3 #0016 + 0x0C0C0104, // 000C DIV R3 R0 K4 + 0x60100009, // 000D GETGBL R4 G9 + 0x8C140505, // 000E GETMET R5 R2 K5 + 0x5C1C0600, // 000F MOVE R7 R3 + 0x7C140400, // 0010 CALL R5 2 + 0x541A00FE, // 0011 LDINT R6 255 + 0x08140A06, // 0012 MUL R5 R5 R6 + 0x7C100200, // 0013 CALL R4 1 + 0x80040800, // 0014 RET 1 R4 + 0x70020003, // 0015 JMP #001A + 0x8C0C0505, // 0016 GETMET R3 R2 K5 + 0x5C140000, // 0017 MOVE R5 R0 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80040600, // 0019 RET 1 R3 + 0x80000000, // 001A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: max +********************************************************************/ +be_local_closure(class_AnimationMath_max, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 13, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(max), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xA40A0200, // 0001 IMPORT R2 K1 + 0x600C0016, // 0002 GETGBL R3 G22 + 0x88100506, // 0003 GETMBR R4 R2 K6 + 0x5C140000, // 0004 MOVE R5 R0 + 0x7C0C0400, // 0005 CALL R3 2 + 0x80040600, // 0006 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: round +********************************************************************/ +be_local_closure(class_AnimationMath_round, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(round), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xA40A0200, // 0001 IMPORT R2 K1 + 0x600C0009, // 0002 GETGBL R3 G9 + 0x8C100507, // 0003 GETMET R4 R2 K7 + 0x5C180000, // 0004 MOVE R6 R0 + 0x7C100400, // 0005 CALL R4 2 + 0x7C0C0200, // 0006 CALL R3 1 + 0x80040600, // 0007 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: abs +********************************************************************/ +be_local_closure(class_AnimationMath_abs, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(abs), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xA40A0200, // 0001 IMPORT R2 K1 + 0x8C0C0508, // 0002 GETMET R3 R2 K8 + 0x5C140000, // 0003 MOVE R5 R0 + 0x7C0C0400, // 0004 CALL R3 2 + 0x80040600, // 0005 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: cos +********************************************************************/ +be_local_closure(class_AnimationMath_cos, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(cos), + &be_const_str_solidified, + ( &(const binstruction[23]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xB80A1200, // 0001 GETNGBL R2 K9 + 0x8C08050A, // 0002 GETMET R2 R2 K10 + 0x5C100000, // 0003 MOVE R4 R0 + 0x58140003, // 0004 LDCONST R5 K3 + 0x541A00FE, // 0005 LDINT R6 255 + 0x581C0003, // 0006 LDCONST R7 K3 + 0x54227FFE, // 0007 LDINT R8 32767 + 0x7C080C00, // 0008 CALL R2 6 + 0xB80E1200, // 0009 GETNGBL R3 K9 + 0x8C0C070B, // 000A GETMET R3 R3 K11 + 0x54161FFF, // 000B LDINT R5 8192 + 0x04140405, // 000C SUB R5 R2 R5 + 0x7C0C0400, // 000D CALL R3 2 + 0xB8121200, // 000E GETNGBL R4 K9 + 0x8C10090A, // 000F GETMET R4 R4 K10 + 0x5C180600, // 0010 MOVE R6 R3 + 0x541DEFFF, // 0011 LDINT R7 -4096 + 0x54220FFF, // 0012 LDINT R8 4096 + 0x5425FF00, // 0013 LDINT R9 -255 + 0x542A00FE, // 0014 LDINT R10 255 + 0x7C100C00, // 0015 CALL R4 6 + 0x80040800, // 0016 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: sin +********************************************************************/ +be_local_closure(class_AnimationMath_sin, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(sin), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xB80A1200, // 0001 GETNGBL R2 K9 + 0x8C08050A, // 0002 GETMET R2 R2 K10 + 0x5C100000, // 0003 MOVE R4 R0 + 0x58140003, // 0004 LDCONST R5 K3 + 0x541A00FE, // 0005 LDINT R6 255 + 0x581C0003, // 0006 LDCONST R7 K3 + 0x54227FFE, // 0007 LDINT R8 32767 + 0x7C080C00, // 0008 CALL R2 6 + 0xB80E1200, // 0009 GETNGBL R3 K9 + 0x8C0C070B, // 000A GETMET R3 R3 K11 + 0x5C140400, // 000B MOVE R5 R2 + 0x7C0C0400, // 000C CALL R3 2 + 0xB8121200, // 000D GETNGBL R4 K9 + 0x8C10090A, // 000E GETMET R4 R4 K10 + 0x5C180600, // 000F MOVE R6 R3 + 0x541DEFFF, // 0010 LDINT R7 -4096 + 0x54220FFF, // 0011 LDINT R8 4096 + 0x5425FF00, // 0012 LDINT R9 -255 + 0x542A00FE, // 0013 LDINT R10 255 + 0x7C100C00, // 0014 CALL R4 6 + 0x80040800, // 0015 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scale +********************************************************************/ +be_local_closure(class_AnimationMath_scale, /* name */ + be_nested_proto( + 13, /* nstack */ + 5, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(scale), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x58140000, // 0000 LDCONST R5 K0 + 0xB81A1200, // 0001 GETNGBL R6 K9 + 0x8C180D0A, // 0002 GETMET R6 R6 K10 + 0x5C200000, // 0003 MOVE R8 R0 + 0x5C240200, // 0004 MOVE R9 R1 + 0x5C280400, // 0005 MOVE R10 R2 + 0x5C2C0600, // 0006 MOVE R11 R3 + 0x5C300800, // 0007 MOVE R12 R4 + 0x7C180C00, // 0008 CALL R6 6 + 0x80040C00, // 0009 RET 1 R6 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: min +********************************************************************/ +be_local_closure(class_AnimationMath_min, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 13, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationMath, /* shared constants */ + be_str_weak(min), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0xA40A0200, // 0001 IMPORT R2 K1 + 0x600C0016, // 0002 GETGBL R3 G22 + 0x8810050C, // 0003 GETMBR R4 R2 K12 + 0x5C140000, // 0004 MOVE R5 R0 + 0x7C0C0400, // 0005 CALL R3 2 + 0x80040600, // 0006 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: AnimationMath +********************************************************************/ +be_local_class(AnimationMath, + 0, + NULL, + be_nested_map(8, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(min, -1), be_const_static_closure(class_AnimationMath_min_closure) }, + { be_const_key_weak(max, 2), be_const_static_closure(class_AnimationMath_max_closure) }, + { be_const_key_weak(scale, -1), be_const_static_closure(class_AnimationMath_scale_closure) }, + { be_const_key_weak(round, 6), be_const_static_closure(class_AnimationMath_round_closure) }, + { be_const_key_weak(cos, -1), be_const_static_closure(class_AnimationMath_cos_closure) }, + { be_const_key_weak(sin, -1), be_const_static_closure(class_AnimationMath_sin_closure) }, + { be_const_key_weak(abs, -1), be_const_static_closure(class_AnimationMath_abs_closure) }, + { be_const_key_weak(sqrt, 0), be_const_static_closure(class_AnimationMath_sqrt_closure) }, + })), + be_str_weak(AnimationMath) +); /******************************************************************** ** Solidified function: pulsating_color_provider @@ -19244,109 +19012,107 @@ be_local_class(ValueProvider, ********************************************************************/ be_local_module(animation, "animation", - be_nested_map(101, + be_nested_map(99, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(static_color, -1), be_const_class(be_class_StaticColorProvider) }, - { be_const_key_weak(breathe_color, -1), be_const_class(be_class_BreatheColorProvider) }, - { be_const_key_weak(wave_custom, -1), be_const_closure(wave_custom_closure) }, - { be_const_key_weak(BOUNCE, 91), be_const_int(9) }, - { be_const_key_weak(gradient_two_color_linear, -1), be_const_closure(gradient_two_color_linear_closure) }, - { be_const_key_weak(SAWTOOTH, -1), be_const_int(1) }, - { be_const_key_weak(color_provider, -1), be_const_class(be_class_ColorProvider) }, - { be_const_key_weak(oscillator_value, 6), be_const_class(be_class_OscillatorValueProvider) }, - { be_const_key_weak(triangle, 28), be_const_closure(triangle_closure) }, - { be_const_key_weak(create_closure_value, 51), be_const_closure(create_closure_value_closure) }, - { be_const_key_weak(fire_animation, 41), be_const_class(be_class_FireAnimation) }, - { be_const_key_weak(EventManager, 23), be_const_class(be_class_EventManager) }, - { be_const_key_weak(pulsating_color, -1), be_const_closure(pulsating_color_provider_closure) }, - { be_const_key_weak(clear_all_event_handlers, 68), be_const_closure(clear_all_event_handlers_closure) }, - { be_const_key_weak(trigger_event, -1), be_const_closure(trigger_event_closure) }, - { be_const_key_weak(wave_animation, -1), be_const_class(be_class_WaveAnimation) }, - { be_const_key_weak(PALETTE_RGB, 64), be_const_bytes_instance(00FF00008000FF00FF0000FF) }, - { be_const_key_weak(frame_buffer, 37), be_const_class(be_class_FrameBuffer) }, - { be_const_key_weak(gradient_animation, 49), be_const_class(be_class_GradientAnimation) }, - { be_const_key_weak(get_user_function, -1), be_const_closure(get_user_function_closure) }, - { be_const_key_weak(event_handler, 35), be_const_class(be_class_EventHandler) }, - { be_const_key_weak(PALETTE_RAINBOW, -1), be_const_bytes_instance(00FF000024FFA50049FFFF006E00FF00920000FFB74B0082DBEE82EEFFFF0000) }, - { be_const_key_weak(beacon_animation, 5), be_const_class(be_class_BeaconAnimation) }, - { be_const_key_weak(ELASTIC, -1), be_const_int(8) }, - { be_const_key_weak(twinkle_animation, 2), be_const_class(be_class_TwinkleAnimation) }, - { be_const_key_weak(PALETTE_FIRE, -1), be_const_bytes_instance(000000004080000080FF0000C0FF8000FFFFFF00) }, - { be_const_key_weak(init, -1), be_const_closure(animation_init_closure) }, - { be_const_key_weak(palette_gradient_animation, -1), be_const_class(be_class_PaletteGradientAnimation) }, - { be_const_key_weak(parameterized_object, -1), be_const_class(be_class_ParameterizedObject) }, - { be_const_key_weak(gradient_rainbow_linear, 58), be_const_closure(gradient_rainbow_linear_closure) }, + { be_const_key_weak(rich_palette, 83), be_const_class(be_class_RichPaletteColorProvider) }, { be_const_key_weak(pulsating_animation, -1), be_const_closure(pulsating_animation_closure) }, - { be_const_key_weak(palette_wave_animation, 57), be_const_class(be_class_PaletteWaveAnimation) }, - { be_const_key_weak(get_event_handlers, -1), be_const_closure(get_event_handlers_closure) }, - { be_const_key_weak(crenel_position_animation, 46), be_const_class(be_class_CrenelPositionAnimation) }, - { be_const_key_weak(closure_value, -1), be_const_class(be_class_ClosureValueProvider) }, - { be_const_key_weak(palette_pattern_animation, -1), be_const_class(be_class_PalettePatternAnimation) }, - { be_const_key_weak(get_registered_events, -1), be_const_closure(get_registered_events_closure) }, - { be_const_key_weak(solid, -1), be_const_closure(solid_closure) }, - { be_const_key_weak(smooth, 18), be_const_closure(smooth_closure) }, - { be_const_key_weak(set_event_active, -1), be_const_closure(set_event_active_closure) }, - { be_const_key_weak(rich_palette_rainbow, -1), be_const_closure(rich_palette_rainbow_closure) }, - { be_const_key_weak(strip_length, 42), be_const_class(be_class_StripLengthProvider) }, - { be_const_key_weak(color_cycle, 60), be_const_class(be_class_ColorCycleColorProvider) }, - { be_const_key_weak(animation, -1), be_const_class(be_class_Animation) }, - { be_const_key_weak(sine_osc, 24), be_const_closure(sine_osc_closure) }, - { be_const_key_weak(value_provider, -1), be_const_class(be_class_ValueProvider) }, - { be_const_key_weak(ramp, -1), be_const_closure(ramp_closure) }, - { be_const_key_weak(comet_animation, 67), be_const_class(be_class_CometAnimation) }, - { be_const_key_weak(cosine_osc, 50), be_const_closure(cosine_osc_closure) }, - { be_const_key_weak(twinkle_rainbow, -1), be_const_closure(twinkle_rainbow_closure) }, - { be_const_key_weak(palette_meter_animation, -1), be_const_class(be_class_PaletteMeterAnimation) }, - { be_const_key_weak(static_value, -1), be_const_class(be_class_StaticValueProvider) }, - { be_const_key_weak(rich_palette_animation, -1), be_const_class(be_class_RichPaletteAnimation) }, - { be_const_key_weak(PALETTE_SUNSET_TICKS, -1), be_const_bytes_instance(28FF450028FF8C0028FFD70028FF69B4288000802819197000000080) }, - { be_const_key_weak(EASE_IN, -1), be_const_int(6) }, - { be_const_key_weak(PALETTE_OCEAN, -1), be_const_bytes_instance(00000080400000FF8000FFFFC000FF80FF008000) }, - { be_const_key_weak(elastic, -1), be_const_closure(elastic_closure) }, - { be_const_key_weak(linear, -1), be_const_closure(linear_closure) }, - { be_const_key_weak(resolve, 21), be_const_closure(animation_resolve_closure) }, - { be_const_key_weak(_math, -1), be_const_class(be_class_AnimationMath) }, - { be_const_key_weak(VERSION, -1), be_const_int(65536) }, - { be_const_key_weak(noise_fractal, -1), be_const_closure(noise_fractal_closure) }, - { be_const_key_weak(version_string, 89), be_const_closure(animation_version_string_closure) }, { be_const_key_weak(register_user_function, -1), be_const_closure(register_user_function_closure) }, - { be_const_key_weak(register_event_handler, -1), be_const_closure(register_event_handler_closure) }, - { be_const_key_weak(enc_params, 0), be_const_closure(encode_constraints_closure) }, + { be_const_key_weak(EASE_IN, 76), be_const_int(6) }, { be_const_key_weak(noise_rainbow, -1), be_const_closure(noise_rainbow_closure) }, - { be_const_key_weak(wave_rainbow_sine, 82), be_const_closure(wave_rainbow_sine_closure) }, - { be_const_key_weak(is_color_provider, -1), be_const_closure(is_color_provider_closure) }, - { be_const_key_weak(twinkle_solid, 31), be_const_closure(twinkle_solid_closure) }, - { be_const_key_weak(LINEAR, 97), be_const_int(1) }, - { be_const_key_weak(ease_out, -1), be_const_closure(ease_out_closure) }, - { be_const_key_weak(noise_single_color, -1), be_const_closure(noise_single_color_closure) }, - { be_const_key_weak(SINE, -1), be_const_int(5) }, - { be_const_key_weak(PALETTE_FOREST, -1), be_const_bytes_instance(0000640040228B228032CD32C09AFF9AFF90EE90) }, - { be_const_key_weak(SQUARE, 62), be_const_int(3) }, - { be_const_key_weak(wave_single_sine, 3), be_const_closure(wave_single_sine_closure) }, - { be_const_key_weak(sawtooth, -1), be_const_closure(sawtooth_closure) }, - { be_const_key_weak(composite_color, 65), be_const_class(be_class_CompositeColorProvider) }, - { be_const_key_weak(ease_in, -1), be_const_closure(ease_in_closure) }, - { be_const_key_weak(sequence_manager, -1), be_const_class(be_class_SequenceManager) }, - { be_const_key_weak(square, -1), be_const_closure(square_closure) }, - { be_const_key_weak(create_engine, -1), be_const_class(be_class_AnimationEngine) }, - { be_const_key_weak(engine_proxy, 12), be_const_class(be_class_EngineProxy) }, - { be_const_key_weak(breathe_animation, 71), be_const_class(be_class_BreatheAnimation) }, - { be_const_key_weak(iteration_number, -1), be_const_class(be_class_IterationNumberProvider) }, - { be_const_key_weak(noise_animation, -1), be_const_class(be_class_NoiseAnimation) }, { be_const_key_weak(is_user_function, -1), be_const_closure(is_user_function_closure) }, - { be_const_key_weak(rich_palette, -1), be_const_class(be_class_RichPaletteColorProvider) }, - { be_const_key_weak(COSINE, -1), be_const_int(4) }, - { be_const_key_weak(EASE_OUT, 33), be_const_int(7) }, - { be_const_key_weak(gradient_rainbow_radial, -1), be_const_closure(gradient_rainbow_radial_closure) }, - { be_const_key_weak(TRIANGLE, -1), be_const_int(2) }, - { be_const_key_weak(bounce, -1), be_const_closure(bounce_closure) }, - { be_const_key_weak(list_user_functions, -1), be_const_closure(list_user_functions_closure) }, - { be_const_key_weak(twinkle_intense, 98), be_const_closure(twinkle_intense_closure) }, + { be_const_key_weak(gradient_two_color_linear, 43), be_const_closure(gradient_two_color_linear_closure) }, + { be_const_key_weak(PALETTE_RGB, 85), be_const_bytes_instance(00FF00008000FF00FF0000FF) }, { be_const_key_weak(twinkle_gentle, -1), be_const_closure(twinkle_gentle_closure) }, - { be_const_key_weak(init_strip, -1), be_const_closure(animation_init_strip_closure) }, - { be_const_key_weak(unregister_event_handler, -1), be_const_closure(unregister_event_handler_closure) }, + { be_const_key_weak(elastic, 65), be_const_closure(elastic_closure) }, + { be_const_key_weak(ELASTIC, 13), be_const_int(8) }, + { be_const_key_weak(EventManager, 12), be_const_class(be_class_EventManager) }, + { be_const_key_weak(strip_length, 98), be_const_class(be_class_StripLengthProvider) }, + { be_const_key_weak(palette_meter_animation, 93), be_const_class(be_class_PaletteMeterAnimation) }, + { be_const_key_weak(color_provider, -1), be_const_class(be_class_ColorProvider) }, + { be_const_key_weak(sequence_manager, -1), be_const_class(be_class_SequenceManager) }, + { be_const_key_weak(pulsating_color, -1), be_const_closure(pulsating_color_provider_closure) }, + { be_const_key_weak(PALETTE_SUNSET_TICKS, -1), be_const_bytes_instance(28FF450028FF8C0028FFD70028FF69B4288000802819197000000080) }, + { be_const_key_weak(ease_in, -1), be_const_closure(ease_in_closure) }, { be_const_key_weak(twinkle_classic, -1), be_const_closure(twinkle_classic_closure) }, + { be_const_key_weak(_math, -1), be_const_class(be_class_AnimationMath) }, + { be_const_key_weak(bounce, 67), be_const_closure(bounce_closure) }, + { be_const_key_weak(VERSION, -1), be_const_int(65536) }, + { be_const_key_weak(is_color_provider, 58), be_const_closure(is_color_provider_closure) }, + { be_const_key_weak(TRIANGLE, -1), be_const_int(2) }, + { be_const_key_weak(solid, -1), be_const_closure(solid_closure) }, + { be_const_key_weak(rich_palette_animation, -1), be_const_class(be_class_RichPaletteAnimation) }, + { be_const_key_weak(iteration_number, 89), be_const_class(be_class_IterationNumberProvider) }, + { be_const_key_weak(wave_rainbow_sine, -1), be_const_closure(wave_rainbow_sine_closure) }, + { be_const_key_weak(init, -1), be_const_closure(animation_init_closure) }, + { be_const_key_weak(LINEAR, -1), be_const_int(1) }, + { be_const_key_weak(triangle, -1), be_const_closure(triangle_closure) }, + { be_const_key_weak(create_closure_value, -1), be_const_closure(create_closure_value_closure) }, + { be_const_key_weak(event_handler, -1), be_const_class(be_class_EventHandler) }, + { be_const_key_weak(animation, 14), be_const_class(be_class_Animation) }, + { be_const_key_weak(frame_buffer, -1), be_const_class(be_class_FrameBuffer) }, + { be_const_key_weak(closure_value, -1), be_const_class(be_class_ClosureValueProvider) }, + { be_const_key_weak(smooth, -1), be_const_closure(smooth_closure) }, + { be_const_key_weak(breathe_color, -1), be_const_class(be_class_BreatheColorProvider) }, + { be_const_key_weak(BOUNCE, -1), be_const_int(9) }, + { be_const_key_weak(trigger_event, -1), be_const_closure(trigger_event_closure) }, + { be_const_key_weak(ramp, -1), be_const_closure(ramp_closure) }, + { be_const_key_weak(unregister_event_handler, 29), be_const_closure(unregister_event_handler_closure) }, + { be_const_key_weak(wave_custom, 50), be_const_closure(wave_custom_closure) }, + { be_const_key_weak(static_color, 8), be_const_class(be_class_StaticColorProvider) }, + { be_const_key_weak(SAWTOOTH, -1), be_const_int(1) }, + { be_const_key_weak(noise_single_color, -1), be_const_closure(noise_single_color_closure) }, + { be_const_key_weak(twinkle_animation, -1), be_const_class(be_class_TwinkleAnimation) }, + { be_const_key_weak(get_event_handlers, -1), be_const_closure(get_event_handlers_closure) }, + { be_const_key_weak(list_user_functions, -1), be_const_closure(list_user_functions_closure) }, + { be_const_key_weak(palette_gradient_animation, -1), be_const_class(be_class_PaletteGradientAnimation) }, + { be_const_key_weak(resolve, 21), be_const_closure(animation_resolve_closure) }, + { be_const_key_weak(EASE_OUT, -1), be_const_int(7) }, + { be_const_key_weak(sawtooth, -1), be_const_closure(sawtooth_closure) }, + { be_const_key_weak(SINE, 28), be_const_int(5) }, + { be_const_key_weak(static_value, 75), be_const_class(be_class_StaticValueProvider) }, + { be_const_key_weak(parameterized_object, -1), be_const_class(be_class_ParameterizedObject) }, + { be_const_key_weak(twinkle_rainbow, 33), be_const_closure(twinkle_rainbow_closure) }, + { be_const_key_weak(wave_animation, -1), be_const_class(be_class_WaveAnimation) }, + { be_const_key_weak(beacon_animation, 38), be_const_class(be_class_BeaconAnimation) }, + { be_const_key_weak(breathe_animation, 48), be_const_class(be_class_BreatheAnimation) }, + { be_const_key_weak(comet_animation, 51), be_const_class(be_class_CometAnimation) }, + { be_const_key_weak(get_user_function, -1), be_const_closure(get_user_function_closure) }, + { be_const_key_weak(oscillator_value, -1), be_const_class(be_class_OscillatorValueProvider) }, + { be_const_key_weak(cosine_osc, 80), be_const_closure(cosine_osc_closure) }, + { be_const_key_weak(PALETTE_RAINBOW, -1), be_const_bytes_instance(00FF000024FFA50049FFFF006E00FF00920000FFB74B0082DBEE82EEFFFF0000) }, + { be_const_key_weak(square, -1), be_const_closure(square_closure) }, + { be_const_key_weak(fire_animation, -1), be_const_class(be_class_FireAnimation) }, + { be_const_key_weak(version_string, -1), be_const_closure(animation_version_string_closure) }, + { be_const_key_weak(COSINE, -1), be_const_int(4) }, + { be_const_key_weak(twinkle_solid, -1), be_const_closure(twinkle_solid_closure) }, + { be_const_key_weak(rich_palette_rainbow, 64), be_const_closure(rich_palette_rainbow_closure) }, + { be_const_key_weak(gradient_rainbow_radial, -1), be_const_closure(gradient_rainbow_radial_closure) }, + { be_const_key_weak(value_provider, -1), be_const_class(be_class_ValueProvider) }, + { be_const_key_weak(crenel_position_animation, 16), be_const_class(be_class_CrenelPositionAnimation) }, { be_const_key_weak(is_value_provider, -1), be_const_closure(is_value_provider_closure) }, + { be_const_key_weak(clear_all_event_handlers, -1), be_const_closure(clear_all_event_handlers_closure) }, + { be_const_key_weak(gradient_animation, -1), be_const_class(be_class_GradientAnimation) }, + { be_const_key_weak(sine_osc, 26), be_const_closure(sine_osc_closure) }, + { be_const_key_weak(create_engine, -1), be_const_class(be_class_AnimationEngine) }, + { be_const_key_weak(noise_animation, -1), be_const_class(be_class_NoiseAnimation) }, + { be_const_key_weak(engine_proxy, -1), be_const_class(be_class_EngineProxy) }, + { be_const_key_weak(composite_color, 27), be_const_class(be_class_CompositeColorProvider) }, + { be_const_key_weak(register_event_handler, 40), be_const_closure(register_event_handler_closure) }, + { be_const_key_weak(twinkle_intense, 3), be_const_closure(twinkle_intense_closure) }, + { be_const_key_weak(noise_fractal, -1), be_const_closure(noise_fractal_closure) }, + { be_const_key_weak(SQUARE, 81), be_const_int(3) }, + { be_const_key_weak(init_strip, -1), be_const_closure(animation_init_strip_closure) }, + { be_const_key_weak(PALETTE_FOREST, -1), be_const_bytes_instance(0000640040228B228032CD32C09AFF9AFF90EE90) }, + { be_const_key_weak(linear, -1), be_const_closure(linear_closure) }, + { be_const_key_weak(ease_out, -1), be_const_closure(ease_out_closure) }, + { be_const_key_weak(gradient_rainbow_linear, -1), be_const_closure(gradient_rainbow_linear_closure) }, + { be_const_key_weak(color_cycle, 46), be_const_class(be_class_ColorCycleColorProvider) }, + { be_const_key_weak(PALETTE_FIRE, 96), be_const_bytes_instance(000000004080000080FF0000C0FF8000FFFFFF00) }, + { be_const_key_weak(get_registered_events, -1), be_const_closure(get_registered_events_closure) }, + { be_const_key_weak(set_event_active, -1), be_const_closure(set_event_active_closure) }, + { be_const_key_weak(PALETTE_OCEAN, -1), be_const_bytes_instance(00000080400000FF8000FFFFC000FF80FF008000) }, + { be_const_key_weak(enc_params, 32), be_const_closure(encode_constraints_closure) }, + { be_const_key_weak(wave_single_sine, -1), be_const_closure(wave_single_sine_closure) }, })) ); BE_EXPORT_VARIABLE be_define_const_native_module(animation); 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 ec2db3300..bad72a1ad 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h @@ -2090,18 +2090,18 @@ be_local_class(Token, be_nested_str_weak(transparent), })) ) } )) }, { be_const_key_weak(keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(73, + be_const_list( * be_nested_list(55, ( (struct bvalue*) &(const bvalue[]) { be_nested_str_weak(strip), be_nested_str_weak(set), be_nested_str_weak(import), be_nested_str_weak(berry), + be_nested_str_weak(extern), be_nested_str_weak(color), be_nested_str_weak(palette), be_nested_str_weak(animation), be_nested_str_weak(sequence), be_nested_str_weak(function), - be_nested_str_weak(zone), be_nested_str_weak(template), be_nested_str_weak(param), be_nested_str_weak(type), @@ -2128,24 +2128,7 @@ be_local_class(Token, be_nested_str_weak(return), be_nested_str_weak(reset), be_nested_str_weak(restart), - be_nested_str_weak(at), - be_nested_str_weak(ease), - be_nested_str_weak(sync), be_nested_str_weak(every), - be_nested_str_weak(stagger), - be_nested_str_weak(across), - be_nested_str_weak(pixels), - be_nested_str_weak(rgb), - be_nested_str_weak(hsv), - be_nested_str_weak(all), - be_nested_str_weak(even), - be_nested_str_weak(odd), - be_nested_str_weak(center), - be_nested_str_weak(edges), - be_nested_str_weak(left), - be_nested_str_weak(right), - be_nested_str_weak(top), - be_nested_str_weak(bottom), be_nested_str_weak(true), be_nested_str_weak(false), be_nested_str_weak(nil), @@ -2164,7 +2147,6 @@ be_local_class(Token, be_nested_str_weak(s), be_nested_str_weak(m), be_nested_str_weak(h), - be_nested_str_weak(bpm), })) ) } )) }, { be_const_key_weak(names, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { be_const_list( * be_nested_list(44, @@ -2216,7 +2198,7 @@ be_local_class(Token, })) ) } )) }, { be_const_key_weak(init, 0), be_const_closure(class_Token_init_closure) }, { be_const_key_weak(statement_keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(14, + be_const_list( * be_nested_list(13, ( (struct bvalue*) &(const bvalue[]) { be_nested_str_weak(strip), be_nested_str_weak(set), @@ -2225,7 +2207,6 @@ be_local_class(Token, be_nested_str_weak(animation), be_nested_str_weak(sequence), be_nested_str_weak(function), - be_nested_str_weak(zone), be_nested_str_weak(on), be_nested_str_weak(run), be_nested_str_weak(template), @@ -6083,632 +6064,71 @@ be_local_class(MockEngine, extern const bclass be_class_SimpleDSLTranspiler; /******************************************************************** -** Solidified function: expect_dot +** Solidified function: _validate_template_parameter_usage ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_dot, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, /* 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X2E_X27), - }), - be_str_weak(expect_dot), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0020, // 0006 LDINT R3 33 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: peek -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_peek, /* 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(pull_lexer), - /* K1 */ be_nested_str_weak(peek_ahead), - /* K2 */ be_const_int(2), - }), - be_str_weak(peek), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x580C0002, // 0002 LDCONST R3 K2 - 0x7C040400, // 0003 CALL R1 2 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_unified -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_unified, /* name */ - be_nested_proto( - 10, /* nstack */ + 15, /* 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: _create_instance_for_validation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* 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(instance), + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(_X25s_), + /* K2 */ be_nested_str_weak(self_X2E_X25s), + /* K3 */ be_nested_str_weak(find), + /* K4 */ be_nested_str_weak(warning), + /* K5 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20parameter_X20_X27_X25s_X27_X20is_X20declared_X20but_X20never_X20used_X20in_X20the_X20template_X20body_X2E), + /* K6 */ be_nested_str_weak(stop_iteration), }), - be_str_weak(_create_instance_for_validation), + be_str_weak(_validate_template_parameter_usage), &be_const_str_solidified, - ( &(const binstruction[11]) { /* 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 - 0x780E0001, // 0006 JMPF R3 #0009 - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0x70020000, // 0008 JMP #000A - 0x4C0C0000, // 0009 LDNIL R3 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_run -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(_validate_object_reference), - /* K3 */ be_nested_str_weak(run), - /* K4 */ be_nested_str_weak(collect_inline_comment), - /* K5 */ be_nested_str_weak(run_statements), - /* K6 */ be_nested_str_weak(push), - /* K7 */ be_nested_str_weak(name), - /* K8 */ be_nested_str_weak(comment), - }), - be_str_weak(process_run), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x8C080104, // 0008 GETMET R2 R0 K4 - 0x7C080200, // 0009 CALL R2 1 - 0x880C0105, // 000A GETMBR R3 R0 K5 - 0x8C0C0706, // 000B GETMET R3 R3 K6 - 0x60140013, // 000C GETGBL R5 G19 - 0x7C140000, // 000D CALL R5 0 - 0x98160E01, // 000E SETIDX R5 K7 R1 - 0x98161002, // 000F SETIDX R5 K8 R2 - 0x7C0C0400, // 0010 CALL R3 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _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[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_const_int(1), - /* K2 */ be_const_int(2), - }), - be_str_weak(_determine_function_return_type), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0039, // 0002 JMPF R2 #003D - 0x88080300, // 0003 GETMBR R2 R1 K0 - 0x540E0007, // 0004 LDINT R3 8 - 0x1C080403, // 0005 EQ R2 R2 R3 - 0x740A0003, // 0006 JMPT R2 #000B - 0x88080300, // 0007 GETMBR R2 R1 K0 - 0x540E0008, // 0008 LDINT R3 9 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x540A0008, // 000B LDINT R2 9 - 0x80040400, // 000C RET 1 R2 - 0x7002002E, // 000D JMP #003D - 0x88080300, // 000E GETMBR R2 R1 K0 - 0x540E0009, // 000F LDINT R3 10 - 0x1C080403, // 0010 EQ R2 R2 R3 - 0x740A0003, // 0011 JMPT R2 #0016 - 0x88080300, // 0012 GETMBR R2 R1 K0 - 0x540E000A, // 0013 LDINT R3 11 - 0x1C080403, // 0014 EQ R2 R2 R3 - 0x780A0002, // 0015 JMPF R2 #0019 - 0x540A000A, // 0016 LDINT R2 11 - 0x80040400, // 0017 RET 1 R2 - 0x70020023, // 0018 JMP #003D - 0x88080300, // 0019 GETMBR R2 R1 K0 - 0x540E0005, // 001A LDINT R3 6 - 0x1C080403, // 001B EQ R2 R2 R3 - 0x740A0003, // 001C JMPT R2 #0021 - 0x88080300, // 001D GETMBR R2 R1 K0 - 0x540E0006, // 001E LDINT R3 7 - 0x1C080403, // 001F EQ R2 R2 R3 - 0x780A0002, // 0020 JMPF R2 #0024 - 0x540A0006, // 0021 LDINT R2 7 - 0x80040400, // 0022 RET 1 R2 - 0x70020018, // 0023 JMP #003D - 0x88080300, // 0024 GETMBR R2 R1 K0 - 0x1C080501, // 0025 EQ R2 R2 K1 - 0x740A0002, // 0026 JMPT R2 #002A - 0x88080300, // 0027 GETMBR R2 R1 K0 - 0x1C080502, // 0028 EQ R2 R2 K2 - 0x780A0001, // 0029 JMPF R2 #002C - 0x80060400, // 002A RET 1 K2 - 0x70020010, // 002B JMP #003D - 0x88080300, // 002C GETMBR R2 R1 K0 - 0x540E0003, // 002D LDINT R3 4 - 0x1C080403, // 002E EQ R2 R2 R3 - 0x780A0002, // 002F JMPF R2 #0033 - 0x540A000B, // 0030 LDINT R2 12 - 0x80040400, // 0031 RET 1 R2 - 0x70020009, // 0032 JMP #003D - 0x88080300, // 0033 GETMBR R2 R1 K0 - 0x540E0004, // 0034 LDINT R3 5 - 0x1C080403, // 0035 EQ R2 R2 R3 - 0x740A0003, // 0036 JMPT R2 #003B - 0x88080300, // 0037 GETMBR R2 R1 K0 - 0x540E000D, // 0038 LDINT R3 14 - 0x1C080403, // 0039 EQ R2 R2 R3 - 0x780A0001, // 003A JMPF R2 #003D - 0x540A000B, // 003B LDINT R2 12 - 0x80040400, // 003C RET 1 R2 - 0x540A000B, // 003D LDINT R2 12 - 0x80040400, // 003E RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_left_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X28_X27), - }), - be_str_weak(expect_left_paren), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0017, // 0006 LDINT R3 24 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: validate_user_name -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ - be_nested_proto( - 15, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(symbol_table), - /* K2 */ be_nested_str_weak(get), - /* K3 */ be_nested_str_weak(is_builtin), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K7 */ be_nested_str_weak(Cannot_X20redefine_X20built_X2Din_X20symbol_X20_X27_X25s_X27_X20_X28type_X3A_X20_X25s_X29_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K8 */ be_nested_str_weak(Symbol_X20_X27_X25s_X27_X20is_X20already_X20defined_X20as_X20_X25s_X2E_X20Cannot_X20redefine_X20as_X20_X25s_X2E), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(statement_keywords), - /* K11 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K12 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(validate_user_name), - &be_const_str_solidified, - ( &(const binstruction[77]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0x88100101, // 0001 GETMBR R4 R0 K1 - 0x8C100902, // 0002 GETMET R4 R4 K2 - 0x5C180200, // 0003 MOVE R6 R1 - 0x7C100400, // 0004 CALL R4 2 - 0x4C140000, // 0005 LDNIL R5 - 0x1C140805, // 0006 EQ R5 R4 R5 - 0x78160000, // 0007 JMPF R5 #0009 - 0x70020028, // 0008 JMP #0032 - 0x88140903, // 0009 GETMBR R5 R4 K3 - 0x7816000E, // 000A JMPF R5 #001A - 0x88140904, // 000B GETMBR R5 R4 K4 - 0x541A000A, // 000C LDINT R6 11 - 0x1C140A06, // 000D EQ R5 R5 R6 - 0x7816000A, // 000E JMPF R5 #001A - 0x8C140105, // 000F GETMET R5 R0 K5 - 0x601C0018, // 0010 GETGBL R7 G24 - 0x58200006, // 0011 LDCONST R8 K6 - 0x5C240200, // 0012 MOVE R9 R1 - 0x5C280200, // 0013 MOVE R10 R1 - 0x5C2C0200, // 0014 MOVE R11 R1 - 0x7C1C0800, // 0015 CALL R7 4 - 0x7C140400, // 0016 CALL R5 2 - 0x50140000, // 0017 LDBOOL R5 0 0 - 0x80040A00, // 0018 RET 1 R5 - 0x70020017, // 0019 JMP #0032 - 0x88140903, // 001A GETMBR R5 R4 K3 - 0x7816000B, // 001B JMPF R5 #0028 - 0x8C140105, // 001C GETMET R5 R0 K5 - 0x601C0018, // 001D GETGBL R7 G24 - 0x58200007, // 001E LDCONST R8 K7 - 0x5C240200, // 001F MOVE R9 R1 - 0x88280904, // 0020 GETMBR R10 R4 K4 - 0x5C2C0200, // 0021 MOVE R11 R1 - 0x5C300200, // 0022 MOVE R12 R1 - 0x7C1C0A00, // 0023 CALL R7 5 - 0x7C140400, // 0024 CALL R5 2 - 0x50140000, // 0025 LDBOOL R5 0 0 - 0x80040A00, // 0026 RET 1 R5 - 0x70020009, // 0027 JMP #0032 - 0x8C140105, // 0028 GETMET R5 R0 K5 - 0x601C0018, // 0029 GETGBL R7 G24 - 0x58200008, // 002A LDCONST R8 K8 - 0x5C240200, // 002B MOVE R9 R1 - 0x88280904, // 002C GETMBR R10 R4 K4 - 0x5C2C0400, // 002D MOVE R11 R2 - 0x7C1C0800, // 002E CALL R7 4 - 0x7C140400, // 002F CALL R5 2 - 0x50140000, // 0030 LDBOOL R5 0 0 - 0x80040A00, // 0031 RET 1 R5 - 0x60140010, // 0032 GETGBL R5 G16 - 0x88180709, // 0033 GETMBR R6 R3 K9 - 0x88180D0A, // 0034 GETMBR R6 R6 K10 - 0x7C140200, // 0035 CALL R5 1 - 0xA8020010, // 0036 EXBLK 0 #0048 - 0x5C180A00, // 0037 MOVE R6 R5 - 0x7C180000, // 0038 CALL R6 0 - 0x1C1C0206, // 0039 EQ R7 R1 R6 - 0x781E000B, // 003A JMPF R7 #0047 - 0x8C1C0105, // 003B GETMET R7 R0 K5 - 0x60240018, // 003C GETGBL R9 G24 - 0x5828000B, // 003D LDCONST R10 K11 - 0x5C2C0200, // 003E MOVE R11 R1 - 0x5C300400, // 003F MOVE R12 R2 - 0x5C340200, // 0040 MOVE R13 R1 - 0x5C380200, // 0041 MOVE R14 R1 - 0x7C240A00, // 0042 CALL R9 5 - 0x7C1C0400, // 0043 CALL R7 2 - 0x501C0000, // 0044 LDBOOL R7 0 0 - 0xA8040001, // 0045 EXBLK 1 1 - 0x80040E00, // 0046 RET 1 R7 - 0x7001FFEE, // 0047 JMP #0037 - 0x5814000C, // 0048 LDCONST R5 K12 - 0xAC140200, // 0049 CATCH R5 1 0 - 0xB0080000, // 004A RAISE 2 R0 R0 - 0x50140200, // 004B LDBOOL R5 1 0 - 0x80040A00, // 004C RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_value_provider_reference -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_reference, /* 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(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_X20statement_X2E_X20Make_X20sure_X20the_X20value_X20provider_X20or_X20animation_X20is_X20defined_X20before_X20use_X2E), - /* K4 */ be_nested_str_weak(get), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(_X27_X25s_X27_X20in_X20_X25s_X20statement_X20is_X20not_X20a_X20value_X20provider_X20or_X20animation_X20instance_X2E_X20Only_X20value_X20provider_X20instances_X20_X28like_X20oscillators_X29_X20and_X20animation_X20instances_X20can_X20be_X20restarted_X2E), - /* K7 */ be_nested_str_weak(Could_X20not_X20validate_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X3A_X20_X25s), - }), - be_str_weak(_validate_value_provider_reference), - &be_const_str_solidified, - ( &(const binstruction[65]) { /* code */ - 0xA8020030, // 0000 EXBLK 0 #0032 - 0x880C0100, // 0001 GETMBR R3 R0 K0 - 0x8C0C0701, // 0002 GETMET R3 R3 K1 - 0x5C140200, // 0003 MOVE R5 R1 - 0x7C0C0400, // 0004 CALL R3 2 - 0x740E0009, // 0005 JMPT R3 #0010 - 0x8C0C0102, // 0006 GETMET R3 R0 K2 - 0x60140018, // 0007 GETGBL R5 G24 - 0x58180003, // 0008 LDCONST R6 K3 - 0x5C1C0200, // 0009 MOVE R7 R1 - 0x5C200400, // 000A MOVE R8 R2 - 0x7C140600, // 000B CALL R5 3 - 0x7C0C0400, // 000C CALL R3 2 - 0x500C0000, // 000D LDBOOL R3 0 0 - 0xA8040001, // 000E EXBLK 1 1 - 0x80040600, // 000F RET 1 R3 - 0x880C0100, // 0010 GETMBR R3 R0 K0 - 0x8C0C0704, // 0011 GETMET R3 R3 K4 - 0x5C140200, // 0012 MOVE R5 R1 - 0x7C0C0400, // 0013 CALL R3 2 - 0x4C100000, // 0014 LDNIL R4 - 0x20100604, // 0015 NE R4 R3 R4 - 0x78120015, // 0016 JMPF R4 #002D - 0x88100705, // 0017 GETMBR R4 R3 K5 - 0x54160006, // 0018 LDINT R5 7 - 0x1C100805, // 0019 EQ R4 R4 R5 - 0x74120003, // 001A JMPT R4 #001F - 0x88100705, // 001B GETMBR R4 R3 K5 - 0x54160008, // 001C LDINT R5 9 - 0x1C100805, // 001D EQ R4 R4 R5 - 0x78120003, // 001E JMPF R4 #0023 - 0x50100200, // 001F LDBOOL R4 1 0 - 0xA8040001, // 0020 EXBLK 1 1 - 0x80040800, // 0021 RET 1 R4 - 0x70020009, // 0022 JMP #002D - 0x8C100102, // 0023 GETMET R4 R0 K2 - 0x60180018, // 0024 GETGBL R6 G24 - 0x581C0006, // 0025 LDCONST R7 K6 - 0x5C200200, // 0026 MOVE R8 R1 - 0x5C240400, // 0027 MOVE R9 R2 - 0x7C180600, // 0028 CALL R6 3 - 0x7C100400, // 0029 CALL R4 2 - 0x50100000, // 002A LDBOOL R4 0 0 - 0xA8040001, // 002B EXBLK 1 1 - 0x80040800, // 002C RET 1 R4 - 0x50100200, // 002D LDBOOL R4 1 0 - 0xA8040001, // 002E EXBLK 1 1 - 0x80040800, // 002F RET 1 R4 - 0xA8040001, // 0030 EXBLK 1 1 - 0x7002000D, // 0031 JMP #0040 - 0xAC0C0002, // 0032 CATCH R3 0 2 - 0x7002000A, // 0033 JMP #003F - 0x8C140102, // 0034 GETMET R5 R0 K2 - 0x601C0018, // 0035 GETGBL R7 G24 - 0x58200007, // 0036 LDCONST R8 K7 - 0x5C240200, // 0037 MOVE R9 R1 - 0x5C280400, // 0038 MOVE R10 R2 - 0x5C2C0800, // 0039 MOVE R11 R4 - 0x7C1C0800, // 003A CALL R7 4 - 0x7C140400, // 003B CALL R5 2 - 0x50140000, // 003C LDBOOL R5 0 0 - 0x80040A00, // 003D RET 1 R5 - 0x70020000, // 003E JMP #0040 - 0xB0080000, // 003F RAISE 2 R0 R0 - 0x80000000, // 0040 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 + ( &(const binstruction[41]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x60140010, // 0001 GETGBL R5 G16 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C140200, // 0003 CALL R5 1 + 0xA802001F, // 0004 EXBLK 0 #0025 + 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 + 0x60200018, // 000B GETGBL R8 G24 + 0x58240002, // 000C LDCONST R9 K2 + 0x5C280C00, // 000D MOVE R10 R6 + 0x7C200400, // 000E CALL R8 2 + 0x8C240903, // 000F GETMET R9 R4 K3 + 0x5C2C0600, // 0010 MOVE R11 R3 + 0x5C300E00, // 0011 MOVE R12 R7 + 0x7C240600, // 0012 CALL R9 3 + 0x5429FFFE, // 0013 LDINT R10 -1 + 0x1C24120A, // 0014 EQ R9 R9 R10 + 0x7826000D, // 0015 JMPF R9 #0024 + 0x8C240903, // 0016 GETMET R9 R4 K3 + 0x5C2C0600, // 0017 MOVE R11 R3 + 0x5C301000, // 0018 MOVE R12 R8 + 0x7C240600, // 0019 CALL R9 3 + 0x5429FFFE, // 001A LDINT R10 -1 + 0x1C24120A, // 001B EQ R9 R9 R10 + 0x78260006, // 001C JMPF R9 #0024 + 0x8C240104, // 001D GETMET R9 R0 K4 + 0x602C0018, // 001E GETGBL R11 G24 + 0x58300005, // 001F LDCONST R12 K5 + 0x5C340200, // 0020 MOVE R13 R1 + 0x5C380C00, // 0021 MOVE R14 R6 + 0x7C2C0600, // 0022 CALL R11 3 + 0x7C240400, // 0023 CALL R9 2 + 0x7001FFDF, // 0024 JMP #0005 + 0x58140006, // 0025 LDCONST R5 K6 + 0xAC140200, // 0026 CATCH R5 1 0 + 0xB0080000, // 0027 RAISE 2 R0 R0 + 0x80000000, // 0028 RET 0 }) ) ); @@ -6813,462 +6233,31 @@ be_local_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type, /* n /******************************************************************** -** Solidified function: process_set +** Solidified function: _process_named_arguments_for_color_provider ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* name */ be_nested_proto( - 13, /* nstack */ - 1, /* argc */ + 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[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[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_process_named_arguments_unified), + /* K1 */ be_nested_str_weak(CONTEXT_COLOR_PROVIDER), }), - be_str_weak(process_set), + be_str_weak(_process_named_arguments_for_color_provider), &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_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: 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[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(value), - /* K3 */ be_nested_str_weak(next), - /* K4 */ be_const_int(0), - /* K5 */ be_const_int(2), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20percentage_X20value), - }), - be_str_weak(process_percentage_value), - &be_const_str_solidified, - ( &(const binstruction[47]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0013, // 0004 JMPF R2 #0019 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0005, // 0006 LDINT R3 6 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A000F, // 0008 JMPF R2 #0019 - 0x88080302, // 0009 GETMBR R2 R1 K2 - 0x8C0C0103, // 000A GETMET R3 R0 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x600C000A, // 000C GETGBL R3 G10 - 0x5411FFFD, // 000D LDINT R4 -2 - 0x40120804, // 000E CONNECT R4 K4 R4 - 0x94100404, // 000F GETIDX R4 R2 R4 - 0x7C0C0200, // 0010 CALL R3 1 - 0x60100009, // 0011 GETGBL R4 G9 - 0x541600FE, // 0012 LDINT R5 255 - 0x08140605, // 0013 MUL R5 R3 R5 - 0x541A0063, // 0014 LDINT R6 100 - 0x0C140A06, // 0015 DIV R5 R5 R6 - 0x7C100200, // 0016 CALL R4 1 - 0x80040800, // 0017 RET 1 R4 - 0x70020014, // 0018 JMP #002E - 0x4C080000, // 0019 LDNIL R2 - 0x20080202, // 001A NE R2 R1 R2 - 0x780A000C, // 001B JMPF R2 #0029 - 0x88080301, // 001C GETMBR R2 R1 K1 - 0x1C080505, // 001D EQ R2 R2 K5 - 0x780A0009, // 001E JMPF R2 #0029 - 0x88080302, // 001F GETMBR R2 R1 K2 - 0x8C0C0103, // 0020 GETMET R3 R0 K3 - 0x7C0C0200, // 0021 CALL R3 1 - 0x600C0009, // 0022 GETGBL R3 G9 - 0x6010000A, // 0023 GETGBL R4 G10 - 0x5C140400, // 0024 MOVE R5 R2 - 0x7C100200, // 0025 CALL R4 1 - 0x7C0C0200, // 0026 CALL R3 1 - 0x80040600, // 0027 RET 1 R3 - 0x70020004, // 0028 JMP #002E - 0x8C080106, // 0029 GETMET R2 R0 K6 - 0x58100007, // 002A LDCONST R4 K7 - 0x7C080400, // 002B CALL R2 2 - 0x540A00FE, // 002C LDINT R2 255 - 0x80040400, // 002D RET 1 R2 - 0x80000000, // 002E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_standalone_log -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* 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_const_int(3), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), - /* K7 */ be_nested_str_weak(skip_statement), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(expect_right_paren), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(process_log_call), - /* K12 */ be_nested_str_weak(standalone), - /* K13 */ be_nested_str_weak(add), - }), - be_str_weak(process_standalone_log), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* 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 - 0x740A0002, // 0008 JMPT R2 #000C - 0x88080303, // 0009 GETMBR R2 R1 K3 - 0x20080504, // 000A NE R2 R2 K4 - 0x780A0005, // 000B JMPF R2 #0012 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x58100006, // 000D LDCONST R4 K6 - 0x7C080400, // 000E CALL R2 2 - 0x8C080107, // 000F GETMET R2 R0 K7 - 0x7C080200, // 0010 CALL R2 1 - 0x80000400, // 0011 RET 0 - 0x88080308, // 0012 GETMBR R2 R1 K8 - 0x8C0C0100, // 0013 GETMET R3 R0 K0 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C0C0109, // 0015 GETMET R3 R0 K9 - 0x7C0C0200, // 0016 CALL R3 1 - 0x8C0C010A, // 0017 GETMET R3 R0 K10 - 0x7C0C0200, // 0018 CALL R3 1 - 0x8C10010B, // 0019 GETMET R4 R0 K11 - 0x5C180400, // 001A MOVE R6 R2 - 0x581C000C, // 001B LDCONST R7 K12 - 0x5C200600, // 001C MOVE R8 R3 - 0x7C100800, // 001D CALL R4 4 - 0x8C14010D, // 001E GETMET R5 R0 K13 - 0x5C1C0800, // 001F MOVE R7 R4 - 0x7C140400, // 0020 CALL R5 2 - 0x80000000, // 0021 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[26]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(add), - /* K3 */ be_nested_str_weak(get_indent), - /* K4 */ be_nested_str_weak(value), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_const_int(0), - /* K7 */ be_nested_str_weak(play), - /* K8 */ be_nested_str_weak(process_play_statement_fluent), - /* K9 */ be_nested_str_weak(wait), - /* K10 */ be_nested_str_weak(process_wait_statement_fluent), - /* K11 */ be_const_int(1), - /* K12 */ be_nested_str_weak(log), - /* K13 */ be_nested_str_weak(process_log_statement_fluent), - /* K14 */ be_nested_str_weak(restart), - /* K15 */ be_nested_str_weak(process_restart_statement_fluent), - /* K16 */ be_nested_str_weak(repeat), - /* K17 */ be_nested_str_weak(process_repeat_statement_fluent), - /* K18 */ be_nested_str_weak(if), - /* K19 */ be_nested_str_weak(process_if_statement_fluent), - /* K20 */ be_nested_str_weak(peek), - /* K21 */ be_nested_str_weak(process_sequence_assignment_fluent), - /* K22 */ be_nested_str_weak(error), - /* K23 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20if_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), - /* K24 */ be_nested_str_weak(skip_statement), - /* K25 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20if_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), - }), - be_str_weak(process_sequence_statement), - &be_const_str_solidified, - ( &(const binstruction[114]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x780A0000, // 0004 JMPF R2 #0006 - 0x80000400, // 0005 RET 0 - 0x88080301, // 0006 GETMBR R2 R1 K1 - 0x540E0024, // 0007 LDINT R3 37 - 0x1C080403, // 0008 EQ R2 R2 R3 - 0x780A0008, // 0009 JMPF R2 #0013 - 0x8C080102, // 000A GETMET R2 R0 K2 - 0x8C100103, // 000B GETMET R4 R0 K3 - 0x7C100200, // 000C CALL R4 1 - 0x88140304, // 000D GETMBR R5 R1 K4 - 0x00100805, // 000E ADD R4 R4 R5 - 0x7C080400, // 000F CALL R2 2 - 0x8C080105, // 0010 GETMET R2 R0 K5 - 0x7C080200, // 0011 CALL R2 1 - 0x80000400, // 0012 RET 0 - 0x88080301, // 0013 GETMBR R2 R1 K1 - 0x540E0022, // 0014 LDINT R3 35 - 0x1C080403, // 0015 EQ R2 R2 R3 - 0x780A0002, // 0016 JMPF R2 #001A - 0x8C080105, // 0017 GETMET R2 R0 K5 - 0x7C080200, // 0018 CALL R2 1 - 0x80000400, // 0019 RET 0 - 0x88080301, // 001A GETMBR R2 R1 K1 - 0x1C080506, // 001B EQ R2 R2 K6 - 0x780A0005, // 001C JMPF R2 #0023 - 0x88080304, // 001D GETMBR R2 R1 K4 - 0x1C080507, // 001E EQ R2 R2 K7 - 0x780A0002, // 001F JMPF R2 #0023 - 0x8C080108, // 0020 GETMET R2 R0 K8 - 0x7C080200, // 0021 CALL R2 1 - 0x7002004D, // 0022 JMP #0071 - 0x88080301, // 0023 GETMBR R2 R1 K1 - 0x1C080506, // 0024 EQ R2 R2 K6 - 0x780A0005, // 0025 JMPF R2 #002C - 0x88080304, // 0026 GETMBR R2 R1 K4 - 0x1C080509, // 0027 EQ R2 R2 K9 - 0x780A0002, // 0028 JMPF R2 #002C - 0x8C08010A, // 0029 GETMET R2 R0 K10 - 0x7C080200, // 002A CALL R2 1 - 0x70020044, // 002B JMP #0071 - 0x88080301, // 002C GETMBR R2 R1 K1 - 0x1C08050B, // 002D EQ R2 R2 K11 - 0x780A0005, // 002E JMPF R2 #0035 - 0x88080304, // 002F GETMBR R2 R1 K4 - 0x1C08050C, // 0030 EQ R2 R2 K12 - 0x780A0002, // 0031 JMPF R2 #0035 - 0x8C08010D, // 0032 GETMET R2 R0 K13 - 0x7C080200, // 0033 CALL R2 1 - 0x7002003B, // 0034 JMP #0071 - 0x88080301, // 0035 GETMBR R2 R1 K1 - 0x1C080506, // 0036 EQ R2 R2 K6 - 0x780A0005, // 0037 JMPF R2 #003E - 0x88080304, // 0038 GETMBR R2 R1 K4 - 0x1C08050E, // 0039 EQ R2 R2 K14 - 0x780A0002, // 003A JMPF R2 #003E - 0x8C08010F, // 003B GETMET R2 R0 K15 - 0x7C080200, // 003C CALL R2 1 - 0x70020032, // 003D JMP #0071 - 0x88080301, // 003E GETMBR R2 R1 K1 - 0x1C080506, // 003F EQ R2 R2 K6 - 0x780A0005, // 0040 JMPF R2 #0047 - 0x88080304, // 0041 GETMBR R2 R1 K4 - 0x1C080510, // 0042 EQ R2 R2 K16 - 0x780A0002, // 0043 JMPF R2 #0047 - 0x8C080111, // 0044 GETMET R2 R0 K17 - 0x7C080200, // 0045 CALL R2 1 - 0x70020029, // 0046 JMP #0071 - 0x88080301, // 0047 GETMBR R2 R1 K1 - 0x1C080506, // 0048 EQ R2 R2 K6 - 0x780A0005, // 0049 JMPF R2 #0050 - 0x88080304, // 004A GETMBR R2 R1 K4 - 0x1C080512, // 004B EQ R2 R2 K18 - 0x780A0002, // 004C JMPF R2 #0050 - 0x8C080113, // 004D GETMET R2 R0 K19 - 0x7C080200, // 004E CALL R2 1 - 0x70020020, // 004F JMP #0071 - 0x88080301, // 0050 GETMBR R2 R1 K1 - 0x1C08050B, // 0051 EQ R2 R2 K11 - 0x780A0016, // 0052 JMPF R2 #006A - 0x8C080114, // 0053 GETMET R2 R0 K20 - 0x7C080200, // 0054 CALL R2 1 - 0x4C0C0000, // 0055 LDNIL R3 - 0x20080403, // 0056 NE R2 R2 R3 - 0x780A0008, // 0057 JMPF R2 #0061 - 0x8C080114, // 0058 GETMET R2 R0 K20 - 0x7C080200, // 0059 CALL R2 1 - 0x88080501, // 005A GETMBR R2 R2 K1 - 0x540E0020, // 005B LDINT R3 33 - 0x1C080403, // 005C EQ R2 R2 R3 - 0x780A0002, // 005D JMPF R2 #0061 - 0x8C080115, // 005E GETMET R2 R0 K21 - 0x7C080200, // 005F CALL R2 1 - 0x70020007, // 0060 JMP #0069 - 0x8C080116, // 0061 GETMET R2 R0 K22 - 0x60100018, // 0062 GETGBL R4 G24 - 0x58140017, // 0063 LDCONST R5 K23 - 0x88180304, // 0064 GETMBR R6 R1 K4 - 0x7C100400, // 0065 CALL R4 2 - 0x7C080400, // 0066 CALL R2 2 - 0x8C080118, // 0067 GETMET R2 R0 K24 - 0x7C080200, // 0068 CALL R2 1 - 0x70020006, // 0069 JMP #0071 - 0x8C080116, // 006A GETMET R2 R0 K22 - 0x60100018, // 006B GETGBL R4 G24 - 0x58140019, // 006C LDCONST R5 K25 - 0x7C100200, // 006D CALL R4 1 - 0x7C080400, // 006E CALL R2 2 - 0x8C080118, // 006F GETMET R2 R0 K24 - 0x7C080200, // 0070 CALL R2 1 - 0x80000000, // 0071 RET 0 + ( &(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 }) ) ); @@ -7487,9 +6476,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* nam /******************************************************************** -** Solidified function: check_right_paren +** Solidified function: skip_whitespace ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ @@ -7499,25 +6488,37 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), + ( &(const bvalue[ 4]) { /* 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(next), }), - be_str_weak(check_right_paren), + be_str_weak(skip_whitespace), &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ + ( &(const binstruction[22]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0018, // 0006 LDINT R3 25 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0000, // 0008 JMPT R2 #000A - 0x50080001, // 0009 LDBOOL R2 0 1 - 0x50080200, // 000A LDBOOL R2 1 0 - 0x80040400, // 000B RET 1 R2 + 0x74060011, // 0002 JMPT R1 #0015 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000A, // 0007 JMPF R2 #0013 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0x540E0022, // 0009 LDINT R3 35 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x740A0003, // 000B JMPT R2 #0010 + 0x88080302, // 000C GETMBR R2 R1 K2 + 0x540E0024, // 000D LDINT R3 37 + 0x1C080403, // 000E EQ R2 R2 R3 + 0x780A0002, // 000F JMPF R2 #0013 + 0x8C080103, // 0010 GETMET R2 R0 K3 + 0x7C080200, // 0011 CALL R2 1 + 0x70020000, // 0012 JMP #0014 + 0x70020000, // 0013 JMP #0015 + 0x7001FFEA, // 0014 JMP #0000 + 0x80000000, // 0015 RET 0 }) ) ); @@ -7525,9 +6526,1056 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ /******************************************************************** -** Solidified function: _validate_template_parameter_usage +** Solidified function: process_array_literal ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, /* name */ +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[19]) { /* 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(next), + /* K10 */ be_nested_str_weak(error), + /* K11 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), + /* K12 */ be_nested_str_weak(expect_right_bracket), + /* K13 */ be_nested_str_weak(_X5B), + /* K14 */ be_const_int(0), + /* K15 */ be_const_int(1), + /* K16 */ be_nested_str_weak(_X2C_X20), + /* K17 */ be_nested_str_weak(stop_iteration), + /* K18 */ be_nested_str_weak(_X5D), + }), + be_str_weak(process_array_literal), + &be_const_str_solidified, + ( &(const binstruction[62]) { /* 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 + 0x740A001E, // 0006 JMPT R2 #0026 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A001B, // 0009 JMPT R2 #0026 + 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 + 0x780E0008, // 0014 JMPF R3 #001E + 0x8C0C0107, // 0015 GETMET R3 R0 K7 + 0x7C0C0200, // 0016 CALL R3 1 + 0x880C0708, // 0017 GETMBR R3 R3 K8 + 0x5412001D, // 0018 LDINT R4 30 + 0x1C0C0604, // 0019 EQ R3 R3 R4 + 0x780E0002, // 001A JMPF R3 #001E + 0x8C0C0109, // 001B GETMET R3 R0 K9 + 0x7C0C0200, // 001C CALL R3 1 + 0x70020006, // 001D JMP #0025 + 0x8C0C0102, // 001E GETMET R3 R0 K2 + 0x7C0C0200, // 001F CALL R3 1 + 0x740E0003, // 0020 JMPT R3 #0025 + 0x8C0C010A, // 0021 GETMET R3 R0 K10 + 0x5814000B, // 0022 LDCONST R5 K11 + 0x7C0C0400, // 0023 CALL R3 2 + 0x70020000, // 0024 JMP #0026 + 0x7001FFDD, // 0025 JMP #0004 + 0x8C08010C, // 0026 GETMET R2 R0 K12 + 0x7C080200, // 0027 CALL R2 1 + 0x5808000D, // 0028 LDCONST R2 K13 + 0x600C0010, // 0029 GETGBL R3 G16 + 0x6010000C, // 002A GETGBL R4 G12 + 0x5C140200, // 002B MOVE R5 R1 + 0x7C100200, // 002C CALL R4 1 + 0x0410090F, // 002D SUB R4 R4 K15 + 0x40121C04, // 002E CONNECT R4 K14 R4 + 0x7C0C0200, // 002F CALL R3 1 + 0xA8020007, // 0030 EXBLK 0 #0039 + 0x5C100600, // 0031 MOVE R4 R3 + 0x7C100000, // 0032 CALL R4 0 + 0x2414090E, // 0033 GT R5 R4 K14 + 0x78160000, // 0034 JMPF R5 #0036 + 0x00080510, // 0035 ADD R2 R2 K16 + 0x94140204, // 0036 GETIDX R5 R1 R4 + 0x00080405, // 0037 ADD R2 R2 R5 + 0x7001FFF7, // 0038 JMP #0031 + 0x580C0011, // 0039 LDCONST R3 K17 + 0xAC0C0200, // 003A CATCH R3 1 0 + 0xB0080000, // 003B RAISE 2 R0 R0 + 0x00080512, // 003C ADD R2 R2 K18 + 0x80040400, // 003D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: _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[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(type), + /* K1 */ be_const_int(1), + /* K2 */ be_const_int(2), + }), + be_str_weak(_determine_function_return_type), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0039, // 0002 JMPF R2 #003D + 0x88080300, // 0003 GETMBR R2 R1 K0 + 0x540E0007, // 0004 LDINT R3 8 + 0x1C080403, // 0005 EQ R2 R2 R3 + 0x740A0003, // 0006 JMPT R2 #000B + 0x88080300, // 0007 GETMBR R2 R1 K0 + 0x540E0008, // 0008 LDINT R3 9 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x540A0008, // 000B LDINT R2 9 + 0x80040400, // 000C RET 1 R2 + 0x7002002E, // 000D JMP #003D + 0x88080300, // 000E GETMBR R2 R1 K0 + 0x540E0009, // 000F LDINT R3 10 + 0x1C080403, // 0010 EQ R2 R2 R3 + 0x740A0003, // 0011 JMPT R2 #0016 + 0x88080300, // 0012 GETMBR R2 R1 K0 + 0x540E000A, // 0013 LDINT R3 11 + 0x1C080403, // 0014 EQ R2 R2 R3 + 0x780A0002, // 0015 JMPF R2 #0019 + 0x540A000A, // 0016 LDINT R2 11 + 0x80040400, // 0017 RET 1 R2 + 0x70020023, // 0018 JMP #003D + 0x88080300, // 0019 GETMBR R2 R1 K0 + 0x540E0005, // 001A LDINT R3 6 + 0x1C080403, // 001B EQ R2 R2 R3 + 0x740A0003, // 001C JMPT R2 #0021 + 0x88080300, // 001D GETMBR R2 R1 K0 + 0x540E0006, // 001E LDINT R3 7 + 0x1C080403, // 001F EQ R2 R2 R3 + 0x780A0002, // 0020 JMPF R2 #0024 + 0x540A0006, // 0021 LDINT R2 7 + 0x80040400, // 0022 RET 1 R2 + 0x70020018, // 0023 JMP #003D + 0x88080300, // 0024 GETMBR R2 R1 K0 + 0x1C080501, // 0025 EQ R2 R2 K1 + 0x740A0002, // 0026 JMPT R2 #002A + 0x88080300, // 0027 GETMBR R2 R1 K0 + 0x1C080502, // 0028 EQ R2 R2 K2 + 0x780A0001, // 0029 JMPF R2 #002C + 0x80060400, // 002A RET 1 K2 + 0x70020010, // 002B JMP #003D + 0x88080300, // 002C GETMBR R2 R1 K0 + 0x540E0003, // 002D LDINT R3 4 + 0x1C080403, // 002E EQ R2 R2 R3 + 0x780A0002, // 002F JMPF R2 #0033 + 0x540A000B, // 0030 LDINT R2 12 + 0x80040400, // 0031 RET 1 R2 + 0x70020009, // 0032 JMP #003D + 0x88080300, // 0033 GETMBR R2 R1 K0 + 0x540E0004, // 0034 LDINT R3 5 + 0x1C080403, // 0035 EQ R2 R2 R3 + 0x740A0003, // 0036 JMPT R2 #003B + 0x88080300, // 0037 GETMBR R2 R1 K0 + 0x540E000D, // 0038 LDINT R3 14 + 0x1C080403, // 0039 EQ R2 R2 R3 + 0x780A0001, // 003A JMPF R2 #003D + 0x540A000B, // 003B LDINT R2 12 + 0x80040400, // 003C RET 1 R2 + 0x540A000B, // 003D LDINT R2 12 + 0x80040400, // 003E RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: _unwrap_resolve +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__unwrap_resolve, /* 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[ 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(_unwrap_resolve), + &be_const_str_solidified, + ( &(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 + 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 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: 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: validate_user_name +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ + be_nested_proto( + 15, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(symbol_table), + /* K2 */ be_nested_str_weak(get), + /* K3 */ be_nested_str_weak(is_builtin), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K7 */ be_nested_str_weak(Cannot_X20redefine_X20built_X2Din_X20symbol_X20_X27_X25s_X27_X20_X28type_X3A_X20_X25s_X29_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K8 */ be_nested_str_weak(Symbol_X20_X27_X25s_X27_X20is_X20already_X20defined_X20as_X20_X25s_X2E_X20Cannot_X20redefine_X20as_X20_X25s_X2E), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(statement_keywords), + /* K11 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K12 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(validate_user_name), + &be_const_str_solidified, + ( &(const binstruction[77]) { /* code */ + 0xA40E0000, // 0000 IMPORT R3 K0 + 0x88100101, // 0001 GETMBR R4 R0 K1 + 0x8C100902, // 0002 GETMET R4 R4 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C100400, // 0004 CALL R4 2 + 0x4C140000, // 0005 LDNIL R5 + 0x1C140805, // 0006 EQ R5 R4 R5 + 0x78160000, // 0007 JMPF R5 #0009 + 0x70020028, // 0008 JMP #0032 + 0x88140903, // 0009 GETMBR R5 R4 K3 + 0x7816000E, // 000A JMPF R5 #001A + 0x88140904, // 000B GETMBR R5 R4 K4 + 0x541A000A, // 000C LDINT R6 11 + 0x1C140A06, // 000D EQ R5 R5 R6 + 0x7816000A, // 000E JMPF R5 #001A + 0x8C140105, // 000F GETMET R5 R0 K5 + 0x601C0018, // 0010 GETGBL R7 G24 + 0x58200006, // 0011 LDCONST R8 K6 + 0x5C240200, // 0012 MOVE R9 R1 + 0x5C280200, // 0013 MOVE R10 R1 + 0x5C2C0200, // 0014 MOVE R11 R1 + 0x7C1C0800, // 0015 CALL R7 4 + 0x7C140400, // 0016 CALL R5 2 + 0x50140000, // 0017 LDBOOL R5 0 0 + 0x80040A00, // 0018 RET 1 R5 + 0x70020017, // 0019 JMP #0032 + 0x88140903, // 001A GETMBR R5 R4 K3 + 0x7816000B, // 001B JMPF R5 #0028 + 0x8C140105, // 001C GETMET R5 R0 K5 + 0x601C0018, // 001D GETGBL R7 G24 + 0x58200007, // 001E LDCONST R8 K7 + 0x5C240200, // 001F MOVE R9 R1 + 0x88280904, // 0020 GETMBR R10 R4 K4 + 0x5C2C0200, // 0021 MOVE R11 R1 + 0x5C300200, // 0022 MOVE R12 R1 + 0x7C1C0A00, // 0023 CALL R7 5 + 0x7C140400, // 0024 CALL R5 2 + 0x50140000, // 0025 LDBOOL R5 0 0 + 0x80040A00, // 0026 RET 1 R5 + 0x70020009, // 0027 JMP #0032 + 0x8C140105, // 0028 GETMET R5 R0 K5 + 0x601C0018, // 0029 GETGBL R7 G24 + 0x58200008, // 002A LDCONST R8 K8 + 0x5C240200, // 002B MOVE R9 R1 + 0x88280904, // 002C GETMBR R10 R4 K4 + 0x5C2C0400, // 002D MOVE R11 R2 + 0x7C1C0800, // 002E CALL R7 4 + 0x7C140400, // 002F CALL R5 2 + 0x50140000, // 0030 LDBOOL R5 0 0 + 0x80040A00, // 0031 RET 1 R5 + 0x60140010, // 0032 GETGBL R5 G16 + 0x88180709, // 0033 GETMBR R6 R3 K9 + 0x88180D0A, // 0034 GETMBR R6 R6 K10 + 0x7C140200, // 0035 CALL R5 1 + 0xA8020010, // 0036 EXBLK 0 #0048 + 0x5C180A00, // 0037 MOVE R6 R5 + 0x7C180000, // 0038 CALL R6 0 + 0x1C1C0206, // 0039 EQ R7 R1 R6 + 0x781E000B, // 003A JMPF R7 #0047 + 0x8C1C0105, // 003B GETMET R7 R0 K5 + 0x60240018, // 003C GETGBL R9 G24 + 0x5828000B, // 003D LDCONST R10 K11 + 0x5C2C0200, // 003E MOVE R11 R1 + 0x5C300400, // 003F MOVE R12 R2 + 0x5C340200, // 0040 MOVE R13 R1 + 0x5C380200, // 0041 MOVE R14 R1 + 0x7C240A00, // 0042 CALL R9 5 + 0x7C1C0400, // 0043 CALL R7 2 + 0x501C0000, // 0044 LDBOOL R7 0 0 + 0xA8040001, // 0045 EXBLK 1 1 + 0x80040E00, // 0046 RET 1 R7 + 0x7001FFEE, // 0047 JMP #0037 + 0x5814000C, // 0048 LDCONST R5 K12 + 0xAC140200, // 0049 CATCH R5 1 0 + 0xB0080000, // 004A RAISE 2 R0 R0 + 0x50140200, // 004B LDBOOL R5 1 0 + 0x80040A00, // 004C RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _add_inherited_params_to_template +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__add_inherited_params_to_template, /* 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[15]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(init_strip), + /* K3 */ be_nested_str_weak(engine_proxy), + /* K4 */ be_nested_str_weak(contains), + /* K5 */ be_nested_str_weak(PARAMS), + /* K6 */ be_nested_str_weak(keys), + /* K7 */ be_nested_str_weak(stop_iteration), + /* K8 */ be_nested_str_weak(name), + /* K9 */ be_nested_str_weak(priority), + /* K10 */ be_nested_str_weak(duration), + /* K11 */ be_nested_str_weak(loop), + /* K12 */ be_nested_str_weak(opacity), + /* K13 */ be_nested_str_weak(color), + /* K14 */ be_nested_str_weak(is_running), + }), + be_str_weak(_add_inherited_params_to_template), + &be_const_str_solidified, + ( &(const binstruction[67]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0xA8020026, // 0001 EXBLK 0 #0029 + 0xB80E0200, // 0002 GETNGBL R3 K1 + 0x8C0C0702, // 0003 GETMET R3 R3 K2 + 0x7C0C0200, // 0004 CALL R3 1 + 0xB8120200, // 0005 GETNGBL R4 K1 + 0x8C100903, // 0006 GETMET R4 R4 K3 + 0x5C180600, // 0007 MOVE R6 R3 + 0x7C100400, // 0008 CALL R4 2 + 0x60140006, // 0009 GETGBL R5 G6 + 0x5C180800, // 000A MOVE R6 R4 + 0x7C140200, // 000B CALL R5 1 + 0x4C180000, // 000C LDNIL R6 + 0x20180A06, // 000D NE R6 R5 R6 + 0x781A0017, // 000E JMPF R6 #0027 + 0x8C180504, // 000F GETMET R6 R2 K4 + 0x5C200A00, // 0010 MOVE R8 R5 + 0x58240005, // 0011 LDCONST R9 K5 + 0x7C180600, // 0012 CALL R6 3 + 0x781A000D, // 0013 JMPF R6 #0022 + 0x88180B05, // 0014 GETMBR R6 R5 K5 + 0x601C0010, // 0015 GETGBL R7 G16 + 0x8C200D06, // 0016 GETMET R8 R6 K6 + 0x7C200200, // 0017 CALL R8 1 + 0x7C1C0200, // 0018 CALL R7 1 + 0xA8020004, // 0019 EXBLK 0 #001F + 0x5C200E00, // 001A MOVE R8 R7 + 0x7C200000, // 001B CALL R8 0 + 0x50240200, // 001C LDBOOL R9 1 0 + 0x98041009, // 001D SETIDX R1 R8 R9 + 0x7001FFFA, // 001E JMP #001A + 0x581C0007, // 001F LDCONST R7 K7 + 0xAC1C0200, // 0020 CATCH R7 1 0 + 0xB0080000, // 0021 RAISE 2 R0 R0 + 0x60180003, // 0022 GETGBL R6 G3 + 0x5C1C0A00, // 0023 MOVE R7 R5 + 0x7C180200, // 0024 CALL R6 1 + 0x5C140C00, // 0025 MOVE R5 R6 + 0x7001FFE4, // 0026 JMP #000C + 0xA8040001, // 0027 EXBLK 1 1 + 0x70020018, // 0028 JMP #0042 + 0xAC0C0002, // 0029 CATCH R3 0 2 + 0x70020015, // 002A JMP #0041 + 0x60140012, // 002B GETGBL R5 G18 + 0x7C140000, // 002C CALL R5 0 + 0x40180B08, // 002D CONNECT R6 R5 K8 + 0x40180B09, // 002E CONNECT R6 R5 K9 + 0x40180B0A, // 002F CONNECT R6 R5 K10 + 0x40180B0B, // 0030 CONNECT R6 R5 K11 + 0x40180B0C, // 0031 CONNECT R6 R5 K12 + 0x40180B0D, // 0032 CONNECT R6 R5 K13 + 0x40180B0E, // 0033 CONNECT R6 R5 K14 + 0x60180010, // 0034 GETGBL R6 G16 + 0x5C1C0A00, // 0035 MOVE R7 R5 + 0x7C180200, // 0036 CALL R6 1 + 0xA8020004, // 0037 EXBLK 0 #003D + 0x5C1C0C00, // 0038 MOVE R7 R6 + 0x7C1C0000, // 0039 CALL R7 0 + 0x50200200, // 003A LDBOOL R8 1 0 + 0x98040E08, // 003B SETIDX R1 R7 R8 + 0x7001FFFA, // 003C JMP #0038 + 0x58180007, // 003D LDCONST R6 K7 + 0xAC180200, // 003E CATCH R6 1 0 + 0xB0080000, // 003F RAISE 2 R0 R0 + 0x70020000, // 0040 JMP #0042 + 0xB0080000, // 0041 RAISE 2 R0 R0 + 0x80000000, // 0042 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[10]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(process_function_arguments), + /* K3 */ be_nested_str_weak(), + /* K4 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K5 */ be_nested_str_weak(engine), + /* K6 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(User_X20functions_X20must_X20be_X20called_X20with_X20parentheses_X3A_X20user_X2Efunction_name_X28_X29), + /* K9 */ be_nested_str_weak(nil), + }), + be_str_weak(_process_user_function_call), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0017, // 0004 JMPF R2 #001D + 0x8C080100, // 0005 GETMET R2 R0 K0 + 0x7C080200, // 0006 CALL R2 1 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0x540E0017, // 0008 LDINT R3 24 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0011, // 000A JMPF R2 #001D + 0x8C080102, // 000B GETMET R2 R0 K2 + 0x50100200, // 000C LDBOOL R4 1 0 + 0x7C080400, // 000D CALL R2 2 + 0x200C0503, // 000E NE R3 R2 K3 + 0x780E0004, // 000F JMPF R3 #0015 + 0x600C0018, // 0010 GETGBL R3 G24 + 0x58100004, // 0011 LDCONST R4 K4 + 0x5C140400, // 0012 MOVE R5 R2 + 0x7C0C0400, // 0013 CALL R3 2 + 0x70020000, // 0014 JMP #0016 + 0x580C0005, // 0015 LDCONST R3 K5 + 0x60100018, // 0016 GETGBL R4 G24 + 0x58140006, // 0017 LDCONST R5 K6 + 0x5C180200, // 0018 MOVE R6 R1 + 0x5C1C0600, // 0019 MOVE R7 R3 + 0x7C100600, // 001A CALL R4 3 + 0x80040800, // 001B RET 1 R4 + 0x70020003, // 001C JMP #0021 + 0x8C080107, // 001D GETMET R2 R0 K7 + 0x58100008, // 001E LDCONST R4 K8 + 0x7C080400, // 001F CALL R2 2 + 0x80061200, // 0020 RET 1 K9 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_right_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), + }), + be_str_weak(expect_right_brace), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001A, // 0006 LDINT R3 27 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F 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[33]) { /* 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_const_int(0), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(peek), + /* K11 */ be_nested_str_weak(value), + /* K12 */ be_nested_str_weak(), + /* K13 */ be_nested_str_weak(_X20_X20), + /* K14 */ be_nested_str_weak(symbol_table), + /* K15 */ be_nested_str_weak(get), + /* K16 */ be_nested_str_weak(process_function_arguments), + /* K17 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K18 */ be_nested_str_weak(engine), + /* K19 */ be_nested_str_weak(add), + /* K20 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), + /* K21 */ be_nested_str_weak(create_animation), + /* K22 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), + /* K23 */ be_nested_str_weak(error), + /* K24 */ 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), + /* K25 */ be_nested_str_weak(is_builtin), + /* K26 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), + /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_animation_X28engine_X29_X25s), + /* K28 */ be_nested_str_weak(_create_instance_for_validation), + /* K29 */ be_nested_str_weak(_process_named_arguments_for_animation), + /* K30 */ be_nested_str_weak(_X25s_), + /* K31 */ be_nested_str_weak(_process_simple_value_assignment), + /* K32 */ 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 + 0x1C0C0708, // 0011 EQ R3 R3 K8 + 0x740E0002, // 0012 JMPT R3 #0016 + 0x880C0507, // 0013 GETMBR R3 R2 K7 + 0x1C0C0709, // 0014 EQ R3 R3 K9 + 0x780E009C, // 0015 JMPF R3 #00B3 + 0x8C0C010A, // 0016 GETMET R3 R0 K10 + 0x7C0C0200, // 0017 CALL R3 1 + 0x4C100000, // 0018 LDNIL R4 + 0x200C0604, // 0019 NE R3 R3 R4 + 0x780E0097, // 001A JMPF R3 #00B3 + 0x8C0C010A, // 001B GETMET R3 R0 K10 + 0x7C0C0200, // 001C CALL R3 1 + 0x880C0707, // 001D GETMBR R3 R3 K7 + 0x54120017, // 001E LDINT R4 24 + 0x1C0C0604, // 001F EQ R3 R3 R4 + 0x780E0091, // 0020 JMPF R3 #00B3 + 0x880C050B, // 0021 GETMBR R3 R2 K11 + 0x8C100100, // 0022 GETMET R4 R0 K0 + 0x7C100200, // 0023 CALL R4 1 + 0x5810000C, // 0024 LDCONST R4 K12 + 0x8C140106, // 0025 GETMET R5 R0 K6 + 0x7C140200, // 0026 CALL R5 1 + 0x4C180000, // 0027 LDNIL R6 + 0x20140A06, // 0028 NE R5 R5 R6 + 0x7816000C, // 0029 JMPF R5 #0037 + 0x8C140106, // 002A GETMET R5 R0 K6 + 0x7C140200, // 002B CALL R5 1 + 0x88140B07, // 002C GETMBR R5 R5 K7 + 0x541A0024, // 002D LDINT R6 37 + 0x1C140A06, // 002E EQ R5 R5 R6 + 0x78160006, // 002F JMPF R5 #0037 + 0x8C140106, // 0030 GETMET R5 R0 K6 + 0x7C140200, // 0031 CALL R5 1 + 0x88140B0B, // 0032 GETMBR R5 R5 K11 + 0x00161A05, // 0033 ADD R5 K13 R5 + 0x5C100A00, // 0034 MOVE R4 R5 + 0x8C140100, // 0035 GETMET R5 R0 K0 + 0x7C140200, // 0036 CALL R5 1 + 0x8814010E, // 0037 GETMBR R5 R0 K14 + 0x8C140B0F, // 0038 GETMET R5 R5 K15 + 0x5C1C0600, // 0039 MOVE R7 R3 + 0x7C140400, // 003A CALL R5 2 + 0x4C180000, // 003B LDNIL R6 + 0x20180A06, // 003C NE R6 R5 R6 + 0x781A001D, // 003D JMPF R6 #005C + 0x88180B07, // 003E GETMBR R6 R5 K7 + 0x541E000D, // 003F LDINT R7 14 + 0x1C180C07, // 0040 EQ R6 R6 R7 + 0x781A0019, // 0041 JMPF R6 #005C + 0x8C180110, // 0042 GETMET R6 R0 K16 + 0x50200000, // 0043 LDBOOL R8 0 0 + 0x7C180400, // 0044 CALL R6 2 + 0x201C0D0C, // 0045 NE R7 R6 K12 + 0x781E0004, // 0046 JMPF R7 #004C + 0x601C0018, // 0047 GETGBL R7 G24 + 0x58200011, // 0048 LDCONST R8 K17 + 0x5C240C00, // 0049 MOVE R9 R6 + 0x7C1C0400, // 004A CALL R7 2 + 0x70020000, // 004B JMP #004D + 0x581C0012, // 004C LDCONST R7 K18 + 0x8C200113, // 004D GETMET R8 R0 K19 + 0x60280018, // 004E GETGBL R10 G24 + 0x582C0014, // 004F LDCONST R11 K20 + 0x5C300200, // 0050 MOVE R12 R1 + 0x5C340600, // 0051 MOVE R13 R3 + 0x5C380E00, // 0052 MOVE R14 R7 + 0x5C3C0800, // 0053 MOVE R15 R4 + 0x7C280A00, // 0054 CALL R10 5 + 0x7C200400, // 0055 CALL R8 2 + 0x8820010E, // 0056 GETMBR R8 R0 K14 + 0x8C201115, // 0057 GETMET R8 R8 K21 + 0x5C280200, // 0058 MOVE R10 R1 + 0x4C2C0000, // 0059 LDNIL R11 + 0x7C200600, // 005A CALL R8 3 + 0x70020055, // 005B JMP #00B2 + 0x4C180000, // 005C LDNIL R6 + 0x20180A06, // 005D NE R6 R5 R6 + 0x781A001D, // 005E JMPF R6 #007D + 0x88180B07, // 005F GETMBR R6 R5 K7 + 0x541E0004, // 0060 LDINT R7 5 + 0x1C180C07, // 0061 EQ R6 R6 R7 + 0x781A0019, // 0062 JMPF R6 #007D + 0x8C180110, // 0063 GETMET R6 R0 K16 + 0x50200000, // 0064 LDBOOL R8 0 0 + 0x7C180400, // 0065 CALL R6 2 + 0x201C0D0C, // 0066 NE R7 R6 K12 + 0x781E0004, // 0067 JMPF R7 #006D + 0x601C0018, // 0068 GETGBL R7 G24 + 0x58200011, // 0069 LDCONST R8 K17 + 0x5C240C00, // 006A MOVE R9 R6 + 0x7C1C0400, // 006B CALL R7 2 + 0x70020000, // 006C JMP #006E + 0x581C0012, // 006D LDCONST R7 K18 + 0x8C200113, // 006E GETMET R8 R0 K19 + 0x60280018, // 006F GETGBL R10 G24 + 0x582C0016, // 0070 LDCONST R11 K22 + 0x5C300200, // 0071 MOVE R12 R1 + 0x5C340600, // 0072 MOVE R13 R3 + 0x5C380E00, // 0073 MOVE R14 R7 + 0x5C3C0800, // 0074 MOVE R15 R4 + 0x7C280A00, // 0075 CALL R10 5 + 0x7C200400, // 0076 CALL R8 2 + 0x8820010E, // 0077 GETMBR R8 R0 K14 + 0x8C201115, // 0078 GETMET R8 R8 K21 + 0x5C280200, // 0079 MOVE R10 R1 + 0x4C2C0000, // 007A LDNIL R11 + 0x7C200600, // 007B CALL R8 3 + 0x70020034, // 007C JMP #00B2 + 0x4C180000, // 007D LDNIL R6 + 0x1C180A06, // 007E EQ R6 R5 R6 + 0x741A0003, // 007F JMPT R6 #0084 + 0x88180B07, // 0080 GETMBR R6 R5 K7 + 0x541E0007, // 0081 LDINT R7 8 + 0x20180C07, // 0082 NE R6 R6 R7 + 0x781A0008, // 0083 JMPF R6 #008D + 0x8C180117, // 0084 GETMET R6 R0 K23 + 0x60200018, // 0085 GETGBL R8 G24 + 0x58240018, // 0086 LDCONST R9 K24 + 0x5C280600, // 0087 MOVE R10 R3 + 0x7C200400, // 0088 CALL R8 2 + 0x7C180400, // 0089 CALL R6 2 + 0x8C180104, // 008A GETMET R6 R0 K4 + 0x7C180200, // 008B CALL R6 1 + 0x80000C00, // 008C RET 0 + 0x88180B19, // 008D GETMBR R6 R5 K25 + 0x781A0008, // 008E JMPF R6 #0098 + 0x8C180113, // 008F GETMET R6 R0 K19 + 0x60200018, // 0090 GETGBL R8 G24 + 0x5824001A, // 0091 LDCONST R9 K26 + 0x5C280200, // 0092 MOVE R10 R1 + 0x5C2C0600, // 0093 MOVE R11 R3 + 0x5C300800, // 0094 MOVE R12 R4 + 0x7C200800, // 0095 CALL R8 4 + 0x7C180400, // 0096 CALL R6 2 + 0x70020007, // 0097 JMP #00A0 + 0x8C180113, // 0098 GETMET R6 R0 K19 + 0x60200018, // 0099 GETGBL R8 G24 + 0x5824001B, // 009A LDCONST R9 K27 + 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 + 0x8C18011C, // 00A0 GETMET R6 R0 K28 + 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 + 0x881C010E, // 00A6 GETMBR R7 R0 K14 + 0x8C1C0F15, // 00A7 GETMET R7 R7 K21 + 0x5C240200, // 00A8 MOVE R9 R1 + 0x5C280C00, // 00A9 MOVE R10 R6 + 0x7C1C0600, // 00AA CALL R7 3 + 0x8C1C011D, // 00AB GETMET R7 R0 K29 + 0x60240018, // 00AC GETGBL R9 G24 + 0x5828001E, // 00AD LDCONST R10 K30 + 0x5C2C0200, // 00AE MOVE R11 R1 + 0x7C240400, // 00AF CALL R9 2 + 0x5C280600, // 00B0 MOVE R10 R3 + 0x7C1C0600, // 00B1 CALL R7 3 + 0x70020004, // 00B2 JMP #00B8 + 0x8C0C011F, // 00B3 GETMET R3 R0 K31 + 0x5C140200, // 00B4 MOVE R5 R1 + 0x88180120, // 00B5 GETMBR R6 R0 K32 + 0x841C0000, // 00B6 CLOSURE R7 P0 + 0x7C0C0800, // 00B7 CALL R3 4 + 0xA0000000, // 00B8 CLOSE R0 + 0x80000000, // 00B9 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_additive_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ be_nested_proto( 15, /* nstack */ 4, /* argc */ @@ -7537,59 +7585,1360 @@ be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(_X25s_), - /* K2 */ be_nested_str_weak(self_X2E_X25s), - /* K3 */ be_nested_str_weak(find), - /* K4 */ be_nested_str_weak(warning), - /* K5 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20parameter_X20_X27_X25s_X27_X20is_X20declared_X20but_X20never_X20used_X20in_X20the_X20template_X20body_X2E), - /* K6 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[16]) { /* 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(value), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(has_dangerous), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(error), + /* K9 */ 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), + /* K10 */ be_nested_str_weak(skip_statement), + /* K11 */ be_nested_str_weak(ExpressionResult), + /* K12 */ be_nested_str_weak(literal), + /* K13 */ be_nested_str_weak(nil), + /* K14 */ be_nested_str_weak(combine), + /* K15 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), }), - be_str_weak(_validate_template_parameter_usage), + be_str_weak(process_additive_expression), &be_const_str_solidified, - ( &(const binstruction[41]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x60140010, // 0001 GETGBL R5 G16 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C140200, // 0003 CALL R5 1 - 0xA802001F, // 0004 EXBLK 0 #0025 - 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 - 0x60200018, // 000B GETGBL R8 G24 - 0x58240002, // 000C LDCONST R9 K2 - 0x5C280C00, // 000D MOVE R10 R6 - 0x7C200400, // 000E CALL R8 2 - 0x8C240903, // 000F GETMET R9 R4 K3 - 0x5C2C0600, // 0010 MOVE R11 R3 - 0x5C300E00, // 0011 MOVE R12 R7 - 0x7C240600, // 0012 CALL R9 3 - 0x5429FFFE, // 0013 LDINT R10 -1 - 0x1C24120A, // 0014 EQ R9 R9 R10 - 0x7826000D, // 0015 JMPF R9 #0024 - 0x8C240903, // 0016 GETMET R9 R4 K3 - 0x5C2C0600, // 0017 MOVE R11 R3 - 0x5C301000, // 0018 MOVE R12 R8 - 0x7C240600, // 0019 CALL R9 3 - 0x5429FFFE, // 001A LDINT R10 -1 - 0x1C24120A, // 001B EQ R9 R9 R10 - 0x78260006, // 001C JMPF R9 #0024 - 0x8C240104, // 001D GETMET R9 R0 K4 - 0x602C0018, // 001E GETGBL R11 G24 - 0x58300005, // 001F LDCONST R12 K5 - 0x5C340200, // 0020 MOVE R13 R1 - 0x5C380C00, // 0021 MOVE R14 R6 - 0x7C2C0600, // 0022 CALL R11 3 - 0x7C240400, // 0023 CALL R9 2 - 0x7001FFDF, // 0024 JMP #0005 - 0x58140006, // 0025 LDCONST R5 K6 - 0xAC140200, // 0026 CATCH R5 1 0 - 0xB0080000, // 0027 RAISE 2 R0 R0 - 0x80000000, // 0028 RET 0 + ( &(const binstruction[68]) { /* 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 + 0x7416003A, // 0007 JMPT R5 #0043 + 0x8C140102, // 0008 GETMET R5 R0 K2 + 0x7C140200, // 0009 CALL R5 1 + 0x4C180000, // 000A LDNIL R6 + 0x20180A06, // 000B NE R6 R5 R6 + 0x781A0033, // 000C JMPF R6 #0041 + 0x88180B03, // 000D GETMBR R6 R5 K3 + 0x541E0008, // 000E LDINT R7 9 + 0x1C180C07, // 000F EQ R6 R6 R7 + 0x741A0003, // 0010 JMPT R6 #0015 + 0x88180B03, // 0011 GETMBR R6 R5 K3 + 0x541E0009, // 0012 LDINT R7 10 + 0x1C180C07, // 0013 EQ R6 R6 R7 + 0x781A002B, // 0014 JMPF R6 #0041 + 0x88180B04, // 0015 GETMBR R6 R5 K4 + 0x8C1C0105, // 0016 GETMET R7 R0 K5 + 0x7C1C0200, // 0017 CALL R7 1 + 0x8C1C0100, // 0018 GETMET R7 R0 K0 + 0x5C240200, // 0019 MOVE R9 R1 + 0x50280000, // 001A LDBOOL R10 0 0 + 0x5C2C0600, // 001B MOVE R11 R3 + 0x7C1C0800, // 001C CALL R7 4 + 0x88200906, // 001D GETMBR R8 R4 K6 + 0x74220001, // 001E JMPT R8 #0021 + 0x88200F06, // 001F GETMBR R8 R7 K6 + 0x78220012, // 0020 JMPF R8 #0034 + 0x88200906, // 0021 GETMBR R8 R4 K6 + 0x78220001, // 0022 JMPF R8 #0025 + 0x88200907, // 0023 GETMBR R8 R4 K7 + 0x70020000, // 0024 JMP #0026 + 0x88200F07, // 0025 GETMBR R8 R7 K7 + 0x8C240108, // 0026 GETMET R9 R0 K8 + 0x602C0018, // 0027 GETGBL R11 G24 + 0x58300009, // 0028 LDCONST R12 K9 + 0x5C341000, // 0029 MOVE R13 R8 + 0x5C381000, // 002A MOVE R14 R8 + 0x7C2C0600, // 002B CALL R11 3 + 0x7C240400, // 002C CALL R9 2 + 0x8C24010A, // 002D GETMET R9 R0 K10 + 0x7C240200, // 002E CALL R9 1 + 0x8824010B, // 002F GETMBR R9 R0 K11 + 0x8C24130C, // 0030 GETMET R9 R9 K12 + 0x582C000D, // 0031 LDCONST R11 K13 + 0x7C240400, // 0032 CALL R9 2 + 0x80041200, // 0033 RET 1 R9 + 0x8820010B, // 0034 GETMBR R8 R0 K11 + 0x8C20110E, // 0035 GETMET R8 R8 K14 + 0x60280018, // 0036 GETGBL R10 G24 + 0x582C000F, // 0037 LDCONST R11 K15 + 0x88300907, // 0038 GETMBR R12 R4 K7 + 0x5C340C00, // 0039 MOVE R13 R6 + 0x88380F07, // 003A GETMBR R14 R7 K7 + 0x7C280800, // 003B CALL R10 4 + 0x5C2C0800, // 003C MOVE R11 R4 + 0x5C300E00, // 003D MOVE R12 R7 + 0x7C200800, // 003E CALL R8 4 + 0x5C101000, // 003F MOVE R4 R8 + 0x70020000, // 0040 JMP #0042 + 0x70020000, // 0041 JMP #0043 + 0x7001FFC1, // 0042 JMP #0005 + 0x80040800, // 0043 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X28_X27), + }), + be_str_weak(expect_left_paren), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0017, // 0006 LDINT R3 24 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F 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[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(_X20_X20), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_nested_str_weak(), + }), + be_str_weak(collect_inline_comment), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* 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 + 0x540E0024, // 0006 LDINT R3 37 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0004, // 0008 JMPF R2 #000E + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0x000A0402, // 000A ADD R2 K2 R2 + 0x8C0C0104, // 000B GETMET R3 R0 K4 + 0x7C0C0200, // 000C CALL R3 1 + 0x80040400, // 000D RET 1 R2 + 0x80060A00, // 000E RET 1 K5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _create_instance_for_validation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* 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(instance), + }), + be_str_weak(_create_instance_for_validation), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* 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 + 0x780E0001, // 0006 JMPF R3 #0009 + 0x880C0502, // 0007 GETMBR R3 R2 K2 + 0x70020000, // 0008 JMP #000A + 0x4C0C0000, // 0009 LDNIL R3 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_value_provider_reference +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_reference, /* 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(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_X20statement_X2E_X20Make_X20sure_X20the_X20value_X20provider_X20or_X20animation_X20is_X20defined_X20before_X20use_X2E), + /* K4 */ be_nested_str_weak(get), + /* K5 */ be_nested_str_weak(type), + /* K6 */ be_nested_str_weak(_X27_X25s_X27_X20in_X20_X25s_X20statement_X20is_X20not_X20a_X20value_X20provider_X20or_X20animation_X20instance_X2E_X20Only_X20value_X20provider_X20instances_X20_X28like_X20oscillators_X29_X20and_X20animation_X20instances_X20can_X20be_X20restarted_X2E), + /* K7 */ be_nested_str_weak(Could_X20not_X20validate_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X3A_X20_X25s), + }), + be_str_weak(_validate_value_provider_reference), + &be_const_str_solidified, + ( &(const binstruction[65]) { /* code */ + 0xA8020030, // 0000 EXBLK 0 #0032 + 0x880C0100, // 0001 GETMBR R3 R0 K0 + 0x8C0C0701, // 0002 GETMET R3 R3 K1 + 0x5C140200, // 0003 MOVE R5 R1 + 0x7C0C0400, // 0004 CALL R3 2 + 0x740E0009, // 0005 JMPT R3 #0010 + 0x8C0C0102, // 0006 GETMET R3 R0 K2 + 0x60140018, // 0007 GETGBL R5 G24 + 0x58180003, // 0008 LDCONST R6 K3 + 0x5C1C0200, // 0009 MOVE R7 R1 + 0x5C200400, // 000A MOVE R8 R2 + 0x7C140600, // 000B CALL R5 3 + 0x7C0C0400, // 000C CALL R3 2 + 0x500C0000, // 000D LDBOOL R3 0 0 + 0xA8040001, // 000E EXBLK 1 1 + 0x80040600, // 000F RET 1 R3 + 0x880C0100, // 0010 GETMBR R3 R0 K0 + 0x8C0C0704, // 0011 GETMET R3 R3 K4 + 0x5C140200, // 0012 MOVE R5 R1 + 0x7C0C0400, // 0013 CALL R3 2 + 0x4C100000, // 0014 LDNIL R4 + 0x20100604, // 0015 NE R4 R3 R4 + 0x78120015, // 0016 JMPF R4 #002D + 0x88100705, // 0017 GETMBR R4 R3 K5 + 0x54160006, // 0018 LDINT R5 7 + 0x1C100805, // 0019 EQ R4 R4 R5 + 0x74120003, // 001A JMPT R4 #001F + 0x88100705, // 001B GETMBR R4 R3 K5 + 0x54160008, // 001C LDINT R5 9 + 0x1C100805, // 001D EQ R4 R4 R5 + 0x78120003, // 001E JMPF R4 #0023 + 0x50100200, // 001F LDBOOL R4 1 0 + 0xA8040001, // 0020 EXBLK 1 1 + 0x80040800, // 0021 RET 1 R4 + 0x70020009, // 0022 JMP #002D + 0x8C100102, // 0023 GETMET R4 R0 K2 + 0x60180018, // 0024 GETGBL R6 G24 + 0x581C0006, // 0025 LDCONST R7 K6 + 0x5C200200, // 0026 MOVE R8 R1 + 0x5C240400, // 0027 MOVE R9 R2 + 0x7C180600, // 0028 CALL R6 3 + 0x7C100400, // 0029 CALL R4 2 + 0x50100000, // 002A LDBOOL R4 0 0 + 0xA8040001, // 002B EXBLK 1 1 + 0x80040800, // 002C RET 1 R4 + 0x50100200, // 002D LDBOOL R4 1 0 + 0xA8040001, // 002E EXBLK 1 1 + 0x80040800, // 002F RET 1 R4 + 0xA8040001, // 0030 EXBLK 1 1 + 0x7002000D, // 0031 JMP #0040 + 0xAC0C0002, // 0032 CATCH R3 0 2 + 0x7002000A, // 0033 JMP #003F + 0x8C140102, // 0034 GETMET R5 R0 K2 + 0x601C0018, // 0035 GETGBL R7 G24 + 0x58200007, // 0036 LDCONST R8 K7 + 0x5C240200, // 0037 MOVE R9 R1 + 0x5C280400, // 0038 MOVE R10 R2 + 0x5C2C0800, // 0039 MOVE R11 R4 + 0x7C1C0800, // 003A CALL R7 4 + 0x7C140400, // 003B CALL R5 2 + 0x50140000, // 003C LDBOOL R5 0 0 + 0x80040A00, // 003D RET 1 R5 + 0x70020000, // 003E JMP #0040 + 0xB0080000, // 003F RAISE 2 R0 R0 + 0x80000000, // 0040 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: _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: 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[ 4]) { /* 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(next), + }), + be_str_weak(skip_statement), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x7406000C, // 0002 JMPT R1 #0010 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x1C080202, // 0006 EQ R2 R1 R2 + 0x740A0003, // 0007 JMPT R2 #000C + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0x540E0022, // 0009 LDINT R3 35 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x780A0000, // 000B JMPF R2 #000D + 0x70020002, // 000C JMP #0010 + 0x8C080103, // 000D GETMET R2 R0 K3 + 0x7C080200, // 000E CALL R2 1 + 0x7001FFEF, // 000F JMP #0000 + 0x80000000, // 0010 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_repeat_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_repeat_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[24]) { /* 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_const_int(0), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(forever), + /* K7 */ be_nested_str_weak(_X2D1), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), + /* K10 */ be_nested_str_weak(expect_keyword), + /* K11 */ be_nested_str_weak(times), + /* K12 */ be_nested_str_weak(expr), + /* K13 */ be_nested_str_weak(expect_left_brace), + /* K14 */ be_nested_str_weak(add), + /* K15 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2Esequence_manager_X28engine_X2C_X20_X25s_X29), + /* K16 */ be_nested_str_weak(get_indent), + /* K17 */ be_nested_str_weak(indent_level), + /* K18 */ be_const_int(1), + /* K19 */ be_nested_str_weak(at_end), + /* K20 */ be_nested_str_weak(check_right_brace), + /* K21 */ be_nested_str_weak(process_sequence_statement), + /* K22 */ be_nested_str_weak(expect_right_brace), + /* K23 */ be_nested_str_weak(_X25s_X29), + }), + be_str_weak(process_repeat_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[60]) { /* 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 + 0x780E0009, // 0007 JMPF R3 #0012 + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0x1C0C0704, // 0009 EQ R3 R3 K4 + 0x780E0006, // 000A JMPF R3 #0012 + 0x880C0505, // 000B GETMBR R3 R2 K5 + 0x1C0C0706, // 000C EQ R3 R3 K6 + 0x780E0003, // 000D JMPF R3 #0012 + 0x8C0C0100, // 000E GETMET R3 R0 K0 + 0x7C0C0200, // 000F CALL R3 1 + 0x58040007, // 0010 LDCONST R1 K7 + 0x70020006, // 0011 JMP #0019 + 0x8C0C0108, // 0012 GETMET R3 R0 K8 + 0x88140109, // 0013 GETMBR R5 R0 K9 + 0x7C0C0400, // 0014 CALL R3 2 + 0x8C10010A, // 0015 GETMET R4 R0 K10 + 0x5818000B, // 0016 LDCONST R6 K11 + 0x7C100400, // 0017 CALL R4 2 + 0x8804070C, // 0018 GETMBR R1 R3 K12 + 0x8C0C010D, // 0019 GETMET R3 R0 K13 + 0x7C0C0200, // 001A CALL R3 1 + 0x8C0C010E, // 001B GETMET R3 R0 K14 + 0x60140018, // 001C GETGBL R5 G24 + 0x5818000F, // 001D LDCONST R6 K15 + 0x8C1C0110, // 001E GETMET R7 R0 K16 + 0x7C1C0200, // 001F CALL R7 1 + 0x5C200200, // 0020 MOVE R8 R1 + 0x7C140600, // 0021 CALL R5 3 + 0x7C0C0400, // 0022 CALL R3 2 + 0x880C0111, // 0023 GETMBR R3 R0 K17 + 0x000C0712, // 0024 ADD R3 R3 K18 + 0x90022203, // 0025 SETMBR R0 K17 R3 + 0x8C0C0113, // 0026 GETMET R3 R0 K19 + 0x7C0C0200, // 0027 CALL R3 1 + 0x740E0005, // 0028 JMPT R3 #002F + 0x8C0C0114, // 0029 GETMET R3 R0 K20 + 0x7C0C0200, // 002A CALL R3 1 + 0x740E0002, // 002B JMPT R3 #002F + 0x8C0C0115, // 002C GETMET R3 R0 K21 + 0x7C0C0200, // 002D CALL R3 1 + 0x7001FFF6, // 002E JMP #0026 + 0x8C0C0116, // 002F GETMET R3 R0 K22 + 0x7C0C0200, // 0030 CALL R3 1 + 0x8C0C010E, // 0031 GETMET R3 R0 K14 + 0x60140018, // 0032 GETGBL R5 G24 + 0x58180017, // 0033 LDCONST R6 K23 + 0x8C1C0110, // 0034 GETMET R7 R0 K16 + 0x7C1C0200, // 0035 CALL R7 1 + 0x7C140400, // 0036 CALL R5 2 + 0x7C0C0400, // 0037 CALL R3 2 + 0x880C0111, // 0038 GETMBR R3 R0 K17 + 0x040C0712, // 0039 SUB R3 R3 K18 + 0x90022203, // 003A SETMBR R0 K17 R3 + 0x80000000, // 003B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_multiplicative_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_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[16]) { /* constants */ + /* K0 */ be_nested_str_weak(process_unary_expression), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(has_dangerous), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(error), + /* K9 */ 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), + /* K10 */ be_nested_str_weak(skip_statement), + /* K11 */ be_nested_str_weak(ExpressionResult), + /* K12 */ be_nested_str_weak(literal), + /* K13 */ be_nested_str_weak(nil), + /* K14 */ be_nested_str_weak(combine), + /* K15 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + }), + be_str_weak(process_multiplicative_expression), + &be_const_str_solidified, + ( &(const binstruction[68]) { /* 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 + 0x7416003A, // 0007 JMPT R5 #0043 + 0x8C140102, // 0008 GETMET R5 R0 K2 + 0x7C140200, // 0009 CALL R5 1 + 0x4C180000, // 000A LDNIL R6 + 0x20180A06, // 000B NE R6 R5 R6 + 0x781A0033, // 000C JMPF R6 #0041 + 0x88180B03, // 000D GETMBR R6 R5 K3 + 0x541E000A, // 000E LDINT R7 11 + 0x1C180C07, // 000F EQ R6 R6 R7 + 0x741A0003, // 0010 JMPT R6 #0015 + 0x88180B03, // 0011 GETMBR R6 R5 K3 + 0x541E000B, // 0012 LDINT R7 12 + 0x1C180C07, // 0013 EQ R6 R6 R7 + 0x781A002B, // 0014 JMPF R6 #0041 + 0x88180B04, // 0015 GETMBR R6 R5 K4 + 0x8C1C0105, // 0016 GETMET R7 R0 K5 + 0x7C1C0200, // 0017 CALL R7 1 + 0x8C1C0100, // 0018 GETMET R7 R0 K0 + 0x5C240200, // 0019 MOVE R9 R1 + 0x50280000, // 001A LDBOOL R10 0 0 + 0x5C2C0600, // 001B MOVE R11 R3 + 0x7C1C0800, // 001C CALL R7 4 + 0x88200906, // 001D GETMBR R8 R4 K6 + 0x74220001, // 001E JMPT R8 #0021 + 0x88200F06, // 001F GETMBR R8 R7 K6 + 0x78220012, // 0020 JMPF R8 #0034 + 0x88200906, // 0021 GETMBR R8 R4 K6 + 0x78220001, // 0022 JMPF R8 #0025 + 0x88200907, // 0023 GETMBR R8 R4 K7 + 0x70020000, // 0024 JMP #0026 + 0x88200F07, // 0025 GETMBR R8 R7 K7 + 0x8C240108, // 0026 GETMET R9 R0 K8 + 0x602C0018, // 0027 GETGBL R11 G24 + 0x58300009, // 0028 LDCONST R12 K9 + 0x5C341000, // 0029 MOVE R13 R8 + 0x5C381000, // 002A MOVE R14 R8 + 0x7C2C0600, // 002B CALL R11 3 + 0x7C240400, // 002C CALL R9 2 + 0x8C24010A, // 002D GETMET R9 R0 K10 + 0x7C240200, // 002E CALL R9 1 + 0x8824010B, // 002F GETMBR R9 R0 K11 + 0x8C24130C, // 0030 GETMET R9 R9 K12 + 0x582C000D, // 0031 LDCONST R11 K13 + 0x7C240400, // 0032 CALL R9 2 + 0x80041200, // 0033 RET 1 R9 + 0x8820010B, // 0034 GETMBR R8 R0 K11 + 0x8C20110E, // 0035 GETMET R8 R8 K14 + 0x60280018, // 0036 GETGBL R10 G24 + 0x582C000F, // 0037 LDCONST R11 K15 + 0x88300907, // 0038 GETMBR R12 R4 K7 + 0x5C340C00, // 0039 MOVE R13 R6 + 0x88380F07, // 003A GETMBR R14 R7 K7 + 0x7C280800, // 003B CALL R10 4 + 0x5C2C0800, // 003C MOVE R11 R4 + 0x5C300E00, // 003D MOVE R12 R7 + 0x7C200800, // 003E CALL R8 4 + 0x5C101000, // 003F MOVE R4 R8 + 0x70020000, // 0040 JMP #0042 + 0x70020000, // 0041 JMP #0043 + 0x7001FFC1, // 0042 JMP #0005 + 0x80040800, // 0043 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X5B_X27), + }), + be_str_weak(expect_left_bracket), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001B, // 0006 LDINT R3 28 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _determine_symbol_return_type +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__determine_symbol_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[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(type), + /* K1 */ be_const_int(2), + /* K2 */ be_const_int(1), + /* K3 */ be_const_int(3), + }), + be_str_weak(_determine_symbol_return_type), + &be_const_str_solidified, + ( &(const binstruction[71]) { /* code */ + 0x88080300, // 0000 GETMBR R2 R1 K0 + 0x540E0008, // 0001 LDINT R3 9 + 0x1C080403, // 0002 EQ R2 R2 R3 + 0x740A0003, // 0003 JMPT R2 #0008 + 0x88080300, // 0004 GETMBR R2 R1 K0 + 0x540E0007, // 0005 LDINT R3 8 + 0x1C080403, // 0006 EQ R2 R2 R3 + 0x780A0002, // 0007 JMPF R2 #000B + 0x540A0008, // 0008 LDINT R2 9 + 0x80040400, // 0009 RET 1 R2 + 0x7002003A, // 000A JMP #0046 + 0x88080300, // 000B GETMBR R2 R1 K0 + 0x540E000A, // 000C LDINT R3 11 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x740A0003, // 000E JMPT R2 #0013 + 0x88080300, // 000F GETMBR R2 R1 K0 + 0x540E0009, // 0010 LDINT R3 10 + 0x1C080403, // 0011 EQ R2 R2 R3 + 0x780A0002, // 0012 JMPF R2 #0016 + 0x540A000A, // 0013 LDINT R2 11 + 0x80040400, // 0014 RET 1 R2 + 0x7002002F, // 0015 JMP #0046 + 0x88080300, // 0016 GETMBR R2 R1 K0 + 0x540E0006, // 0017 LDINT R3 7 + 0x1C080403, // 0018 EQ R2 R2 R3 + 0x740A0003, // 0019 JMPT R2 #001E + 0x88080300, // 001A GETMBR R2 R1 K0 + 0x540E0005, // 001B LDINT R3 6 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A0002, // 001D JMPF R2 #0021 + 0x540A0006, // 001E LDINT R2 7 + 0x80040400, // 001F RET 1 R2 + 0x70020024, // 0020 JMP #0046 + 0x88080300, // 0021 GETMBR R2 R1 K0 + 0x1C080501, // 0022 EQ R2 R2 K1 + 0x740A0002, // 0023 JMPT R2 #0027 + 0x88080300, // 0024 GETMBR R2 R1 K0 + 0x1C080502, // 0025 EQ R2 R2 K2 + 0x780A0001, // 0026 JMPF R2 #0029 + 0x80060200, // 0027 RET 1 K1 + 0x7002001C, // 0028 JMP #0046 + 0x88080300, // 0029 GETMBR R2 R1 K0 + 0x1C080503, // 002A EQ R2 R2 K3 + 0x780A0002, // 002B JMPF R2 #002F + 0x540A000B, // 002C LDINT R2 12 + 0x80040400, // 002D RET 1 R2 + 0x70020016, // 002E JMP #0046 + 0x88080300, // 002F GETMBR R2 R1 K0 + 0x540E000B, // 0030 LDINT R3 12 + 0x1C080403, // 0031 EQ R2 R2 R3 + 0x780A0002, // 0032 JMPF R2 #0036 + 0x540A000B, // 0033 LDINT R2 12 + 0x80040400, // 0034 RET 1 R2 + 0x7002000F, // 0035 JMP #0046 + 0x88080300, // 0036 GETMBR R2 R1 K0 + 0x540E000C, // 0037 LDINT R3 13 + 0x1C080403, // 0038 EQ R2 R2 R3 + 0x780A0002, // 0039 JMPF R2 #003D + 0x540A000C, // 003A LDINT R2 13 + 0x80040400, // 003B RET 1 R2 + 0x70020008, // 003C JMP #0046 + 0x88080300, // 003D GETMBR R2 R1 K0 + 0x540E000D, // 003E LDINT R3 14 + 0x1C080403, // 003F EQ R2 R2 R3 + 0x780A0002, // 0040 JMPF R2 #0044 + 0x540A000D, // 0041 LDINT R2 14 + 0x80040400, // 0042 RET 1 R2 + 0x70020001, // 0043 JMP #0046 + 0x540A000B, // 0044 LDINT R2 12 + 0x80040400, // 0045 RET 1 R2 + 0x80000000, // 0046 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_restart_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(value), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(expect_identifier), + /* K4 */ be_nested_str_weak(_validate_value_provider_reference), + /* K5 */ be_nested_str_weak(skip_statement), + /* K6 */ be_nested_str_weak(collect_inline_comment), + /* K7 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2Estart_X28engine_X2Etime_ms_X29_X20end), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K10 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_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: 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: _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[ 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(_validate_single_parameter), + &be_const_str_solidified, + ( &(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 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[23]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(1), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20function_X20name), + /* K9 */ be_nested_str_weak(nil), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(get), + /* K12 */ be_nested_str_weak(process_function_arguments), + /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K14 */ be_nested_str_weak(get_reference), + /* K15 */ be_nested_str_weak(log), + /* K16 */ be_nested_str_weak(process_log_call), + /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K19 */ be_nested_str_weak(engine), + /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_function_call), + &be_const_str_solidified, + ( &(const binstruction[92]) { /* 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 + 0x78120009, // 0005 JMPF R4 #0010 + 0x88100502, // 0006 GETMBR R4 R2 K2 + 0x1C100903, // 0007 EQ R4 R4 K3 + 0x74120002, // 0008 JMPT R4 #000C + 0x88100502, // 0009 GETMBR R4 R2 K2 + 0x1C100904, // 000A EQ R4 R4 K4 + 0x78120003, // 000B JMPF R4 #0010 + 0x880C0505, // 000C GETMBR R3 R2 K5 + 0x8C100106, // 000D GETMET R4 R0 K6 + 0x7C100200, // 000E CALL R4 1 + 0x70020003, // 000F JMP #0014 + 0x8C100107, // 0010 GETMET R4 R0 K7 + 0x58180008, // 0011 LDCONST R6 K8 + 0x7C100400, // 0012 CALL R4 2 + 0x80061200, // 0013 RET 1 K9 + 0x8810010A, // 0014 GETMBR R4 R0 K10 + 0x8C10090B, // 0015 GETMET R4 R4 K11 + 0x5C180600, // 0016 MOVE R6 R3 + 0x7C100400, // 0017 CALL R4 2 + 0x4C140000, // 0018 LDNIL R5 + 0x20140805, // 0019 NE R5 R4 R5 + 0x7816000D, // 001A JMPF R5 #0029 + 0x88140902, // 001B GETMBR R5 R4 K2 + 0x541A0003, // 001C LDINT R6 4 + 0x1C140A06, // 001D EQ R5 R5 R6 + 0x78160009, // 001E JMPF R5 #0029 + 0x8C14010C, // 001F GETMET R5 R0 K12 + 0x501C0000, // 0020 LDBOOL R7 0 0 + 0x7C140400, // 0021 CALL R5 2 + 0x60180018, // 0022 GETGBL R6 G24 + 0x581C000D, // 0023 LDCONST R7 K13 + 0x8C20090E, // 0024 GETMET R8 R4 K14 + 0x7C200200, // 0025 CALL R8 1 + 0x5C240A00, // 0026 MOVE R9 R5 + 0x7C180600, // 0027 CALL R6 3 + 0x80040C00, // 0028 RET 1 R6 + 0x1C14070F, // 0029 EQ R5 R3 K15 + 0x78160008, // 002A JMPF R5 #0034 + 0x8C14010C, // 002B GETMET R5 R0 K12 + 0x501C0000, // 002C LDBOOL R7 0 0 + 0x7C140400, // 002D CALL R5 2 + 0x8C180110, // 002E GETMET R6 R0 K16 + 0x5C200A00, // 002F MOVE R8 R5 + 0x88240111, // 0030 GETMBR R9 R0 K17 + 0x58280001, // 0031 LDCONST R10 K1 + 0x7C180800, // 0032 CALL R6 4 + 0x80040C00, // 0033 RET 1 R6 + 0x8C14010C, // 0034 GETMET R5 R0 K12 + 0x501C0000, // 0035 LDBOOL R7 0 0 + 0x7C140400, // 0036 CALL R5 2 + 0x4C180000, // 0037 LDNIL R6 + 0x20180806, // 0038 NE R6 R4 R6 + 0x781A0012, // 0039 JMPF R6 #004D + 0x88180902, // 003A GETMBR R6 R4 K2 + 0x541E000D, // 003B LDINT R7 14 + 0x1C180C07, // 003C EQ R6 R6 R7 + 0x781A000E, // 003D JMPF R6 #004D + 0x20180B01, // 003E NE R6 R5 K1 + 0x781A0004, // 003F JMPF R6 #0045 + 0x60180018, // 0040 GETGBL R6 G24 + 0x581C0012, // 0041 LDCONST R7 K18 + 0x5C200A00, // 0042 MOVE R8 R5 + 0x7C180400, // 0043 CALL R6 2 + 0x70020000, // 0044 JMP #0046 + 0x58180013, // 0045 LDCONST R6 K19 + 0x601C0018, // 0046 GETGBL R7 G24 + 0x58200014, // 0047 LDCONST R8 K20 + 0x5C240600, // 0048 MOVE R9 R3 + 0x5C280C00, // 0049 MOVE R10 R6 + 0x7C1C0600, // 004A CALL R7 3 + 0x80040E00, // 004B RET 1 R7 + 0x7002000D, // 004C JMP #005B + 0x20180B01, // 004D NE R6 R5 K1 + 0x781A0006, // 004E JMPF R6 #0056 + 0x60180018, // 004F GETGBL R6 G24 + 0x581C0015, // 0050 LDCONST R7 K21 + 0x5C200600, // 0051 MOVE R8 R3 + 0x5C240A00, // 0052 MOVE R9 R5 + 0x7C180600, // 0053 CALL R6 3 + 0x80040C00, // 0054 RET 1 R6 + 0x70020004, // 0055 JMP #005B + 0x60180018, // 0056 GETGBL R6 G24 + 0x581C0016, // 0057 LDCONST R7 K22 + 0x5C200600, // 0058 MOVE R8 R3 + 0x7C180400, // 0059 CALL R6 2 + 0x80040C00, // 005A RET 1 R6 + 0x80000000, // 005B 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[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(value), + /* K3 */ be_nested_str_weak(next), + /* K4 */ be_const_int(0), + /* K5 */ be_const_int(2), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20percentage_X20value), + }), + be_str_weak(process_percentage_value), + &be_const_str_solidified, + ( &(const binstruction[47]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0013, // 0004 JMPF R2 #0019 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0005, // 0006 LDINT R3 6 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A000F, // 0008 JMPF R2 #0019 + 0x88080302, // 0009 GETMBR R2 R1 K2 + 0x8C0C0103, // 000A GETMET R3 R0 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x600C000A, // 000C GETGBL R3 G10 + 0x5411FFFD, // 000D LDINT R4 -2 + 0x40120804, // 000E CONNECT R4 K4 R4 + 0x94100404, // 000F GETIDX R4 R2 R4 + 0x7C0C0200, // 0010 CALL R3 1 + 0x60100009, // 0011 GETGBL R4 G9 + 0x541600FE, // 0012 LDINT R5 255 + 0x08140605, // 0013 MUL R5 R3 R5 + 0x541A0063, // 0014 LDINT R6 100 + 0x0C140A06, // 0015 DIV R5 R5 R6 + 0x7C100200, // 0016 CALL R4 1 + 0x80040800, // 0017 RET 1 R4 + 0x70020014, // 0018 JMP #002E + 0x4C080000, // 0019 LDNIL R2 + 0x20080202, // 001A NE R2 R1 R2 + 0x780A000C, // 001B JMPF R2 #0029 + 0x88080301, // 001C GETMBR R2 R1 K1 + 0x1C080505, // 001D EQ R2 R2 K5 + 0x780A0009, // 001E JMPF R2 #0029 + 0x88080302, // 001F GETMBR R2 R1 K2 + 0x8C0C0103, // 0020 GETMET R3 R0 K3 + 0x7C0C0200, // 0021 CALL R3 1 + 0x600C0009, // 0022 GETGBL R3 G9 + 0x6010000A, // 0023 GETGBL R4 G10 + 0x5C140400, // 0024 MOVE R5 R2 + 0x7C100200, // 0025 CALL R4 1 + 0x7C0C0200, // 0026 CALL R3 1 + 0x80040600, // 0027 RET 1 R3 + 0x70020004, // 0028 JMP #002E + 0x8C080106, // 0029 GETMET R2 R0 K6 + 0x58100007, // 002A LDCONST R4 K7 + 0x7C080400, // 002B CALL R2 2 + 0x540A00FE, // 002C LDINT R2 255 + 0x80040400, // 002D RET 1 R2 + 0x80000000, // 002E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), + }), + be_str_weak(expect_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001C, // 0006 LDINT R3 29 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F 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: 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[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), + }), + be_str_weak(expect_keyword), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x200C0403, // 0003 NE R3 R2 R3 + 0x780E0008, // 0004 JMPF R3 #000E + 0x880C0501, // 0005 GETMBR R3 R2 K1 + 0x1C0C0702, // 0006 EQ R3 R3 K2 + 0x780E0005, // 0007 JMPF R3 #000E + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0x1C0C0601, // 0009 EQ R3 R3 R1 + 0x780E0002, // 000A JMPF R3 #000E + 0x8C0C0104, // 000B GETMET R3 R0 K4 + 0x7C0C0200, // 000C CALL R3 1 + 0x70020005, // 000D JMP #0014 + 0x8C0C0105, // 000E GETMET R3 R0 K5 + 0x60140018, // 000F GETGBL R5 G24 + 0x58180006, // 0010 LDCONST R6 K6 + 0x5C1C0200, // 0011 MOVE R7 R1 + 0x7C140400, // 0012 CALL R5 2 + 0x7C0C0400, // 0013 CALL R3 2 + 0x80000000, // 0014 RET 0 }) ) ); @@ -7765,1040 +9114,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ /******************************************************************** -** Solidified function: process_function_call +** Solidified function: init ********************************************************************/ -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[23]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(1), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20function_X20name), - /* K9 */ be_nested_str_weak(nil), - /* K10 */ be_nested_str_weak(symbol_table), - /* K11 */ be_nested_str_weak(get), - /* K12 */ be_nested_str_weak(process_function_arguments), - /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K14 */ be_nested_str_weak(get_reference), - /* K15 */ be_nested_str_weak(log), - /* K16 */ be_nested_str_weak(process_log_call), - /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K19 */ be_nested_str_weak(engine), - /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_function_call), - &be_const_str_solidified, - ( &(const binstruction[92]) { /* 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 - 0x78120009, // 0005 JMPF R4 #0010 - 0x88100502, // 0006 GETMBR R4 R2 K2 - 0x1C100903, // 0007 EQ R4 R4 K3 - 0x74120002, // 0008 JMPT R4 #000C - 0x88100502, // 0009 GETMBR R4 R2 K2 - 0x1C100904, // 000A EQ R4 R4 K4 - 0x78120003, // 000B JMPF R4 #0010 - 0x880C0505, // 000C GETMBR R3 R2 K5 - 0x8C100106, // 000D GETMET R4 R0 K6 - 0x7C100200, // 000E CALL R4 1 - 0x70020003, // 000F JMP #0014 - 0x8C100107, // 0010 GETMET R4 R0 K7 - 0x58180008, // 0011 LDCONST R6 K8 - 0x7C100400, // 0012 CALL R4 2 - 0x80061200, // 0013 RET 1 K9 - 0x8810010A, // 0014 GETMBR R4 R0 K10 - 0x8C10090B, // 0015 GETMET R4 R4 K11 - 0x5C180600, // 0016 MOVE R6 R3 - 0x7C100400, // 0017 CALL R4 2 - 0x4C140000, // 0018 LDNIL R5 - 0x20140805, // 0019 NE R5 R4 R5 - 0x7816000D, // 001A JMPF R5 #0029 - 0x88140902, // 001B GETMBR R5 R4 K2 - 0x541A0003, // 001C LDINT R6 4 - 0x1C140A06, // 001D EQ R5 R5 R6 - 0x78160009, // 001E JMPF R5 #0029 - 0x8C14010C, // 001F GETMET R5 R0 K12 - 0x501C0000, // 0020 LDBOOL R7 0 0 - 0x7C140400, // 0021 CALL R5 2 - 0x60180018, // 0022 GETGBL R6 G24 - 0x581C000D, // 0023 LDCONST R7 K13 - 0x8C20090E, // 0024 GETMET R8 R4 K14 - 0x7C200200, // 0025 CALL R8 1 - 0x5C240A00, // 0026 MOVE R9 R5 - 0x7C180600, // 0027 CALL R6 3 - 0x80040C00, // 0028 RET 1 R6 - 0x1C14070F, // 0029 EQ R5 R3 K15 - 0x78160008, // 002A JMPF R5 #0034 - 0x8C14010C, // 002B GETMET R5 R0 K12 - 0x501C0000, // 002C LDBOOL R7 0 0 - 0x7C140400, // 002D CALL R5 2 - 0x8C180110, // 002E GETMET R6 R0 K16 - 0x5C200A00, // 002F MOVE R8 R5 - 0x88240111, // 0030 GETMBR R9 R0 K17 - 0x58280001, // 0031 LDCONST R10 K1 - 0x7C180800, // 0032 CALL R6 4 - 0x80040C00, // 0033 RET 1 R6 - 0x8C14010C, // 0034 GETMET R5 R0 K12 - 0x501C0000, // 0035 LDBOOL R7 0 0 - 0x7C140400, // 0036 CALL R5 2 - 0x4C180000, // 0037 LDNIL R6 - 0x20180806, // 0038 NE R6 R4 R6 - 0x781A0012, // 0039 JMPF R6 #004D - 0x88180902, // 003A GETMBR R6 R4 K2 - 0x541E000D, // 003B LDINT R7 14 - 0x1C180C07, // 003C EQ R6 R6 R7 - 0x781A000E, // 003D JMPF R6 #004D - 0x20180B01, // 003E NE R6 R5 K1 - 0x781A0004, // 003F JMPF R6 #0045 - 0x60180018, // 0040 GETGBL R6 G24 - 0x581C0012, // 0041 LDCONST R7 K18 - 0x5C200A00, // 0042 MOVE R8 R5 - 0x7C180400, // 0043 CALL R6 2 - 0x70020000, // 0044 JMP #0046 - 0x58180013, // 0045 LDCONST R6 K19 - 0x601C0018, // 0046 GETGBL R7 G24 - 0x58200014, // 0047 LDCONST R8 K20 - 0x5C240600, // 0048 MOVE R9 R3 - 0x5C280C00, // 0049 MOVE R10 R6 - 0x7C1C0600, // 004A CALL R7 3 - 0x80040E00, // 004B RET 1 R7 - 0x7002000D, // 004C JMP #005B - 0x20180B01, // 004D NE R6 R5 K1 - 0x781A0006, // 004E JMPF R6 #0056 - 0x60180018, // 004F GETGBL R6 G24 - 0x581C0015, // 0050 LDCONST R7 K21 - 0x5C200600, // 0051 MOVE R8 R3 - 0x5C240A00, // 0052 MOVE R9 R5 - 0x7C180600, // 0053 CALL R6 3 - 0x80040C00, // 0054 RET 1 R6 - 0x70020004, // 0055 JMP #005B - 0x60180018, // 0056 GETGBL R6 G24 - 0x581C0016, // 0057 LDCONST R7 K22 - 0x5C200600, // 0058 MOVE R8 R3 - 0x7C180400, // 0059 CALL R6 2 - 0x80040C00, // 005A RET 1 R6 - 0x80000000, // 005B 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_nested_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 10, /* nstack */ - 3, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 4), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(push), - /* K1 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), - }), - be_str_weak(_anonymous_), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x680C0000, // 0000 GETUPV R3 U0 - 0x8C0C0700, // 0001 GETMET R3 R3 K0 - 0x60140018, // 0002 GETGBL R5 G24 - 0x58180001, // 0003 LDCONST R6 K1 - 0x5C1C0000, // 0004 MOVE R7 R0 - 0x5C200200, // 0005 MOVE R8 R1 - 0x5C240400, // 0006 MOVE R9 R2 - 0x7C140800, // 0007 CALL R5 4 - 0x7C0C0400, // 0008 CALL R3 2 - 0x80000000, // 0009 RET 0 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[32]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(1), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20function_X20name), - /* K9 */ be_nested_str_weak(nil), - /* K10 */ be_nested_str_weak(symbol_table), - /* K11 */ be_nested_str_weak(get), - /* K12 */ be_nested_str_weak(process_function_arguments), - /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K14 */ be_nested_str_weak(get_reference), - /* K15 */ be_nested_str_weak(log), - /* K16 */ be_nested_str_weak(process_log_call), - /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K19 */ be_nested_str_weak(engine), - /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K21 */ be_nested_str_weak(_validate_animation_factory_exists), - /* K22 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), - /* K23 */ be_nested_str_weak(skip_function_arguments), - /* K24 */ be_nested_str_weak(expect_left_paren), - /* K25 */ be_nested_str_weak(_process_parameters_core), - /* K26 */ be_nested_str_weak(generic), - /* K27 */ be_nested_str_weak(expect_right_paren), - /* K28 */ be_nested_str_weak(_X0A), - /* K29 */ be_nested_str_weak(stop_iteration), - /* K30 */ be_nested_str_weak(_X28def_X20_X28engine_X29_X0A_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29_X0A_X25s_X0A_X20_X20return_X20provider_X0Aend_X29_X28engine_X29), - /* K31 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_nested_function_call), - &be_const_str_solidified, - ( &(const binstruction[143]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58080001, // 0002 LDCONST R2 K1 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0203, // 0004 NE R3 R1 R3 - 0x780E0009, // 0005 JMPF R3 #0010 - 0x880C0302, // 0006 GETMBR R3 R1 K2 - 0x1C0C0703, // 0007 EQ R3 R3 K3 - 0x740E0002, // 0008 JMPT R3 #000C - 0x880C0302, // 0009 GETMBR R3 R1 K2 - 0x1C0C0704, // 000A EQ R3 R3 K4 - 0x780E0003, // 000B JMPF R3 #0010 - 0x88080305, // 000C GETMBR R2 R1 K5 - 0x8C0C0106, // 000D GETMET R3 R0 K6 - 0x7C0C0200, // 000E CALL R3 1 - 0x70020003, // 000F JMP #0014 - 0x8C0C0107, // 0010 GETMET R3 R0 K7 - 0x58140008, // 0011 LDCONST R5 K8 - 0x7C0C0400, // 0012 CALL R3 2 - 0x80061200, // 0013 RET 1 K9 - 0x880C010A, // 0014 GETMBR R3 R0 K10 - 0x8C0C070B, // 0015 GETMET R3 R3 K11 - 0x5C140400, // 0016 MOVE R5 R2 - 0x7C0C0400, // 0017 CALL R3 2 - 0x4C100000, // 0018 LDNIL R4 - 0x20100604, // 0019 NE R4 R3 R4 - 0x7812000D, // 001A JMPF R4 #0029 - 0x88100702, // 001B GETMBR R4 R3 K2 - 0x54160003, // 001C LDINT R5 4 - 0x1C100805, // 001D EQ R4 R4 R5 - 0x78120009, // 001E JMPF R4 #0029 - 0x8C10010C, // 001F GETMET R4 R0 K12 - 0x50180200, // 0020 LDBOOL R6 1 0 - 0x7C100400, // 0021 CALL R4 2 - 0x60140018, // 0022 GETGBL R5 G24 - 0x5818000D, // 0023 LDCONST R6 K13 - 0x8C1C070E, // 0024 GETMET R7 R3 K14 - 0x7C1C0200, // 0025 CALL R7 1 - 0x5C200800, // 0026 MOVE R8 R4 - 0x7C140600, // 0027 CALL R5 3 - 0x80040A00, // 0028 RET 1 R5 - 0x1C10050F, // 0029 EQ R4 R2 K15 - 0x78120008, // 002A JMPF R4 #0034 - 0x8C10010C, // 002B GETMET R4 R0 K12 - 0x50180200, // 002C LDBOOL R6 1 0 - 0x7C100400, // 002D CALL R4 2 - 0x8C140110, // 002E GETMET R5 R0 K16 - 0x5C1C0800, // 002F MOVE R7 R4 - 0x88200111, // 0030 GETMBR R8 R0 K17 - 0x58240001, // 0031 LDCONST R9 K1 - 0x7C140800, // 0032 CALL R5 4 - 0x80040A00, // 0033 RET 1 R5 - 0x4C100000, // 0034 LDNIL R4 - 0x20100604, // 0035 NE R4 R3 R4 - 0x78120015, // 0036 JMPF R4 #004D - 0x88100702, // 0037 GETMBR R4 R3 K2 - 0x5416000D, // 0038 LDINT R5 14 - 0x1C100805, // 0039 EQ R4 R4 R5 - 0x78120011, // 003A JMPF R4 #004D - 0x8C10010C, // 003B GETMET R4 R0 K12 - 0x50180200, // 003C LDBOOL R6 1 0 - 0x7C100400, // 003D CALL R4 2 - 0x20140901, // 003E NE R5 R4 K1 - 0x78160004, // 003F JMPF R5 #0045 - 0x60140018, // 0040 GETGBL R5 G24 - 0x58180012, // 0041 LDCONST R6 K18 - 0x5C1C0800, // 0042 MOVE R7 R4 - 0x7C140400, // 0043 CALL R5 2 - 0x70020000, // 0044 JMP #0046 - 0x58140013, // 0045 LDCONST R5 K19 - 0x60180018, // 0046 GETGBL R6 G24 - 0x581C0014, // 0047 LDCONST R7 K20 - 0x5C200400, // 0048 MOVE R8 R2 - 0x5C240A00, // 0049 MOVE R9 R5 - 0x7C180600, // 004A CALL R6 3 - 0x80040C00, // 004B RET 1 R6 - 0x70020040, // 004C JMP #008E - 0x8C100115, // 004D GETMET R4 R0 K21 - 0x5C180400, // 004E MOVE R6 R2 - 0x7C100400, // 004F CALL R4 2 - 0x74120008, // 0050 JMPT R4 #005A - 0x8C100107, // 0051 GETMET R4 R0 K7 - 0x60180018, // 0052 GETGBL R6 G24 - 0x581C0016, // 0053 LDCONST R7 K22 - 0x5C200400, // 0054 MOVE R8 R2 - 0x7C180400, // 0055 CALL R6 2 - 0x7C100400, // 0056 CALL R4 2 - 0x8C100117, // 0057 GETMET R4 R0 K23 - 0x7C100200, // 0058 CALL R4 1 - 0x80061200, // 0059 RET 1 K9 - 0x8C100118, // 005A GETMET R4 R0 K24 - 0x7C100200, // 005B CALL R4 1 - 0x60100012, // 005C GETGBL R4 G18 - 0x7C100000, // 005D CALL R4 0 - 0x84140000, // 005E CLOSURE R5 P0 - 0x8C180119, // 005F GETMET R6 R0 K25 - 0x5C200400, // 0060 MOVE R8 R2 - 0x5824001A, // 0061 LDCONST R9 K26 - 0x5C280A00, // 0062 MOVE R10 R5 - 0x7C180800, // 0063 CALL R6 4 - 0x8C18011B, // 0064 GETMET R6 R0 K27 - 0x7C180200, // 0065 CALL R6 1 - 0x6018000C, // 0066 GETGBL R6 G12 - 0x5C1C0800, // 0067 MOVE R7 R4 - 0x7C180200, // 0068 CALL R6 1 - 0x24180D04, // 0069 GT R6 R6 K4 - 0x781A001B, // 006A JMPF R6 #0087 - 0x58180001, // 006B LDCONST R6 K1 - 0x601C0010, // 006C GETGBL R7 G16 - 0x6020000C, // 006D GETGBL R8 G12 - 0x5C240800, // 006E MOVE R9 R4 - 0x7C200200, // 006F CALL R8 1 - 0x04201103, // 0070 SUB R8 R8 K3 - 0x40220808, // 0071 CONNECT R8 K4 R8 - 0x7C1C0200, // 0072 CALL R7 1 - 0xA8020007, // 0073 EXBLK 0 #007C - 0x5C200E00, // 0074 MOVE R8 R7 - 0x7C200000, // 0075 CALL R8 0 - 0x24241104, // 0076 GT R9 R8 K4 - 0x78260000, // 0077 JMPF R9 #0079 - 0x00180D1C, // 0078 ADD R6 R6 K28 - 0x94240808, // 0079 GETIDX R9 R4 R8 - 0x00180C09, // 007A ADD R6 R6 R9 - 0x7001FFF7, // 007B JMP #0074 - 0x581C001D, // 007C LDCONST R7 K29 - 0xAC1C0200, // 007D CATCH R7 1 0 - 0xB0080000, // 007E RAISE 2 R0 R0 - 0x601C0018, // 007F GETGBL R7 G24 - 0x5820001E, // 0080 LDCONST R8 K30 - 0x5C240400, // 0081 MOVE R9 R2 - 0x5C280C00, // 0082 MOVE R10 R6 - 0x7C1C0600, // 0083 CALL R7 3 - 0xA0000000, // 0084 CLOSE R0 - 0x80040E00, // 0085 RET 1 R7 - 0x70020005, // 0086 JMP #008D - 0x60180018, // 0087 GETGBL R6 G24 - 0x581C001F, // 0088 LDCONST R7 K31 - 0x5C200400, // 0089 MOVE R8 R2 - 0x7C180400, // 008A CALL R6 2 - 0xA0000000, // 008B CLOSE R0 - 0x80040C00, // 008C RET 1 R6 - 0xA0100000, // 008D CLOSE R4 - 0x80000000, // 008E 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_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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X7B_X27), - }), - be_str_weak(expect_left_brace), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0019, // 0006 LDINT R3 26 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_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[22]) { /* 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(process_event_parameters), - /* K8 */ be_nested_str_weak(expect_colon), - /* K9 */ be_nested_str_weak(event_handler__X25s__X25s), - /* K10 */ be_nested_str_weak(add), - /* K11 */ be_nested_str_weak(def_X20_X25s_X28event_data_X29), - /* K12 */ be_nested_str_weak(value), - /* K13 */ be_nested_str_weak(interrupt), - /* K14 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_current_X28_X29), - /* K15 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_animation_X28_X22_X25s_X22_X29), - /* K16 */ be_nested_str_weak(process_value), - /* K17 */ be_nested_str_weak(CONTEXT_ANIMATION), - /* K18 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28_X25s_X29), - /* K19 */ be_nested_str_weak(expr), - /* K20 */ be_nested_str_weak(end), - /* K21 */ 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[91]) { /* 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 - 0x78120008, // 0013 JMPF R4 #001D - 0x8C100102, // 0014 GETMET R4 R0 K2 - 0x7C100200, // 0015 CALL R4 1 - 0x88100906, // 0016 GETMBR R4 R4 K6 - 0x54160017, // 0017 LDINT R5 24 - 0x1C100805, // 0018 EQ R4 R4 R5 - 0x78120002, // 0019 JMPF R4 #001D - 0x8C100107, // 001A GETMET R4 R0 K7 - 0x7C100200, // 001B CALL R4 1 - 0x5C0C0800, // 001C MOVE R3 R4 - 0x8C100108, // 001D GETMET R4 R0 K8 - 0x7C100200, // 001E CALL R4 1 - 0x60100018, // 001F GETGBL R4 G24 - 0x58140009, // 0020 LDCONST R5 K9 - 0x5C180200, // 0021 MOVE R6 R1 - 0x5C1C0400, // 0022 MOVE R7 R2 - 0x7C100600, // 0023 CALL R4 3 - 0x8C14010A, // 0024 GETMET R5 R0 K10 - 0x601C0018, // 0025 GETGBL R7 G24 - 0x5820000B, // 0026 LDCONST R8 K11 - 0x5C240800, // 0027 MOVE R9 R4 - 0x7C1C0400, // 0028 CALL R7 2 - 0x7C140400, // 0029 CALL R5 2 - 0x8C140102, // 002A GETMET R5 R0 K2 - 0x7C140200, // 002B CALL R5 1 - 0x4C180000, // 002C LDNIL R6 - 0x20180A06, // 002D NE R6 R5 R6 - 0x781A001F, // 002E JMPF R6 #004F - 0x88180B06, // 002F GETMBR R6 R5 K6 - 0x1C180D04, // 0030 EQ R6 R6 K4 - 0x781A0013, // 0031 JMPF R6 #0046 - 0x88180B0C, // 0032 GETMBR R6 R5 K12 - 0x1C180D0D, // 0033 EQ R6 R6 K13 - 0x781A0010, // 0034 JMPF R6 #0046 - 0x8C180100, // 0035 GETMET R6 R0 K0 - 0x7C180200, // 0036 CALL R6 1 - 0x8C180101, // 0037 GETMET R6 R0 K1 - 0x7C180200, // 0038 CALL R6 1 - 0x1C1C0D02, // 0039 EQ R7 R6 K2 - 0x781E0003, // 003A JMPF R7 #003F - 0x8C1C010A, // 003B GETMET R7 R0 K10 - 0x5824000E, // 003C LDCONST R9 K14 - 0x7C1C0400, // 003D CALL R7 2 - 0x70020005, // 003E JMP #0045 - 0x8C1C010A, // 003F GETMET R7 R0 K10 - 0x60240018, // 0040 GETGBL R9 G24 - 0x5828000F, // 0041 LDCONST R10 K15 - 0x5C2C0C00, // 0042 MOVE R11 R6 - 0x7C240400, // 0043 CALL R9 2 - 0x7C1C0400, // 0044 CALL R7 2 - 0x70020008, // 0045 JMP #004F - 0x8C180110, // 0046 GETMET R6 R0 K16 - 0x88200111, // 0047 GETMBR R8 R0 K17 - 0x7C180400, // 0048 CALL R6 2 - 0x8C1C010A, // 0049 GETMET R7 R0 K10 - 0x60240018, // 004A GETGBL R9 G24 - 0x58280012, // 004B LDCONST R10 K18 - 0x882C0D13, // 004C GETMBR R11 R6 K19 - 0x7C240400, // 004D CALL R9 2 - 0x7C1C0400, // 004E CALL R7 2 - 0x8C18010A, // 004F GETMET R6 R0 K10 - 0x58200014, // 0050 LDCONST R8 K20 - 0x7C180400, // 0051 CALL R6 2 - 0x8C18010A, // 0052 GETMET R6 R0 K10 - 0x60200018, // 0053 GETGBL R8 G24 - 0x58240015, // 0054 LDCONST R9 K21 - 0x5C280200, // 0055 MOVE R10 R1 - 0x5C2C0800, // 0056 MOVE R11 R4 - 0x5C300600, // 0057 MOVE R12 R3 - 0x7C200800, // 0058 CALL R8 4 - 0x7C180400, // 0059 CALL R6 2 - 0x80000000, // 005A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_if_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_if_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[18]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(process_additive_expression), - /* K2 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K3 */ be_nested_str_weak(expect_left_brace), - /* K4 */ be_nested_str_weak(has_dynamic), - /* K5 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20bool_X28_X25s_X29_X20end), - /* K6 */ be_nested_str_weak(expr), - /* K7 */ be_nested_str_weak(bool_X28_X25s_X29), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2Esequence_manager_X28engine_X2C_X20_X25s_X29), - /* K10 */ be_nested_str_weak(get_indent), - /* K11 */ be_nested_str_weak(indent_level), - /* K12 */ be_const_int(1), - /* K13 */ be_nested_str_weak(at_end), - /* K14 */ be_nested_str_weak(check_right_brace), - /* K15 */ be_nested_str_weak(process_sequence_statement), - /* K16 */ be_nested_str_weak(expect_right_brace), - /* K17 */ be_nested_str_weak(_X25s_X29), - }), - be_str_weak(process_if_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[56]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x880C0102, // 0003 GETMBR R3 R0 K2 - 0x50100200, // 0004 LDBOOL R4 1 0 - 0x50140000, // 0005 LDBOOL R5 0 0 - 0x7C040800, // 0006 CALL R1 4 - 0x8C080103, // 0007 GETMET R2 R0 K3 - 0x7C080200, // 0008 CALL R2 1 - 0x4C080000, // 0009 LDNIL R2 - 0x880C0304, // 000A GETMBR R3 R1 K4 - 0x780E0005, // 000B JMPF R3 #0012 - 0x600C0018, // 000C GETGBL R3 G24 - 0x58100005, // 000D LDCONST R4 K5 - 0x88140306, // 000E GETMBR R5 R1 K6 - 0x7C0C0400, // 000F CALL R3 2 - 0x5C080600, // 0010 MOVE R2 R3 - 0x70020004, // 0011 JMP #0017 - 0x600C0018, // 0012 GETGBL R3 G24 - 0x58100007, // 0013 LDCONST R4 K7 - 0x88140306, // 0014 GETMBR R5 R1 K6 - 0x7C0C0400, // 0015 CALL R3 2 - 0x5C080600, // 0016 MOVE R2 R3 - 0x8C0C0108, // 0017 GETMET R3 R0 K8 - 0x60140018, // 0018 GETGBL R5 G24 - 0x58180009, // 0019 LDCONST R6 K9 - 0x8C1C010A, // 001A GETMET R7 R0 K10 - 0x7C1C0200, // 001B CALL R7 1 - 0x5C200400, // 001C MOVE R8 R2 - 0x7C140600, // 001D CALL R5 3 - 0x7C0C0400, // 001E CALL R3 2 - 0x880C010B, // 001F GETMBR R3 R0 K11 - 0x000C070C, // 0020 ADD R3 R3 K12 - 0x90021603, // 0021 SETMBR R0 K11 R3 - 0x8C0C010D, // 0022 GETMET R3 R0 K13 - 0x7C0C0200, // 0023 CALL R3 1 - 0x740E0005, // 0024 JMPT R3 #002B - 0x8C0C010E, // 0025 GETMET R3 R0 K14 - 0x7C0C0200, // 0026 CALL R3 1 - 0x740E0002, // 0027 JMPT R3 #002B - 0x8C0C010F, // 0028 GETMET R3 R0 K15 - 0x7C0C0200, // 0029 CALL R3 1 - 0x7001FFF6, // 002A JMP #0022 - 0x8C0C0110, // 002B GETMET R3 R0 K16 - 0x7C0C0200, // 002C CALL R3 1 - 0x8C0C0108, // 002D GETMET R3 R0 K8 - 0x60140018, // 002E GETGBL R5 G24 - 0x58180011, // 002F LDCONST R6 K17 - 0x8C1C010A, // 0030 GETMET R7 R0 K10 - 0x7C1C0200, // 0031 CALL R7 1 - 0x7C140400, // 0032 CALL R5 2 - 0x7C0C0400, // 0033 CALL R3 2 - 0x880C010B, // 0034 GETMBR R3 R0 K11 - 0x040C070C, // 0035 SUB R3 R3 K12 - 0x90021603, // 0036 SETMBR R0 K11 R3 - 0x80000000, // 0037 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: _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: 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[19]) { /* 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(has_computation), - /* K13 */ be_nested_str_weak(_unwrap_resolve), - /* K14 */ be_nested_str_weak(symbol_table), - /* K15 */ be_nested_str_weak(get), - /* K16 */ be_nested_str_weak(closure_value), - /* K17 */ be_nested_str_weak(type), - /* K18 */ be_nested_str_weak(instance), - }), - be_str_weak(process_value), - &be_const_str_solidified, - ( &(const binstruction[66]) { /* 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 - 0x780E002E, // 0010 JMPF R3 #0040 - 0x8C0C0505, // 0011 GETMET R3 R2 K5 - 0x7C0C0200, // 0012 CALL R3 1 - 0x780E002B, // 0013 JMPF R3 #0040 - 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 - 0x7002001C, // 0021 JMP #003F - 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 - 0x54160008, // 0027 LDINT R5 9 - 0x1C100805, // 0028 EQ R4 R4 R5 - 0x78120002, // 0029 JMPF R4 #002D - 0x8810050C, // 002A GETMBR R4 R2 K12 - 0x74120000, // 002B JMPT R4 #002D - 0x880C0507, // 002C GETMBR R3 R2 K7 - 0x8C10010D, // 002D GETMET R4 R0 K13 - 0x88180507, // 002E GETMBR R6 R2 K7 - 0x7C100400, // 002F CALL R4 2 - 0x4C140000, // 0030 LDNIL R5 - 0x20140805, // 0031 NE R5 R4 R5 - 0x78160000, // 0032 JMPF R5 #0034 - 0x5C0C0800, // 0033 MOVE R3 R4 - 0x8814010E, // 0034 GETMBR R5 R0 K14 - 0x8C140B0F, // 0035 GETMET R5 R5 K15 - 0x581C0010, // 0036 LDCONST R7 K16 - 0x7C140400, // 0037 CALL R5 2 - 0x88180108, // 0038 GETMBR R6 R0 K8 - 0x8C180D09, // 0039 GETMET R6 R6 K9 - 0x5C200600, // 003A MOVE R8 R3 - 0x88240B11, // 003B GETMBR R9 R5 K17 - 0x88280B12, // 003C GETMBR R10 R5 K18 - 0x7C180800, // 003D CALL R6 4 - 0x80040C00, // 003E RET 1 R6 - 0x70020000, // 003F JMP #0041 - 0x80040400, // 0040 RET 1 R2 - 0x80000000, // 0041 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_animation_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ +be_local_closure(class_SimpleDSLTranspiler_init, /* name */ be_nested_proto( 5, /* nstack */ 2, /* argc */ @@ -8808,1354 +9126,45 @@ be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, 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: 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: _determine_symbol_return_type -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__determine_symbol_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[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_const_int(2), - /* K2 */ be_const_int(1), - /* K3 */ be_const_int(3), - }), - be_str_weak(_determine_symbol_return_type), - &be_const_str_solidified, - ( &(const binstruction[71]) { /* code */ - 0x88080300, // 0000 GETMBR R2 R1 K0 - 0x540E0008, // 0001 LDINT R3 9 - 0x1C080403, // 0002 EQ R2 R2 R3 - 0x740A0003, // 0003 JMPT R2 #0008 - 0x88080300, // 0004 GETMBR R2 R1 K0 - 0x540E0007, // 0005 LDINT R3 8 - 0x1C080403, // 0006 EQ R2 R2 R3 - 0x780A0002, // 0007 JMPF R2 #000B - 0x540A0008, // 0008 LDINT R2 9 - 0x80040400, // 0009 RET 1 R2 - 0x7002003A, // 000A JMP #0046 - 0x88080300, // 000B GETMBR R2 R1 K0 - 0x540E000A, // 000C LDINT R3 11 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x740A0003, // 000E JMPT R2 #0013 - 0x88080300, // 000F GETMBR R2 R1 K0 - 0x540E0009, // 0010 LDINT R3 10 - 0x1C080403, // 0011 EQ R2 R2 R3 - 0x780A0002, // 0012 JMPF R2 #0016 - 0x540A000A, // 0013 LDINT R2 11 - 0x80040400, // 0014 RET 1 R2 - 0x7002002F, // 0015 JMP #0046 - 0x88080300, // 0016 GETMBR R2 R1 K0 - 0x540E0006, // 0017 LDINT R3 7 - 0x1C080403, // 0018 EQ R2 R2 R3 - 0x740A0003, // 0019 JMPT R2 #001E - 0x88080300, // 001A GETMBR R2 R1 K0 - 0x540E0005, // 001B LDINT R3 6 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A0002, // 001D JMPF R2 #0021 - 0x540A0006, // 001E LDINT R2 7 - 0x80040400, // 001F RET 1 R2 - 0x70020024, // 0020 JMP #0046 - 0x88080300, // 0021 GETMBR R2 R1 K0 - 0x1C080501, // 0022 EQ R2 R2 K1 - 0x740A0002, // 0023 JMPT R2 #0027 - 0x88080300, // 0024 GETMBR R2 R1 K0 - 0x1C080502, // 0025 EQ R2 R2 K2 - 0x780A0001, // 0026 JMPF R2 #0029 - 0x80060200, // 0027 RET 1 K1 - 0x7002001C, // 0028 JMP #0046 - 0x88080300, // 0029 GETMBR R2 R1 K0 - 0x1C080503, // 002A EQ R2 R2 K3 - 0x780A0002, // 002B JMPF R2 #002F - 0x540A000B, // 002C LDINT R2 12 - 0x80040400, // 002D RET 1 R2 - 0x70020016, // 002E JMP #0046 - 0x88080300, // 002F GETMBR R2 R1 K0 - 0x540E000B, // 0030 LDINT R3 12 - 0x1C080403, // 0031 EQ R2 R2 R3 - 0x780A0002, // 0032 JMPF R2 #0036 - 0x540A000B, // 0033 LDINT R2 12 - 0x80040400, // 0034 RET 1 R2 - 0x7002000F, // 0035 JMP #0046 - 0x88080300, // 0036 GETMBR R2 R1 K0 - 0x540E000C, // 0037 LDINT R3 13 - 0x1C080403, // 0038 EQ R2 R2 R3 - 0x780A0002, // 0039 JMPF R2 #003D - 0x540A000C, // 003A LDINT R2 13 - 0x80040400, // 003B RET 1 R2 - 0x70020008, // 003C JMP #0046 - 0x88080300, // 003D GETMBR R2 R1 K0 - 0x540E000D, // 003E LDINT R3 14 - 0x1C080403, // 003F EQ R2 R2 R3 - 0x780A0002, // 0040 JMPF R2 #0044 - 0x540A000D, // 0041 LDINT R2 14 - 0x80040400, // 0042 RET 1 R2 - 0x70020001, // 0043 JMP #0046 - 0x540A000B, // 0044 LDINT R2 12 - 0x80040400, // 0045 RET 1 R2 - 0x80000000, // 0046 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[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_const_int(1), - /* K4 */ be_nested_str_weak(at_end), - /* K5 */ be_const_int(0), - }), - be_str_weak(skip_function_arguments), - &be_const_str_solidified, - ( &(const binstruction[36]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20040202, // 0003 NE R1 R1 R2 - 0x7806001D, // 0004 JMPF R1 #0023 - 0x8C040100, // 0005 GETMET R1 R0 K0 - 0x7C040200, // 0006 CALL R1 1 - 0x88040301, // 0007 GETMBR R1 R1 K1 - 0x540A0017, // 0008 LDINT R2 24 - 0x1C040202, // 0009 EQ R1 R1 R2 - 0x78060017, // 000A JMPF R1 #0023 - 0x8C040102, // 000B GETMET R1 R0 K2 - 0x7C040200, // 000C CALL R1 1 - 0x58040003, // 000D LDCONST R1 K3 - 0x8C080104, // 000E GETMET R2 R0 K4 - 0x7C080200, // 000F CALL R2 1 - 0x740A0011, // 0010 JMPT R2 #0023 - 0x24080305, // 0011 GT R2 R1 K5 - 0x780A000F, // 0012 JMPF R2 #0023 - 0x8C080100, // 0013 GETMET R2 R0 K0 - 0x7C080200, // 0014 CALL R2 1 - 0x880C0501, // 0015 GETMBR R3 R2 K1 - 0x54120017, // 0016 LDINT R4 24 - 0x1C0C0604, // 0017 EQ R3 R3 R4 - 0x780E0001, // 0018 JMPF R3 #001B - 0x00040303, // 0019 ADD R1 R1 K3 - 0x70020004, // 001A JMP #0020 - 0x880C0501, // 001B GETMBR R3 R2 K1 - 0x54120018, // 001C LDINT R4 25 - 0x1C0C0604, // 001D EQ R3 R3 R4 - 0x780E0000, // 001E JMPF R3 #0020 - 0x04040303, // 001F SUB R1 R1 K3 - 0x8C0C0102, // 0020 GETMET R3 R0 K2 - 0x7C0C0200, // 0021 CALL R3 1 - 0x7001FFEA, // 0022 JMP #000E - 0x80000000, // 0023 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_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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), - }), - be_str_weak(expect_comma), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001D, // 0006 LDINT R3 30 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F 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[16]) { /* 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(value), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(has_dangerous), - /* K7 */ be_nested_str_weak(expr), - /* K8 */ be_nested_str_weak(error), - /* K9 */ 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), - /* K10 */ be_nested_str_weak(skip_statement), - /* K11 */ be_nested_str_weak(ExpressionResult), - /* K12 */ be_nested_str_weak(literal), - /* K13 */ be_nested_str_weak(nil), - /* K14 */ be_nested_str_weak(combine), - /* K15 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - }), - be_str_weak(process_additive_expression), - &be_const_str_solidified, - ( &(const binstruction[68]) { /* 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 - 0x7416003A, // 0007 JMPT R5 #0043 - 0x8C140102, // 0008 GETMET R5 R0 K2 - 0x7C140200, // 0009 CALL R5 1 - 0x4C180000, // 000A LDNIL R6 - 0x20180A06, // 000B NE R6 R5 R6 - 0x781A0033, // 000C JMPF R6 #0041 - 0x88180B03, // 000D GETMBR R6 R5 K3 - 0x541E0008, // 000E LDINT R7 9 - 0x1C180C07, // 000F EQ R6 R6 R7 - 0x741A0003, // 0010 JMPT R6 #0015 - 0x88180B03, // 0011 GETMBR R6 R5 K3 - 0x541E0009, // 0012 LDINT R7 10 - 0x1C180C07, // 0013 EQ R6 R6 R7 - 0x781A002B, // 0014 JMPF R6 #0041 - 0x88180B04, // 0015 GETMBR R6 R5 K4 - 0x8C1C0105, // 0016 GETMET R7 R0 K5 - 0x7C1C0200, // 0017 CALL R7 1 - 0x8C1C0100, // 0018 GETMET R7 R0 K0 - 0x5C240200, // 0019 MOVE R9 R1 - 0x50280000, // 001A LDBOOL R10 0 0 - 0x5C2C0600, // 001B MOVE R11 R3 - 0x7C1C0800, // 001C CALL R7 4 - 0x88200906, // 001D GETMBR R8 R4 K6 - 0x74220001, // 001E JMPT R8 #0021 - 0x88200F06, // 001F GETMBR R8 R7 K6 - 0x78220012, // 0020 JMPF R8 #0034 - 0x88200906, // 0021 GETMBR R8 R4 K6 - 0x78220001, // 0022 JMPF R8 #0025 - 0x88200907, // 0023 GETMBR R8 R4 K7 - 0x70020000, // 0024 JMP #0026 - 0x88200F07, // 0025 GETMBR R8 R7 K7 - 0x8C240108, // 0026 GETMET R9 R0 K8 - 0x602C0018, // 0027 GETGBL R11 G24 - 0x58300009, // 0028 LDCONST R12 K9 - 0x5C341000, // 0029 MOVE R13 R8 - 0x5C381000, // 002A MOVE R14 R8 - 0x7C2C0600, // 002B CALL R11 3 - 0x7C240400, // 002C CALL R9 2 - 0x8C24010A, // 002D GETMET R9 R0 K10 - 0x7C240200, // 002E CALL R9 1 - 0x8824010B, // 002F GETMBR R9 R0 K11 - 0x8C24130C, // 0030 GETMET R9 R9 K12 - 0x582C000D, // 0031 LDCONST R11 K13 - 0x7C240400, // 0032 CALL R9 2 - 0x80041200, // 0033 RET 1 R9 - 0x8820010B, // 0034 GETMBR R8 R0 K11 - 0x8C20110E, // 0035 GETMET R8 R8 K14 - 0x60280018, // 0036 GETGBL R10 G24 - 0x582C000F, // 0037 LDCONST R11 K15 - 0x88300907, // 0038 GETMBR R12 R4 K7 - 0x5C340C00, // 0039 MOVE R13 R6 - 0x88380F07, // 003A GETMBR R14 R7 K7 - 0x7C280800, // 003B CALL R10 4 - 0x5C2C0800, // 003C MOVE R11 R4 - 0x5C300E00, // 003D MOVE R12 R7 - 0x7C200800, // 003E CALL R8 4 - 0x5C101000, // 003F MOVE R4 R8 - 0x70020000, // 0040 JMP #0042 - 0x70020000, // 0041 JMP #0043 - 0x7001FFC1, // 0042 JMP #0005 - 0x80040800, // 0043 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), - }), - be_str_weak(expect_right_bracket), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001C, // 0006 LDINT R3 29 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_template_parameter_name -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_name, /* 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[38]) { /* constants */ + ( &(const bvalue[12]) { /* constants */ /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(contains), - /* K2 */ be_nested_str_weak(error), - /* K3 */ be_nested_str_weak(Duplicate_X20parameter_X20name_X20_X27_X25s_X27_X20in_X20template_X2E_X20Each_X20parameter_X20must_X20have_X20a_X20unique_X20name_X2E), - /* K4 */ be_nested_str_weak(engine), - /* K5 */ be_nested_str_weak(self), - /* K6 */ be_nested_str_weak(animation), - /* K7 */ be_nested_str_weak(color), - /* K8 */ be_nested_str_weak(palette), - /* K9 */ be_nested_str_weak(sequence), - /* K10 */ be_nested_str_weak(template), - /* K11 */ be_nested_str_weak(import), - /* K12 */ be_nested_str_weak(def), - /* K13 */ be_nested_str_weak(end), - /* K14 */ be_nested_str_weak(class), - /* K15 */ be_nested_str_weak(var), - /* K16 */ be_nested_str_weak(if), - /* K17 */ be_nested_str_weak(else), - /* K18 */ be_nested_str_weak(while), - /* K19 */ be_nested_str_weak(for), - /* K20 */ be_nested_str_weak(true), - /* K21 */ be_nested_str_weak(false), - /* K22 */ be_nested_str_weak(nil), - /* K23 */ be_nested_str_weak(return), - /* K24 */ be_nested_str_weak(break), - /* K25 */ be_nested_str_weak(continue), - /* K26 */ 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), - /* K27 */ be_nested_str_weak(stop_iteration), - /* 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), - /* K30 */ be_nested_str_weak(name), - /* K31 */ be_nested_str_weak(is_running), - /* K32 */ be_nested_str_weak(priority), - /* K33 */ be_nested_str_weak(duration), - /* K34 */ be_nested_str_weak(loop), - /* K35 */ be_nested_str_weak(opacity), - /* K36 */ be_nested_str_weak(warning), - /* K37 */ be_nested_str_weak(Template_X20animation_X20parameter_X20_X27_X25s_X27_X20masks_X20existing_X20parameter_X20from_X20EngineProxy_X20base_X20class_X2E_X20This_X20may_X20cause_X20unexpected_X20behavior_X2E_X20Consider_X20using_X20a_X20different_X20name_X20like_X20_X27custom__X25s_X27_X20or_X20_X27_X25s_value_X27_X2E), + /* K1 */ be_nested_str_weak(pull_lexer), + /* K2 */ be_nested_str_weak(output), + /* K3 */ be_nested_str_weak(warnings), + /* K4 */ be_nested_str_weak(run_statements), + /* K5 */ be_nested_str_weak(strip_initialized), + /* K6 */ be_nested_str_weak(symbol_table), + /* K7 */ be_nested_str_weak(_symbol_table), + /* K8 */ be_nested_str_weak(indent_level), + /* K9 */ be_const_int(0), + /* K10 */ be_nested_str_weak(has_template_calls), + /* K11 */ be_nested_str_weak(template_animation_params), }), - be_str_weak(_validate_template_parameter_name), + be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[109]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x8C140501, // 0001 GETMET R5 R2 K1 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x7C140400, // 0003 CALL R5 2 - 0x78160007, // 0004 JMPF R5 #000D - 0x8C140102, // 0005 GETMET R5 R0 K2 - 0x601C0018, // 0006 GETGBL R7 G24 - 0x58200003, // 0007 LDCONST R8 K3 - 0x5C240200, // 0008 MOVE R9 R1 - 0x7C1C0400, // 0009 CALL R7 2 - 0x7C140400, // 000A CALL R5 2 - 0x50140000, // 000B LDBOOL R5 0 0 - 0x80040A00, // 000C RET 1 R5 - 0x60140012, // 000D GETGBL R5 G18 - 0x7C140000, // 000E CALL R5 0 - 0x40180B04, // 000F CONNECT R6 R5 K4 - 0x40180B05, // 0010 CONNECT R6 R5 K5 - 0x40180B06, // 0011 CONNECT R6 R5 K6 - 0x40180B07, // 0012 CONNECT R6 R5 K7 - 0x40180B08, // 0013 CONNECT R6 R5 K8 - 0x40180B09, // 0014 CONNECT R6 R5 K9 - 0x40180B0A, // 0015 CONNECT R6 R5 K10 - 0x40180B0B, // 0016 CONNECT R6 R5 K11 - 0x40180B0C, // 0017 CONNECT R6 R5 K12 - 0x40180B0D, // 0018 CONNECT R6 R5 K13 - 0x40180B0E, // 0019 CONNECT R6 R5 K14 - 0x40180B0F, // 001A CONNECT R6 R5 K15 - 0x40180B10, // 001B CONNECT R6 R5 K16 - 0x40180B11, // 001C CONNECT R6 R5 K17 - 0x40180B12, // 001D CONNECT R6 R5 K18 - 0x40180B13, // 001E CONNECT R6 R5 K19 - 0x40180B14, // 001F CONNECT R6 R5 K20 - 0x40180B15, // 0020 CONNECT R6 R5 K21 - 0x40180B16, // 0021 CONNECT R6 R5 K22 - 0x40180B17, // 0022 CONNECT R6 R5 K23 - 0x40180B18, // 0023 CONNECT R6 R5 K24 - 0x40180B19, // 0024 CONNECT R6 R5 K25 - 0x60180010, // 0025 GETGBL R6 G16 - 0x5C1C0A00, // 0026 MOVE R7 R5 - 0x7C180200, // 0027 CALL R6 1 - 0xA802000F, // 0028 EXBLK 0 #0039 - 0x5C1C0C00, // 0029 MOVE R7 R6 - 0x7C1C0000, // 002A CALL R7 0 - 0x1C200207, // 002B EQ R8 R1 R7 - 0x7822000A, // 002C JMPF R8 #0038 - 0x8C200102, // 002D GETMET R8 R0 K2 - 0x60280018, // 002E GETGBL R10 G24 - 0x582C001A, // 002F LDCONST R11 K26 - 0x5C300200, // 0030 MOVE R12 R1 - 0x5C340200, // 0031 MOVE R13 R1 - 0x5C380200, // 0032 MOVE R14 R1 - 0x7C280800, // 0033 CALL R10 4 - 0x7C200400, // 0034 CALL R8 2 - 0x50200000, // 0035 LDBOOL R8 0 0 - 0xA8040001, // 0036 EXBLK 1 1 - 0x80041000, // 0037 RET 1 R8 - 0x7001FFEF, // 0038 JMP #0029 - 0x5818001B, // 0039 LDCONST R6 K27 - 0xAC180200, // 003A CATCH R6 1 0 - 0xB0080000, // 003B RAISE 2 R0 R0 - 0x8C18091C, // 003C GETMET R6 R4 K28 - 0x5C200200, // 003D MOVE R8 R1 - 0x7C180400, // 003E CALL R6 2 - 0x781A0009, // 003F JMPF R6 #004A - 0x8C180102, // 0040 GETMET R6 R0 K2 - 0x60200018, // 0041 GETGBL R8 G24 - 0x5824001D, // 0042 LDCONST R9 K29 - 0x5C280200, // 0043 MOVE R10 R1 - 0x5C2C0200, // 0044 MOVE R11 R1 - 0x5C300200, // 0045 MOVE R12 R1 - 0x7C200800, // 0046 CALL R8 4 - 0x7C180400, // 0047 CALL R6 2 - 0x50180000, // 0048 LDBOOL R6 0 0 - 0x80040C00, // 0049 RET 1 R6 - 0x780E001F, // 004A JMPF R3 #006B - 0x60180012, // 004B GETGBL R6 G18 - 0x7C180000, // 004C CALL R6 0 - 0x401C0D1E, // 004D CONNECT R7 R6 K30 - 0x401C0D1F, // 004E CONNECT R7 R6 K31 - 0x401C0D20, // 004F CONNECT R7 R6 K32 - 0x401C0D21, // 0050 CONNECT R7 R6 K33 - 0x401C0D22, // 0051 CONNECT R7 R6 K34 - 0x401C0D23, // 0052 CONNECT R7 R6 K35 - 0x401C0D07, // 0053 CONNECT R7 R6 K7 - 0x601C0010, // 0054 GETGBL R7 G16 - 0x5C200C00, // 0055 MOVE R8 R6 - 0x7C1C0200, // 0056 CALL R7 1 - 0xA802000F, // 0057 EXBLK 0 #0068 - 0x5C200E00, // 0058 MOVE R8 R7 - 0x7C200000, // 0059 CALL R8 0 - 0x1C240208, // 005A EQ R9 R1 R8 - 0x78260008, // 005B JMPF R9 #0065 - 0x8C240124, // 005C GETMET R9 R0 K36 - 0x602C0018, // 005D GETGBL R11 G24 - 0x58300025, // 005E LDCONST R12 K37 - 0x5C340200, // 005F MOVE R13 R1 - 0x5C380200, // 0060 MOVE R14 R1 - 0x5C3C0200, // 0061 MOVE R15 R1 - 0x7C2C0800, // 0062 CALL R11 4 - 0x7C240400, // 0063 CALL R9 2 - 0x70020000, // 0064 JMP #0066 - 0x7001FFF1, // 0065 JMP #0058 - 0xA8040001, // 0066 EXBLK 1 1 - 0x70020002, // 0067 JMP #006B - 0x581C001B, // 0068 LDCONST R7 K27 - 0xAC1C0200, // 0069 CATCH R7 1 0 - 0xB0080000, // 006A RAISE 2 R0 R0 - 0x50180200, // 006B LDBOOL R6 1 0 - 0x80040C00, // 006C RET 1 R6 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), - }), - be_str_weak(expect_keyword), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x200C0403, // 0003 NE R3 R2 R3 - 0x780E0008, // 0004 JMPF R3 #000E - 0x880C0501, // 0005 GETMBR R3 R2 K1 - 0x1C0C0702, // 0006 EQ R3 R3 K2 - 0x780E0005, // 0007 JMPF R3 #000E - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0x1C0C0601, // 0009 EQ R3 R3 R1 - 0x780E0002, // 000A JMPF R3 #000E - 0x8C0C0104, // 000B GETMET R3 R0 K4 - 0x7C0C0200, // 000C CALL R3 1 - 0x70020005, // 000D JMP #0014 - 0x8C0C0105, // 000E GETMET R3 R0 K5 - 0x60140018, // 000F GETGBL R5 G24 - 0x58180006, // 0010 LDCONST R6 K6 - 0x5C1C0200, // 0011 MOVE R7 R1 - 0x7C140400, // 0012 CALL R5 2 - 0x7C0C0400, // 0013 CALL R3 2 - 0x80000000, // 0014 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[16]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(3), - /* K4 */ be_nested_str_weak(error), - /* K5 */ 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), - /* K6 */ be_nested_str_weak(skip_statement), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(collect_inline_comment), - /* K9 */ be_nested_str_weak(add), - /* K10 */ be_nested_str_weak(_X23_X20Berry_X20code_X20block_X25s), - /* K11 */ be_nested_str_weak(string), - /* K12 */ be_nested_str_weak(split), - /* K13 */ be_nested_str_weak(_X0A), - /* K14 */ be_nested_str_weak(stop_iteration), - /* K15 */ be_nested_str_weak(_X23_X20End_X20berry_X20code_X20block), - }), - be_str_weak(process_berry_code_block), - &be_const_str_solidified, - ( &(const binstruction[49]) { /* 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 - 0x740A0002, // 0006 JMPT R2 #000A - 0x88080302, // 0007 GETMBR R2 R1 K2 - 0x20080503, // 0008 NE R2 R2 K3 - 0x780A0005, // 0009 JMPF R2 #0010 - 0x8C080104, // 000A GETMET R2 R0 K4 - 0x58100005, // 000B LDCONST R4 K5 - 0x7C080400, // 000C CALL R2 2 - 0x8C080106, // 000D GETMET R2 R0 K6 - 0x7C080200, // 000E CALL R2 1 - 0x80000400, // 000F RET 0 - 0x88080307, // 0010 GETMBR R2 R1 K7 - 0x8C0C0100, // 0011 GETMET R3 R0 K0 - 0x7C0C0200, // 0012 CALL R3 1 - 0x8C0C0108, // 0013 GETMET R3 R0 K8 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C100109, // 0015 GETMET R4 R0 K9 - 0x60180018, // 0016 GETGBL R6 G24 - 0x581C000A, // 0017 LDCONST R7 K10 - 0x5C200600, // 0018 MOVE R8 R3 - 0x7C180400, // 0019 CALL R6 2 - 0x7C100400, // 001A CALL R4 2 - 0xA4121600, // 001B IMPORT R4 K11 - 0x8C14090C, // 001C GETMET R5 R4 K12 - 0x5C1C0400, // 001D MOVE R7 R2 - 0x5820000D, // 001E LDCONST R8 K13 - 0x7C140600, // 001F CALL R5 3 - 0x60180010, // 0020 GETGBL R6 G16 - 0x5C1C0A00, // 0021 MOVE R7 R5 - 0x7C180200, // 0022 CALL R6 1 - 0xA8020005, // 0023 EXBLK 0 #002A - 0x5C1C0C00, // 0024 MOVE R7 R6 - 0x7C1C0000, // 0025 CALL R7 0 - 0x8C200109, // 0026 GETMET R8 R0 K9 - 0x5C280E00, // 0027 MOVE R10 R7 - 0x7C200400, // 0028 CALL R8 2 - 0x7001FFF9, // 0029 JMP #0024 - 0x5818000E, // 002A LDCONST R6 K14 - 0xAC180200, // 002B CATCH R6 1 0 - 0xB0080000, // 002C RAISE 2 R0 R0 - 0x8C180109, // 002D GETMET R6 R0 K9 - 0x5820000F, // 002E LDCONST R8 K15 - 0x7C180400, // 002F CALL R6 2 - 0x80000000, // 0030 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: _unwrap_resolve -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__unwrap_resolve, /* 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[ 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(_unwrap_resolve), - &be_const_str_solidified, - ( &(const binstruction[33]) { /* code */ + ( &(const binstruction[22]) { /* 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 - 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 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: transpile_template_body -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transpile_template_body, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[15]) { /* constants */ - /* K0 */ be_const_int(0), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_const_int(1), - /* K5 */ be_nested_str_weak(process_statement), - /* K6 */ be_nested_str_weak(run_statements), - /* K7 */ be_nested_str_weak(name), - /* K8 */ be_nested_str_weak(comment), - /* K9 */ be_nested_str_weak(add), - /* K10 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), - /* K11 */ be_nested_str_weak(stop_iteration), - /* K12 */ be_nested_str_weak(join_output), - /* K13 */ be_nested_str_weak(error), - /* K14 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), - }), - be_str_weak(transpile_template_body), - &be_const_str_solidified, - ( &(const binstruction[78]) { /* code */ - 0xA8020041, // 0000 EXBLK 0 #0043 - 0x58040000, // 0001 LDCONST R1 K0 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x740A001F, // 0004 JMPT R2 #0025 - 0x8C080102, // 0005 GETMET R2 R0 K2 - 0x7C080200, // 0006 CALL R2 1 - 0x4C0C0000, // 0007 LDNIL R3 - 0x200C0403, // 0008 NE R3 R2 R3 - 0x780E0006, // 0009 JMPF R3 #0011 - 0x880C0503, // 000A GETMBR R3 R2 K3 - 0x5412001A, // 000B LDINT R4 27 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x780E0002, // 000D JMPF R3 #0011 - 0x1C0C0300, // 000E EQ R3 R1 K0 - 0x780E0000, // 000F JMPF R3 #0011 - 0x70020013, // 0010 JMP #0025 - 0x4C0C0000, // 0011 LDNIL R3 - 0x200C0403, // 0012 NE R3 R2 R3 - 0x780E0005, // 0013 JMPF R3 #001A - 0x880C0503, // 0014 GETMBR R3 R2 K3 - 0x54120019, // 0015 LDINT R4 26 - 0x1C0C0604, // 0016 EQ R3 R3 R4 - 0x780E0001, // 0017 JMPF R3 #001A - 0x00040304, // 0018 ADD R1 R1 K4 - 0x70020007, // 0019 JMP #0022 - 0x4C0C0000, // 001A LDNIL R3 - 0x200C0403, // 001B NE R3 R2 R3 - 0x780E0004, // 001C JMPF R3 #0022 - 0x880C0503, // 001D GETMBR R3 R2 K3 - 0x5412001A, // 001E LDINT R4 27 - 0x1C0C0604, // 001F EQ R3 R3 R4 - 0x780E0000, // 0020 JMPF R3 #0022 - 0x04040304, // 0021 SUB R1 R1 K4 - 0x8C0C0105, // 0022 GETMET R3 R0 K5 - 0x7C0C0200, // 0023 CALL R3 1 - 0x7001FFDC, // 0024 JMP #0002 - 0x6008000C, // 0025 GETGBL R2 G12 - 0x880C0106, // 0026 GETMBR R3 R0 K6 - 0x7C080200, // 0027 CALL R2 1 - 0x24080500, // 0028 GT R2 R2 K0 - 0x780A0012, // 0029 JMPF R2 #003D - 0x60080010, // 002A GETGBL R2 G16 - 0x880C0106, // 002B GETMBR R3 R0 K6 - 0x7C080200, // 002C CALL R2 1 - 0xA802000B, // 002D EXBLK 0 #003A - 0x5C0C0400, // 002E MOVE R3 R2 - 0x7C0C0000, // 002F CALL R3 0 - 0x94100707, // 0030 GETIDX R4 R3 K7 - 0x94140708, // 0031 GETIDX R5 R3 K8 - 0x8C180109, // 0032 GETMET R6 R0 K9 - 0x60200018, // 0033 GETGBL R8 G24 - 0x5824000A, // 0034 LDCONST R9 K10 - 0x5C280800, // 0035 MOVE R10 R4 - 0x5C2C0A00, // 0036 MOVE R11 R5 - 0x7C200600, // 0037 CALL R8 3 - 0x7C180400, // 0038 CALL R6 2 - 0x7001FFF3, // 0039 JMP #002E - 0x5808000B, // 003A LDCONST R2 K11 - 0xAC080200, // 003B CATCH R2 1 0 - 0xB0080000, // 003C RAISE 2 R0 R0 - 0x8C08010C, // 003D GETMET R2 R0 K12 - 0x7C080200, // 003E CALL R2 1 - 0xA8040001, // 003F EXBLK 1 1 - 0x80040400, // 0040 RET 1 R2 - 0xA8040001, // 0041 EXBLK 1 1 - 0x70020009, // 0042 JMP #004D - 0xAC040002, // 0043 CATCH R1 0 2 - 0x70020006, // 0044 JMP #004C - 0x8C0C010D, // 0045 GETMET R3 R0 K13 - 0x60140018, // 0046 GETGBL R5 G24 - 0x5818000E, // 0047 LDCONST R6 K14 - 0x5C1C0400, // 0048 MOVE R7 R2 - 0x7C140400, // 0049 CALL R5 2 - 0x7C0C0400, // 004A CALL R3 2 - 0x70020000, // 004B JMP #004D - 0xB0080000, // 004C RAISE 2 R0 R0 - 0x80000000, // 004D 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: _parse_parameter_constraints -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__parse_parameter_constraints, /* 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[23]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(0), - /* K4 */ be_const_int(1), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(expect_identifier), - /* K8 */ be_nested_str_weak(_validate_template_parameter_type), - /* K9 */ be_nested_str_weak(min), - /* K10 */ be_nested_str_weak(process_value), - /* K11 */ be_nested_str_weak(CONTEXT_GENERIC), - /* K12 */ be_nested_str_weak(expr), - /* K13 */ be_nested_str_weak(error), - /* K14 */ be_nested_str_weak(Expected_X20value_X20after_X20_X27min_X27), - /* K15 */ be_nested_str_weak(max), - /* K16 */ be_nested_str_weak(Expected_X20value_X20after_X20_X27max_X27), - /* K17 */ be_nested_str_weak(default), - /* K18 */ be_nested_str_weak(Expected_X20value_X20after_X20_X27default_X27), - /* K19 */ be_nested_str_weak(nillable), - /* K20 */ be_nested_str_weak(true), - /* K21 */ be_nested_str_weak(false), - /* K22 */ be_nested_str_weak(Expected_X20_X27true_X27_X20or_X20_X27false_X27_X20after_X20_X27nillable_X27), - }), - be_str_weak(_parse_parameter_constraints), - &be_const_str_solidified, - ( &(const binstruction[166]) { /* code */ - 0x60040013, // 0000 GETGBL R1 G19 - 0x7C040000, // 0001 CALL R1 0 - 0x8C080100, // 0002 GETMET R2 R0 K0 - 0x7C080200, // 0003 CALL R2 1 - 0x740A0097, // 0004 JMPT R2 #009D - 0x8C080101, // 0005 GETMET R2 R0 K1 - 0x7C080200, // 0006 CALL R2 1 - 0x4C0C0000, // 0007 LDNIL R3 - 0x1C0C0403, // 0008 EQ R3 R2 R3 - 0x740E0007, // 0009 JMPT R3 #0012 - 0x880C0502, // 000A GETMBR R3 R2 K2 - 0x54120022, // 000B LDINT R4 35 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x740E0003, // 000D JMPT R3 #0012 - 0x880C0502, // 000E GETMBR R3 R2 K2 - 0x5412001A, // 000F LDINT R4 27 - 0x1C0C0604, // 0010 EQ R3 R3 R4 - 0x780E0000, // 0011 JMPF R3 #0013 - 0x70020089, // 0012 JMP #009D - 0x880C0502, // 0013 GETMBR R3 R2 K2 - 0x1C0C0703, // 0014 EQ R3 R3 K3 - 0x740E0002, // 0015 JMPT R3 #0019 - 0x880C0502, // 0016 GETMBR R3 R2 K2 - 0x1C0C0704, // 0017 EQ R3 R3 K4 - 0x780E0081, // 0018 JMPF R3 #009B - 0x880C0505, // 0019 GETMBR R3 R2 K5 - 0x1C0C0702, // 001A EQ R3 R3 K2 - 0x780E000B, // 001B JMPF R3 #0028 - 0x8C0C0106, // 001C GETMET R3 R0 K6 - 0x7C0C0200, // 001D CALL R3 1 - 0x8C0C0107, // 001E GETMET R3 R0 K7 - 0x7C0C0200, // 001F CALL R3 1 - 0x8C100108, // 0020 GETMET R4 R0 K8 - 0x5C180600, // 0021 MOVE R6 R3 - 0x7C100400, // 0022 CALL R4 2 - 0x74120001, // 0023 JMPT R4 #0026 - 0x4C100000, // 0024 LDNIL R4 - 0x80040800, // 0025 RET 1 R4 - 0x98060403, // 0026 SETIDX R1 K2 R3 - 0x70020071, // 0027 JMP #009A - 0x880C0505, // 0028 GETMBR R3 R2 K5 - 0x1C0C0709, // 0029 EQ R3 R3 K9 - 0x780E0014, // 002A JMPF R3 #0040 - 0x8C0C0106, // 002B GETMET R3 R0 K6 - 0x7C0C0200, // 002C CALL R3 1 - 0x8C0C010A, // 002D GETMET R3 R0 K10 - 0x8814010B, // 002E GETMBR R5 R0 K11 - 0x7C0C0400, // 002F CALL R3 2 - 0x4C100000, // 0030 LDNIL R4 - 0x20100604, // 0031 NE R4 R3 R4 - 0x78120006, // 0032 JMPF R4 #003A - 0x8810070C, // 0033 GETMBR R4 R3 K12 - 0x4C140000, // 0034 LDNIL R5 - 0x20100805, // 0035 NE R4 R4 R5 - 0x78120002, // 0036 JMPF R4 #003A - 0x8810070C, // 0037 GETMBR R4 R3 K12 - 0x98061204, // 0038 SETIDX R1 K9 R4 - 0x70020004, // 0039 JMP #003F - 0x8C10010D, // 003A GETMET R4 R0 K13 - 0x5818000E, // 003B LDCONST R6 K14 - 0x7C100400, // 003C CALL R4 2 - 0x4C100000, // 003D LDNIL R4 - 0x80040800, // 003E RET 1 R4 - 0x70020059, // 003F JMP #009A - 0x880C0505, // 0040 GETMBR R3 R2 K5 - 0x1C0C070F, // 0041 EQ R3 R3 K15 - 0x780E0014, // 0042 JMPF R3 #0058 - 0x8C0C0106, // 0043 GETMET R3 R0 K6 - 0x7C0C0200, // 0044 CALL R3 1 - 0x8C0C010A, // 0045 GETMET R3 R0 K10 - 0x8814010B, // 0046 GETMBR R5 R0 K11 - 0x7C0C0400, // 0047 CALL R3 2 - 0x4C100000, // 0048 LDNIL R4 - 0x20100604, // 0049 NE R4 R3 R4 - 0x78120006, // 004A JMPF R4 #0052 - 0x8810070C, // 004B GETMBR R4 R3 K12 - 0x4C140000, // 004C LDNIL R5 - 0x20100805, // 004D NE R4 R4 R5 - 0x78120002, // 004E JMPF R4 #0052 - 0x8810070C, // 004F GETMBR R4 R3 K12 - 0x98061E04, // 0050 SETIDX R1 K15 R4 - 0x70020004, // 0051 JMP #0057 - 0x8C10010D, // 0052 GETMET R4 R0 K13 - 0x58180010, // 0053 LDCONST R6 K16 - 0x7C100400, // 0054 CALL R4 2 - 0x4C100000, // 0055 LDNIL R4 - 0x80040800, // 0056 RET 1 R4 - 0x70020041, // 0057 JMP #009A - 0x880C0505, // 0058 GETMBR R3 R2 K5 - 0x1C0C0711, // 0059 EQ R3 R3 K17 - 0x780E0014, // 005A JMPF R3 #0070 - 0x8C0C0106, // 005B GETMET R3 R0 K6 - 0x7C0C0200, // 005C CALL R3 1 - 0x8C0C010A, // 005D GETMET R3 R0 K10 - 0x8814010B, // 005E GETMBR R5 R0 K11 - 0x7C0C0400, // 005F CALL R3 2 - 0x4C100000, // 0060 LDNIL R4 - 0x20100604, // 0061 NE R4 R3 R4 - 0x78120006, // 0062 JMPF R4 #006A - 0x8810070C, // 0063 GETMBR R4 R3 K12 - 0x4C140000, // 0064 LDNIL R5 - 0x20100805, // 0065 NE R4 R4 R5 - 0x78120002, // 0066 JMPF R4 #006A - 0x8810070C, // 0067 GETMBR R4 R3 K12 - 0x98062204, // 0068 SETIDX R1 K17 R4 - 0x70020004, // 0069 JMP #006F - 0x8C10010D, // 006A GETMET R4 R0 K13 - 0x58180012, // 006B LDCONST R6 K18 - 0x7C100400, // 006C CALL R4 2 - 0x4C100000, // 006D LDNIL R4 - 0x80040800, // 006E RET 1 R4 - 0x70020029, // 006F JMP #009A - 0x880C0505, // 0070 GETMBR R3 R2 K5 - 0x1C0C0713, // 0071 EQ R3 R3 K19 - 0x780E0025, // 0072 JMPF R3 #0099 - 0x8C0C0106, // 0073 GETMET R3 R0 K6 - 0x7C0C0200, // 0074 CALL R3 1 - 0x8C0C0101, // 0075 GETMET R3 R0 K1 - 0x7C0C0200, // 0076 CALL R3 1 - 0x4C100000, // 0077 LDNIL R4 - 0x20100604, // 0078 NE R4 R3 R4 - 0x78120018, // 0079 JMPF R4 #0093 - 0x88100702, // 007A GETMBR R4 R3 K2 - 0x1C100903, // 007B EQ R4 R4 K3 - 0x78120015, // 007C JMPF R4 #0093 - 0x88100705, // 007D GETMBR R4 R3 K5 - 0x1C100914, // 007E EQ R4 R4 K20 - 0x78120004, // 007F JMPF R4 #0085 - 0x8C100106, // 0080 GETMET R4 R0 K6 - 0x7C100200, // 0081 CALL R4 1 - 0x50100200, // 0082 LDBOOL R4 1 0 - 0x98062604, // 0083 SETIDX R1 K19 R4 - 0x7002000C, // 0084 JMP #0092 - 0x88100705, // 0085 GETMBR R4 R3 K5 - 0x1C100915, // 0086 EQ R4 R4 K21 - 0x78120004, // 0087 JMPF R4 #008D - 0x8C100106, // 0088 GETMET R4 R0 K6 - 0x7C100200, // 0089 CALL R4 1 - 0x50100000, // 008A LDBOOL R4 0 0 - 0x98062604, // 008B SETIDX R1 K19 R4 - 0x70020004, // 008C JMP #0092 - 0x8C10010D, // 008D GETMET R4 R0 K13 - 0x58180016, // 008E LDCONST R6 K22 - 0x7C100400, // 008F CALL R4 2 - 0x4C100000, // 0090 LDNIL R4 - 0x80040800, // 0091 RET 1 R4 - 0x70020004, // 0092 JMP #0098 - 0x8C10010D, // 0093 GETMET R4 R0 K13 - 0x58180016, // 0094 LDCONST R6 K22 - 0x7C100400, // 0095 CALL R4 2 - 0x4C100000, // 0096 LDNIL R4 - 0x80040800, // 0097 RET 1 R4 - 0x70020000, // 0098 JMP #009A - 0x70020002, // 0099 JMP #009D - 0x70020000, // 009A JMP #009C - 0x70020000, // 009B JMP #009D - 0x7001FF64, // 009C JMP #0002 - 0x6008000C, // 009D GETGBL R2 G12 - 0x5C0C0200, // 009E MOVE R3 R1 - 0x7C080200, // 009F CALL R2 1 - 0x24080503, // 00A0 GT R2 R2 K3 - 0x780A0001, // 00A1 JMPF R2 #00A4 - 0x5C080200, // 00A2 MOVE R2 R1 - 0x70020000, // 00A3 JMP #00A5 - 0x4C080000, // 00A4 LDNIL R2 - 0x80040400, // 00A5 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[ 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(_validate_single_parameter), - &be_const_str_solidified, - ( &(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 + 0x90020201, // 0001 SETMBR R0 K1 R1 + 0x600C0012, // 0002 GETGBL R3 G18 + 0x7C0C0000, // 0003 CALL R3 0 + 0x90020403, // 0004 SETMBR R0 K2 R3 + 0x600C0012, // 0005 GETGBL R3 G18 + 0x7C0C0000, // 0006 CALL R3 0 + 0x90020603, // 0007 SETMBR R0 K3 R3 + 0x600C0012, // 0008 GETGBL R3 G18 + 0x7C0C0000, // 0009 CALL R3 0 + 0x90020803, // 000A SETMBR R0 K4 R3 + 0x500C0000, // 000B LDBOOL R3 0 0 + 0x90020A03, // 000C SETMBR R0 K5 R3 + 0x8C0C0507, // 000D GETMET R3 R2 K7 + 0x7C0C0200, // 000E CALL R3 1 + 0x90020C03, // 000F SETMBR R0 K6 R3 + 0x90021109, // 0010 SETMBR R0 K8 K9 + 0x500C0000, // 0011 LDBOOL R3 0 0 + 0x90021403, // 0012 SETMBR R0 K10 R3 + 0x4C0C0000, // 0013 LDNIL R3 + 0x90021603, // 0014 SETMBR R0 K11 R3 + 0x80000000, // 0015 RET 0 }) ) ); @@ -10562,1593 +9571,6 @@ be_local_closure(class_SimpleDSLTranspiler_process_palette, /* name */ /*******************************************************************/ -/******************************************************************** -** 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), - }), - be_str_weak(expect_assign), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0007, // 0006 LDINT R3 8 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: current -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_current, /* 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(pull_lexer), - /* K1 */ be_nested_str_weak(peek_token), - }), - be_str_weak(current), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_const_int(1), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(peek), - /* K7 */ be_nested_str_weak(process_nested_function_call), - /* K8 */ be_nested_str_weak(expect_identifier), - /* K9 */ be_nested_str_weak(_validate_object_reference), - /* K10 */ be_nested_str_weak(sequence_X20play), - /* K11 */ be_nested_str_weak(_X25s_), - /* K12 */ be_nested_str_weak(nil), - /* K13 */ be_nested_str_weak(value), - /* K14 */ be_nested_str_weak(for), - /* K15 */ be_const_int(2), - /* K16 */ be_nested_str_weak(process_time_value), - /* K17 */ be_nested_str_weak(self_X2E), - /* K18 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20_X25s_X20end), - /* 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[111]) { /* 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 - 0x780E0014, // 0007 JMPF R3 #001D - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0x1C0C0704, // 0009 EQ R3 R3 K4 - 0x740E0002, // 000A JMPT R3 #000E - 0x880C0503, // 000B GETMBR R3 R2 K3 - 0x1C0C0705, // 000C EQ R3 R3 K5 - 0x780E000E, // 000D JMPF R3 #001D - 0x8C0C0106, // 000E GETMET R3 R0 K6 - 0x7C0C0200, // 000F CALL R3 1 - 0x4C100000, // 0010 LDNIL R4 - 0x200C0604, // 0011 NE R3 R3 R4 - 0x780E0009, // 0012 JMPF R3 #001D - 0x8C0C0106, // 0013 GETMET R3 R0 K6 - 0x7C0C0200, // 0014 CALL R3 1 - 0x880C0703, // 0015 GETMBR R3 R3 K3 - 0x54120017, // 0016 LDINT R4 24 - 0x1C0C0604, // 0017 EQ R3 R3 R4 - 0x780E0003, // 0018 JMPF R3 #001D - 0x8C0C0107, // 0019 GETMET R3 R0 K7 - 0x7C0C0200, // 001A CALL R3 1 - 0x5C040600, // 001B MOVE R1 R3 - 0x7002000A, // 001C JMP #0028 - 0x8C0C0108, // 001D GETMET R3 R0 K8 - 0x7C0C0200, // 001E CALL R3 1 - 0x8C100109, // 001F GETMET R4 R0 K9 - 0x5C180600, // 0020 MOVE R6 R3 - 0x581C000A, // 0021 LDCONST R7 K10 - 0x7C100600, // 0022 CALL R4 3 - 0x60100018, // 0023 GETGBL R4 G24 - 0x5814000B, // 0024 LDCONST R5 K11 - 0x5C180600, // 0025 MOVE R6 R3 - 0x7C100400, // 0026 CALL R4 2 - 0x5C040800, // 0027 MOVE R1 R4 - 0x580C000C, // 0028 LDCONST R3 K12 - 0x8C100102, // 0029 GETMET R4 R0 K2 - 0x7C100200, // 002A CALL R4 1 - 0x4C140000, // 002B LDNIL R5 - 0x20100805, // 002C NE R4 R4 R5 - 0x78120033, // 002D JMPF R4 #0062 - 0x8C100102, // 002E GETMET R4 R0 K2 - 0x7C100200, // 002F CALL R4 1 - 0x88100903, // 0030 GETMBR R4 R4 K3 - 0x1C100905, // 0031 EQ R4 R4 K5 - 0x7812002E, // 0032 JMPF R4 #0062 - 0x8C100102, // 0033 GETMET R4 R0 K2 - 0x7C100200, // 0034 CALL R4 1 - 0x8810090D, // 0035 GETMBR R4 R4 K13 - 0x1C10090E, // 0036 EQ R4 R4 K14 - 0x78120029, // 0037 JMPF R4 #0062 - 0x8C100100, // 0038 GETMET R4 R0 K0 - 0x7C100200, // 0039 CALL R4 1 - 0x8C100102, // 003A GETMET R4 R0 K2 - 0x7C100200, // 003B CALL R4 1 - 0x4C140000, // 003C LDNIL R5 - 0x20140805, // 003D NE R5 R4 R5 - 0x7816000A, // 003E JMPF R5 #004A - 0x88140903, // 003F GETMBR R5 R4 K3 - 0x541A0004, // 0040 LDINT R6 5 - 0x1C140A06, // 0041 EQ R5 R5 R6 - 0x74160002, // 0042 JMPT R5 #0046 - 0x88140903, // 0043 GETMBR R5 R4 K3 - 0x1C140B0F, // 0044 EQ R5 R5 K15 - 0x78160003, // 0045 JMPF R5 #004A - 0x8C140110, // 0046 GETMET R5 R0 K16 - 0x7C140200, // 0047 CALL R5 1 - 0x5C0C0A00, // 0048 MOVE R3 R5 - 0x70020017, // 0049 JMP #0062 - 0x4C140000, // 004A LDNIL R5 - 0x20140805, // 004B NE R5 R4 R5 - 0x78160011, // 004C JMPF R5 #005F - 0x88140903, // 004D GETMBR R5 R4 K3 - 0x1C140B04, // 004E EQ R5 R5 K4 - 0x7816000E, // 004F JMPF R5 #005F - 0x8C140110, // 0050 GETMET R5 R0 K16 - 0x7C140200, // 0051 CALL R5 1 - 0x541A0003, // 0052 LDINT R6 4 - 0x401A0A06, // 0053 CONNECT R6 K5 R6 - 0x94180A06, // 0054 GETIDX R6 R5 R6 - 0x1C180D11, // 0055 EQ R6 R6 K17 - 0x781A0005, // 0056 JMPF R6 #005D - 0x60180018, // 0057 GETGBL R6 G24 - 0x581C0012, // 0058 LDCONST R7 K18 - 0x5C200A00, // 0059 MOVE R8 R5 - 0x7C180400, // 005A CALL R6 2 - 0x5C0C0C00, // 005B MOVE R3 R6 - 0x70020000, // 005C JMP #005E - 0x5C0C0A00, // 005D MOVE R3 R5 - 0x70020002, // 005E JMP #0062 - 0x8C140110, // 005F GETMET R5 R0 K16 - 0x7C140200, // 0060 CALL R5 1 - 0x5C0C0A00, // 0061 MOVE R3 R5 - 0x8C100113, // 0062 GETMET R4 R0 K19 - 0x7C100200, // 0063 CALL R4 1 - 0x8C140114, // 0064 GETMET R5 R0 K20 - 0x601C0018, // 0065 GETGBL R7 G24 - 0x58200015, // 0066 LDCONST R8 K21 - 0x8C240116, // 0067 GETMET R9 R0 K22 - 0x7C240200, // 0068 CALL R9 1 - 0x5C280200, // 0069 MOVE R10 R1 - 0x5C2C0600, // 006A MOVE R11 R3 - 0x5C300800, // 006B MOVE R12 R4 - 0x7C1C0A00, // 006C CALL R7 5 - 0x7C140400, // 006D CALL R5 2 - 0x80000000, // 006E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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: _process_named_arguments_for_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* 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_ANIMATION), - }), - be_str_weak(_process_named_arguments_for_animation), - &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: 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: at_end -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_at_end, /* 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(pull_lexer), - /* K1 */ be_nested_str_weak(at_end), - }), - be_str_weak(at_end), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _add_inherited_params_to_template -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__add_inherited_params_to_template, /* 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[15]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(init_strip), - /* K3 */ be_nested_str_weak(engine_proxy), - /* K4 */ be_nested_str_weak(contains), - /* K5 */ be_nested_str_weak(PARAMS), - /* K6 */ be_nested_str_weak(keys), - /* K7 */ be_nested_str_weak(stop_iteration), - /* K8 */ be_nested_str_weak(name), - /* K9 */ be_nested_str_weak(priority), - /* K10 */ be_nested_str_weak(duration), - /* K11 */ be_nested_str_weak(loop), - /* K12 */ be_nested_str_weak(opacity), - /* K13 */ be_nested_str_weak(color), - /* K14 */ be_nested_str_weak(is_running), - }), - be_str_weak(_add_inherited_params_to_template), - &be_const_str_solidified, - ( &(const binstruction[67]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xA8020026, // 0001 EXBLK 0 #0029 - 0xB80E0200, // 0002 GETNGBL R3 K1 - 0x8C0C0702, // 0003 GETMET R3 R3 K2 - 0x7C0C0200, // 0004 CALL R3 1 - 0xB8120200, // 0005 GETNGBL R4 K1 - 0x8C100903, // 0006 GETMET R4 R4 K3 - 0x5C180600, // 0007 MOVE R6 R3 - 0x7C100400, // 0008 CALL R4 2 - 0x60140006, // 0009 GETGBL R5 G6 - 0x5C180800, // 000A MOVE R6 R4 - 0x7C140200, // 000B CALL R5 1 - 0x4C180000, // 000C LDNIL R6 - 0x20180A06, // 000D NE R6 R5 R6 - 0x781A0017, // 000E JMPF R6 #0027 - 0x8C180504, // 000F GETMET R6 R2 K4 - 0x5C200A00, // 0010 MOVE R8 R5 - 0x58240005, // 0011 LDCONST R9 K5 - 0x7C180600, // 0012 CALL R6 3 - 0x781A000D, // 0013 JMPF R6 #0022 - 0x88180B05, // 0014 GETMBR R6 R5 K5 - 0x601C0010, // 0015 GETGBL R7 G16 - 0x8C200D06, // 0016 GETMET R8 R6 K6 - 0x7C200200, // 0017 CALL R8 1 - 0x7C1C0200, // 0018 CALL R7 1 - 0xA8020004, // 0019 EXBLK 0 #001F - 0x5C200E00, // 001A MOVE R8 R7 - 0x7C200000, // 001B CALL R8 0 - 0x50240200, // 001C LDBOOL R9 1 0 - 0x98041009, // 001D SETIDX R1 R8 R9 - 0x7001FFFA, // 001E JMP #001A - 0x581C0007, // 001F LDCONST R7 K7 - 0xAC1C0200, // 0020 CATCH R7 1 0 - 0xB0080000, // 0021 RAISE 2 R0 R0 - 0x60180003, // 0022 GETGBL R6 G3 - 0x5C1C0A00, // 0023 MOVE R7 R5 - 0x7C180200, // 0024 CALL R6 1 - 0x5C140C00, // 0025 MOVE R5 R6 - 0x7001FFE4, // 0026 JMP #000C - 0xA8040001, // 0027 EXBLK 1 1 - 0x70020018, // 0028 JMP #0042 - 0xAC0C0002, // 0029 CATCH R3 0 2 - 0x70020015, // 002A JMP #0041 - 0x60140012, // 002B GETGBL R5 G18 - 0x7C140000, // 002C CALL R5 0 - 0x40180B08, // 002D CONNECT R6 R5 K8 - 0x40180B09, // 002E CONNECT R6 R5 K9 - 0x40180B0A, // 002F CONNECT R6 R5 K10 - 0x40180B0B, // 0030 CONNECT R6 R5 K11 - 0x40180B0C, // 0031 CONNECT R6 R5 K12 - 0x40180B0D, // 0032 CONNECT R6 R5 K13 - 0x40180B0E, // 0033 CONNECT R6 R5 K14 - 0x60180010, // 0034 GETGBL R6 G16 - 0x5C1C0A00, // 0035 MOVE R7 R5 - 0x7C180200, // 0036 CALL R6 1 - 0xA8020004, // 0037 EXBLK 0 #003D - 0x5C1C0C00, // 0038 MOVE R7 R6 - 0x7C1C0000, // 0039 CALL R7 0 - 0x50200200, // 003A LDBOOL R8 1 0 - 0x98040E08, // 003B SETIDX R1 R7 R8 - 0x7001FFFA, // 003C JMP #0038 - 0x58180007, // 003D LDCONST R6 K7 - 0xAC180200, // 003E CATCH R6 1 0 - 0xB0080000, // 003F RAISE 2 R0 R0 - 0x70020000, // 0040 JMP #0042 - 0xB0080000, // 0041 RAISE 2 R0 R0 - 0x80000000, // 0042 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_repeat_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_repeat_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[24]) { /* 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_const_int(0), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(forever), - /* K7 */ be_nested_str_weak(_X2D1), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K10 */ be_nested_str_weak(expect_keyword), - /* K11 */ be_nested_str_weak(times), - /* K12 */ be_nested_str_weak(expr), - /* K13 */ be_nested_str_weak(expect_left_brace), - /* K14 */ be_nested_str_weak(add), - /* K15 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2Esequence_manager_X28engine_X2C_X20_X25s_X29), - /* K16 */ be_nested_str_weak(get_indent), - /* K17 */ be_nested_str_weak(indent_level), - /* K18 */ be_const_int(1), - /* K19 */ be_nested_str_weak(at_end), - /* K20 */ be_nested_str_weak(check_right_brace), - /* K21 */ be_nested_str_weak(process_sequence_statement), - /* K22 */ be_nested_str_weak(expect_right_brace), - /* K23 */ be_nested_str_weak(_X25s_X29), - }), - be_str_weak(process_repeat_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[60]) { /* 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 - 0x780E0009, // 0007 JMPF R3 #0012 - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0x1C0C0704, // 0009 EQ R3 R3 K4 - 0x780E0006, // 000A JMPF R3 #0012 - 0x880C0505, // 000B GETMBR R3 R2 K5 - 0x1C0C0706, // 000C EQ R3 R3 K6 - 0x780E0003, // 000D JMPF R3 #0012 - 0x8C0C0100, // 000E GETMET R3 R0 K0 - 0x7C0C0200, // 000F CALL R3 1 - 0x58040007, // 0010 LDCONST R1 K7 - 0x70020006, // 0011 JMP #0019 - 0x8C0C0108, // 0012 GETMET R3 R0 K8 - 0x88140109, // 0013 GETMBR R5 R0 K9 - 0x7C0C0400, // 0014 CALL R3 2 - 0x8C10010A, // 0015 GETMET R4 R0 K10 - 0x5818000B, // 0016 LDCONST R6 K11 - 0x7C100400, // 0017 CALL R4 2 - 0x8804070C, // 0018 GETMBR R1 R3 K12 - 0x8C0C010D, // 0019 GETMET R3 R0 K13 - 0x7C0C0200, // 001A CALL R3 1 - 0x8C0C010E, // 001B GETMET R3 R0 K14 - 0x60140018, // 001C GETGBL R5 G24 - 0x5818000F, // 001D LDCONST R6 K15 - 0x8C1C0110, // 001E GETMET R7 R0 K16 - 0x7C1C0200, // 001F CALL R7 1 - 0x5C200200, // 0020 MOVE R8 R1 - 0x7C140600, // 0021 CALL R5 3 - 0x7C0C0400, // 0022 CALL R3 2 - 0x880C0111, // 0023 GETMBR R3 R0 K17 - 0x000C0712, // 0024 ADD R3 R3 K18 - 0x90022203, // 0025 SETMBR R0 K17 R3 - 0x8C0C0113, // 0026 GETMET R3 R0 K19 - 0x7C0C0200, // 0027 CALL R3 1 - 0x740E0005, // 0028 JMPT R3 #002F - 0x8C0C0114, // 0029 GETMET R3 R0 K20 - 0x7C0C0200, // 002A CALL R3 1 - 0x740E0002, // 002B JMPT R3 #002F - 0x8C0C0115, // 002C GETMET R3 R0 K21 - 0x7C0C0200, // 002D CALL R3 1 - 0x7001FFF6, // 002E JMP #0026 - 0x8C0C0116, // 002F GETMET R3 R0 K22 - 0x7C0C0200, // 0030 CALL R3 1 - 0x8C0C010E, // 0031 GETMET R3 R0 K14 - 0x60140018, // 0032 GETGBL R5 G24 - 0x58180017, // 0033 LDCONST R6 K23 - 0x8C1C0110, // 0034 GETMET R7 R0 K16 - 0x7C1C0200, // 0035 CALL R7 1 - 0x7C140400, // 0036 CALL R5 2 - 0x7C0C0400, // 0037 CALL R3 2 - 0x880C0111, // 0038 GETMBR R3 R0 K17 - 0x040C0712, // 0039 SUB R3 R3 K18 - 0x90022203, // 003A SETMBR R0 K17 R3 - 0x80000000, // 003B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: next -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_next, /* 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(pull_lexer), - /* K1 */ be_nested_str_weak(next_token), - }), - be_str_weak(next), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x7C040200, // 0002 CALL R1 1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_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[14]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(1), - /* K3 */ be_nested_str_weak(peek), - /* K4 */ be_nested_str_weak(value), - /* K5 */ be_nested_str_weak(process_value), - /* K6 */ be_nested_str_weak(collect_inline_comment), - /* K7 */ be_nested_str_weak(add), - /* K8 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - /* K9 */ be_nested_str_weak(expr), - /* K10 */ be_nested_str_weak(symbol_table), - /* K11 */ be_nested_str_weak(contains), - /* K12 */ be_nested_str_weak(get), - /* K13 */ be_nested_str_weak(instance), - }), - be_str_weak(_process_simple_value_assignment), - &be_const_str_solidified, - ( &(const binstruction[73]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x4C140000, // 0002 LDNIL R5 - 0x20140805, // 0003 NE R5 R4 R5 - 0x7816000D, // 0004 JMPF R5 #0013 - 0x88140901, // 0005 GETMBR R5 R4 K1 - 0x1C140B02, // 0006 EQ R5 R5 K2 - 0x7816000A, // 0007 JMPF R5 #0013 - 0x8C140103, // 0008 GETMET R5 R0 K3 - 0x7C140200, // 0009 CALL R5 1 - 0x4C180000, // 000A LDNIL R6 - 0x1C140A06, // 000B EQ R5 R5 R6 - 0x74160006, // 000C JMPT R5 #0014 - 0x8C140103, // 000D GETMET R5 R0 K3 - 0x7C140200, // 000E CALL R5 1 - 0x88140B01, // 000F GETMBR R5 R5 K1 - 0x541A0017, // 0010 LDINT R6 24 - 0x20140A06, // 0011 NE R5 R5 R6 - 0x74160000, // 0012 JMPT R5 #0014 - 0x50140001, // 0013 LDBOOL R5 0 1 - 0x50140200, // 0014 LDBOOL R5 1 0 - 0x78160001, // 0015 JMPF R5 #0018 - 0x88180904, // 0016 GETMBR R6 R4 K4 - 0x70020000, // 0017 JMP #0019 - 0x4C180000, // 0018 LDNIL R6 - 0x8C1C0105, // 0019 GETMET R7 R0 K5 - 0x5C240400, // 001A MOVE R9 R2 - 0x7C1C0400, // 001B CALL R7 2 - 0x8C200106, // 001C GETMET R8 R0 K6 - 0x7C200200, // 001D CALL R8 1 - 0x8C240107, // 001E GETMET R9 R0 K7 - 0x602C0018, // 001F GETGBL R11 G24 - 0x58300008, // 0020 LDCONST R12 K8 - 0x5C340200, // 0021 MOVE R13 R1 - 0x88380F09, // 0022 GETMBR R14 R7 K9 - 0x5C3C1000, // 0023 MOVE R15 R8 - 0x7C2C0800, // 0024 CALL R11 4 - 0x7C240400, // 0025 CALL R9 2 - 0x7816001C, // 0026 JMPF R5 #0044 - 0x4C240000, // 0027 LDNIL R9 - 0x20240C09, // 0028 NE R9 R6 R9 - 0x78260019, // 0029 JMPF R9 #0044 - 0x8824010A, // 002A GETMBR R9 R0 K10 - 0x8C24130B, // 002B GETMET R9 R9 K11 - 0x5C2C0C00, // 002C MOVE R11 R6 - 0x7C240400, // 002D CALL R9 2 - 0x78260014, // 002E JMPF R9 #0044 - 0x8824010A, // 002F GETMBR R9 R0 K10 - 0x8C24130C, // 0030 GETMET R9 R9 K12 - 0x5C2C0C00, // 0031 MOVE R11 R6 - 0x7C240400, // 0032 CALL R9 2 - 0x4C280000, // 0033 LDNIL R10 - 0x2028120A, // 0034 NE R10 R9 R10 - 0x782A0008, // 0035 JMPF R10 #003F - 0x8828130D, // 0036 GETMBR R10 R9 K13 - 0x4C2C0000, // 0037 LDNIL R11 - 0x2028140B, // 0038 NE R10 R10 R11 - 0x782A0004, // 0039 JMPF R10 #003F - 0x5C280600, // 003A MOVE R10 R3 - 0x5C2C0200, // 003B MOVE R11 R1 - 0x8830130D, // 003C GETMBR R12 R9 K13 - 0x7C280400, // 003D CALL R10 2 - 0x70020003, // 003E JMP #0043 - 0x5C280600, // 003F MOVE R10 R3 - 0x5C2C0200, // 0040 MOVE R11 R1 - 0x4C300000, // 0041 LDNIL R12 - 0x7C280400, // 0042 CALL R10 2 - 0x70020003, // 0043 JMP #0048 - 0x5C240600, // 0044 MOVE R9 R3 - 0x5C280200, // 0045 MOVE R10 R1 - 0x4C2C0000, // 0046 LDNIL R11 - 0x7C240400, // 0047 CALL R9 2 - 0x80000000, // 0048 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X5B_X27), - }), - be_str_weak(expect_left_bracket), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001B, // 0006 LDINT R3 28 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_array_literal -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[19]) { /* 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(next), - /* K10 */ be_nested_str_weak(error), - /* K11 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), - /* K12 */ be_nested_str_weak(expect_right_bracket), - /* K13 */ be_nested_str_weak(_X5B), - /* K14 */ be_const_int(0), - /* K15 */ be_const_int(1), - /* K16 */ be_nested_str_weak(_X2C_X20), - /* K17 */ be_nested_str_weak(stop_iteration), - /* K18 */ be_nested_str_weak(_X5D), - }), - be_str_weak(process_array_literal), - &be_const_str_solidified, - ( &(const binstruction[62]) { /* 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 - 0x740A001E, // 0006 JMPT R2 #0026 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A001B, // 0009 JMPT R2 #0026 - 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 - 0x780E0008, // 0014 JMPF R3 #001E - 0x8C0C0107, // 0015 GETMET R3 R0 K7 - 0x7C0C0200, // 0016 CALL R3 1 - 0x880C0708, // 0017 GETMBR R3 R3 K8 - 0x5412001D, // 0018 LDINT R4 30 - 0x1C0C0604, // 0019 EQ R3 R3 R4 - 0x780E0002, // 001A JMPF R3 #001E - 0x8C0C0109, // 001B GETMET R3 R0 K9 - 0x7C0C0200, // 001C CALL R3 1 - 0x70020006, // 001D JMP #0025 - 0x8C0C0102, // 001E GETMET R3 R0 K2 - 0x7C0C0200, // 001F CALL R3 1 - 0x740E0003, // 0020 JMPT R3 #0025 - 0x8C0C010A, // 0021 GETMET R3 R0 K10 - 0x5814000B, // 0022 LDCONST R5 K11 - 0x7C0C0400, // 0023 CALL R3 2 - 0x70020000, // 0024 JMP #0026 - 0x7001FFDD, // 0025 JMP #0004 - 0x8C08010C, // 0026 GETMET R2 R0 K12 - 0x7C080200, // 0027 CALL R2 1 - 0x5808000D, // 0028 LDCONST R2 K13 - 0x600C0010, // 0029 GETGBL R3 G16 - 0x6010000C, // 002A GETGBL R4 G12 - 0x5C140200, // 002B MOVE R5 R1 - 0x7C100200, // 002C CALL R4 1 - 0x0410090F, // 002D SUB R4 R4 K15 - 0x40121C04, // 002E CONNECT R4 K14 R4 - 0x7C0C0200, // 002F CALL R3 1 - 0xA8020007, // 0030 EXBLK 0 #0039 - 0x5C100600, // 0031 MOVE R4 R3 - 0x7C100000, // 0032 CALL R4 0 - 0x2414090E, // 0033 GT R5 R4 K14 - 0x78160000, // 0034 JMPF R5 #0036 - 0x00080510, // 0035 ADD R2 R2 K16 - 0x94140204, // 0036 GETIDX R5 R1 R4 - 0x00080405, // 0037 ADD R2 R2 R5 - 0x7001FFF7, // 0038 JMP #0031 - 0x580C0011, // 0039 LDCONST R3 K17 - 0xAC0C0200, // 003A CATCH R3 1 0 - 0xB0080000, // 003B RAISE 2 R0 R0 - 0x00080512, // 003C ADD R2 R2 K18 - 0x80040400, // 003D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(type), - }), - be_str_weak(_validate_color_provider_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* 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 - 0x780E0003, // 0006 JMPF R3 #000B - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0x54120009, // 0008 LDINT R4 10 - 0x1C0C0604, // 0009 EQ R3 R3 R4 - 0x740E0000, // 000A JMPT R3 #000C - 0x500C0001, // 000B LDBOOL R3 0 1 - 0x500C0200, // 000C LDBOOL R3 1 0 - 0x80040600, // 000D RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _register_template_animation_constructor -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__register_template_animation_constructor, /* 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( - 4, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 2), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(_anonymous_), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x60040010, // 0000 GETGBL R1 G16 - 0x68080000, // 0001 GETUPV R2 U0 - 0x7C040200, // 0002 CALL R1 1 - 0xA8020007, // 0003 EXBLK 0 #000C - 0x5C080200, // 0004 MOVE R2 R1 - 0x7C080000, // 0005 CALL R2 0 - 0x1C0C0400, // 0006 EQ R3 R2 R0 - 0x780E0002, // 0007 JMPF R3 #000B - 0x500C0200, // 0008 LDBOOL R3 1 0 - 0xA8040001, // 0009 EXBLK 1 1 - 0x80040600, // 000A RET 1 R3 - 0x7001FFF7, // 000B JMP #0004 - 0x58040000, // 000C LDCONST R1 K0 - 0xAC040200, // 000D CATCH R1 1 0 - 0xB0080000, // 000E RAISE 2 R0 R0 - 0x50040000, // 000F LDBOOL R1 0 0 - 0x80040200, // 0010 RET 1 R1 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(_params), - /* K2 */ be_nested_str_weak(has_param), - /* K3 */ be_nested_str_weak(stop_iteration), - /* K4 */ be_nested_str_weak(symbol_table), - /* K5 */ be_nested_str_weak(entries), - /* K6 */ be_nested_str_weak(find), - /* K7 */ be_nested_str_weak(type), - /* K8 */ be_nested_str_weak(instance), - /* K9 */ be_nested_str_weak(takes_args), - /* K10 */ be_nested_str_weak(arg_type), - /* K11 */ be_nested_str_weak(named), - }), - be_str_weak(_register_template_animation_constructor), - &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x60140013, // 0001 GETGBL R5 G19 - 0x7C140000, // 0002 CALL R5 0 - 0x60180013, // 0003 GETGBL R6 G19 - 0x7C180000, // 0004 CALL R6 0 - 0x98160206, // 0005 SETIDX R5 K1 R6 - 0x84180000, // 0006 CLOSURE R6 P0 - 0x98160406, // 0007 SETIDX R5 K2 R6 - 0x60180010, // 0008 GETGBL R6 G16 - 0x5C1C0400, // 0009 MOVE R7 R2 - 0x7C180200, // 000A CALL R6 1 - 0xA8020005, // 000B EXBLK 0 #0012 - 0x5C1C0C00, // 000C MOVE R7 R6 - 0x7C1C0000, // 000D CALL R7 0 - 0x94200B01, // 000E GETIDX R8 R5 K1 - 0x50240200, // 000F LDBOOL R9 1 0 - 0x98200E09, // 0010 SETIDX R8 R7 R9 - 0x7001FFF9, // 0011 JMP #000C - 0x58180003, // 0012 LDCONST R6 K3 - 0xAC180200, // 0013 CATCH R6 1 0 - 0xB0080000, // 0014 RAISE 2 R0 R0 - 0x88180104, // 0015 GETMBR R6 R0 K4 - 0x88180D05, // 0016 GETMBR R6 R6 K5 - 0x8C180D06, // 0017 GETMET R6 R6 K6 - 0x5C200200, // 0018 MOVE R8 R1 - 0x7C180400, // 0019 CALL R6 2 - 0x4C1C0000, // 001A LDNIL R7 - 0x201C0C07, // 001B NE R7 R6 R7 - 0x781E0005, // 001C JMPF R7 #0023 - 0x541E0007, // 001D LDINT R7 8 - 0x901A0E07, // 001E SETMBR R6 K7 R7 - 0x901A1005, // 001F SETMBR R6 K8 R5 - 0x501C0200, // 0020 LDBOOL R7 1 0 - 0x901A1207, // 0021 SETMBR R6 K9 R7 - 0x901A150B, // 0022 SETMBR R6 K10 K11 - 0xA0000000, // 0023 CLOSE R0 - 0x80000000, // 0024 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[16]) { /* 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(next), - /* K8 */ be_nested_str_weak(process_unary_expression), - /* K9 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K10 */ be_nested_str_weak(expr), - /* K11 */ be_nested_str_weak(has_dynamic), - /* K12 */ be_nested_str_weak(has_dangerous), - /* K13 */ be_nested_str_weak(return_type), - /* K14 */ be_nested_str_weak(instance_for_validation), - /* K15 */ be_nested_str_weak(process_primary_expression), - }), - be_str_weak(process_unary_expression), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* 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 - 0x541A0009, // 000E LDINT R6 10 - 0x1C140A06, // 000F EQ R5 R5 R6 - 0x78160012, // 0010 JMPF R5 #0024 - 0x8C140107, // 0011 GETMET R5 R0 K7 - 0x7C140200, // 0012 CALL R5 1 - 0x8C140108, // 0013 GETMET R5 R0 K8 - 0x5C1C0200, // 0014 MOVE R7 R1 - 0x50200000, // 0015 LDBOOL R8 0 0 - 0x5C240600, // 0016 MOVE R9 R3 - 0x7C140800, // 0017 CALL R5 4 - 0x8C180103, // 0018 GETMET R6 R0 K3 - 0x60200018, // 0019 GETGBL R8 G24 - 0x58240009, // 001A LDCONST R9 K9 - 0x88280B0A, // 001B GETMBR R10 R5 K10 - 0x7C200400, // 001C CALL R8 2 - 0x88240B0B, // 001D GETMBR R9 R5 K11 - 0x88280B0C, // 001E GETMBR R10 R5 K12 - 0x502C0200, // 001F LDBOOL R11 1 0 - 0x88300B0D, // 0020 GETMBR R12 R5 K13 - 0x88340B0E, // 0021 GETMBR R13 R5 K14 - 0x7C180E00, // 0022 CALL R6 7 - 0x80040C00, // 0023 RET 1 R6 - 0x88140906, // 0024 GETMBR R5 R4 K6 - 0x541A0008, // 0025 LDINT R6 9 - 0x1C140A06, // 0026 EQ R5 R5 R6 - 0x78160007, // 0027 JMPF R5 #0030 - 0x8C140107, // 0028 GETMET R5 R0 K7 - 0x7C140200, // 0029 CALL R5 1 - 0x8C140108, // 002A GETMET R5 R0 K8 - 0x5C1C0200, // 002B MOVE R7 R1 - 0x50200000, // 002C LDBOOL R8 0 0 - 0x5C240600, // 002D MOVE R9 R3 - 0x7C140800, // 002E CALL R5 4 - 0x80040A00, // 002F RET 1 R5 - 0x8C14010F, // 0030 GETMET R5 R0 K15 - 0x5C1C0200, // 0031 MOVE R7 R1 - 0x5C200400, // 0032 MOVE R8 R2 - 0x5C240600, // 0033 MOVE R9 R3 - 0x7C140800, // 0034 CALL R5 4 - 0x80040A00, // 0035 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[14]) { /* 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_const_int(3), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), - /* K7 */ be_nested_str_weak(skip_statement), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(expect_right_paren), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(process_log_call), - /* K12 */ be_nested_str_weak(fluent), - /* K13 */ be_nested_str_weak(add), - }), - be_str_weak(process_log_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* 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 - 0x740A0002, // 0008 JMPT R2 #000C - 0x88080303, // 0009 GETMBR R2 R1 K3 - 0x20080504, // 000A NE R2 R2 K4 - 0x780A0005, // 000B JMPF R2 #0012 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x58100006, // 000D LDCONST R4 K6 - 0x7C080400, // 000E CALL R2 2 - 0x8C080107, // 000F GETMET R2 R0 K7 - 0x7C080200, // 0010 CALL R2 1 - 0x80000400, // 0011 RET 0 - 0x88080308, // 0012 GETMBR R2 R1 K8 - 0x8C0C0100, // 0013 GETMET R3 R0 K0 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C0C0109, // 0015 GETMET R3 R0 K9 - 0x7C0C0200, // 0016 CALL R3 1 - 0x8C0C010A, // 0017 GETMET R3 R0 K10 - 0x7C0C0200, // 0018 CALL R3 1 - 0x8C10010B, // 0019 GETMET R4 R0 K11 - 0x5C180400, // 001A MOVE R6 R2 - 0x581C000C, // 001B LDCONST R7 K12 - 0x5C200600, // 001C MOVE R8 R3 - 0x7C100800, // 001D CALL R4 4 - 0x8C14010D, // 001E GETMET R5 R0 K13 - 0x5C1C0800, // 001F MOVE R7 R4 - 0x7C140400, // 0020 CALL R5 2 - 0x80000000, // 0021 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[15]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(value), - /* K3 */ be_nested_str_weak(next), - /* K4 */ be_nested_str_weak(convert_time_to_ms), - /* K5 */ be_const_int(2), - /* K6 */ be_const_int(1), - /* K7 */ be_nested_str_weak(_validate_object_reference), - /* K8 */ be_nested_str_weak(duration), - /* K9 */ be_nested_str_weak(process_primary_expression), - /* K10 */ be_nested_str_weak(CONTEXT_TIME), - /* K11 */ be_nested_str_weak(expr), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20time_X20value), - /* K14 */ be_nested_str_weak(1000), - }), - be_str_weak(process_time_value), - &be_const_str_solidified, - ( &(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 - 0x780A000D, // 0004 JMPF R2 #0013 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0004, // 0006 LDINT R3 5 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0009, // 0008 JMPF R2 #0013 - 0x88080302, // 0009 GETMBR R2 R1 K2 - 0x8C0C0103, // 000A GETMET R3 R0 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x600C0008, // 000C GETGBL R3 G8 - 0x8C100104, // 000D GETMET R4 R0 K4 - 0x5C180400, // 000E MOVE R6 R2 - 0x7C100400, // 000F CALL R4 2 - 0x7C0C0200, // 0010 CALL R3 1 - 0x80040600, // 0011 RET 1 R3 - 0x7002002A, // 0012 JMP #003E - 0x4C080000, // 0013 LDNIL R2 - 0x20080202, // 0014 NE R2 R1 R2 - 0x780A0010, // 0015 JMPF R2 #0027 - 0x88080301, // 0016 GETMBR R2 R1 K1 - 0x1C080505, // 0017 EQ R2 R2 K5 - 0x780A000D, // 0018 JMPF R2 #0027 - 0x88080302, // 0019 GETMBR R2 R1 K2 - 0x8C0C0103, // 001A GETMET R3 R0 K3 - 0x7C0C0200, // 001B CALL R3 1 - 0x600C0008, // 001C GETGBL R3 G8 - 0x60100009, // 001D GETGBL R4 G9 - 0x6014000A, // 001E GETGBL R5 G10 - 0x5C180400, // 001F MOVE R6 R2 - 0x7C140200, // 0020 CALL R5 1 - 0x7C100200, // 0021 CALL R4 1 - 0x541603E7, // 0022 LDINT R5 1000 - 0x08100805, // 0023 MUL R4 R4 R5 - 0x7C0C0200, // 0024 CALL R3 1 - 0x80040600, // 0025 RET 1 R3 - 0x70020016, // 0026 JMP #003E - 0x4C080000, // 0027 LDNIL R2 - 0x20080202, // 0028 NE R2 R1 R2 - 0x780A000F, // 0029 JMPF R2 #003A - 0x88080301, // 002A GETMBR R2 R1 K1 - 0x1C080506, // 002B EQ R2 R2 K6 - 0x780A000C, // 002C JMPF R2 #003A - 0x88080302, // 002D GETMBR R2 R1 K2 - 0x8C0C0107, // 002E GETMET R3 R0 K7 - 0x5C140400, // 002F MOVE R5 R2 - 0x58180008, // 0030 LDCONST R6 K8 - 0x7C0C0600, // 0031 CALL R3 3 - 0x8C0C0109, // 0032 GETMET R3 R0 K9 - 0x8814010A, // 0033 GETMBR R5 R0 K10 - 0x50180200, // 0034 LDBOOL R6 1 0 - 0x501C0000, // 0035 LDBOOL R7 0 0 - 0x7C0C0800, // 0036 CALL R3 4 - 0x8810070B, // 0037 GETMBR R4 R3 K11 - 0x80040800, // 0038 RET 1 R4 - 0x70020003, // 0039 JMP #003E - 0x8C08010C, // 003A GETMET R2 R0 K12 - 0x5810000D, // 003B LDCONST R4 K13 - 0x7C080400, // 003C CALL R2 2 - 0x80061C00, // 003D RET 1 K14 - 0x80000000, // 003E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_restart_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(value), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(expect_identifier), - /* K4 */ be_nested_str_weak(_validate_value_provider_reference), - /* K5 */ be_nested_str_weak(skip_statement), - /* K6 */ be_nested_str_weak(collect_inline_comment), - /* K7 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2Estart_X28engine_X2Etime_ms_X29_X20end), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), - /* K10 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_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: 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), - }), - be_str_weak(expect_colon), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001F, // 0006 LDINT R3 32 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F 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: process_primary_expression ********************************************************************/ @@ -12162,7 +9584,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[69]) { /* constants */ + ( &(const bvalue[70]) { /* constants */ /* K0 */ be_nested_str_weak(current), /* K1 */ be_nested_str_weak(error), /* K2 */ be_nested_str_weak(Expected_X20value), @@ -12228,14 +9650,15 @@ be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name /* K62 */ 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), /* K63 */ be_nested_str_weak(property_access), /* K64 */ be_nested_str_weak(variable), - /* K65 */ be_nested_str_weak(_determine_symbol_return_type), - /* K66 */ be_nested_str_weak(animation_X2Eresolve_X28_X25s_X29), - /* K67 */ be_nested_str_weak(animation_X2E_X25s), - /* K68 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), + /* K65 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28engine_X29), + /* K66 */ be_nested_str_weak(_determine_symbol_return_type), + /* K67 */ be_nested_str_weak(animation_X2Eresolve_X28_X25s_X29), + /* K68 */ be_nested_str_weak(animation_X2E_X25s), + /* K69 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), }), be_str_weak(process_primary_expression), &be_const_str_solidified, - ( &(const binstruction[493]) { /* code */ + ( &(const binstruction[505]) { /* code */ 0x8C100100, // 0000 GETMET R4 R0 K0 0x7C100200, // 0001 CALL R4 1 0x4C140000, // 0002 LDNIL R5 @@ -12531,7 +9954,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name 0x80041200, // 0124 RET 1 R9 0x88140906, // 0125 GETMBR R5 R4 K6 0x1C140B1C, // 0126 EQ R5 R5 K28 - 0x781600A9, // 0127 JMPF R5 #01D2 + 0x781600B5, // 0127 JMPF R5 #01DE 0x88140912, // 0128 GETMBR R5 R4 K18 0x88180136, // 0129 GETMBR R6 R0 K54 0x4C1C0000, // 012A LDNIL R7 @@ -12672,184 +10095,75 @@ be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name 0x542A000A, // 01B1 LDINT R10 11 0x7C1C0600, // 01B2 CALL R7 3 0x80040E00, // 01B3 RET 1 R7 - 0x881C011E, // 01B4 GETMBR R7 R0 K30 - 0x8C1C0F27, // 01B5 GETMET R7 R7 K39 - 0x5C240A00, // 01B6 MOVE R9 R5 - 0x7C1C0400, // 01B7 CALL R7 2 - 0x8C200141, // 01B8 GETMET R8 R0 K65 - 0x5C280C00, // 01B9 MOVE R10 R6 - 0x7C200400, // 01BA CALL R8 2 - 0x88240D06, // 01BB GETMBR R9 R6 K6 - 0x542A0006, // 01BC LDINT R10 7 - 0x1C24120A, // 01BD EQ R9 R9 R10 - 0x74260003, // 01BE JMPT R9 #01C3 - 0x88240D06, // 01BF GETMBR R9 R6 K6 - 0x542A000B, // 01C0 LDINT R10 12 - 0x1C24120A, // 01C1 EQ R9 R9 R10 - 0x78260008, // 01C2 JMPF R9 #01CC - 0x88240103, // 01C3 GETMBR R9 R0 K3 - 0x8C241324, // 01C4 GETMET R9 R9 K36 - 0x602C0018, // 01C5 GETGBL R11 G24 - 0x58300042, // 01C6 LDCONST R12 K66 - 0x5C340E00, // 01C7 MOVE R13 R7 - 0x7C2C0400, // 01C8 CALL R11 2 - 0x5C301000, // 01C9 MOVE R12 R8 - 0x7C240600, // 01CA CALL R9 3 - 0x80041200, // 01CB RET 1 R9 - 0x88240103, // 01CC GETMBR R9 R0 K3 - 0x8C241339, // 01CD GETMET R9 R9 K57 - 0x5C2C0E00, // 01CE MOVE R11 R7 - 0x5C301000, // 01CF MOVE R12 R8 - 0x7C240600, // 01D0 CALL R9 3 - 0x80041200, // 01D1 RET 1 R9 - 0x88140906, // 01D2 GETMBR R5 R4 K6 - 0x1C140B16, // 01D3 EQ R5 R5 K22 - 0x7816000A, // 01D4 JMPF R5 #01E0 - 0x88140912, // 01D5 GETMBR R5 R4 K18 - 0x8C180107, // 01D6 GETMET R6 R0 K7 - 0x7C180200, // 01D7 CALL R6 1 - 0x88180103, // 01D8 GETMBR R6 R0 K3 - 0x8C180D04, // 01D9 GETMET R6 R6 K4 - 0x60200018, // 01DA GETGBL R8 G24 - 0x58240043, // 01DB LDCONST R9 K67 - 0x5C280A00, // 01DC MOVE R10 R5 - 0x7C200400, // 01DD CALL R8 2 - 0x7C180400, // 01DE CALL R6 2 - 0x80040C00, // 01DF RET 1 R6 - 0x8C140101, // 01E0 GETMET R5 R0 K1 - 0x601C0018, // 01E1 GETGBL R7 G24 - 0x58200044, // 01E2 LDCONST R8 K68 - 0x88240912, // 01E3 GETMBR R9 R4 K18 - 0x7C1C0400, // 01E4 CALL R7 2 - 0x7C140400, // 01E5 CALL R5 2 - 0x8C140121, // 01E6 GETMET R5 R0 K33 - 0x7C140200, // 01E7 CALL R5 1 - 0x88140103, // 01E8 GETMBR R5 R0 K3 - 0x8C140B04, // 01E9 GETMET R5 R5 K4 - 0x581C0005, // 01EA LDCONST R7 K5 - 0x7C140400, // 01EB CALL R5 2 - 0x80040A00, // 01EC RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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: 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 + 0x8C1C0D22, // 01B4 GETMET R7 R6 K34 + 0x7C1C0200, // 01B5 CALL R7 1 + 0x781E0008, // 01B6 JMPF R7 #01C0 + 0x601C0018, // 01B7 GETGBL R7 G24 + 0x58200041, // 01B8 LDCONST R8 K65 + 0x5C240A00, // 01B9 MOVE R9 R5 + 0x7C1C0400, // 01BA CALL R7 2 + 0x88200103, // 01BB GETMBR R8 R0 K3 + 0x8C201124, // 01BC GETMET R8 R8 K36 + 0x5C280E00, // 01BD MOVE R10 R7 + 0x7C200400, // 01BE CALL R8 2 + 0x80041000, // 01BF RET 1 R8 + 0x881C011E, // 01C0 GETMBR R7 R0 K30 + 0x8C1C0F27, // 01C1 GETMET R7 R7 K39 + 0x5C240A00, // 01C2 MOVE R9 R5 + 0x7C1C0400, // 01C3 CALL R7 2 + 0x8C200142, // 01C4 GETMET R8 R0 K66 + 0x5C280C00, // 01C5 MOVE R10 R6 + 0x7C200400, // 01C6 CALL R8 2 + 0x88240D06, // 01C7 GETMBR R9 R6 K6 + 0x542A0006, // 01C8 LDINT R10 7 + 0x1C24120A, // 01C9 EQ R9 R9 R10 + 0x74260003, // 01CA JMPT R9 #01CF + 0x88240D06, // 01CB GETMBR R9 R6 K6 + 0x542A000B, // 01CC LDINT R10 12 + 0x1C24120A, // 01CD EQ R9 R9 R10 + 0x78260008, // 01CE JMPF R9 #01D8 + 0x88240103, // 01CF GETMBR R9 R0 K3 + 0x8C241324, // 01D0 GETMET R9 R9 K36 + 0x602C0018, // 01D1 GETGBL R11 G24 + 0x58300043, // 01D2 LDCONST R12 K67 + 0x5C340E00, // 01D3 MOVE R13 R7 + 0x7C2C0400, // 01D4 CALL R11 2 + 0x5C301000, // 01D5 MOVE R12 R8 + 0x7C240600, // 01D6 CALL R9 3 + 0x80041200, // 01D7 RET 1 R9 + 0x88240103, // 01D8 GETMBR R9 R0 K3 + 0x8C241339, // 01D9 GETMET R9 R9 K57 + 0x5C2C0E00, // 01DA MOVE R11 R7 + 0x5C301000, // 01DB MOVE R12 R8 + 0x7C240600, // 01DC CALL R9 3 + 0x80041200, // 01DD RET 1 R9 + 0x88140906, // 01DE GETMBR R5 R4 K6 + 0x1C140B16, // 01DF EQ R5 R5 K22 + 0x7816000A, // 01E0 JMPF R5 #01EC + 0x88140912, // 01E1 GETMBR R5 R4 K18 + 0x8C180107, // 01E2 GETMET R6 R0 K7 + 0x7C180200, // 01E3 CALL R6 1 + 0x88180103, // 01E4 GETMBR R6 R0 K3 + 0x8C180D04, // 01E5 GETMET R6 R6 K4 + 0x60200018, // 01E6 GETGBL R8 G24 + 0x58240044, // 01E7 LDCONST R9 K68 + 0x5C280A00, // 01E8 MOVE R10 R5 + 0x7C200400, // 01E9 CALL R8 2 + 0x7C180400, // 01EA CALL R6 2 + 0x80040C00, // 01EB RET 1 R6 + 0x8C140101, // 01EC GETMET R5 R0 K1 + 0x601C0018, // 01ED GETGBL R7 G24 + 0x58200045, // 01EE LDCONST R8 K69 + 0x88240912, // 01EF GETMBR R9 R4 K18 + 0x7C1C0400, // 01F0 CALL R7 2 + 0x7C140400, // 01F1 CALL R5 2 + 0x8C140121, // 01F2 GETMET R5 R0 K33 + 0x7C140200, // 01F3 CALL R5 1 + 0x88140103, // 01F4 GETMBR R5 R0 K3 + 0x8C140B04, // 01F5 GETMET R5 R5 K4 + 0x581C0005, // 01F6 LDCONST R7 K5 + 0x7C140400, // 01F7 CALL R5 2 + 0x80040A00, // 01F8 RET 1 R5 }) ) ); @@ -12951,1509 +10265,6 @@ be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ /*******************************************************************/ -/******************************************************************** -** 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[ 4]) { /* 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(next), - }), - be_str_weak(skip_statement), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x7406000C, // 0002 JMPT R1 #0010 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x4C080000, // 0005 LDNIL R2 - 0x1C080202, // 0006 EQ R2 R1 R2 - 0x740A0003, // 0007 JMPT R2 #000C - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0x540E0022, // 0009 LDINT R3 35 - 0x1C080403, // 000A EQ R2 R2 R3 - 0x780A0000, // 000B JMPF R2 #000D - 0x70020002, // 000C JMP #0010 - 0x8C080103, // 000D GETMET R2 R0 K3 - 0x7C080200, // 000E CALL R2 1 - 0x7001FFEF, // 000F JMP #0000 - 0x80000000, // 0010 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[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(_X20_X20), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_nested_str_weak(), - }), - be_str_weak(collect_inline_comment), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* 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 - 0x540E0024, // 0006 LDINT R3 37 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0004, // 0008 JMPF R2 #000E - 0x88080303, // 0009 GETMBR R2 R1 K3 - 0x000A0402, // 000A ADD R2 K2 R2 - 0x8C0C0104, // 000B GETMET R3 R0 K4 - 0x7C0C0200, // 000C CALL R3 1 - 0x80040400, // 000D RET 1 R2 - 0x80060A00, // 000E RET 1 K5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[10]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(1), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(can_use_as_identifier), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20identifier), - /* K9 */ be_nested_str_weak(unknown), - }), - be_str_weak(expect_identifier), - &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0012, // 0004 JMPF R2 #0018 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x1C080502, // 0006 EQ R2 R2 K2 - 0x740A000A, // 0007 JMPT R2 #0013 - 0x88080301, // 0008 GETMBR R2 R1 K1 - 0x540E0003, // 0009 LDINT R3 4 - 0x1C080403, // 000A EQ R2 R2 R3 - 0x740A0006, // 000B JMPT R2 #0013 - 0x88080301, // 000C GETMBR R2 R1 K1 - 0x1C080503, // 000D EQ R2 R2 K3 - 0x780A0008, // 000E JMPF R2 #0018 - 0x8C080104, // 000F GETMET R2 R0 K4 - 0x88100305, // 0010 GETMBR R4 R1 K5 - 0x7C080400, // 0011 CALL R2 2 - 0x780A0004, // 0012 JMPF R2 #0018 - 0x88080305, // 0013 GETMBR R2 R1 K5 - 0x8C0C0106, // 0014 GETMET R3 R0 K6 - 0x7C0C0200, // 0015 CALL R3 1 - 0x80040400, // 0016 RET 1 R2 - 0x70020003, // 0017 JMP #001C - 0x8C080107, // 0018 GETMET R2 R0 K7 - 0x58100008, // 0019 LDCONST R4 K8 - 0x7C080400, // 001A CALL R2 2 - 0x80061200, // 001B RET 1 K9 - 0x80000000, // 001C 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[ 4]) { /* 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(next), - }), - be_str_weak(skip_whitespace), - &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 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000A, // 0007 JMPF R2 #0013 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0x540E0022, // 0009 LDINT R3 35 - 0x1C080403, // 000A EQ R2 R2 R3 - 0x740A0003, // 000B JMPT R2 #0010 - 0x88080302, // 000C GETMBR R2 R1 K2 - 0x540E0024, // 000D LDINT R3 37 - 0x1C080403, // 000E EQ R2 R2 R3 - 0x780A0002, // 000F JMPF R2 #0013 - 0x8C080103, // 0010 GETMET R2 R0 K3 - 0x7C080200, // 0011 CALL R2 1 - 0x70020000, // 0012 JMP #0014 - 0x70020000, // 0013 JMP #0015 - 0x7001FFEA, // 0014 JMP #0000 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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_palette_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* 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[14]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(error), - /* K3 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette), - /* K4 */ be_nested_str_weak(0xFFFFFFFF), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(convert_color), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(is_color_name), - /* K11 */ be_nested_str_weak(get_named_color_value), - /* K12 */ 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), - /* K13 */ 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[45]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080101, // 0001 GETMET R2 R0 K1 - 0x7C080200, // 0002 CALL R2 1 - 0x4C0C0000, // 0003 LDNIL R3 - 0x1C0C0403, // 0004 EQ R3 R2 R3 - 0x780E0003, // 0005 JMPF R3 #000A - 0x8C0C0102, // 0006 GETMET R3 R0 K2 - 0x58140003, // 0007 LDCONST R5 K3 - 0x7C0C0400, // 0008 CALL R3 2 - 0x80060800, // 0009 RET 1 K4 - 0x880C0505, // 000A GETMBR R3 R2 K5 - 0x54120003, // 000B LDINT R4 4 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x780E0005, // 000D JMPF R3 #0014 - 0x8C0C0106, // 000E GETMET R3 R0 K6 - 0x7C0C0200, // 000F CALL R3 1 - 0x8C0C0107, // 0010 GETMET R3 R0 K7 - 0x88140508, // 0011 GETMBR R5 R2 K8 - 0x7C0C0400, // 0012 CALL R3 2 - 0x80040600, // 0013 RET 1 R3 - 0x880C0505, // 0014 GETMBR R3 R2 K5 - 0x1C0C0709, // 0015 EQ R3 R3 K9 - 0x780E0011, // 0016 JMPF R3 #0029 - 0x880C0508, // 0017 GETMBR R3 R2 K8 - 0x8C100106, // 0018 GETMET R4 R0 K6 - 0x7C100200, // 0019 CALL R4 1 - 0x8C10030A, // 001A GETMET R4 R1 K10 - 0x5C180600, // 001B MOVE R6 R3 - 0x7C100400, // 001C CALL R4 2 - 0x78120003, // 001D JMPF R4 #0022 - 0x8C10010B, // 001E GETMET R4 R0 K11 - 0x5C180600, // 001F MOVE R6 R3 - 0x7C100400, // 0020 CALL R4 2 - 0x80040800, // 0021 RET 1 R4 - 0x8C100102, // 0022 GETMET R4 R0 K2 - 0x60180018, // 0023 GETGBL R6 G24 - 0x581C000C, // 0024 LDCONST R7 K12 - 0x5C200600, // 0025 MOVE R8 R3 - 0x7C180400, // 0026 CALL R6 2 - 0x7C100400, // 0027 CALL R4 2 - 0x80060800, // 0028 RET 1 K4 - 0x8C0C0102, // 0029 GETMET R3 R0 K2 - 0x5814000D, // 002A LDCONST R5 K13 - 0x7C0C0400, // 002B CALL R3 2 - 0x80060800, // 002C RET 1 K4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_init, /* 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[12]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(pull_lexer), - /* K2 */ be_nested_str_weak(output), - /* K3 */ be_nested_str_weak(warnings), - /* K4 */ be_nested_str_weak(run_statements), - /* K5 */ be_nested_str_weak(strip_initialized), - /* K6 */ be_nested_str_weak(symbol_table), - /* K7 */ be_nested_str_weak(_symbol_table), - /* K8 */ be_nested_str_weak(indent_level), - /* K9 */ be_const_int(0), - /* K10 */ be_nested_str_weak(has_template_calls), - /* K11 */ be_nested_str_weak(template_animation_params), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x90020201, // 0001 SETMBR R0 K1 R1 - 0x600C0012, // 0002 GETGBL R3 G18 - 0x7C0C0000, // 0003 CALL R3 0 - 0x90020403, // 0004 SETMBR R0 K2 R3 - 0x600C0012, // 0005 GETGBL R3 G18 - 0x7C0C0000, // 0006 CALL R3 0 - 0x90020603, // 0007 SETMBR R0 K3 R3 - 0x600C0012, // 0008 GETGBL R3 G18 - 0x7C0C0000, // 0009 CALL R3 0 - 0x90020803, // 000A SETMBR R0 K4 R3 - 0x500C0000, // 000B LDBOOL R3 0 0 - 0x90020A03, // 000C SETMBR R0 K5 R3 - 0x8C0C0507, // 000D GETMET R3 R2 K7 - 0x7C0C0200, // 000E CALL R3 1 - 0x90020C03, // 000F SETMBR R0 K6 R3 - 0x90021109, // 0010 SETMBR R0 K8 K9 - 0x500C0000, // 0011 LDBOOL R3 0 0 - 0x90021403, // 0012 SETMBR R0 K10 R3 - 0x4C0C0000, // 0013 LDNIL R3 - 0x90021603, // 0014 SETMBR R0 K11 R3 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: transpile_template_animation_body -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transpile_template_animation_body, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[15]) { /* constants */ - /* K0 */ be_const_int(0), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_const_int(1), - /* K5 */ be_nested_str_weak(process_statement), - /* K6 */ be_nested_str_weak(run_statements), - /* K7 */ be_nested_str_weak(name), - /* K8 */ be_nested_str_weak(comment), - /* K9 */ be_nested_str_weak(add), - /* K10 */ be_nested_str_weak(self_X2Eadd_X28_X25s__X29_X25s), - /* K11 */ be_nested_str_weak(stop_iteration), - /* K12 */ be_nested_str_weak(join_output), - /* K13 */ be_nested_str_weak(error), - /* K14 */ be_nested_str_weak(Template_X20animation_X20body_X20transpilation_X20failed_X3A_X20_X25s), - }), - be_str_weak(transpile_template_animation_body), - &be_const_str_solidified, - ( &(const binstruction[78]) { /* code */ - 0xA8020041, // 0000 EXBLK 0 #0043 - 0x58040000, // 0001 LDCONST R1 K0 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x740A001F, // 0004 JMPT R2 #0025 - 0x8C080102, // 0005 GETMET R2 R0 K2 - 0x7C080200, // 0006 CALL R2 1 - 0x4C0C0000, // 0007 LDNIL R3 - 0x200C0403, // 0008 NE R3 R2 R3 - 0x780E0006, // 0009 JMPF R3 #0011 - 0x880C0503, // 000A GETMBR R3 R2 K3 - 0x5412001A, // 000B LDINT R4 27 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x780E0002, // 000D JMPF R3 #0011 - 0x1C0C0300, // 000E EQ R3 R1 K0 - 0x780E0000, // 000F JMPF R3 #0011 - 0x70020013, // 0010 JMP #0025 - 0x4C0C0000, // 0011 LDNIL R3 - 0x200C0403, // 0012 NE R3 R2 R3 - 0x780E0005, // 0013 JMPF R3 #001A - 0x880C0503, // 0014 GETMBR R3 R2 K3 - 0x54120019, // 0015 LDINT R4 26 - 0x1C0C0604, // 0016 EQ R3 R3 R4 - 0x780E0001, // 0017 JMPF R3 #001A - 0x00040304, // 0018 ADD R1 R1 K4 - 0x70020007, // 0019 JMP #0022 - 0x4C0C0000, // 001A LDNIL R3 - 0x200C0403, // 001B NE R3 R2 R3 - 0x780E0004, // 001C JMPF R3 #0022 - 0x880C0503, // 001D GETMBR R3 R2 K3 - 0x5412001A, // 001E LDINT R4 27 - 0x1C0C0604, // 001F EQ R3 R3 R4 - 0x780E0000, // 0020 JMPF R3 #0022 - 0x04040304, // 0021 SUB R1 R1 K4 - 0x8C0C0105, // 0022 GETMET R3 R0 K5 - 0x7C0C0200, // 0023 CALL R3 1 - 0x7001FFDC, // 0024 JMP #0002 - 0x6008000C, // 0025 GETGBL R2 G12 - 0x880C0106, // 0026 GETMBR R3 R0 K6 - 0x7C080200, // 0027 CALL R2 1 - 0x24080500, // 0028 GT R2 R2 K0 - 0x780A0012, // 0029 JMPF R2 #003D - 0x60080010, // 002A GETGBL R2 G16 - 0x880C0106, // 002B GETMBR R3 R0 K6 - 0x7C080200, // 002C CALL R2 1 - 0xA802000B, // 002D EXBLK 0 #003A - 0x5C0C0400, // 002E MOVE R3 R2 - 0x7C0C0000, // 002F CALL R3 0 - 0x94100707, // 0030 GETIDX R4 R3 K7 - 0x94140708, // 0031 GETIDX R5 R3 K8 - 0x8C180109, // 0032 GETMET R6 R0 K9 - 0x60200018, // 0033 GETGBL R8 G24 - 0x5824000A, // 0034 LDCONST R9 K10 - 0x5C280800, // 0035 MOVE R10 R4 - 0x5C2C0A00, // 0036 MOVE R11 R5 - 0x7C200600, // 0037 CALL R8 3 - 0x7C180400, // 0038 CALL R6 2 - 0x7001FFF3, // 0039 JMP #002E - 0x5808000B, // 003A LDCONST R2 K11 - 0xAC080200, // 003B CATCH R2 1 0 - 0xB0080000, // 003C RAISE 2 R0 R0 - 0x8C08010C, // 003D GETMET R2 R0 K12 - 0x7C080200, // 003E CALL R2 1 - 0xA8040001, // 003F EXBLK 1 1 - 0x80040400, // 0040 RET 1 R2 - 0xA8040001, // 0041 EXBLK 1 1 - 0x70020009, // 0042 JMP #004D - 0xAC040002, // 0043 CATCH R1 0 2 - 0x70020006, // 0044 JMP #004C - 0x8C0C010D, // 0045 GETMET R3 R0 K13 - 0x60140018, // 0046 GETGBL R5 G24 - 0x5818000E, // 0047 LDCONST R6 K14 - 0x5C1C0400, // 0048 MOVE R7 R2 - 0x7C140400, // 0049 CALL R5 2 - 0x7C0C0400, // 004A CALL R3 2 - 0x70020000, // 004B JMP #004D - 0xB0080000, // 004C RAISE 2 R0 R0 - 0x80000000, // 004D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_error_report -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 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_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ - be_nested_proto( - 18, /* 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_const_int(0), - /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(peek), - /* K11 */ be_nested_str_weak(value), - /* K12 */ be_nested_str_weak(), - /* K13 */ be_nested_str_weak(_X20_X20), - /* K14 */ be_nested_str_weak(symbol_table), - /* K15 */ be_nested_str_weak(get), - /* K16 */ be_nested_str_weak(process_function_arguments), - /* K17 */ be_nested_str_weak(_split_function_arguments), - /* K18 */ be_nested_str_weak(instance), - /* K19 */ be_nested_str_weak(contains), - /* K20 */ be_nested_str_weak(params), - /* K21 */ be_nested_str_weak(find), - /* K22 */ be_nested_str_weak(param_types), - /* K23 */ be_nested_str_weak(_validate_template_call_arguments), - /* K24 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K25 */ be_nested_str_weak(engine), - /* K26 */ be_nested_str_weak(add), - /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), - /* K28 */ be_nested_str_weak(create_color), - /* 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[204]) { /* 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 - 0x1C0C0708, // 0011 EQ R3 R3 K8 - 0x740E0002, // 0012 JMPT R3 #0016 - 0x880C0507, // 0013 GETMBR R3 R2 K7 - 0x1C0C0709, // 0014 EQ R3 R3 K9 - 0x780E00AE, // 0015 JMPF R3 #00C5 - 0x8C0C010A, // 0016 GETMET R3 R0 K10 - 0x7C0C0200, // 0017 CALL R3 1 - 0x4C100000, // 0018 LDNIL R4 - 0x200C0604, // 0019 NE R3 R3 R4 - 0x780E00A9, // 001A JMPF R3 #00C5 - 0x8C0C010A, // 001B GETMET R3 R0 K10 - 0x7C0C0200, // 001C CALL R3 1 - 0x880C0707, // 001D GETMBR R3 R3 K7 - 0x54120017, // 001E LDINT R4 24 - 0x1C0C0604, // 001F EQ R3 R3 R4 - 0x780E00A3, // 0020 JMPF R3 #00C5 - 0x880C050B, // 0021 GETMBR R3 R2 K11 - 0x8C100100, // 0022 GETMET R4 R0 K0 - 0x7C100200, // 0023 CALL R4 1 - 0x5810000C, // 0024 LDCONST R4 K12 - 0x8C140106, // 0025 GETMET R5 R0 K6 - 0x7C140200, // 0026 CALL R5 1 - 0x4C180000, // 0027 LDNIL R6 - 0x20140A06, // 0028 NE R5 R5 R6 - 0x7816000C, // 0029 JMPF R5 #0037 - 0x8C140106, // 002A GETMET R5 R0 K6 - 0x7C140200, // 002B CALL R5 1 - 0x88140B07, // 002C GETMBR R5 R5 K7 - 0x541A0024, // 002D LDINT R6 37 - 0x1C140A06, // 002E EQ R5 R5 R6 - 0x78160006, // 002F JMPF R5 #0037 - 0x8C140106, // 0030 GETMET R5 R0 K6 - 0x7C140200, // 0031 CALL R5 1 - 0x88140B0B, // 0032 GETMBR R5 R5 K11 - 0x00161A05, // 0033 ADD R5 K13 R5 - 0x5C100A00, // 0034 MOVE R4 R5 - 0x8C140100, // 0035 GETMET R5 R0 K0 - 0x7C140200, // 0036 CALL R5 1 - 0x8814010E, // 0037 GETMBR R5 R0 K14 - 0x8C140B0F, // 0038 GETMET R5 R5 K15 - 0x5C1C0600, // 0039 MOVE R7 R3 - 0x7C140400, // 003A CALL R5 2 - 0x4C180000, // 003B LDNIL R6 - 0x20180A06, // 003C NE R6 R5 R6 - 0x781A003D, // 003D JMPF R6 #007C - 0x88180B07, // 003E GETMBR R6 R5 K7 - 0x541E000D, // 003F LDINT R7 14 - 0x1C180C07, // 0040 EQ R6 R6 R7 - 0x781A0039, // 0041 JMPF R6 #007C - 0x8C180110, // 0042 GETMET R6 R0 K16 - 0x50200000, // 0043 LDBOOL R8 0 0 - 0x7C180400, // 0044 CALL R6 2 - 0x201C0D0C, // 0045 NE R7 R6 K12 - 0x781E0003, // 0046 JMPF R7 #004B - 0x8C1C0111, // 0047 GETMET R7 R0 K17 - 0x5C240C00, // 0048 MOVE R9 R6 - 0x7C1C0400, // 0049 CALL R7 2 - 0x70020001, // 004A JMP #004D - 0x601C0012, // 004B GETGBL R7 G18 - 0x7C1C0000, // 004C CALL R7 0 - 0x88200B12, // 004D GETMBR R8 R5 K18 - 0x4C240000, // 004E LDNIL R9 - 0x20241009, // 004F NE R9 R8 R9 - 0x78260013, // 0050 JMPF R9 #0065 - 0x8C241113, // 0051 GETMET R9 R8 K19 - 0x582C0014, // 0052 LDCONST R11 K20 - 0x7C240400, // 0053 CALL R9 2 - 0x7826000F, // 0054 JMPF R9 #0065 - 0x94241114, // 0055 GETIDX R9 R8 K20 - 0x8C281115, // 0056 GETMET R10 R8 K21 - 0x58300016, // 0057 LDCONST R12 K22 - 0x60340013, // 0058 GETGBL R13 G19 - 0x7C340000, // 0059 CALL R13 0 - 0x7C280600, // 005A CALL R10 3 - 0x8C2C0117, // 005B GETMET R11 R0 K23 - 0x5C340600, // 005C MOVE R13 R3 - 0x5C380E00, // 005D MOVE R14 R7 - 0x5C3C1200, // 005E MOVE R15 R9 - 0x5C401400, // 005F MOVE R16 R10 - 0x7C2C0A00, // 0060 CALL R11 5 - 0x742E0002, // 0061 JMPT R11 #0065 - 0x8C2C0104, // 0062 GETMET R11 R0 K4 - 0x7C2C0200, // 0063 CALL R11 1 - 0x80001600, // 0064 RET 0 - 0x20240D0C, // 0065 NE R9 R6 K12 - 0x78260004, // 0066 JMPF R9 #006C - 0x60240018, // 0067 GETGBL R9 G24 - 0x58280018, // 0068 LDCONST R10 K24 - 0x5C2C0C00, // 0069 MOVE R11 R6 - 0x7C240400, // 006A CALL R9 2 - 0x70020000, // 006B JMP #006D - 0x58240019, // 006C LDCONST R9 K25 - 0x8C28011A, // 006D GETMET R10 R0 K26 - 0x60300018, // 006E GETGBL R12 G24 - 0x5834001B, // 006F LDCONST R13 K27 - 0x5C380200, // 0070 MOVE R14 R1 - 0x5C3C0600, // 0071 MOVE R15 R3 - 0x5C401200, // 0072 MOVE R16 R9 - 0x5C440800, // 0073 MOVE R17 R4 - 0x7C300A00, // 0074 CALL R12 5 - 0x7C280400, // 0075 CALL R10 2 - 0x8828010E, // 0076 GETMBR R10 R0 K14 - 0x8C28151C, // 0077 GETMET R10 R10 K28 - 0x5C300200, // 0078 MOVE R12 R1 - 0x4C340000, // 0079 LDNIL R13 - 0x7C280600, // 007A CALL R10 3 - 0x70020047, // 007B JMP #00C4 - 0x4C180000, // 007C LDNIL R6 - 0x20180A06, // 007D NE R6 R5 R6 - 0x781A001D, // 007E JMPF R6 #009D - 0x88180B07, // 007F GETMBR R6 R5 K7 - 0x541E0004, // 0080 LDINT R7 5 - 0x1C180C07, // 0081 EQ R6 R6 R7 - 0x781A0019, // 0082 JMPF R6 #009D - 0x8C180110, // 0083 GETMET R6 R0 K16 - 0x50200000, // 0084 LDBOOL R8 0 0 - 0x7C180400, // 0085 CALL R6 2 - 0x201C0D0C, // 0086 NE R7 R6 K12 - 0x781E0004, // 0087 JMPF R7 #008D - 0x601C0018, // 0088 GETGBL R7 G24 - 0x58200018, // 0089 LDCONST R8 K24 - 0x5C240C00, // 008A MOVE R9 R6 - 0x7C1C0400, // 008B CALL R7 2 - 0x70020000, // 008C JMP #008E - 0x581C0019, // 008D LDCONST R7 K25 - 0x8C20011A, // 008E GETMET R8 R0 K26 - 0x60280018, // 008F GETGBL R10 G24 - 0x582C001D, // 0090 LDCONST R11 K29 - 0x5C300200, // 0091 MOVE R12 R1 - 0x5C340600, // 0092 MOVE R13 R3 - 0x5C380E00, // 0093 MOVE R14 R7 - 0x5C3C0800, // 0094 MOVE R15 R4 - 0x7C280A00, // 0095 CALL R10 5 - 0x7C200400, // 0096 CALL R8 2 - 0x8820010E, // 0097 GETMBR R8 R0 K14 - 0x8C20111C, // 0098 GETMET R8 R8 K28 - 0x5C280200, // 0099 MOVE R10 R1 - 0x4C2C0000, // 009A LDNIL R11 - 0x7C200600, // 009B CALL R8 3 - 0x70020026, // 009C JMP #00C4 - 0x8C18011E, // 009D GETMET R6 R0 K30 - 0x5C200600, // 009E MOVE R8 R3 - 0x7C180400, // 009F CALL R6 2 - 0x741A0008, // 00A0 JMPT R6 #00AA - 0x8C18011F, // 00A1 GETMET R6 R0 K31 - 0x60200018, // 00A2 GETGBL R8 G24 - 0x58240020, // 00A3 LDCONST R9 K32 - 0x5C280600, // 00A4 MOVE R10 R3 - 0x7C200400, // 00A5 CALL R8 2 - 0x7C180400, // 00A6 CALL R6 2 - 0x8C180104, // 00A7 GETMET R6 R0 K4 - 0x7C180200, // 00A8 CALL R6 1 - 0x80000C00, // 00A9 RET 0 - 0x8C18011A, // 00AA GETMET R6 R0 K26 - 0x60200018, // 00AB GETGBL R8 G24 - 0x58240021, // 00AC LDCONST R9 K33 - 0x5C280200, // 00AD MOVE R10 R1 - 0x5C2C0600, // 00AE MOVE R11 R3 - 0x5C300800, // 00AF MOVE R12 R4 - 0x7C200800, // 00B0 CALL R8 4 - 0x7C180400, // 00B1 CALL R6 2 - 0x8C180122, // 00B2 GETMET R6 R0 K34 - 0x5C200600, // 00B3 MOVE R8 R3 - 0x7C180400, // 00B4 CALL R6 2 - 0x4C1C0000, // 00B5 LDNIL R7 - 0x201C0C07, // 00B6 NE R7 R6 R7 - 0x781E0004, // 00B7 JMPF R7 #00BD - 0x881C010E, // 00B8 GETMBR R7 R0 K14 - 0x8C1C0F1C, // 00B9 GETMET R7 R7 K28 - 0x5C240200, // 00BA MOVE R9 R1 - 0x5C280C00, // 00BB MOVE R10 R6 - 0x7C1C0600, // 00BC CALL R7 3 - 0x8C1C0123, // 00BD GETMET R7 R0 K35 - 0x60240018, // 00BE GETGBL R9 G24 - 0x58280024, // 00BF LDCONST R10 K36 - 0x5C2C0200, // 00C0 MOVE R11 R1 - 0x7C240400, // 00C1 CALL R9 2 - 0x5C280600, // 00C2 MOVE R10 R3 - 0x7C1C0600, // 00C3 CALL R7 3 - 0x70020004, // 00C4 JMP #00CA - 0x8C0C0125, // 00C5 GETMET R3 R0 K37 - 0x5C140200, // 00C6 MOVE R5 R1 - 0x88180126, // 00C7 GETMBR R6 R0 K38 - 0x841C0000, // 00C8 CLOSURE R7 P0 - 0x7C0C0800, // 00C9 CALL R3 4 - 0xA0000000, // 00CA CLOSE R0 - 0x80000000, // 00CB RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_template_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_template_animation, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[23]) { /* 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_X20animation), - /* 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_const_int(0), - /* K12 */ be_nested_str_weak(value), - /* K13 */ be_nested_str_weak(param), - /* K14 */ be_nested_str_weak(_validate_template_parameter_name), - /* K15 */ be_nested_str_weak(_parse_parameter_constraints), - /* K16 */ be_nested_str_weak(push), - /* K17 */ be_nested_str_weak(generate_template_animation_class), - /* K18 */ be_nested_str_weak(params), - /* K19 */ be_nested_str_weak(param_types), - /* K20 */ be_nested_str_weak(symbol_table), - /* K21 */ be_nested_str_weak(create_template), - /* K22 */ be_nested_str_weak(_register_template_animation_constructor), - }), - be_str_weak(process_template_animation), - &be_const_str_solidified, - ( &(const binstruction[110]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040100, // 0002 GETMET R1 R0 K0 - 0x7C040200, // 0003 CALL R1 1 - 0x8C040101, // 0004 GETMET R1 R0 K1 - 0x7C040200, // 0005 CALL R1 1 - 0x8C080102, // 0006 GETMET R2 R0 K2 - 0x5C100200, // 0007 MOVE R4 R1 - 0x58140003, // 0008 LDCONST R5 K3 - 0x7C080600, // 0009 CALL R2 3 - 0x740A0002, // 000A JMPT R2 #000E - 0x8C080104, // 000B GETMET R2 R0 K4 - 0x7C080200, // 000C CALL R2 1 - 0x80000400, // 000D RET 0 - 0x8C080105, // 000E GETMET R2 R0 K5 - 0x7C080200, // 000F CALL R2 1 - 0x60080012, // 0010 GETGBL R2 G18 - 0x7C080000, // 0011 CALL R2 0 - 0x600C0013, // 0012 GETGBL R3 G19 - 0x7C0C0000, // 0013 CALL R3 0 - 0x60100013, // 0014 GETGBL R4 G19 - 0x7C100000, // 0015 CALL R4 0 - 0x8C140106, // 0016 GETMET R5 R0 K6 - 0x7C140200, // 0017 CALL R5 1 - 0x74160040, // 0018 JMPT R5 #005A - 0x8C140107, // 0019 GETMET R5 R0 K7 - 0x7C140200, // 001A CALL R5 1 - 0x7416003D, // 001B JMPT R5 #005A - 0x8C140108, // 001C GETMET R5 R0 K8 - 0x7C140200, // 001D CALL R5 1 - 0x8C140107, // 001E GETMET R5 R0 K7 - 0x7C140200, // 001F CALL R5 1 - 0x78160000, // 0020 JMPF R5 #0022 - 0x70020037, // 0021 JMP #005A - 0x8C140109, // 0022 GETMET R5 R0 K9 - 0x7C140200, // 0023 CALL R5 1 - 0x4C180000, // 0024 LDNIL R6 - 0x20180A06, // 0025 NE R6 R5 R6 - 0x781A0030, // 0026 JMPF R6 #0058 - 0x88180B0A, // 0027 GETMBR R6 R5 K10 - 0x1C180D0B, // 0028 EQ R6 R6 K11 - 0x781A002D, // 0029 JMPF R6 #0058 - 0x88180B0C, // 002A GETMBR R6 R5 K12 - 0x1C180D0D, // 002B EQ R6 R6 K13 - 0x781A002A, // 002C JMPF R6 #0058 - 0x8C180100, // 002D GETMET R6 R0 K0 - 0x7C180200, // 002E CALL R6 1 - 0x8C180101, // 002F GETMET R6 R0 K1 - 0x7C180200, // 0030 CALL R6 1 - 0x8C1C010E, // 0031 GETMET R7 R0 K14 - 0x5C240C00, // 0032 MOVE R9 R6 - 0x5C280800, // 0033 MOVE R10 R4 - 0x502C0200, // 0034 LDBOOL R11 1 0 - 0x7C1C0800, // 0035 CALL R7 4 - 0x741E0002, // 0036 JMPT R7 #003A - 0x8C1C0104, // 0037 GETMET R7 R0 K4 - 0x7C1C0200, // 0038 CALL R7 1 - 0x80000E00, // 0039 RET 0 - 0x8C1C010F, // 003A GETMET R7 R0 K15 - 0x7C1C0200, // 003B CALL R7 1 - 0x8C200510, // 003C GETMET R8 R2 K16 - 0x5C280C00, // 003D MOVE R10 R6 - 0x7C200400, // 003E CALL R8 2 - 0x50200200, // 003F LDBOOL R8 1 0 - 0x98100C08, // 0040 SETIDX R4 R6 R8 - 0x4C200000, // 0041 LDNIL R8 - 0x20200E08, // 0042 NE R8 R7 R8 - 0x78220005, // 0043 JMPF R8 #004A - 0x6020000C, // 0044 GETGBL R8 G12 - 0x5C240E00, // 0045 MOVE R9 R7 - 0x7C200200, // 0046 CALL R8 1 - 0x2420110B, // 0047 GT R8 R8 K11 - 0x78220000, // 0048 JMPF R8 #004A - 0x980C0C07, // 0049 SETIDX R3 R6 R7 - 0x8C200109, // 004A GETMET R8 R0 K9 - 0x7C200200, // 004B CALL R8 1 - 0x4C240000, // 004C LDNIL R9 - 0x20201009, // 004D NE R8 R8 R9 - 0x78220007, // 004E JMPF R8 #0057 - 0x8C200109, // 004F GETMET R8 R0 K9 - 0x7C200200, // 0050 CALL R8 1 - 0x8820110A, // 0051 GETMBR R8 R8 K10 - 0x54260022, // 0052 LDINT R9 35 - 0x1C201009, // 0053 EQ R8 R8 R9 - 0x78220001, // 0054 JMPF R8 #0057 - 0x8C200100, // 0055 GETMET R8 R0 K0 - 0x7C200200, // 0056 CALL R8 1 - 0x70020000, // 0057 JMP #0059 - 0x70020000, // 0058 JMP #005A - 0x7001FFBB, // 0059 JMP #0016 - 0x8C140111, // 005A GETMET R5 R0 K17 - 0x5C1C0200, // 005B MOVE R7 R1 - 0x5C200400, // 005C MOVE R8 R2 - 0x5C240600, // 005D MOVE R9 R3 - 0x7C140800, // 005E CALL R5 4 - 0x60140013, // 005F GETGBL R5 G19 - 0x7C140000, // 0060 CALL R5 0 - 0x98162402, // 0061 SETIDX R5 K18 R2 - 0x98162603, // 0062 SETIDX R5 K19 R3 - 0x88180114, // 0063 GETMBR R6 R0 K20 - 0x8C180D15, // 0064 GETMET R6 R6 K21 - 0x5C200200, // 0065 MOVE R8 R1 - 0x5C240A00, // 0066 MOVE R9 R5 - 0x7C180600, // 0067 CALL R6 3 - 0x8C180116, // 0068 GETMET R6 R0 K22 - 0x5C200200, // 0069 MOVE R8 R1 - 0x5C240400, // 006A MOVE R9 R2 - 0x5C280600, // 006B MOVE R10 R3 - 0x7C180800, // 006C CALL R6 4 - 0x80000000, // 006D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), - }), - be_str_weak(expect_right_brace), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001A, // 0006 LDINT R3 27 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_multiplicative_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_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[16]) { /* constants */ - /* K0 */ be_nested_str_weak(process_unary_expression), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(value), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(has_dangerous), - /* K7 */ be_nested_str_weak(expr), - /* K8 */ be_nested_str_weak(error), - /* K9 */ 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), - /* K10 */ be_nested_str_weak(skip_statement), - /* K11 */ be_nested_str_weak(ExpressionResult), - /* K12 */ be_nested_str_weak(literal), - /* K13 */ be_nested_str_weak(nil), - /* K14 */ be_nested_str_weak(combine), - /* K15 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - }), - be_str_weak(process_multiplicative_expression), - &be_const_str_solidified, - ( &(const binstruction[68]) { /* 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 - 0x7416003A, // 0007 JMPT R5 #0043 - 0x8C140102, // 0008 GETMET R5 R0 K2 - 0x7C140200, // 0009 CALL R5 1 - 0x4C180000, // 000A LDNIL R6 - 0x20180A06, // 000B NE R6 R5 R6 - 0x781A0033, // 000C JMPF R6 #0041 - 0x88180B03, // 000D GETMBR R6 R5 K3 - 0x541E000A, // 000E LDINT R7 11 - 0x1C180C07, // 000F EQ R6 R6 R7 - 0x741A0003, // 0010 JMPT R6 #0015 - 0x88180B03, // 0011 GETMBR R6 R5 K3 - 0x541E000B, // 0012 LDINT R7 12 - 0x1C180C07, // 0013 EQ R6 R6 R7 - 0x781A002B, // 0014 JMPF R6 #0041 - 0x88180B04, // 0015 GETMBR R6 R5 K4 - 0x8C1C0105, // 0016 GETMET R7 R0 K5 - 0x7C1C0200, // 0017 CALL R7 1 - 0x8C1C0100, // 0018 GETMET R7 R0 K0 - 0x5C240200, // 0019 MOVE R9 R1 - 0x50280000, // 001A LDBOOL R10 0 0 - 0x5C2C0600, // 001B MOVE R11 R3 - 0x7C1C0800, // 001C CALL R7 4 - 0x88200906, // 001D GETMBR R8 R4 K6 - 0x74220001, // 001E JMPT R8 #0021 - 0x88200F06, // 001F GETMBR R8 R7 K6 - 0x78220012, // 0020 JMPF R8 #0034 - 0x88200906, // 0021 GETMBR R8 R4 K6 - 0x78220001, // 0022 JMPF R8 #0025 - 0x88200907, // 0023 GETMBR R8 R4 K7 - 0x70020000, // 0024 JMP #0026 - 0x88200F07, // 0025 GETMBR R8 R7 K7 - 0x8C240108, // 0026 GETMET R9 R0 K8 - 0x602C0018, // 0027 GETGBL R11 G24 - 0x58300009, // 0028 LDCONST R12 K9 - 0x5C341000, // 0029 MOVE R13 R8 - 0x5C381000, // 002A MOVE R14 R8 - 0x7C2C0600, // 002B CALL R11 3 - 0x7C240400, // 002C CALL R9 2 - 0x8C24010A, // 002D GETMET R9 R0 K10 - 0x7C240200, // 002E CALL R9 1 - 0x8824010B, // 002F GETMBR R9 R0 K11 - 0x8C24130C, // 0030 GETMET R9 R9 K12 - 0x582C000D, // 0031 LDCONST R11 K13 - 0x7C240400, // 0032 CALL R9 2 - 0x80041200, // 0033 RET 1 R9 - 0x8820010B, // 0034 GETMBR R8 R0 K11 - 0x8C20110E, // 0035 GETMET R8 R8 K14 - 0x60280018, // 0036 GETGBL R10 G24 - 0x582C000F, // 0037 LDCONST R11 K15 - 0x88300907, // 0038 GETMBR R12 R4 K7 - 0x5C340C00, // 0039 MOVE R13 R6 - 0x88380F07, // 003A GETMBR R14 R7 K7 - 0x7C280800, // 003B CALL R10 4 - 0x5C2C0800, // 003C MOVE R11 R4 - 0x5C300E00, // 003D MOVE R12 R7 - 0x7C200800, // 003E CALL R8 4 - 0x5C101000, // 003F MOVE R4 R8 - 0x70020000, // 0040 JMP #0042 - 0x70020000, // 0041 JMP #0043 - 0x7001FFC1, // 0042 JMP #0005 - 0x80040800, // 0043 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[ 4]) { /* 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(next), - }), - be_str_weak(skip_whitespace_including_newlines), - &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 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000A, // 0007 JMPF R2 #0013 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0x540E0024, // 0009 LDINT R3 37 - 0x1C080403, // 000A EQ R2 R2 R3 - 0x740A0003, // 000B JMPT R2 #0010 - 0x88080302, // 000C GETMBR R2 R1 K2 - 0x540E0022, // 000D LDINT R3 35 - 0x1C080403, // 000E EQ R2 R2 R3 - 0x780A0002, // 000F JMPF R2 #0013 - 0x8C080103, // 0010 GETMET R2 R0 K3 - 0x7C080200, // 0011 CALL R2 1 - 0x70020000, // 0012 JMP #0014 - 0x70020000, // 0013 JMP #0015 - 0x7001FFEA, // 0014 JMP #0000 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - }), - be_str_weak(check_right_bracket), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001C, // 0006 LDINT R3 29 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0000, // 0008 JMPT R2 #000A - 0x50080001, // 0009 LDBOOL R2 0 1 - 0x50080200, // 000A LDBOOL R2 1 0 - 0x80040400, // 000B RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** 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[40]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(add), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(strip), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), - /* K9 */ be_nested_str_weak(skip_statement), - /* K10 */ be_nested_str_weak(template), - /* K11 */ be_nested_str_weak(peek), - /* K12 */ be_nested_str_weak(animation), - /* K13 */ be_nested_str_weak(process_template_animation), - /* K14 */ be_nested_str_weak(Simple_X20_X27template_X27_X20is_X20not_X20supported_X2E_X20Use_X20_X27template_X20animation_X27_X20instead_X20to_X20create_X20reusable_X20animation_X20classes_X2E), - /* K15 */ be_nested_str_weak(strip_initialized), - /* K16 */ be_nested_str_weak(generate_default_strip_initialization), - /* K17 */ be_nested_str_weak(color), - /* K18 */ be_nested_str_weak(process_color), - /* K19 */ be_nested_str_weak(palette), - /* K20 */ be_nested_str_weak(process_palette), - /* K21 */ be_nested_str_weak(process_animation), - /* K22 */ be_nested_str_weak(set), - /* K23 */ be_nested_str_weak(process_set), - /* K24 */ be_nested_str_weak(sequence), - /* K25 */ be_nested_str_weak(process_sequence), - /* K26 */ be_nested_str_weak(run), - /* K27 */ be_nested_str_weak(process_run), - /* K28 */ be_nested_str_weak(import), - /* K29 */ be_nested_str_weak(process_import), - /* K30 */ be_nested_str_weak(on), - /* K31 */ be_nested_str_weak(process_event_handler), - /* K32 */ be_nested_str_weak(berry), - /* K33 */ be_nested_str_weak(process_berry_code_block), - /* K34 */ be_nested_str_weak(Unknown_X20keyword_X20_X27_X25s_X27_X2E), - /* K35 */ be_const_int(1), - /* K36 */ be_nested_str_weak(log), - /* K37 */ be_nested_str_weak(process_standalone_log), - /* K38 */ be_nested_str_weak(process_property_assignment), - /* K39 */ be_nested_str_weak(Unexpected_X20token_X20_X27_X25s_X27_X2E), - }), - be_str_weak(process_statement), - &be_const_str_solidified, - ( &(const binstruction[162]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x780A0000, // 0004 JMPF R2 #0006 - 0x80000400, // 0005 RET 0 - 0x88080301, // 0006 GETMBR R2 R1 K1 - 0x540E0024, // 0007 LDINT R3 37 - 0x1C080403, // 0008 EQ R2 R2 R3 - 0x780A0005, // 0009 JMPF R2 #0010 - 0x8C080102, // 000A GETMET R2 R0 K2 - 0x88100303, // 000B GETMBR R4 R1 K3 - 0x7C080400, // 000C CALL R2 2 - 0x8C080104, // 000D GETMET R2 R0 K4 - 0x7C080200, // 000E CALL R2 1 - 0x80000400, // 000F RET 0 - 0x88080301, // 0010 GETMBR R2 R1 K1 - 0x540E0022, // 0011 LDINT R3 35 - 0x1C080403, // 0012 EQ R2 R2 R3 - 0x780A0002, // 0013 JMPF R2 #0017 - 0x8C080104, // 0014 GETMET R2 R0 K4 - 0x7C080200, // 0015 CALL R2 1 - 0x80000400, // 0016 RET 0 - 0x88080301, // 0017 GETMBR R2 R1 K1 - 0x1C080505, // 0018 EQ R2 R2 K5 - 0x780A0063, // 0019 JMPF R2 #007E - 0x88080303, // 001A GETMBR R2 R1 K3 - 0x1C080506, // 001B EQ R2 R2 K6 - 0x780A0006, // 001C JMPF R2 #0024 - 0x8C080107, // 001D GETMET R2 R0 K7 - 0x58100008, // 001E LDCONST R4 K8 - 0x7C080400, // 001F CALL R2 2 - 0x8C080109, // 0020 GETMET R2 R0 K9 - 0x7C080200, // 0021 CALL R2 1 - 0x80000400, // 0022 RET 0 - 0x70020058, // 0023 JMP #007D - 0x88080303, // 0024 GETMBR R2 R1 K3 - 0x1C08050A, // 0025 EQ R2 R2 K10 - 0x780A0013, // 0026 JMPF R2 #003B - 0x8C08010B, // 0027 GETMET R2 R0 K11 - 0x7C080200, // 0028 CALL R2 1 - 0x4C0C0000, // 0029 LDNIL R3 - 0x200C0403, // 002A NE R3 R2 R3 - 0x780E0008, // 002B JMPF R3 #0035 - 0x880C0501, // 002C GETMBR R3 R2 K1 - 0x1C0C0705, // 002D EQ R3 R3 K5 - 0x780E0005, // 002E JMPF R3 #0035 - 0x880C0503, // 002F GETMBR R3 R2 K3 - 0x1C0C070C, // 0030 EQ R3 R3 K12 - 0x780E0002, // 0031 JMPF R3 #0035 - 0x8C0C010D, // 0032 GETMET R3 R0 K13 - 0x7C0C0200, // 0033 CALL R3 1 - 0x70020004, // 0034 JMP #003A - 0x8C0C0107, // 0035 GETMET R3 R0 K7 - 0x5814000E, // 0036 LDCONST R5 K14 - 0x7C0C0400, // 0037 CALL R3 2 - 0x8C0C0109, // 0038 GETMET R3 R0 K9 - 0x7C0C0200, // 0039 CALL R3 1 - 0x70020041, // 003A JMP #007D - 0x8808010F, // 003B GETMBR R2 R0 K15 - 0x740A0001, // 003C JMPT R2 #003F - 0x8C080110, // 003D GETMET R2 R0 K16 - 0x7C080200, // 003E CALL R2 1 - 0x88080303, // 003F GETMBR R2 R1 K3 - 0x1C080511, // 0040 EQ R2 R2 K17 - 0x780A0002, // 0041 JMPF R2 #0045 - 0x8C080112, // 0042 GETMET R2 R0 K18 - 0x7C080200, // 0043 CALL R2 1 - 0x70020037, // 0044 JMP #007D - 0x88080303, // 0045 GETMBR R2 R1 K3 - 0x1C080513, // 0046 EQ R2 R2 K19 - 0x780A0002, // 0047 JMPF R2 #004B - 0x8C080114, // 0048 GETMET R2 R0 K20 - 0x7C080200, // 0049 CALL R2 1 - 0x70020031, // 004A JMP #007D - 0x88080303, // 004B GETMBR R2 R1 K3 - 0x1C08050C, // 004C EQ R2 R2 K12 - 0x780A0002, // 004D JMPF R2 #0051 - 0x8C080115, // 004E GETMET R2 R0 K21 - 0x7C080200, // 004F CALL R2 1 - 0x7002002B, // 0050 JMP #007D - 0x88080303, // 0051 GETMBR R2 R1 K3 - 0x1C080516, // 0052 EQ R2 R2 K22 - 0x780A0002, // 0053 JMPF R2 #0057 - 0x8C080117, // 0054 GETMET R2 R0 K23 - 0x7C080200, // 0055 CALL R2 1 - 0x70020025, // 0056 JMP #007D - 0x88080303, // 0057 GETMBR R2 R1 K3 - 0x1C080518, // 0058 EQ R2 R2 K24 - 0x780A0002, // 0059 JMPF R2 #005D - 0x8C080119, // 005A GETMET R2 R0 K25 - 0x7C080200, // 005B CALL R2 1 - 0x7002001F, // 005C JMP #007D - 0x88080303, // 005D GETMBR R2 R1 K3 - 0x1C08051A, // 005E EQ R2 R2 K26 - 0x780A0002, // 005F JMPF R2 #0063 - 0x8C08011B, // 0060 GETMET R2 R0 K27 - 0x7C080200, // 0061 CALL R2 1 - 0x70020019, // 0062 JMP #007D - 0x88080303, // 0063 GETMBR R2 R1 K3 - 0x1C08051C, // 0064 EQ R2 R2 K28 - 0x780A0002, // 0065 JMPF R2 #0069 - 0x8C08011D, // 0066 GETMET R2 R0 K29 - 0x7C080200, // 0067 CALL R2 1 - 0x70020013, // 0068 JMP #007D - 0x88080303, // 0069 GETMBR R2 R1 K3 - 0x1C08051E, // 006A EQ R2 R2 K30 - 0x780A0002, // 006B JMPF R2 #006F - 0x8C08011F, // 006C GETMET R2 R0 K31 - 0x7C080200, // 006D CALL R2 1 - 0x7002000D, // 006E JMP #007D - 0x88080303, // 006F GETMBR R2 R1 K3 - 0x1C080520, // 0070 EQ R2 R2 K32 - 0x780A0002, // 0071 JMPF R2 #0075 - 0x8C080121, // 0072 GETMET R2 R0 K33 - 0x7C080200, // 0073 CALL R2 1 - 0x70020007, // 0074 JMP #007D - 0x8C080107, // 0075 GETMET R2 R0 K7 - 0x60100018, // 0076 GETGBL R4 G24 - 0x58140022, // 0077 LDCONST R5 K34 - 0x88180303, // 0078 GETMBR R6 R1 K3 - 0x7C100400, // 0079 CALL R4 2 - 0x7C080400, // 007A CALL R2 2 - 0x8C080109, // 007B GETMET R2 R0 K9 - 0x7C080200, // 007C CALL R2 1 - 0x70020022, // 007D JMP #00A1 - 0x88080301, // 007E GETMBR R2 R1 K1 - 0x1C080523, // 007F EQ R2 R2 K35 - 0x780A0017, // 0080 JMPF R2 #0099 - 0x8808010F, // 0081 GETMBR R2 R0 K15 - 0x740A0001, // 0082 JMPT R2 #0085 - 0x8C080110, // 0083 GETMET R2 R0 K16 - 0x7C080200, // 0084 CALL R2 1 - 0x88080303, // 0085 GETMBR R2 R1 K3 - 0x1C080524, // 0086 EQ R2 R2 K36 - 0x780A000D, // 0087 JMPF R2 #0096 - 0x8C08010B, // 0088 GETMET R2 R0 K11 - 0x7C080200, // 0089 CALL R2 1 - 0x4C0C0000, // 008A LDNIL R3 - 0x20080403, // 008B NE R2 R2 R3 - 0x780A0008, // 008C JMPF R2 #0096 - 0x8C08010B, // 008D GETMET R2 R0 K11 - 0x7C080200, // 008E CALL R2 1 - 0x88080501, // 008F GETMBR R2 R2 K1 - 0x540E0017, // 0090 LDINT R3 24 - 0x1C080403, // 0091 EQ R2 R2 R3 - 0x780A0002, // 0092 JMPF R2 #0096 - 0x8C080125, // 0093 GETMET R2 R0 K37 - 0x7C080200, // 0094 CALL R2 1 - 0x70020001, // 0095 JMP #0098 - 0x8C080126, // 0096 GETMET R2 R0 K38 - 0x7C080200, // 0097 CALL R2 1 - 0x70020007, // 0098 JMP #00A1 - 0x8C080107, // 0099 GETMET R2 R0 K7 - 0x60100018, // 009A GETGBL R4 G24 - 0x58140027, // 009B LDCONST R5 K39 - 0x88180303, // 009C GETMBR R6 R1 K3 - 0x7C100400, // 009D CALL R4 2 - 0x7C080400, // 009E CALL R2 2 - 0x8C080109, // 009F GETMET R2 R0 K9 - 0x7C080200, // 00A0 CALL R2 1 - 0x80000000, // 00A1 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: process_event_parameters ********************************************************************/ @@ -14531,42 +10342,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name * /******************************************************************** -** Solidified function: get_named_color_value +** Solidified function: process_play_statement_fluent ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_play_statement_fluent, /* 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 */ + 13, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -14574,37 +10354,145 @@ be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(2), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(Expected_X20number), - /* K7 */ be_nested_str_weak(0), + ( &(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_const_int(1), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(peek), + /* K7 */ be_nested_str_weak(process_nested_function_call), + /* K8 */ be_nested_str_weak(expect_identifier), + /* K9 */ be_nested_str_weak(_validate_object_reference), + /* K10 */ be_nested_str_weak(sequence_X20play), + /* K11 */ be_nested_str_weak(_X25s_), + /* K12 */ be_nested_str_weak(nil), + /* K13 */ be_nested_str_weak(value), + /* K14 */ be_nested_str_weak(for), + /* K15 */ be_const_int(2), + /* K16 */ be_nested_str_weak(process_time_value), + /* K17 */ be_nested_str_weak(self_X2E), + /* K18 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20_X25s_X20end), + /* 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(expect_number), + be_str_weak(process_play_statement_fluent), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ + ( &(const binstruction[111]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0007, // 0004 JMPF R2 #000D - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x1C080502, // 0006 EQ R2 R2 K2 - 0x780A0004, // 0007 JMPF R2 #000D - 0x88080303, // 0008 GETMBR R2 R1 K3 - 0x8C0C0104, // 0009 GETMET R3 R0 K4 - 0x7C0C0200, // 000A CALL R3 1 - 0x80040400, // 000B RET 1 R2 - 0x70020003, // 000C JMP #0011 - 0x8C080105, // 000D GETMET R2 R0 K5 - 0x58100006, // 000E LDCONST R4 K6 - 0x7C080400, // 000F CALL R2 2 - 0x80060E00, // 0010 RET 1 K7 - 0x80000000, // 0011 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 + 0x780E0014, // 0007 JMPF R3 #001D + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0x1C0C0704, // 0009 EQ R3 R3 K4 + 0x740E0002, // 000A JMPT R3 #000E + 0x880C0503, // 000B GETMBR R3 R2 K3 + 0x1C0C0705, // 000C EQ R3 R3 K5 + 0x780E000E, // 000D JMPF R3 #001D + 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x7C0C0200, // 000F CALL R3 1 + 0x4C100000, // 0010 LDNIL R4 + 0x200C0604, // 0011 NE R3 R3 R4 + 0x780E0009, // 0012 JMPF R3 #001D + 0x8C0C0106, // 0013 GETMET R3 R0 K6 + 0x7C0C0200, // 0014 CALL R3 1 + 0x880C0703, // 0015 GETMBR R3 R3 K3 + 0x54120017, // 0016 LDINT R4 24 + 0x1C0C0604, // 0017 EQ R3 R3 R4 + 0x780E0003, // 0018 JMPF R3 #001D + 0x8C0C0107, // 0019 GETMET R3 R0 K7 + 0x7C0C0200, // 001A CALL R3 1 + 0x5C040600, // 001B MOVE R1 R3 + 0x7002000A, // 001C JMP #0028 + 0x8C0C0108, // 001D GETMET R3 R0 K8 + 0x7C0C0200, // 001E CALL R3 1 + 0x8C100109, // 001F GETMET R4 R0 K9 + 0x5C180600, // 0020 MOVE R6 R3 + 0x581C000A, // 0021 LDCONST R7 K10 + 0x7C100600, // 0022 CALL R4 3 + 0x60100018, // 0023 GETGBL R4 G24 + 0x5814000B, // 0024 LDCONST R5 K11 + 0x5C180600, // 0025 MOVE R6 R3 + 0x7C100400, // 0026 CALL R4 2 + 0x5C040800, // 0027 MOVE R1 R4 + 0x580C000C, // 0028 LDCONST R3 K12 + 0x8C100102, // 0029 GETMET R4 R0 K2 + 0x7C100200, // 002A CALL R4 1 + 0x4C140000, // 002B LDNIL R5 + 0x20100805, // 002C NE R4 R4 R5 + 0x78120033, // 002D JMPF R4 #0062 + 0x8C100102, // 002E GETMET R4 R0 K2 + 0x7C100200, // 002F CALL R4 1 + 0x88100903, // 0030 GETMBR R4 R4 K3 + 0x1C100905, // 0031 EQ R4 R4 K5 + 0x7812002E, // 0032 JMPF R4 #0062 + 0x8C100102, // 0033 GETMET R4 R0 K2 + 0x7C100200, // 0034 CALL R4 1 + 0x8810090D, // 0035 GETMBR R4 R4 K13 + 0x1C10090E, // 0036 EQ R4 R4 K14 + 0x78120029, // 0037 JMPF R4 #0062 + 0x8C100100, // 0038 GETMET R4 R0 K0 + 0x7C100200, // 0039 CALL R4 1 + 0x8C100102, // 003A GETMET R4 R0 K2 + 0x7C100200, // 003B CALL R4 1 + 0x4C140000, // 003C LDNIL R5 + 0x20140805, // 003D NE R5 R4 R5 + 0x7816000A, // 003E JMPF R5 #004A + 0x88140903, // 003F GETMBR R5 R4 K3 + 0x541A0004, // 0040 LDINT R6 5 + 0x1C140A06, // 0041 EQ R5 R5 R6 + 0x74160002, // 0042 JMPT R5 #0046 + 0x88140903, // 0043 GETMBR R5 R4 K3 + 0x1C140B0F, // 0044 EQ R5 R5 K15 + 0x78160003, // 0045 JMPF R5 #004A + 0x8C140110, // 0046 GETMET R5 R0 K16 + 0x7C140200, // 0047 CALL R5 1 + 0x5C0C0A00, // 0048 MOVE R3 R5 + 0x70020017, // 0049 JMP #0062 + 0x4C140000, // 004A LDNIL R5 + 0x20140805, // 004B NE R5 R4 R5 + 0x78160011, // 004C JMPF R5 #005F + 0x88140903, // 004D GETMBR R5 R4 K3 + 0x1C140B04, // 004E EQ R5 R5 K4 + 0x7816000E, // 004F JMPF R5 #005F + 0x8C140110, // 0050 GETMET R5 R0 K16 + 0x7C140200, // 0051 CALL R5 1 + 0x541A0003, // 0052 LDINT R6 4 + 0x401A0A06, // 0053 CONNECT R6 K5 R6 + 0x94180A06, // 0054 GETIDX R6 R5 R6 + 0x1C180D11, // 0055 EQ R6 R6 K17 + 0x781A0005, // 0056 JMPF R6 #005D + 0x60180018, // 0057 GETGBL R6 G24 + 0x581C0012, // 0058 LDCONST R7 K18 + 0x5C200A00, // 0059 MOVE R8 R5 + 0x7C180400, // 005A CALL R6 2 + 0x5C0C0C00, // 005B MOVE R3 R6 + 0x70020000, // 005C JMP #005E + 0x5C0C0A00, // 005D MOVE R3 R5 + 0x70020002, // 005E JMP #0062 + 0x8C140110, // 005F GETMET R5 R0 K16 + 0x7C140200, // 0060 CALL R5 1 + 0x5C0C0A00, // 0061 MOVE R3 R5 + 0x8C100113, // 0062 GETMET R4 R0 K19 + 0x7C100200, // 0063 CALL R4 1 + 0x8C140114, // 0064 GETMET R5 R0 K20 + 0x601C0018, // 0065 GETGBL R7 G24 + 0x58200015, // 0066 LDCONST R8 K21 + 0x8C240116, // 0067 GETMET R9 R0 K22 + 0x7C240200, // 0068 CALL R9 1 + 0x5C280200, // 0069 MOVE R10 R1 + 0x5C2C0600, // 006A MOVE R11 R3 + 0x5C300800, // 006B MOVE R12 R4 + 0x7C1C0A00, // 006C CALL R7 5 + 0x7C140400, // 006D CALL R5 2 + 0x80000000, // 006E RET 0 }) ) ); @@ -14612,11 +10500,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ /******************************************************************** -** Solidified function: process_function_arguments +** Solidified function: process_value ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_value, /* name */ be_nested_proto( - 9, /* nstack */ + 11, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -14624,112 +10512,96 @@ be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[20]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_paren), - /* K3 */ be_nested_str_weak(skip_whitespace), - /* K4 */ be_nested_str_weak(process_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(next), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K14 */ be_nested_str_weak(expect_right_paren), - /* K15 */ be_nested_str_weak(), - /* K16 */ be_const_int(0), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(_X2C_X20), - /* K19 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[19]) { /* 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(has_computation), + /* K13 */ be_nested_str_weak(_unwrap_resolve), + /* K14 */ be_nested_str_weak(symbol_table), + /* K15 */ be_nested_str_weak(get), + /* K16 */ be_nested_str_weak(closure_value), + /* K17 */ be_nested_str_weak(type), + /* K18 */ be_nested_str_weak(instance), }), - be_str_weak(process_function_arguments), + be_str_weak(process_value), &be_const_str_solidified, - ( &(const binstruction[81]) { /* code */ + ( &(const binstruction[66]) { /* 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 - 0x740E0032, // 0006 JMPT R3 #003A - 0x8C0C0102, // 0007 GETMET R3 R0 K2 - 0x7C0C0200, // 0008 CALL R3 1 - 0x740E002F, // 0009 JMPT R3 #003A - 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 - 0x70020029, // 000F JMP #003A - 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 - 0x7812000A, // 0026 JMPF R4 #0032 - 0x8C100109, // 0027 GETMET R4 R0 K9 - 0x7C100200, // 0028 CALL R4 1 - 0x8810090A, // 0029 GETMBR R4 R4 K10 - 0x5416001D, // 002A LDINT R5 30 - 0x1C100805, // 002B EQ R4 R4 R5 - 0x78120004, // 002C JMPF R4 #0032 - 0x8C10010B, // 002D GETMET R4 R0 K11 - 0x7C100200, // 002E CALL R4 1 - 0x8C100103, // 002F GETMET R4 R0 K3 - 0x7C100200, // 0030 CALL R4 1 - 0x70020006, // 0031 JMP #0039 - 0x8C100102, // 0032 GETMET R4 R0 K2 - 0x7C100200, // 0033 CALL R4 1 - 0x74120003, // 0034 JMPT R4 #0039 - 0x8C10010C, // 0035 GETMET R4 R0 K12 - 0x5818000D, // 0036 LDCONST R6 K13 - 0x7C100400, // 0037 CALL R4 2 - 0x70020000, // 0038 JMP #003A - 0x7001FFC9, // 0039 JMP #0004 - 0x8C0C010E, // 003A GETMET R3 R0 K14 - 0x7C0C0200, // 003B CALL R3 1 - 0x580C000F, // 003C LDCONST R3 K15 - 0x60100010, // 003D GETGBL R4 G16 - 0x6014000C, // 003E GETGBL R5 G12 - 0x5C180400, // 003F MOVE R6 R2 - 0x7C140200, // 0040 CALL R5 1 - 0x04140B11, // 0041 SUB R5 R5 K17 - 0x40162005, // 0042 CONNECT R5 K16 R5 - 0x7C100200, // 0043 CALL R4 1 - 0xA8020007, // 0044 EXBLK 0 #004D - 0x5C140800, // 0045 MOVE R5 R4 - 0x7C140000, // 0046 CALL R5 0 - 0x24180B10, // 0047 GT R6 R5 K16 - 0x781A0000, // 0048 JMPF R6 #004A - 0x000C0712, // 0049 ADD R3 R3 K18 - 0x94180405, // 004A GETIDX R6 R2 R5 - 0x000C0606, // 004B ADD R3 R3 R6 - 0x7001FFF7, // 004C JMP #0045 - 0x58100013, // 004D LDCONST R4 K19 - 0xAC100200, // 004E CATCH R4 1 0 - 0xB0080000, // 004F RAISE 2 R0 R0 - 0x80040600, // 0050 RET 1 R3 + 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 + 0x780E002E, // 0010 JMPF R3 #0040 + 0x8C0C0505, // 0011 GETMET R3 R2 K5 + 0x7C0C0200, // 0012 CALL R3 1 + 0x780E002B, // 0013 JMPF R3 #0040 + 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 + 0x7002001C, // 0021 JMP #003F + 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 + 0x54160008, // 0027 LDINT R5 9 + 0x1C100805, // 0028 EQ R4 R4 R5 + 0x78120002, // 0029 JMPF R4 #002D + 0x8810050C, // 002A GETMBR R4 R2 K12 + 0x74120000, // 002B JMPT R4 #002D + 0x880C0507, // 002C GETMBR R3 R2 K7 + 0x8C10010D, // 002D GETMET R4 R0 K13 + 0x88180507, // 002E GETMBR R6 R2 K7 + 0x7C100400, // 002F CALL R4 2 + 0x4C140000, // 0030 LDNIL R5 + 0x20140805, // 0031 NE R5 R4 R5 + 0x78160000, // 0032 JMPF R5 #0034 + 0x5C0C0800, // 0033 MOVE R3 R4 + 0x8814010E, // 0034 GETMBR R5 R0 K14 + 0x8C140B0F, // 0035 GETMET R5 R5 K15 + 0x581C0010, // 0036 LDCONST R7 K16 + 0x7C140400, // 0037 CALL R5 2 + 0x88180108, // 0038 GETMBR R6 R0 K8 + 0x8C180D09, // 0039 GETMET R6 R6 K9 + 0x5C200600, // 003A MOVE R8 R3 + 0x88240B11, // 003B GETMBR R9 R5 K17 + 0x88280B12, // 003C GETMBR R10 R5 K18 + 0x7C180800, // 003D CALL R6 4 + 0x80040C00, // 003E RET 1 R6 + 0x70020000, // 003F JMP #0041 + 0x80040400, // 0040 RET 1 R2 + 0x80000000, // 0041 RET 0 }) ) ); @@ -14737,11 +10609,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name /******************************************************************** -** Solidified function: process_import +** Solidified function: expect_assign ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ be_nested_proto( - 9, /* nstack */ + 5, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -14750,29 +10622,31 @@ be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ 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), + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), }), - be_str_weak(process_import), + be_str_weak(expect_assign), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ + ( &(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 - 0x5C1C0200, // 0009 MOVE R7 R1 - 0x5C200400, // 000A MOVE R8 R2 - 0x7C140600, // 000B CALL R5 3 - 0x7C0C0400, // 000C CALL R3 2 - 0x80000000, // 000D RET 0 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0007, // 0006 LDINT R3 8 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 }) ) ); @@ -14780,11 +10654,55 @@ be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ /******************************************************************** -** Solidified function: check_right_brace +** Solidified function: _validate_object_reference ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ be_nested_proto( - 4, /* nstack */ + 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: process_if_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_if_statement_fluent, /* name */ + be_nested_proto( + 9, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -14792,25 +10710,85 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), + ( &(const bvalue[18]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(process_additive_expression), + /* K2 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K3 */ be_nested_str_weak(expect_left_brace), + /* K4 */ be_nested_str_weak(has_dynamic), + /* K5 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20bool_X28_X25s_X29_X20end), + /* K6 */ be_nested_str_weak(expr), + /* K7 */ be_nested_str_weak(bool_X28_X25s_X29), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2Esequence_manager_X28engine_X2C_X20_X25s_X29), + /* K10 */ be_nested_str_weak(get_indent), + /* K11 */ be_nested_str_weak(indent_level), + /* K12 */ be_const_int(1), + /* K13 */ be_nested_str_weak(at_end), + /* K14 */ be_nested_str_weak(check_right_brace), + /* K15 */ be_nested_str_weak(process_sequence_statement), + /* K16 */ be_nested_str_weak(expect_right_brace), + /* K17 */ be_nested_str_weak(_X25s_X29), }), - be_str_weak(check_right_brace), + be_str_weak(process_if_statement_fluent), &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ + ( &(const binstruction[56]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001A, // 0006 LDINT R3 27 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0000, // 0008 JMPT R2 #000A - 0x50080001, // 0009 LDBOOL R2 0 1 - 0x50080200, // 000A LDBOOL R2 1 0 - 0x80040400, // 000B RET 1 R2 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x880C0102, // 0003 GETMBR R3 R0 K2 + 0x50100200, // 0004 LDBOOL R4 1 0 + 0x50140000, // 0005 LDBOOL R5 0 0 + 0x7C040800, // 0006 CALL R1 4 + 0x8C080103, // 0007 GETMET R2 R0 K3 + 0x7C080200, // 0008 CALL R2 1 + 0x4C080000, // 0009 LDNIL R2 + 0x880C0304, // 000A GETMBR R3 R1 K4 + 0x780E0005, // 000B JMPF R3 #0012 + 0x600C0018, // 000C GETGBL R3 G24 + 0x58100005, // 000D LDCONST R4 K5 + 0x88140306, // 000E GETMBR R5 R1 K6 + 0x7C0C0400, // 000F CALL R3 2 + 0x5C080600, // 0010 MOVE R2 R3 + 0x70020004, // 0011 JMP #0017 + 0x600C0018, // 0012 GETGBL R3 G24 + 0x58100007, // 0013 LDCONST R4 K7 + 0x88140306, // 0014 GETMBR R5 R1 K6 + 0x7C0C0400, // 0015 CALL R3 2 + 0x5C080600, // 0016 MOVE R2 R3 + 0x8C0C0108, // 0017 GETMET R3 R0 K8 + 0x60140018, // 0018 GETGBL R5 G24 + 0x58180009, // 0019 LDCONST R6 K9 + 0x8C1C010A, // 001A GETMET R7 R0 K10 + 0x7C1C0200, // 001B CALL R7 1 + 0x5C200400, // 001C MOVE R8 R2 + 0x7C140600, // 001D CALL R5 3 + 0x7C0C0400, // 001E CALL R3 2 + 0x880C010B, // 001F GETMBR R3 R0 K11 + 0x000C070C, // 0020 ADD R3 R3 K12 + 0x90021603, // 0021 SETMBR R0 K11 R3 + 0x8C0C010D, // 0022 GETMET R3 R0 K13 + 0x7C0C0200, // 0023 CALL R3 1 + 0x740E0005, // 0024 JMPT R3 #002B + 0x8C0C010E, // 0025 GETMET R3 R0 K14 + 0x7C0C0200, // 0026 CALL R3 1 + 0x740E0002, // 0027 JMPT R3 #002B + 0x8C0C010F, // 0028 GETMET R3 R0 K15 + 0x7C0C0200, // 0029 CALL R3 1 + 0x7001FFF6, // 002A JMP #0022 + 0x8C0C0110, // 002B GETMET R3 R0 K16 + 0x7C0C0200, // 002C CALL R3 1 + 0x8C0C0108, // 002D GETMET R3 R0 K8 + 0x60140018, // 002E GETGBL R5 G24 + 0x58180011, // 002F LDCONST R6 K17 + 0x8C1C010A, // 0030 GETMET R7 R0 K10 + 0x7C1C0200, // 0031 CALL R7 1 + 0x7C140400, // 0032 CALL R5 2 + 0x7C0C0400, // 0033 CALL R3 2 + 0x880C010B, // 0034 GETMBR R3 R0 K11 + 0x040C070C, // 0035 SUB R3 R3 K12 + 0x90021603, // 0036 SETMBR R0 K11 R3 + 0x80000000, // 0037 RET 0 }) ) ); @@ -14818,142 +10796,212 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ /******************************************************************** -** Solidified function: _process_parameters_core +** Solidified function: _parse_parameter_constraints ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_parameters_core, /* name */ +be_local_closure(class_SimpleDSLTranspiler__parse_parameter_constraints, /* name */ be_nested_proto( - 13, /* nstack */ - 4, /* argc */ + 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(), - /* 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(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), + ( &(const bvalue[23]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(0), + /* K4 */ be_const_int(1), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(expect_identifier), + /* K8 */ be_nested_str_weak(_validate_template_parameter_type), + /* K9 */ be_nested_str_weak(min), + /* K10 */ be_nested_str_weak(process_value), + /* K11 */ be_nested_str_weak(CONTEXT_GENERIC), + /* K12 */ be_nested_str_weak(expr), + /* K13 */ be_nested_str_weak(error), + /* K14 */ be_nested_str_weak(Expected_X20value_X20after_X20_X27min_X27), + /* K15 */ be_nested_str_weak(max), + /* K16 */ be_nested_str_weak(Expected_X20value_X20after_X20_X27max_X27), + /* K17 */ be_nested_str_weak(default), + /* K18 */ be_nested_str_weak(Expected_X20value_X20after_X20_X27default_X27), + /* K19 */ be_nested_str_weak(nillable), + /* K20 */ be_nested_str_weak(true), + /* K21 */ be_nested_str_weak(false), + /* K22 */ be_nested_str_weak(Expected_X20_X27true_X27_X20or_X20_X27false_X27_X20after_X20_X27nillable_X27), }), - be_str_weak(_process_parameters_core), + be_str_weak(_parse_parameter_constraints), &be_const_str_solidified, - ( &(const binstruction[102]) { /* 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 - 0x741A0059, // 000A JMPT R6 #0065 - 0x8C180103, // 000B GETMET R6 R0 K3 - 0x7C180200, // 000C CALL R6 1 - 0x741A0056, // 000D JMPT R6 #0065 - 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 - 0x70020050, // 0013 JMP #0065 - 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 - 0x7426000D, // 002E JMPT R9 #003D - 0x8C24010C, // 002F GETMET R9 R0 K12 - 0x7C240200, // 0030 CALL R9 1 - 0x4C280000, // 0031 LDNIL R10 - 0x2028120A, // 0032 NE R10 R9 R10 - 0x782A0006, // 0033 JMPF R10 #003B - 0x8828130D, // 0034 GETMBR R10 R9 K13 - 0x542E0024, // 0035 LDINT R11 37 - 0x1C28140B, // 0036 EQ R10 R10 R11 - 0x782A0002, // 0037 JMPF R10 #003B - 0x8C28010E, // 0038 GETMET R10 R0 K14 - 0x7C280200, // 0039 CALL R10 1 - 0x70020000, // 003A JMP #003C - 0x70020000, // 003B JMP #003D - 0x7001FFEE, // 003C JMP #002C - 0x8C24010C, // 003D GETMET R9 R0 K12 - 0x7C240200, // 003E CALL R9 1 - 0x4C280000, // 003F LDNIL R10 - 0x2024120A, // 0040 NE R9 R9 R10 - 0x7826000A, // 0041 JMPF R9 #004D - 0x8C24010C, // 0042 GETMET R9 R0 K12 - 0x7C240200, // 0043 CALL R9 1 - 0x8824130D, // 0044 GETMBR R9 R9 K13 - 0x542A001D, // 0045 LDINT R10 30 - 0x1C24120A, // 0046 EQ R9 R9 R10 - 0x78260004, // 0047 JMPF R9 #004D - 0x8C24010E, // 0048 GETMET R9 R0 K14 - 0x7C240200, // 0049 CALL R9 1 - 0x8C240104, // 004A GETMET R9 R0 K4 - 0x7C240200, // 004B CALL R9 1 - 0x70020016, // 004C JMP #0064 - 0x8C24010C, // 004D GETMET R9 R0 K12 - 0x7C240200, // 004E CALL R9 1 - 0x4C280000, // 004F LDNIL R10 - 0x2024120A, // 0050 NE R9 R9 R10 - 0x7826000A, // 0051 JMPF R9 #005D - 0x8C24010C, // 0052 GETMET R9 R0 K12 - 0x7C240200, // 0053 CALL R9 1 - 0x8824130D, // 0054 GETMBR R9 R9 K13 - 0x542A0022, // 0055 LDINT R10 35 - 0x1C24120A, // 0056 EQ R9 R9 R10 - 0x78260004, // 0057 JMPF R9 #005D - 0x8C24010E, // 0058 GETMET R9 R0 K14 - 0x7C240200, // 0059 CALL R9 1 - 0x8C240104, // 005A GETMET R9 R0 K4 - 0x7C240200, // 005B CALL R9 1 - 0x70020006, // 005C JMP #0064 - 0x8C240103, // 005D GETMET R9 R0 K3 - 0x7C240200, // 005E CALL R9 1 - 0x74260003, // 005F JMPT R9 #0064 - 0x8C24010F, // 0060 GETMET R9 R0 K15 - 0x582C0010, // 0061 LDCONST R11 K16 - 0x7C240400, // 0062 CALL R9 2 - 0x70020000, // 0063 JMP #0065 - 0x7001FFA2, // 0064 JMP #0008 - 0x80000000, // 0065 RET 0 + ( &(const binstruction[166]) { /* code */ + 0x60040013, // 0000 GETGBL R1 G19 + 0x7C040000, // 0001 CALL R1 0 + 0x8C080100, // 0002 GETMET R2 R0 K0 + 0x7C080200, // 0003 CALL R2 1 + 0x740A0097, // 0004 JMPT R2 #009D + 0x8C080101, // 0005 GETMET R2 R0 K1 + 0x7C080200, // 0006 CALL R2 1 + 0x4C0C0000, // 0007 LDNIL R3 + 0x1C0C0403, // 0008 EQ R3 R2 R3 + 0x740E0007, // 0009 JMPT R3 #0012 + 0x880C0502, // 000A GETMBR R3 R2 K2 + 0x54120022, // 000B LDINT R4 35 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x740E0003, // 000D JMPT R3 #0012 + 0x880C0502, // 000E GETMBR R3 R2 K2 + 0x5412001A, // 000F LDINT R4 27 + 0x1C0C0604, // 0010 EQ R3 R3 R4 + 0x780E0000, // 0011 JMPF R3 #0013 + 0x70020089, // 0012 JMP #009D + 0x880C0502, // 0013 GETMBR R3 R2 K2 + 0x1C0C0703, // 0014 EQ R3 R3 K3 + 0x740E0002, // 0015 JMPT R3 #0019 + 0x880C0502, // 0016 GETMBR R3 R2 K2 + 0x1C0C0704, // 0017 EQ R3 R3 K4 + 0x780E0081, // 0018 JMPF R3 #009B + 0x880C0505, // 0019 GETMBR R3 R2 K5 + 0x1C0C0702, // 001A EQ R3 R3 K2 + 0x780E000B, // 001B JMPF R3 #0028 + 0x8C0C0106, // 001C GETMET R3 R0 K6 + 0x7C0C0200, // 001D CALL R3 1 + 0x8C0C0107, // 001E GETMET R3 R0 K7 + 0x7C0C0200, // 001F CALL R3 1 + 0x8C100108, // 0020 GETMET R4 R0 K8 + 0x5C180600, // 0021 MOVE R6 R3 + 0x7C100400, // 0022 CALL R4 2 + 0x74120001, // 0023 JMPT R4 #0026 + 0x4C100000, // 0024 LDNIL R4 + 0x80040800, // 0025 RET 1 R4 + 0x98060403, // 0026 SETIDX R1 K2 R3 + 0x70020071, // 0027 JMP #009A + 0x880C0505, // 0028 GETMBR R3 R2 K5 + 0x1C0C0709, // 0029 EQ R3 R3 K9 + 0x780E0014, // 002A JMPF R3 #0040 + 0x8C0C0106, // 002B GETMET R3 R0 K6 + 0x7C0C0200, // 002C CALL R3 1 + 0x8C0C010A, // 002D GETMET R3 R0 K10 + 0x8814010B, // 002E GETMBR R5 R0 K11 + 0x7C0C0400, // 002F CALL R3 2 + 0x4C100000, // 0030 LDNIL R4 + 0x20100604, // 0031 NE R4 R3 R4 + 0x78120006, // 0032 JMPF R4 #003A + 0x8810070C, // 0033 GETMBR R4 R3 K12 + 0x4C140000, // 0034 LDNIL R5 + 0x20100805, // 0035 NE R4 R4 R5 + 0x78120002, // 0036 JMPF R4 #003A + 0x8810070C, // 0037 GETMBR R4 R3 K12 + 0x98061204, // 0038 SETIDX R1 K9 R4 + 0x70020004, // 0039 JMP #003F + 0x8C10010D, // 003A GETMET R4 R0 K13 + 0x5818000E, // 003B LDCONST R6 K14 + 0x7C100400, // 003C CALL R4 2 + 0x4C100000, // 003D LDNIL R4 + 0x80040800, // 003E RET 1 R4 + 0x70020059, // 003F JMP #009A + 0x880C0505, // 0040 GETMBR R3 R2 K5 + 0x1C0C070F, // 0041 EQ R3 R3 K15 + 0x780E0014, // 0042 JMPF R3 #0058 + 0x8C0C0106, // 0043 GETMET R3 R0 K6 + 0x7C0C0200, // 0044 CALL R3 1 + 0x8C0C010A, // 0045 GETMET R3 R0 K10 + 0x8814010B, // 0046 GETMBR R5 R0 K11 + 0x7C0C0400, // 0047 CALL R3 2 + 0x4C100000, // 0048 LDNIL R4 + 0x20100604, // 0049 NE R4 R3 R4 + 0x78120006, // 004A JMPF R4 #0052 + 0x8810070C, // 004B GETMBR R4 R3 K12 + 0x4C140000, // 004C LDNIL R5 + 0x20100805, // 004D NE R4 R4 R5 + 0x78120002, // 004E JMPF R4 #0052 + 0x8810070C, // 004F GETMBR R4 R3 K12 + 0x98061E04, // 0050 SETIDX R1 K15 R4 + 0x70020004, // 0051 JMP #0057 + 0x8C10010D, // 0052 GETMET R4 R0 K13 + 0x58180010, // 0053 LDCONST R6 K16 + 0x7C100400, // 0054 CALL R4 2 + 0x4C100000, // 0055 LDNIL R4 + 0x80040800, // 0056 RET 1 R4 + 0x70020041, // 0057 JMP #009A + 0x880C0505, // 0058 GETMBR R3 R2 K5 + 0x1C0C0711, // 0059 EQ R3 R3 K17 + 0x780E0014, // 005A JMPF R3 #0070 + 0x8C0C0106, // 005B GETMET R3 R0 K6 + 0x7C0C0200, // 005C CALL R3 1 + 0x8C0C010A, // 005D GETMET R3 R0 K10 + 0x8814010B, // 005E GETMBR R5 R0 K11 + 0x7C0C0400, // 005F CALL R3 2 + 0x4C100000, // 0060 LDNIL R4 + 0x20100604, // 0061 NE R4 R3 R4 + 0x78120006, // 0062 JMPF R4 #006A + 0x8810070C, // 0063 GETMBR R4 R3 K12 + 0x4C140000, // 0064 LDNIL R5 + 0x20100805, // 0065 NE R4 R4 R5 + 0x78120002, // 0066 JMPF R4 #006A + 0x8810070C, // 0067 GETMBR R4 R3 K12 + 0x98062204, // 0068 SETIDX R1 K17 R4 + 0x70020004, // 0069 JMP #006F + 0x8C10010D, // 006A GETMET R4 R0 K13 + 0x58180012, // 006B LDCONST R6 K18 + 0x7C100400, // 006C CALL R4 2 + 0x4C100000, // 006D LDNIL R4 + 0x80040800, // 006E RET 1 R4 + 0x70020029, // 006F JMP #009A + 0x880C0505, // 0070 GETMBR R3 R2 K5 + 0x1C0C0713, // 0071 EQ R3 R3 K19 + 0x780E0025, // 0072 JMPF R3 #0099 + 0x8C0C0106, // 0073 GETMET R3 R0 K6 + 0x7C0C0200, // 0074 CALL R3 1 + 0x8C0C0101, // 0075 GETMET R3 R0 K1 + 0x7C0C0200, // 0076 CALL R3 1 + 0x4C100000, // 0077 LDNIL R4 + 0x20100604, // 0078 NE R4 R3 R4 + 0x78120018, // 0079 JMPF R4 #0093 + 0x88100702, // 007A GETMBR R4 R3 K2 + 0x1C100903, // 007B EQ R4 R4 K3 + 0x78120015, // 007C JMPF R4 #0093 + 0x88100705, // 007D GETMBR R4 R3 K5 + 0x1C100914, // 007E EQ R4 R4 K20 + 0x78120004, // 007F JMPF R4 #0085 + 0x8C100106, // 0080 GETMET R4 R0 K6 + 0x7C100200, // 0081 CALL R4 1 + 0x50100200, // 0082 LDBOOL R4 1 0 + 0x98062604, // 0083 SETIDX R1 K19 R4 + 0x7002000C, // 0084 JMP #0092 + 0x88100705, // 0085 GETMBR R4 R3 K5 + 0x1C100915, // 0086 EQ R4 R4 K21 + 0x78120004, // 0087 JMPF R4 #008D + 0x8C100106, // 0088 GETMET R4 R0 K6 + 0x7C100200, // 0089 CALL R4 1 + 0x50100000, // 008A LDBOOL R4 0 0 + 0x98062604, // 008B SETIDX R1 K19 R4 + 0x70020004, // 008C JMP #0092 + 0x8C10010D, // 008D GETMET R4 R0 K13 + 0x58180016, // 008E LDCONST R6 K22 + 0x7C100400, // 008F CALL R4 2 + 0x4C100000, // 0090 LDNIL R4 + 0x80040800, // 0091 RET 1 R4 + 0x70020004, // 0092 JMP #0098 + 0x8C10010D, // 0093 GETMET R4 R0 K13 + 0x58180016, // 0094 LDCONST R6 K22 + 0x7C100400, // 0095 CALL R4 2 + 0x4C100000, // 0096 LDNIL R4 + 0x80040800, // 0097 RET 1 R4 + 0x70020000, // 0098 JMP #009A + 0x70020002, // 0099 JMP #009D + 0x70020000, // 009A JMP #009C + 0x70020000, // 009B JMP #009D + 0x7001FF64, // 009C JMP #0002 + 0x6008000C, // 009D GETGBL R2 G12 + 0x5C0C0200, // 009E MOVE R3 R1 + 0x7C080200, // 009F CALL R2 1 + 0x24080503, // 00A0 GT R2 R2 K3 + 0x780A0001, // 00A1 JMPF R2 #00A4 + 0x5C080200, // 00A2 MOVE R2 R1 + 0x70020000, // 00A3 JMP #00A5 + 0x4C080000, // 00A4 LDNIL R2 + 0x80040400, // 00A5 RET 1 R2 }) ) ); @@ -14961,399 +11009,94 @@ be_local_closure(class_SimpleDSLTranspiler__process_parameters_core, /* name * /******************************************************************** -** Solidified function: generate_template_animation_class +** Solidified function: transpile ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_template_animation_class, /* name */ +be_local_closure(class_SimpleDSLTranspiler_transpile, /* name */ be_nested_proto( - 20, /* nstack */ - 4, /* argc */ + 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[56]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(string), - /* K2 */ be_nested_str_weak(add), - /* K3 */ be_nested_str_weak(_X23_X20Template_X20animation_X20class_X3A_X20_X25s), - /* K4 */ be_nested_str_weak(class_X20_X25s_animation_X20_X3A_X20animation_X2Eengine_proxy), - /* K5 */ be_nested_str_weak(_X20_X20static_X20var_X20PARAMS_X20_X3D_X20animation_X2Eenc_params_X28_X7B), - /* K6 */ be_const_int(0), - /* K7 */ be_const_int(1), - /* K8 */ be_nested_str_weak(find), - /* K9 */ be_nested_str_weak(_X2C), - /* K10 */ be_nested_str_weak(), - /* K11 */ be_nested_str_weak(instance), - /* K12 */ be_nested_str_weak(map), - /* K13 */ be_nested_str_weak(contains), - /* K14 */ be_nested_str_weak(type), - /* K15 */ be_nested_str_weak(push), - /* K16 */ be_nested_str_weak(_X22type_X22_X3A_X20_X22_X25s_X22), - /* K17 */ be_nested_str_weak(min), - /* K18 */ be_nested_str_weak(_X22min_X22_X3A_X20_X25s), - /* K19 */ be_nested_str_weak(max), - /* K20 */ be_nested_str_weak(_X22max_X22_X3A_X20_X25s), - /* K21 */ be_nested_str_weak(default), - /* K22 */ be_nested_str_weak(_X22default_X22_X3A_X20_X25s), - /* K23 */ be_nested_str_weak(nillable), - /* K24 */ be_nested_str_weak(_X22nillable_X22_X3A_X20_X25s), - /* K25 */ be_nested_str_weak(_X2C_X20), - /* K26 */ be_nested_str_weak(stop_iteration), - /* K27 */ be_nested_str_weak(_X20_X20_X20_X20_X22_X25s_X22_X3A_X20_X7B_X25s_X7D_X25s), - /* K28 */ be_nested_str_weak(_X20_X20_X20_X20_X22_X25s_X22_X3A_X20_X7B_X22type_X22_X3A_X20_X22_X25s_X22_X7D_X25s), - /* K29 */ be_nested_str_weak(_X20_X20_X20_X20_X22_X25s_X22_X3A_X20_X7B_X7D_X25s), - /* K30 */ be_nested_str_weak(_X20_X20_X7D_X29), - /* K31 */ be_nested_str_weak(_X20_X20_X23_X20Template_X20setup_X20method_X20_X2D_X20overrides_X20EngineProxy_X20placeholder), - /* K32 */ be_nested_str_weak(_X20_X20def_X20setup_template_X28_X29), - /* K33 */ be_nested_str_weak(_X20_X20_X20_X20var_X20engine_X20_X3D_X20self_X20_X20_X20_X23_X20using_X20_X27self_X27_X20as_X20a_X20proxy_X20to_X20engine_X20object_X20_X28instead_X20of_X20_X27self_X2Eengine_X27_X29), - /* K34 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K35 */ be_nested_str_weak(pull_lexer), - /* K36 */ be_nested_str_weak(symbol_table), - /* K37 */ be_nested_str_weak(_symbol_table), - /* K38 */ be_nested_str_weak(strip_initialized), - /* K39 */ be_nested_str_weak(indent_level), - /* K40 */ be_const_int(2), - /* K41 */ be_nested_str_weak(template_animation_params), - /* K42 */ be_nested_str_weak(_add_inherited_params_to_template), - /* K43 */ be_nested_str_weak(_add_typed_parameter_to_symbol_table), - /* K44 */ be_nested_str_weak(create_variable), - /* K45 */ be_nested_str_weak(transpile_template_animation_body), - /* K46 */ be_nested_str_weak(split), - /* K47 */ be_nested_str_weak(_X0A), - /* K48 */ be_nested_str_weak(_X20_X20_X20_X20_X25s), - /* K49 */ be_nested_str_weak(_validate_template_parameter_usage), - /* K50 */ be_nested_str_weak(errors), - /* K51 */ be_nested_str_weak(error), - /* K52 */ be_nested_str_weak(Template_X20animation_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), - /* K53 */ be_nested_str_weak(expect_right_brace), - /* K54 */ be_nested_str_weak(_X20_X20end), - /* K55 */ be_nested_str_weak(end), + ( &(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(generate_template_animation_class), + be_str_weak(transpile), &be_const_str_solidified, - ( &(const binstruction[320]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0xA4160200, // 0001 IMPORT R5 K1 - 0x8C180102, // 0002 GETMET R6 R0 K2 - 0x60200018, // 0003 GETGBL R8 G24 - 0x58240003, // 0004 LDCONST R9 K3 - 0x5C280200, // 0005 MOVE R10 R1 - 0x7C200400, // 0006 CALL R8 2 - 0x7C180400, // 0007 CALL R6 2 - 0x8C180102, // 0008 GETMET R6 R0 K2 - 0x60200018, // 0009 GETGBL R8 G24 - 0x58240004, // 000A LDCONST R9 K4 - 0x5C280200, // 000B MOVE R10 R1 - 0x7C200400, // 000C CALL R8 2 - 0x7C180400, // 000D CALL R6 2 - 0x8C180102, // 000E GETMET R6 R0 K2 - 0x58200005, // 000F LDCONST R8 K5 - 0x7C180400, // 0010 CALL R6 2 - 0x60180010, // 0011 GETGBL R6 G16 - 0x601C000C, // 0012 GETGBL R7 G12 - 0x5C200400, // 0013 MOVE R8 R2 - 0x7C1C0200, // 0014 CALL R7 1 - 0x041C0F07, // 0015 SUB R7 R7 K7 - 0x401E0C07, // 0016 CONNECT R7 K6 R7 - 0x7C180200, // 0017 CALL R6 1 - 0xA8020081, // 0018 EXBLK 0 #009B - 0x5C1C0C00, // 0019 MOVE R7 R6 - 0x7C1C0000, // 001A CALL R7 0 - 0x94200407, // 001B GETIDX R8 R2 R7 - 0x8C240708, // 001C GETMET R9 R3 K8 - 0x5C2C1000, // 001D MOVE R11 R8 - 0x7C240400, // 001E CALL R9 2 - 0x6028000C, // 001F GETGBL R10 G12 - 0x5C2C0400, // 0020 MOVE R11 R2 - 0x7C280200, // 0021 CALL R10 1 - 0x04281507, // 0022 SUB R10 R10 K7 - 0x14280E0A, // 0023 LT R10 R7 R10 - 0x782A0001, // 0024 JMPF R10 #0027 - 0x58280009, // 0025 LDCONST R10 K9 - 0x70020000, // 0026 JMP #0028 - 0x5828000A, // 0027 LDCONST R10 K10 - 0x4C2C0000, // 0028 LDNIL R11 - 0x202C120B, // 0029 NE R11 R9 R11 - 0x782E0067, // 002A JMPF R11 #0093 - 0x602C0004, // 002B GETGBL R11 G4 - 0x5C301200, // 002C MOVE R12 R9 - 0x7C2C0200, // 002D CALL R11 1 - 0x1C2C170B, // 002E EQ R11 R11 K11 - 0x782E0059, // 002F JMPF R11 #008A - 0x602C0005, // 0030 GETGBL R11 G5 - 0x5C301200, // 0031 MOVE R12 R9 - 0x7C2C0200, // 0032 CALL R11 1 - 0x1C2C170C, // 0033 EQ R11 R11 K12 - 0x782E0054, // 0034 JMPF R11 #008A - 0x602C0012, // 0035 GETGBL R11 G18 - 0x7C2C0000, // 0036 CALL R11 0 - 0x8C30130D, // 0037 GETMET R12 R9 K13 - 0x5838000E, // 0038 LDCONST R14 K14 - 0x7C300400, // 0039 CALL R12 2 - 0x78320005, // 003A JMPF R12 #0041 - 0x8C30170F, // 003B GETMET R12 R11 K15 - 0x60380018, // 003C GETGBL R14 G24 - 0x583C0010, // 003D LDCONST R15 K16 - 0x9440130E, // 003E GETIDX R16 R9 K14 - 0x7C380400, // 003F CALL R14 2 - 0x7C300400, // 0040 CALL R12 2 - 0x8C30130D, // 0041 GETMET R12 R9 K13 - 0x58380011, // 0042 LDCONST R14 K17 - 0x7C300400, // 0043 CALL R12 2 - 0x78320005, // 0044 JMPF R12 #004B - 0x8C30170F, // 0045 GETMET R12 R11 K15 - 0x60380018, // 0046 GETGBL R14 G24 - 0x583C0012, // 0047 LDCONST R15 K18 - 0x94401311, // 0048 GETIDX R16 R9 K17 - 0x7C380400, // 0049 CALL R14 2 - 0x7C300400, // 004A CALL R12 2 - 0x8C30130D, // 004B GETMET R12 R9 K13 - 0x58380013, // 004C LDCONST R14 K19 - 0x7C300400, // 004D CALL R12 2 - 0x78320005, // 004E JMPF R12 #0055 - 0x8C30170F, // 004F GETMET R12 R11 K15 - 0x60380018, // 0050 GETGBL R14 G24 - 0x583C0014, // 0051 LDCONST R15 K20 - 0x94401313, // 0052 GETIDX R16 R9 K19 - 0x7C380400, // 0053 CALL R14 2 - 0x7C300400, // 0054 CALL R12 2 - 0x8C30130D, // 0055 GETMET R12 R9 K13 - 0x58380015, // 0056 LDCONST R14 K21 - 0x7C300400, // 0057 CALL R12 2 - 0x78320005, // 0058 JMPF R12 #005F - 0x8C30170F, // 0059 GETMET R12 R11 K15 - 0x60380018, // 005A GETGBL R14 G24 - 0x583C0016, // 005B LDCONST R15 K22 - 0x94401315, // 005C GETIDX R16 R9 K21 - 0x7C380400, // 005D CALL R14 2 - 0x7C300400, // 005E CALL R12 2 - 0x8C30130D, // 005F GETMET R12 R9 K13 - 0x58380017, // 0060 LDCONST R14 K23 - 0x7C300400, // 0061 CALL R12 2 - 0x78320005, // 0062 JMPF R12 #0069 - 0x8C30170F, // 0063 GETMET R12 R11 K15 - 0x60380018, // 0064 GETGBL R14 G24 - 0x583C0018, // 0065 LDCONST R15 K24 - 0x94401317, // 0066 GETIDX R16 R9 K23 - 0x7C380400, // 0067 CALL R14 2 - 0x7C300400, // 0068 CALL R12 2 - 0x5830000A, // 0069 LDCONST R12 K10 - 0x60340010, // 006A GETGBL R13 G16 - 0x6038000C, // 006B GETGBL R14 G12 - 0x5C3C1600, // 006C MOVE R15 R11 - 0x7C380200, // 006D CALL R14 1 - 0x04381D07, // 006E SUB R14 R14 K7 - 0x403A0C0E, // 006F CONNECT R14 K6 R14 - 0x7C340200, // 0070 CALL R13 1 - 0xA802000B, // 0071 EXBLK 0 #007E - 0x5C381A00, // 0072 MOVE R14 R13 - 0x7C380000, // 0073 CALL R14 0 - 0x943C160E, // 0074 GETIDX R15 R11 R14 - 0x0030180F, // 0075 ADD R12 R12 R15 - 0x603C000C, // 0076 GETGBL R15 G12 - 0x5C401600, // 0077 MOVE R16 R11 - 0x7C3C0200, // 0078 CALL R15 1 - 0x043C1F07, // 0079 SUB R15 R15 K7 - 0x143C1C0F, // 007A LT R15 R14 R15 - 0x783E0000, // 007B JMPF R15 #007D - 0x00301919, // 007C ADD R12 R12 K25 - 0x7001FFF3, // 007D JMP #0072 - 0x5834001A, // 007E LDCONST R13 K26 - 0xAC340200, // 007F CATCH R13 1 0 - 0xB0080000, // 0080 RAISE 2 R0 R0 - 0x8C340102, // 0081 GETMET R13 R0 K2 - 0x603C0018, // 0082 GETGBL R15 G24 - 0x5840001B, // 0083 LDCONST R16 K27 - 0x5C441000, // 0084 MOVE R17 R8 - 0x5C481800, // 0085 MOVE R18 R12 - 0x5C4C1400, // 0086 MOVE R19 R10 - 0x7C3C0800, // 0087 CALL R15 4 - 0x7C340400, // 0088 CALL R13 2 - 0x70020007, // 0089 JMP #0092 - 0x8C2C0102, // 008A GETMET R11 R0 K2 - 0x60340018, // 008B GETGBL R13 G24 - 0x5838001C, // 008C LDCONST R14 K28 - 0x5C3C1000, // 008D MOVE R15 R8 - 0x5C401200, // 008E MOVE R16 R9 - 0x5C441400, // 008F MOVE R17 R10 - 0x7C340800, // 0090 CALL R13 4 - 0x7C2C0400, // 0091 CALL R11 2 - 0x70020006, // 0092 JMP #009A - 0x8C2C0102, // 0093 GETMET R11 R0 K2 - 0x60340018, // 0094 GETGBL R13 G24 - 0x5838001D, // 0095 LDCONST R14 K29 - 0x5C3C1000, // 0096 MOVE R15 R8 - 0x5C401400, // 0097 MOVE R16 R10 - 0x7C340600, // 0098 CALL R13 3 - 0x7C2C0400, // 0099 CALL R11 2 - 0x7001FF7D, // 009A JMP #0019 - 0x5818001A, // 009B LDCONST R6 K26 - 0xAC180200, // 009C CATCH R6 1 0 - 0xB0080000, // 009D RAISE 2 R0 R0 - 0x8C180102, // 009E GETMET R6 R0 K2 - 0x5820001E, // 009F LDCONST R8 K30 - 0x7C180400, // 00A0 CALL R6 2 - 0x8C180102, // 00A1 GETMET R6 R0 K2 - 0x5820000A, // 00A2 LDCONST R8 K10 - 0x7C180400, // 00A3 CALL R6 2 - 0x8C180102, // 00A4 GETMET R6 R0 K2 - 0x5820001F, // 00A5 LDCONST R8 K31 - 0x7C180400, // 00A6 CALL R6 2 - 0x8C180102, // 00A7 GETMET R6 R0 K2 - 0x58200020, // 00A8 LDCONST R8 K32 - 0x7C180400, // 00A9 CALL R6 2 - 0x8C180102, // 00AA GETMET R6 R0 K2 - 0x58200021, // 00AB LDCONST R8 K33 - 0x7C180400, // 00AC CALL R6 2 - 0x8C180102, // 00AD GETMET R6 R0 K2 - 0x5820000A, // 00AE LDCONST R8 K10 - 0x7C180400, // 00AF CALL R6 2 - 0x8C180922, // 00B0 GETMET R6 R4 K34 - 0x88200123, // 00B1 GETMBR R8 R0 K35 - 0x7C180400, // 00B2 CALL R6 2 - 0x8C1C0925, // 00B3 GETMET R7 R4 K37 - 0x7C1C0200, // 00B4 CALL R7 1 - 0x901A4807, // 00B5 SETMBR R6 K36 R7 - 0x501C0200, // 00B6 LDBOOL R7 1 0 - 0x901A4C07, // 00B7 SETMBR R6 K38 R7 - 0x901A4F28, // 00B8 SETMBR R6 K39 K40 - 0x601C0013, // 00B9 GETGBL R7 G19 - 0x7C1C0000, // 00BA CALL R7 0 - 0x901A5207, // 00BB SETMBR R6 K41 R7 - 0x601C0010, // 00BC GETGBL R7 G16 - 0x5C200400, // 00BD MOVE R8 R2 - 0x7C1C0200, // 00BE CALL R7 1 - 0xA8020005, // 00BF EXBLK 0 #00C6 - 0x5C200E00, // 00C0 MOVE R8 R7 - 0x7C200000, // 00C1 CALL R8 0 - 0x88240D29, // 00C2 GETMBR R9 R6 K41 - 0x50280200, // 00C3 LDBOOL R10 1 0 - 0x9824100A, // 00C4 SETIDX R9 R8 R10 - 0x7001FFF9, // 00C5 JMP #00C0 - 0x581C001A, // 00C6 LDCONST R7 K26 - 0xAC1C0200, // 00C7 CATCH R7 1 0 - 0xB0080000, // 00C8 RAISE 2 R0 R0 - 0x8C1C012A, // 00C9 GETMET R7 R0 K42 - 0x88240D29, // 00CA GETMBR R9 R6 K41 - 0x7C1C0400, // 00CB CALL R7 2 - 0x601C0010, // 00CC GETGBL R7 G16 - 0x5C200400, // 00CD MOVE R8 R2 - 0x7C1C0200, // 00CE CALL R7 1 - 0xA802002B, // 00CF EXBLK 0 #00FC - 0x5C200E00, // 00D0 MOVE R8 R7 - 0x7C200000, // 00D1 CALL R8 0 - 0x8C240708, // 00D2 GETMET R9 R3 K8 - 0x5C2C1000, // 00D3 MOVE R11 R8 - 0x7C240400, // 00D4 CALL R9 2 - 0x4C280000, // 00D5 LDNIL R10 - 0x2028120A, // 00D6 NE R10 R9 R10 - 0x782A001E, // 00D7 JMPF R10 #00F7 - 0x4C280000, // 00D8 LDNIL R10 - 0x602C0004, // 00D9 GETGBL R11 G4 - 0x5C301200, // 00DA MOVE R12 R9 - 0x7C2C0200, // 00DB CALL R11 1 - 0x1C2C170B, // 00DC EQ R11 R11 K11 - 0x782E0009, // 00DD JMPF R11 #00E8 - 0x602C0005, // 00DE GETGBL R11 G5 - 0x5C301200, // 00DF MOVE R12 R9 - 0x7C2C0200, // 00E0 CALL R11 1 - 0x1C2C170C, // 00E1 EQ R11 R11 K12 - 0x782E0004, // 00E2 JMPF R11 #00E8 - 0x8C2C1308, // 00E3 GETMET R11 R9 K8 - 0x5834000E, // 00E4 LDCONST R13 K14 - 0x7C2C0400, // 00E5 CALL R11 2 - 0x5C281600, // 00E6 MOVE R10 R11 - 0x70020000, // 00E7 JMP #00E9 - 0x5C281200, // 00E8 MOVE R10 R9 - 0x4C2C0000, // 00E9 LDNIL R11 - 0x202C140B, // 00EA NE R11 R10 R11 - 0x782E0005, // 00EB JMPF R11 #00F2 - 0x8C2C012B, // 00EC GETMET R11 R0 K43 - 0x88340D24, // 00ED GETMBR R13 R6 K36 - 0x5C381000, // 00EE MOVE R14 R8 - 0x5C3C1400, // 00EF MOVE R15 R10 - 0x7C2C0800, // 00F0 CALL R11 4 - 0x70020003, // 00F1 JMP #00F6 - 0x882C0D24, // 00F2 GETMBR R11 R6 K36 - 0x8C2C172C, // 00F3 GETMET R11 R11 K44 - 0x5C341000, // 00F4 MOVE R13 R8 - 0x7C2C0400, // 00F5 CALL R11 2 - 0x70020003, // 00F6 JMP #00FB - 0x88280D24, // 00F7 GETMBR R10 R6 K36 - 0x8C28152C, // 00F8 GETMET R10 R10 K44 - 0x5C301000, // 00F9 MOVE R12 R8 - 0x7C280400, // 00FA CALL R10 2 - 0x7001FFD3, // 00FB JMP #00D0 - 0x581C001A, // 00FC LDCONST R7 K26 - 0xAC1C0200, // 00FD CATCH R7 1 0 - 0xB0080000, // 00FE RAISE 2 R0 R0 - 0x8C1C0D2D, // 00FF GETMET R7 R6 K45 - 0x7C1C0200, // 0100 CALL R7 1 - 0x4C200000, // 0101 LDNIL R8 - 0x20200E08, // 0102 NE R8 R7 R8 - 0x7822001E, // 0103 JMPF R8 #0123 - 0x8C200B2E, // 0104 GETMET R8 R5 K46 - 0x5C280E00, // 0105 MOVE R10 R7 - 0x582C002F, // 0106 LDCONST R11 K47 - 0x7C200600, // 0107 CALL R8 3 - 0x60240010, // 0108 GETGBL R9 G16 - 0x5C281000, // 0109 MOVE R10 R8 - 0x7C240200, // 010A CALL R9 1 - 0xA802000D, // 010B EXBLK 0 #011A - 0x5C281200, // 010C MOVE R10 R9 - 0x7C280000, // 010D CALL R10 0 - 0x602C000C, // 010E GETGBL R11 G12 - 0x5C301400, // 010F MOVE R12 R10 - 0x7C2C0200, // 0110 CALL R11 1 - 0x242C1706, // 0111 GT R11 R11 K6 - 0x782E0005, // 0112 JMPF R11 #0119 - 0x8C2C0102, // 0113 GETMET R11 R0 K2 - 0x60340018, // 0114 GETGBL R13 G24 - 0x58380030, // 0115 LDCONST R14 K48 - 0x5C3C1400, // 0116 MOVE R15 R10 - 0x7C340400, // 0117 CALL R13 2 - 0x7C2C0400, // 0118 CALL R11 2 - 0x7001FFF1, // 0119 JMP #010C - 0x5824001A, // 011A LDCONST R9 K26 - 0xAC240200, // 011B CATCH R9 1 0 - 0xB0080000, // 011C RAISE 2 R0 R0 - 0x8C240131, // 011D GETMET R9 R0 K49 - 0x5C2C0200, // 011E MOVE R11 R1 - 0x5C300400, // 011F MOVE R12 R2 - 0x5C340E00, // 0120 MOVE R13 R7 - 0x7C240800, // 0121 CALL R9 4 - 0x70020010, // 0122 JMP #0134 - 0x60200010, // 0123 GETGBL R8 G16 - 0x88240D32, // 0124 GETMBR R9 R6 K50 - 0x7C200200, // 0125 CALL R8 1 - 0xA8020009, // 0126 EXBLK 0 #0131 - 0x5C241000, // 0127 MOVE R9 R8 - 0x7C240000, // 0128 CALL R9 0 - 0x8C280133, // 0129 GETMET R10 R0 K51 - 0x60300018, // 012A GETGBL R12 G24 - 0x58340034, // 012B LDCONST R13 K52 - 0x5C380200, // 012C MOVE R14 R1 - 0x5C3C1200, // 012D MOVE R15 R9 - 0x7C300600, // 012E CALL R12 3 - 0x7C280400, // 012F CALL R10 2 - 0x7001FFF5, // 0130 JMP #0127 - 0x5820001A, // 0131 LDCONST R8 K26 - 0xAC200200, // 0132 CATCH R8 1 0 - 0xB0080000, // 0133 RAISE 2 R0 R0 - 0x8C200135, // 0134 GETMET R8 R0 K53 - 0x7C200200, // 0135 CALL R8 1 - 0x8C200102, // 0136 GETMET R8 R0 K2 - 0x58280036, // 0137 LDCONST R10 K54 - 0x7C200400, // 0138 CALL R8 2 - 0x8C200102, // 0139 GETMET R8 R0 K2 - 0x58280037, // 013A LDCONST R10 K55 - 0x7C200400, // 013B CALL R8 2 - 0x8C200102, // 013C GETMET R8 R0 K2 - 0x5828000A, // 013D LDCONST R10 K10 - 0x7C200400, // 013E CALL R8 2 - 0x80000000, // 013F RET 0 + ( &(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 }) ) ); @@ -15822,6 +11565,1086 @@ be_local_closure(class_SimpleDSLTranspiler_get_symbol_table_report, /* name */ /*******************************************************************/ +/******************************************************************** +** 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[26]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(add), + /* K3 */ be_nested_str_weak(get_indent), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_const_int(0), + /* K7 */ be_nested_str_weak(play), + /* K8 */ be_nested_str_weak(process_play_statement_fluent), + /* K9 */ be_nested_str_weak(wait), + /* K10 */ be_nested_str_weak(process_wait_statement_fluent), + /* K11 */ be_const_int(1), + /* K12 */ be_nested_str_weak(log), + /* K13 */ be_nested_str_weak(process_log_statement_fluent), + /* K14 */ be_nested_str_weak(restart), + /* K15 */ be_nested_str_weak(process_restart_statement_fluent), + /* K16 */ be_nested_str_weak(repeat), + /* K17 */ be_nested_str_weak(process_repeat_statement_fluent), + /* K18 */ be_nested_str_weak(if), + /* K19 */ be_nested_str_weak(process_if_statement_fluent), + /* K20 */ be_nested_str_weak(peek), + /* K21 */ be_nested_str_weak(process_sequence_assignment_fluent), + /* K22 */ be_nested_str_weak(error), + /* K23 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20if_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), + /* K24 */ be_nested_str_weak(skip_statement), + /* K25 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20if_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), + }), + be_str_weak(process_sequence_statement), + &be_const_str_solidified, + ( &(const binstruction[114]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0000, // 0004 JMPF R2 #0006 + 0x80000400, // 0005 RET 0 + 0x88080301, // 0006 GETMBR R2 R1 K1 + 0x540E0024, // 0007 LDINT R3 37 + 0x1C080403, // 0008 EQ R2 R2 R3 + 0x780A0008, // 0009 JMPF R2 #0013 + 0x8C080102, // 000A GETMET R2 R0 K2 + 0x8C100103, // 000B GETMET R4 R0 K3 + 0x7C100200, // 000C CALL R4 1 + 0x88140304, // 000D GETMBR R5 R1 K4 + 0x00100805, // 000E ADD R4 R4 R5 + 0x7C080400, // 000F CALL R2 2 + 0x8C080105, // 0010 GETMET R2 R0 K5 + 0x7C080200, // 0011 CALL R2 1 + 0x80000400, // 0012 RET 0 + 0x88080301, // 0013 GETMBR R2 R1 K1 + 0x540E0022, // 0014 LDINT R3 35 + 0x1C080403, // 0015 EQ R2 R2 R3 + 0x780A0002, // 0016 JMPF R2 #001A + 0x8C080105, // 0017 GETMET R2 R0 K5 + 0x7C080200, // 0018 CALL R2 1 + 0x80000400, // 0019 RET 0 + 0x88080301, // 001A GETMBR R2 R1 K1 + 0x1C080506, // 001B EQ R2 R2 K6 + 0x780A0005, // 001C JMPF R2 #0023 + 0x88080304, // 001D GETMBR R2 R1 K4 + 0x1C080507, // 001E EQ R2 R2 K7 + 0x780A0002, // 001F JMPF R2 #0023 + 0x8C080108, // 0020 GETMET R2 R0 K8 + 0x7C080200, // 0021 CALL R2 1 + 0x7002004D, // 0022 JMP #0071 + 0x88080301, // 0023 GETMBR R2 R1 K1 + 0x1C080506, // 0024 EQ R2 R2 K6 + 0x780A0005, // 0025 JMPF R2 #002C + 0x88080304, // 0026 GETMBR R2 R1 K4 + 0x1C080509, // 0027 EQ R2 R2 K9 + 0x780A0002, // 0028 JMPF R2 #002C + 0x8C08010A, // 0029 GETMET R2 R0 K10 + 0x7C080200, // 002A CALL R2 1 + 0x70020044, // 002B JMP #0071 + 0x88080301, // 002C GETMBR R2 R1 K1 + 0x1C08050B, // 002D EQ R2 R2 K11 + 0x780A0005, // 002E JMPF R2 #0035 + 0x88080304, // 002F GETMBR R2 R1 K4 + 0x1C08050C, // 0030 EQ R2 R2 K12 + 0x780A0002, // 0031 JMPF R2 #0035 + 0x8C08010D, // 0032 GETMET R2 R0 K13 + 0x7C080200, // 0033 CALL R2 1 + 0x7002003B, // 0034 JMP #0071 + 0x88080301, // 0035 GETMBR R2 R1 K1 + 0x1C080506, // 0036 EQ R2 R2 K6 + 0x780A0005, // 0037 JMPF R2 #003E + 0x88080304, // 0038 GETMBR R2 R1 K4 + 0x1C08050E, // 0039 EQ R2 R2 K14 + 0x780A0002, // 003A JMPF R2 #003E + 0x8C08010F, // 003B GETMET R2 R0 K15 + 0x7C080200, // 003C CALL R2 1 + 0x70020032, // 003D JMP #0071 + 0x88080301, // 003E GETMBR R2 R1 K1 + 0x1C080506, // 003F EQ R2 R2 K6 + 0x780A0005, // 0040 JMPF R2 #0047 + 0x88080304, // 0041 GETMBR R2 R1 K4 + 0x1C080510, // 0042 EQ R2 R2 K16 + 0x780A0002, // 0043 JMPF R2 #0047 + 0x8C080111, // 0044 GETMET R2 R0 K17 + 0x7C080200, // 0045 CALL R2 1 + 0x70020029, // 0046 JMP #0071 + 0x88080301, // 0047 GETMBR R2 R1 K1 + 0x1C080506, // 0048 EQ R2 R2 K6 + 0x780A0005, // 0049 JMPF R2 #0050 + 0x88080304, // 004A GETMBR R2 R1 K4 + 0x1C080512, // 004B EQ R2 R2 K18 + 0x780A0002, // 004C JMPF R2 #0050 + 0x8C080113, // 004D GETMET R2 R0 K19 + 0x7C080200, // 004E CALL R2 1 + 0x70020020, // 004F JMP #0071 + 0x88080301, // 0050 GETMBR R2 R1 K1 + 0x1C08050B, // 0051 EQ R2 R2 K11 + 0x780A0016, // 0052 JMPF R2 #006A + 0x8C080114, // 0053 GETMET R2 R0 K20 + 0x7C080200, // 0054 CALL R2 1 + 0x4C0C0000, // 0055 LDNIL R3 + 0x20080403, // 0056 NE R2 R2 R3 + 0x780A0008, // 0057 JMPF R2 #0061 + 0x8C080114, // 0058 GETMET R2 R0 K20 + 0x7C080200, // 0059 CALL R2 1 + 0x88080501, // 005A GETMBR R2 R2 K1 + 0x540E0020, // 005B LDINT R3 33 + 0x1C080403, // 005C EQ R2 R2 R3 + 0x780A0002, // 005D JMPF R2 #0061 + 0x8C080115, // 005E GETMET R2 R0 K21 + 0x7C080200, // 005F CALL R2 1 + 0x70020007, // 0060 JMP #0069 + 0x8C080116, // 0061 GETMET R2 R0 K22 + 0x60100018, // 0062 GETGBL R4 G24 + 0x58140017, // 0063 LDCONST R5 K23 + 0x88180304, // 0064 GETMBR R6 R1 K4 + 0x7C100400, // 0065 CALL R4 2 + 0x7C080400, // 0066 CALL R2 2 + 0x8C080118, // 0067 GETMET R2 R0 K24 + 0x7C080200, // 0068 CALL R2 1 + 0x70020006, // 0069 JMP #0071 + 0x8C080116, // 006A GETMET R2 R0 K22 + 0x60100018, // 006B GETGBL R4 G24 + 0x58140019, // 006C LDCONST R5 K25 + 0x7C100200, // 006D CALL R4 1 + 0x7C080400, // 006E CALL R2 2 + 0x8C080118, // 006F GETMET R2 R0 K24 + 0x7C080200, // 0070 CALL R2 1 + 0x80000000, // 0071 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[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + }), + be_str_weak(check_right_brace), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001A, // 0006 LDINT R3 27 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0000, // 0008 JMPT R2 #000A + 0x50080001, // 0009 LDBOOL R2 0 1 + 0x50080200, // 000A LDBOOL R2 1 0 + 0x80040400, // 000B RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_parameter_name +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_name, /* 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[38]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(error), + /* K3 */ be_nested_str_weak(Duplicate_X20parameter_X20name_X20_X27_X25s_X27_X20in_X20template_X2E_X20Each_X20parameter_X20must_X20have_X20a_X20unique_X20name_X2E), + /* K4 */ be_nested_str_weak(engine), + /* K5 */ be_nested_str_weak(self), + /* K6 */ be_nested_str_weak(animation), + /* K7 */ be_nested_str_weak(color), + /* K8 */ be_nested_str_weak(palette), + /* K9 */ be_nested_str_weak(sequence), + /* K10 */ be_nested_str_weak(template), + /* K11 */ be_nested_str_weak(import), + /* K12 */ be_nested_str_weak(def), + /* K13 */ be_nested_str_weak(end), + /* K14 */ be_nested_str_weak(class), + /* K15 */ be_nested_str_weak(var), + /* K16 */ be_nested_str_weak(if), + /* K17 */ be_nested_str_weak(else), + /* K18 */ be_nested_str_weak(while), + /* K19 */ be_nested_str_weak(for), + /* K20 */ be_nested_str_weak(true), + /* K21 */ be_nested_str_weak(false), + /* K22 */ be_nested_str_weak(nil), + /* K23 */ be_nested_str_weak(return), + /* K24 */ be_nested_str_weak(break), + /* K25 */ be_nested_str_weak(continue), + /* K26 */ 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), + /* K27 */ be_nested_str_weak(stop_iteration), + /* 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), + /* K30 */ be_nested_str_weak(name), + /* K31 */ be_nested_str_weak(is_running), + /* K32 */ be_nested_str_weak(priority), + /* K33 */ be_nested_str_weak(duration), + /* K34 */ be_nested_str_weak(loop), + /* K35 */ be_nested_str_weak(opacity), + /* K36 */ be_nested_str_weak(warning), + /* K37 */ be_nested_str_weak(Template_X20animation_X20parameter_X20_X27_X25s_X27_X20masks_X20existing_X20parameter_X20from_X20EngineProxy_X20base_X20class_X2E_X20This_X20may_X20cause_X20unexpected_X20behavior_X2E_X20Consider_X20using_X20a_X20different_X20name_X20like_X20_X27custom__X25s_X27_X20or_X20_X27_X25s_value_X27_X2E), + }), + be_str_weak(_validate_template_parameter_name), + &be_const_str_solidified, + ( &(const binstruction[109]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x8C140501, // 0001 GETMET R5 R2 K1 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x7C140400, // 0003 CALL R5 2 + 0x78160007, // 0004 JMPF R5 #000D + 0x8C140102, // 0005 GETMET R5 R0 K2 + 0x601C0018, // 0006 GETGBL R7 G24 + 0x58200003, // 0007 LDCONST R8 K3 + 0x5C240200, // 0008 MOVE R9 R1 + 0x7C1C0400, // 0009 CALL R7 2 + 0x7C140400, // 000A CALL R5 2 + 0x50140000, // 000B LDBOOL R5 0 0 + 0x80040A00, // 000C RET 1 R5 + 0x60140012, // 000D GETGBL R5 G18 + 0x7C140000, // 000E CALL R5 0 + 0x40180B04, // 000F CONNECT R6 R5 K4 + 0x40180B05, // 0010 CONNECT R6 R5 K5 + 0x40180B06, // 0011 CONNECT R6 R5 K6 + 0x40180B07, // 0012 CONNECT R6 R5 K7 + 0x40180B08, // 0013 CONNECT R6 R5 K8 + 0x40180B09, // 0014 CONNECT R6 R5 K9 + 0x40180B0A, // 0015 CONNECT R6 R5 K10 + 0x40180B0B, // 0016 CONNECT R6 R5 K11 + 0x40180B0C, // 0017 CONNECT R6 R5 K12 + 0x40180B0D, // 0018 CONNECT R6 R5 K13 + 0x40180B0E, // 0019 CONNECT R6 R5 K14 + 0x40180B0F, // 001A CONNECT R6 R5 K15 + 0x40180B10, // 001B CONNECT R6 R5 K16 + 0x40180B11, // 001C CONNECT R6 R5 K17 + 0x40180B12, // 001D CONNECT R6 R5 K18 + 0x40180B13, // 001E CONNECT R6 R5 K19 + 0x40180B14, // 001F CONNECT R6 R5 K20 + 0x40180B15, // 0020 CONNECT R6 R5 K21 + 0x40180B16, // 0021 CONNECT R6 R5 K22 + 0x40180B17, // 0022 CONNECT R6 R5 K23 + 0x40180B18, // 0023 CONNECT R6 R5 K24 + 0x40180B19, // 0024 CONNECT R6 R5 K25 + 0x60180010, // 0025 GETGBL R6 G16 + 0x5C1C0A00, // 0026 MOVE R7 R5 + 0x7C180200, // 0027 CALL R6 1 + 0xA802000F, // 0028 EXBLK 0 #0039 + 0x5C1C0C00, // 0029 MOVE R7 R6 + 0x7C1C0000, // 002A CALL R7 0 + 0x1C200207, // 002B EQ R8 R1 R7 + 0x7822000A, // 002C JMPF R8 #0038 + 0x8C200102, // 002D GETMET R8 R0 K2 + 0x60280018, // 002E GETGBL R10 G24 + 0x582C001A, // 002F LDCONST R11 K26 + 0x5C300200, // 0030 MOVE R12 R1 + 0x5C340200, // 0031 MOVE R13 R1 + 0x5C380200, // 0032 MOVE R14 R1 + 0x7C280800, // 0033 CALL R10 4 + 0x7C200400, // 0034 CALL R8 2 + 0x50200000, // 0035 LDBOOL R8 0 0 + 0xA8040001, // 0036 EXBLK 1 1 + 0x80041000, // 0037 RET 1 R8 + 0x7001FFEF, // 0038 JMP #0029 + 0x5818001B, // 0039 LDCONST R6 K27 + 0xAC180200, // 003A CATCH R6 1 0 + 0xB0080000, // 003B RAISE 2 R0 R0 + 0x8C18091C, // 003C GETMET R6 R4 K28 + 0x5C200200, // 003D MOVE R8 R1 + 0x7C180400, // 003E CALL R6 2 + 0x781A0009, // 003F JMPF R6 #004A + 0x8C180102, // 0040 GETMET R6 R0 K2 + 0x60200018, // 0041 GETGBL R8 G24 + 0x5824001D, // 0042 LDCONST R9 K29 + 0x5C280200, // 0043 MOVE R10 R1 + 0x5C2C0200, // 0044 MOVE R11 R1 + 0x5C300200, // 0045 MOVE R12 R1 + 0x7C200800, // 0046 CALL R8 4 + 0x7C180400, // 0047 CALL R6 2 + 0x50180000, // 0048 LDBOOL R6 0 0 + 0x80040C00, // 0049 RET 1 R6 + 0x780E001F, // 004A JMPF R3 #006B + 0x60180012, // 004B GETGBL R6 G18 + 0x7C180000, // 004C CALL R6 0 + 0x401C0D1E, // 004D CONNECT R7 R6 K30 + 0x401C0D1F, // 004E CONNECT R7 R6 K31 + 0x401C0D20, // 004F CONNECT R7 R6 K32 + 0x401C0D21, // 0050 CONNECT R7 R6 K33 + 0x401C0D22, // 0051 CONNECT R7 R6 K34 + 0x401C0D23, // 0052 CONNECT R7 R6 K35 + 0x401C0D07, // 0053 CONNECT R7 R6 K7 + 0x601C0010, // 0054 GETGBL R7 G16 + 0x5C200C00, // 0055 MOVE R8 R6 + 0x7C1C0200, // 0056 CALL R7 1 + 0xA802000F, // 0057 EXBLK 0 #0068 + 0x5C200E00, // 0058 MOVE R8 R7 + 0x7C200000, // 0059 CALL R8 0 + 0x1C240208, // 005A EQ R9 R1 R8 + 0x78260008, // 005B JMPF R9 #0065 + 0x8C240124, // 005C GETMET R9 R0 K36 + 0x602C0018, // 005D GETGBL R11 G24 + 0x58300025, // 005E LDCONST R12 K37 + 0x5C340200, // 005F MOVE R13 R1 + 0x5C380200, // 0060 MOVE R14 R1 + 0x5C3C0200, // 0061 MOVE R15 R1 + 0x7C2C0800, // 0062 CALL R11 4 + 0x7C240400, // 0063 CALL R9 2 + 0x70020000, // 0064 JMP #0066 + 0x7001FFF1, // 0065 JMP #0058 + 0xA8040001, // 0066 EXBLK 1 1 + 0x70020002, // 0067 JMP #006B + 0x581C001B, // 0068 LDCONST R7 K27 + 0xAC1C0200, // 0069 CATCH R7 1 0 + 0xB0080000, // 006A RAISE 2 R0 R0 + 0x50180200, // 006B LDBOOL R6 1 0 + 0x80040C00, // 006C RET 1 R6 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_for_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* 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_ANIMATION), + }), + be_str_weak(_process_named_arguments_for_animation), + &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_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: _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[17]) { /* 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(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), + }), + be_str_weak(_process_parameters_core), + &be_const_str_solidified, + ( &(const binstruction[102]) { /* 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 + 0x741A0059, // 000A JMPT R6 #0065 + 0x8C180103, // 000B GETMET R6 R0 K3 + 0x7C180200, // 000C CALL R6 1 + 0x741A0056, // 000D JMPT R6 #0065 + 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 + 0x70020050, // 0013 JMP #0065 + 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 + 0x7426000D, // 002E JMPT R9 #003D + 0x8C24010C, // 002F GETMET R9 R0 K12 + 0x7C240200, // 0030 CALL R9 1 + 0x4C280000, // 0031 LDNIL R10 + 0x2028120A, // 0032 NE R10 R9 R10 + 0x782A0006, // 0033 JMPF R10 #003B + 0x8828130D, // 0034 GETMBR R10 R9 K13 + 0x542E0024, // 0035 LDINT R11 37 + 0x1C28140B, // 0036 EQ R10 R10 R11 + 0x782A0002, // 0037 JMPF R10 #003B + 0x8C28010E, // 0038 GETMET R10 R0 K14 + 0x7C280200, // 0039 CALL R10 1 + 0x70020000, // 003A JMP #003C + 0x70020000, // 003B JMP #003D + 0x7001FFEE, // 003C JMP #002C + 0x8C24010C, // 003D GETMET R9 R0 K12 + 0x7C240200, // 003E CALL R9 1 + 0x4C280000, // 003F LDNIL R10 + 0x2024120A, // 0040 NE R9 R9 R10 + 0x7826000A, // 0041 JMPF R9 #004D + 0x8C24010C, // 0042 GETMET R9 R0 K12 + 0x7C240200, // 0043 CALL R9 1 + 0x8824130D, // 0044 GETMBR R9 R9 K13 + 0x542A001D, // 0045 LDINT R10 30 + 0x1C24120A, // 0046 EQ R9 R9 R10 + 0x78260004, // 0047 JMPF R9 #004D + 0x8C24010E, // 0048 GETMET R9 R0 K14 + 0x7C240200, // 0049 CALL R9 1 + 0x8C240104, // 004A GETMET R9 R0 K4 + 0x7C240200, // 004B CALL R9 1 + 0x70020016, // 004C JMP #0064 + 0x8C24010C, // 004D GETMET R9 R0 K12 + 0x7C240200, // 004E CALL R9 1 + 0x4C280000, // 004F LDNIL R10 + 0x2024120A, // 0050 NE R9 R9 R10 + 0x7826000A, // 0051 JMPF R9 #005D + 0x8C24010C, // 0052 GETMET R9 R0 K12 + 0x7C240200, // 0053 CALL R9 1 + 0x8824130D, // 0054 GETMBR R9 R9 K13 + 0x542A0022, // 0055 LDINT R10 35 + 0x1C24120A, // 0056 EQ R9 R9 R10 + 0x78260004, // 0057 JMPF R9 #005D + 0x8C24010E, // 0058 GETMET R9 R0 K14 + 0x7C240200, // 0059 CALL R9 1 + 0x8C240104, // 005A GETMET R9 R0 K4 + 0x7C240200, // 005B CALL R9 1 + 0x70020006, // 005C JMP #0064 + 0x8C240103, // 005D GETMET R9 R0 K3 + 0x7C240200, // 005E CALL R9 1 + 0x74260003, // 005F JMPT R9 #0064 + 0x8C24010F, // 0060 GETMET R9 R0 K15 + 0x582C0010, // 0061 LDCONST R11 K16 + 0x7C240400, // 0062 CALL R9 2 + 0x70020000, // 0063 JMP #0065 + 0x7001FFA2, // 0064 JMP #0008 + 0x80000000, // 0065 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: current +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_current, /* 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(pull_lexer), + /* K1 */ be_nested_str_weak(peek_token), + }), + be_str_weak(current), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_nested_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 10, /* nstack */ + 3, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 4), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(push), + /* K1 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), + }), + be_str_weak(_anonymous_), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x680C0000, // 0000 GETUPV R3 U0 + 0x8C0C0700, // 0001 GETMET R3 R3 K0 + 0x60140018, // 0002 GETGBL R5 G24 + 0x58180001, // 0003 LDCONST R6 K1 + 0x5C1C0000, // 0004 MOVE R7 R0 + 0x5C200200, // 0005 MOVE R8 R1 + 0x5C240400, // 0006 MOVE R9 R2 + 0x7C140800, // 0007 CALL R5 4 + 0x7C0C0400, // 0008 CALL R3 2 + 0x80000000, // 0009 RET 0 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[32]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(1), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20function_X20name), + /* K9 */ be_nested_str_weak(nil), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(get), + /* K12 */ be_nested_str_weak(process_function_arguments), + /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K14 */ be_nested_str_weak(get_reference), + /* K15 */ be_nested_str_weak(log), + /* K16 */ be_nested_str_weak(process_log_call), + /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K19 */ be_nested_str_weak(engine), + /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K21 */ be_nested_str_weak(_validate_animation_factory_exists), + /* K22 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K23 */ be_nested_str_weak(skip_function_arguments), + /* K24 */ be_nested_str_weak(expect_left_paren), + /* K25 */ be_nested_str_weak(_process_parameters_core), + /* K26 */ be_nested_str_weak(generic), + /* K27 */ be_nested_str_weak(expect_right_paren), + /* K28 */ be_nested_str_weak(_X0A), + /* K29 */ be_nested_str_weak(stop_iteration), + /* K30 */ be_nested_str_weak(_X28def_X20_X28engine_X29_X0A_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29_X0A_X25s_X0A_X20_X20return_X20provider_X0Aend_X29_X28engine_X29), + /* K31 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_nested_function_call), + &be_const_str_solidified, + ( &(const binstruction[143]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58080001, // 0002 LDCONST R2 K1 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0203, // 0004 NE R3 R1 R3 + 0x780E0009, // 0005 JMPF R3 #0010 + 0x880C0302, // 0006 GETMBR R3 R1 K2 + 0x1C0C0703, // 0007 EQ R3 R3 K3 + 0x740E0002, // 0008 JMPT R3 #000C + 0x880C0302, // 0009 GETMBR R3 R1 K2 + 0x1C0C0704, // 000A EQ R3 R3 K4 + 0x780E0003, // 000B JMPF R3 #0010 + 0x88080305, // 000C GETMBR R2 R1 K5 + 0x8C0C0106, // 000D GETMET R3 R0 K6 + 0x7C0C0200, // 000E CALL R3 1 + 0x70020003, // 000F JMP #0014 + 0x8C0C0107, // 0010 GETMET R3 R0 K7 + 0x58140008, // 0011 LDCONST R5 K8 + 0x7C0C0400, // 0012 CALL R3 2 + 0x80061200, // 0013 RET 1 K9 + 0x880C010A, // 0014 GETMBR R3 R0 K10 + 0x8C0C070B, // 0015 GETMET R3 R3 K11 + 0x5C140400, // 0016 MOVE R5 R2 + 0x7C0C0400, // 0017 CALL R3 2 + 0x4C100000, // 0018 LDNIL R4 + 0x20100604, // 0019 NE R4 R3 R4 + 0x7812000D, // 001A JMPF R4 #0029 + 0x88100702, // 001B GETMBR R4 R3 K2 + 0x54160003, // 001C LDINT R5 4 + 0x1C100805, // 001D EQ R4 R4 R5 + 0x78120009, // 001E JMPF R4 #0029 + 0x8C10010C, // 001F GETMET R4 R0 K12 + 0x50180200, // 0020 LDBOOL R6 1 0 + 0x7C100400, // 0021 CALL R4 2 + 0x60140018, // 0022 GETGBL R5 G24 + 0x5818000D, // 0023 LDCONST R6 K13 + 0x8C1C070E, // 0024 GETMET R7 R3 K14 + 0x7C1C0200, // 0025 CALL R7 1 + 0x5C200800, // 0026 MOVE R8 R4 + 0x7C140600, // 0027 CALL R5 3 + 0x80040A00, // 0028 RET 1 R5 + 0x1C10050F, // 0029 EQ R4 R2 K15 + 0x78120008, // 002A JMPF R4 #0034 + 0x8C10010C, // 002B GETMET R4 R0 K12 + 0x50180200, // 002C LDBOOL R6 1 0 + 0x7C100400, // 002D CALL R4 2 + 0x8C140110, // 002E GETMET R5 R0 K16 + 0x5C1C0800, // 002F MOVE R7 R4 + 0x88200111, // 0030 GETMBR R8 R0 K17 + 0x58240001, // 0031 LDCONST R9 K1 + 0x7C140800, // 0032 CALL R5 4 + 0x80040A00, // 0033 RET 1 R5 + 0x4C100000, // 0034 LDNIL R4 + 0x20100604, // 0035 NE R4 R3 R4 + 0x78120015, // 0036 JMPF R4 #004D + 0x88100702, // 0037 GETMBR R4 R3 K2 + 0x5416000D, // 0038 LDINT R5 14 + 0x1C100805, // 0039 EQ R4 R4 R5 + 0x78120011, // 003A JMPF R4 #004D + 0x8C10010C, // 003B GETMET R4 R0 K12 + 0x50180200, // 003C LDBOOL R6 1 0 + 0x7C100400, // 003D CALL R4 2 + 0x20140901, // 003E NE R5 R4 K1 + 0x78160004, // 003F JMPF R5 #0045 + 0x60140018, // 0040 GETGBL R5 G24 + 0x58180012, // 0041 LDCONST R6 K18 + 0x5C1C0800, // 0042 MOVE R7 R4 + 0x7C140400, // 0043 CALL R5 2 + 0x70020000, // 0044 JMP #0046 + 0x58140013, // 0045 LDCONST R5 K19 + 0x60180018, // 0046 GETGBL R6 G24 + 0x581C0014, // 0047 LDCONST R7 K20 + 0x5C200400, // 0048 MOVE R8 R2 + 0x5C240A00, // 0049 MOVE R9 R5 + 0x7C180600, // 004A CALL R6 3 + 0x80040C00, // 004B RET 1 R6 + 0x70020040, // 004C JMP #008E + 0x8C100115, // 004D GETMET R4 R0 K21 + 0x5C180400, // 004E MOVE R6 R2 + 0x7C100400, // 004F CALL R4 2 + 0x74120008, // 0050 JMPT R4 #005A + 0x8C100107, // 0051 GETMET R4 R0 K7 + 0x60180018, // 0052 GETGBL R6 G24 + 0x581C0016, // 0053 LDCONST R7 K22 + 0x5C200400, // 0054 MOVE R8 R2 + 0x7C180400, // 0055 CALL R6 2 + 0x7C100400, // 0056 CALL R4 2 + 0x8C100117, // 0057 GETMET R4 R0 K23 + 0x7C100200, // 0058 CALL R4 1 + 0x80061200, // 0059 RET 1 K9 + 0x8C100118, // 005A GETMET R4 R0 K24 + 0x7C100200, // 005B CALL R4 1 + 0x60100012, // 005C GETGBL R4 G18 + 0x7C100000, // 005D CALL R4 0 + 0x84140000, // 005E CLOSURE R5 P0 + 0x8C180119, // 005F GETMET R6 R0 K25 + 0x5C200400, // 0060 MOVE R8 R2 + 0x5824001A, // 0061 LDCONST R9 K26 + 0x5C280A00, // 0062 MOVE R10 R5 + 0x7C180800, // 0063 CALL R6 4 + 0x8C18011B, // 0064 GETMET R6 R0 K27 + 0x7C180200, // 0065 CALL R6 1 + 0x6018000C, // 0066 GETGBL R6 G12 + 0x5C1C0800, // 0067 MOVE R7 R4 + 0x7C180200, // 0068 CALL R6 1 + 0x24180D04, // 0069 GT R6 R6 K4 + 0x781A001B, // 006A JMPF R6 #0087 + 0x58180001, // 006B LDCONST R6 K1 + 0x601C0010, // 006C GETGBL R7 G16 + 0x6020000C, // 006D GETGBL R8 G12 + 0x5C240800, // 006E MOVE R9 R4 + 0x7C200200, // 006F CALL R8 1 + 0x04201103, // 0070 SUB R8 R8 K3 + 0x40220808, // 0071 CONNECT R8 K4 R8 + 0x7C1C0200, // 0072 CALL R7 1 + 0xA8020007, // 0073 EXBLK 0 #007C + 0x5C200E00, // 0074 MOVE R8 R7 + 0x7C200000, // 0075 CALL R8 0 + 0x24241104, // 0076 GT R9 R8 K4 + 0x78260000, // 0077 JMPF R9 #0079 + 0x00180D1C, // 0078 ADD R6 R6 K28 + 0x94240808, // 0079 GETIDX R9 R4 R8 + 0x00180C09, // 007A ADD R6 R6 R9 + 0x7001FFF7, // 007B JMP #0074 + 0x581C001D, // 007C LDCONST R7 K29 + 0xAC1C0200, // 007D CATCH R7 1 0 + 0xB0080000, // 007E RAISE 2 R0 R0 + 0x601C0018, // 007F GETGBL R7 G24 + 0x5820001E, // 0080 LDCONST R8 K30 + 0x5C240400, // 0081 MOVE R9 R2 + 0x5C280C00, // 0082 MOVE R10 R6 + 0x7C1C0600, // 0083 CALL R7 3 + 0xA0000000, // 0084 CLOSE R0 + 0x80040E00, // 0085 RET 1 R7 + 0x70020005, // 0086 JMP #008D + 0x60180018, // 0087 GETGBL R6 G24 + 0x581C001F, // 0088 LDCONST R7 K31 + 0x5C200400, // 0089 MOVE R8 R2 + 0x7C180400, // 008A CALL R6 2 + 0xA0000000, // 008B CLOSE R0 + 0x80040C00, // 008C RET 1 R6 + 0xA0100000, // 008D CLOSE R4 + 0x80000000, // 008E 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: next +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_next, /* 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(pull_lexer), + /* K1 */ be_nested_str_weak(next_token), + }), + be_str_weak(next), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 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[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X7B_X27), + }), + be_str_weak(expect_left_brace), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0019, // 0006 LDINT R3 26 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: at_end +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_at_end, /* 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(pull_lexer), + /* K1 */ be_nested_str_weak(at_end), + }), + be_str_weak(at_end), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: expect_right_paren ********************************************************************/ @@ -15867,6 +12690,1122 @@ be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ /*******************************************************************/ +/******************************************************************** +** 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[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(2), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Expected_X20number), + /* K7 */ be_nested_str_weak(0), + }), + be_str_weak(expect_number), + &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 + 0x780A0007, // 0004 JMPF R2 #000D + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x1C080502, // 0006 EQ R2 R2 K2 + 0x780A0004, // 0007 JMPF R2 #000D + 0x88080303, // 0008 GETMBR R2 R1 K3 + 0x8C0C0104, // 0009 GETMET R3 R0 K4 + 0x7C0C0200, // 000A CALL R3 1 + 0x80040400, // 000B RET 1 R2 + 0x70020003, // 000C JMP #0011 + 0x8C080105, // 000D GETMET R2 R0 K5 + 0x58100006, // 000E LDCONST R4 K6 + 0x7C080400, // 000F CALL R2 2 + 0x80060E00, // 0010 RET 1 K7 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: 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_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[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X2E_X27), + }), + be_str_weak(expect_dot), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0020, // 0006 LDINT R3 33 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: peek +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_peek, /* 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(pull_lexer), + /* K1 */ be_nested_str_weak(peek_ahead), + /* K2 */ be_const_int(2), + }), + be_str_weak(peek), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x580C0002, // 0002 LDCONST R3 K2 + 0x7C040400, // 0003 CALL R1 2 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[10]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(1), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(can_use_as_identifier), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20identifier), + /* K9 */ be_nested_str_weak(unknown), + }), + be_str_weak(expect_identifier), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0012, // 0004 JMPF R2 #0018 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x1C080502, // 0006 EQ R2 R2 K2 + 0x740A000A, // 0007 JMPT R2 #0013 + 0x88080301, // 0008 GETMBR R2 R1 K1 + 0x540E0003, // 0009 LDINT R3 4 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x740A0006, // 000B JMPT R2 #0013 + 0x88080301, // 000C GETMBR R2 R1 K1 + 0x1C080503, // 000D EQ R2 R2 K3 + 0x780A0008, // 000E JMPF R2 #0018 + 0x8C080104, // 000F GETMET R2 R0 K4 + 0x88100305, // 0010 GETMBR R4 R1 K5 + 0x7C080400, // 0011 CALL R2 2 + 0x780A0004, // 0012 JMPF R2 #0018 + 0x88080305, // 0013 GETMBR R2 R1 K5 + 0x8C0C0106, // 0014 GETMET R3 R0 K6 + 0x7C0C0200, // 0015 CALL R3 1 + 0x80040400, // 0016 RET 1 R2 + 0x70020003, // 0017 JMP #001C + 0x8C080107, // 0018 GETMET R2 R0 K7 + 0x58100008, // 0019 LDCONST R4 K8 + 0x7C080400, // 001A CALL R2 2 + 0x80061200, // 001B RET 1 K9 + 0x80000000, // 001C 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: 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[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_const_int(1), + /* K4 */ be_nested_str_weak(at_end), + /* K5 */ be_const_int(0), + }), + be_str_weak(skip_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[36]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20040202, // 0003 NE R1 R1 R2 + 0x7806001D, // 0004 JMPF R1 #0023 + 0x8C040100, // 0005 GETMET R1 R0 K0 + 0x7C040200, // 0006 CALL R1 1 + 0x88040301, // 0007 GETMBR R1 R1 K1 + 0x540A0017, // 0008 LDINT R2 24 + 0x1C040202, // 0009 EQ R1 R1 R2 + 0x78060017, // 000A JMPF R1 #0023 + 0x8C040102, // 000B GETMET R1 R0 K2 + 0x7C040200, // 000C CALL R1 1 + 0x58040003, // 000D LDCONST R1 K3 + 0x8C080104, // 000E GETMET R2 R0 K4 + 0x7C080200, // 000F CALL R2 1 + 0x740A0011, // 0010 JMPT R2 #0023 + 0x24080305, // 0011 GT R2 R1 K5 + 0x780A000F, // 0012 JMPF R2 #0023 + 0x8C080100, // 0013 GETMET R2 R0 K0 + 0x7C080200, // 0014 CALL R2 1 + 0x880C0501, // 0015 GETMBR R3 R2 K1 + 0x54120017, // 0016 LDINT R4 24 + 0x1C0C0604, // 0017 EQ R3 R3 R4 + 0x780E0001, // 0018 JMPF R3 #001B + 0x00040303, // 0019 ADD R1 R1 K3 + 0x70020004, // 001A JMP #0020 + 0x880C0501, // 001B GETMBR R3 R2 K1 + 0x54120018, // 001C LDINT R4 25 + 0x1C0C0604, // 001D EQ R3 R3 R4 + 0x780E0000, // 001E JMPF R3 #0020 + 0x04040303, // 001F SUB R1 R1 K3 + 0x8C0C0102, // 0020 GETMET R3 R0 K2 + 0x7C0C0200, // 0021 CALL R3 1 + 0x7001FFEA, // 0022 JMP #000E + 0x80000000, // 0023 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: _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[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(get), + /* K2 */ be_nested_str_weak(type), + }), + be_str_weak(_validate_color_provider_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* 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 + 0x780E0003, // 0006 JMPF R3 #000B + 0x880C0502, // 0007 GETMBR R3 R2 K2 + 0x54120009, // 0008 LDINT R4 10 + 0x1C0C0604, // 0009 EQ R3 R3 R4 + 0x740E0000, // 000A JMPT R3 #000C + 0x500C0001, // 000B LDBOOL R3 0 1 + 0x500C0200, // 000C LDBOOL R3 1 0 + 0x80040600, // 000D RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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: convert_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_convert_color, /* 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[10]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(string), + /* K2 */ be_nested_str_weak(startswith), + /* K3 */ be_nested_str_weak(0x), + /* K4 */ be_nested_str_weak(0xFF_X25s), + /* K5 */ be_const_int(2), + /* K6 */ be_const_int(2147483647), + /* 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 + 0xA40E0200, // 0001 IMPORT R3 K1 + 0x8C100702, // 0002 GETMET R4 R3 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x581C0003, // 0004 LDCONST R7 K3 + 0x7C100600, // 0005 CALL R4 3 + 0x78120013, // 0006 JMPF R4 #001B + 0x6010000C, // 0007 GETGBL R4 G12 + 0x5C140200, // 0008 MOVE R5 R1 + 0x7C100200, // 0009 CALL R4 1 + 0x54160009, // 000A LDINT R5 10 + 0x1C100805, // 000B EQ R4 R4 R5 + 0x78120001, // 000C JMPF R4 #000F + 0x80040200, // 000D RET 1 R1 + 0x7002000B, // 000E JMP #001B + 0x6010000C, // 000F GETGBL R4 G12 + 0x5C140200, // 0010 MOVE R5 R1 + 0x7C100200, // 0011 CALL R4 1 + 0x54160007, // 0012 LDINT R5 8 + 0x1C100805, // 0013 EQ R4 R4 R5 + 0x78120005, // 0014 JMPF R4 #001B + 0x60100018, // 0015 GETGBL R4 G24 + 0x58140004, // 0016 LDCONST R5 K4 + 0x401A0B06, // 0017 CONNECT R6 K5 K6 + 0x94180206, // 0018 GETIDX R6 R1 R6 + 0x7C100400, // 0019 CALL R4 2 + 0x80040800, // 001A RET 1 R4 + 0x8C100507, // 001B GETMET R4 R2 K7 + 0x5C180200, // 001C MOVE R6 R1 + 0x7C100400, // 001D CALL R4 2 + 0x78120003, // 001E JMPF R4 #0023 + 0x8C100108, // 001F GETMET R4 R0 K8 + 0x5C180200, // 0020 MOVE R6 R1 + 0x7C100400, // 0021 CALL R4 2 + 0x80040800, // 0022 RET 1 R4 + 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_template_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_template_animation, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[23]) { /* 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_X20animation), + /* 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_const_int(0), + /* K12 */ be_nested_str_weak(value), + /* K13 */ be_nested_str_weak(param), + /* K14 */ be_nested_str_weak(_validate_template_parameter_name), + /* K15 */ be_nested_str_weak(_parse_parameter_constraints), + /* K16 */ be_nested_str_weak(push), + /* K17 */ be_nested_str_weak(generate_template_animation_class), + /* K18 */ be_nested_str_weak(params), + /* K19 */ be_nested_str_weak(param_types), + /* K20 */ be_nested_str_weak(symbol_table), + /* K21 */ be_nested_str_weak(create_template), + /* K22 */ be_nested_str_weak(_register_template_animation_constructor), + }), + be_str_weak(process_template_animation), + &be_const_str_solidified, + ( &(const binstruction[110]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040100, // 0002 GETMET R1 R0 K0 + 0x7C040200, // 0003 CALL R1 1 + 0x8C040101, // 0004 GETMET R1 R0 K1 + 0x7C040200, // 0005 CALL R1 1 + 0x8C080102, // 0006 GETMET R2 R0 K2 + 0x5C100200, // 0007 MOVE R4 R1 + 0x58140003, // 0008 LDCONST R5 K3 + 0x7C080600, // 0009 CALL R2 3 + 0x740A0002, // 000A JMPT R2 #000E + 0x8C080104, // 000B GETMET R2 R0 K4 + 0x7C080200, // 000C CALL R2 1 + 0x80000400, // 000D RET 0 + 0x8C080105, // 000E GETMET R2 R0 K5 + 0x7C080200, // 000F CALL R2 1 + 0x60080012, // 0010 GETGBL R2 G18 + 0x7C080000, // 0011 CALL R2 0 + 0x600C0013, // 0012 GETGBL R3 G19 + 0x7C0C0000, // 0013 CALL R3 0 + 0x60100013, // 0014 GETGBL R4 G19 + 0x7C100000, // 0015 CALL R4 0 + 0x8C140106, // 0016 GETMET R5 R0 K6 + 0x7C140200, // 0017 CALL R5 1 + 0x74160040, // 0018 JMPT R5 #005A + 0x8C140107, // 0019 GETMET R5 R0 K7 + 0x7C140200, // 001A CALL R5 1 + 0x7416003D, // 001B JMPT R5 #005A + 0x8C140108, // 001C GETMET R5 R0 K8 + 0x7C140200, // 001D CALL R5 1 + 0x8C140107, // 001E GETMET R5 R0 K7 + 0x7C140200, // 001F CALL R5 1 + 0x78160000, // 0020 JMPF R5 #0022 + 0x70020037, // 0021 JMP #005A + 0x8C140109, // 0022 GETMET R5 R0 K9 + 0x7C140200, // 0023 CALL R5 1 + 0x4C180000, // 0024 LDNIL R6 + 0x20180A06, // 0025 NE R6 R5 R6 + 0x781A0030, // 0026 JMPF R6 #0058 + 0x88180B0A, // 0027 GETMBR R6 R5 K10 + 0x1C180D0B, // 0028 EQ R6 R6 K11 + 0x781A002D, // 0029 JMPF R6 #0058 + 0x88180B0C, // 002A GETMBR R6 R5 K12 + 0x1C180D0D, // 002B EQ R6 R6 K13 + 0x781A002A, // 002C JMPF R6 #0058 + 0x8C180100, // 002D GETMET R6 R0 K0 + 0x7C180200, // 002E CALL R6 1 + 0x8C180101, // 002F GETMET R6 R0 K1 + 0x7C180200, // 0030 CALL R6 1 + 0x8C1C010E, // 0031 GETMET R7 R0 K14 + 0x5C240C00, // 0032 MOVE R9 R6 + 0x5C280800, // 0033 MOVE R10 R4 + 0x502C0200, // 0034 LDBOOL R11 1 0 + 0x7C1C0800, // 0035 CALL R7 4 + 0x741E0002, // 0036 JMPT R7 #003A + 0x8C1C0104, // 0037 GETMET R7 R0 K4 + 0x7C1C0200, // 0038 CALL R7 1 + 0x80000E00, // 0039 RET 0 + 0x8C1C010F, // 003A GETMET R7 R0 K15 + 0x7C1C0200, // 003B CALL R7 1 + 0x8C200510, // 003C GETMET R8 R2 K16 + 0x5C280C00, // 003D MOVE R10 R6 + 0x7C200400, // 003E CALL R8 2 + 0x50200200, // 003F LDBOOL R8 1 0 + 0x98100C08, // 0040 SETIDX R4 R6 R8 + 0x4C200000, // 0041 LDNIL R8 + 0x20200E08, // 0042 NE R8 R7 R8 + 0x78220005, // 0043 JMPF R8 #004A + 0x6020000C, // 0044 GETGBL R8 G12 + 0x5C240E00, // 0045 MOVE R9 R7 + 0x7C200200, // 0046 CALL R8 1 + 0x2420110B, // 0047 GT R8 R8 K11 + 0x78220000, // 0048 JMPF R8 #004A + 0x980C0C07, // 0049 SETIDX R3 R6 R7 + 0x8C200109, // 004A GETMET R8 R0 K9 + 0x7C200200, // 004B CALL R8 1 + 0x4C240000, // 004C LDNIL R9 + 0x20201009, // 004D NE R8 R8 R9 + 0x78220007, // 004E JMPF R8 #0057 + 0x8C200109, // 004F GETMET R8 R0 K9 + 0x7C200200, // 0050 CALL R8 1 + 0x8820110A, // 0051 GETMBR R8 R8 K10 + 0x54260022, // 0052 LDINT R9 35 + 0x1C201009, // 0053 EQ R8 R8 R9 + 0x78220001, // 0054 JMPF R8 #0057 + 0x8C200100, // 0055 GETMET R8 R0 K0 + 0x7C200200, // 0056 CALL R8 1 + 0x70020000, // 0057 JMP #0059 + 0x70020000, // 0058 JMP #005A + 0x7001FFBB, // 0059 JMP #0016 + 0x8C140111, // 005A GETMET R5 R0 K17 + 0x5C1C0200, // 005B MOVE R7 R1 + 0x5C200400, // 005C MOVE R8 R2 + 0x5C240600, // 005D MOVE R9 R3 + 0x7C140800, // 005E CALL R5 4 + 0x60140013, // 005F GETGBL R5 G19 + 0x7C140000, // 0060 CALL R5 0 + 0x98162402, // 0061 SETIDX R5 K18 R2 + 0x98162603, // 0062 SETIDX R5 K19 R3 + 0x88180114, // 0063 GETMBR R6 R0 K20 + 0x8C180D15, // 0064 GETMET R6 R6 K21 + 0x5C200200, // 0065 MOVE R8 R1 + 0x5C240A00, // 0066 MOVE R9 R5 + 0x7C180600, // 0067 CALL R6 3 + 0x8C180116, // 0068 GETMET R6 R0 K22 + 0x5C200200, // 0069 MOVE R8 R1 + 0x5C240400, // 006A MOVE R9 R2 + 0x5C280600, // 006B MOVE R10 R3 + 0x7C180800, // 006C CALL R6 4 + 0x80000000, // 006D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_palette_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* 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[14]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(error), + /* K3 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette), + /* K4 */ be_nested_str_weak(0xFFFFFFFF), + /* K5 */ be_nested_str_weak(type), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(convert_color), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(is_color_name), + /* K11 */ be_nested_str_weak(get_named_color_value), + /* K12 */ 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), + /* K13 */ 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[45]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080101, // 0001 GETMET R2 R0 K1 + 0x7C080200, // 0002 CALL R2 1 + 0x4C0C0000, // 0003 LDNIL R3 + 0x1C0C0403, // 0004 EQ R3 R2 R3 + 0x780E0003, // 0005 JMPF R3 #000A + 0x8C0C0102, // 0006 GETMET R3 R0 K2 + 0x58140003, // 0007 LDCONST R5 K3 + 0x7C0C0400, // 0008 CALL R3 2 + 0x80060800, // 0009 RET 1 K4 + 0x880C0505, // 000A GETMBR R3 R2 K5 + 0x54120003, // 000B LDINT R4 4 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0005, // 000D JMPF R3 #0014 + 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x7C0C0200, // 000F CALL R3 1 + 0x8C0C0107, // 0010 GETMET R3 R0 K7 + 0x88140508, // 0011 GETMBR R5 R2 K8 + 0x7C0C0400, // 0012 CALL R3 2 + 0x80040600, // 0013 RET 1 R3 + 0x880C0505, // 0014 GETMBR R3 R2 K5 + 0x1C0C0709, // 0015 EQ R3 R3 K9 + 0x780E0011, // 0016 JMPF R3 #0029 + 0x880C0508, // 0017 GETMBR R3 R2 K8 + 0x8C100106, // 0018 GETMET R4 R0 K6 + 0x7C100200, // 0019 CALL R4 1 + 0x8C10030A, // 001A GETMET R4 R1 K10 + 0x5C180600, // 001B MOVE R6 R3 + 0x7C100400, // 001C CALL R4 2 + 0x78120003, // 001D JMPF R4 #0022 + 0x8C10010B, // 001E GETMET R4 R0 K11 + 0x5C180600, // 001F MOVE R6 R3 + 0x7C100400, // 0020 CALL R4 2 + 0x80040800, // 0021 RET 1 R4 + 0x8C100102, // 0022 GETMET R4 R0 K2 + 0x60180018, // 0023 GETGBL R6 G24 + 0x581C000C, // 0024 LDCONST R7 K12 + 0x5C200600, // 0025 MOVE R8 R3 + 0x7C180400, // 0026 CALL R6 2 + 0x7C100400, // 0027 CALL R4 2 + 0x80060800, // 0028 RET 1 K4 + 0x8C0C0102, // 0029 GETMET R3 R0 K2 + 0x5814000D, // 002A LDCONST R5 K13 + 0x7C0C0400, // 002B CALL R3 2 + 0x80060800, // 002C RET 1 K4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: transpile_template_body +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_transpile_template_body, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_const_int(1), + /* K5 */ be_nested_str_weak(process_statement), + /* K6 */ be_nested_str_weak(run_statements), + /* K7 */ be_nested_str_weak(name), + /* K8 */ be_nested_str_weak(comment), + /* K9 */ be_nested_str_weak(add), + /* K10 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), + /* K11 */ be_nested_str_weak(stop_iteration), + /* K12 */ be_nested_str_weak(join_output), + /* K13 */ be_nested_str_weak(error), + /* K14 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), + }), + be_str_weak(transpile_template_body), + &be_const_str_solidified, + ( &(const binstruction[78]) { /* code */ + 0xA8020041, // 0000 EXBLK 0 #0043 + 0x58040000, // 0001 LDCONST R1 K0 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x740A001F, // 0004 JMPT R2 #0025 + 0x8C080102, // 0005 GETMET R2 R0 K2 + 0x7C080200, // 0006 CALL R2 1 + 0x4C0C0000, // 0007 LDNIL R3 + 0x200C0403, // 0008 NE R3 R2 R3 + 0x780E0006, // 0009 JMPF R3 #0011 + 0x880C0503, // 000A GETMBR R3 R2 K3 + 0x5412001A, // 000B LDINT R4 27 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0002, // 000D JMPF R3 #0011 + 0x1C0C0300, // 000E EQ R3 R1 K0 + 0x780E0000, // 000F JMPF R3 #0011 + 0x70020013, // 0010 JMP #0025 + 0x4C0C0000, // 0011 LDNIL R3 + 0x200C0403, // 0012 NE R3 R2 R3 + 0x780E0005, // 0013 JMPF R3 #001A + 0x880C0503, // 0014 GETMBR R3 R2 K3 + 0x54120019, // 0015 LDINT R4 26 + 0x1C0C0604, // 0016 EQ R3 R3 R4 + 0x780E0001, // 0017 JMPF R3 #001A + 0x00040304, // 0018 ADD R1 R1 K4 + 0x70020007, // 0019 JMP #0022 + 0x4C0C0000, // 001A LDNIL R3 + 0x200C0403, // 001B NE R3 R2 R3 + 0x780E0004, // 001C JMPF R3 #0022 + 0x880C0503, // 001D GETMBR R3 R2 K3 + 0x5412001A, // 001E LDINT R4 27 + 0x1C0C0604, // 001F EQ R3 R3 R4 + 0x780E0000, // 0020 JMPF R3 #0022 + 0x04040304, // 0021 SUB R1 R1 K4 + 0x8C0C0105, // 0022 GETMET R3 R0 K5 + 0x7C0C0200, // 0023 CALL R3 1 + 0x7001FFDC, // 0024 JMP #0002 + 0x6008000C, // 0025 GETGBL R2 G12 + 0x880C0106, // 0026 GETMBR R3 R0 K6 + 0x7C080200, // 0027 CALL R2 1 + 0x24080500, // 0028 GT R2 R2 K0 + 0x780A0012, // 0029 JMPF R2 #003D + 0x60080010, // 002A GETGBL R2 G16 + 0x880C0106, // 002B GETMBR R3 R0 K6 + 0x7C080200, // 002C CALL R2 1 + 0xA802000B, // 002D EXBLK 0 #003A + 0x5C0C0400, // 002E MOVE R3 R2 + 0x7C0C0000, // 002F CALL R3 0 + 0x94100707, // 0030 GETIDX R4 R3 K7 + 0x94140708, // 0031 GETIDX R5 R3 K8 + 0x8C180109, // 0032 GETMET R6 R0 K9 + 0x60200018, // 0033 GETGBL R8 G24 + 0x5824000A, // 0034 LDCONST R9 K10 + 0x5C280800, // 0035 MOVE R10 R4 + 0x5C2C0A00, // 0036 MOVE R11 R5 + 0x7C200600, // 0037 CALL R8 3 + 0x7C180400, // 0038 CALL R6 2 + 0x7001FFF3, // 0039 JMP #002E + 0x5808000B, // 003A LDCONST R2 K11 + 0xAC080200, // 003B CATCH R2 1 0 + 0xB0080000, // 003C RAISE 2 R0 R0 + 0x8C08010C, // 003D GETMET R2 R0 K12 + 0x7C080200, // 003E CALL R2 1 + 0xA8040001, // 003F EXBLK 1 1 + 0x80040400, // 0040 RET 1 R2 + 0xA8040001, // 0041 EXBLK 1 1 + 0x70020009, // 0042 JMP #004D + 0xAC040002, // 0043 CATCH R1 0 2 + 0x70020006, // 0044 JMP #004C + 0x8C0C010D, // 0045 GETMET R3 R0 K13 + 0x60140018, // 0046 GETGBL R5 G24 + 0x5818000E, // 0047 LDCONST R6 K14 + 0x5C1C0400, // 0048 MOVE R7 R2 + 0x7C140400, // 0049 CALL R5 2 + 0x7C0C0400, // 004A CALL R3 2 + 0x70020000, // 004B JMP #004D + 0xB0080000, // 004C RAISE 2 R0 R0 + 0x80000000, // 004D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_run +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(_validate_object_reference), + /* K3 */ be_nested_str_weak(run), + /* K4 */ be_nested_str_weak(collect_inline_comment), + /* K5 */ be_nested_str_weak(run_statements), + /* K6 */ be_nested_str_weak(push), + /* K7 */ be_nested_str_weak(name), + /* K8 */ be_nested_str_weak(comment), + }), + be_str_weak(process_run), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x8C080104, // 0008 GETMET R2 R0 K4 + 0x7C080200, // 0009 CALL R2 1 + 0x880C0105, // 000A GETMBR R3 R0 K5 + 0x8C0C0706, // 000B GETMET R3 R3 K6 + 0x60140013, // 000C GETGBL R5 G19 + 0x7C140000, // 000D CALL R5 0 + 0x98160E01, // 000E SETIDX R5 K7 R1 + 0x98161002, // 000F SETIDX R5 K8 R2 + 0x7C0C0400, // 0010 CALL R3 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_wait_statement_fluent ********************************************************************/ @@ -15914,9 +13853,1864 @@ be_local_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent, /* n /******************************************************************** -** Solidified function: _process_user_function_call +** Solidified function: generate_template_animation_class ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* name */ +be_local_closure(class_SimpleDSLTranspiler_generate_template_animation_class, /* name */ + be_nested_proto( + 20, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[56]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(string), + /* K2 */ be_nested_str_weak(add), + /* K3 */ be_nested_str_weak(_X23_X20Template_X20animation_X20class_X3A_X20_X25s), + /* K4 */ be_nested_str_weak(class_X20_X25s_animation_X20_X3A_X20animation_X2Eengine_proxy), + /* K5 */ be_nested_str_weak(_X20_X20static_X20var_X20PARAMS_X20_X3D_X20animation_X2Eenc_params_X28_X7B), + /* K6 */ be_const_int(0), + /* K7 */ be_const_int(1), + /* K8 */ be_nested_str_weak(find), + /* K9 */ be_nested_str_weak(_X2C), + /* K10 */ be_nested_str_weak(), + /* K11 */ be_nested_str_weak(instance), + /* K12 */ be_nested_str_weak(map), + /* K13 */ be_nested_str_weak(contains), + /* K14 */ be_nested_str_weak(type), + /* K15 */ be_nested_str_weak(push), + /* K16 */ be_nested_str_weak(_X22type_X22_X3A_X20_X22_X25s_X22), + /* K17 */ be_nested_str_weak(min), + /* K18 */ be_nested_str_weak(_X22min_X22_X3A_X20_X25s), + /* K19 */ be_nested_str_weak(max), + /* K20 */ be_nested_str_weak(_X22max_X22_X3A_X20_X25s), + /* K21 */ be_nested_str_weak(default), + /* K22 */ be_nested_str_weak(_X22default_X22_X3A_X20_X25s), + /* K23 */ be_nested_str_weak(nillable), + /* K24 */ be_nested_str_weak(_X22nillable_X22_X3A_X20_X25s), + /* K25 */ be_nested_str_weak(_X2C_X20), + /* K26 */ be_nested_str_weak(stop_iteration), + /* K27 */ be_nested_str_weak(_X20_X20_X20_X20_X22_X25s_X22_X3A_X20_X7B_X25s_X7D_X25s), + /* K28 */ be_nested_str_weak(_X20_X20_X20_X20_X22_X25s_X22_X3A_X20_X7B_X22type_X22_X3A_X20_X22_X25s_X22_X7D_X25s), + /* K29 */ be_nested_str_weak(_X20_X20_X20_X20_X22_X25s_X22_X3A_X20_X7B_X7D_X25s), + /* K30 */ be_nested_str_weak(_X20_X20_X7D_X29), + /* K31 */ be_nested_str_weak(_X20_X20_X23_X20Template_X20setup_X20method_X20_X2D_X20overrides_X20EngineProxy_X20placeholder), + /* K32 */ be_nested_str_weak(_X20_X20def_X20setup_template_X28_X29), + /* K33 */ be_nested_str_weak(_X20_X20_X20_X20var_X20engine_X20_X3D_X20self_X20_X20_X20_X23_X20using_X20_X27self_X27_X20as_X20a_X20proxy_X20to_X20engine_X20object_X20_X28instead_X20of_X20_X27self_X2Eengine_X27_X29), + /* K34 */ be_nested_str_weak(SimpleDSLTranspiler), + /* K35 */ be_nested_str_weak(pull_lexer), + /* K36 */ be_nested_str_weak(symbol_table), + /* K37 */ be_nested_str_weak(_symbol_table), + /* K38 */ be_nested_str_weak(strip_initialized), + /* K39 */ be_nested_str_weak(indent_level), + /* K40 */ be_const_int(2), + /* K41 */ be_nested_str_weak(template_animation_params), + /* K42 */ be_nested_str_weak(_add_inherited_params_to_template), + /* K43 */ be_nested_str_weak(_add_typed_parameter_to_symbol_table), + /* K44 */ be_nested_str_weak(create_variable), + /* K45 */ be_nested_str_weak(transpile_template_animation_body), + /* K46 */ be_nested_str_weak(split), + /* K47 */ be_nested_str_weak(_X0A), + /* K48 */ be_nested_str_weak(_X20_X20_X20_X20_X25s), + /* K49 */ be_nested_str_weak(_validate_template_parameter_usage), + /* K50 */ be_nested_str_weak(errors), + /* K51 */ be_nested_str_weak(error), + /* K52 */ be_nested_str_weak(Template_X20animation_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), + /* K53 */ be_nested_str_weak(expect_right_brace), + /* K54 */ be_nested_str_weak(_X20_X20end), + /* K55 */ be_nested_str_weak(end), + }), + be_str_weak(generate_template_animation_class), + &be_const_str_solidified, + ( &(const binstruction[320]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0xA4160200, // 0001 IMPORT R5 K1 + 0x8C180102, // 0002 GETMET R6 R0 K2 + 0x60200018, // 0003 GETGBL R8 G24 + 0x58240003, // 0004 LDCONST R9 K3 + 0x5C280200, // 0005 MOVE R10 R1 + 0x7C200400, // 0006 CALL R8 2 + 0x7C180400, // 0007 CALL R6 2 + 0x8C180102, // 0008 GETMET R6 R0 K2 + 0x60200018, // 0009 GETGBL R8 G24 + 0x58240004, // 000A LDCONST R9 K4 + 0x5C280200, // 000B MOVE R10 R1 + 0x7C200400, // 000C CALL R8 2 + 0x7C180400, // 000D CALL R6 2 + 0x8C180102, // 000E GETMET R6 R0 K2 + 0x58200005, // 000F LDCONST R8 K5 + 0x7C180400, // 0010 CALL R6 2 + 0x60180010, // 0011 GETGBL R6 G16 + 0x601C000C, // 0012 GETGBL R7 G12 + 0x5C200400, // 0013 MOVE R8 R2 + 0x7C1C0200, // 0014 CALL R7 1 + 0x041C0F07, // 0015 SUB R7 R7 K7 + 0x401E0C07, // 0016 CONNECT R7 K6 R7 + 0x7C180200, // 0017 CALL R6 1 + 0xA8020081, // 0018 EXBLK 0 #009B + 0x5C1C0C00, // 0019 MOVE R7 R6 + 0x7C1C0000, // 001A CALL R7 0 + 0x94200407, // 001B GETIDX R8 R2 R7 + 0x8C240708, // 001C GETMET R9 R3 K8 + 0x5C2C1000, // 001D MOVE R11 R8 + 0x7C240400, // 001E CALL R9 2 + 0x6028000C, // 001F GETGBL R10 G12 + 0x5C2C0400, // 0020 MOVE R11 R2 + 0x7C280200, // 0021 CALL R10 1 + 0x04281507, // 0022 SUB R10 R10 K7 + 0x14280E0A, // 0023 LT R10 R7 R10 + 0x782A0001, // 0024 JMPF R10 #0027 + 0x58280009, // 0025 LDCONST R10 K9 + 0x70020000, // 0026 JMP #0028 + 0x5828000A, // 0027 LDCONST R10 K10 + 0x4C2C0000, // 0028 LDNIL R11 + 0x202C120B, // 0029 NE R11 R9 R11 + 0x782E0067, // 002A JMPF R11 #0093 + 0x602C0004, // 002B GETGBL R11 G4 + 0x5C301200, // 002C MOVE R12 R9 + 0x7C2C0200, // 002D CALL R11 1 + 0x1C2C170B, // 002E EQ R11 R11 K11 + 0x782E0059, // 002F JMPF R11 #008A + 0x602C0005, // 0030 GETGBL R11 G5 + 0x5C301200, // 0031 MOVE R12 R9 + 0x7C2C0200, // 0032 CALL R11 1 + 0x1C2C170C, // 0033 EQ R11 R11 K12 + 0x782E0054, // 0034 JMPF R11 #008A + 0x602C0012, // 0035 GETGBL R11 G18 + 0x7C2C0000, // 0036 CALL R11 0 + 0x8C30130D, // 0037 GETMET R12 R9 K13 + 0x5838000E, // 0038 LDCONST R14 K14 + 0x7C300400, // 0039 CALL R12 2 + 0x78320005, // 003A JMPF R12 #0041 + 0x8C30170F, // 003B GETMET R12 R11 K15 + 0x60380018, // 003C GETGBL R14 G24 + 0x583C0010, // 003D LDCONST R15 K16 + 0x9440130E, // 003E GETIDX R16 R9 K14 + 0x7C380400, // 003F CALL R14 2 + 0x7C300400, // 0040 CALL R12 2 + 0x8C30130D, // 0041 GETMET R12 R9 K13 + 0x58380011, // 0042 LDCONST R14 K17 + 0x7C300400, // 0043 CALL R12 2 + 0x78320005, // 0044 JMPF R12 #004B + 0x8C30170F, // 0045 GETMET R12 R11 K15 + 0x60380018, // 0046 GETGBL R14 G24 + 0x583C0012, // 0047 LDCONST R15 K18 + 0x94401311, // 0048 GETIDX R16 R9 K17 + 0x7C380400, // 0049 CALL R14 2 + 0x7C300400, // 004A CALL R12 2 + 0x8C30130D, // 004B GETMET R12 R9 K13 + 0x58380013, // 004C LDCONST R14 K19 + 0x7C300400, // 004D CALL R12 2 + 0x78320005, // 004E JMPF R12 #0055 + 0x8C30170F, // 004F GETMET R12 R11 K15 + 0x60380018, // 0050 GETGBL R14 G24 + 0x583C0014, // 0051 LDCONST R15 K20 + 0x94401313, // 0052 GETIDX R16 R9 K19 + 0x7C380400, // 0053 CALL R14 2 + 0x7C300400, // 0054 CALL R12 2 + 0x8C30130D, // 0055 GETMET R12 R9 K13 + 0x58380015, // 0056 LDCONST R14 K21 + 0x7C300400, // 0057 CALL R12 2 + 0x78320005, // 0058 JMPF R12 #005F + 0x8C30170F, // 0059 GETMET R12 R11 K15 + 0x60380018, // 005A GETGBL R14 G24 + 0x583C0016, // 005B LDCONST R15 K22 + 0x94401315, // 005C GETIDX R16 R9 K21 + 0x7C380400, // 005D CALL R14 2 + 0x7C300400, // 005E CALL R12 2 + 0x8C30130D, // 005F GETMET R12 R9 K13 + 0x58380017, // 0060 LDCONST R14 K23 + 0x7C300400, // 0061 CALL R12 2 + 0x78320005, // 0062 JMPF R12 #0069 + 0x8C30170F, // 0063 GETMET R12 R11 K15 + 0x60380018, // 0064 GETGBL R14 G24 + 0x583C0018, // 0065 LDCONST R15 K24 + 0x94401317, // 0066 GETIDX R16 R9 K23 + 0x7C380400, // 0067 CALL R14 2 + 0x7C300400, // 0068 CALL R12 2 + 0x5830000A, // 0069 LDCONST R12 K10 + 0x60340010, // 006A GETGBL R13 G16 + 0x6038000C, // 006B GETGBL R14 G12 + 0x5C3C1600, // 006C MOVE R15 R11 + 0x7C380200, // 006D CALL R14 1 + 0x04381D07, // 006E SUB R14 R14 K7 + 0x403A0C0E, // 006F CONNECT R14 K6 R14 + 0x7C340200, // 0070 CALL R13 1 + 0xA802000B, // 0071 EXBLK 0 #007E + 0x5C381A00, // 0072 MOVE R14 R13 + 0x7C380000, // 0073 CALL R14 0 + 0x943C160E, // 0074 GETIDX R15 R11 R14 + 0x0030180F, // 0075 ADD R12 R12 R15 + 0x603C000C, // 0076 GETGBL R15 G12 + 0x5C401600, // 0077 MOVE R16 R11 + 0x7C3C0200, // 0078 CALL R15 1 + 0x043C1F07, // 0079 SUB R15 R15 K7 + 0x143C1C0F, // 007A LT R15 R14 R15 + 0x783E0000, // 007B JMPF R15 #007D + 0x00301919, // 007C ADD R12 R12 K25 + 0x7001FFF3, // 007D JMP #0072 + 0x5834001A, // 007E LDCONST R13 K26 + 0xAC340200, // 007F CATCH R13 1 0 + 0xB0080000, // 0080 RAISE 2 R0 R0 + 0x8C340102, // 0081 GETMET R13 R0 K2 + 0x603C0018, // 0082 GETGBL R15 G24 + 0x5840001B, // 0083 LDCONST R16 K27 + 0x5C441000, // 0084 MOVE R17 R8 + 0x5C481800, // 0085 MOVE R18 R12 + 0x5C4C1400, // 0086 MOVE R19 R10 + 0x7C3C0800, // 0087 CALL R15 4 + 0x7C340400, // 0088 CALL R13 2 + 0x70020007, // 0089 JMP #0092 + 0x8C2C0102, // 008A GETMET R11 R0 K2 + 0x60340018, // 008B GETGBL R13 G24 + 0x5838001C, // 008C LDCONST R14 K28 + 0x5C3C1000, // 008D MOVE R15 R8 + 0x5C401200, // 008E MOVE R16 R9 + 0x5C441400, // 008F MOVE R17 R10 + 0x7C340800, // 0090 CALL R13 4 + 0x7C2C0400, // 0091 CALL R11 2 + 0x70020006, // 0092 JMP #009A + 0x8C2C0102, // 0093 GETMET R11 R0 K2 + 0x60340018, // 0094 GETGBL R13 G24 + 0x5838001D, // 0095 LDCONST R14 K29 + 0x5C3C1000, // 0096 MOVE R15 R8 + 0x5C401400, // 0097 MOVE R16 R10 + 0x7C340600, // 0098 CALL R13 3 + 0x7C2C0400, // 0099 CALL R11 2 + 0x7001FF7D, // 009A JMP #0019 + 0x5818001A, // 009B LDCONST R6 K26 + 0xAC180200, // 009C CATCH R6 1 0 + 0xB0080000, // 009D RAISE 2 R0 R0 + 0x8C180102, // 009E GETMET R6 R0 K2 + 0x5820001E, // 009F LDCONST R8 K30 + 0x7C180400, // 00A0 CALL R6 2 + 0x8C180102, // 00A1 GETMET R6 R0 K2 + 0x5820000A, // 00A2 LDCONST R8 K10 + 0x7C180400, // 00A3 CALL R6 2 + 0x8C180102, // 00A4 GETMET R6 R0 K2 + 0x5820001F, // 00A5 LDCONST R8 K31 + 0x7C180400, // 00A6 CALL R6 2 + 0x8C180102, // 00A7 GETMET R6 R0 K2 + 0x58200020, // 00A8 LDCONST R8 K32 + 0x7C180400, // 00A9 CALL R6 2 + 0x8C180102, // 00AA GETMET R6 R0 K2 + 0x58200021, // 00AB LDCONST R8 K33 + 0x7C180400, // 00AC CALL R6 2 + 0x8C180102, // 00AD GETMET R6 R0 K2 + 0x5820000A, // 00AE LDCONST R8 K10 + 0x7C180400, // 00AF CALL R6 2 + 0x8C180922, // 00B0 GETMET R6 R4 K34 + 0x88200123, // 00B1 GETMBR R8 R0 K35 + 0x7C180400, // 00B2 CALL R6 2 + 0x8C1C0925, // 00B3 GETMET R7 R4 K37 + 0x7C1C0200, // 00B4 CALL R7 1 + 0x901A4807, // 00B5 SETMBR R6 K36 R7 + 0x501C0200, // 00B6 LDBOOL R7 1 0 + 0x901A4C07, // 00B7 SETMBR R6 K38 R7 + 0x901A4F28, // 00B8 SETMBR R6 K39 K40 + 0x601C0013, // 00B9 GETGBL R7 G19 + 0x7C1C0000, // 00BA CALL R7 0 + 0x901A5207, // 00BB SETMBR R6 K41 R7 + 0x601C0010, // 00BC GETGBL R7 G16 + 0x5C200400, // 00BD MOVE R8 R2 + 0x7C1C0200, // 00BE CALL R7 1 + 0xA8020005, // 00BF EXBLK 0 #00C6 + 0x5C200E00, // 00C0 MOVE R8 R7 + 0x7C200000, // 00C1 CALL R8 0 + 0x88240D29, // 00C2 GETMBR R9 R6 K41 + 0x50280200, // 00C3 LDBOOL R10 1 0 + 0x9824100A, // 00C4 SETIDX R9 R8 R10 + 0x7001FFF9, // 00C5 JMP #00C0 + 0x581C001A, // 00C6 LDCONST R7 K26 + 0xAC1C0200, // 00C7 CATCH R7 1 0 + 0xB0080000, // 00C8 RAISE 2 R0 R0 + 0x8C1C012A, // 00C9 GETMET R7 R0 K42 + 0x88240D29, // 00CA GETMBR R9 R6 K41 + 0x7C1C0400, // 00CB CALL R7 2 + 0x601C0010, // 00CC GETGBL R7 G16 + 0x5C200400, // 00CD MOVE R8 R2 + 0x7C1C0200, // 00CE CALL R7 1 + 0xA802002B, // 00CF EXBLK 0 #00FC + 0x5C200E00, // 00D0 MOVE R8 R7 + 0x7C200000, // 00D1 CALL R8 0 + 0x8C240708, // 00D2 GETMET R9 R3 K8 + 0x5C2C1000, // 00D3 MOVE R11 R8 + 0x7C240400, // 00D4 CALL R9 2 + 0x4C280000, // 00D5 LDNIL R10 + 0x2028120A, // 00D6 NE R10 R9 R10 + 0x782A001E, // 00D7 JMPF R10 #00F7 + 0x4C280000, // 00D8 LDNIL R10 + 0x602C0004, // 00D9 GETGBL R11 G4 + 0x5C301200, // 00DA MOVE R12 R9 + 0x7C2C0200, // 00DB CALL R11 1 + 0x1C2C170B, // 00DC EQ R11 R11 K11 + 0x782E0009, // 00DD JMPF R11 #00E8 + 0x602C0005, // 00DE GETGBL R11 G5 + 0x5C301200, // 00DF MOVE R12 R9 + 0x7C2C0200, // 00E0 CALL R11 1 + 0x1C2C170C, // 00E1 EQ R11 R11 K12 + 0x782E0004, // 00E2 JMPF R11 #00E8 + 0x8C2C1308, // 00E3 GETMET R11 R9 K8 + 0x5834000E, // 00E4 LDCONST R13 K14 + 0x7C2C0400, // 00E5 CALL R11 2 + 0x5C281600, // 00E6 MOVE R10 R11 + 0x70020000, // 00E7 JMP #00E9 + 0x5C281200, // 00E8 MOVE R10 R9 + 0x4C2C0000, // 00E9 LDNIL R11 + 0x202C140B, // 00EA NE R11 R10 R11 + 0x782E0005, // 00EB JMPF R11 #00F2 + 0x8C2C012B, // 00EC GETMET R11 R0 K43 + 0x88340D24, // 00ED GETMBR R13 R6 K36 + 0x5C381000, // 00EE MOVE R14 R8 + 0x5C3C1400, // 00EF MOVE R15 R10 + 0x7C2C0800, // 00F0 CALL R11 4 + 0x70020003, // 00F1 JMP #00F6 + 0x882C0D24, // 00F2 GETMBR R11 R6 K36 + 0x8C2C172C, // 00F3 GETMET R11 R11 K44 + 0x5C341000, // 00F4 MOVE R13 R8 + 0x7C2C0400, // 00F5 CALL R11 2 + 0x70020003, // 00F6 JMP #00FB + 0x88280D24, // 00F7 GETMBR R10 R6 K36 + 0x8C28152C, // 00F8 GETMET R10 R10 K44 + 0x5C301000, // 00F9 MOVE R12 R8 + 0x7C280400, // 00FA CALL R10 2 + 0x7001FFD3, // 00FB JMP #00D0 + 0x581C001A, // 00FC LDCONST R7 K26 + 0xAC1C0200, // 00FD CATCH R7 1 0 + 0xB0080000, // 00FE RAISE 2 R0 R0 + 0x8C1C0D2D, // 00FF GETMET R7 R6 K45 + 0x7C1C0200, // 0100 CALL R7 1 + 0x4C200000, // 0101 LDNIL R8 + 0x20200E08, // 0102 NE R8 R7 R8 + 0x7822001E, // 0103 JMPF R8 #0123 + 0x8C200B2E, // 0104 GETMET R8 R5 K46 + 0x5C280E00, // 0105 MOVE R10 R7 + 0x582C002F, // 0106 LDCONST R11 K47 + 0x7C200600, // 0107 CALL R8 3 + 0x60240010, // 0108 GETGBL R9 G16 + 0x5C281000, // 0109 MOVE R10 R8 + 0x7C240200, // 010A CALL R9 1 + 0xA802000D, // 010B EXBLK 0 #011A + 0x5C281200, // 010C MOVE R10 R9 + 0x7C280000, // 010D CALL R10 0 + 0x602C000C, // 010E GETGBL R11 G12 + 0x5C301400, // 010F MOVE R12 R10 + 0x7C2C0200, // 0110 CALL R11 1 + 0x242C1706, // 0111 GT R11 R11 K6 + 0x782E0005, // 0112 JMPF R11 #0119 + 0x8C2C0102, // 0113 GETMET R11 R0 K2 + 0x60340018, // 0114 GETGBL R13 G24 + 0x58380030, // 0115 LDCONST R14 K48 + 0x5C3C1400, // 0116 MOVE R15 R10 + 0x7C340400, // 0117 CALL R13 2 + 0x7C2C0400, // 0118 CALL R11 2 + 0x7001FFF1, // 0119 JMP #010C + 0x5824001A, // 011A LDCONST R9 K26 + 0xAC240200, // 011B CATCH R9 1 0 + 0xB0080000, // 011C RAISE 2 R0 R0 + 0x8C240131, // 011D GETMET R9 R0 K49 + 0x5C2C0200, // 011E MOVE R11 R1 + 0x5C300400, // 011F MOVE R12 R2 + 0x5C340E00, // 0120 MOVE R13 R7 + 0x7C240800, // 0121 CALL R9 4 + 0x70020010, // 0122 JMP #0134 + 0x60200010, // 0123 GETGBL R8 G16 + 0x88240D32, // 0124 GETMBR R9 R6 K50 + 0x7C200200, // 0125 CALL R8 1 + 0xA8020009, // 0126 EXBLK 0 #0131 + 0x5C241000, // 0127 MOVE R9 R8 + 0x7C240000, // 0128 CALL R9 0 + 0x8C280133, // 0129 GETMET R10 R0 K51 + 0x60300018, // 012A GETGBL R12 G24 + 0x58340034, // 012B LDCONST R13 K52 + 0x5C380200, // 012C MOVE R14 R1 + 0x5C3C1200, // 012D MOVE R15 R9 + 0x7C300600, // 012E CALL R12 3 + 0x7C280400, // 012F CALL R10 2 + 0x7001FFF5, // 0130 JMP #0127 + 0x5820001A, // 0131 LDCONST R8 K26 + 0xAC200200, // 0132 CATCH R8 1 0 + 0xB0080000, // 0133 RAISE 2 R0 R0 + 0x8C200135, // 0134 GETMET R8 R0 K53 + 0x7C200200, // 0135 CALL R8 1 + 0x8C200102, // 0136 GETMET R8 R0 K2 + 0x58280036, // 0137 LDCONST R10 K54 + 0x7C200400, // 0138 CALL R8 2 + 0x8C200102, // 0139 GETMET R8 R0 K2 + 0x58280037, // 013A LDCONST R10 K55 + 0x7C200400, // 013B CALL R8 2 + 0x8C200102, // 013C GETMET R8 R0 K2 + 0x5828000A, // 013D LDCONST R10 K10 + 0x7C200400, // 013E CALL R8 2 + 0x80000000, // 013F 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[16]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(3), + /* K4 */ be_nested_str_weak(error), + /* K5 */ 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), + /* K6 */ be_nested_str_weak(skip_statement), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(collect_inline_comment), + /* K9 */ be_nested_str_weak(add), + /* K10 */ be_nested_str_weak(_X23_X20Berry_X20code_X20block_X25s), + /* K11 */ be_nested_str_weak(string), + /* K12 */ be_nested_str_weak(split), + /* K13 */ be_nested_str_weak(_X0A), + /* K14 */ be_nested_str_weak(stop_iteration), + /* K15 */ be_nested_str_weak(_X23_X20End_X20berry_X20code_X20block), + }), + be_str_weak(process_berry_code_block), + &be_const_str_solidified, + ( &(const binstruction[49]) { /* 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 + 0x740A0002, // 0006 JMPT R2 #000A + 0x88080302, // 0007 GETMBR R2 R1 K2 + 0x20080503, // 0008 NE R2 R2 K3 + 0x780A0005, // 0009 JMPF R2 #0010 + 0x8C080104, // 000A GETMET R2 R0 K4 + 0x58100005, // 000B LDCONST R4 K5 + 0x7C080400, // 000C CALL R2 2 + 0x8C080106, // 000D GETMET R2 R0 K6 + 0x7C080200, // 000E CALL R2 1 + 0x80000400, // 000F RET 0 + 0x88080307, // 0010 GETMBR R2 R1 K7 + 0x8C0C0100, // 0011 GETMET R3 R0 K0 + 0x7C0C0200, // 0012 CALL R3 1 + 0x8C0C0108, // 0013 GETMET R3 R0 K8 + 0x7C0C0200, // 0014 CALL R3 1 + 0x8C100109, // 0015 GETMET R4 R0 K9 + 0x60180018, // 0016 GETGBL R6 G24 + 0x581C000A, // 0017 LDCONST R7 K10 + 0x5C200600, // 0018 MOVE R8 R3 + 0x7C180400, // 0019 CALL R6 2 + 0x7C100400, // 001A CALL R4 2 + 0xA4121600, // 001B IMPORT R4 K11 + 0x8C14090C, // 001C GETMET R5 R4 K12 + 0x5C1C0400, // 001D MOVE R7 R2 + 0x5820000D, // 001E LDCONST R8 K13 + 0x7C140600, // 001F CALL R5 3 + 0x60180010, // 0020 GETGBL R6 G16 + 0x5C1C0A00, // 0021 MOVE R7 R5 + 0x7C180200, // 0022 CALL R6 1 + 0xA8020005, // 0023 EXBLK 0 #002A + 0x5C1C0C00, // 0024 MOVE R7 R6 + 0x7C1C0000, // 0025 CALL R7 0 + 0x8C200109, // 0026 GETMET R8 R0 K9 + 0x5C280E00, // 0027 MOVE R10 R7 + 0x7C200400, // 0028 CALL R8 2 + 0x7001FFF9, // 0029 JMP #0024 + 0x5818000E, // 002A LDCONST R6 K14 + 0xAC180200, // 002B CATCH R6 1 0 + 0xB0080000, // 002C RAISE 2 R0 R0 + 0x8C180109, // 002D GETMET R6 R0 K9 + 0x5820000F, // 002E LDCONST R8 K15 + 0x7C180400, // 002F CALL R6 2 + 0x80000000, // 0030 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_external_function +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_external_function, /* 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[19]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(function), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27function_X27_X20keyword_X20after_X20_X27extern_X27_X2E_X20Use_X3A_X20extern_X20function_X20function_name), + /* K8 */ be_nested_str_weak(skip_statement), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(Expected_X20function_X20name_X20after_X20_X27extern_X20function_X27_X2E_X20Use_X3A_X20extern_X20function_X20function_name), + /* K11 */ be_nested_str_weak(collect_inline_comment), + /* K12 */ be_nested_str_weak(validate_user_name), + /* K13 */ be_nested_str_weak(extern_X20function), + /* K14 */ be_nested_str_weak(symbol_table), + /* K15 */ be_nested_str_weak(register_user_function), + /* K16 */ be_nested_str_weak(add), + /* K17 */ be_nested_str_weak(_X23_X20External_X20function_X20declaration_X3A_X20_X25s_X25s), + /* K18 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X22_X25s_X22_X2C_X20_X25s_X29), + }), + be_str_weak(process_external_function), + &be_const_str_solidified, + ( &(const binstruction[64]) { /* 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 + 0x20080503, // 0008 NE R2 R2 K3 + 0x740A0002, // 0009 JMPT R2 #000D + 0x88080304, // 000A GETMBR R2 R1 K4 + 0x20080505, // 000B NE R2 R2 K5 + 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 + 0x8C080100, // 0013 GETMET R2 R0 K0 + 0x7C080200, // 0014 CALL R2 1 + 0x8C080101, // 0015 GETMET R2 R0 K1 + 0x7C080200, // 0016 CALL R2 1 + 0x5C040400, // 0017 MOVE R1 R2 + 0x4C080000, // 0018 LDNIL R2 + 0x1C080202, // 0019 EQ R2 R1 R2 + 0x740A0002, // 001A JMPT R2 #001E + 0x88080302, // 001B GETMBR R2 R1 K2 + 0x20080509, // 001C NE R2 R2 K9 + 0x780A0005, // 001D JMPF R2 #0024 + 0x8C080106, // 001E GETMET R2 R0 K6 + 0x5810000A, // 001F LDCONST R4 K10 + 0x7C080400, // 0020 CALL R2 2 + 0x8C080108, // 0021 GETMET R2 R0 K8 + 0x7C080200, // 0022 CALL R2 1 + 0x80000400, // 0023 RET 0 + 0x88080304, // 0024 GETMBR R2 R1 K4 + 0x8C0C0100, // 0025 GETMET R3 R0 K0 + 0x7C0C0200, // 0026 CALL R3 1 + 0x8C0C010B, // 0027 GETMET R3 R0 K11 + 0x7C0C0200, // 0028 CALL R3 1 + 0x8C10010C, // 0029 GETMET R4 R0 K12 + 0x5C180400, // 002A MOVE R6 R2 + 0x581C000D, // 002B LDCONST R7 K13 + 0x7C100600, // 002C CALL R4 3 + 0x8810010E, // 002D GETMBR R4 R0 K14 + 0x8C10090F, // 002E GETMET R4 R4 K15 + 0x5C180400, // 002F MOVE R6 R2 + 0x7C100400, // 0030 CALL R4 2 + 0x8C100110, // 0031 GETMET R4 R0 K16 + 0x60180018, // 0032 GETGBL R6 G24 + 0x581C0011, // 0033 LDCONST R7 K17 + 0x5C200400, // 0034 MOVE R8 R2 + 0x5C240600, // 0035 MOVE R9 R3 + 0x7C180600, // 0036 CALL R6 3 + 0x7C100400, // 0037 CALL R4 2 + 0x8C100110, // 0038 GETMET R4 R0 K16 + 0x60180018, // 0039 GETGBL R6 G24 + 0x581C0012, // 003A LDCONST R7 K18 + 0x5C200400, // 003B MOVE R8 R2 + 0x5C240400, // 003C MOVE R9 R2 + 0x7C180600, // 003D CALL R6 3 + 0x7C100400, // 003E CALL R4 2 + 0x80000000, // 003F 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: _register_template_animation_constructor +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__register_template_animation_constructor, /* 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( + 4, /* nstack */ + 1, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 2), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_anonymous_), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x60040010, // 0000 GETGBL R1 G16 + 0x68080000, // 0001 GETUPV R2 U0 + 0x7C040200, // 0002 CALL R1 1 + 0xA8020007, // 0003 EXBLK 0 #000C + 0x5C080200, // 0004 MOVE R2 R1 + 0x7C080000, // 0005 CALL R2 0 + 0x1C0C0400, // 0006 EQ R3 R2 R0 + 0x780E0002, // 0007 JMPF R3 #000B + 0x500C0200, // 0008 LDBOOL R3 1 0 + 0xA8040001, // 0009 EXBLK 1 1 + 0x80040600, // 000A RET 1 R3 + 0x7001FFF7, // 000B JMP #0004 + 0x58040000, // 000C LDCONST R1 K0 + 0xAC040200, // 000D CATCH R1 1 0 + 0xB0080000, // 000E RAISE 2 R0 R0 + 0x50040000, // 000F LDBOOL R1 0 0 + 0x80040200, // 0010 RET 1 R1 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[12]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(_params), + /* K2 */ be_nested_str_weak(has_param), + /* K3 */ be_nested_str_weak(stop_iteration), + /* K4 */ be_nested_str_weak(symbol_table), + /* K5 */ be_nested_str_weak(entries), + /* K6 */ be_nested_str_weak(find), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(instance), + /* K9 */ be_nested_str_weak(takes_args), + /* K10 */ be_nested_str_weak(arg_type), + /* K11 */ be_nested_str_weak(named), + }), + be_str_weak(_register_template_animation_constructor), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x60140013, // 0001 GETGBL R5 G19 + 0x7C140000, // 0002 CALL R5 0 + 0x60180013, // 0003 GETGBL R6 G19 + 0x7C180000, // 0004 CALL R6 0 + 0x98160206, // 0005 SETIDX R5 K1 R6 + 0x84180000, // 0006 CLOSURE R6 P0 + 0x98160406, // 0007 SETIDX R5 K2 R6 + 0x60180010, // 0008 GETGBL R6 G16 + 0x5C1C0400, // 0009 MOVE R7 R2 + 0x7C180200, // 000A CALL R6 1 + 0xA8020005, // 000B EXBLK 0 #0012 + 0x5C1C0C00, // 000C MOVE R7 R6 + 0x7C1C0000, // 000D CALL R7 0 + 0x94200B01, // 000E GETIDX R8 R5 K1 + 0x50240200, // 000F LDBOOL R9 1 0 + 0x98200E09, // 0010 SETIDX R8 R7 R9 + 0x7001FFF9, // 0011 JMP #000C + 0x58180003, // 0012 LDCONST R6 K3 + 0xAC180200, // 0013 CATCH R6 1 0 + 0xB0080000, // 0014 RAISE 2 R0 R0 + 0x88180104, // 0015 GETMBR R6 R0 K4 + 0x88180D05, // 0016 GETMBR R6 R6 K5 + 0x8C180D06, // 0017 GETMET R6 R6 K6 + 0x5C200200, // 0018 MOVE R8 R1 + 0x7C180400, // 0019 CALL R6 2 + 0x4C1C0000, // 001A LDNIL R7 + 0x201C0C07, // 001B NE R7 R6 R7 + 0x781E0005, // 001C JMPF R7 #0023 + 0x541E0007, // 001D LDINT R7 8 + 0x901A0E07, // 001E SETMBR R6 K7 R7 + 0x901A1005, // 001F SETMBR R6 K8 R5 + 0x501C0200, // 0020 LDBOOL R7 1 0 + 0x901A1207, // 0021 SETMBR R6 K9 R7 + 0x901A150B, // 0022 SETMBR R6 K10 K11 + 0xA0000000, // 0023 CLOSE R0 + 0x80000000, // 0024 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[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + }), + be_str_weak(check_right_paren), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0018, // 0006 LDINT R3 25 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0000, // 0008 JMPT R2 #000A + 0x50080001, // 0009 LDBOOL R2 0 1 + 0x50080200, // 000A LDBOOL R2 1 0 + 0x80040400, // 000B RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[14]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(1), + /* K3 */ be_nested_str_weak(peek), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(process_value), + /* K6 */ be_nested_str_weak(collect_inline_comment), + /* K7 */ be_nested_str_weak(add), + /* K8 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K9 */ be_nested_str_weak(expr), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(contains), + /* K12 */ be_nested_str_weak(get), + /* K13 */ be_nested_str_weak(instance), + }), + be_str_weak(_process_simple_value_assignment), + &be_const_str_solidified, + ( &(const binstruction[73]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x4C140000, // 0002 LDNIL R5 + 0x20140805, // 0003 NE R5 R4 R5 + 0x7816000D, // 0004 JMPF R5 #0013 + 0x88140901, // 0005 GETMBR R5 R4 K1 + 0x1C140B02, // 0006 EQ R5 R5 K2 + 0x7816000A, // 0007 JMPF R5 #0013 + 0x8C140103, // 0008 GETMET R5 R0 K3 + 0x7C140200, // 0009 CALL R5 1 + 0x4C180000, // 000A LDNIL R6 + 0x1C140A06, // 000B EQ R5 R5 R6 + 0x74160006, // 000C JMPT R5 #0014 + 0x8C140103, // 000D GETMET R5 R0 K3 + 0x7C140200, // 000E CALL R5 1 + 0x88140B01, // 000F GETMBR R5 R5 K1 + 0x541A0017, // 0010 LDINT R6 24 + 0x20140A06, // 0011 NE R5 R5 R6 + 0x74160000, // 0012 JMPT R5 #0014 + 0x50140001, // 0013 LDBOOL R5 0 1 + 0x50140200, // 0014 LDBOOL R5 1 0 + 0x78160001, // 0015 JMPF R5 #0018 + 0x88180904, // 0016 GETMBR R6 R4 K4 + 0x70020000, // 0017 JMP #0019 + 0x4C180000, // 0018 LDNIL R6 + 0x8C1C0105, // 0019 GETMET R7 R0 K5 + 0x5C240400, // 001A MOVE R9 R2 + 0x7C1C0400, // 001B CALL R7 2 + 0x8C200106, // 001C GETMET R8 R0 K6 + 0x7C200200, // 001D CALL R8 1 + 0x8C240107, // 001E GETMET R9 R0 K7 + 0x602C0018, // 001F GETGBL R11 G24 + 0x58300008, // 0020 LDCONST R12 K8 + 0x5C340200, // 0021 MOVE R13 R1 + 0x88380F09, // 0022 GETMBR R14 R7 K9 + 0x5C3C1000, // 0023 MOVE R15 R8 + 0x7C2C0800, // 0024 CALL R11 4 + 0x7C240400, // 0025 CALL R9 2 + 0x7816001C, // 0026 JMPF R5 #0044 + 0x4C240000, // 0027 LDNIL R9 + 0x20240C09, // 0028 NE R9 R6 R9 + 0x78260019, // 0029 JMPF R9 #0044 + 0x8824010A, // 002A GETMBR R9 R0 K10 + 0x8C24130B, // 002B GETMET R9 R9 K11 + 0x5C2C0C00, // 002C MOVE R11 R6 + 0x7C240400, // 002D CALL R9 2 + 0x78260014, // 002E JMPF R9 #0044 + 0x8824010A, // 002F GETMBR R9 R0 K10 + 0x8C24130C, // 0030 GETMET R9 R9 K12 + 0x5C2C0C00, // 0031 MOVE R11 R6 + 0x7C240400, // 0032 CALL R9 2 + 0x4C280000, // 0033 LDNIL R10 + 0x2028120A, // 0034 NE R10 R9 R10 + 0x782A0008, // 0035 JMPF R10 #003F + 0x8828130D, // 0036 GETMBR R10 R9 K13 + 0x4C2C0000, // 0037 LDNIL R11 + 0x2028140B, // 0038 NE R10 R10 R11 + 0x782A0004, // 0039 JMPF R10 #003F + 0x5C280600, // 003A MOVE R10 R3 + 0x5C2C0200, // 003B MOVE R11 R1 + 0x8830130D, // 003C GETMBR R12 R9 K13 + 0x7C280400, // 003D CALL R10 2 + 0x70020003, // 003E JMP #0043 + 0x5C280600, // 003F MOVE R10 R3 + 0x5C2C0200, // 0040 MOVE R11 R1 + 0x4C300000, // 0041 LDNIL R12 + 0x7C280400, // 0042 CALL R10 2 + 0x70020003, // 0043 JMP #0048 + 0x5C240600, // 0044 MOVE R9 R3 + 0x5C280200, // 0045 MOVE R10 R1 + 0x4C2C0000, // 0046 LDNIL R11 + 0x7C240400, // 0047 CALL R9 2 + 0x80000000, // 0048 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[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), + }), + be_str_weak(expect_colon), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001F, // 0006 LDINT R3 32 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F 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[22]) { /* 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(process_event_parameters), + /* K8 */ be_nested_str_weak(expect_colon), + /* K9 */ be_nested_str_weak(event_handler__X25s__X25s), + /* K10 */ be_nested_str_weak(add), + /* K11 */ be_nested_str_weak(def_X20_X25s_X28event_data_X29), + /* K12 */ be_nested_str_weak(value), + /* K13 */ be_nested_str_weak(interrupt), + /* K14 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_current_X28_X29), + /* K15 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_animation_X28_X22_X25s_X22_X29), + /* K16 */ be_nested_str_weak(process_value), + /* K17 */ be_nested_str_weak(CONTEXT_ANIMATION), + /* K18 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28_X25s_X29), + /* K19 */ be_nested_str_weak(expr), + /* K20 */ be_nested_str_weak(end), + /* K21 */ 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[91]) { /* 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 + 0x78120008, // 0013 JMPF R4 #001D + 0x8C100102, // 0014 GETMET R4 R0 K2 + 0x7C100200, // 0015 CALL R4 1 + 0x88100906, // 0016 GETMBR R4 R4 K6 + 0x54160017, // 0017 LDINT R5 24 + 0x1C100805, // 0018 EQ R4 R4 R5 + 0x78120002, // 0019 JMPF R4 #001D + 0x8C100107, // 001A GETMET R4 R0 K7 + 0x7C100200, // 001B CALL R4 1 + 0x5C0C0800, // 001C MOVE R3 R4 + 0x8C100108, // 001D GETMET R4 R0 K8 + 0x7C100200, // 001E CALL R4 1 + 0x60100018, // 001F GETGBL R4 G24 + 0x58140009, // 0020 LDCONST R5 K9 + 0x5C180200, // 0021 MOVE R6 R1 + 0x5C1C0400, // 0022 MOVE R7 R2 + 0x7C100600, // 0023 CALL R4 3 + 0x8C14010A, // 0024 GETMET R5 R0 K10 + 0x601C0018, // 0025 GETGBL R7 G24 + 0x5820000B, // 0026 LDCONST R8 K11 + 0x5C240800, // 0027 MOVE R9 R4 + 0x7C1C0400, // 0028 CALL R7 2 + 0x7C140400, // 0029 CALL R5 2 + 0x8C140102, // 002A GETMET R5 R0 K2 + 0x7C140200, // 002B CALL R5 1 + 0x4C180000, // 002C LDNIL R6 + 0x20180A06, // 002D NE R6 R5 R6 + 0x781A001F, // 002E JMPF R6 #004F + 0x88180B06, // 002F GETMBR R6 R5 K6 + 0x1C180D04, // 0030 EQ R6 R6 K4 + 0x781A0013, // 0031 JMPF R6 #0046 + 0x88180B0C, // 0032 GETMBR R6 R5 K12 + 0x1C180D0D, // 0033 EQ R6 R6 K13 + 0x781A0010, // 0034 JMPF R6 #0046 + 0x8C180100, // 0035 GETMET R6 R0 K0 + 0x7C180200, // 0036 CALL R6 1 + 0x8C180101, // 0037 GETMET R6 R0 K1 + 0x7C180200, // 0038 CALL R6 1 + 0x1C1C0D02, // 0039 EQ R7 R6 K2 + 0x781E0003, // 003A JMPF R7 #003F + 0x8C1C010A, // 003B GETMET R7 R0 K10 + 0x5824000E, // 003C LDCONST R9 K14 + 0x7C1C0400, // 003D CALL R7 2 + 0x70020005, // 003E JMP #0045 + 0x8C1C010A, // 003F GETMET R7 R0 K10 + 0x60240018, // 0040 GETGBL R9 G24 + 0x5828000F, // 0041 LDCONST R10 K15 + 0x5C2C0C00, // 0042 MOVE R11 R6 + 0x7C240400, // 0043 CALL R9 2 + 0x7C1C0400, // 0044 CALL R7 2 + 0x70020008, // 0045 JMP #004F + 0x8C180110, // 0046 GETMET R6 R0 K16 + 0x88200111, // 0047 GETMBR R8 R0 K17 + 0x7C180400, // 0048 CALL R6 2 + 0x8C1C010A, // 0049 GETMET R7 R0 K10 + 0x60240018, // 004A GETGBL R9 G24 + 0x58280012, // 004B LDCONST R10 K18 + 0x882C0D13, // 004C GETMBR R11 R6 K19 + 0x7C240400, // 004D CALL R9 2 + 0x7C1C0400, // 004E CALL R7 2 + 0x8C18010A, // 004F GETMET R6 R0 K10 + 0x58200014, // 0050 LDCONST R8 K20 + 0x7C180400, // 0051 CALL R6 2 + 0x8C18010A, // 0052 GETMET R6 R0 K10 + 0x60200018, // 0053 GETGBL R8 G24 + 0x58240015, // 0054 LDCONST R9 K21 + 0x5C280200, // 0055 MOVE R10 R1 + 0x5C2C0800, // 0056 MOVE R11 R4 + 0x5C300600, // 0057 MOVE R12 R3 + 0x7C200800, // 0058 CALL R8 4 + 0x7C180400, // 0059 CALL R6 2 + 0x80000000, // 005A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[16]) { /* 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(next), + /* K8 */ be_nested_str_weak(process_unary_expression), + /* K9 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K10 */ be_nested_str_weak(expr), + /* K11 */ be_nested_str_weak(has_dynamic), + /* K12 */ be_nested_str_weak(has_dangerous), + /* K13 */ be_nested_str_weak(return_type), + /* K14 */ be_nested_str_weak(instance_for_validation), + /* K15 */ be_nested_str_weak(process_primary_expression), + }), + be_str_weak(process_unary_expression), + &be_const_str_solidified, + ( &(const binstruction[54]) { /* 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 + 0x541A0009, // 000E LDINT R6 10 + 0x1C140A06, // 000F EQ R5 R5 R6 + 0x78160012, // 0010 JMPF R5 #0024 + 0x8C140107, // 0011 GETMET R5 R0 K7 + 0x7C140200, // 0012 CALL R5 1 + 0x8C140108, // 0013 GETMET R5 R0 K8 + 0x5C1C0200, // 0014 MOVE R7 R1 + 0x50200000, // 0015 LDBOOL R8 0 0 + 0x5C240600, // 0016 MOVE R9 R3 + 0x7C140800, // 0017 CALL R5 4 + 0x8C180103, // 0018 GETMET R6 R0 K3 + 0x60200018, // 0019 GETGBL R8 G24 + 0x58240009, // 001A LDCONST R9 K9 + 0x88280B0A, // 001B GETMBR R10 R5 K10 + 0x7C200400, // 001C CALL R8 2 + 0x88240B0B, // 001D GETMBR R9 R5 K11 + 0x88280B0C, // 001E GETMBR R10 R5 K12 + 0x502C0200, // 001F LDBOOL R11 1 0 + 0x88300B0D, // 0020 GETMBR R12 R5 K13 + 0x88340B0E, // 0021 GETMBR R13 R5 K14 + 0x7C180E00, // 0022 CALL R6 7 + 0x80040C00, // 0023 RET 1 R6 + 0x88140906, // 0024 GETMBR R5 R4 K6 + 0x541A0008, // 0025 LDINT R6 9 + 0x1C140A06, // 0026 EQ R5 R5 R6 + 0x78160007, // 0027 JMPF R5 #0030 + 0x8C140107, // 0028 GETMET R5 R0 K7 + 0x7C140200, // 0029 CALL R5 1 + 0x8C140108, // 002A GETMET R5 R0 K8 + 0x5C1C0200, // 002B MOVE R7 R1 + 0x50200000, // 002C LDBOOL R8 0 0 + 0x5C240600, // 002D MOVE R9 R3 + 0x7C140800, // 002E CALL R5 4 + 0x80040A00, // 002F RET 1 R5 + 0x8C14010F, // 0030 GETMET R5 R0 K15 + 0x5C1C0200, // 0031 MOVE R7 R1 + 0x5C200400, // 0032 MOVE R8 R2 + 0x5C240600, // 0033 MOVE R9 R3 + 0x7C140800, // 0034 CALL R5 4 + 0x80040A00, // 0035 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[ 4]) { /* 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(next), + }), + be_str_weak(skip_whitespace_including_newlines), + &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 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000A, // 0007 JMPF R2 #0013 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0x540E0024, // 0009 LDINT R3 37 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x740A0003, // 000B JMPT R2 #0010 + 0x88080302, // 000C GETMBR R2 R1 K2 + 0x540E0022, // 000D LDINT R3 35 + 0x1C080403, // 000E EQ R2 R2 R3 + 0x780A0002, // 000F JMPF R2 #0013 + 0x8C080103, // 0010 GETMET R2 R0 K3 + 0x7C080200, // 0011 CALL R2 1 + 0x70020000, // 0012 JMP #0014 + 0x70020000, // 0013 JMP #0015 + 0x7001FFEA, // 0014 JMP #0000 + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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[20]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_paren), + /* K3 */ be_nested_str_weak(skip_whitespace), + /* K4 */ be_nested_str_weak(process_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(next), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K14 */ be_nested_str_weak(expect_right_paren), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_const_int(0), + /* K17 */ be_const_int(1), + /* K18 */ be_nested_str_weak(_X2C_X20), + /* K19 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(process_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[81]) { /* 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 + 0x740E0032, // 0006 JMPT R3 #003A + 0x8C0C0102, // 0007 GETMET R3 R0 K2 + 0x7C0C0200, // 0008 CALL R3 1 + 0x740E002F, // 0009 JMPT R3 #003A + 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 + 0x70020029, // 000F JMP #003A + 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 + 0x7812000A, // 0026 JMPF R4 #0032 + 0x8C100109, // 0027 GETMET R4 R0 K9 + 0x7C100200, // 0028 CALL R4 1 + 0x8810090A, // 0029 GETMBR R4 R4 K10 + 0x5416001D, // 002A LDINT R5 30 + 0x1C100805, // 002B EQ R4 R4 R5 + 0x78120004, // 002C JMPF R4 #0032 + 0x8C10010B, // 002D GETMET R4 R0 K11 + 0x7C100200, // 002E CALL R4 1 + 0x8C100103, // 002F GETMET R4 R0 K3 + 0x7C100200, // 0030 CALL R4 1 + 0x70020006, // 0031 JMP #0039 + 0x8C100102, // 0032 GETMET R4 R0 K2 + 0x7C100200, // 0033 CALL R4 1 + 0x74120003, // 0034 JMPT R4 #0039 + 0x8C10010C, // 0035 GETMET R4 R0 K12 + 0x5818000D, // 0036 LDCONST R6 K13 + 0x7C100400, // 0037 CALL R4 2 + 0x70020000, // 0038 JMP #003A + 0x7001FFC9, // 0039 JMP #0004 + 0x8C0C010E, // 003A GETMET R3 R0 K14 + 0x7C0C0200, // 003B CALL R3 1 + 0x580C000F, // 003C LDCONST R3 K15 + 0x60100010, // 003D GETGBL R4 G16 + 0x6014000C, // 003E GETGBL R5 G12 + 0x5C180400, // 003F MOVE R6 R2 + 0x7C140200, // 0040 CALL R5 1 + 0x04140B11, // 0041 SUB R5 R5 K17 + 0x40162005, // 0042 CONNECT R5 K16 R5 + 0x7C100200, // 0043 CALL R4 1 + 0xA8020007, // 0044 EXBLK 0 #004D + 0x5C140800, // 0045 MOVE R5 R4 + 0x7C140000, // 0046 CALL R5 0 + 0x24180B10, // 0047 GT R6 R5 K16 + 0x781A0000, // 0048 JMPF R6 #004A + 0x000C0712, // 0049 ADD R3 R3 K18 + 0x94180405, // 004A GETIDX R6 R2 R5 + 0x000C0606, // 004B ADD R3 R3 R6 + 0x7001FFF7, // 004C JMP #0045 + 0x58100013, // 004D LDCONST R4 K19 + 0xAC100200, // 004E CATCH R4 1 0 + 0xB0080000, // 004F RAISE 2 R0 R0 + 0x80040600, // 0050 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** 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_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[15]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(value), + /* K3 */ be_nested_str_weak(next), + /* K4 */ be_nested_str_weak(convert_time_to_ms), + /* K5 */ be_const_int(2), + /* K6 */ be_const_int(1), + /* K7 */ be_nested_str_weak(_validate_object_reference), + /* K8 */ be_nested_str_weak(duration), + /* K9 */ be_nested_str_weak(process_primary_expression), + /* K10 */ be_nested_str_weak(CONTEXT_TIME), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20time_X20value), + /* K14 */ be_nested_str_weak(1000), + }), + be_str_weak(process_time_value), + &be_const_str_solidified, + ( &(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 + 0x780A000D, // 0004 JMPF R2 #0013 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0004, // 0006 LDINT R3 5 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0009, // 0008 JMPF R2 #0013 + 0x88080302, // 0009 GETMBR R2 R1 K2 + 0x8C0C0103, // 000A GETMET R3 R0 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x600C0008, // 000C GETGBL R3 G8 + 0x8C100104, // 000D GETMET R4 R0 K4 + 0x5C180400, // 000E MOVE R6 R2 + 0x7C100400, // 000F CALL R4 2 + 0x7C0C0200, // 0010 CALL R3 1 + 0x80040600, // 0011 RET 1 R3 + 0x7002002A, // 0012 JMP #003E + 0x4C080000, // 0013 LDNIL R2 + 0x20080202, // 0014 NE R2 R1 R2 + 0x780A0010, // 0015 JMPF R2 #0027 + 0x88080301, // 0016 GETMBR R2 R1 K1 + 0x1C080505, // 0017 EQ R2 R2 K5 + 0x780A000D, // 0018 JMPF R2 #0027 + 0x88080302, // 0019 GETMBR R2 R1 K2 + 0x8C0C0103, // 001A GETMET R3 R0 K3 + 0x7C0C0200, // 001B CALL R3 1 + 0x600C0008, // 001C GETGBL R3 G8 + 0x60100009, // 001D GETGBL R4 G9 + 0x6014000A, // 001E GETGBL R5 G10 + 0x5C180400, // 001F MOVE R6 R2 + 0x7C140200, // 0020 CALL R5 1 + 0x7C100200, // 0021 CALL R4 1 + 0x541603E7, // 0022 LDINT R5 1000 + 0x08100805, // 0023 MUL R4 R4 R5 + 0x7C0C0200, // 0024 CALL R3 1 + 0x80040600, // 0025 RET 1 R3 + 0x70020016, // 0026 JMP #003E + 0x4C080000, // 0027 LDNIL R2 + 0x20080202, // 0028 NE R2 R1 R2 + 0x780A000F, // 0029 JMPF R2 #003A + 0x88080301, // 002A GETMBR R2 R1 K1 + 0x1C080506, // 002B EQ R2 R2 K6 + 0x780A000C, // 002C JMPF R2 #003A + 0x88080302, // 002D GETMBR R2 R1 K2 + 0x8C0C0107, // 002E GETMET R3 R0 K7 + 0x5C140400, // 002F MOVE R5 R2 + 0x58180008, // 0030 LDCONST R6 K8 + 0x7C0C0600, // 0031 CALL R3 3 + 0x8C0C0109, // 0032 GETMET R3 R0 K9 + 0x8814010A, // 0033 GETMBR R5 R0 K10 + 0x50180200, // 0034 LDBOOL R6 1 0 + 0x501C0000, // 0035 LDBOOL R7 0 0 + 0x7C0C0800, // 0036 CALL R3 4 + 0x8810070B, // 0037 GETMBR R4 R3 K11 + 0x80040800, // 0038 RET 1 R4 + 0x70020003, // 0039 JMP #003E + 0x8C08010C, // 003A GETMET R2 R0 K12 + 0x5810000D, // 003B LDCONST R4 K13 + 0x7C080400, // 003C CALL R2 2 + 0x80061C00, // 003D RET 1 K14 + 0x80000000, // 003E 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_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[14]) { /* 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_const_int(3), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), + /* K7 */ be_nested_str_weak(skip_statement), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(expect_right_paren), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(process_log_call), + /* K12 */ be_nested_str_weak(fluent), + /* K13 */ be_nested_str_weak(add), + }), + be_str_weak(process_log_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* 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 + 0x740A0002, // 0008 JMPT R2 #000C + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0x20080504, // 000A NE R2 R2 K4 + 0x780A0005, // 000B JMPF R2 #0012 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x58100006, // 000D LDCONST R4 K6 + 0x7C080400, // 000E CALL R2 2 + 0x8C080107, // 000F GETMET R2 R0 K7 + 0x7C080200, // 0010 CALL R2 1 + 0x80000400, // 0011 RET 0 + 0x88080308, // 0012 GETMBR R2 R1 K8 + 0x8C0C0100, // 0013 GETMET R3 R0 K0 + 0x7C0C0200, // 0014 CALL R3 1 + 0x8C0C0109, // 0015 GETMET R3 R0 K9 + 0x7C0C0200, // 0016 CALL R3 1 + 0x8C0C010A, // 0017 GETMET R3 R0 K10 + 0x7C0C0200, // 0018 CALL R3 1 + 0x8C10010B, // 0019 GETMET R4 R0 K11 + 0x5C180400, // 001A MOVE R6 R2 + 0x581C000C, // 001B LDCONST R7 K12 + 0x5C200600, // 001C MOVE R8 R3 + 0x7C100800, // 001D CALL R4 4 + 0x8C14010D, // 001E GETMET R5 R0 K13 + 0x5C1C0800, // 001F MOVE R7 R4 + 0x7C140400, // 0020 CALL R5 2 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: transpile_template_animation_body +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_transpile_template_animation_body, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_const_int(1), + /* K5 */ be_nested_str_weak(process_statement), + /* K6 */ be_nested_str_weak(run_statements), + /* K7 */ be_nested_str_weak(name), + /* K8 */ be_nested_str_weak(comment), + /* K9 */ be_nested_str_weak(add), + /* K10 */ be_nested_str_weak(self_X2Eadd_X28_X25s__X29_X25s), + /* K11 */ be_nested_str_weak(stop_iteration), + /* K12 */ be_nested_str_weak(join_output), + /* K13 */ be_nested_str_weak(error), + /* K14 */ be_nested_str_weak(Template_X20animation_X20body_X20transpilation_X20failed_X3A_X20_X25s), + }), + be_str_weak(transpile_template_animation_body), + &be_const_str_solidified, + ( &(const binstruction[78]) { /* code */ + 0xA8020041, // 0000 EXBLK 0 #0043 + 0x58040000, // 0001 LDCONST R1 K0 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x740A001F, // 0004 JMPT R2 #0025 + 0x8C080102, // 0005 GETMET R2 R0 K2 + 0x7C080200, // 0006 CALL R2 1 + 0x4C0C0000, // 0007 LDNIL R3 + 0x200C0403, // 0008 NE R3 R2 R3 + 0x780E0006, // 0009 JMPF R3 #0011 + 0x880C0503, // 000A GETMBR R3 R2 K3 + 0x5412001A, // 000B LDINT R4 27 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0002, // 000D JMPF R3 #0011 + 0x1C0C0300, // 000E EQ R3 R1 K0 + 0x780E0000, // 000F JMPF R3 #0011 + 0x70020013, // 0010 JMP #0025 + 0x4C0C0000, // 0011 LDNIL R3 + 0x200C0403, // 0012 NE R3 R2 R3 + 0x780E0005, // 0013 JMPF R3 #001A + 0x880C0503, // 0014 GETMBR R3 R2 K3 + 0x54120019, // 0015 LDINT R4 26 + 0x1C0C0604, // 0016 EQ R3 R3 R4 + 0x780E0001, // 0017 JMPF R3 #001A + 0x00040304, // 0018 ADD R1 R1 K4 + 0x70020007, // 0019 JMP #0022 + 0x4C0C0000, // 001A LDNIL R3 + 0x200C0403, // 001B NE R3 R2 R3 + 0x780E0004, // 001C JMPF R3 #0022 + 0x880C0503, // 001D GETMBR R3 R2 K3 + 0x5412001A, // 001E LDINT R4 27 + 0x1C0C0604, // 001F EQ R3 R3 R4 + 0x780E0000, // 0020 JMPF R3 #0022 + 0x04040304, // 0021 SUB R1 R1 K4 + 0x8C0C0105, // 0022 GETMET R3 R0 K5 + 0x7C0C0200, // 0023 CALL R3 1 + 0x7001FFDC, // 0024 JMP #0002 + 0x6008000C, // 0025 GETGBL R2 G12 + 0x880C0106, // 0026 GETMBR R3 R0 K6 + 0x7C080200, // 0027 CALL R2 1 + 0x24080500, // 0028 GT R2 R2 K0 + 0x780A0012, // 0029 JMPF R2 #003D + 0x60080010, // 002A GETGBL R2 G16 + 0x880C0106, // 002B GETMBR R3 R0 K6 + 0x7C080200, // 002C CALL R2 1 + 0xA802000B, // 002D EXBLK 0 #003A + 0x5C0C0400, // 002E MOVE R3 R2 + 0x7C0C0000, // 002F CALL R3 0 + 0x94100707, // 0030 GETIDX R4 R3 K7 + 0x94140708, // 0031 GETIDX R5 R3 K8 + 0x8C180109, // 0032 GETMET R6 R0 K9 + 0x60200018, // 0033 GETGBL R8 G24 + 0x5824000A, // 0034 LDCONST R9 K10 + 0x5C280800, // 0035 MOVE R10 R4 + 0x5C2C0A00, // 0036 MOVE R11 R5 + 0x7C200600, // 0037 CALL R8 3 + 0x7C180400, // 0038 CALL R6 2 + 0x7001FFF3, // 0039 JMP #002E + 0x5808000B, // 003A LDCONST R2 K11 + 0xAC080200, // 003B CATCH R2 1 0 + 0xB0080000, // 003C RAISE 2 R0 R0 + 0x8C08010C, // 003D GETMET R2 R0 K12 + 0x7C080200, // 003E CALL R2 1 + 0xA8040001, // 003F EXBLK 1 1 + 0x80040400, // 0040 RET 1 R2 + 0xA8040001, // 0041 EXBLK 1 1 + 0x70020009, // 0042 JMP #004D + 0xAC040002, // 0043 CATCH R1 0 2 + 0x70020006, // 0044 JMP #004C + 0x8C0C010D, // 0045 GETMET R3 R0 K13 + 0x60140018, // 0046 GETGBL R5 G24 + 0x5818000E, // 0047 LDCONST R6 K14 + 0x5C1C0400, // 0048 MOVE R7 R2 + 0x7C140400, // 0049 CALL R5 2 + 0x7C0C0400, // 004A CALL R3 2 + 0x70020000, // 004B JMP #004D + 0xB0080000, // 004C RAISE 2 R0 R0 + 0x80000000, // 004D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_standalone_log +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* 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_const_int(3), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), + /* K7 */ be_nested_str_weak(skip_statement), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(expect_right_paren), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(process_log_call), + /* K12 */ be_nested_str_weak(standalone), + /* K13 */ be_nested_str_weak(add), + }), + be_str_weak(process_standalone_log), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* 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 + 0x740A0002, // 0008 JMPT R2 #000C + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0x20080504, // 000A NE R2 R2 K4 + 0x780A0005, // 000B JMPF R2 #0012 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x58100006, // 000D LDCONST R4 K6 + 0x7C080400, // 000E CALL R2 2 + 0x8C080107, // 000F GETMET R2 R0 K7 + 0x7C080200, // 0010 CALL R2 1 + 0x80000400, // 0011 RET 0 + 0x88080308, // 0012 GETMBR R2 R1 K8 + 0x8C0C0100, // 0013 GETMET R3 R0 K0 + 0x7C0C0200, // 0014 CALL R3 1 + 0x8C0C0109, // 0015 GETMET R3 R0 K9 + 0x7C0C0200, // 0016 CALL R3 1 + 0x8C0C010A, // 0017 GETMET R3 R0 K10 + 0x7C0C0200, // 0018 CALL R3 1 + 0x8C10010B, // 0019 GETMET R4 R0 K11 + 0x5C180400, // 001A MOVE R6 R2 + 0x581C000C, // 001B LDCONST R7 K12 + 0x5C200600, // 001C MOVE R8 R3 + 0x7C100800, // 001D CALL R4 4 + 0x8C14010D, // 001E GETMET R5 R0 K13 + 0x5C1C0800, // 001F MOVE R7 R4 + 0x7C140400, // 0020 CALL R5 2 + 0x80000000, // 0021 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[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), + }), + be_str_weak(expect_comma), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001D, // 0006 LDINT R3 30 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _is_valid_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__is_valid_identifier, /* name */ be_nested_proto( 8, /* nstack */ 2, /* argc */ @@ -15926,55 +15720,83 @@ be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* nam 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(process_function_arguments), - /* K3 */ be_nested_str_weak(), - /* K4 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K5 */ be_nested_str_weak(engine), - /* K6 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(User_X20functions_X20must_X20be_X20called_X20with_X20parentheses_X3A_X20user_X2Efunction_name_X28_X29), - /* K9 */ be_nested_str_weak(nil), + ( &(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(_process_user_function_call), + be_str_weak(_is_valid_identifier), &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0017, // 0004 JMPF R2 #001D - 0x8C080100, // 0005 GETMET R2 R0 K0 - 0x7C080200, // 0006 CALL R2 1 - 0x88080501, // 0007 GETMBR R2 R2 K1 - 0x540E0017, // 0008 LDINT R3 24 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0011, // 000A JMPF R2 #001D - 0x8C080102, // 000B GETMET R2 R0 K2 - 0x50100200, // 000C LDBOOL R4 1 0 - 0x7C080400, // 000D CALL R2 2 - 0x200C0503, // 000E NE R3 R2 K3 - 0x780E0004, // 000F JMPF R3 #0015 - 0x600C0018, // 0010 GETGBL R3 G24 - 0x58100004, // 0011 LDCONST R4 K4 - 0x5C140400, // 0012 MOVE R5 R2 - 0x7C0C0400, // 0013 CALL R3 2 - 0x70020000, // 0014 JMP #0016 - 0x580C0005, // 0015 LDCONST R3 K5 - 0x60100018, // 0016 GETGBL R4 G24 - 0x58140006, // 0017 LDCONST R5 K6 - 0x5C180200, // 0018 MOVE R6 R1 - 0x5C1C0600, // 0019 MOVE R7 R3 - 0x7C100600, // 001A CALL R4 3 - 0x80040800, // 001B RET 1 R4 - 0x70020003, // 001C JMP #0021 - 0x8C080107, // 001D GETMET R2 R0 K7 - 0x58100008, // 001E LDCONST R4 K8 - 0x7C080400, // 001F CALL R2 2 - 0x80061200, // 0020 RET 1 K9 - 0x80000000, // 0021 RET 0 + ( &(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 }) ) ); @@ -15982,11 +15804,11 @@ be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* nam /******************************************************************** -** Solidified function: process_animation +** Solidified function: process_color ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ be_nested_proto( - 16, /* nstack */ + 18, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -16006,7 +15828,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ 1, /* has constants */ ( &(const bvalue[ 2]) { /* constants */ /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(create_animation), + /* K1 */ be_nested_str_weak(create_color), }), be_str_weak(_X3Clambda_X3E), &be_const_str_solidified, @@ -16022,11 +15844,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ ), }), 1, /* has constants */ - ( &(const bvalue[33]) { /* 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), + /* 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), @@ -16040,26 +15862,32 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ /* K14 */ be_nested_str_weak(symbol_table), /* K15 */ be_nested_str_weak(get), /* K16 */ be_nested_str_weak(process_function_arguments), - /* K17 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K18 */ be_nested_str_weak(engine), - /* K19 */ be_nested_str_weak(add), - /* K20 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), - /* K21 */ be_nested_str_weak(create_animation), - /* K22 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), - /* K23 */ be_nested_str_weak(error), - /* K24 */ 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), - /* K25 */ be_nested_str_weak(is_builtin), - /* K26 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), - /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_animation_X28engine_X29_X25s), - /* K28 */ be_nested_str_weak(_create_instance_for_validation), - /* K29 */ be_nested_str_weak(_process_named_arguments_for_animation), - /* K30 */ be_nested_str_weak(_X25s_), - /* K31 */ be_nested_str_weak(_process_simple_value_assignment), - /* K32 */ be_nested_str_weak(CONTEXT_ANIMATION), + /* K17 */ be_nested_str_weak(_split_function_arguments), + /* K18 */ be_nested_str_weak(instance), + /* K19 */ be_nested_str_weak(contains), + /* K20 */ be_nested_str_weak(params), + /* K21 */ be_nested_str_weak(find), + /* K22 */ be_nested_str_weak(param_types), + /* K23 */ be_nested_str_weak(_validate_template_call_arguments), + /* K24 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K25 */ be_nested_str_weak(engine), + /* K26 */ be_nested_str_weak(add), + /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_template_X28_X25s_X29_X25s), + /* K28 */ be_nested_str_weak(create_color), + /* 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_animation), + be_str_weak(process_color), &be_const_str_solidified, - ( &(const binstruction[186]) { /* code */ + ( &(const binstruction[204]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x8C040101, // 0002 GETMET R1 R0 K1 @@ -16081,18 +15909,18 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ 0x740E0002, // 0012 JMPT R3 #0016 0x880C0507, // 0013 GETMBR R3 R2 K7 0x1C0C0709, // 0014 EQ R3 R3 K9 - 0x780E009C, // 0015 JMPF R3 #00B3 + 0x780E00AE, // 0015 JMPF R3 #00C5 0x8C0C010A, // 0016 GETMET R3 R0 K10 0x7C0C0200, // 0017 CALL R3 1 0x4C100000, // 0018 LDNIL R4 0x200C0604, // 0019 NE R3 R3 R4 - 0x780E0097, // 001A JMPF R3 #00B3 + 0x780E00A9, // 001A JMPF R3 #00C5 0x8C0C010A, // 001B GETMET R3 R0 K10 0x7C0C0200, // 001C CALL R3 1 0x880C0707, // 001D GETMBR R3 R3 K7 0x54120017, // 001E LDINT R4 24 0x1C0C0604, // 001F EQ R3 R3 R4 - 0x780E0091, // 0020 JMPF R3 #00B3 + 0x780E00A3, // 0020 JMPF R3 #00C5 0x880C050B, // 0021 GETMBR R3 R2 K11 0x8C100100, // 0022 GETMET R4 R0 K0 0x7C100200, // 0023 CALL R4 1 @@ -16121,131 +15949,475 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ 0x7C140400, // 003A CALL R5 2 0x4C180000, // 003B LDNIL R6 0x20180A06, // 003C NE R6 R5 R6 - 0x781A001D, // 003D JMPF R6 #005C + 0x781A003D, // 003D JMPF R6 #007C 0x88180B07, // 003E GETMBR R6 R5 K7 0x541E000D, // 003F LDINT R7 14 0x1C180C07, // 0040 EQ R6 R6 R7 - 0x781A0019, // 0041 JMPF R6 #005C + 0x781A0039, // 0041 JMPF R6 #007C 0x8C180110, // 0042 GETMET R6 R0 K16 0x50200000, // 0043 LDBOOL R8 0 0 0x7C180400, // 0044 CALL R6 2 0x201C0D0C, // 0045 NE R7 R6 K12 - 0x781E0004, // 0046 JMPF R7 #004C - 0x601C0018, // 0047 GETGBL R7 G24 - 0x58200011, // 0048 LDCONST R8 K17 - 0x5C240C00, // 0049 MOVE R9 R6 - 0x7C1C0400, // 004A CALL R7 2 - 0x70020000, // 004B JMP #004D - 0x581C0012, // 004C LDCONST R7 K18 - 0x8C200113, // 004D GETMET R8 R0 K19 - 0x60280018, // 004E GETGBL R10 G24 - 0x582C0014, // 004F LDCONST R11 K20 - 0x5C300200, // 0050 MOVE R12 R1 - 0x5C340600, // 0051 MOVE R13 R3 - 0x5C380E00, // 0052 MOVE R14 R7 - 0x5C3C0800, // 0053 MOVE R15 R4 - 0x7C280A00, // 0054 CALL R10 5 - 0x7C200400, // 0055 CALL R8 2 - 0x8820010E, // 0056 GETMBR R8 R0 K14 - 0x8C201115, // 0057 GETMET R8 R8 K21 - 0x5C280200, // 0058 MOVE R10 R1 - 0x4C2C0000, // 0059 LDNIL R11 - 0x7C200600, // 005A CALL R8 3 - 0x70020055, // 005B JMP #00B2 - 0x4C180000, // 005C LDNIL R6 - 0x20180A06, // 005D NE R6 R5 R6 - 0x781A001D, // 005E JMPF R6 #007D - 0x88180B07, // 005F GETMBR R6 R5 K7 - 0x541E0004, // 0060 LDINT R7 5 - 0x1C180C07, // 0061 EQ R6 R6 R7 - 0x781A0019, // 0062 JMPF R6 #007D - 0x8C180110, // 0063 GETMET R6 R0 K16 - 0x50200000, // 0064 LDBOOL R8 0 0 - 0x7C180400, // 0065 CALL R6 2 - 0x201C0D0C, // 0066 NE R7 R6 K12 - 0x781E0004, // 0067 JMPF R7 #006D - 0x601C0018, // 0068 GETGBL R7 G24 - 0x58200011, // 0069 LDCONST R8 K17 - 0x5C240C00, // 006A MOVE R9 R6 - 0x7C1C0400, // 006B CALL R7 2 - 0x70020000, // 006C JMP #006E - 0x581C0012, // 006D LDCONST R7 K18 - 0x8C200113, // 006E GETMET R8 R0 K19 - 0x60280018, // 006F GETGBL R10 G24 - 0x582C0016, // 0070 LDCONST R11 K22 - 0x5C300200, // 0071 MOVE R12 R1 - 0x5C340600, // 0072 MOVE R13 R3 - 0x5C380E00, // 0073 MOVE R14 R7 - 0x5C3C0800, // 0074 MOVE R15 R4 - 0x7C280A00, // 0075 CALL R10 5 - 0x7C200400, // 0076 CALL R8 2 - 0x8820010E, // 0077 GETMBR R8 R0 K14 - 0x8C201115, // 0078 GETMET R8 R8 K21 - 0x5C280200, // 0079 MOVE R10 R1 - 0x4C2C0000, // 007A LDNIL R11 - 0x7C200600, // 007B CALL R8 3 - 0x70020034, // 007C JMP #00B2 - 0x4C180000, // 007D LDNIL R6 - 0x1C180A06, // 007E EQ R6 R5 R6 - 0x741A0003, // 007F JMPT R6 #0084 - 0x88180B07, // 0080 GETMBR R6 R5 K7 - 0x541E0007, // 0081 LDINT R7 8 - 0x20180C07, // 0082 NE R6 R6 R7 - 0x781A0008, // 0083 JMPF R6 #008D - 0x8C180117, // 0084 GETMET R6 R0 K23 - 0x60200018, // 0085 GETGBL R8 G24 - 0x58240018, // 0086 LDCONST R9 K24 - 0x5C280600, // 0087 MOVE R10 R3 - 0x7C200400, // 0088 CALL R8 2 - 0x7C180400, // 0089 CALL R6 2 - 0x8C180104, // 008A GETMET R6 R0 K4 - 0x7C180200, // 008B CALL R6 1 - 0x80000C00, // 008C RET 0 - 0x88180B19, // 008D GETMBR R6 R5 K25 - 0x781A0008, // 008E JMPF R6 #0098 - 0x8C180113, // 008F GETMET R6 R0 K19 - 0x60200018, // 0090 GETGBL R8 G24 - 0x5824001A, // 0091 LDCONST R9 K26 - 0x5C280200, // 0092 MOVE R10 R1 - 0x5C2C0600, // 0093 MOVE R11 R3 - 0x5C300800, // 0094 MOVE R12 R4 - 0x7C200800, // 0095 CALL R8 4 - 0x7C180400, // 0096 CALL R6 2 - 0x70020007, // 0097 JMP #00A0 - 0x8C180113, // 0098 GETMET R6 R0 K19 - 0x60200018, // 0099 GETGBL R8 G24 - 0x5824001B, // 009A LDCONST R9 K27 - 0x5C280200, // 009B MOVE R10 R1 - 0x5C2C0600, // 009C MOVE R11 R3 - 0x5C300800, // 009D MOVE R12 R4 - 0x7C200800, // 009E CALL R8 4 + 0x781E0003, // 0046 JMPF R7 #004B + 0x8C1C0111, // 0047 GETMET R7 R0 K17 + 0x5C240C00, // 0048 MOVE R9 R6 + 0x7C1C0400, // 0049 CALL R7 2 + 0x70020001, // 004A JMP #004D + 0x601C0012, // 004B GETGBL R7 G18 + 0x7C1C0000, // 004C CALL R7 0 + 0x88200B12, // 004D GETMBR R8 R5 K18 + 0x4C240000, // 004E LDNIL R9 + 0x20241009, // 004F NE R9 R8 R9 + 0x78260013, // 0050 JMPF R9 #0065 + 0x8C241113, // 0051 GETMET R9 R8 K19 + 0x582C0014, // 0052 LDCONST R11 K20 + 0x7C240400, // 0053 CALL R9 2 + 0x7826000F, // 0054 JMPF R9 #0065 + 0x94241114, // 0055 GETIDX R9 R8 K20 + 0x8C281115, // 0056 GETMET R10 R8 K21 + 0x58300016, // 0057 LDCONST R12 K22 + 0x60340013, // 0058 GETGBL R13 G19 + 0x7C340000, // 0059 CALL R13 0 + 0x7C280600, // 005A CALL R10 3 + 0x8C2C0117, // 005B GETMET R11 R0 K23 + 0x5C340600, // 005C MOVE R13 R3 + 0x5C380E00, // 005D MOVE R14 R7 + 0x5C3C1200, // 005E MOVE R15 R9 + 0x5C401400, // 005F MOVE R16 R10 + 0x7C2C0A00, // 0060 CALL R11 5 + 0x742E0002, // 0061 JMPT R11 #0065 + 0x8C2C0104, // 0062 GETMET R11 R0 K4 + 0x7C2C0200, // 0063 CALL R11 1 + 0x80001600, // 0064 RET 0 + 0x20240D0C, // 0065 NE R9 R6 K12 + 0x78260004, // 0066 JMPF R9 #006C + 0x60240018, // 0067 GETGBL R9 G24 + 0x58280018, // 0068 LDCONST R10 K24 + 0x5C2C0C00, // 0069 MOVE R11 R6 + 0x7C240400, // 006A CALL R9 2 + 0x70020000, // 006B JMP #006D + 0x58240019, // 006C LDCONST R9 K25 + 0x8C28011A, // 006D GETMET R10 R0 K26 + 0x60300018, // 006E GETGBL R12 G24 + 0x5834001B, // 006F LDCONST R13 K27 + 0x5C380200, // 0070 MOVE R14 R1 + 0x5C3C0600, // 0071 MOVE R15 R3 + 0x5C401200, // 0072 MOVE R16 R9 + 0x5C440800, // 0073 MOVE R17 R4 + 0x7C300A00, // 0074 CALL R12 5 + 0x7C280400, // 0075 CALL R10 2 + 0x8828010E, // 0076 GETMBR R10 R0 K14 + 0x8C28151C, // 0077 GETMET R10 R10 K28 + 0x5C300200, // 0078 MOVE R12 R1 + 0x4C340000, // 0079 LDNIL R13 + 0x7C280600, // 007A CALL R10 3 + 0x70020047, // 007B JMP #00C4 + 0x4C180000, // 007C LDNIL R6 + 0x20180A06, // 007D NE R6 R5 R6 + 0x781A001D, // 007E JMPF R6 #009D + 0x88180B07, // 007F GETMBR R6 R5 K7 + 0x541E0004, // 0080 LDINT R7 5 + 0x1C180C07, // 0081 EQ R6 R6 R7 + 0x781A0019, // 0082 JMPF R6 #009D + 0x8C180110, // 0083 GETMET R6 R0 K16 + 0x50200000, // 0084 LDBOOL R8 0 0 + 0x7C180400, // 0085 CALL R6 2 + 0x201C0D0C, // 0086 NE R7 R6 K12 + 0x781E0004, // 0087 JMPF R7 #008D + 0x601C0018, // 0088 GETGBL R7 G24 + 0x58200018, // 0089 LDCONST R8 K24 + 0x5C240C00, // 008A MOVE R9 R6 + 0x7C1C0400, // 008B CALL R7 2 + 0x70020000, // 008C JMP #008E + 0x581C0019, // 008D LDCONST R7 K25 + 0x8C20011A, // 008E GETMET R8 R0 K26 + 0x60280018, // 008F GETGBL R10 G24 + 0x582C001D, // 0090 LDCONST R11 K29 + 0x5C300200, // 0091 MOVE R12 R1 + 0x5C340600, // 0092 MOVE R13 R3 + 0x5C380E00, // 0093 MOVE R14 R7 + 0x5C3C0800, // 0094 MOVE R15 R4 + 0x7C280A00, // 0095 CALL R10 5 + 0x7C200400, // 0096 CALL R8 2 + 0x8820010E, // 0097 GETMBR R8 R0 K14 + 0x8C20111C, // 0098 GETMET R8 R8 K28 + 0x5C280200, // 0099 MOVE R10 R1 + 0x4C2C0000, // 009A LDNIL R11 + 0x7C200600, // 009B CALL R8 3 + 0x70020026, // 009C JMP #00C4 + 0x8C18011E, // 009D GETMET R6 R0 K30 + 0x5C200600, // 009E MOVE R8 R3 0x7C180400, // 009F CALL R6 2 - 0x8C18011C, // 00A0 GETMET R6 R0 K28 - 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 - 0x881C010E, // 00A6 GETMBR R7 R0 K14 - 0x8C1C0F15, // 00A7 GETMET R7 R7 K21 - 0x5C240200, // 00A8 MOVE R9 R1 - 0x5C280C00, // 00A9 MOVE R10 R6 - 0x7C1C0600, // 00AA CALL R7 3 - 0x8C1C011D, // 00AB GETMET R7 R0 K29 - 0x60240018, // 00AC GETGBL R9 G24 - 0x5828001E, // 00AD LDCONST R10 K30 - 0x5C2C0200, // 00AE MOVE R11 R1 - 0x7C240400, // 00AF CALL R9 2 - 0x5C280600, // 00B0 MOVE R10 R3 - 0x7C1C0600, // 00B1 CALL R7 3 - 0x70020004, // 00B2 JMP #00B8 - 0x8C0C011F, // 00B3 GETMET R3 R0 K31 - 0x5C140200, // 00B4 MOVE R5 R1 - 0x88180120, // 00B5 GETMBR R6 R0 K32 - 0x841C0000, // 00B6 CLOSURE R7 P0 - 0x7C0C0800, // 00B7 CALL R3 4 - 0xA0000000, // 00B8 CLOSE R0 - 0x80000000, // 00B9 RET 0 + 0x741A0008, // 00A0 JMPT R6 #00AA + 0x8C18011F, // 00A1 GETMET R6 R0 K31 + 0x60200018, // 00A2 GETGBL R8 G24 + 0x58240020, // 00A3 LDCONST R9 K32 + 0x5C280600, // 00A4 MOVE R10 R3 + 0x7C200400, // 00A5 CALL R8 2 + 0x7C180400, // 00A6 CALL R6 2 + 0x8C180104, // 00A7 GETMET R6 R0 K4 + 0x7C180200, // 00A8 CALL R6 1 + 0x80000C00, // 00A9 RET 0 + 0x8C18011A, // 00AA GETMET R6 R0 K26 + 0x60200018, // 00AB GETGBL R8 G24 + 0x58240021, // 00AC LDCONST R9 K33 + 0x5C280200, // 00AD MOVE R10 R1 + 0x5C2C0600, // 00AE MOVE R11 R3 + 0x5C300800, // 00AF MOVE R12 R4 + 0x7C200800, // 00B0 CALL R8 4 + 0x7C180400, // 00B1 CALL R6 2 + 0x8C180122, // 00B2 GETMET R6 R0 K34 + 0x5C200600, // 00B3 MOVE R8 R3 + 0x7C180400, // 00B4 CALL R6 2 + 0x4C1C0000, // 00B5 LDNIL R7 + 0x201C0C07, // 00B6 NE R7 R6 R7 + 0x781E0004, // 00B7 JMPF R7 #00BD + 0x881C010E, // 00B8 GETMBR R7 R0 K14 + 0x8C1C0F1C, // 00B9 GETMET R7 R7 K28 + 0x5C240200, // 00BA MOVE R9 R1 + 0x5C280C00, // 00BB MOVE R10 R6 + 0x7C1C0600, // 00BC CALL R7 3 + 0x8C1C0123, // 00BD GETMET R7 R0 K35 + 0x60240018, // 00BE GETGBL R9 G24 + 0x58280024, // 00BF LDCONST R10 K36 + 0x5C2C0200, // 00C0 MOVE R11 R1 + 0x7C240400, // 00C1 CALL R9 2 + 0x5C280600, // 00C2 MOVE R10 R3 + 0x7C1C0600, // 00C3 CALL R7 3 + 0x70020004, // 00C4 JMP #00CA + 0x8C0C0125, // 00C5 GETMET R3 R0 K37 + 0x5C140200, // 00C6 MOVE R5 R1 + 0x88180126, // 00C7 GETMBR R6 R0 K38 + 0x841C0000, // 00C8 CLOSURE R7 P0 + 0x7C0C0800, // 00C9 CALL R3 4 + 0xA0000000, // 00CA CLOSE R0 + 0x80000000, // 00CB RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_error_report +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 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_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[42]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(add), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(strip), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), + /* K9 */ be_nested_str_weak(skip_statement), + /* K10 */ be_nested_str_weak(template), + /* K11 */ be_nested_str_weak(peek), + /* K12 */ be_nested_str_weak(animation), + /* K13 */ be_nested_str_weak(process_template_animation), + /* K14 */ be_nested_str_weak(Simple_X20_X27template_X27_X20is_X20not_X20supported_X2E_X20Use_X20_X27template_X20animation_X27_X20instead_X20to_X20create_X20reusable_X20animation_X20classes_X2E), + /* K15 */ be_nested_str_weak(strip_initialized), + /* K16 */ be_nested_str_weak(generate_default_strip_initialization), + /* K17 */ be_nested_str_weak(color), + /* K18 */ be_nested_str_weak(process_color), + /* K19 */ be_nested_str_weak(palette), + /* K20 */ be_nested_str_weak(process_palette), + /* K21 */ be_nested_str_weak(process_animation), + /* K22 */ be_nested_str_weak(set), + /* K23 */ be_nested_str_weak(process_set), + /* K24 */ be_nested_str_weak(sequence), + /* K25 */ be_nested_str_weak(process_sequence), + /* K26 */ be_nested_str_weak(run), + /* K27 */ be_nested_str_weak(process_run), + /* K28 */ be_nested_str_weak(import), + /* K29 */ be_nested_str_weak(process_import), + /* K30 */ be_nested_str_weak(on), + /* K31 */ be_nested_str_weak(process_event_handler), + /* K32 */ be_nested_str_weak(berry), + /* K33 */ be_nested_str_weak(process_berry_code_block), + /* K34 */ be_nested_str_weak(extern), + /* K35 */ be_nested_str_weak(process_external_function), + /* K36 */ be_nested_str_weak(Unknown_X20keyword_X20_X27_X25s_X27_X2E), + /* K37 */ be_const_int(1), + /* K38 */ be_nested_str_weak(log), + /* K39 */ be_nested_str_weak(process_standalone_log), + /* K40 */ be_nested_str_weak(process_property_assignment), + /* K41 */ be_nested_str_weak(Unexpected_X20token_X20_X27_X25s_X27_X2E), + }), + be_str_weak(process_statement), + &be_const_str_solidified, + ( &(const binstruction[168]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0000, // 0004 JMPF R2 #0006 + 0x80000400, // 0005 RET 0 + 0x88080301, // 0006 GETMBR R2 R1 K1 + 0x540E0024, // 0007 LDINT R3 37 + 0x1C080403, // 0008 EQ R2 R2 R3 + 0x780A0005, // 0009 JMPF R2 #0010 + 0x8C080102, // 000A GETMET R2 R0 K2 + 0x88100303, // 000B GETMBR R4 R1 K3 + 0x7C080400, // 000C CALL R2 2 + 0x8C080104, // 000D GETMET R2 R0 K4 + 0x7C080200, // 000E CALL R2 1 + 0x80000400, // 000F RET 0 + 0x88080301, // 0010 GETMBR R2 R1 K1 + 0x540E0022, // 0011 LDINT R3 35 + 0x1C080403, // 0012 EQ R2 R2 R3 + 0x780A0002, // 0013 JMPF R2 #0017 + 0x8C080104, // 0014 GETMET R2 R0 K4 + 0x7C080200, // 0015 CALL R2 1 + 0x80000400, // 0016 RET 0 + 0x88080301, // 0017 GETMBR R2 R1 K1 + 0x1C080505, // 0018 EQ R2 R2 K5 + 0x780A0069, // 0019 JMPF R2 #0084 + 0x88080303, // 001A GETMBR R2 R1 K3 + 0x1C080506, // 001B EQ R2 R2 K6 + 0x780A0006, // 001C JMPF R2 #0024 + 0x8C080107, // 001D GETMET R2 R0 K7 + 0x58100008, // 001E LDCONST R4 K8 + 0x7C080400, // 001F CALL R2 2 + 0x8C080109, // 0020 GETMET R2 R0 K9 + 0x7C080200, // 0021 CALL R2 1 + 0x80000400, // 0022 RET 0 + 0x7002005E, // 0023 JMP #0083 + 0x88080303, // 0024 GETMBR R2 R1 K3 + 0x1C08050A, // 0025 EQ R2 R2 K10 + 0x780A0013, // 0026 JMPF R2 #003B + 0x8C08010B, // 0027 GETMET R2 R0 K11 + 0x7C080200, // 0028 CALL R2 1 + 0x4C0C0000, // 0029 LDNIL R3 + 0x200C0403, // 002A NE R3 R2 R3 + 0x780E0008, // 002B JMPF R3 #0035 + 0x880C0501, // 002C GETMBR R3 R2 K1 + 0x1C0C0705, // 002D EQ R3 R3 K5 + 0x780E0005, // 002E JMPF R3 #0035 + 0x880C0503, // 002F GETMBR R3 R2 K3 + 0x1C0C070C, // 0030 EQ R3 R3 K12 + 0x780E0002, // 0031 JMPF R3 #0035 + 0x8C0C010D, // 0032 GETMET R3 R0 K13 + 0x7C0C0200, // 0033 CALL R3 1 + 0x70020004, // 0034 JMP #003A + 0x8C0C0107, // 0035 GETMET R3 R0 K7 + 0x5814000E, // 0036 LDCONST R5 K14 + 0x7C0C0400, // 0037 CALL R3 2 + 0x8C0C0109, // 0038 GETMET R3 R0 K9 + 0x7C0C0200, // 0039 CALL R3 1 + 0x70020047, // 003A JMP #0083 + 0x8808010F, // 003B GETMBR R2 R0 K15 + 0x740A0001, // 003C JMPT R2 #003F + 0x8C080110, // 003D GETMET R2 R0 K16 + 0x7C080200, // 003E CALL R2 1 + 0x88080303, // 003F GETMBR R2 R1 K3 + 0x1C080511, // 0040 EQ R2 R2 K17 + 0x780A0002, // 0041 JMPF R2 #0045 + 0x8C080112, // 0042 GETMET R2 R0 K18 + 0x7C080200, // 0043 CALL R2 1 + 0x7002003D, // 0044 JMP #0083 + 0x88080303, // 0045 GETMBR R2 R1 K3 + 0x1C080513, // 0046 EQ R2 R2 K19 + 0x780A0002, // 0047 JMPF R2 #004B + 0x8C080114, // 0048 GETMET R2 R0 K20 + 0x7C080200, // 0049 CALL R2 1 + 0x70020037, // 004A JMP #0083 + 0x88080303, // 004B GETMBR R2 R1 K3 + 0x1C08050C, // 004C EQ R2 R2 K12 + 0x780A0002, // 004D JMPF R2 #0051 + 0x8C080115, // 004E GETMET R2 R0 K21 + 0x7C080200, // 004F CALL R2 1 + 0x70020031, // 0050 JMP #0083 + 0x88080303, // 0051 GETMBR R2 R1 K3 + 0x1C080516, // 0052 EQ R2 R2 K22 + 0x780A0002, // 0053 JMPF R2 #0057 + 0x8C080117, // 0054 GETMET R2 R0 K23 + 0x7C080200, // 0055 CALL R2 1 + 0x7002002B, // 0056 JMP #0083 + 0x88080303, // 0057 GETMBR R2 R1 K3 + 0x1C080518, // 0058 EQ R2 R2 K24 + 0x780A0002, // 0059 JMPF R2 #005D + 0x8C080119, // 005A GETMET R2 R0 K25 + 0x7C080200, // 005B CALL R2 1 + 0x70020025, // 005C JMP #0083 + 0x88080303, // 005D GETMBR R2 R1 K3 + 0x1C08051A, // 005E EQ R2 R2 K26 + 0x780A0002, // 005F JMPF R2 #0063 + 0x8C08011B, // 0060 GETMET R2 R0 K27 + 0x7C080200, // 0061 CALL R2 1 + 0x7002001F, // 0062 JMP #0083 + 0x88080303, // 0063 GETMBR R2 R1 K3 + 0x1C08051C, // 0064 EQ R2 R2 K28 + 0x780A0002, // 0065 JMPF R2 #0069 + 0x8C08011D, // 0066 GETMET R2 R0 K29 + 0x7C080200, // 0067 CALL R2 1 + 0x70020019, // 0068 JMP #0083 + 0x88080303, // 0069 GETMBR R2 R1 K3 + 0x1C08051E, // 006A EQ R2 R2 K30 + 0x780A0002, // 006B JMPF R2 #006F + 0x8C08011F, // 006C GETMET R2 R0 K31 + 0x7C080200, // 006D CALL R2 1 + 0x70020013, // 006E JMP #0083 + 0x88080303, // 006F GETMBR R2 R1 K3 + 0x1C080520, // 0070 EQ R2 R2 K32 + 0x780A0002, // 0071 JMPF R2 #0075 + 0x8C080121, // 0072 GETMET R2 R0 K33 + 0x7C080200, // 0073 CALL R2 1 + 0x7002000D, // 0074 JMP #0083 + 0x88080303, // 0075 GETMBR R2 R1 K3 + 0x1C080522, // 0076 EQ R2 R2 K34 + 0x780A0002, // 0077 JMPF R2 #007B + 0x8C080123, // 0078 GETMET R2 R0 K35 + 0x7C080200, // 0079 CALL R2 1 + 0x70020007, // 007A JMP #0083 + 0x8C080107, // 007B GETMET R2 R0 K7 + 0x60100018, // 007C GETGBL R4 G24 + 0x58140024, // 007D LDCONST R5 K36 + 0x88180303, // 007E GETMBR R6 R1 K3 + 0x7C100400, // 007F CALL R4 2 + 0x7C080400, // 0080 CALL R2 2 + 0x8C080109, // 0081 GETMET R2 R0 K9 + 0x7C080200, // 0082 CALL R2 1 + 0x70020022, // 0083 JMP #00A7 + 0x88080301, // 0084 GETMBR R2 R1 K1 + 0x1C080525, // 0085 EQ R2 R2 K37 + 0x780A0017, // 0086 JMPF R2 #009F + 0x8808010F, // 0087 GETMBR R2 R0 K15 + 0x740A0001, // 0088 JMPT R2 #008B + 0x8C080110, // 0089 GETMET R2 R0 K16 + 0x7C080200, // 008A CALL R2 1 + 0x88080303, // 008B GETMBR R2 R1 K3 + 0x1C080526, // 008C EQ R2 R2 K38 + 0x780A000D, // 008D JMPF R2 #009C + 0x8C08010B, // 008E GETMET R2 R0 K11 + 0x7C080200, // 008F CALL R2 1 + 0x4C0C0000, // 0090 LDNIL R3 + 0x20080403, // 0091 NE R2 R2 R3 + 0x780A0008, // 0092 JMPF R2 #009C + 0x8C08010B, // 0093 GETMET R2 R0 K11 + 0x7C080200, // 0094 CALL R2 1 + 0x88080501, // 0095 GETMBR R2 R2 K1 + 0x540E0017, // 0096 LDINT R3 24 + 0x1C080403, // 0097 EQ R2 R2 R3 + 0x780A0002, // 0098 JMPF R2 #009C + 0x8C080127, // 0099 GETMET R2 R0 K39 + 0x7C080200, // 009A CALL R2 1 + 0x70020001, // 009B JMP #009E + 0x8C080128, // 009C GETMET R2 R0 K40 + 0x7C080200, // 009D CALL R2 1 + 0x70020007, // 009E JMP #00A7 + 0x8C080107, // 009F GETMET R2 R0 K7 + 0x60100018, // 00A0 GETGBL R4 G24 + 0x58140029, // 00A1 LDCONST R5 K41 + 0x88180303, // 00A2 GETMBR R6 R1 K3 + 0x7C100400, // 00A3 CALL R4 2 + 0x7C080400, // 00A4 CALL R2 2 + 0x8C080109, // 00A5 GETMET R2 R0 K9 + 0x7C080200, // 00A6 CALL R2 1 + 0x80000000, // 00A7 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + }), + be_str_weak(check_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001C, // 0006 LDINT R3 29 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0000, // 0008 JMPT R2 #000A + 0x50080001, // 0009 LDBOOL R2 0 1 + 0x50080200, // 000A LDBOOL R2 1 0 + 0x80040400, // 000B RET 1 R2 }) ) ); @@ -16332,146 +16504,83 @@ be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_type, /******************************************************************** -** Solidified function: add +** Solidified function: process_set ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_add, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ be_nested_proto( - 5, /* nstack */ - 2, /* argc */ + 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[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(output), - /* K1 */ be_nested_str_weak(push), + ( &(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(add), + be_str_weak(process_set), &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: 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: convert_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_color, /* 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[10]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(string), - /* K2 */ be_nested_str_weak(startswith), - /* K3 */ be_nested_str_weak(0x), - /* K4 */ be_nested_str_weak(0xFF_X25s), - /* K5 */ be_const_int(2), - /* K6 */ be_const_int(2147483647), - /* 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 - 0xA40E0200, // 0001 IMPORT R3 K1 - 0x8C100702, // 0002 GETMET R4 R3 K2 - 0x5C180200, // 0003 MOVE R6 R1 - 0x581C0003, // 0004 LDCONST R7 K3 - 0x7C100600, // 0005 CALL R4 3 - 0x78120013, // 0006 JMPF R4 #001B - 0x6010000C, // 0007 GETGBL R4 G12 - 0x5C140200, // 0008 MOVE R5 R1 - 0x7C100200, // 0009 CALL R4 1 - 0x54160009, // 000A LDINT R5 10 - 0x1C100805, // 000B EQ R4 R4 R5 - 0x78120001, // 000C JMPF R4 #000F - 0x80040200, // 000D RET 1 R1 - 0x7002000B, // 000E JMP #001B - 0x6010000C, // 000F GETGBL R4 G12 - 0x5C140200, // 0010 MOVE R5 R1 - 0x7C100200, // 0011 CALL R4 1 - 0x54160007, // 0012 LDINT R5 8 - 0x1C100805, // 0013 EQ R4 R4 R5 - 0x78120005, // 0014 JMPF R4 #001B - 0x60100018, // 0015 GETGBL R4 G24 - 0x58140004, // 0016 LDCONST R5 K4 - 0x401A0B06, // 0017 CONNECT R6 K5 K6 - 0x94180206, // 0018 GETIDX R6 R1 R6 - 0x7C100400, // 0019 CALL R4 2 - 0x80040800, // 001A RET 1 R4 - 0x8C100507, // 001B GETMET R4 R2 K7 - 0x5C180200, // 001C MOVE R6 R1 - 0x7C100400, // 001D CALL R4 2 - 0x78120003, // 001E JMPF R4 #0023 - 0x8C100108, // 001F GETMET R4 R0 K8 - 0x5C180200, // 0020 MOVE R6 R1 - 0x7C100400, // 0021 CALL R4 2 - 0x80040800, // 0022 RET 1 R4 - 0x80061200, // 0023 RET 1 K9 + ( &(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 }) ) ); @@ -16484,137 +16593,138 @@ be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ be_local_class(SimpleDSLTranspiler, 9, NULL, - be_nested_map(129, + be_nested_map(130, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, - { be_const_key_weak(CONTEXT_ANIMATION, -1), be_const_int(3) }, - { be_const_key_weak(peek, 119), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, - { 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, 53), be_const_int(6) }, - { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_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(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, - { be_const_key_weak(validate_user_name, 65), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_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(7) }, - { be_const_key_weak(warning, -1), be_const_closure(class_SimpleDSLTranspiler_warning_closure) }, - { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_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, 113), be_const_class(be_class_ExpressionResult) }, - { be_const_key_weak(CONTEXT_ARGUMENT, -1), be_const_int(4) }, - { be_const_key_weak(CONTEXT_GENERIC, -1), be_const_int(10) }, - { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, - { be_const_key_weak(expect_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, - { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, - { be_const_key_weak(run_statements, 67), be_const_var(3) }, - { 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_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_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(process_if_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_if_statement_fluent_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_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, - { be_const_key_weak(get_warnings, 28), be_const_closure(class_SimpleDSLTranspiler_get_warnings_closure) }, - { be_const_key_weak(expect_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, - { be_const_key_weak(_validate_object_reference, 21), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, - { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, - { be_const_key_weak(_validate_animation_factory_exists, 86), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, - { be_const_key_weak(has_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_has_warnings_closure) }, - { be_const_key_weak(process_play_statement_fluent, 19), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, - { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, - { be_const_key_weak(CONTEXT_COLOR, 118), be_const_int(2) }, - { 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(process_log_call, 37), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, - { be_const_key_weak(_add_inherited_params_to_template, -1), be_const_closure(class_SimpleDSLTranspiler__add_inherited_params_to_template_closure) }, - { be_const_key_weak(_validate_template_parameter_name, 32), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_name_closure) }, - { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, - { be_const_key_weak(process_berry_code_block, 68), be_const_closure(class_SimpleDSLTranspiler_process_berry_code_block_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(_unwrap_resolve, -1), be_const_closure(class_SimpleDSLTranspiler__unwrap_resolve_closure) }, + { be_const_key_weak(CONTEXT_ARRAY_ELEMENT, -1), be_const_int(7) }, + { be_const_key_weak(_validate_template_parameter_type, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_type_closure) }, + { be_const_key_weak(check_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, + { be_const_key_weak(process_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, + { be_const_key_weak(_create_symbol_by_return_type, 83), be_const_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type_closure) }, + { be_const_key_weak(process_property_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, { be_const_key_weak(pull_lexer, -1), be_const_var(0) }, - { be_const_key_weak(transpile_template_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, + { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, + { be_const_key_weak(error, -1), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, + { be_const_key_weak(_determine_function_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_function_return_type_closure) }, + { be_const_key_weak(get_named_color_value, 46), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, + { be_const_key_weak(_unwrap_resolve, -1), be_const_closure(class_SimpleDSLTranspiler__unwrap_resolve_closure) }, { be_const_key_weak(generate_engine_run, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_run_closure) }, { be_const_key_weak(process_import, -1), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, - { be_const_key_weak(process_function_arguments, 126), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, - { be_const_key_weak(_process_named_arguments_unified, 39), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_unified_closure) }, - { be_const_key_weak(indent_level, -1), be_const_var(6) }, - { be_const_key_weak(symbol_table, -1), be_const_var(5) }, - { be_const_key_weak(CONTEXT_TIME, -1), be_const_int(8) }, - { 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, -1), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, - { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, - { be_const_key_weak(process_event_parameters, 95), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, - { be_const_key_weak(_is_valid_identifier, -1), be_const_closure(class_SimpleDSLTranspiler__is_valid_identifier_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(process_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, - { be_const_key_weak(process_restart_statement_fluent, 7), be_const_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent_closure) }, - { be_const_key_weak(CONTEXT_EXPRESSION, -1), be_const_int(9) }, - { be_const_key_weak(expect_colon, -1), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, - { be_const_key_weak(process_primary_expression, 112), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, - { be_const_key_weak(process_repeat_statement_fluent, 84), be_const_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent_closure) }, - { be_const_key_weak(output, 29), be_const_var(1) }, - { be_const_key_weak(next, -1), be_const_closure(class_SimpleDSLTranspiler_next_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_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(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, - { be_const_key_weak(template_animation_params, -1), be_const_var(8) }, - { 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(convert_time_to_ms, -1), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_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, 97), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, - { be_const_key_weak(expect_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, - { be_const_key_weak(strip_initialized, 52), be_const_var(4) }, - { be_const_key_weak(process_template_animation, 100), be_const_closure(class_SimpleDSLTranspiler_process_template_animation_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_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, - { be_const_key_weak(transpile, 104), 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(process_array_literal, 78), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_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, 99), 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(_split_function_arguments, 13), be_const_closure(class_SimpleDSLTranspiler__split_function_arguments_closure) }, - { be_const_key_weak(transpile_template_animation_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_animation_body_closure) }, - { be_const_key_weak(init, -1), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, - { be_const_key_weak(process_palette_color, 58), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, - { be_const_key_weak(get_error_report, 72), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, - { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, - { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, - { be_const_key_weak(get_indent, 82), 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, 75), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, - { be_const_key_weak(_validate_template_call_arguments, 43), be_const_closure(class_SimpleDSLTranspiler__validate_template_call_arguments_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(warnings, -1), be_const_var(2) }, - { be_const_key_weak(process_palette, 64), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, - { be_const_key_weak(CONTEXT_COLOR_PROVIDER, 61), be_const_int(11) }, - { be_const_key_weak(expect_assign, 59), 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(_register_template_animation_constructor, -1), be_const_closure(class_SimpleDSLTranspiler__register_template_animation_constructor_closure) }, - { be_const_key_weak(convert_to_vrgb, -1), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, - { be_const_key_weak(at_end, 45), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, - { be_const_key_weak(_process_parameters_core, -1), be_const_closure(class_SimpleDSLTranspiler__process_parameters_core_closure) }, - { be_const_key_weak(generate_template_animation_class, -1), be_const_closure(class_SimpleDSLTranspiler_generate_template_animation_class_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(CONTEXT_PROPERTY, -1), be_const_int(5) }, + { be_const_key_weak(validate_user_name, -1), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, + { be_const_key_weak(_add_inherited_params_to_template, -1), be_const_closure(class_SimpleDSLTranspiler__add_inherited_params_to_template_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, 23), 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(_validate_template_parameter_type, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_type_closure) }, - { be_const_key_weak(process_function_call, 18), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, - { be_const_key_weak(_parse_parameter_constraints, 17), be_const_closure(class_SimpleDSLTranspiler__parse_parameter_constraints_closure) }, - { be_const_key_weak(_validate_template_parameter_usage, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage_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(indent_level, -1), be_const_var(6) }, + { be_const_key_weak(process_animation, 115), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, + { be_const_key_weak(CONTEXT_REPEAT_COUNT, 64), be_const_int(6) }, + { be_const_key_weak(CONTEXT_VARIABLE, -1), be_const_int(1) }, + { be_const_key_weak(process_palette, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, + { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, + { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, + { be_const_key_weak(process_play_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, + { be_const_key_weak(generate_default_strip_initialization, -1), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, + { be_const_key_weak(_validate_template_parameter_usage, 124), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage_closure) }, + { be_const_key_weak(_validate_value_provider_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_reference_closure) }, + { be_const_key_weak(process_repeat_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent_closure) }, + { be_const_key_weak(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, + { be_const_key_weak(expect_left_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, + { be_const_key_weak(_determine_symbol_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_symbol_return_type_closure) }, + { be_const_key_weak(process_restart_statement_fluent, 21), be_const_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent_closure) }, + { be_const_key_weak(can_use_as_identifier, 22), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, + { be_const_key_weak(_validate_single_parameter, -1), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, + { be_const_key_weak(transpile_template_animation_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_animation_body_closure) }, + { be_const_key_weak(process_percentage_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, + { be_const_key_weak(process_additive_expression, 100), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, + { be_const_key_weak(CONTEXT_GENERIC, 85), be_const_int(10) }, + { be_const_key_weak(add, 42), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, + { be_const_key_weak(process_log_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_statement_fluent_closure) }, + { be_const_key_weak(_add_typed_parameter_to_symbol_table, 44), be_const_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table_closure) }, + { be_const_key_weak(process_time_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, + { be_const_key_weak(CONTEXT_ARGUMENT, 73), be_const_int(4) }, + { be_const_key_weak(init, -1), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, + { be_const_key_weak(process_if_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_if_statement_fluent_closure) }, + { be_const_key_weak(expect_left_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, + { be_const_key_weak(process_primary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, + { be_const_key_weak(convert_time_to_ms, -1), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, + { be_const_key_weak(process_event_parameters, 25), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, + { be_const_key_weak(process_function_arguments, 54), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, + { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, + { be_const_key_weak(skip_whitespace_including_newlines, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, + { be_const_key_weak(_split_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler__split_function_arguments_closure) }, + { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, + { be_const_key_weak(_parse_parameter_constraints, -1), be_const_closure(class_SimpleDSLTranspiler__parse_parameter_constraints_closure) }, + { be_const_key_weak(transpile, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, + { be_const_key_weak(get_symbol_table_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_symbol_table_report_closure) }, + { be_const_key_weak(process_event_handler, 93), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, + { be_const_key_weak(expect_keyword, 109), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, + { be_const_key_weak(template_animation_params, 8), be_const_var(8) }, + { be_const_key_weak(has_template_calls, -1), be_const_var(7) }, + { be_const_key_weak(_validate_template_parameter_name, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_name_closure) }, + { be_const_key_weak(expect_colon, 113), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, + { be_const_key_weak(_process_named_arguments_unified, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_unified_closure) }, + { be_const_key_weak(_process_parameters_core, 94), be_const_closure(class_SimpleDSLTranspiler__process_parameters_core_closure) }, + { be_const_key_weak(process_sequence_assignment_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, + { be_const_key_weak(expect_right_bracket, 105), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, + { be_const_key_weak(CONTEXT_ANIMATION, -1), be_const_int(3) }, + { be_const_key_weak(process_nested_function_call, 55), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, + { be_const_key_weak(_process_simple_value_assignment, -1), be_const_closure(class_SimpleDSLTranspiler__process_simple_value_assignment_closure) }, + { be_const_key_weak(next, 53), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, + { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, + { be_const_key_weak(symbol_table, 47), be_const_var(5) }, + { be_const_key_weak(_register_template_animation_constructor, -1), be_const_closure(class_SimpleDSLTranspiler__register_template_animation_constructor_closure) }, + { be_const_key_weak(CONTEXT_COLOR_PROVIDER, 110), be_const_int(11) }, + { be_const_key_weak(CONTEXT_TIME, -1), be_const_int(8) }, + { be_const_key_weak(skip_statement, 51), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, + { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, + { be_const_key_weak(process_external_function, 81), be_const_closure(class_SimpleDSLTranspiler_process_external_function_closure) }, + { be_const_key_weak(process_berry_code_block, -1), be_const_closure(class_SimpleDSLTranspiler_process_berry_code_block_closure) }, + { be_const_key_weak(peek, -1), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, + { be_const_key_weak(run_statements, -1), be_const_var(3) }, + { be_const_key_weak(process_array_literal, 77), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, + { be_const_key_weak(convert_color, -1), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, + { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, + { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, + { be_const_key_weak(process_sequence, 98), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, + { be_const_key_weak(_validate_template_call_arguments, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_call_arguments_closure) }, + { be_const_key_weak(_validate_object_reference, 39), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, + { be_const_key_weak(CONTEXT_EXPRESSION, -1), be_const_int(9) }, + { be_const_key_weak(convert_to_vrgb, -1), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(process_palette_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, + { be_const_key_weak(process_template_animation, 92), be_const_closure(class_SimpleDSLTranspiler_process_template_animation_closure) }, + { be_const_key_weak(transpile_template_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, + { be_const_key_weak(process_function_call, 87), be_const_closure(class_SimpleDSLTranspiler_process_function_call_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, -1), be_const_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists_closure) }, + { be_const_key_weak(has_warnings, 80), be_const_closure(class_SimpleDSLTranspiler_has_warnings_closure) }, + { be_const_key_weak(process_log_call, 123), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, + { be_const_key_weak(warning, -1), be_const_closure(class_SimpleDSLTranspiler_warning_closure) }, + { be_const_key_weak(CONTEXT_PROPERTY, 75), be_const_int(5) }, + { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, + { be_const_key_weak(at_end, 71), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, + { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, + { be_const_key_weak(process_sequence_statement, 59), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, + { be_const_key_weak(process_unary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, + { be_const_key_weak(output, -1), be_const_var(1) }, + { be_const_key_weak(expect_number, 117), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, + { be_const_key_weak(expect_right_paren, 28), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, + { be_const_key_weak(get_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_get_warnings_closure) }, + { be_const_key_weak(strip_initialized, -1), be_const_var(4) }, + { be_const_key_weak(get_indent, -1), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, + { be_const_key_weak(warnings, 43), be_const_var(2) }, + { 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(skip_whitespace, 41), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, + { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, + { be_const_key_weak(CONTEXT_COLOR, 36), be_const_int(2) }, + { be_const_key_weak(process_standalone_log, -1), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, + { be_const_key_weak(expect_comma, -1), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, + { be_const_key_weak(_is_valid_identifier, -1), be_const_closure(class_SimpleDSLTranspiler__is_valid_identifier_closure) }, + { be_const_key_weak(process_color, 18), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, + { be_const_key_weak(ExpressionResult, -1), be_const_class(be_class_ExpressionResult) }, + { be_const_key_weak(_validate_animation_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, + { be_const_key_weak(expect_right_brace, 7), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, + { be_const_key_weak(expect_assign, 4), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, + { be_const_key_weak(generate_template_animation_class, 3), be_const_closure(class_SimpleDSLTranspiler_generate_template_animation_class_closure) }, + { be_const_key_weak(_process_named_arguments_for_color_provider, 2), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, + { be_const_key_weak(expect_left_paren, 0), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, })), be_str_weak(SimpleDSLTranspiler) ); diff --git a/lib/libesp32/berry_animation/src/tests/animation_engine_test.be b/lib/libesp32/berry_animation/src/tests/animation_engine_test.be index 9ad097cd1..28584e8e2 100644 --- a/lib/libesp32/berry_animation/src/tests/animation_engine_test.be +++ b/lib/libesp32/berry_animation/src/tests/animation_engine_test.be @@ -209,6 +209,9 @@ class MockDynamicStrip i += 1 end end + + def push_pixels_buffer_argb() + end def show() self.show_calls += 1 @@ -287,9 +290,12 @@ assert_test(new_show_calls >= old_show_calls, "Strip should be updated after len # Test 10d: Multiple length changes print("\n--- Test 10d: Multiple length changes ---") var lengths_to_test = [10, 50, 5, 30] +var base_tick_time = int(tasmota.millis()) + 5000 # Start well after previous tests +var tick_offset = 0 for new_length : lengths_to_test dynamic_strip.set_length(new_length) - dynamic_engine.on_tick(tasmota.millis()) + dynamic_engine.on_tick(base_tick_time + tick_offset) + tick_offset += 100 # Space ticks 100ms apart to avoid throttling assert_equals(dynamic_engine.strip_length, new_length, f"Engine should adapt to length {new_length}") assert_equals(dynamic_engine.frame_buffer.width, new_length, f"Frame buffer should adapt to length {new_length}") assert_equals(dynamic_engine.temp_buffer.width, new_length, f"Temp buffer should adapt to length {new_length}") @@ -315,7 +321,8 @@ assert_equals(dynamic_engine.size(), 2, "Should have 2 animations") # Change length and verify all animations continue working dynamic_strip.set_length(40) old_show_calls = dynamic_strip.show_calls -dynamic_engine.on_tick(tasmota.millis()) +# Use a time that's guaranteed to be past the throttle window +dynamic_engine.on_tick(int(tasmota.millis()) + 10000) assert_equals(dynamic_engine.strip_length, 40, "Engine should handle length change with multiple animations") new_show_calls = dynamic_strip.show_calls @@ -325,20 +332,21 @@ assert_equals(dynamic_engine.size(), 2, "Should still have 2 animations after le # Test 10f: Invalid length handling print("\n--- Test 10f: Invalid length handling ---") var current_width = dynamic_engine.strip_length +var invalid_test_time = int(tasmota.millis()) + 15000 # Test zero length (should be ignored) dynamic_strip.set_length(0) -dynamic_engine.on_tick(tasmota.millis()) +dynamic_engine.on_tick(invalid_test_time) assert_equals(dynamic_engine.strip_length, current_width, "Should ignore zero length") # Test negative length (should be ignored) dynamic_strip.set_length(-5) -dynamic_engine.on_tick(tasmota.millis()) +dynamic_engine.on_tick(invalid_test_time + 100) assert_equals(dynamic_engine.strip_length, current_width, "Should ignore negative length") # Restore valid length dynamic_strip.set_length(20) -dynamic_engine.on_tick(tasmota.millis()) +dynamic_engine.on_tick(invalid_test_time + 200) assert_equals(dynamic_engine.strip_length, 20, "Should accept valid length after invalid ones") # Test 10g: Performance impact of length checking @@ -366,6 +374,159 @@ assert_test(changing_time < 200, f"20 ticks with length changes should be reason dynamic_engine.stop() +# Test 11: Tick Interval Configuration +print("\n--- Test 11: Tick Interval Configuration ---") + +# Test 11a: Static default value +print("\n--- Test 11a: Static default value ---") +assert_equals(animation.create_engine.TICK_MS, 50, "Static TICK_MS should default to 50ms") + +# Test 11b: Instance initialization from static default +print("\n--- Test 11b: Instance initialization from static default ---") +var tick_strip = global.Leds(10) +var tick_engine = animation.create_engine(tick_strip) +assert_equals(tick_engine.tick_ms, 50, "Instance tick_ms should initialize to static default (50ms)") + +# Test 11c: Runtime modification +print("\n--- Test 11c: Runtime modification ---") +tick_engine.tick_ms = 100 +assert_equals(tick_engine.tick_ms, 100, "Should be able to change tick_ms at runtime to 100ms") + +tick_engine.tick_ms = 25 +assert_equals(tick_engine.tick_ms, 25, "Should be able to change tick_ms at runtime to 25ms") + +tick_engine.tick_ms = 5 +assert_equals(tick_engine.tick_ms, 5, "Should be able to change tick_ms at runtime to 5ms") + +# Test 11d: Throttling behavior with different tick_ms values +print("\n--- Test 11d: Throttling behavior with different tick_ms values ---") + +# Create a mock strip to track show() calls +class ThrottleTestStrip + var _length + var show_calls + var last_show_time + + def init(length) + self._length = length + self.show_calls = 0 + self.last_show_time = 0 + end + + def length() + return self._length + end + + def set_pixel_color(index, color) + end + + def clear() + end + + def push_pixels_buffer_argb(buffer) + end + + def show() + self.show_calls += 1 + self.last_show_time = tasmota.millis() + end + + def can_show() + return true + end +end + +var throttle_strip = ThrottleTestStrip(10) +var throttle_engine = animation.create_engine(throttle_strip) + +# Add a simple animation +var throttle_anim = animation.solid(throttle_engine) +throttle_anim.color = 0xFFFF0000 +throttle_engine.add(throttle_anim) +throttle_engine.run() + +# Test with 50ms throttle (default) +print("\n--- Testing with 50ms throttle ---") +throttle_engine.tick_ms = 50 +throttle_strip.show_calls = 0 +var base_time = int(tasmota.millis()) + 10000 # Start well after any previous ticks + +# Simulate rapid ticks within throttle window (should be throttled) +throttle_engine.on_tick(base_time) +var initial_calls = throttle_strip.show_calls +throttle_engine.on_tick(base_time + 10) # +10ms - should be throttled +throttle_engine.on_tick(base_time + 20) # +20ms - should be throttled +throttle_engine.on_tick(base_time + 40) # +40ms - should be throttled +var throttled_calls = throttle_strip.show_calls +assert_test(throttled_calls <= initial_calls + 1, f"Ticks within 50ms window should be throttled (got {throttled_calls - initial_calls} additional calls)") + +# Tick after throttle window (should render) +throttle_engine.on_tick(base_time + 60) # +60ms - should render +var after_throttle_calls = throttle_strip.show_calls +# Debug: print the call counts +# print(f"DEBUG: initial={initial_calls}, throttled={throttled_calls}, after={after_throttle_calls}") +assert_test(after_throttle_calls > throttled_calls, f"Tick after throttle window should render (initial={initial_calls}, throttled={throttled_calls}, after={after_throttle_calls})") + +# Test with 100ms throttle +print("\n--- Testing with 100ms throttle ---") +throttle_engine.tick_ms = 100 +throttle_strip.show_calls = 0 +base_time = int(tasmota.millis()) + 20000 # Start well after previous test + +throttle_engine.on_tick(base_time) +var initial_calls_100 = throttle_strip.show_calls +throttle_engine.on_tick(base_time + 50) # +50ms - should be throttled +throttle_engine.on_tick(base_time + 80) # +80ms - should be throttled +throttled_calls = throttle_strip.show_calls +assert_test(throttled_calls <= initial_calls_100 + 1, f"Ticks within 100ms window should be throttled (got {throttled_calls - initial_calls_100} additional calls)") + +throttle_engine.on_tick(base_time + 110) # +110ms - should render +after_throttle_calls = throttle_strip.show_calls +assert_test(after_throttle_calls > throttled_calls, "Tick after 100ms throttle window should render") + +# Test with 10ms throttle (faster updates) +print("\n--- Testing with 10ms throttle ---") +throttle_engine.tick_ms = 10 +throttle_strip.show_calls = 0 +base_time = int(tasmota.millis()) + 30000 # Start well after previous test + +throttle_engine.on_tick(base_time) +var initial_calls_10 = throttle_strip.show_calls +throttle_engine.on_tick(base_time + 5) # +5ms - should be throttled +var fast_throttled = throttle_strip.show_calls +assert_test(fast_throttled <= initial_calls_10 + 1, f"Ticks within 10ms window should be throttled (got {fast_throttled - initial_calls_10} additional calls)") + +throttle_engine.on_tick(base_time + 15) # +15ms - should render +var fast_after = throttle_strip.show_calls +assert_test(fast_after > fast_throttled, "Tick after 10ms throttle window should render") + +# Test 11e: Independent engine instances +print("\n--- Test 11e: Independent engine instances ---") +var strip_a = global.Leds(10) +var strip_b = global.Leds(10) +var engine_a = animation.create_engine(strip_a) +var engine_b = animation.create_engine(strip_b) + +# Set different tick_ms values +engine_a.tick_ms = 25 +engine_b.tick_ms = 75 + +assert_equals(engine_a.tick_ms, 25, "Engine A should have tick_ms of 25ms") +assert_equals(engine_b.tick_ms, 75, "Engine B should have tick_ms of 75ms") +assert_test(engine_a.tick_ms != engine_b.tick_ms, "Different engine instances should have independent tick_ms values") + +# Test 11f: Tick interval doesn't affect static default +print("\n--- Test 11f: Tick interval doesn't affect static default ---") +var test_engine = animation.create_engine(global.Leds(10)) +test_engine.tick_ms = 200 +assert_equals(animation.create_engine.TICK_MS, 50, "Changing instance tick_ms should not affect static TICK_MS") + +# New engine should still use static default +var new_engine = animation.create_engine(global.Leds(10)) +assert_equals(new_engine.tick_ms, 50, "New engine should initialize with static default, not modified instance value") + +throttle_engine.stop() + # Cleanup engine.stop() diff --git a/lib/libesp32/berry_animation/src/tests/closure_value_provider_test.be b/lib/libesp32/berry_animation/src/tests/closure_value_provider_test.be index 769a77e44..92a57046a 100644 --- a/lib/libesp32/berry_animation/src/tests/closure_value_provider_test.be +++ b/lib/libesp32/berry_animation/src/tests/closure_value_provider_test.be @@ -274,7 +274,6 @@ def test_closure_math_methods() # Test 1: min/max functions provider.closure = def(self, name, time_ms) - print(f">> {name=} {animation._math=}") if name == "min_test" return animation._math.min(5, 3, 8, 1, 9) # Should return 1 elif name == "max_test" diff --git a/lib/libesp32/berry_animation/src/tests/cpu_metrics_test.be b/lib/libesp32/berry_animation/src/tests/cpu_metrics_test.be index 64db8c13f..853372742 100644 --- a/lib/libesp32/berry_animation/src/tests/cpu_metrics_test.be +++ b/lib/libesp32/berry_animation/src/tests/cpu_metrics_test.be @@ -77,6 +77,7 @@ print("\n--- Test 4: Timestamps Set During Ticks ---") # Create a fresh engine for timestamp testing with an animation var ts_strip = global.Leds(20) var ts_engine = animation.create_engine(ts_strip) +ts_engine.tick_ms = 5 # Set low tick interval for testing # Add an animation so rendering happens var ts_anim = animation.solid(ts_engine) @@ -85,7 +86,7 @@ ts_engine.add(ts_anim) ts_engine.run() # Run a single tick -var current_time = tasmota.millis() +var current_time = int(tasmota.millis()) ts_engine.on_tick(current_time) # Check that timestamps were set @@ -121,10 +122,11 @@ print("\n--- Test 5: Phase Metrics Accumulation ---") # Create engine and run multiple ticks var phase_strip = global.Leds(15) var phase_engine = animation.create_engine(phase_strip) +phase_engine.tick_ms = 5 # Set low tick interval for testing phase_engine.run() # Run 10 ticks -var phase_time = 0 +var phase_time = int(tasmota.millis()) for i : 0..9 phase_engine.on_tick(phase_time) phase_time += 5 @@ -148,9 +150,10 @@ print("\n--- Test 6: Timestamp-Based Duration Calculation ---") # Create engine and run a tick var dur_strip = global.Leds(10) var dur_engine = animation.create_engine(dur_strip) +dur_engine.tick_ms = 5 # Set low tick interval for testing dur_engine.run() -var dur_time = tasmota.millis() +var dur_time = int(tasmota.millis()) dur_engine.on_tick(dur_time) # Verify durations can be computed from timestamps @@ -177,6 +180,7 @@ print("\n--- Test 7: CPU Metrics During Ticks ---") # Create a fresh engine for tick testing var tick_strip = global.Leds(20) var tick_engine = animation.create_engine(tick_strip) +tick_engine.tick_ms = 5 # Set low tick interval for testing # Add a simple animation var test_anim = animation.solid(tick_engine) @@ -185,7 +189,7 @@ tick_engine.add(test_anim) tick_engine.run() # Simulate several ticks -var current_time = tasmota.millis() +var current_time = int(tasmota.millis()) for i : 0..9 tick_engine.on_tick(current_time + i * 10) end @@ -200,12 +204,13 @@ print("\n--- Test 8: Metrics Reset After Stats Period ---") # Create engine and simulate ticks over stats period var reset_strip = global.Leds(15) var reset_engine = animation.create_engine(reset_strip) +reset_engine.tick_ms = 5 # Set low tick interval for testing reset_engine.run() # Simulate ticks for just under 5 seconds -var start_time = 0 +var start_time = int(tasmota.millis()) var current_time = start_time -while current_time < 4900 +while current_time < start_time + 4900 reset_engine.on_tick(current_time) current_time += 5 end @@ -217,7 +222,7 @@ assert_greater_than(tick_count_before, 0, "Should have ticks before stats period var last_stats_before = reset_engine.last_stats_time # Simulate more ticks to cross the 5 second threshold -while current_time < 5100 +while current_time < start_time + 5100 reset_engine.on_tick(current_time) current_time += 5 end @@ -235,10 +240,11 @@ print("\n--- Test 9: Metrics Consistency Across Ticks ---") var consistency_strip = global.Leds(25) var consistency_engine = animation.create_engine(consistency_strip) +consistency_engine.tick_ms = 5 # Set low tick interval for testing consistency_engine.run() # Run multiple ticks and verify metrics consistency -var cons_time = 0 +var cons_time = int(tasmota.millis()) for i : 0..19 consistency_engine.on_tick(cons_time) cons_time += 5 @@ -258,6 +264,7 @@ print("\n--- Test 10: Min/Max Tracking for All Metrics ---") var minmax_strip = global.Leds(10) var minmax_engine = animation.create_engine(minmax_strip) +minmax_engine.tick_ms = 5 # Set low tick interval for testing # Add an animation so rendering happens var mm_anim = animation.solid(minmax_engine) @@ -266,7 +273,7 @@ minmax_engine.add(mm_anim) minmax_engine.run() # Run several ticks -var mm_time = 0 +var mm_time = int(tasmota.millis()) for i : 0..9 minmax_engine.on_tick(mm_time) mm_time += 5 @@ -287,10 +294,11 @@ print("\n--- Test 11: Streaming Statistics Accuracy ---") var stats_strip = global.Leds(15) var stats_engine = animation.create_engine(stats_strip) +stats_engine.tick_ms = 5 # Set low tick interval for testing stats_engine.run() # Run exactly 10 ticks -var stats_time = 0 +var stats_time = int(tasmota.millis()) for i : 0..9 stats_engine.on_tick(stats_time) stats_time += 5 @@ -306,10 +314,11 @@ print("\n--- Test 12: Phase Metrics Cleared After Stats ---") var clear_strip = global.Leds(20) var clear_engine = animation.create_engine(clear_strip) +clear_engine.tick_ms = 5 # Set low tick interval for testing clear_engine.run() # Run some ticks to accumulate phase metrics -var clear_time = 0 +var clear_time = int(tasmota.millis()) for i : 0..9 clear_engine.on_tick(clear_time) clear_time += 5 @@ -319,7 +328,8 @@ end assert_greater_than(clear_engine.phase1_time_sum, -1, "Phase metrics should accumulate") # Simulate ticks to cross stats period -while clear_time < 5100 +var clear_start = clear_time +while clear_time < clear_start + 5100 clear_engine.on_tick(clear_time) clear_time += 5 end @@ -336,15 +346,17 @@ print("\n--- Test 13: Multiple Engines Independence ---") var strip1 = global.Leds(10) var engine1 = animation.create_engine(strip1) +engine1.tick_ms = 5 # Set low tick interval for testing engine1.run() var strip2 = global.Leds(20) var engine2 = animation.create_engine(strip2) +engine2.tick_ms = 5 # Set low tick interval for testing engine2.run() # Run ticks on both engines -var e1_time = 0 -var e2_time = 0 +var e1_time = int(tasmota.millis()) +var e2_time = int(tasmota.millis()) for i : 0..4 engine1.on_tick(e1_time) @@ -385,10 +397,12 @@ print("\n--- Test 15: Performance of Metrics Collection ---") var perf_strip = global.Leds(30) var perf_engine = animation.create_engine(perf_strip) +perf_engine.tick_ms = 5 # Set low tick interval for testing perf_engine.run() # Measure overhead of metrics collection with timestamps -var perf_start = tasmota.millis() +var perf_start = int(tasmota.millis()) +var perf_time = perf_start for i : 0..99 perf_engine.on_tick(perf_start + i * 5) end diff --git a/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be b/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be index b8fbdc9a2..bea2bc556 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be @@ -1,5 +1,5 @@ -# DSL Berry Code Blocks Test Suite -# Tests for berry code block functionality in SimpleDSLTranspiler +# DSL Berry Code Blocks and External Functions Test Suite +# Tests for berry code block functionality and external function declarations in SimpleDSLTranspiler # # Command to run test is: # ./berry -s -g -m lib/libesp32/berry_animation/src -e "import tasmota" lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be @@ -275,9 +275,284 @@ def test_multiline_complex_syntax() return true end +# Test external function declaration - basic syntax +def test_external_function_basic() + print("Testing basic external function declaration...") + + var dsl_source = 'berry """\n' + + 'def test_func()\n' + + ' return 100\n' + + 'end\n' + + '"""\n' + + 'extern function test_func\n' + + 'animation test = solid(color=red)\n' + + 'test.opacity = test_func\n' + + 'run test' + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code") + assert(string.find(berry_code, "def test_func()") >= 0, "Should include function definition") + assert(string.find(berry_code, "# External function declaration: test_func") >= 0, "Should have external declaration comment") + assert(string.find(berry_code, "animation.get_user_function('test_func')(engine)") >= 0, "Should generate correct function call") + + print("✓ Basic external function declaration test passed") + return true +end + +# Test external function with parentheses +def test_external_function_with_parentheses() + print("Testing external function with parentheses...") + + var dsl_source = 'berry """\n' + + 'def paren_func()\n' + + ' return 150\n' + + 'end\n' + + '"""\n' + + 'extern function paren_func\n' + + 'animation test = solid(color=blue)\n' + + 'test.opacity = paren_func()\n' + + 'run test' + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code") + assert(string.find(berry_code, "animation.get_user_function('paren_func')(engine)") >= 0, "Should generate correct function call with parentheses") + + print("✓ External function with parentheses test passed") + return true +end + +# Test multiple external functions +def test_multiple_external_functions() + print("Testing multiple external functions...") + + var dsl_source = 'berry """\n' + + 'def func1()\n' + + ' return 100\n' + + 'end\n' + + 'def func2()\n' + + ' return 200\n' + + 'end\n' + + '"""\n' + + 'extern function func1\n' + + 'extern function func2\n' + + 'animation a1 = solid(color=red)\n' + + 'a1.opacity = func1\n' + + 'animation a2 = solid(color=blue)\n' + + 'a2.opacity = func2\n' + + 'run a1' + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code") + assert(string.find(berry_code, "animation.get_user_function('func1')(engine)") >= 0, "Should generate call for func1") + assert(string.find(berry_code, "animation.get_user_function('func2')(engine)") >= 0, "Should generate call for func2") + + print("✓ Multiple external functions test passed") + return true +end + +# Test external function in arithmetic expressions +def test_external_function_in_arithmetic() + print("Testing external function in arithmetic expressions...") + + var dsl_source = 'berry """\n' + + 'def math_func()\n' + + ' return 50\n' + + 'end\n' + + '"""\n' + + 'extern function math_func\n' + + 'animation test = solid(color=green)\n' + + 'test.opacity = max(100, math_func + 50)\n' + + 'run test' + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code") + assert(string.find(berry_code, "animation.get_user_function('math_func')(engine)") >= 0, "Should generate function call in arithmetic") + assert(string.find(berry_code, "animation._math.max(") >= 0, "Should include math function") + + print("✓ External function in arithmetic expressions test passed") + return true +end + +# Test external function with complex berry code +def test_external_function_complex() + print("Testing external function with complex berry code...") + + var dsl_source = 'berry """\n' + + 'import math\n' + + 'def rand_meter(time_ms, self)\n' + + ' var r = math.rand() % 101\n' + + ' return r\n' + + 'end\n' + + 'def breathing_effect(base_value, amplitude)\n' + + ' var time_factor = (tasmota.millis() / 1000) % 4\n' + + ' var breath = math.sin(time_factor * math.pi / 2)\n' + + ' return int(base_value + breath * amplitude)\n' + + 'end\n' + + '"""\n' + + 'extern function rand_meter\n' + + 'extern function breathing_effect\n' + + 'palette rainbow = [0xFF0000, 0x00FF00, 0x0000FF]\n' + + 'animation meter = palette_meter_animation(value_func = rand_meter)\n' + + 'animation breath = solid(color=blue)\n' + + 'breath.opacity = breathing_effect\n' + + 'run meter' + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code") + assert(string.find(berry_code, "def rand_meter(time_ms, self)") >= 0, "Should include complex function definition") + assert(string.find(berry_code, "def breathing_effect(base_value, amplitude)") >= 0, "Should include second function") + assert(string.find(berry_code, "animation.get_user_function('rand_meter')(engine)") >= 0, "Should call rand_meter") + assert(string.find(berry_code, "animation.get_user_function('breathing_effect')(engine)") >= 0, "Should call breathing_effect") + + print("✓ External function with complex berry code test passed") + return true +end + +# Test error handling - missing 'function' keyword +def test_external_error_missing_function_keyword() + print("Testing error handling for missing 'function' keyword...") + + var dsl_source = 'berry """\n' + + 'def test_func()\n' + + ' return 100\n' + + 'end\n' + + '"""\n' + + 'extern test_func\n' + + 'animation test = solid(color=red)\n' + + 'run test' + + try + var berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should raise compilation error for missing 'function' keyword") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Expected 'function' keyword after 'extern'") >= 0, "Should have helpful error message") + end + + print("✓ Error handling (missing 'function' keyword) test passed") + return true +end + +# Test error handling - missing function name +def test_external_error_missing_function_name() + print("Testing error handling for missing function name...") + + var dsl_source = 'berry """\n' + + 'def test_func()\n' + + ' return 100\n' + + 'end\n' + + '"""\n' + + 'extern function\n' + + 'animation test = solid(color=red)\n' + + 'run test' + + try + var berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should raise compilation error for missing function name") + except "dsl_compilation_error" as e, msg + assert(string.find(msg, "Expected function name after 'extern function'") >= 0, "Should have helpful error message") + end + + print("✓ Error handling (missing function name) test passed") + return true +end + +# Test external function with reserved name validation +def test_external_function_reserved_name_validation() + print("Testing external function with reserved name validation...") + + # Test with a name that conflicts with an existing definition + var dsl_source = 'color my_color = 0xFF0000\n' + + 'berry """\n' + + 'def my_color()\n' + + ' return 100\n' + + 'end\n' + + '"""\n' + + 'extern function my_color\n' + + 'animation test = solid(color=blue)\n' + + 'run test' + + try + var berry_code = animation_dsl.compile(dsl_source) + assert(false, "Should raise compilation error for already defined name") + except "dsl_compilation_error" as e, msg + # Check for redefinition error + var has_error = string.find(msg, "already defined") >= 0 || + string.find(msg, "redefine") >= 0 || + string.find(msg, "my_color") >= 0 + if !has_error + print(f"Unexpected error message: {msg}") + assert(false, f"Should reject already defined names, got: {msg}") + end + end + + print("✓ External function reserved name validation test passed") + return true +end + +# Test external function in sequences +def test_external_function_in_sequences() + print("Testing external function in sequences...") + + var dsl_source = 'berry """\n' + + 'def seq_func()\n' + + ' return 180\n' + + 'end\n' + + '"""\n' + + 'extern function seq_func\n' + + 'animation test = solid(color=purple)\n' + + 'sequence demo {\n' + + ' test.opacity = seq_func\n' + + ' play test for 2s\n' + + '}\n' + + 'run demo' + + var berry_code = animation_dsl.compile(dsl_source) + + assert(berry_code != nil, "Should generate Berry code") + assert(string.find(berry_code, "animation.get_user_function('seq_func')(engine)") >= 0, "Should call external function in sequence") + + print("✓ External function in sequences test passed") + return true +end + +# Test external function compilation and execution +def test_external_function_execution() + print("Testing external function compilation and execution...") + + var dsl_source = 'berry """\n' + + 'def exec_test_func()\n' + + ' print("External function executed successfully")\n' + + ' return 128\n' + + 'end\n' + + '"""\n' + + 'extern function exec_test_func\n' + + 'animation test = solid(color=cyan)\n' + + 'test.opacity = exec_test_func\n' + + 'run test' + + # Test compilation + var berry_code = animation_dsl.compile(dsl_source) + assert(berry_code != nil, "Should compile successfully") + + # Test that generated code compiles + try + compile(berry_code) + print("✓ External function execution test passed") + return true + except .. as e, m + print("✗ Generated code compilation failed:", e, m) + return false + end +end + # Run all tests def run_all_berry_block_tests() - print("=== DSL Berry Code Blocks Test Suite ===") + print("=== DSL Berry Code Blocks and External Functions Test Suite ===") print("") var tests = [ @@ -290,7 +565,17 @@ def run_all_berry_block_tests() test_error_missing_string, test_error_invalid_token, test_berry_block_execution, - test_multiline_complex_syntax + test_multiline_complex_syntax, + test_external_function_basic, + test_external_function_with_parentheses, + test_multiple_external_functions, + test_external_function_in_arithmetic, + test_external_function_complex, + test_external_error_missing_function_keyword, + test_external_error_missing_function_name, + test_external_function_reserved_name_validation, + test_external_function_in_sequences, + test_external_function_execution ] var passed = 0 @@ -307,14 +592,14 @@ def run_all_berry_block_tests() print("") end - print("=== Berry Code Blocks Test Results ===") + print("=== Berry Code Blocks and External Functions Test Results ===") print(f"Passed: {passed}/{total}") if passed == total - print("All berry code block tests passed! ✓") + print("All berry code block and external function tests passed! ✓") return true else - print("Some berry code block tests failed! ✗") + print("Some berry code block or external function tests failed! ✗") raise "test_failed" end end 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 454e732a9..44ee0c5de 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be @@ -337,7 +337,6 @@ def test_complex_dsl() "# Color Definitions\n" + "color red = 0xFF0000\n" + "color orange = rgb(255, 128, 0)\n" + - "color yellow = hsv(60, 100, 100)\n" + "\n" + "# Animation Definitions\n" + "animation fire_gradient = gradient(color=red)\n" + diff --git a/lib/libesp32/berry_animation/src/tests/fast_loop_integration_test.be b/lib/libesp32/berry_animation/src/tests/fast_loop_integration_test.be index 2d81a2671..ee2b2e86e 100644 --- a/lib/libesp32/berry_animation/src/tests/fast_loop_integration_test.be +++ b/lib/libesp32/berry_animation/src/tests/fast_loop_integration_test.be @@ -75,6 +75,9 @@ def test_on_tick_performance() var strip = global.Leds(10) var engine = animation.create_engine(strip) + # Set tick_ms to 5 for testing (default is 50ms) + engine.tick_ms = 5 + # Add a test animation var anim = TestAnimation(engine) anim.priority = 1 @@ -89,7 +92,7 @@ def test_on_tick_performance() tasmota.set_millis(initial_time) engine.last_update = initial_time - # Call on_tick with less than 5ms elapsed + # Call on_tick with less than 5ms elapsed (should be throttled) tasmota.set_millis(initial_time + 3) var result = engine.on_tick() @@ -97,7 +100,7 @@ def test_on_tick_performance() assert(result == true) assert(anim.render_called == false) - # Call on_tick with more than 5ms elapsed + # Call on_tick with more than 5ms elapsed (should render) tasmota.set_millis(initial_time + 10) result = engine.on_tick() diff --git a/lib/libesp32/berry_animation/src/tests/oscillator_ease_test.be b/lib/libesp32/berry_animation/src/tests/oscillator_ease_test.be index 4743cd84a..5e5d8588d 100644 --- a/lib/libesp32/berry_animation/src/tests/oscillator_ease_test.be +++ b/lib/libesp32/berry_animation/src/tests/oscillator_ease_test.be @@ -156,7 +156,7 @@ def test_ease_with_phase() provider.min_value = 0 provider.max_value = 100 provider.duration = 1000 - provider.phase = 25 # 25% phase shift + provider.phase = 64 # 25% phase shift (64 out of 255 is ~25%) provider.start(0) # Start at time 0 # With 25% phase shift, the curve should be shifted forward diff --git a/lib/libesp32/berry_animation/src/tests/oscillator_value_provider_test.be b/lib/libesp32/berry_animation/src/tests/oscillator_value_provider_test.be index 6a0adb4bb..82119f046 100644 --- a/lib/libesp32/berry_animation/src/tests/oscillator_value_provider_test.be +++ b/lib/libesp32/berry_animation/src/tests/oscillator_value_provider_test.be @@ -40,16 +40,16 @@ def test_oscillator_basic() assert(osc.duration == 1000, "Duration should be 1000ms") assert(osc.form == animation.SAWTOOTH, "Form should be SAWTOOTH") assert(osc.phase == 0, "Phase should default to 0") - assert(osc.duty_cycle == 50, "Duty cycle should default to 50") + assert(osc.duty_cycle == 127, "Duty cycle should default to 127") # Test parameter modification - osc.phase = 25 - osc.duty_cycle = 75 + osc.phase = 64 + osc.duty_cycle = 191 osc.min_value = 10 osc.max_value = 90 - assert(osc.phase == 25, "Phase should be set to 25") - assert(osc.duty_cycle == 75, "Duty cycle should be set to 75") + assert(osc.phase == 64, "Phase should be set to 64") + assert(osc.duty_cycle == 191, "Duty cycle should be set to 191") assert(osc.min_value == 10, "Starting value should be set to 10") assert(osc.max_value == 90, "End value should be set to 90") @@ -147,8 +147,8 @@ def test_square_waveform() assert(value_51 == 100, f"Value at 51% should be 100, got {value_51}") assert(value_75 == 100, f"Value at 75% should be 100, got {value_75}") - # Test custom duty cycle (25%) - osc.duty_cycle = 25 + # Test custom duty cycle (25% = 64 out of 255) + osc.duty_cycle = 64 var value_20 = osc.produce_value("test", start_time + 200) # t=200ms (20% - first quarter) var value_30 = osc.produce_value("test", start_time + 300) # t=300ms (30% - second quarter) @@ -258,8 +258,8 @@ def test_phase_shift() osc.phase = 0 var value_no_phase = osc.produce_value("test", start_time) - # Test with 25% phase shift (should be like starting at 25% of cycle) - osc.phase = 25 + # Test with 25% phase shift (64 out of 255 is ~25%) + osc.phase = 64 var value_with_phase = osc.produce_value("test", start_time) # Values should be different due to phase shift @@ -330,16 +330,16 @@ def test_static_constructors() square1.min_value = 0 square1.max_value = 1 square1.duration = 500 - square1.duty_cycle = 30 + square1.duty_cycle = 76 assert(square1.form == animation.SQUARE, "square() should use SQUARE") - assert(square1.duty_cycle == 30, "square() should set duty cycle to 30") + assert(square1.duty_cycle == 76, "square() should set duty cycle to 76") # Test square() with default duty cycle var square2 = animation.square(mock_engine) square2.min_value = 0 square2.max_value = 1 square2.duration = 500 - assert(square2.duty_cycle == 50, "square() should default duty cycle to 50") + assert(square2.duty_cycle == 127, "square() should default duty cycle to 127") print("✓ Static constructor functions test passed") end @@ -400,7 +400,7 @@ def test_edge_cases() # Test with default parameters var osc1 = animation.oscillator_value(mock_engine) assert(osc1.min_value == 0, "Default min_value should be 0") - assert(osc1.max_value == 100, "Default max_value should be 100") + assert(osc1.max_value == 255, "Default max_value should be 255") assert(osc1.duration == 1000, "Default duration should be 1000") assert(osc1.form == animation.SAWTOOTH, "Default form should be SAWTOOTH") @@ -420,14 +420,14 @@ def test_edge_cases() # Test valid bounds osc3.phase = 0 - osc3.duty_cycle = 50 + osc3.duty_cycle = 127 assert(osc3.phase == 0, "Phase 0 should be valid") - assert(osc3.duty_cycle == 50, "Duty cycle 50 should be valid") + assert(osc3.duty_cycle == 127, "Duty cycle 127 should be valid") - osc3.phase = 100 - osc3.duty_cycle = 100 - assert(osc3.phase == 100, "Phase 100 should be valid") - assert(osc3.duty_cycle == 100, "Duty cycle 100 should be valid") + osc3.phase = 255 + osc3.duty_cycle = 255 + assert(osc3.phase == 255, "Phase 255 should be valid") + assert(osc3.duty_cycle == 255, "Duty cycle 255 should be valid") print("✓ Edge cases test passed") end diff --git a/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be b/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be index 4f9db2571..e98747283 100644 --- a/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be +++ b/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be @@ -29,10 +29,6 @@ var frame = animation.frame_buffer(10, 1) # For simple testing, we'll use direct color values # More complex color providers can be tested separately -# Test 1: Basic PalettePatternAnimation with custom pattern function -print("Test 1: Basic PalettePatternAnimation with custom pattern function") -var pattern_anim = animation.palette_pattern_animation(mock_engine) - # Create a simple mock color source that has get_color_for_value method class MockColorSource def get_color_for_value(value, time_ms) @@ -42,67 +38,7 @@ class MockColorSource end var mock_color_source = MockColorSource() -pattern_anim.color_source = mock_color_source -pattern_anim.priority = 10 -pattern_anim.duration = 0 -pattern_anim.loop = false -pattern_anim.opacity = 255 -pattern_anim.name = "pattern_test" - -# Create a simple pattern function that alternates between 0 and 255 -def simple_pattern(pixel_index, time_ms, animation) - return pixel_index % 2 == 0 ? 255 : 0 -end -pattern_anim.pattern_func = simple_pattern - -assert(pattern_anim != nil, "Failed to create pattern animation") - -# Start the animation -pattern_anim.start() -pattern_anim.update() # force first tick -assert(pattern_anim.is_running, "Animation should be running") - -# Update and render -pattern_anim.update(mock_engine.time_ms) -frame.clear() -var result = pattern_anim.render(frame, mock_engine.time_ms) -assert(result, "Render should return true") - -# Test 2: PaletteWaveAnimation -print("Test 2: PaletteWaveAnimation") -var wave_anim = animation.palette_wave_animation(mock_engine) -wave_anim.color_source = mock_color_source -wave_anim.wave_period = 2000 # 2 second wave period -wave_anim.wave_length = 5 # Wave length of 5 pixels -wave_anim.priority = 10 -wave_anim.duration = 0 -wave_anim.loop = false -wave_anim.opacity = 255 -wave_anim.name = "wave_test" - -assert(wave_anim != nil, "Failed to create wave animation") -assert(wave_anim.wave_period == 2000, "Wave period should be 2000") -assert(wave_anim.wave_length == 5, "Wave length should be 5") - -# Start the animation -wave_anim.start() -wave_anim.update() # force first tick -assert(wave_anim.is_running, "Animation should be running") - -# Update and render -wave_anim.update(mock_engine.time_ms) -frame.clear() -result = wave_anim.render(frame, mock_engine.time_ms) -assert(result, "Render should return true") - -# Test parameter changes -wave_anim.wave_period = 1000 -assert(wave_anim.wave_period == 1000, "Wave period should be updated to 1000") - -wave_anim.wave_length = 8 -assert(wave_anim.wave_length == 8, "Wave length should be updated to 8") - -# Test 3: PaletteGradientAnimation +# Test 1: PaletteGradientAnimation print("Test 3: PaletteGradientAnimation") var gradient_anim = animation.palette_gradient_animation(mock_engine) gradient_anim.color_source = mock_color_source @@ -135,20 +71,20 @@ assert(gradient_anim.shift_period == 1500, "Shift period should be updated to 15 gradient_anim.spatial_period = 5 assert(gradient_anim.spatial_period == 5, "Spatial period should be updated to 5") -gradient_anim.phase_shift = 25 -assert(gradient_anim.phase_shift == 25, "Phase shift should be updated to 25") +gradient_anim.phase_shift = 64 +assert(gradient_anim.phase_shift == 64, "Phase shift should be updated to 64") # Test static gradient (shift_period = 0) gradient_anim.shift_period = 0 assert(gradient_anim.shift_period == 0, "Shift period should be updated to 0 (static)") -# Test 4: PaletteMeterAnimation -print("Test 4: PaletteMeterAnimation") +# Test 2: PaletteMeterAnimation +print("Test 2: PaletteMeterAnimation") var meter_anim = animation.palette_meter_animation(mock_engine) meter_anim.color_source = mock_color_source # Create a value function that returns 50% (half the strip) -def meter_value_func(time_ms, animation) +def meter_value_func(engine, time_ms, animation) return 50 # 50% of the strip (this is still 0-100 for meter logic) end meter_anim.value_func = meter_value_func @@ -173,7 +109,7 @@ result = meter_anim.render(frame, mock_engine.time_ms) assert(result, "Render should return true") # Test changing value function -def new_meter_value_func(time_ms, animation) +def new_meter_value_func(engine, time_ms, animation) return 75 # 75% of the strip (this is still 0-100 for meter logic) end meter_anim.value_func = new_meter_value_func @@ -183,12 +119,12 @@ frame.clear() result = meter_anim.render(frame, mock_engine.time_ms) assert(result, "Render should return true") -# Test 5: Changing color sources dynamically -print("Test 5: Changing color sources dynamically") -var dynamic_anim = animation.palette_wave_animation(mock_engine) +# Test 3: Changing color sources dynamically +print("Test 3: Changing color sources dynamically") +var dynamic_anim = animation.palette_gradient_animation(mock_engine) dynamic_anim.color_source = mock_color_source -dynamic_anim.wave_period = 1000 -dynamic_anim.wave_length = 3 +dynamic_anim.shift_period = 1000 +dynamic_anim.spatial_period = 3 # Start the animation dynamic_anim.start() @@ -217,34 +153,22 @@ frame.clear() result = dynamic_anim.render(frame, mock_engine.time_ms) assert(result, "Render should return true") -# Test 6: Parameter validation -print("Test 6: Parameter validation") -var validation_anim = animation.palette_wave_animation(mock_engine) +# Test 4: Parameter validation +print("Test 4: Parameter validation") +var validation_anim = animation.palette_gradient_animation(mock_engine) # Test valid parameter values -validation_anim.wave_period = 500 -assert(validation_anim.wave_period == 500, "Valid wave period should be accepted") +validation_anim.shift_period = 500 +assert(validation_anim.shift_period == 500, "Valid shift period should be accepted") -validation_anim.wave_length = 1 -assert(validation_anim.wave_length == 1, "Valid wave length should be accepted") +validation_anim.spatial_period = 1 +assert(validation_anim.spatial_period == 1, "Valid spatial period should be accepted") -# Test invalid parameter values (should be constrained by min values) -try - validation_anim.wave_period = 0 # Below minimum - assert(false, "Should not accept wave_period below minimum") -except .. as e - # Expected to fail validation -end +validation_anim.phase_shift = 128 +assert(validation_anim.phase_shift == 128, "Valid phase shift should be accepted") -try - validation_anim.wave_length = 0 # Below minimum - assert(false, "Should not accept wave_length below minimum") -except .. as e - # Expected to fail validation -end - -# Test 7: Animation with different color mapping -print("Test 7: Animation with different color mapping") +# Test 5: Animation with different color mapping +print("Test 5: Animation with different color mapping") class MockRainbowColorSource def get_color_for_value(value, time_ms) # Simple rainbow mapping based on value (expecting 0-255 range) @@ -274,19 +198,22 @@ frame.clear() result = rich_anim.render(frame, mock_engine.time_ms) assert(result, "Render should return true") -# Test 8: Animation timing and synchronization -print("Test 8: Animation timing and synchronization") +# Test 6: Animation timing and synchronization +print("Test 6: Animation timing and synchronization") var sync_time = mock_engine.time_ms + 1000 # Create multiple animations -var anim1 = animation.palette_wave_animation(mock_engine) +var anim1 = animation.palette_gradient_animation(mock_engine) anim1.color_source = mock_color_source -anim1.wave_period = 1000 -anim1.wave_length = 4 +anim1.shift_period = 1000 +anim1.spatial_period = 4 -var anim2 = animation.palette_gradient_animation(mock_engine) +var anim2 = animation.palette_meter_animation(mock_engine) anim2.color_source = mock_color_source2 -anim2.shift_period = 1500 +def meter_func(engine, time_ms, animation) + return 128 +end +anim2.value_func = meter_func # Start both animations at the same time anim1.start(sync_time) @@ -297,11 +224,11 @@ anim2.update(sync_time) # force first tick assert(anim1.start_time == sync_time, "Animation 1 should have correct start time") assert(anim2.start_time == sync_time, "Animation 2 should have correct start time") -# Test 9: Animation without color source (should handle gracefully) -print("Test 9: Animation without color source") -var no_color_anim = animation.palette_wave_animation(mock_engine) -no_color_anim.wave_period = 1000 -no_color_anim.wave_length = 3 +# Test 7: Animation without color source (should handle gracefully) +print("Test 7: Animation without color source") +var no_color_anim = animation.palette_gradient_animation(mock_engine) +no_color_anim.shift_period = 1000 +no_color_anim.spatial_period = 3 # Note: no color_source set no_color_anim.start() @@ -310,9 +237,9 @@ frame.clear() result = no_color_anim.render(frame, mock_engine.time_ms) assert(!result, "Render should return false when no color source is set") -# Test 10: String representation -print("Test 10: String representation") -var str_anim = animation.palette_wave_animation(mock_engine) +# Test 8: String representation +print("Test 8: String representation") +var str_anim = animation.palette_gradient_animation(mock_engine) var str_repr = str_anim.tostring() print(f"String representation: {str_repr}") assert(str_repr != nil, "String representation should not be nil") diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/.vscodeignore b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/.vscodeignore new file mode 100644 index 000000000..ff4e67a8a --- /dev/null +++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/.vscodeignore @@ -0,0 +1,8 @@ +.vscode/** +.vscode-test/** +.gitignore +vsc-extension-quickstart.md +**/node_modules/** +**/.eslintrc.json +**/*.map +**/*.ts \ No newline at end of file diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md new file mode 100644 index 000000000..8435afae7 --- /dev/null +++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md @@ -0,0 +1,87 @@ +# Change Log + +All notable changes to the Animation DSL extension will be documented in this file. + +## [1.2.0] - 2025-01-24 + +### Added +- Support for `if` keyword for conditional execution in sequences +- Conditional execution allows boolean-based gating (runs 0 or 1 times) + +### Changed +- Updated keyword patterns to include `if` statement + +## [1.1.0] - 2025-01-09 + +### Added +- Support for `import` statements for Berry modules +- Support for `template` and `param` keywords for template definitions +- Support for `type` annotations in template parameters (`param name type color`) +- Support for `set` keyword for variable assignments +- Support for `reset` and `restart` keywords for value provider/animation control +- Support for `log` keyword for debug logging +- Support for `as` keyword in import and parameter declarations +- Mathematical functions: `abs`, `max`, `min`, `round`, `sqrt`, `scale`, `sin`, `cos` +- User function syntax: `user.function_name()` with proper highlighting +- Additional animation functions: `pulsating_animation` +- Additional value providers: `triangle`, `cosine_osc`, `sawtooth`, `color_cycle`, `strip_length` +- Additional easing types: `triangle`, `sine`, `sawtooth`, `elastic`, `bounce` +- Support for hexadecimal colors with `0x` prefix (e.g., `0xFF0000`, `0x80FF0000`) +- Additional animation properties: `opacity`, `priority`, `pos`, `beacon_size`, `slew_size`, `direction`, `tail_length`, `speed`, `period`, `cycle_period`, `min_value`, `max_value`, `duration`, `next` + +### Changed +- Updated keyword patterns to match current DSL syntax based on actual examples +- Improved indentation rules to support `template` blocks with proper `{}` +- Enhanced color recognition to support both `#RRGGBB` and `0xRRGGBB` formats +- Expanded animation function list to include all currently implemented functions +- Updated oscillator functions to match actual DSL implementation + +### Fixed +- Corrected animation function names to match actual DSL implementation +- Updated oscillator function patterns to include all available value providers +- Fixed keyword list to remove deprecated/unused keywords and add missing ones + +## [1.0.0] - 2024-01-30 + +### Added +- Initial release of Animation DSL syntax highlighting +- Complete syntax highlighting for all DSL constructs: + - Keywords (strip, color, palette, animation, sequence, etc.) + - Animation functions (solid, rich_palette_animation, beacon_animation, etc.) + - Oscillator functions (ramp, linear, smooth, square) + - Colors (hex colors and 30+ named colors) + - Time literals (ms, s, m, h) + - Percentages (50%, 100%) + - Comments (# line comments) +- Semantic token scopes that work with any VSCode theme +- Language configuration with: + - Auto-closing pairs for brackets and quotes + - Comment toggling support + - Smart indentation for sequences and loops + - Bracket matching +- File association for .anim files +- Comprehensive documentation and examples + +### Features +- **Syntax Highlighting**: Full coverage of Animation DSL grammar +- **Theme Compatibility**: Works with any VSCode theme (dark, light, high contrast) +- **Language Features**: Auto-closing, indentation, bracket matching +- **Documentation**: Complete README with examples and usage guide + +### Supported DSL Features +- Strip configuration (`strip length 60`) +- Color definitions (`color red = #FF0000`) +- Palette definitions with VRGB format +- Animation definitions (8 animation functions) +- Value providers (4 oscillator functions) +- Property assignments (`animation.priority = 10`) +- Sequences with play, wait, and repeat +- Comments with preservation +- All currently implemented DSL constructs + +### Technical Details +- Based on TextMate grammar for syntax highlighting +- JSON-based snippet system with parameter placeholders +- Custom theme with semantic color coding +- Language configuration for VSCode integration +- Supports all Animation DSL file extensions (.anim) \ No newline at end of file diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md new file mode 100644 index 000000000..4b2990306 --- /dev/null +++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md @@ -0,0 +1,139 @@ +# Animation DSL for VSCode + +This extension provides syntax highlighting, snippets, and language support for the Berry Animation Framework DSL (.anim files). + +## Features + +### Syntax Highlighting +- **Keywords**: `strip`, `color`, `palette`, `animation`, `sequence`, `template`, `import`, `set`, `play`, `run`, `if`, `repeat`, `reset`, `restart`, `log`, etc. +- **Animation Functions**: `solid`, `pulsating_animation`, `rich_palette_animation`, `beacon_animation`, `comet_animation`, etc. +- **Value Providers**: `triangle`, `cosine_osc`, `sawtooth`, `color_cycle`, `strip_length`, `ramp`, `linear`, `smooth`, `square` +- **Mathematical Functions**: `abs`, `max`, `min`, `round`, `sqrt`, `scale`, `sin`, `cos` +- **User Functions**: `user.function_name()` syntax with proper highlighting +- **Colors**: Hex colors (`#FF0000`, `0xFF0000`, `0x80FF0000`) and named colors (red, blue, etc.) +- **Time Literals**: 2s, 500ms, 1m, 2h +- **Percentages**: 50%, 100% +- **Comments**: Line comments starting with # +- **Template Syntax**: Template definitions with parameter type annotations + +### Language Features +- **Auto-closing**: Brackets, quotes, and braces +- **Comment toggling**: Ctrl+/ for line comments +- **Bracket matching**: Matching brackets and braces +- **Indentation**: Smart indentation for sequences and loops +- **Theme Compatibility**: Works with any VSCode theme (dark, light, high contrast) + +## File Association + +This extension automatically activates for files with the `.anim` extension. + +## Example Usage + +```dsl +# Fire Effect Animation with Templates +import user_functions + +# Define fire palette +palette fire_colors = [ + (0, 0x000000) # Black + (64, 0x800000) # Dark red + (128, 0xFF0000) # Red + (192, 0xFF8000) # Orange + (255, 0xFFFF00) # Yellow +] + +# Template for reusable fire effect +template fire_effect { + param base_palette type palette + param intensity type number + param duration + + animation campfire = rich_palette_animation( + palette=base_palette + cycle_period=duration + ) + + # Use computed values and user functions + campfire.priority = max(5, intensity / 10) + campfire.opacity = user.breathing_effect() + + run campfire +} + +# Use the template +fire_effect(fire_colors, 200, 3s) + +# Sequence with dynamic property changes +sequence fire_demo { + play campfire for 5s + campfire.opacity = abs(strip_length() * 4) + play campfire for 3s + reset campfire + play campfire for 2s +} + +run fire_demo +``` + + + +## Theme Compatibility + +The extension uses semantic token scopes that work with any VSCode theme: +- **Keywords**: Uses standard keyword colors from your chosen theme +- **Functions**: Uses function colors from your chosen theme +- **Constants**: Uses constant colors from your chosen theme (colors, numbers, etc.) +- **Comments**: Uses comment colors from your chosen theme +- **Strings**: Uses string colors from your chosen theme + +This ensures the syntax highlighting looks great whether you prefer dark themes, light themes, or high contrast themes. + +## Installation + +### From VSIX (Recommended) +1. Download the `.vsix` file +2. Open VSCode +3. Go to Extensions (Ctrl+Shift+X) +4. Click the "..." menu and select "Install from VSIX..." +5. Select the downloaded `.vsix` file + +### Manual Installation +1. Copy the extension folder to your VSCode extensions directory: + - **Windows**: `%USERPROFILE%\.vscode\extensions\` + - **macOS**: `~/.vscode/extensions/` + - **Linux**: `~/.vscode/extensions/` +2. Restart VSCode + +## Development + +### Building the Extension +```bash +npm install -g @vscode/vsce +cd vscode-animation-dsl +vsce package +``` + +This creates a `.vsix` file that can be installed in VSCode. + +### Testing +1. Open the extension folder in VSCode +2. Press F5 to launch a new Extension Development Host +3. Open a `.anim` file to test syntax highlighting + +## Contributing + +Contributions are welcome! Please feel free to submit issues or pull requests. + +### Adding New Features +- **Keywords**: Add to `syntaxes/animation-dsl.tmLanguage.json` +- **Token Scopes**: Modify semantic scopes in the grammar file + +## License + +This extension is part of the Berry Animation Framework project and follows the same license terms. + +## Related + +- [Berry Animation Framework](https://github.com/tasmota/berry-animation-framework) +- [Tasmota](https://tasmota.github.io/docs/) +- [Berry Language](https://github.com/berry-lang/berry) \ No newline at end of file diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json new file mode 100644 index 000000000..94a3ca8f1 --- /dev/null +++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json @@ -0,0 +1,81 @@ +{ + "comments": + { + "lineComment": "#" + }, + "brackets": + [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ] + ], + "autoClosingPairs": + [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "\"", + "\"" + ], + [ + "'", + "'" + ] + ], + "surroundingPairs": + [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "\"", + "\"" + ], + [ + "'", + "'" + ] + ], + "folding": + { + "markers": + { + "start": "^\\s*#\\s*region\\b", + "end": "^\\s*#\\s*endregion\\b" + } + }, + "wordPattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)", + "indentationRules": + { + "increaseIndentPattern": "^\\s*(sequence|repeat|template)\\s+.*\\{\\s*$", + "decreaseIndentPattern": "^\\s*}\\s*$" + } +} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json new file mode 100644 index 000000000..15d6fd858 --- /dev/null +++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json @@ -0,0 +1,49 @@ +{ + "name": "animation-dsl", + "displayName": "Animation DSL", + "description": "Syntax highlighting for Berry Animation Framework DSL (.anim files)", + "version": "1.2.1", + "publisher": "tasmota", + "engines": { + "vscode": "^1.74.0" + }, + "categories": [ + "Programming Languages" + ], + "keywords": [ + "animation", + "led", + "tasmota", + "berry" + ], + "repository": { + "type": "git", + "url": "https://github.com/arendst/Tasmota" + }, + "contributes": { + "languages": [ + { + "id": "animation-dsl", + "aliases": [ + "Animation DSL", + "animation-dsl", + "anim" + ], + "extensions": [ + ".anim" + ], + "configuration": "./language-configuration.json" + } + ], + "grammars": [ + { + "language": "animation-dsl", + "scopeName": "source.animation-dsl", + "path": "./syntaxes/animation-dsl.tmLanguage.json" + } + ] + }, + "devDependencies": { + "@vscode/vsce": "^2.15.0" + } +} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json new file mode 100644 index 000000000..36e4d6563 --- /dev/null +++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json @@ -0,0 +1,297 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "Animation DSL", + "scopeName": "source.animation-dsl", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#colors" + }, + { + "include": "#time-literals" + }, + { + "include": "#percentages" + }, + { + "include": "#animation-functions" + }, + { + "include": "#oscillator-functions" + }, + { + "include": "#named-colors" + }, + { + "include": "#easing-types" + }, + { + "include": "#mathematical-functions" + }, + { + "include": "#user-functions" + }, + { + "include": "#operators" + }, + { + "include": "#identifiers" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "name": "comment.line.number-sign.animation-dsl", + "begin": "#", + "end": "$", + "captures": { + "0": { + "name": "punctuation.definition.comment.animation-dsl" + } + } + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.animation-dsl", + "match": "\\b(strip|set|import|berry|extern|color|palette|animation|sequence|function|template|param|type|play|for|with|repeat|times|forever|if|else|elif|choose|random|on|run|wait|goto|interrupt|resume|while|from|to|return|reset|restart|every)\\b" + }, + { + "name": "keyword.other.animation-dsl", + "match": "\\b(opacity|priority|pos|beacon_size|slew_size|direction|tail_length|speed|period|cycle_period|min_value|max_value|duration|next)\\b" + }, + { + "name": "constant.language.boolean.animation-dsl", + "match": "\\b(true|false|nil|transparent)\\b" + }, + { + "name": "keyword.other.event.animation-dsl", + "match": "\\b(startup|shutdown|button_press|button_hold|motion_detected|brightness_change|timer|time|sound_peak|network_message)\\b" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double.animation-dsl", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.animation-dsl", + "match": "\\\\." + } + ] + }, + { + "name": "string.quoted.single.animation-dsl", + "begin": "'", + "end": "'", + "patterns": [ + { + "name": "constant.character.escape.animation-dsl", + "match": "\\\\." + } + ] + } + ] + }, + "numbers": { + "patterns": [ + { + "name": "constant.numeric.float.animation-dsl", + "match": "\\b\\d+\\.\\d+\\b" + }, + { + "name": "constant.numeric.integer.animation-dsl", + "match": "\\b\\d+\\b" + } + ] + }, + "colors": { + "patterns": [ + { + "name": "constant.other.color.hex.animation-dsl", + "match": "0x[0-9A-Fa-f]{6}\\b", + "captures": { + "0": { + "name": "constant.other.color.hex.rgb.animation-dsl" + } + } + }, + { + "name": "constant.other.color.hex.animation-dsl", + "match": "0x[0-9A-Fa-f]{8}\\b", + "captures": { + "0": { + "name": "constant.other.color.hex.argb.animation-dsl" + } + } + }, + { + "name": "constant.other.color.hex.animation-dsl", + "match": "#[0-9A-Fa-f]{6}\\b", + "captures": { + "0": { + "name": "constant.other.color.hex.rgb.animation-dsl" + } + } + }, + { + "name": "constant.other.color.hex.animation-dsl", + "match": "#[0-9A-Fa-f]{8}\\b", + "captures": { + "0": { + "name": "constant.other.color.hex.argb.animation-dsl" + } + } + } + ] + }, + "time-literals": { + "patterns": [ + { + "name": "constant.numeric.time.animation-dsl", + "match": "\\b\\d+(?:\\.\\d+)?\\s*(ms|s|m|h)\\b", + "captures": { + "1": { + "name": "keyword.other.unit.time.animation-dsl" + } + } + } + ] + }, + "percentages": { + "patterns": [ + { + "name": "constant.numeric.percentage.animation-dsl", + "match": "\\b\\d+(?:\\.\\d+)?%\\b", + "captures": { + "0": { + "name": "constant.numeric.percentage.animation-dsl" + } + } + } + ] + }, + "animation-functions": { + "patterns": [ + { + "name": "entity.name.function.animation.animation-dsl", + "match": "\\b(solid|pulsating_animation|beacon_animation|comet_animation|rich_palette_animation|twinkle_animation|breathe_animation|fire_animation|crenel_position_animation)\\b" + } + ] + }, + "oscillator-functions": { + "patterns": [ + { + "name": "entity.name.function.oscillator.animation-dsl", + "match": "\\b(triangle|cosine_osc|sawtooth|ramp|linear|smooth|square|sine|color_cycle|strip_length)\\b" + } + ] + }, + "named-colors": { + "patterns": [ + { + "name": "constant.other.color.named.primary.animation-dsl", + "match": "\\b(red|green|blue|white|black|yellow|orange|purple|pink|cyan|magenta)\\b" + }, + { + "name": "constant.other.color.named.extended.animation-dsl", + "match": "\\b(gray|grey|silver|gold|brown|lime|navy|olive|maroon|teal|aqua|fuchsia|indigo|violet|crimson|coral|salmon|khaki|plum|orchid|turquoise|tan|beige|ivory|snow|transparent)\\b" + } + ] + }, + "easing-types": { + "patterns": [ + { + "name": "constant.other.easing.animation-dsl", + "match": "\\b(linear|triangle|smooth|sine|ease_in|ease_out|ramp|sawtooth|square|elastic|bounce)\\b" + } + ] + }, + "mathematical-functions": { + "patterns": [ + { + "name": "entity.name.function.math.animation-dsl", + "match": "\\b(abs|max|min|round|sqrt|scale|sin|cos)\\b" + } + ] + }, + "user-functions": { + "patterns": [ + { + "name": "entity.name.function.user.animation-dsl", + "match": "\\buser\\.[a-zA-Z_][a-zA-Z0-9_]*\\b", + "captures": { + "0": { + "name": "entity.name.function.user.animation-dsl" + } + } + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.assignment.animation-dsl", + "match": "=" + }, + { + "name": "keyword.operator.arithmetic.animation-dsl", + "match": "[+\\-*/%^]" + }, + { + "name": "keyword.operator.comparison.animation-dsl", + "match": "(==|!=|<=|>=|<|>)" + }, + { + "name": "keyword.operator.logical.animation-dsl", + "match": "(&&|\\|\\||!)" + }, + { + "name": "punctuation.separator.comma.animation-dsl", + "match": "," + }, + { + "name": "punctuation.separator.colon.animation-dsl", + "match": ":" + }, + { + "name": "punctuation.separator.dot.animation-dsl", + "match": "\\." + }, + { + "name": "punctuation.section.brackets.begin.animation-dsl", + "match": "[\\[\\(\\{]" + }, + { + "name": "punctuation.section.brackets.end.animation-dsl", + "match": "[\\]\\)\\}]" + } + ] + }, + "identifiers": { + "patterns": [ + { + "name": "variable.other.animation-dsl", + "match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b" + } + ] + } + } +} \ No newline at end of file